从用户反馈的可解释性提升推荐模型
当我们在做推荐系统模型时,有考虑过模型推荐结果的可解释性吗?比方说推荐系统给用户推荐了item A,并在推荐结果后标明该用户最要好的朋友喜欢item A,或者和该用户有着相似兴趣(协同过滤)的人喜欢A,这使得推荐结果非常透明且具有说服力,能够提升用户的接受度.这篇论文
简介
推荐要得到用户的信任,就要让用户理解到当前推荐结果是和之前行为(搜索,点击,喜欢,评论等)有着关联,这样用户就可以对推荐结果给出肯定或反对的反馈,从而影响下一次的推荐结果.这篇论文就是通过一个Active Learning的框架,通过用户在可解释性的推荐结果上的行为线索,提升推荐效果.如下图所示,Alice收到一个电影推荐Fight Club,基于历史观看和item2item,该推荐结果伴随着3个相关的电影(Alice之前喜欢的),出于以下原因:
- exp1 有着喜欢的演员
- exp2 结局有惊喜
- exp3 有着暴力的内容

我们看到alice喜欢前两部推荐的电影不喜欢包含暴力内容的推荐,当给予alice有解释性的推荐结果后,alice会给出不同类型的反馈结果,这就是推荐系统需要学习的.不过Alice也可能不喜欢推荐系统的解释,也有可能她之前这些电影都喜欢,现在不喜欢了,这也会使得推荐系统更加"困惑".如果alice能告诉推荐系统她喜欢演员Brad Pitt,喜欢有惊喜的结局和讨厌暴力,然而现实是用户不愿意花时间去填写这种信息.这篇论文就是探讨如何使用用户在可解释推荐结果的反馈.主要有以下两个问题:
- 反馈:如何引导用户在可解释性的推荐结果上做反馈,而不给用户增加负担?
- 可行性:如何使用这些反馈,影响用户的下一次推荐?
该文提出的方法给用户两个反馈的选择,对可解释的与推荐item相关的的选择喜欢/不喜欢,这样就能形成推荐和可解释item的pair对
ELIXIR框架
首先定义所有的items集合I = {v1, v2, ..., v|i|},和用户历史交互Hu, 以往的推荐系统只用了用户历史交互数据Hu,该框架使用了pair-level的用户反馈Fu = {-1, 0, +1}|I|*|I|,Fu(vi, vj)表示用户u推荐的vi和可解释的item vj, 1表示喜欢它们之间的相似度,0表示没反馈,-1表示不喜欢他们之间的相似度.
因为item极为稀疏,所以该文在图上使用了label propagation(LP) algorithm去缓解数据稀疏,节点表示items,边表示item之间的相似度,假节点vij表示有标签的pair对

vi向量表示物品i的特征,vij的向量表示两物品的几何平均.然后我们就可以为这样的假节点使用cos相似度寻找k近邻.最终我们就要优化下式:

生成推荐结果:该文使用了RECWALK,一个基于随机游走的方法,该模型的输入是一个异质图。



节点有两种类型,用户和item,边表达了用户和item的关系和item之间的相似度.


在RECWALK中,为用户u推荐item vi的分数由下式计算, PPR(u, vi)表示个性化的pagerank分:

alpha表示restart概率,eu向量表示用户one-hot向量,beta表示走一条边的概率,由上式我们可以看到,一次游走有1-alpha的概率返回用户节点u ,item中PPR(u,v)分最高的将被推荐给用户u.
生成exp:
rec已经被选出推荐给用户u,Item-level的exp推荐用了PRINCE算法.我们需要计算每个exp的item对推荐rec的贡献度,找出topk贡献度的作为exp,如下式所示:

在RECWALK,item之间相似度用矩阵S显示表达:

为了包含用户反馈Fu,式(2)引入了用户向量矩阵wu,式(2)中的g将item的统一向量表达转变成了用户表达:

代入到式(2)就是:

最终我们的推荐模型如下:

从实验看,融合用户反馈的方法的推荐离线指标还是不错的,更多细节参考原文.

参考文献:
ELIXIR: Learning from User Feedback on Explanations to Improve Recommender Models
从用户反馈的可解释性提升推荐模型本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
