【论文笔记】注意力机制的协同过滤模型 Attentive Collaborative Filtering(ACF)

2019 年 9 月 23 日 专知

导读

随着科技的发展,多媒体内容(图片、视频等内容)成为当今的网络信息的主要内容。为了在高度动态的环境中为用户筛选大量的多媒体内容。我们需要在网络多媒体内容中引入推荐系统,特别是基于协同过滤的系统,本文主要介绍一种加入了注意力机制的协同过滤模型 Attentive Collaborative Filtering(ACF)——旨在解决多媒体推荐中的项目与组件级隐式反馈问题。




No.1

核心思想

ACF是一种分层神经网络,它根据项目级别的项目和组件级别的内容对用户的偏好分数进行建模。 ACF以贝叶斯个性化排名(Bayesian Personalized Ranking,BPR)作为基本模型,引入注意力机制,以解决多媒体推荐中的项目与组件级隐式反馈问题。 主要由两个注意力模块组成: 组件(component)级注意力模块,学习对于项目中的组件(component)内容的偏好评分,并且对于每个项目的内容特征进行表示; 项目(item)级别的注意力模块,学习用户对于项目偏好的评分并且根据用户与之交互的项目集来表征用户。

No.2

准备工作

符号及名词解释


  • item: 图片与视频
  • component : 图片的一块区域或者视频的一帧.
  • item-level implicitness: 用户对于item的喜好是未知的(即使是喜欢,但喜欢程度未知)
  • Component-Level implicitness:对于item的不同的component的喜好是未知的(视频的播放记录并不能说明用户喜欢这个视频的全部)。
  • 多媒体中的隐式反馈(implicit feedback): 对照片的点赞、浏览的视频、下载的音乐等。
  • R: 表示 user_item交互矩阵(R∈R ^ { M * N},M和N分别表示用户和项目的数量。
  • R(i): 表示与用户i交互的所有项目集合
  • U = [u_1,...,u_i]表示用户潜在向量
  • V = [v_1,...,v_l]表示项目潜在向量
  • x_{lm}: 输入,表示项目l集合中第m个组件的特征
  • 丨x_{l*}丨: 表示项目集合的长度
  • p_l: 表示辅助项目潜在向量,被用来基于用户交互的项目集上表示用户
  • ~x_l: 表示内容特征,由Component级别的注意力模块求得
  • α(i,l): 项目级注意力模块权重,表示用户i在项目l中的偏好。
  • β(i,l,m): Component级注意力模块权重,表示用户i在项目l的第m个组成部分(component)的偏好程度


Bayesian Personalized Ranking( BPR )


基于贝叶斯后验优化的个性化排序算法将用户对项目的评分(显示反馈“1”,隐式反馈“0”)处理为一个pair对的集合,其中j为评分为1的物品,k为评分为0的物品。 BPR不像在SVD中那样以基于点的方式学习(point-wise),而是模拟一个用户和两个项目的三元组(三元组<i,j,k>表示对用户i来说,相对于项目k用户i更喜欢项目j)。 BPR的目标函数为:
其中:
  • σ是sigmoid 函数
  • λ是正则化参数
  • ^R_{ij}为 user_item交互矩阵,表示为:


丨涉及论文《BPR: Bayesian Personalized Ranking from
   Implicit Feedback》


No.3

模型

框架


上图为ACF的框架,主要包含了组件(component)级注意力模块项目(item)级注意力模块 各模块的输入输出如下:


Component-Level Attention


组件级的注意力模块式利用两层神经网络来求得组件(component)级注意力权重β(i, l,m),然后根据注意权重(β(i, l,m))构建内容表示特征( ~x_l)。 用户 i 的项目 l 的第m个组件特征 x_lm的注意力得分为:
其中:
  • 矩阵W_{2 *}和偏置b_2是第一层神经网络的参数;
  • 矢量w_2和偏置c_2是第二层参数;
  • ϕ( )是RELU函数


在得到注意力得分 b(i, l,m)之后需要通过使用Softmax函数进行归一化来获得最终的组件component)级权重 β(i, l,m)


在获得组件级注意力权重β(i,l,m)之后,可以得到用户i对于项目l中的哪一部分更感兴趣,即可求得用户 i 的偏好项目l的内容特征 ~x_l:



Item-Level Attention 


项目级别注意力模块的目标是选择代表用户偏好的项目,然后聚合项目信息的表示以表征用户。 与组件级注意模块一样,项目级别注意力模块也是使用两层神经网络来计算项目级注意力权重α( i,l)。 给定用户潜在表示u_i,项目潜在向量v_l,邻域辅助项目向量p_l 和项目内容特征~x_l之后,可以得到项目级注意力得分a( i,l):


其中:
  • 矩阵W-{1 *}和偏置b_1是第一层参数;
  • 矢量w_1和偏置c_1是第二层参数;
  • ϕ( )是RELU函数


注意力得分(a(i,l))在经过Softmax归一化后可以获得最终的项目级权重α( i,l)。


则聚合项目的表示得到的用户表征为:
即最终的用户表示为:


目标函数


ACF通过优化观察到的项目(positive)和未观察到项目(non observable)之间的成对排名(pair wise)对BPR的目标函数进行了优化。 ACF的目标函数可以表示为:
在RBF模型中,我们知道
在AFM中除了用u_i明确地参数化每个用户i之外,ACF还在与用户i有交互的项目集合R(i)上对用户进行建模。 用户i的最终表示为:


