关注我们,提升学习效率
title:Multi-Behavior Enhanced Recommendation with Cross-Interaction Collaborative Relation Modeling
link:https://arxiv.org/pdf/2201.02307.pdf
from:ICDE 2021
code:https://github.com/akaxlh/GNMR
1. 导读
在实际生活中,用户的行为通常是多样的,比如点击,购买,浏览等,而对于这些多类型的行为,常见的面向单行为的推荐方法是不具备优势的,因此本文提出了基于图神经网络的多行为推荐方法GNMR。
2. 基础
用户集合
U,商品集合
V,用户集合大小
|U|=I,下标为i,商品集合大小
|V|=J,下标为j。三维张量表示用户的多行为
\mathbf{X} \in \mathbb{R}^{I \times J \times K},K是行为类型数,下标为k。
x_{i,j}^k=1表示用户i在商品j上进行了类型为k的交互,反之为0。GNMR的目标就是根据交互X,预测在目标交互类型下的商品列表。
3. 方法
根据交互X,构建图G={U, V, E},节点由U和V构建,边E表示不同类型的交互。如果
x_{i,j}^k=1,则存在边
e_{i,j}^k。整体流程如下所示。
3.1 特征类型行为embedding层
令第l层的输出为
\mathbf{H}^l,然后将其作为l+1层的输入。对于第k类交互行为,构建传播的消息如下,其中η是embedding层,用于保留用户和商品在交互k上独有的特征。
H_i^0和
H_j^0分别表示用户和商品的初始embedding,通过预训练的自编码器得到。
\begin{array}{l}
\mathbf{H}_{i \leftarrow}^{k,(l)}=\eta\left(\left\{\mathbf{H}_{j}^{k,(l)}: x_{i, j}^{k}=1\right\}\right) \\
\mathbf{H}_{j \leftarrow}^{k,(l)}=\eta\left(\left\{\mathbf{H}_{i}^{k,(l)}: x_{i, j}^{k}=1\right\}\right)
\end{array}如前所述,η函数用于获取类型k的交互的表征,本文设计如下,其中N(i, k)表示用户u_i在类型k的交互下相邻的商品节点集合。
\alpha_{c,k}表示从投影的第 c 个潜在维度中学习到的第 k 类用户行为的权重。
W_1 \in \mathbb{R}^{C \times d},
b_1 \in \mathbb{R}^{C}为可学习参数。δ()函数表示ReLU激活函数。对用户u_i在k类型交互下的邻居商品节点求和后对不同维度重新加权,从而进行聚合。下式是对用户节点embedding消息传播,对于商品节点也类似。
\begin{array}{r}
\alpha_{c, k}=\delta\left(\sum_{j \in N(i, k)} \mathbf{W}_{1} \cdot \mathbf{H}_{j}^{k,(l)}+\mathbf{b}_{1}\right)(c) \\
\eta\left(\left\{\mathbf{H}_{j}^{k,(l)}: x_{i, j}^{k}=1\right\}\right)=\sum_{c=1}^{C} \alpha_{c, k} \mathbf{W}_{2, c} \cdot \sum_{j \in N(i, k)} \mathbf{H}_{j}^{k,(l)}
\end{array}这里没有说原因,可能就是实验效果不错所以就用了吧,正常比较常见的是对不同的节点加权,他这里是对维度加权。
3.2 消息聚合层
采用上述方式可以求得不同交互类型下的embedding,然后本节作者采用注意力机制来发掘不同类型交互之间的关系,用k和k'表示不同的交互,其分数可以计算为下式,Q,K为两个可学习参数,
Q^s \in \mathbb{R}^{\frac{d}{S} \times d}使用多个潜在空间(s ∈ S)执行嵌入投影过程,从多个维度来捕获依懒性,其实就是多头注意力。
\beta_{k, k^{\prime}}^{s}=\left[\left(\mathbf{Q}^{s} \mathbf{H}_{i \leftarrow}^{k,(l)}\right)^{\top} \cdot\left(\mathbf{K}^{s} \mathbf{H}_{i \leftarrow}^{k^{\prime},(l)}\right)\right] / \sqrt{d / S}
然后对β实施softmax进行归一化,通过以下操作连接来自不同学习子空间的表征来重新校准特定类型的行为embedding,||表示拼接,V是可学习权重(就是常见的Q,K,V权重)。
\oplus表示逐元素相加。
\tilde{\mathbf{H}}_{i \leftarrow}^{k,(l)}=\xi\left(\mathbf{H}_{i \leftarrow}^{k,(l)}\right)=\left(\|_{s=1}^{S} \sum_{k^{\prime}=1}^{K} \beta_{k, k^{\prime}}^{s} \mathbf{V}^{s} \cdot \mathbf{H}_{i \leftarrow}^{k^{\prime},(l)}\right) \oplus \mathbf{H}_{i \leftarrow}^{k,(l)}
对所有类型交互的embedding进行聚合,公式如下,
\begin{aligned}
\mathbf{H}_{i \leftarrow}^{(l)} &=\psi\left(\left\{\hat{\mathbf{H}}_{i \leftarrow}^{k,(l)}: k=[1,2, \ldots, K]\right\}\right) \\
\mathbf{H}_{j \leftarrow}^{(l)} &=\psi\left(\left\{\hat{\mathbf{H}}_{j \leftarrow}^{k,(l)}: k=[1,2, \ldots, K]\right\}\right)
\end{aligned}其中
\psi为聚合函数,每种类型的交互起的作用的是不同的,因此每类embedding的重要性也是不同的,作者先将每一类的embedding H通过FFN,然后计算每个的权重,以用户为例,商品的也类似,公式如下,w,b为可学习参数,δ为ReLU函数。
\begin{aligned}
\gamma_{k} &=\mathbf{w}_{2}^{\top} \cdot \delta\left(\mathbf{W}_{3} \hat{\mathbf{H}}_{i \leftarrow}^{k,(l)}+\mathbf{b}_{2}\right)+b_{3} \\
\hat{\gamma}_{k} &=\frac{\exp \gamma_{k}}{\sum_{k^{\prime}=1}^{K} \exp \gamma_{k^{\prime}}}
\end{aligned}计算完权重后,最终的聚合方式为
\mathbf{H}_i^{(l+1)}=\sum_{k=1}^K{\hat{\gamma}_k\hat{\mathbf{H}}_{i\leftarrow}^{k,(l+1)}},商品的embedding聚合方式类似。
3.3 模型优化
本文采用pair-wise的损失函数,损失函数如下,ps为交互过的正样本,ns为未交互的负样本。
\mathcal{L}=\sum_{i=1}^{I} \sum_{s=1}^{S} \max \left(0,1-\operatorname{Pr}_{i, p_{s}}+\operatorname{Pr}_{i, n_{s}}\right)+\lambda\|\mathbf{\Theta}\|_{\mathrm{F}}^{2}
伪代码如下
4. 实验