Top-K推荐中的自适应概率度量学习

原创
10/14 17:37
阅读数 816


摘要:随着互联网内容和服务地迅速增长,用户发掘感兴趣产品的难度也日益增长。因此,个性化推荐系统发挥着越来越重要的作用。尽管矩阵分解和基于深度学习的方法已被证明能有效地对用户偏好进行建模,但它们的偏好度量方式违反了三角不等性因而无法捕获更细粒度的偏好信息。为了解决这个问题,我们提出了一个基于距离度量的推荐模型,该模型具有几个有趣的方面:(i) 每个用户和物品都通过高斯分布进行参数化以捕获学习过程中的不确定性;(ii) 提出了一种自适应间隔生成方案,用来根据不同训练三元组生成不同大小的间隔;(iii) 在目标函数中加入了显式的用户-用户/物品-物品相似性建模。我们将Wasserstein距离用于偏好打分,因为它服从三角形不等性并且可以测量概率分布之间的距离。通过使用五个真实的数据集和同类的方法比较,在Top-K推荐的召回率方面,我们提出的模型比现有的最佳模型好4-22%。

马辰,加拿大麦吉尔大学(McGill University)计算机系五年级博士生,导师为Xue Liu教授,研究方向为数据挖掘与推荐系统。


论文地址:

https://dl.acm.org/doi/10.1145/3394486.3403147



一、背景


随着互联网服务增长,用户可以获得更多的在线商品或者内容,这些用户和物品交互的数据就促成了一个新的服务,即个性化推荐服务。越来越多的互联网公司开发了针对用户的推荐服务,例如奈飞会根据用户的观影历史推荐不同类型的新作品。据统计表明奈飞有超过70%的数据是由推荐系统得到的。同样的例子在Quora上也是一样的,系统根据我们的浏览历史或提问历史推荐我们可能感兴趣的回答,可见这样一种服务已经广泛存在于我们的生活当中。



通常这样的推荐问题会被制作成基于用户-物品的打分矩阵,即使其成为一个矩阵填补问题。根据矩阵中能够收集到的用户打分基本数据,作者希望通过这些数据判断用户在那些没有打分的物品上的喜好是怎样的。因此在这篇论文里面所研究的问题是:基于对用户收集到的喜好,希望对用户推荐一些没有看过,但可能是潜在感兴趣的新物品。比如模型会对用户推荐10个或者20个物品,然后看有多少是真正符合用户喜好的,然后去计算推荐效果。



为了解决这个问题,有两种现在比较流行的解决方式,第一种叫Point-wise,第二种叫Pair-wise。第一种比较关注矩阵中物品的打分值的大小,其预测值是二进制的,例如在打分的时候用户1、电影3的打分要尽量接近于1,作为用户看过电影。第二种方式不关心打分值的绝对大小,而是用户打分的相对大小,例如预测用户1对电影3和电影4的评分  。



这两个方法在Top-K推荐系统上都能获得较好的效果,但是Pairwise更具有计算效率。因为不需要计算用户在所有物品计算上的打分,所以能够只用一小部分样本完成模型的学习,这种方法不管是学术上还是工业上都在广泛应用。至于如何评判用户的喜好程度呢?通常使用用内积的方式,这是一种直接的表达方式,距离计算也是一种较流行的方式。利用距离有一个很大的好处,它可以确保三角形不等式,如果两个用户对同一部电影进行评级,这将使两个用户在潜在空间中的映射距离更近。值得注意的是内积是数值越高用户越喜欢,距离是相反,越小越喜欢。



本次分享主要讲我们是如何用距离计算生产Top-k模型。在距离计算中,i代表用户,j代表物品,且u和v都需要通过学习获得。在损失函数中,j是用户看过的某个物品,k是用户没有看过的物品,Si就表示用户所面临的所有选项,每次计算都要从用户看过的物品里面选一个,从没有看过的物品里面选一个。计算要使得用户-看过物品的距离小于用户-未看过物品的距离。这个小于程度的距离是由超参数m控制的。M的值是一个重要的值,控制函数什么时候产生梯度。


二、解决问题


基于上面的过程,提出了三点改进意见:


1. 在学习过程中,模型只相信确定性的嵌入,却不处理不确定性的嵌入,那有没有某种方式可以同时学习不确定性嵌入,使得学到的嵌入是具有一定置信度的。


2. 损失函数中的margin参数在训练期间是固定的。


  1. 但作者认为在不同的训练阶段margin的值可能会不太一样的。

    例如在初期的时候,如果margin太大会将用户潜在喜欢的物品推离的较远;

    而训练后期可以将margin设置的较大,这时候模型已经有较大的置信度。



  2. 不同用户可能需要不同margin,兴趣广泛的就需要一个较小的margin;

    兴趣比较专注的就需要一个较大的margin。

3. 在前面提到的解决方案,并没有提及到用户-用户,物品-物品之间关联性的联系,在以往的工作中,这种显示的关联是很重要的一点,我们希望加入模型中最终提升模型的推荐效果。


基于这三点,提出了不同解决方案。



对于第一个问题,为了捕捉到训练当中用户的确定性和不确定性嵌入,作者相当于把用户和物品模拟成为了高斯分布,这些高斯分布的μ和∑都成为可学习的参数。其中不确定性可以通过对角协方差矩阵捕获。在定义完用户和物品的高斯分布之后,需要考虑如何计算两个高斯分布之间的距离,这里采用了Wasserstein distance来衡量用户对物品的喜好程度。它有两点比较好的优势,第一点:它本身是用于计算距离的,第二点可以从公式中看出它的形式很简洁,方便计算。



