论文笔记 | NIPS2017 | DropoutNet: Addressing Cold Start in Recommender Systems

dropoutnet-title.jpg

论文地址:https://papers.nips.cc/paper/7081-dropoutnet-addressing-cold-start-in-recommender-systems

官方代码:https://github.com/layer6ai-labs/DropoutNet

一 为什么读这篇

第一次发现是在读《Warm Up Cold-start Advertisements: Improving CTR Predictions via Learning to Learn ID Embeddings》这篇论文的时候,最近看了几篇YouTube的论文,发现也提到了这篇,正好在做冷启动有关的事,看看从本文中能借鉴哪些点子过来。

二 截止阅读时这篇论文的引用次数

2020.2.24 32次。不算少。

三 相关背景介绍

中了17年的NIPS,搞推荐的中NIPS可是真不多见。几个作者都是加拿大多伦多大学的,来自一个叫layer6的公司,这个公司还是蛮屌的,不少kaggle grandmaster都有关注过,而且是推荐和CV双修,CVPR也中过,拿过YouTube-8M视频理解的冠军,也拿过18年RecSys比赛的冠军,19年RecSys比赛的亚军。放一个二作Guangwei Yu的个人主页:http://www.cs.toronto.edu/~guangweiyu/

四 关键词

cold start

user cold start

item cold start

dropoutnet

五 论文的主要贡献

1 提出对输入做dropout的训练方法来解决冷启动问题

2 同时解决user冷启动和item冷启动

3 可以兼容各种网络架构,无痛提供冷启动能力

六 详细解读

0 摘要

与当前给item增加额外的内容信息的方法不同,本文聚焦于优化,并表明通过dropout显式训练的神经网络可以用于冷启动。本文模型可以应用于任何现有的隐式模型之上,从而在发挥深度架构威力的同时,有效的提供冷启动能力。

1 介绍

基础的隐式模型无法结合内容,因此提出了许多混合模型来结合偏好和内容信息。然而,大多数混合模型引入了额外的优化内容,从而使学习和推理大大复杂化。此外,item的内容部分通常是生成式的,这迫使模型去”解释“内容,而不是利用它来使推荐准确性最大化。

本文方法基于以下观察:冷启动等同于数据缺失问题,其中缺失的是偏好信息。因此,本文不是为模型增加其他内容信息,而是修改了学习过程,以针对缺失的输入明确地对模型进行条件处理。核心理念是在mini-batch中给输入应用dropout,从而训练DNN可以泛化到缺失的输入。最终的模型比许多混合模型都要简单,只使用一个目标函数来联合优化所有部分。

本文方法的另一个优点是,可以应用于任何现有的隐式模型之上,以提供/增强其冷启动能力。

2 框架

典型的CF问题有个user ,个item 。user对item的反馈可以表示为的偏好矩阵,其中是user 对item 的偏好。用表示对有偏好的一组user。用表示user 有偏好的一组item。在冷启动中没有偏好信息可以用,因此当给定user 和item 时,冷启动可以定义为:,。

此外,在许多领域我们常常可以获取user和item的内容信息。对于item来说,这种信息可以来源于文本,音频,图像/视频。对于user来说,可以获取画像信息(年龄,性别,位置,设备),社交媒体信息(Facebook,Twitter)。这类数据可以为推荐模型提供非常有用的信号,并且在稀疏和冷启动设置中特别有效。应用相应转换后,大多数内容信息都可以通过固定长度的特征向量表示。本文使用和分别表示user和item的内容信息。当内容缺失时相应的特征向量设置为0。目标是结合内容,来使用偏好信息,去学习准确健壮的推荐模型。

3 相关工作

collaborative topic regression (CTR)

Collaborative topic Poisson factorization (CTPF)

Collaborative deep learning (CDL)

以上这些模型表现不错,但有共同的缺点:

1 它们将偏好和内容都结合到目标函数中,从而使其变得非常复杂

2 每个模型的公式均假设冷启动item不适用于冷启动user(不能同时解决两者)

