0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于深度学习的推荐算法大部分都存在不同程度的数据集缺失和源码缺失

WpOh_rgznai100 来源:lq 2019-08-02 09:33 次阅读

【导读】来自意大利米兰理工大学的 Maurizio 团队近日发表了一篇极具批判性的文章,剑指推荐系统领域的其他数十篇论文,指出这些论文中基于深度学习的推荐算法大部分都存在不同程度的数据集缺失和源码缺失,导致它们无法复现,而那些可复现的算法,其性能也难以达到预期,甚至难以超越基于传统的、简单的机器学习推荐算法。

推荐系统领域研究的潜在问题

近年来,基于深度学习的算法是非常热门的研究方向,其在许多领域,如计算机视觉,自然语言处理等领域都取得了巨大的成功,因此许多研究人员也期待能借助深度学习方法在推荐系统领域取得突出的进展,例如基于长期依赖配置和基于场景的 top-n 推荐算法。近年来也有许多基于深度学习的推荐算法发表在知名会议和期刊上,然而过去有工作指出这些深度学习推荐算法并不是完全可信的,主要存在以下三个问题:

许多声称有提升的方法事实上并不能超越经过合理调参的基准对比工作,甚至不能超越很简单的传统方法。具体来说,这些方法在实验上存在一定的缺陷。

基准对比工作的选择问题:许多方法选择的对比工作本身就有问题,不是广义上的基准工作。并且该领域的基准工作很混乱,不太统一。

不同工作采用的数据集,验证方法,性能指标,数据预处理步骤都不同,这使得性能对比很困难,无法确定哪个工作在相同的应用环境中表现最好。而且很多工作不开源数据和代码,这不符合现在的代码开源趋势,甚至即使开源了,也不把完整代码放出来。

系统的算法评估标准

为了深入探究基于深度学习的推荐算法是否存在以上问题,作者制定了两个算法评估标准:

可复现性:能否通过代码和数据集重现文中的实验结果

性能评估:这些工作和基准工作相比能提高多少

在此标准的基础上,作者评估了近几年发表在顶尖会议上,运用深度学习方法来实现 top-n 推荐的 18 篇工作,最后发现:只有七篇工作是可复现的;而这 7 篇工作中,有 6 篇都没能超越传统的、经过合理调参的启发式方法。即使是简单地将最流行的items推荐给每个用户(TopPopular),也能在特定的性能指标衡量下超越深度学习方法达到最优。

文章可复现性判断

(一)调研文章范围

作者收集了2015年到2018年 KDD、SIGIR、WWW 和 RecSys 会议上的研究工作,这些论文都是采用基于深度学习的方法来解决top-n分类问题的。在此基础上,只考虑与精度评估有关的工作,因此最终筛选出了18篇文章。

(二)可复现性的数据和代码标准

首先,尽量通过文章原作者提供的源码和数据来复现结果。由于有太多的实现细节以及验证程序需要考虑,想要单纯的依靠作者提供的资源来重现文中的结果是很难的。为了解决这个问题,作者扩大了代码和数据的搜索范围,只要是和原文章有关的代码,即便不是官方代码也考虑在内,如果实在找不到现成的实现代码和数据,就联系原文作者并等待30天。在进行了以上步骤后,将同时满足以下两个条件的文章定性为可复现文章,具体的:

1、有源代码,并且源代码只需要微小的细节改动(例如调整路径,调整工作环境)就能正确运行。如果只是有一个代码框架,而缺少许多细节,是不满足这个要求的。

2、至少有一个文中用到的数据集是可以获得并使用的(某些文章用的数据集是自建数据集或者不是公开数据集,对于作者而言很难获取)。而且训练集和验证集的划分方法也是在文中或者源码中进行明确阐述的。

最终,18篇文章中只有 7 篇满足以上条件,具备可复现性。作者还表示:“这是一个惊人的结果,如果深入追究可能会涉及到学术造假问题,就不贴那些结果不能复现的文章编号了”。

可复现工作的性能评估

在挑选出 7 篇可复现的工作后,作者进一步的评估了它们的性能。为了保证不同方法之间的可对比性,本文介绍了两种评估策略。第一种评估策略是将所用的方法和基准方法在同样的测试流程和测试集上进行评估,这有助于横向对比不同的方法在同一数据集上的性能差异,虽然这种策略在之前的类似文章中已经用过,但会导致验证方法和每个方法的原始文章中采用的方法有一定的差距,因此不能完全反应原始方法的性能(不完全复现)。

