前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PaperReading-使用Dropout解决推荐系统冷启动问题

PaperReading-使用Dropout解决推荐系统冷启动问题

作者头像
beyondGuo
发布2019-05-16 16:49:06
7780
发布2019-05-16 16:49:06
举报
文章被收录于专栏:SimpleAI

推荐系统回顾 & 冷启动问题

推荐系统的主流算法分为两类:基于记忆的(Memory-based,具体包括User-based和Item-based),基于模型的(Model-based)和基于内容的(Content-based)。在基于模型的方法中,隐模型(Latent Model)又是其中的代表,并且已经成为大多数推荐系统的选择,例如基于矩阵分解的LFM(Latent Factor Model)。

LFM主要依靠Users和Items形成的偏好矩阵(Preference Matrix)来估计出一个可以补全原偏好矩阵的两个分解矩阵。这种方法简单有效,而且因为分解出来的矩阵大小远远小于原矩阵,所以也十分节省存储空间。

但是,以LFM为代表的利用Users和Items的交互信息来进行推荐的隐模型,矩阵越稀疏,效果就会越差,极端情况就是,来了一些新的User或者Item,它们压根没有任何历史交互信息,即冷启动(Cold Start)问题,这时LFM就真无能为力了。因此,不少的方法开始利用Users和Items的内容信息(Content)来辅助解决冷启动问题,跟之前的LFM结合起来,形成Hybrid model。甚至有一些模型完全使用基于内容的方法(Content-based)来进行推荐。然而,Hybrid的方法,使得模型拥有多个训练目标函数,使得训练过程变得十分复杂;而完全基于内容的方法,在实证检验中被发现,性能远远不如Memory-based的方法。

本文介绍的一篇论文,提出了一种借用神经网络中的Dropout的思想,来处理冷启动问题,想法十分新颖而有趣。而且,本文提出的一种模型,可以结合Memory和Content的信息,但是只使用一个目标函数,即拥有了以往Hybrid model的性能,还解决了冷启动问题,同时大大降低了模型训练的复杂程度。

Ⅰ. 论文主要思想

前面讲了,要处理冷启动问题,我们必须使用content信息。但是想要整个系统的推荐效果较好,我们也必须使用preference信息。目前最好的方法,就是二者结合形成的Hybrid方法,但是往往有多目标函数,训练复杂。于是本文的作者就想:

如何把content和preference的信息都结合起来,同时让训练过程更简单呢?

作者们想到,冷启动问题,就相当于一种数据缺失问题。而数据缺失的问题又可以使用Dropout来进行模拟

因此,针对冷启动问题,本文不是引入额外的内容信息和额外的目标函数,而是改进整个学习过程,让模型可以针对这种缺失的输入来训练。

Ⅱ. Notations

由于微信公众号没法打公式,下面用图片代替:

Ⅲ. 模型框架 & 训练方法

前面讲过,我们是使和来训练模型,R如何输入呢?直接的想法就是把R的每一行每一列作为Users和Items的preference向量输入,但是由于Users和Items数量太大了,难以训练。这个时候,之前的LFM就派上用场了。我们先把R分解成两个小矩阵U和V,我们可以认为,U和V相乘可以基本重构R,涵盖了R的绝大部分信息。所以,在preference方面,我们使用U和V来代替R作为模型的输入。

框架图如下:

定义我们的目标函数为:

这个目标函数一开始不大理解,直接从公式看,就是希望我们训练出来的两个user和item的向量尽可能拟合原来的向量可以看做是通过Latent Model得到的,而可以看做是通过一个深度神经网络DNN得到的。所以目标函数就是缩小Latent Model与DNN的差异。而Latent Model的结果是固定的,DNN是依靠我们训练的,所以是以Latent Model为标杆来训练的。

U和V都是有比较丰富的preference信息的向量,在实际推荐中,如果preference信息比较丰富,那么我们只利用这些信息就可以得到很好的推荐效果。我们在冷启动时利用content信息,也是希望能够达到有preference信息时候的性能。所以,当我们有充足的preference信息的时候,训练出的模型给予ntent内容的权重会趋于0,这样就回归了传统的Latent Model了。

