zoukankan      html  css  js  c++  java
  • 论文阅读 | DropoutNet: Addressing Cold Start in Recommender Systems

    开源代码

    主要思想:content + preference,不需要引入额外的内容信息和额外的目标函数,通过dropout来模拟数据缺失进行训练。

    本文提出的一种模型,可以结合Memory和Content的信息,但是只使用一个目标函数,即拥有了以往Hybrid model的性能,还解决了冷启动问题,同时大大降低了模型训练的复杂程度。

    主要定义:


     

    Preference:

     代表的是N个user的集合;

     代表的是M个Item的集合;

    u和 v 形成的 M*N 的preference矩阵为 R ,而 Ruv 代表的是用户u对项目v的preference,即R的第u行第v列。

    对于一个新的User或者Item,就有 Ruv = 0。

    Content:

    content可以是通过各种渠道获取的额外信息,信息越多,对推荐的贡献也会越大。

    对于user来说,content可以是user的个人资料,如性别年龄个人评价等等,也可以是其社交网络的信息,对于item,content可以是一个商品的基本信息,如产地、类型、品牌、评论等等,也可以是相关的视频图片资料。

    user和item得到的content feature分别为 Φu 和 Φv, 则Φu u(Φv v)就代表用户u(item v)的content向量。

    目标就是使用 R Φu Φv 来训练一个准确又鲁棒的模型。

    LFM:

    一种基于矩阵分解的用来预测用户对物品兴趣度的推荐算法。

    相比USerCF算法(基于类似用户进行推荐)和ItemCF(基于类似物品进行推荐)算法;我们还可以直接对物品和用户的兴趣分类。对应某个用户先得到他的兴趣分类,确定他喜欢哪一类的物品,再在这个类里挑选他可能喜欢的物品。

    把原来的items和users的矩阵分成两个矩阵,提高运算效率。

     

    模型方法

    把R的每一行每一列作为Users和Items的preference向量输入,难以训练(Users和Items数量太大)。利用LFM:我们先把R分解成两个小矩阵U和V,我们可以认为,U和V相乘可以基本重构R,涵盖了R的绝大部分信息。所以,在preference方面,我们使用U和V来代替R作为模型的输入。

    我们对于用户u,输入是  [Uv,  Φu u];对于项目v,输入是 [Vv,  Φv v],然后分别输入一个深度神经网络中,得到用户u和项目v各自的一个新的向量U^u  和 V^v 。

    用新得到的u和v的向量 U^u  V^v ,我们可以接着相乘得到一个R的新的估计U^u V^v T .

    框架图如下:

    目标函数:

    希望我们训练出来的两个user和item的向量尽可能拟合原来的向量。

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

    模拟冷启动:

    按照一定的抽样比例,让user或者item的preference向量为0,即 Uu 或者 Vv 为 0。所以,针对冷启动,其目标函数为:

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

    设置dropout的时候,鼓励模型去使用content信息;不设置dropout的时候,模型会尽量使用preference信息。另外,本身Dropout作为一种正则化手段,也可以防止模型过拟合。

    Transform:只有少数perference的情况:

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

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

    训练过程:有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。

    实验结果:

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

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

    值得注意的是这个DeepMusic,这是一个纯content-based model,意思是不使用preference信息。可以看到,在warm start这种有着丰富preference信息的环境下,它的效果远不如利用preference的其他模型。而在cold start这种没有preference信息的情况下,效果就超过了hybrid model。

  • 相关阅读:
    [DB] 数据库的连接
    JS leetcode 翻转字符串里的单词 题解分析
    JS leetcode 拥有最多糖果的孩子 题解分析,六一快乐。
    JS leetcode 搜索插入位置 题解分析
    JS leetcode 杨辉三角Ⅱ 题解分析
    JS leetcode 寻找数组的中心索引 题解分析
    JS leetcode 移除元素 题解分析
    JS leetcode 最大连续1的个数 题解分析
    JS leetcode 两数之和 II
    JS leetcode 反转字符串 题解分析
  • 原文地址:https://www.cnblogs.com/shona/p/13573770.html
Copyright © 2011-2022 走看看