论文|AGREE-基于注意力机制的群组推荐

文章目录2.3、基于NCF的交互学习 2.4、模型优化3、实验效果4、代码解析
这篇文章主要分享的论文是2018年被CCF收录的一篇论文: Group (基于注意力机制的群组推荐) , 第一作者是湖南大学的曹达老师 , 二作是论文的作者何老师 。当然也会结合小编的工作来进行一些补充说明 , 写的不好 , 欢迎拍砖!
这篇文章结合了注意力机制和NCF框架 , 使得在群组推荐中有良好的效果 。
关于可以参考:点击阅读
关于注意力的解释可以参考:点击阅读
1、聊一聊群组推荐
群组推荐在工业推荐系统中应用十分广泛 , 其主要作用在新老用户上 。
对于新用户来讲 ,  则是冷启动 , 常规的冷启动解决办法是 , 根据新用户的注册信息(性别、地域等 , 这个一般和产品设计进行结合)找到其所属的群组 , 将群组下的Top信息返回推荐给当前来访的新用户 。
对于老用户来讲 , 可以作为一路召回使用 。比如对所有用户进行群组划分 , 再统计群组下的Top内容作为群组下用户的一路召回内容 。当然也可以按照某种属性进行群组划分 。
所以群组推荐的实际应用中是很广泛和有效的 , 上面举的例子只是冰山一角 , 实际中要比这个复杂和广泛 。但往往我们在得到群组下Top内容的时候采用的方法简单粗暴 , 这一点论文中也提到了群组推荐中的一个基本问题是如何汇总小组成员的偏好以推断小组的决定 , 因为群组中不同的成员扮演的角色是不一样的 ,  常见的计算方法有:
但是 , 这些预定义的策略和数据无关 , 因为这些策略很难灵活的捕获群组成员的动态权重 。因此提出了self-+ NCF的思路 , 即 Group (AGREE) 。
AGREE的主要贡献点有:
2、模型介绍
AGREE模型包含两部:
2.1、符号表示含义和要解决的问题
符号表示的规则
如果未特别说明 , 所有的向量都是列向量 。
下图说明了群组推荐任务中输入数据形态:
论文中给出的群组推荐问题定义的是:对于给定的群组 , 输出为该群组推荐的 Top-K物品 。
整个模型训练的
2.2、基于注意力的群组表征学习
论文建议基于表征学习解决群组推荐问题 , 在该框架下 , 每个实体都被表示为一个向量 , 该向量对实体的固有属性(eg:单词的语义 , 用户的兴趣等)进行编码 , 且可以从数据中学习 。物品推荐中一个众所周知的矩阵分解方法就是一个表征学习模型 , 该模型将用户和物品通过嵌入向量联系起来 。
u i u_i ui?表示用户向量 ,  v j v_j vj?表示物品向量 , 我们的目标是通过群组成员的兴趣偏好为每个群组学习到一个向量 , 要从数据中动态学习聚合策略 , 可以将群组向量定义成依赖用户和物品的向量 , 抽象表示为:
g l ( j ) = f a ( v j , { u t } ) g_l(j) = f_a(v_j, \{u_t\}) gl?(j)=fa?(vj?,{ut?})
u t u_t ut? 表示l l l群组中的用户 。g l ( j ) g_l(j) gl?(j)表示群组 g l g_l gl?对物品 v j v_j vj?的偏好向量 。在AGREE模型中 ,  g l ( j ) g_l(j) gl?(j)包括两部分:用户向量聚合和群组偏好向量 。形式化表示为:
g l ( j ) = ∑ u t ∈ g l a ( j , t ) u t + q l g_l(j) = \sum_{u_t \in g_l } a(j,t)u_t + q_l gl?(j)=ut?∈gl?∑?a(j,t)ut?+ql?
上面公式中加号左侧为用户向量 , 加号右侧为群组偏好向量 。