用户行为和属性用于推荐系统问题(MBGCN,AGCN,CML)

传统结合行为,基础属性,高级属性等等的side Information的方法会分连续型或离散型嵌入,然后当作一个分factor输入到推荐系统其他的部分中用于加强推荐的效果,最近看到SIGIR20’有两篇针对行为和属性的方法,且都用了Graph来做为解决方案,效果不错。主要是Graph的方法,涉及到图的更新和嵌入知识博主以往的文章已经更新过了,不做赘述。

在这里插入图片描述
Multi-behavior Recommendation with Graph Convolutional Networks
这篇文章主要是针对多行为对推荐的重要性。开篇作者就指出:传统的推荐模型仅仅利用一种用户-物品的交互数据,如购买行为,但是在这种单一的购买行为中,一个新用户可能没有任何购买行为的发生,就会产生严重的数据稀疏和冷启动的问题,这时平台可以收集用户的其他容易发生的行为,如浏览、点击和收藏等,这些行为总会有反映用户兴趣的。换句话说,推荐系统应该有能力利用其他类型的行为、辅助行为来帮助预测用户对目标行为的未来交互,即多行为推荐。

研究多行为推荐主要需要克服两点:

  • 多行为的重要性差别。1放入购物车肯定比点击某商品信号要强,所以多行为的重要性不一样。2辅助行为并不比目标行为弱,意思是虽然预测的是点击,但其他行为与其的关系肯定是能增强的。
  • 行为数据中隐含语义之间的关联。某些商品是相似的,某些商品是互补的,用户的行为下是能够发掘的(比如需要买互补的,或者比较类似的)。特别是当没有项目的侧信息如类别或品牌时,项目与项目的关系可以作为揭示协作推荐任务语义的解决方案。

所以作者提出了一个异构图的MBGCN(Multi-Behavior Graph Convolutional Network),模型图如开篇上图,其中的异构是指边表示不同的行为,这些不同的行为连接这user和item。分为4个部分:

  • User Embedding Propagation,用户嵌入特征的学习由产生过不同行为的items聚合。
  • Item Embedding Propagation,项目嵌入特征的学习由产生过不同行为的users聚合。
  • Item-Relevance Aware Item-Item propagation,学习同一行为下特定的items之间的关系。
  • Joint Prediction。得到多层传播后的表示。

在这里插入图片描述
User Embedding Propagation。 用户embedding由不同行为对用户的影响决定,先算不同行为对用户的相应权重:
α u t = w t ⋅ n u t ∑ m ∈ N r w m ⋅ n u m \alpha_{ut}=\frac{w_t \cdot n_{ut}}{\sum_{m \in N_r}w_m \cdot n_{um}} αut=mNrwmnumwtnut其中 n u t n_{ut} nut是用户u和行为t的行为总数, N r N_r Nr是行为种类数,不同行为的权重 w t w_t wt是自适应学习的(值得注意的是,这个行为的权重是固有关系,博主的理解是不同行为之间的权重是固定的)。然后利用这个权重,对有过交互的item进行聚合: p u , t l = a g g r e g a t e ( q i l ∣ i ∈ N t ( u ) ) p_{u,t}^l=aggregate(q_i^{l}|i\in N_t(u)) pu,tl=aggregate(qiliNt(u)) p u l + 1 = W ( l ) ⋅ ( ∑ t ∈ N r α u t p u , t l ) p_{u}^{l+1}=W^{(l)} \cdot (\sum_{t \in N_r} \alpha_{ut}p_{u,t}^l) pul+1=W(l)(tNrαutpu,tl)具体过程看上面的图就能很快明白了,不同行为的item先分组聚合,然后按行为权重加权了之后进一步聚合得到用户embedding p。

