论文《Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation Approaches》阅读

  • 论文概况
  • 论文亮点
  • 1. Introduction
  • 2. Research Method
    • 2.1 收集可复现论文
    • 2.2 评估方法
  • 3. Validation against Baselines
    • 3.1 CMN
    • 3.2 MCRec
    • 3.3 CVAE
    • 3.4 CDL
    • 3.5 NCF
    • 3.6 SpectralCF
    • 3.7 Mult-VAE
  • 4. Discussion
    • 4.1 复现和拓展
    • 4.2 进展评价
  • Summary

论文概况

这篇文章是Dietmar jannach老师发表在RecSys 2019(推荐系统顶会,目前还不在CCF之列)上的一篇论文,被评为该会议Best Paper Award。这篇文章对15-19年之间基于神经网络的推荐系统顶刊文章进行批评和总结,认为神经网络方法在推荐系统领域并未取得实质进展,引起了较大争议。大家可参看知乎关于这篇论文的讨论 如何看待RecSys 2019最佳论文认为现有DNN-based推荐算法带来的基本上都是伪提升? - 知乎
论文地址:论文
代码地址:代码

论文亮点

这篇文章将推荐系统方向四个顶会KDD、SIGIR、WWW、RecSys在15-19年之间关于使用神经网络进行推荐系统方向 Top-N 推荐工作的共18篇论文进行了总结(主要是批评),得出结论:基于神经系统的推荐系统算法并未取得实质性进展,可以被finetune的简单传统模型轻易击败。在作者总结的18篇论文中,有11篇被认为无法复现(Non-reproducible),剩余可以复现的7篇中有6篇可以轻松被传统方法击败,只有一篇他认为可以勉强支棱起来,但作者也使用well-tuned的传统方法击败了这个方法。

(当然,读者可以参考知乎上的讨论,关于这篇文章中被批评的各个作者也进行了回应,讨论主要集中在作者没有对他们的模型进行好好调参就断言模型效果不好。)

下面进行详细介绍。

1. Introduction

作者首先认为,不仅仅局限于推荐系统或者信息检索方向,在整个应用机器学习领域,都存在着很大程度的“伪进步”。造成这种现象的原因在于:(1)论文中选用很弱的baseline方法;(2)对属于同一方法族(即在别人的模型基础上进行改良)的baseline不好好调参;(3)结果不好好比较,结果复现有问题等。

作者同时认为,在应用机器学习领域,数据集的不同评价标准多样性能指标不统一数据预处理方式不同都造成了无法判断到底谁才是最好方法的结果。在不公布代码和数据的情况下尤甚。很多时候,即使公布代码,很多作者的代码不完整,缺少数据预处理代码、调参代码、评价指标代码等。

作者认为造成这一现象的原因有:(1)reviewer太少;(2)学界对于特定方向的研究会更侧重和偏爱;(3)学界热衷于发表更“可出版”的论文

作者将上述这些问题集中到了推荐系统方向,并从四大顶会中抽取了18篇论文进行审核。审核标准包括如下两点:(1)是否提供了代码和数据;(2)结果是否可以击败传统方法

标准1 直接将18篇筛掉了11篇。标准 2 作者选用了简单的user-based、item-based以及graph-based的简单模型作为baseline与剩余的7篇进行对比,并认为其中 6篇也都不合格,剩余的一篇尽管可以打败简单模型,但是换了一个复杂一点的传统模型,这个模型也不够打。

2. Research Method

2.1 收集可复现论文

作者找了一共18篇论文,囊括了4个顶会近三年的所有关于神经网络完成的Top-N推荐系统的工作。使用两个标准:(1)是否提供了可靠的代码;(2)数据集是否提供了完成对这些论文的评估。评估结果如下表所示:

可复现比例为39%。(知乎回答中有关于某作者疯狂灌水,结果全被这篇文章挂出来的回答,溜了溜了)

2.2 评估方法