为了解决这个问题,作者提出将超参调优过程和测试过程分开进行,保证所有的方法(包括基准)方法都使用相同的测试代码,但是允许它们有不同的调参过程,这样每种方法都可以按照原文中提出的调参策略在自己的数据集上,即保证完全复现了原文方法,又保证不同方法之间具有可对比性。

基准方法的选择

所有的基准方法都是简单的非神经网络,启发式算法,或者说基于传统机器学习和统计学的方法。选择简单的非深度学习方法作为基准方法,通过和基于深度学习的方法进行对比,以验证模型复杂度的提升能否带来性能上的显著提升,作者得到的结论是不能。一方面是因为该领域的研究过于跟风使用深度学习方法,没有细致严谨地去研究问题的本质,另一方面也是因为神经网络本身没有那么强大(现在有许多工作都是对神经网络的真实能力提出了质疑),当然,学术上的不严谨也是一个重要原因(可能存在的造假行为)。

本文主要采用了如下几种基准方法:

TopPopular:直接统计“最流行”的items(物品,项目)并推荐给每个用户,这里的“最流行”可以用不同的指标来衡量。

ItemKNN:基于K最近邻算法的一种推荐算法,衡量指标是物品之间的距离,因此是基于相似物品的推荐算法。首先通过TF-IDF或BM25算法获取每个物品对每个用户的隐式评分(评价向量,rating vector,可以简单理解为该用户对该物品的需求程度),然后按照以下公式计算两个物品之间的距离:

UserKNN:基于相似用户的推荐算法,类似于ItemKNN,只不过计算样本点变成了每个用户自身的评级。

ItemKNN-CBF:基于内容过滤的相似物品推荐算法,CBF表示content-based-filtering,在标准ItemKNN的基础上,将物品自己的特征向量作为距离衡量向量。

ItemKNN-CFCBF:将每个物品的排名向量和特征向量结合,这样每个物品就由两个向量表示,通过计算两个物品的向量之间的余弦夹角来衡量相似度。

  :基于随机游走的方法,从用户 u 游走到物品 i 的概率为:

是物品 i 对用户 u 的评级向量,是用户 u 的评级,α 是阻尼因子。同理,从商品 i 游走到用户 u 的概率为:

其中是商品 i 的评级。最后,两个商品 i,j 的相似度计算公式为:

  是  另一个版本,将  输出的相似度进一步地按系数 β 扩张,所有基准方法都采用贝叶斯搜索来获取最优参数。

算法性能测试与对比结果

通过将可复现的 7 个方法与基准方法在相同数据集上进行测试,可以评估这些可复现方法的真实性能。这里主要评估之前挑选的7中可复现方法,其中只有Collaborative Variational Autoencoder(CVAE)能在同等训练条件下超越传统方法,其他算法都不如同等测试条件下的传统方法。

CMN方法的实验结果

MCRec方法的实验结果

CVAE实验结果

CDL实验结果

NCF 实验结果

SpectralCF 实验结果

结论

本文主要关注近年来发表在热门会议上的基于深度学习的 top-n 推荐算法,聚焦于它们的可复现性和真实性能。结果表明大部分算法都无法重现理想结果,甚至无法超越传统的启发式算法,这说明推荐算法领域的研究和审核需要更加严谨和仔细,算法的性能评估需要更加标准,正确的方法。文中提到的那些无法复现和效果低于预期的工作肯定会被重新审核,甚至退回。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据集
    +关注

    关注

    4

    文章

    1176

    浏览量

    24340
  • 深度学习
    +关注

    关注

    73

    文章

    5225

    浏览量

    119868
  • 自然语言处理

    关注

    1

    文章

    507

    浏览量

    13096

