冷启动问题的解决方案是推荐系统的一个重要的研究热点。本文解析的论文来自顶会SIGIR2020,论文构建了一个新颖的深度学习模型Heater来对新用户或新物品进行推荐。本文旨在理清顶会论文的思路和框架,详情和细节还请参考原始论文:Recommendation for New Users and New Items via Randomized Training and Mixture-of-Experts Transformation

  • 推荐系统中的冷启动问题

推荐系统有以下的几个要素:用户(User)、物品(Item)和U-I历史交互。一般来说,推荐系统通过对用户、物品的历史交互进行建模,通过对每个用户的个性化推荐以实现商业目标最大化。当然,根据场景,具体的的商业目标也是不一样的(比如视频网站希望用户的观看时长最大化、而新闻媒体可能更关注点击率,等等)。而所谓冷启动问题,就是新用户或者新物品没有任何的交互历史,所以常规的推荐系统很难对其进行建模,更没法对其进行个性化推荐了,正所谓“巧妇难为无米之炊”。

  • 冷启动问题的解决方案

新用户或新物品往往会有一些辅助信息,比如新用户的一些人口统计学特征,新物品的一些标签信息等等。一种比较常见的应对冷启动的方案就是利用这些辅助信息的向量表示(auxiliary representations),学习一个函数将这些辅助向量映射到协同过滤空间中去,得到所谓的CF representations,然后通过算内积的形式得到用户和物品间的匹配度得分,继而进行物品的排序、推荐。

辅助信息——协同过滤向量化表示——用户和物品的表示向量算内积得到匹配得分——通过该得分进行排序、推荐

该体系的训练方式又分为两大分支,separate training method和joint training method。首先,我们把通过结合U-I交互信息和辅助信息学习到协同过滤向量表示,再通过内积得到匹配得分的模型统称为CF model,学习这个模型的任务记为任务T1;其次,我们称学习到将辅助信息映射到协同过滤向量表示的函数的任务记为T2。显然,对于有交互的用户和物品(warm start),常规的CF model就可以对其进行建模,而对于没有历史交互的新用户或新物品,则必须完成任务T2。

  1. separate training method:顾名思义,该模式下T1和T2是分开训练的。对于冷启动样本而言,只要将从T2学到的映射函数作用到其辅助信息上,就能得到他的CF向量表示了。需要说明的是,T2的训练集来自于那些warm start样本的辅助信息和之前在T1里学到的他们的CF向量表示。这种训练方式有个缺点,即所谓误差累计问题(the error superimposition problem),因为T2的训练是在T1的训练结果的基础上的,而T1的训练不可能完美无缺,那么从T1那里累计的误差可能会严重影响甚至误导T2的训练。

  2. joint training method:这种方式类似于直接学习T1,直接学习从辅助信息到CF向量,再内积算匹配度,最后传入损失函数。这种训练方式的不足之处在于它试图仅仅利用辅助信息直接映射为CF表示,容易学不到一个好的效果,在论文里作者称之为the ineffective learning problem

另外,这两种方式有一个共同的不足,那就是对于所有的U或I使用单一映射函数将其辅助信息映射为CF表示。而很多时候辅助信息是杂乱无序的,使用单一映射很难保证在任何情况下都能得到较好的CF表示。

  • Heater

由上一节内容可得,现有的方法都存在一些问题,针对这些问题,本文作者构造了一个新的针对冷启动问题的训练框架,称之为Heater。Heater的架构如下图所示:

Heater框架示意图

该框架主要的创新点有如下三点,分别对应上一小节提出来的三个存在的问题:

  1. 融合训练:由上图可知,Heater融合了separate training method和joint training method,在一个框架里既有普通CF模型的损失函数,也有衡量将辅助信息向量映射为CF向量的拟合程度的损失函数(similarity constraint),最终的损失函数是这两者的加权和。这种策略能一定程度上缓解error superimposition问题。
  2. 随机初始化训练:所谓随机初始化训练(randomized training),就是以某个概率值使用预训练的CF向量表示(pretrained CF representation)来直接代替辅助信息向量的映射结果(图中的)。这样做的目的是以一定概率使用高质量的pretrained CF representation来缓解ineffective learning问题。
  3. Mixture-of-Experts Transformation:这里的transformation指的是将辅助信息向量映射到CF表示向量的转换函数。之前有提到,由于辅助信息表示往往存在诸多问题,很难使用单一的转换函数将其映射为高质量的CF表示向量。为此,论文构造了一个Mixture-of-Experts的转换器,融合多个决策网络的判断,在遇到多样化的辅助信息表示时,能够“个性化”地在不同的情况下使用不同的角度将其映射到CF向量化表示。

Randomized Training

Mixture of Experts Transformation

在实验阶段,论文作者在三个数据集上和多个baseline进行了对比,详情请参考论文。同时作者也设计了ablation study部分,实验表明,论文的三个创新点均对最终的准确率起到了显著的正面效应。