在训练时,为了模拟冷启动问题,我们会按照一定的抽样比例,让user或者item的preference向量为0,所以,针对冷启动,其目标函数为:

这个时候,由于preference向量的缺失,所以content会竭尽所能去担起大任,从而可以逼近Latent Model的效果,这也是我们的目的:preference不够,content来凑。

从上面的分析可以看出,仅仅使用一个目标函数,这个模型就可以一箭双雕:设置dropout的时候,鼓励模型去使用content信息;不设置dropout的时候,模型会尽量使用preference信息。另外,本身Dropout作为一种正则化手段,也可以防止模型过拟合。

上面解释了模型在热启动和冷启动时是怎么处理的。此外,文章还提出了在冷启动后,用户或者项目开始产生少数的preference信息的时候应该怎么处理,这样才能让不同阶段无缝衔接。

以往处理这种准冷启动问题也很复杂,因为它既不是冷启动,但是可用的preference信息也十分稀少。而更新一次latent model是比较费时的,不能说来一些preference信息就更新一次,再来推荐。所以本文给出了一种简单的方法,用user交互过的那少数几个item的向量的平均,来代表这个user的向量。他们称这个过程为transformation。所以,用户有一些交互之后,先这样transform一下,先拿去用,后台慢慢地更新latent model,等更新好了,再换成latent model来进行推荐。

所以,作者在模型训练的时候,还增加了这样的一个transform过程。

这样,整体的训练算法就是这样的:

Ⅳ. 实验 & 结果展示

训练过程是这样的,我们有N个users和M个items,所以理论上可以形成N×M个样本。

设定一个mini-batch,比如100,每次抽100个user-item pair,设定一个dropout rate,例如0.3,则从100个用户中选出30个pair。对于这30个pair,我们轮流使用dropout和transform来处理后输入DNN,其余的70个则直接输入DNN。

接下来看看实验。

实验使用的数据集是一个科学文章数据库,用户可以在上面收藏各种文章,系统也会向用户推荐文章。

文章的content向量是tf-idf向量,用户由于没有content信息因此忽略了。另外,preference矩阵R稀疏程度达到99.8%,因为平均每个用户收藏文章30多篇,而数据集中有一两万篇文章。

看看效果:

可以看出来cold start问题中,使用dropout可以大大提升推荐性能。但是过高的dropout rate会影响warm start的性能。

另外,作者也将模型和之前的一些模型做了对比,其中:

CTR和CDL是hybrid model,WMF是latent model,DeepMusic则是一个content model。

作者还提到他们模型的另一大优点就是,可以轻松地结合到之前的其他模型上,所以,作者将它们的模型和WMF以及CDL结合,称为DN-WMFDN-CDL。对比如下:

可以看到,在cold start中,DN-WMF取得了最佳效果,而且DN-WMFDN-CDL都超过了之前的模型。这个不意外。

在warm start中,DN-WMFDN-CDL稍稍逊色于以往的模型,这时hybrid model取得了最佳效果,但是确实差距很小。但是考虑到DN-WMFDN-CDL的模型比hybrid模型简单地多,所以基本扯平。

值得注意的是这个DeepMusic,这是一个纯content-based model,意思是不使用preference信息。可以看到,在warm start这种有着丰富preference信息的环境下,它的效果远不如利用preference的其他模型。而在cold start这种没有preference信息的情况下,效果就超过了hybrid model。这个时候WMF这种纯靠preference根本不能算了。这也就解释了,为什么前面的目标函数要以preference-based的latent model为标杆了。

在另外一个数据集上的结果这里直接放出,就不赘述了:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SimpleAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 推荐系统回顾 & 冷启动问题
  • Ⅰ. 论文主要思想
  • Ⅱ. Notations
  • Ⅲ. 模型框架 & 训练方法
  • Ⅳ. 实验 & 结果展示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档