题目: Multi-behavior Recommendation with Graph Convolutional Networks
论文地址:
论文代码:
想法
将相同行为的交互方式进行了聚合来计算user Embedding和item Embedding
创新
模型要做的事情就是user-item传播层学习行为影响力度,item-item传播层去捕获行为语义
摘要
过去的问题:
传统的推荐模型仅仅利用一种用户-物品的交互数据,如购买行为,因而综述遭受数据稀疏和冷启动的问题,但是该用户可能没有购买,只是浏览、点击和收藏等这些隐藏信息。
早期的推荐系统并没有考虑到这些隐藏信息的权重信息,也就忽略了这些数据中隐藏的行为语义。
我们:
我们的工作中创造了一个统一的图来表示多行为的数据;
并且提出了我们的模型叫做**MBGCN(**题目),使用GCN的层层传播语义的功能
2 PROBLEM FORMULATION
在在线信息系统的真实场景中,用户可以通过点击、收集、购买、分享等多种方式与平台提供的物品进行交互。在各种类型的用户项目交互中,总有一种类型直接决定着平台的利润。
例如,电子商务推荐系统一直是针对购买行为设计的,App推荐系统是针对下载行为设计的。
但是单一行为的方式往往效果不好,而且缺乏数据。
在这项工作中,我们的目标是利用其他类型的反馈设计一个推荐模型的目标行为。
约定一下:
假定行为的数量是
T
T
T;
交互矩阵 Y t Y^t Yt表明了和item有没有交互。
所有的行为矩阵可以表示为
{
Y
1
,
Y
2
,
.
.
.
,
Y
T
}
\left \{ Y^1, Y^2,...,Y^T \right \}
{Y1,Y2,...,YT},其中
{
Y
1
,
Y
2
,
.
.
.
,
Y
T
−
1
}
\left \{ Y^1, Y^2,...,Y^{T-1} \right \}
{Y1,Y2,...,YT−1}表示为辅助行为,而
Y
T
Y^T
YT表示为目标行为。
注意,对行为的时间顺序或强度顺序没有限制。换句话说,行为 t − 1 t-1 t−1并没有 t t t之前发生,并且 y u i t − 1 y_{ui}^{t-1} yuit−1和 y u i t y_{ui}^{t} yuit并没有反应的更强或者更弱。那么多行为推荐的任务可以表述为:
Input: user-item的交互数据 T T T种类型的行为
Output: user u在T-th行为下和item i交互的概率
3 METHODOLOGY
我们的模型有四个重要的组成部分:
1)一个共享层,它为用户和项目嵌入提供初始化;
2)user-item传播层,学习每个行为的强度,同时提取基于多行为的用户-物品交互的协同过滤信号;
3)item-item传播层,根据行为类型细化项目之间的特殊关系,即行为语义;
4)联合预测模块。
3.1 Unified Heterogeneous Graph
输入交互数据用无向图表示 G = ( V , E ) \mathrm{G=(V,E)} G=(V,E),其中节点由user和item组成。
在 E \mathrm{E} E中的边包含了不同行为的不同的user-item的交互边,名字为 ( u , i ) t (u, i)_t (u,i)t, t ∈ N r t\in N_r t∈Nr,其中 N r N_r Nr是所有行为类型的集合;
同时,在items之间,一些meta-paths将会基于用户的协同行为(多个用户都购买了XX)建立。
比如iphone和AirPods,很多人都同时购买了,那么item-purchase-user-purchase-item的元路径将会被建立。
也因此,元路径的类型和行为类型数量是一样的!
3.2 Shared Embedding Layer
p i ( 0 ) ∈ R d and q j ( 0 ) ∈ R d p_{i}^{(0)} \in \mathcal{R}^{d} \text { and } q_{j}^{(0)} \in \mathcal{R}^{d} pi(0)∈Rd and qj(0)∈Rd是user和item的嵌入。
之后可以将user和item的嵌入向量可以用嵌入矩阵表示:
同时我们使用one-hot+矩阵乘法获得某个用户和item的向量
其中 I D k U ID_{k}^U IDkU和 I D j V ID_{j}^V IDjV分别是用户 u k u_k uk和 i j i_j ij的one-hot向量。
3.3 Behavior-aware User-Item Propagation
为了捕获基于多行为的CF信号,我们在用户和项目之间建立了一个消息传递体系结构。
相同的颜色的线表示的是相同的行为!!!
3.3.1 User Embedding Propagation.
我们的主要想法是根据行为类型,通过两个关键因素:行为内在强度和交互稀疏性来考虑物品对用户偏好的不同影响。
User Behavior Propagation Weight Calculation:
由于不同的行为对目标行为的贡献不同,我们为每个行为分配权重,也就是
w
t
w_t
wt为了行为
t
t
t。
为了融合行为重要性和行为稀疏性,我们为用户 u 定义了特定行为 t 的传播权值
α
u
t
\alpha _{ut}
αut,如下所示:
其中 w t w_t wt对于所有用户来说是一样的。
n u t n_{ut} nut是被user u操作的行为 t 的数量, 这取决于用户。 ∑ m ∈ N r α u m \sum_{m \in N_{r}} \alpha_{u m} ∑m∈Nrαum是所有用户u的交互
w w w更大的行为将会比更小的行为重要, ∑ t ∈ N r α u t = 1 \sum_{t \in N_{r}} \alpha_{u t}=1 ∑t∈Nrαut=1,而且该权重是系统自动学习到的。
Neighbour Item Aggregation Based on behavior.
对于每个用户来说,不同的行为对目标行为的贡献是不同的,但直觉上,相同行为下交互的物品反映了用户相似的偏好强度。
因此,将与用户具有相同行为交互的项聚合在一起,以获得每个行为的一个嵌入
p
u
,
t
(
l
)
p_{u,t}^{(l)}
pu,t(l),该式子表示 对于在行为 t 下的用户 u 的表示:
N t I ( u ) N_t^I(u) NtI(u)是用户u在行为t下的交互的items!
q i ( l ) q_i^{(l)} qi(l)是item i的在层l的嵌入!
聚合函数可以是一个函数,如简单的均值函数,抽样的均值函数,最大池化等等。这里我们使用简单的中值函数
p u , t ( l ) p_{u,t}^{(l)} pu,t(l)用户 u 在行为 t 下在 l l l-th 层的聚合嵌入。
Behavior-level Item Propagation for User(就是上面图的上半部分)
我们根据权重
α
u
t
\alpha_{ut}
αut对嵌入在一起的邻居项聚合求和,然后通过一个编码器矩阵得到user u的最终邻居项聚合。我们采用无激活函数的图神经网络来细化基于多行为的信息:
α
u
t
\alpha_{ut}
αut它既取决于行为显著性,也取决于每种行为下的用户交互量。
3.3.2 Item Embedding Propagation
上面的item-to-user是根据用户的行为然后赋予item权重得到的用户特征。
这里的user-to-item中,item的特性是静态的,所以不管行为类型,假设不同用户对同一项内容的贡献是相同的。
下面就是聚合用户行为后的!
虽然在user-to-item的传播中没有考虑行为类型,但不能说多行为不能用于物品特征学习。
事实上,item相关性或者换句话说,行为语义可以从item-to-item的多行为数据中学习。
3.4 Item-Relevance Aware Item-Item Propagation
但是前面提到了,需要解决的第二个问题是捕捉items之间的关系,所以item还需要进行一次传播,得到额外的一个在不同行为下的item表示。即被同一个用户都交互了的物品之间存在有特殊的连接:
这个操作也可以参考上图,目的是求出item i 的下一层嵌入; 即t1行为之间进行聚合,t2行为之间进行聚合就行。
上图是t1行为的,下图是t2行为下的!
3.5 Joint Prediction:
得到各层的表示直接拼接就行:
然后可以做两个预测任务User-based CF Scoring和Item-based CF Scoring。
3.5.1 User-based CF Scoring
根据所得到的用户和物品的embedding,做简单的内积。
3.5.2 Item-based CF Scoring
计算与用户u交互的所有物品们与目标物品
i
i
i的相关性分数(两个item之间被某用户有相同的行为如都购买了会影响到分数)。
最后两者一起作为预测分数:
所以其实对应开头的两个问题,模型要做的事情就是user-item传播层学习行为影响力度,item-item传播层去捕获行为语义
3.6 Model Training
BPR loss:它强调了观察到的和未观察到的用户-物品交互之间的相对顺序,并声称观察到的交互对于用户的偏好学习具有指导性,应该比未观察到的交互获得更高的预测分数。
其中
O
=
{
(
u
,
i
,
j
)
∣
(
u
,
i
)
∈
R
+
,
(
u
,
j
)
∈
R
−
}
O=\left\{(u, i, j) \mid(u, i) \in R^{+},(u, j) \in R^{-}\right\}
O={(u,i,j)∣(u,i)∈R+,(u,j)∈R−}表示成对目标行为训练数据集;
R
+
R^+
R+表示观察到的目标行为;
R
−
R^-
R−表示了没有观察到的目标行为;
σ
(
⋅
)
\sigma (\cdot )
σ(⋅)激活函数;
Θ
\Theta
Θ是所有可训练的参数
β
\beta
β是归一化系数,控制L2归一化的强度,以防止过拟合。
我们提出了两种广泛使用的dropout方法:message dropout和node dropout到一些用户节点和项目节点。Message dropout以possibility的形式随机删除一些流动的消息,而node dropout则随机删除一个特定的节点,并提取其所有流动的信息。