原文标题:数十篇推荐系统论文被批无法复现:源码、数据集均缺失,性能难达预期

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    电压缺失

    做了一块板子,电源不稳定,有缺失。最开始上电的时候还可以撑一小会稳定的,过一会儿就开始有缺失了,基本是下面的样子 ,想请教一下各位,怎么解决这个问题。 接入的是12V电源,通过下面的电路,接了
    发表于 01-11 12:28

    缺失

    D1---D16缺失什么了
    发表于 10-18 15:41

    处理数据缺失的结构化解决办法

    就是处理缺失数据。首先我们需要明白的是,没有任何方法能够完美解决这个问题。不同问题有不同的数据插补方法——时间序列分析,机器学习,回归模型等等,很难提供通用解决方案。在这篇文章中,我将
    发表于 10-26 15:36

    深度学习中开发和测试的定义

    的呢?你会发现,从网站上下载下来作为训练的图片与用户上传的图片有较大的区别——用户上传的图片大部分是使用手机拍摄的,此类图片往往分辨率较低,且模糊不清,采光也不够理想。但由于用来进行训练和测试的数据
    发表于 11-30 16:58

    信号短暂缺失下的非完备GPS定位算法研究

    信号短暂缺失下的非完备GPS定位算法研究:该文提出一种在城市峡谷等复杂环境中卫星被频繁遮挡造成卫星信号短暂缺失的非完备条件下,利用少于3颗有效卫星,实现满足一定精度要
    发表于 10-20 18:00 18次下载

    能见度与缺失分析的改进PageRank算法

    本文在对PageRank 进行分析的基础上,提出了基于链接能见度和缺失分析的改进PageRank算法,该算法根据链接不同特性赋予它不同的点击概率,同时分析了缺失率产生的原因并提出相关
    发表于 12-29 16:57 11次下载

    基于CLPSO优化LSSVM的风数据缺失部分插补

    基于CLPSO优化LSSVM的风数据缺失部分插补_陈希
    发表于 01-02 15:36 0次下载

    无线传感网络缺失值估计方法

    针对无线传感器网络(WSN)中感知数据缺失问题,提出了一种基于感知数据属性相关性的缺失值估计方法。该方法采用多元线性回归模型,对属性相关的感知数据
    发表于 12-27 16:56 0次下载

    基于距离最大化和缺失数据聚类的填充算法

    间的最大距离确定聚类中心,自动产生聚类个数,提高聚类效果;其次,对聚类的距离函数进行改进,采用部分距离度量方式,改进后的算法可以对含有缺失值的记录进行聚类,简化原填充算法步骤。通过对S
    发表于 01-09 10:56 0次下载
    基于距离最大化和<b class='flag-5'>缺失</b><b class='flag-5'>数据</b>聚类的填充<b class='flag-5'>算法</b>

    基于加性噪声的缺失数据因果推断

    推断数据存在的因果关系是很多科学领域中的一个基础问题,然而现在暂时还没有快速有效的方法对缺失数据进行因果推断。为此,提出一种基于加性噪声模型下适应
    发表于 01-14 16:06 0次下载

    科瑞电感传感器在梯级缺失和断裂检测中的应用解析

    科瑞电感传感器可应用于扶梯的扶手带测速、梯级缺失和断裂检测,为扶梯的安全运行提供稳定可靠的保障。
    发表于 03-15 16:40 1815次阅读

    基于稀疏表示的电力负荷缺失数据补全方法

    数括缺失在电力负荷数据采集过程中经常发生,对提髙算法的预测精确度带来了不利影响。现有的缺失数据补全算法
    发表于 04-13 15:43 13次下载
    基于稀疏表示的电力负荷<b class='flag-5'>缺失</b><b class='flag-5'>数据</b>补全方法

    基于张量的车辆交通数据缺失估计方法

    ( IntegrateBayesian Tensor Decomposition,IBTD)。该算法数据模型构建阶段,利用随机采样原理,将缺失数据随机抽取生成
    发表于 06-17 15:39 5次下载

    缺失值处理你确定你真的会了吗

    缺失值处理是一个数据分析工作者永远避不开的话题,如何认识与理解缺失值,运用合适的方式处理缺失值,对模型的结果有很大的影响。 本期Python数据
    的头像 发表于 10-11 11:21 3948次阅读
    <b class='flag-5'>缺失</b>值处理你确定你真的会了吗

    如何解决数据缺失问题?

    当处理数据时,常常会遇到缺失数据的情况。缺失数据可能由于各种原因引起,例如传感器故障、人为错误、数据
    的头像 发表于 06-20 15:52 8069次阅读
    如何解决<b class='flag-5'>数据</b><b class='flag-5'>缺失</b>问题?