评估方法:作者对可复现的7个模型直接进行验证,对每个模型,都用他们各自的数据和评价指标,用baseline和他们的模型对线,来直接判别真伪。

Baselines:包括如下几个——

  • TopPopular:推荐最火(评价或互动最多)的item;
  • ItemKNN:针对item做KNN,判断item之间互动向量的相似度,相似度使用缩放过的余弦相似度;
  • UserKNN:与ItemKNN类似,使用针对user的相似度完成的KNN算法;
  • ItemKNN-CBF:针对item做KNN,判断item特征向量的相似度,相似度使用缩放过的余弦相似度;
  • ItemKNN-CFCBF:在ItemKNN_CBF基础上将向量更换为互动向量和加权后的特征向量的连接向量。
  • P3^33α:基于图的推荐算法
  • RP3^33α:P3αP^3\alphaP3α的升级版

3. Validation against Baselines

下列的各篇文章后续我们都会继续讲解,欢迎大家关注我后续的博客。

需要说明的是,对模型的评价都是作者的观点,不是我本人的主观观点。

3.1 CMN

SIGIR 2018,作者没挑啥具体毛病,问题只有表现不够好,不知道是不是作者没好好调参的问题。具体来说,原文一共用了三个数据集CiteULike-a、Pinterest、Epinions,在第三个数据集上,TopPopular(推荐最火的item)竟然是表现最好的方法,如下表所示:

这里,我认为应该是作者没有好好调参的问题,毕竟在Epinions数据集上最火的item是表现最好的,这不符合常识。有同学指出,这个数据集很小,而且是一个很密集的数据集,作者应该是没有对数据进行很好的处理造成了这个结果。

3.2 MCRec

KDD 2018, 作者指出以下问题:

  • 这篇论文在和baseline对比的时候直接用的baseline的参数设置,而没有进行调优
  • baseline(如MF、NeuMF)的超参数设置没有提及
  • 评估方法中NDCG is implemented in an uncommmon and questionable way(作者也没直说到底有没有错,待验证)
  • 数据预处理以及元路径构建的代码未提供
  • 作者汇报的指标结果,是根据测试集,针对每个不同的指标运行不同次数得到的,而这样得到的结果显然是不合理的

3.3 CVAE

KDD 2018,不存在显著问题,表现不佳。

3.4 CDL

KDD 2015,不存在显著问题,表现不佳。

3.5 NCF

WWW 2017,这篇论文被怼得挺厉害,何老师本人也在知乎回答下进行了回应。这篇文章之前,我们详细解读过,参阅论文《Neural Collaborative Filtering》阅读。论文中心思想是使用NN来代替矩阵内积运算,尽管对于该方法有诸多讨论,该方法提出时间较早,是使用神经网络做推荐的最早的工作,引用奇多。

针对这篇论文效果方面的讨论可以忽略,一方面这篇文章提出时间较早,而且论文本身并不在于结果有多好,贵在提出了使用神经网络做推荐的这个想法;另一方面,何老师也正面回应了作者的质疑,指出作者并没有好好调参,选用了一个很差的参数设置。

除此以外,作者指出的关于NCF的问题如下:

  • 参数优化过程中参照测试集进行迭代的终止,这是不合理的。作者使用了验证集进行实验(然而在何老师的回应中,说作者是过拟合20epochs后才终止训练,原话如下:『实际上,不仅参数没有被正确调优,而且作者对代码的evaluation过程进行了修改:在模型出现overfitting后并没有立即终止训练,而是继续训练了20多个epochs后才汇报结果,导致汇报的分数和最优值比较低。』)。我认为关于这点,本文作者Dietmar的想法没毛病。

3.6 SpectralCF