上图的下班部分是item embedding,它与user不同的是,item应该是静态的,不受用户行为的影响,所以直接mean聚合:
q i l + 1 = W ( l ) ⋅ a g g r e g a t e ( p j l ∣ j ∈ N ( i ) ) q_{i}^{l+1}=W^{(l)} \cdot aggregate(p_j^{l}|j\in N(i)) qil+1=W(l)aggregate(pjljN(i))

在这里插入图片描述
Item-Relevance Aware Item-Item propagation。 但是前面提到了,需要解决的第二个问题是捕捉items之间的关系,所以item还需要进行一次传播,得到额外的一个在不同行为下的item表示。即被同一个用户都交互了的物品之间存在有特殊的连接。然后同样根据行为的不同重要性,分别计算每个行为下的相关embedding::
s i t ( l + 1 ) = W t ( l ) ⋅ a g g r e g a t e ( s j t ( l ) ∣ j ∈ N t I ( i ) ) s_{it}^{(l+1)}=W^{(l)}_t \cdot aggregate(s_{jt}^{(l)}|j\in N^I_t(i)) sit(l+1)=Wt(l)aggregate(sjt(l)jNtI(i))这个操作也可以参考上图,即t1行为之间进行聚合,t2行为之间进行聚合就行。

Joint Prediction。 得到各层的表示直接拼接就行: P u ∗ = p u ( 0 ) ∣ ∣ . . . ∣ ∣ p u ( L ) P^*_u=p_u^{(0)}||...||p_u^{(L)} Pu=pu(0)∣∣...∣∣pu(L) q i ∗ = q i ( 0 ) ∣ ∣ . . . ∣ ∣ q i ( L ) q^*_i=q_i^{(0)}||...||q_i^{(L)} qi=qi(0)∣∣...∣∣qi(L) s i t ∗ = s i t ( 0 ) ∣ ∣ . . . ∣ ∣ s i t ( L ) , t ∈ N r s^*_{it}=s_{it}^{(0)}||...||s_{it}^{(L)},t \in N_r sit=sit(0)∣∣...∣∣sit(L),tNr

然后可以做两个预测任务User-based CF Scoring和Item-based CF Scoring。

  • User-based CF Scoring,根据所得到的用户和物品的embedding,做简单的内积。 y 1 ( u , i ) = p u ∗ T ⋅ q i ∗ y_1(u,i)=p^{*T}_u \cdot q_i^* y1(u,i)=puTqi
  • Item-based CF Scoring,计算与用户u交互的所有物品们与目标物品i的相关性分数(两个item之间被某用户有相同的行为如都购买了会影响到分数)。 y 2 ( u , i ) = ∑ t ∈ N R ∑ j ∈ N t ( u ) s j t ∗ T ⋅ M t ⋅ s i t ∗ T ∣ N t ( u ) ∣ y_2(u,i)=\sum_{t \in N_R} \sum_{j \in N_t(u)} \frac{s^{*T}_{jt}\cdot M_t \cdot s^{*T}_{it}}{|N_t(u)|} y2(u,i)=tNRjNt(u)Nt(u)sjtTMtsitT

最后两者一起作为预测分数:
y ( u , i ) = λ ⋅ y 1 ( u , i ) + ( 1 − λ ) ⋅ y 2 ( u , i ) y_(u,i)=\lambda \cdot y_1(u,i)+ (1-\lambda) \cdot y_2(u,i) y(u,i)=λy1(u,i)+(1λ)y2(u,i)

所以其实对应开头的两个问题,模型要做的事情就是user-item传播层学习行为影响力度,item-item传播层去捕获行为语义,然后两者一起结合预测分数,果然很有何老师写作风格。

在这里插入图片描述

Joint Item Recommendation and Attribute Inference: An Adaptive Graph Convolutional Network Approach
接下来的这一篇是联合推荐和属性推理的自适应图卷积网络。

  • 项目冷启动,需要属性的结合。同时用户对项目的行为可以很好地反映用户和项目属性。
  • 属性值往往是不完整的,大多数属性增强推荐算法将推断的属性值作为项目推荐的输入。

