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


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

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


论文地址:微信

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



1、背景ide


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



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



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



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



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


2、解决问题


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


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的方式去计算一个物品和它相近或不相近物品的损失,这个值做为正则项加入最终的损失中去。所以最终增长了两项损失函数,一个是用户-用户,一个是物品-物品。


3、结论验证


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



Top-k与很是经典或有效的模型进行了比较,它们能够分红三个类别,一类是比较经典的协同过滤方法,第二种是比较有用的深度学习方法,第三种是你们比较经常使用的基于距离的方法。



最后对比的结果如上,PMLAM就是本文的方法,相比于其余的模型,本文的模型可以有效的提高推荐的表现。



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


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



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



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




对于自适应margin函数中的margin,咱们作了case study,至关于随机选取了两个用户,而后又随机选取了两个用户看过的电影,以后又选取了一些用户没有看过的电影,其中一个是相同类别的电影,另外一个是不一样类别的电影。而后具体观察margin的值,能够看到若是是相同类别的话,生成的margin就比较小,。不一样的类型就产生较大的margin,至关于把干扰物品推离用户。


4、结论


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

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

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

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


嘉宾问答:


这篇工做的将来工做会具体的关注哪些方向。

一、表达用户-物体之间的embedding,这边只简单的使用了高斯disbuiling,接下来咱们会想可不能够用高斯mixture model去表达某一个用户或物品,去捕捉更犀利的信息。二、咱们对margin生成的模型速度上有一点慢,至关于多作了一个前馈和反馈,接下来会想办法提高训练效率。三、具体研究生成的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源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索