这篇文章一共用了3个数据集:MovieLens1M、HetRec和Amazon Instant Video,这三个数据集只有MovieLens提供了划分好的测试集和训练集,剩余两个没有分别提供划分好的数据集,作者自己按照论文描述进行了划分。作者指出以下问题:

  • 文中声明的只适用在一个数据集上的超参数,实际上在三个数据集上都有使用。作者因此分别使用给定的优化参数以及自己根据描述优化后的参数分别进行实验。结果表明在HetRec和Amazon Instant Video上SpectralCF性能不如baseline方法,但是在MovieLens上却远好于baseline。由于MovieLens数据集是原作者已经划分好的,因此作者按照论文指示重新划分数据集并再次实验,但结果并不好,相差甚远。
  • 作者对MovieLens数据集进行可视化分析,发现训练集和测试集的数据分布非常不一致,如图1所示。

3.7 Mult-VAE

WWW 2018,这个模型在于baseline的对比中获胜,也是作者指出的七个中的唯一的那个。在回归率和NDCG的指标中,Mult-VAE比最好的baseline要好3%。作者为了证明NN方法做推荐不好,又用fine-tune过的传统模型(SLIM using Elastic Net)作为baseline在MovieLens和Netflix上再次实验,Mult-VAE再次胜出。

4. Discussion

4.1 复现和拓展

作者指出机器学习领域的文章涉及的代码应该更好实现,毕竟现在有那么多的开源框架可以用于搭建神经网络模型,但是提供代码和数据的paper依旧不多。有的尽管提供了,关于超参数设定、Evaluation、数据的预处理、baseline方法等的代码依旧没有提供。

作者同时指出运算的复杂性也造成了复现的困难。尽管现在好多人用GPU运算,另外推荐系统方面的数据集相比较以前现在规模变小(Netflix刚竞赛的时候规模为1亿,2019年的现在大多使用几百万规模),但即使这样,超参数优化依旧要花好长时间,几天到几周不等。

4.2 进展评价

作者说NN做推荐带来了“伪进步”(phantom progress),并着重对NCF引用奇高的现象进行了分析(以及抨击,说NCF是一个弱方法)。

作者同时指出数据不统一,指标不统一,评估方法不统一,推荐指标的长度值(如NDCG@K中的K)不统一都造成了这种伪进步。

作者同时指出推荐系统方向中各个作者各自制定一套标准来证明自己方法最优的现状。同时指出,以为追求准确率提高意义不大,有大量工作表明准确率并不和实际的推荐算法体验成正比。

Summary

目前的关于Top-N推荐的NN算法存在以下问题:

  • 复现困难
  • 结果失真

作者呼吁更加严谨以及更好的评价算法方面的工作。