由于两者都很稀疏,所以联合建模可以相互增强。接下来我们看看作者是怎么做相互增强的。

Embedding Fusion Layer。 该层主要是融合自由嵌入矩阵(捕获用户or项目的协作潜在表示)+属性嵌入(会循环更新),直接拼接就好: u a l , 0 = [ p a , x a l × W u ] u^{l,0}_a=[p_a,x_a^l \times W_u] ual,0=[pa,xal×Wu] v i l , 0 = [ q i , y i l × W v ] v^{l,0}_i=[q_i,y_i^l \times W_v] vil,0=[qi,yil×Wv]

Embedding Propagation Layers。 然后开始传播,直接使用GCN以捕获用户和项目之间的高阶邻近性。值得注意的是User-item是一起传播的(把u和i拼成对角其他为0的大矩阵,然后一起GCN)
A = [ R 0 N × M 0 M × N R T ] A=\left[ \begin{matrix} R & 0^{N \times M} \\ 0^{M \times N} & R^T \end{matrix} \right] A=[R0M×N0N×MRT]
利用这个A一起GCN就行,不做赘述。

Attribute Update Part。 传播完再补充属性,如模型图中的红色部分,先得到预测值用于评分 x a ′ = s o f t m a x ( u a ⋅ W x ) x'_a=softmax(u_a \cdot W_x) xa=softmax(uaWx) y i ′ = s o f t m a x ( v i ⋅ W y ) y'_i=softmax(v_i \cdot W_y) yi=softmax(viWy)然后更新属性向量,即用推断的结果自适应地更新缺失的属性值,可用的属性值将保持不变: X l + 1 = X l ⋅ A X + X ′ ⋅ ( I X − A X ) X^{l+1}=X^l \cdot A^X + X' \cdot (I^X-A^X) Xl+1=XlAX+X(IXAX) Y l + 1 = Y l ⋅ A Y + Y ′ ⋅ ( I Y − A Y ) Y^{l+1}=Y^l \cdot A^Y + Y' \cdot (I^Y-A^Y) Yl+1=YlAY+Y(IYAY)

在这里插入图片描述
Contrastive Meta Learning with Behavior Multiplicity for Recommendation
补一篇WSDM22的best paper候选,多行为+对比+元学习的一份工作。作者的motivation主要来自:

  • 当前大部分推荐模型往往专注于对 user 和 item 间单一的交互行为进行建模,从而忽略了推荐场景中多行为的交互数据。
  • 但多行为推荐场景中,数据更为稀疏,因此如何有效地迁移辅助行为中有用的信息到目标行为的预测中比较重要。
  • 此外,多行为的交互模式也因人而异的,如何学习不同的用户的基于不同行为的偏好也很重要。

因此作者提出CML推荐模型,其由三个模块组成:

  • i)behavior-aware 消息传递的 GNN。即在同一行为类型下,每个节点都通过 sum pooling 的方式直接从异质节点获取信息(LightGCN)。 e u k , ( l + 1 ) = ∑ e i k , ( l ) ; e i k , ( l + 1 ) = ∑ e u k , ( l ) e^{k,(l+1)}_u=\sum e^{k,(l)}_i; e^{k,(l+1)}_i=\sum e^{k,(l)}_u euk,(l+1)=eik,(l);eik,(l+1)=euk,(l)
  • ii)通过多行为建立不同视图,并通过自监督信号使辅助行为帮助稀疏的目标行为的对比学习。即将不同的用户行为作为对比学习中不同的视图。
  • iii)为了有效地建模个性化的多行为关联性,提出一个元对比编码器(meta contrastive encoder)和元学习(meta learning) 训练框架。即将基于元学习的编码器引入到对比学习框架中,从而实现用户个性化的多行为信息聚合。

在这里插入图片描述

paper:https://arxiv.org/pdf/2202.08523.pdf
code:https://github.com/weiwei1206/CML.git
website:https://sites.google.com/view/chaoh

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值