本文与YouTube DNN方法最接近,与其主要关注热启用户不同的是,本文为user和item开发了类似的模型,并展示了如何训练这些模型来显式处理冷启动。

4 本文方法

与YouTube DNN类似,本文使用隐式表示作为偏好输入。隐式模型通常使用低秩矩阵和的乘积来近似偏好矩阵:

对每个user和item分别设置输入为和。

4.1 模型架构

给定结合偏好-内容的输入,本文提出应用DNN模型将其映射到包含内容和偏好信息的新隐式空间中。形式上,偏好和内容首先输入相应的DNN 和,然后将顶层激活连接在一起,并传给网络,输出隐式表示。item的处理与之类似。本文使用分开的部分来处理偏好和内容输入,这样可以处理复杂的结构化内容,例如无法与原始格式的偏好输入直接关联的图像信息。使用这种拆分架构的另一个优势在于它允许使用任意可用的预训练模型来处理和。图1是整个模型的架构(这不就是普通的双塔吗。。)

dropoutnet-fig1.jpg

4.2 用于冷启动的训练

本文讨论了现有的混合模型通过添加其他目标项来训练模型,这种方式当偏好不可用时会退化为仅有内容表示。此外,目标的内容部分通常是生成式的,这迫使模型去解释观察到的数据,而不是使推荐精准最大化。对与推荐无关的内容建模可能浪费了模型的容量。

本文借鉴去噪自动编码器《Stacked denoising autoencoders: Learning useful representations in a deep network with a local denoising criterion》的理念,通过从损坏的版本来重构输入的方式训练模型。目标是当部分输入缺失时仍能让学到的模型产生准确的表示。为了实现这一点,本文提出的目标函数,在输入通过模型后重新生成相关性分数:
\mathcal{O}=\sum_{u, v}\left(\mathbf{U}_{u} \mathbf{V}_{v}^{T}-f_{u}\left(\mathbf{U}_{u}, \mathbf{\Phi}_{u}^{u}\right) f_{V}\left(\mathbf{V}_{v}, \mathbf{\Phi}_{v}^{\mathcal{V}}\right)^{T}\right)^{2}=\sum_{u, v}\left(\mathbf{U}_{u} \mathbf{V}_{v}^{T}-\hat{\mathbf{U}}_{u} \hat{\mathbf{V}}_{v}^{T}\right)^{2}
最小化输入隐式模型和DNN产生的得分之间的差异。当所有输入都可用时,目标变为将内容权重设置为0,学习偏好输入的恒定函数。这是理想的属性,原因如下。

在冷启动中要么是缺失,要么是缺失(或两者都缺失),因此本文的核心理念是对输入做dropout来进行训练。使用随机mini-batch优化,对user-item配对进行随机采样来计算梯度并更新模型。在每个mini-batch中,随机选择一部分user和item,并将它们的偏好输入设置为0,然后再输入模型。因为“dropped out”了配对,因此模型不得不在没有见过偏好输入时重构相关分数:

user冷启动:

item冷启动:

用dropout训练有两方面的效果:带有dropout的配对鼓励模型仅使用内容信息,而没有dropout的配对鼓励模型忽略内容并只是简单的使用偏好输入。网络的效果在两个极端之间是平衡的。因此dropout具有与混合偏好-内容相似的效果,但容易优化的,简单得多的架构。

类比去噪自动编码器,本文模型经过训练可以从噪声版本中重现输入。噪声以dropout的形式出现,可以完全移除一部分输入维度。然而,本文并不是重建实际上未损坏的输入,而是使原始空间和重建空间中的点之间的成对距离最小化。考虑相关分数和,作为一维空间中的一组点,目标是保持本文模型产生的点和原始集合点的相对顺序。本文聚焦于重建距离,因为它有更大的灵活性,这样可以使模型学习全新的隐式空间,而不是试着从另一个模型中学习表示。这个目标有点类似许多降维模型,都是将数据投影到低维空间,同时保留点之间的相对距离。