论文《Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation ...》阅读相关推荐

  1. 《基于卷积神经网络的深度迁移学习,用于燃气轮机燃烧室的故障检测》论文阅读

    目录 突出 抽象 引言 1.1动机 1.2文献综述获得的结论 1.3贡献 1.4组织 2方法 2.1燃汽轮机组故障知识共享 2.2迁移学习 2.3 基于卷积神经网络的深度迁移学习 2.4用于燃气轮机燃 ...

  2. 基于卷积神经网络和投票机制的三维模型分类与检索 2019 论文笔记

    作者:白静 计算机辅助设计与图形学学报 1.解决的问题 由于三维模型投影得到的视图是由不同视点得到,具有相对独立性,这种像素级的融合运算并没有直接的物理或者几何意义,更有可能造成图像有益信息淹没和混淆 ...

  3. TextCNN——基于卷积神经网络的文本分类学习

    1.CNN基础内容 CNN的全称是Convolutional Neural Network,是一种前馈神经网络.由一个或多个卷积层.池化层以及顶部的全连接层组成,在图像处理领域表现出色. 本文主要学习 ...

  4. 读懂深度迁移学习,看这文就够了 | 赠书

    百度前首席科学家.斯坦福大学副教授吴恩达(Andrew Ng)曾经说过:迁移学习将是继监督学习之后的下一个促使机器学习成功商业化的驱动力. 本文选自<深度学习500问:AI工程师面试宝典> ...

  5. 一种基于卷积神经网络的图像去雾研究-含matlab代码

    目录 一.绪论 二.去雾卷积网络 2.1 特征提取 2.2 多尺度映射 2.3 局部均值 2.4 非线性回归 三.实验与分析 四.Matlab代码获取 一.绪论 雾是一种常见的大气现象,空气中悬浮的水 ...

  6. 机械臂论文笔记(一)【基于卷积神经网络的二指机械手 抓取姿态生成研究 】

    基于卷积神经网络的二指机械手 抓取姿态生成研究 论文下载 摘要 第1章 绪论 1.1 抓取生成国内外研究现状 1.1.1已知物体抓取生成 1.1.2相似物体抓取生成 1.1.3 未知物体抓取生成 1. ...

  7. 毕业设计 - 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

    文章目录 1 前言 2 前言 3 数据集 3.1 良性样本 3.2 病变样本 4 开发环境 5 代码实现 5.1 实现流程 5.2 部分代码实现 5.2.1 导入库 5.2.2 图像加载 5.2.3 ...

  8. 基于卷积神经网络与迁移学习的油茶病害图像识别

    基于卷积神经网络与迁移学习的油茶病害图像识别 1.研究思路 利用深度卷积神经网络强大的特征学习和特征表达能力来自动学习油茶病害特征,并借助迁移学习方法将AlexNet模型在ImageNet图像数据集上 ...

  9. Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类)

    Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类) 1.卷积神经网络 1.1卷积神经网络简介 1.2卷积运算 1.3 深度学习与小数据问题的相关性 2.下载数据 2.1下载原始数据 ...

  10. 基于卷积神经网络实现图片风格的迁移 1

    卷积神经网络详解 一.实验介绍 1.1 实验内容 Prisma 是最近很火的一款APP,它能够将一张普通的图像转换成各种艺术风格的图像.本课程基于卷积神经网络,使用Caffe框架,探讨图片风格迁移背后 ...

最新文章

  1. Framework 源码解析知识梳理(5) startService 源码分析
  2. 评分卡建模—拒绝推断
  3. 成吉思汗:“世界之鞭”还是“人类之王”?
  4. ssg国际数字货币商城源码货币商城+数字货币+双端APP
  5. 漫步数学分析二——欧几里得空间
  6. 性能测试之实现接口关联的两种方式:正则表达式提取器和json提取器
  7. 登顶AI服务器全球第一后,浪潮发布AI系统浪潮元脑
  8. 讯飞输入法将深度神经网络DNN技术应用于语音识别达到业界领先水平
  9. chrome开发工具指南之综述
  10. 支持SMTP邮箱介绍
  11. mysql 为什么mysql设置了密码之后,本地还可以直接访问,不需要输入密码就可以登录数据库了?
  12. 生信装虚拟机好还是云服务器,学习小组Day2笔记--潘潘
  13. GJB150.10A-2009霉菌试验标准费用-霉菌试验GJBA检测机构
  14. python 密度聚类_Python密度聚类算法-DBSCAN实践
  15. 手机如何使用USSD命令设置呼叫转移
  16. 求助fax4j,发送和接收传真
  17. 使用码云(Gitee)进行开源代码管理
  18. 英语演讲和英语课件ppt模板
  19. Call to a member function display() on a non-object。。。。
  20. 华三交换机配置access命令_华三交换机查看配置命令是什么

热门文章

  1. 地理信息系统GIS的评价
  2. 360Replugin插件Activity横屏
  3. html网页设计动态烟花效果
  4. POJ 1419-Graph Coloring
  5. 【听课笔记】复旦大学遗传学_01孟德尔遗传
  6. qlv转mp4绿色版工具
  7. web测试----死链检查(Xenu)
  8. excel表格打印每页都有表头_Excel打印时怎么让每一页都包括表头?
  9. JS基础知识(二十八):箭头函数
  10. JAVA基础 - 什么是变量和运算符