SIGIR2020推荐系统论文解析:Recommendation for New Users and New Items相关推荐

  1. SIGIR2020推荐系统论文聚焦

    目录 前言 推荐论文列表 前言 第43届国际信息检索研究和发展大会(SIGIR)将于2020年7月25-30日在美丽的中国西安举行.此次大会共收到了555篇长文投稿,录用147篇,长文录取率26.4% ...

  2. KDD2021推荐系统论文集锦

    嘿,记得给"机器学习与推荐算法"添加星标 一年一度的知识发现与数据挖掘顶级会议SIGKDD将于8月14日至18日在线上举行.据统计,今年共有1541篇有效投稿,其中238篇论文被接 ...

  3. 资源分享 | WSDM2020推荐系统论文打包下载

    前言 在今年2月份召开的WSDM是检索和推荐领域的重要会议,虽然只是CCF定义的B类会议,但是却也是推荐方向研究者需要重点关注的.之前分享的一篇关于利用对抗技术来权衡推荐精度与用户隐私的文章就出自于W ...

  4. 推荐系统论文:DKN Deep Knowledge-Aware Network for News Recommendation

    推荐系统论文:DKN Deep Knowledge-Aware Network for News Recommendation 概述 模型实现 概述 这是一篇结合了知识的推荐系统. 本质上是对新闻标题 ...

  5. 论文解析:Deep Reinforcement Learning for List-wise Recommendations

    论文解析:Deep Reinforcement Learning for List-wise Recommendations 简介 京东在强化学习推荐系统方面的工作 背景 推荐系统存在的问题: 无法通 ...

  6. 重读Youtube深度学习推荐系统论文,字字珠玑,惊为神文

    作者简介,王喆,硅谷高级机器学习工程师. 本文转载自知乎专栏 https://zhuanlan.zhihu.com/p/52169807 这里是王喆的机器学习笔记,每隔一到两周我会站在算法工程师的角度 ...

  7. 带你重读Youtube深度学习推荐系统论文,惊为神文

    来源:知乎专栏 作者:王喆 本文约5400字,建议阅读10+分钟. 本以为毫不起眼的地方,也藏着Youtube工程师宝贵的工程经验. 这里是王喆的机器学习笔记,每隔一到两周我会站在算法工程师的角度讲解 ...

  8. 对话推荐系统_RSPapers | 对话推荐系统论文合集

    随着大数据时代的飞速发展,信息逐渐呈现出过载状态.推荐系统,作为近年来实现信息生产者与消费者之间利益均衡化的有效手段之一,越来越发挥着举足轻重的作用.像今日头条.抖音这样的APP之所以如此之火,让人们 ...

  9. 【推荐系统】AAAI2022推荐系统论文集锦

    2022年第36届人工智能顶级会议AAAI论文列表已经放出,此次会议共收到9251篇论文提交,其中9020篇论文被审稿.最终录取篇数为1349篇,录取率为可怜的15%.由于境外疫情形势依然严峻,大会将 ...

最新文章

  1. 按键精灵-Sub和Function
  2. 每天,每周,每月,每年程序员该做的事情
  3. kakfa中的ISR解释
  4. mysql-5.7.13-winx64如何安装_mysql 5.7.13 winx64安装配置方法图文教程
  5. Java集合之HashMap源码分析
  6. ubuntu软件安装 caffe相关软件安装 学习笔记
  7. java纪元时间_Java实现纪元秒和本地日期时间互换的方法【经典实例】
  8. VMware ESXi 环境备份与还原处理案例
  9. python3 os.system 异步执行_《sentos python教程》 Python os.system(command),这样执行的command命令,和主程序是异步的吗?...
  10. Dijkstra算法的C语言程序
  11. MySQL详细安装教程
  12. 结构梁配筋最牛插件_老师傅总结建筑结构设计技巧经验,看完涨知识了
  13. nifi 安装 使用案例
  14. 谷歌浏览器打开阅读清单
  15. 团队中各成员间相互协作办公用哪一个软件
  16. eclipse的启动失败提示发生了错误,请参阅日志文件
  17. 美团一面究竟有多难?
  18. python numpy库 一些统计量计算
  19. 零中频接收机频率转换图_【新品情报站】俄罗斯产VisAir HF DDC/DUC SDR 收发信机视频|接收机|转换器|ddc|天线|调谐器...
  20. 刚子扯谈:一起聊聊微信这孙子

热门文章

  1. windows安装Oracle12 (服务端+客户端)
  2. java base64写入文件_java之文件与base64字符之间的相互转换
  3. 草图大师卡死后找到自动保存备份文件的3种解决方法
  4. 《Java 开发手册》重磅发布,向全球开发者致敬!
  5. 嵌入式linux环境取得U盘容量等信息的方法
  6. (附源码)计算机毕业设计SSM旅游出行系统
  7. Android图像处理之Paint
  8. 2015小米校招技术类笔试题
  9. 机器学习---sklearn
  10. 优秀课程案例:使用Scratch制作打弹球游戏2-得分过关