公式2中目标函数的缺点在于,它取决于输入隐式模型,取决于它的准确性。然而通过实验发现这个目标函数可以很好的生成健壮的模型。这主要有两点优势:第一是实现简单,没有额外的参数需要去学习。第二是在mini-batch中,user-item配对可以通过采样来更新网络。

4.3 Inference

一旦完成训练,就可以固定模型,做前向传播来推断新的隐式表示。理想情况下,将在user(item)的所有阶段中连续应用模型——从冷启动开始,到最初的几次交互,最后到建立稳定的偏好画像。然而当我们从冷启动用户中第一次观察偏好以更新隐式表示时,我们需要推断输入偏好向量。由于当前许多领先的隐式模型都使用复杂的非凸目标,因此使用新的偏好来更新隐式表式并非易事,需要进行迭代优化。为了避免这种情况,本文使用一个简单的技巧,将每个user表示为与user交互的item的加权和,直到重新训练输入隐式模型。

给定冷启动用户,其生成的交互集合为,用中的item的隐式表示的平均值来近似(公式4):

通过这种近似,我们就可以通过user DNN的前向传播来更新表示:

随着新数据的收集,该过程可以几乎实时地连续应用,直到重新训练输入隐式模型为止。冷启动item用类似的方式来实现,通过平均用户表示来表示item。通过这种近似得到的表示的分布可以偏离由输入隐式模型产生的分布。本文显式的训练时使用类似的想法进行dropout,以进行冷启动。

在整个学习过程中,在每个mini-batch中随机选择的user和item子集的输入偏好将替换为公式4。本文在dropout和该变换中进行交替,并控制每个变换的相对频率(例如dropout比例)。完整的学习过程如算法1所示:

dropoutnet-alg1.jpg

5 实验

选择的这两个公开数据集是因为它们都包含内容信息。使用表示dropout比率,对每个batch随机选择个user和item。在batch1中用dropout来选择user和item,在batch2中用inference变换这样的顺序。

5.1 CiteULike

5551个user,16980个article,204986个user-article配对。文本内容信息包括标题和摘要,没有用户内容信息。只将dropout应用于item偏好,因为仅仅有item内容信息可用。图2展示了dropout比率(drop的概率)在0到1之间时热启动和冷启动的recall@100指标。

dropoutnet-fig2.jpg

从图2中可以发现热启动drop比率到0.7时指标开始急剧下降。而冷启动准确率随着dropout的提升而稳定增加。更重要的是,没有dropout的冷启动效果很糟,即使dropout有0.1时也有超过60%的提升。

dropoutnet-table1.jpg

5.2 RecSys2017

社交网络公司XING(类似LinkedIn)的user-job交互数据,包括150万user,130万job,超过3亿条交互。交互类型有6种:曝光,点击,收藏,回复,删除,招聘。对于user也有画像信息。对于item也有相关的内容信息。经过清洗和特征变换后得到831个user特征,2738个item特征来分别生成和。

这里有个细节是用tanh激活,用ReLu和sigmoid激活效果都很糟。

dropoutnet-table2.jpg

从表2中似乎能发现网络越深,对冷启动越好。

dropoutnet-fig3.jpg

通过与DeepMusic的比较,发现即使目标只是冷启动,结合偏好信息输入模型也是非常有用的。

dropoutnet-fig4.jpg

图4说明了从冷启动到有几次偏好这个过程中,本文的模型无需重新训练,有很好的泛化性。

七 小结

看这篇文章感觉好多用语有点不像是推荐系统领域里常用的,读着稍微有点别扭。此外看似公式很多,实际上还是比较简单的。思路非常巧妙,几个trick的使用也很符合直觉。不同于各种对网络结构修改的方法,本文通过对训练方法的创新来解决冷启动问题确实与众不同。

素质四连

要解决什么问题

推荐系统中的冷启动问题

用了什么方法解决

提出对输入做dropout的训练方法

效果如何

在两个公开数据集上,保证热启动效果不降的同时,大幅提高冷启动效果

还存在什么问题

pass

算法背后的模式和原理

训练方法优化

你可能感兴趣的:(论文笔记 | NIPS2017 | DropoutNet: Addressing Cold Start in Recommender Systems)