为了解决第二个问题,提出了一种自适应margin方程,里面包含了用户i,兴趣物品j,不感兴趣物品k。因此,参数Φ将固定值margin替换为margin生成函数。 然而,这可能不会产生适当的margin。损失函数中直接出现,减少损失的一个简单方法是减少的输出。最后,将给出可能等于0的非常小的值,这不是一个理想的值。因此,作者将这个问题转化为一个具有内部损失和外部损失的双层优化。内部损失集中在优化θ上,外部损失集中在优化Φ上。外部损失还试图验证生成的margin是否良好。值得注意的是,外部损失使用的是固定的margin。生成的margin和模型参数耦合在一起。给定margin优化margin生成参数;给定模型参数优化margin。



在这个双层优化里面有两个更新的阶段,先固定Φ去更新θ,然后固定θ去更新Φ。在里面重要的一点是,在更新Φ时,作者构建了一个代理函数,将Φ的更新链接到外部优化。



这个图具体地显示了双层优化具体是怎么运行的。首先是用户和物品的嵌入,把它标注成θ,它有两个输出,一个输出到margin生成函数里,生成相应的margin。第二个也同时参与了内部损失的计算,然后通过更新函数输出θ的更新值,这就是内部损失的更新过程。代理方程复制了一份内部损失函数中未更新的θ,传入了外部损失函数中,然后通过Φ的更新函数去更新Φ的参数。



我们有一个交替的训练程序。通过两层MLP作为margin生成函数。softplus激活函数使生成的margin大于0。



对于第三点就比较直接。用户-用户和物品-物品之间的关系很重要。相似用户或相似的物品在潜在空间中不应该被映射的特别远。因为相似的用户可能分享相同的喜好,相似的物品可能有相同的性质包含在里面。所以在这里采用了前面提到的自适应margin的方式去计算一个物品和它相近或不相近物品的损失,这个值作为正则项加入最终的损失中去。因此最终增加了两项损失函数,一个是用户-用户,一个是物品-物品。


三、结论验证


前面的基本上就是整个论文算法的部分。为了验证前面的方法是否有效,作者在五个不同的数据集上进行测试评估,同时也采用了Recall@k和ndcg@k作为批判标准。



Top-k与非常经典或有效的模型进行了比较,它们可以分成三个类别,一类是比较经典的协同过滤方法,第二种是比较有用的深度学习方法,第三种是大家比较常用的基于距离的方法。



最后对比的结果如上,PMLAM就是本文的方法,相比于其他的模型,本文的模型能够有效的提升推荐的表现。



为了验证提出的每一个解决方案是否有用的,作者也做了模型简化测试,从这个模型简化测试里面也能观察到一些有意思的结果。


  • 第一项和第二项,使用了相同的损失函数但是使用了不同的嵌入,第一项用到了确定的嵌入,第二项用到了高斯分布嵌入,可以看到高斯分布嵌入能够提升模型性能的。



  • 从第一项和第三项,采用了不同损失函数,第一项固定margin的损失函数,第三项采用了自适应损失函数,可以看到自适应损失函数是能够提升推荐性能的。



  • 最后从第七项和第八项可以看到,相比于其他项的测试能够极大的提升推荐效果,因为这两项增加了用户-用户和物品-物品之间的关系,这在推荐系统是非常有效果的。




对于自适应margin函数中的margin,我们做了case study,相当于随机选取了两个用户,然后又随机选取了两个用户看过的电影,之后又选取了一些用户没有看过的电影,其中一个是相同类别的电影,另一个是不同类别的电影。然后具体观察margin的值,可以看到如果是相同类别的话,生成的margin就比较小,。不同的类型就产生较大的margin,相当于把干扰物品推离用户。


四、结论


  • 模型中的每个用户和项目都用高斯分布表示,具有可学习的参数来处理不确定性。

  • 通过结合自适应margin方案,模型可以在训练过程中为训练三元组生成细粒度margin。

  • 创建用户-用户/项目-项目关系。

  • 实验结果表明,该方法明显优于最先进的方法。


嘉宾问答:


这篇工作的未来工作会具体的关注哪些方向。

1、表达用户-物体之间的embedding,这边只简单的使用了高斯disbuiling,接下来我们会想可不可以用高斯mixture model去表达某一个用户或物品,去捕捉更犀利的信息。2、我们对margin生成的模型速度上有一点慢,相当于多做了一个前馈和反馈,接下来会想办法提升训练效率。3、具体研究生成的margin跟什么有关。




整理:闫昊

审稿:马辰

排版:田雨晴


本周直播预告:


AI Time欢迎AI领域学者投稿,期待大家剖析学科历史发展和前沿技术。针对热门话题,我们将邀请专家一起论道。同时,我们也长期招募优质的撰稿人,顶级的平台需要顶级的你,请将简历等信息发至yun.he@aminer.cn!

微信联系:AITIME_HY



 

AI Time是清华大学计算机系一群关注人工智能发展,并有思想情怀的青年学者们创办的圈子,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法、场景、应用的本质问题进行探索,加强思想碰撞,打造一个知识分享的聚集地。

更多资讯请扫码关注




(点击“阅读原文”下载本次报告ppt)

(直播回放:https://www.bilibili.com/video/BV1Jk4y117ff)



本文分享自微信公众号 - AI TIME 论道(lundaoAI)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
1
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
1
分享
返回顶部
顶部