因此,目标函数表示为:


在得到目标函数之后,可以使用梯度下降法来进行优化。 该模型的伪代码为:



No.4

实验

代码地址:
https://github.com/ChenJingyuan91/ACF


虽然作者开源了代码,但只提供了模型实现部分,但对于组件内容特征的提取并未详细说明,因此此论文无法复现。


数据


论文中使用了Pinteres(图像),Vine(视频)数据集进行对比实验,数据集示例如下:


特征提取


在原始的图片(视频)不能直接进行训练,需要先提取图片(视频)中的组件特征(即论文中的x_{l*}),对于图片或者视频数据集,特征提取方法如下:


  • 图片: 文中使用 ResNet152 架构中的res5 层提取得到图片的组件特征(x_{l*})。 例如: 对于每个图像,7×7×2048特征图可以被视为图像中49个不同区域的2048-D的49个特征向量。
  • 视频: 对于每个视频,组件被认为是视频的一帧,使用ResNet-152中pool5层的输出作为每帧的特征向量。

参数设置


  • batch size: [256,512]
  • 潜在特征维度(latent feature dimension) :[32,64,128],在不指定维度时,只显示D=128的结果
  • 学习率: [0.001,0.005,0.01,0.05,0.1]
  • 正则值:
    [0.00001,0.0001,0.001,0.01,0.1,0]
  • K=100


评估方法


为了评估项目推荐的效果,文中使用了 leave-one-out 评估方法,只保留用户最近的一次交互作为测试集,使用top-K推荐中常用的HR@K(Hit Ratio)与NDCG@K(Normalized Discounted Cumulative Gain)作为评价指标。


  • HR: 评价推荐的前 K个 items 中,有多少是能够命中用户实际偏好的。 该指标是评价召回率的(值越大越好),计算公式为:
  • NDCG:
        其中:
    • 若top-K中第i个位置的项目在测试集中,r_i为1,否则·为0
    • Z_k为IDCG的计算公式,Z_k表示为:

实验结果


为了更好地验证ACF模型的效果,这篇论文对比了不同模型在不同数量的预测向量、TOP-K列表的不同位置以及不同稀疏程度的用户上的表现。
除了模型对比,该论文还比较了注意机制在项目和组件级别的影响(表2)以及用户信息(U),项目信息(V和P)和内容信息(X)的影响(表3)。
从表2中可以得到项目级别的注意机制对我们的模型贡献更多。 可能是由于项目级关注机制可以捕获所有用户的交互中的代表项,而组件级注意力机制可能仅在具有丰富内容的复杂项目中起作用。
从表3可以知道注意机制可以利用每个用户和项目的特征来提高推荐任务的性能。 并且在提高推荐系统的性能上用户信息比项目信息更有用。


论文地址:
http://staff.ustc.edu.cn/~hexn/papers/sigir17-AttentiveCF.pdf


-END-

专 · 知


专知,专业可信的人工智能知识分发,让认知协作更快更好!欢迎登录www.zhuanzhi.ai,注册登录专知,获取更多AI知识资料!

欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程视频资料和与专家交流咨询

请加专知小助手微信(扫一扫如下二维码添加),加入专知人工智能主题群,咨询技术商务合作~

专知《深度学习:算法到实战》课程全部完成!560+位同学在学习,现在报名,限时优惠!网易云课堂人工智能畅销榜首位!

点击“阅读原文”,了解报名专知《深度学习:算法到实战》课程

登录查看更多
50

相关内容

协同过滤(英语:Collaborative Filtering),简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人透过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。协同过滤又可分为评比(rating)或者群体过滤(social filtering)。其后成为电子商务当中很重要的一环,即根据某顾客以往的购买行为以及从具有相似购买行为的顾客群的购买行为去推荐这个顾客其“可能喜欢的品项”,也就是借由社群的喜好提供个人化的信息、商品等的推荐服务。除了推荐之外,近年来也发展出数学运算让系统自动计算喜好的强弱进而去芜存菁使得过滤的内容更有依据,也许不是百分之百完全准确,但由于加入了强弱的评比让这个概念的应用更为广泛,除了电子商务之外尚有信息检索领域、网络个人影音柜、个人书架等的应用等。
近期必读的5篇顶会WWW2020【推荐系统】相关论文-Part2
专知会员服务
69+阅读 · 2020年4月7日
论文浅尝 | 推荐系统的可解释性浅谈
开放知识图谱
15+阅读 · 2018年11月27日
论文浅尝 | 一种用于新闻推荐的深度知识感知网络
开放知识图谱
5+阅读 · 2018年6月17日
深度协同过滤:用神经网络取代内积建模
PaperWeekly
6+阅读 · 2018年5月28日
【推荐系统】详解基于内容的推荐算法
产业智能官
23+阅读 · 2018年1月11日
Arxiv
8+阅读 · 2019年5月20日
Arxiv
6+阅读 · 2018年5月18日
Arxiv
14+阅读 · 2018年4月18日
Arxiv
9+阅读 · 2018年1月30日
Arxiv
6+阅读 · 2017年12月2日
VIP会员
相关VIP内容
近期必读的5篇顶会WWW2020【推荐系统】相关论文-Part2
专知会员服务
69+阅读 · 2020年4月7日
Top
微信扫码咨询专知VIP会员