推荐系统
原文网盘分享:链接:https://pan.baidu.com/s/1KJiPU6BbgQJmykD52Zsm2Q
提取码:g5dq
AFM
用于个性化可解释推荐的注意力驱动因子模型
许多研究人员发现,个性化推荐系统给出的解释是非常有益的.根据合理的解释,用户更有可能购买或尝试.此外,解释将有助于系统了解用户,并为他们提供定制的推荐.
已有的可解释推荐算法
- 基于内容的推荐算法
- 基于情感分析的推荐算法
- 问题:这些算法很大程度上依赖于用户评论的质量和数量,此外,有些用户的评论并不包含个人偏好.这使得情感分析的方法很难获取用户的偏好.
流行的潜因子模型
- item的特征通常易于收集并且十分有用,因为用户通常会根据item的特征做出决策.
- 通过用潜向量表示特征, 然后通过相加或者连接的方式来集成各种item的特征
- 问题:
- 当user和item的潜向量进行交互时,潜因子模型(LFM)会忽略user如何对各种item的特征的偏好进行决策,这使得潜因子模型对所有的用户以相同的方式进行预测.
- 由于把特征是在潜在空间中进行表示,缺乏可解释性.
总之,如何生成可解释的建议并同时保持较高的预测精度一直是个性化推荐的主要研究问题之一。
本文提出一种新的基于协同过滤(CF)的模型,名为注意力驱动因子模型(AFM)
- 根据用户对item的不同特征的注意力不同,从而提出推荐.
- 如图2,AFM分为五层
- 输入层(Input Layer)
- 为了对AFM进行训练,我们需要用户评分和item特征.
- 让m表示user的数量
- 让n表示item特征的数量
- 让k表示潜特征向量的大小
- 为了对AFM进行训练,我们需要用户评分和item特征.
- 特征提取层(Feature Extraction Layer)
- 特征提取层用来从密集的原始数据中提取潜特征表示.
- 对于不同类型的输入可以使用不同的特征提取方式
- 对于那些分类输入(即用户ID和itemID),我们可以使用嵌入方法
- 对于那些文字或图片输入,我们可以采用深度学习技术,例如CNN或者RNN来生成潜在表示.
- 特征提取后,我们得到第i个用户的ui∈Rk,以及一组特征向量Xj=xj0,xj1,xj2…xjn,对于第j项,其中xj0表示第j项的ID的嵌入向量,其中xjl∈Rk(l∈[1,n])表示第l个特征的潜向量的第j项.
注意力驱动集成层(Attention-driven Integration Layer)
- 注意力驱动集成层是AFM的核心组件
- 其中fAI表示注意力驱动的函数
- vij表示由第i个用户的偏好ui驱动的第j项积分向量
- 受LSTM单元和门循环单元的启发,我们介绍一种新的注意力驱动集成方法
- 门注意力单元(Gated Attention Units)
- GAUs决定是否根据用户的偏好屏蔽特征
- 我们分两步计算vij
- 我们使用GAU来生产用户的注意力分布ai=softmax(Waui)
- 其中Wa∈R(n+1)∗k 表示注意力映射矩阵
- αi=αi0,αi1,αi2,…αin表示第i个用户的注意力分布.\
- 注意力映射矩阵式GAU的关键,并由所有用户共享,可以将潜在偏好空间映射到特征级别的注意力空间.
- 我们对X应用加权和来得到v
- 从上式中我们可以了解GAU的一些优点
- 假设我们正在为用户提供电影推荐,他们最关心电影的主角并且很少关注其他功能。在这种情况下,GAU可以学习很高的注意力来强调主角特征,同时削弱其他特征的影响。
- 我们使用GAU来生产用户的注意力分布ai=softmax(Waui)
交互层(Interaction Layer)
- 交互层将用户潜向量u和item潜向量v进行交互,最终预测y
- 我们采用多层感知器(MLP)来学习user-item的交互
- 利用非线性激活函数,我们可以增强AFM学习非线性交互的能力。 对于训练,我们可以针对不同的任务使用适当的损失函数,与许多其他基于CF的算法相比没有什么特别之处。 由于AFM是一个框架,因此整体模型的大小和复杂性由每层采用的方法决定。
个性化解释
- 通过GAU,AFM可以学习不同用户的特征级注意力分布。 一方面,我们可以直接向用户呈现分布图表,这有助于提高用户对我们系统的兴趣,并向用户表达我们的关注。 另一方面,我们在提出建议时向他们发送有趣的消息,例如“亲爱的XXX,我们已经注意到您对[功能]的极大兴趣,因此我们强烈推荐这些给您”。 一旦获得用户的注意力分布,有很多方法可以解释个性化建议并说服用户。