前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WSDM'22「京东」个性化会话推荐:异构全局图神经网络

WSDM'22「京东」个性化会话推荐:异构全局图神经网络

作者头像
秋枫学习笔记
发布2022-09-19 11:21:18
2970
发布2022-09-19 11:21:18
举报
文章被收录于专栏:秋枫学习笔记

title:Heterogeneous Global Graph Neural Networks for Personalized Session-based Recommendation

link:https://arxiv.fenshishang.com/pdf/2107.03813.pdf

from:WSDM 2022

1. 导读

本文是针对会话推荐提出的相关方法,兼顾历史会话信息和会话中商品间的转换模式,提出异构全局图网络HG-GNN,利用所有会话中的商品转换(历史和当前的会话)来推断用户的偏好。全局图包含会话内的item-item关系,user-item关系和全局item共现关系。同时提出一个个性化会话编码器,结合当前会话的一般用户偏好和临时兴趣来生成个性化会话表征进行推荐。

本文主要包含两个方面:

  • 一方面,作者通过构建异构有向图,将商品关系,用户商品关系,不同会话的商品共现关系包含在内,并利用GNN将不同类型的边分别进行聚合,再对每个类型的边聚合得到的embedding进行聚合,得到商品和用户的表征。
  • 另一方面,利用会话内的商品和所在位置结合注意力机制,发掘短期兴趣;并且,利用注意力机制,发掘用户和当前会话内商品的关系反映一般性兴趣。

2. 定义

商品集合为

V=\{v_1,...,v_{|V|}\}

,用户集合为

U=\{u_1,...,u_{|U|}\}

,每个用户u包含交互序列的集合

S_{u_i}=\{S_{u_{i,1}},...,S_{u_{i,n}}\}

,其中

S_{u_{i,j}}

表示用户ui的第j个交互会话,每个会话中包含一系列交互的商品,

S_{u_{i,j}}=\{v_1^{u_{i,j}},...,v_l^{u_{i,j}}\}

在给定历史会话的集合

\{S_{u_{i,1}},...,S_{u_{i,t-1}}\}

和当前会话

S_{u_{i,t}}

后,预测下一个可能点击的商品

v_l^{u_{i,t}}

,为每个商品的预测得分为

\hat{y}=\{\hat{y}_1,...,\hat{y}_{|V|}\}

3. 方法

3.1 总览

如图所示,为了有效地利用来自用户的所有会话的商品转换,用异构全局图来组织历史会话并获取全局信息。

  • 利用用户-商品历史交互边来构建图中的用户-商品边,以捕获用户偏好。
  • 为了利用潜在的相关性,根据全局共现信息计算相似的商品对以构建商品边缘。
  • 会话序列中的成对商品转换也用于构建连接。

然后从图中学习用户和商品的表征,并且结合个性化会话编码器来生成个性化会话表征。

3.2 异质全局图构建

这里用到的异构全局图是有向图

\mathcal{G}=(\mathcal{V},\mathcal{E})

,边可以表示为

(v_i,v_j,r)

表示从vi到vj的有向边。

3.2.1 item-to-item

item-to-item关系包括会话中的人相邻交互行为和会话间的共现行为。

对于节点

v_i

的每个邻居构成的边

(v_i,v_j,r)

,其中

r \in \{r_{in},r_{out}\}

。因为是有向图,所以有in和out表示不同指向。用在所有历史会话中出现的频率作为边权重,为了确保相关性,这里去top-S的权重作为有效边。

上面是会话内的相邻关系,对于会话间的共现关系,两个商品在不同会话中的频繁共现可以反映两个商品之间的强相关性。对于商品

v_i

,根据所有历史会话计算其共现商品,根据频率选择top-k个,定义边为

(v_j,v_i,r_{similar})

,共现频率计算方式如下,其中

N(v_i)

表示商品vi出现的会话的集合。当同时出现

r_{in}

r_{similar}

时,只保留

r_{in}

f_{v}\left(v_{i}, v_{j}\right)=\frac{\sum_{s \in N\left(v_{i}\right) \cap N\left(v_{j}\right)} \frac{1}{|N(s)|}}{\sqrt{\left|N\left(v_{i}\right)\right|\left|N\left(v_{j}\right)\right|}}

为了防止引入过多的噪声,对于么个节点vi,利用邻接交互商品数来做top-K的截取。因此,只有

K'_{v_i}

条边有

r_{similar}

\begin{array}{c} K_{v_{i}}^{\prime}=\min \left\{K,\left|N_{v_{i}}\right|\right\} \\ N_{v_{i}}=\left\{v_{j} \mid\left(v_{i}, v_{j}, r\right) \text { where } r \in\left\{r_{i n}, r_{\text {out }}\right\}\right\} \end{array}

3.2.2 item-to-user

用户-商品的交互边可以表示为

(v_j,u_i,r_{interact})

(u_i,v_j,r_{interacted\_by})

,这里应该是对称的。

3.3 HG-GNN

用户和商品的ID通过embedding得到

q_{u_i}^{(0)} \in \mathbb{R}^d

p_{v_i}^{(0)} \in \mathbb{R}^d

。用

r_x

表示不同的交互类型,对于商品v,包括in,out,similar,interacted_by四种交互类型。对于商品

v_i

,用

N_{r_x}(v_j)

表示所有类型的邻居,聚合过程如下所示,w和b为可学习参数,f是激活函数用relu,e为节点的embedding,

e_n^{(k)}=q_{n}^{(k)}/p_n^{(k)}

\begin{array}{c} \mathbf{p}_{\mathcal{N}_{r_{x}}\left(v_{i}\right)}^{(k+1)}=\frac{1}{\left|\mathcal{N}_{r_{x}}\left(v_{i}\right)\right|} \sum_{n \in \mathcal{N}_{r_{x}}\left(v_{i}\right)} \mathbf{e}_{n}^{(k)} \\ \mathbf{p}_{v_{i}, r_{x}}^{(k+1)}=f\left(\mathbf{W}_{r_{x}}^{(k+1)}\left[\mathbf{p}_{\mathcal{N}_{r_{x}}\left(v_{i}\right)}^{(k+1)} \| \mathbf{p}_{v_{i}}^{(k)}\right]+\mathbf{b}_{r_{x}}^{(k+1)}\right) \end{array}

对于商品vi,将和其相关的所有embedding进行聚合,公式如下,其中accum函数可以是求和,堆叠等,作者在实践中采用求均值。

p_{v_i}^{(k+1)}=accum(p_{v_i,r_{u}}^{(k+1)},p_{v_i,r_{in}}^{(k+1)},p_{v_i,r_{out}}^{(k+1),p_{v_i,r_{similar}}^{(k+1)}})

而对于用户,可以用同样的方式得到他的embedding,公式如下,其中rv来自r_interact

q_{u_i}^{(k+1)}=accum(q_{u_i,r_v}^{(k+1)})

经过K层信息传播之后,将每一层的embedding进行加权求和,公式如下,其中alpha是1/(K+1),整个公式也就是求均值。

\mathbf{q}_{u_{i}}=\sum_{k=0}^{K} \alpha_{k} \mathbf{q}_{u_{i}}^{(k)} ; \quad \mathbf{p}_{v_{i}}=\sum_{k=0}^{K} \alpha_{k} \mathbf{p}_{v_{i}}^{(k)}

3.4 个性化会话编码器

用户偏好主要包括两部分,一般偏好(general preference)和漂移偏好(drifted preference)(这里直接直译的)。其实就是,一方面用户可能由于一些原因长期对一些东西感兴趣,比如围棋爱好者,他可能会长期这方面的东西;另一方面,是动态变化的兴趣,例如随着季节的变化,用户对衣物的偏好会发生变化。

因此,本文这部分包含两部分建模,当前偏好学习和一般偏好学习。

3.4.1 当前偏好学习

从当前会话中学习用户此时的短时兴趣偏好,得到会话的embedding。作者利用注意力机制,动态结合会话中的不同商品信息。不同商品的作用受其在会话中所在位置的影响(即时间序列关系),因此,对于最近的

l

个商品

\{v_1^s,...,v_l^s\}

,将HGNN得到的商品表征

p_{v_i}

和位置embedding拼接,公式如下,其中

\mathbf{l}_i

表示位置embedding,W可学习参数。

p_{v_i^s}'=W_c[p_{v_i}^s||\mathbf{l}_i]

基础的会话偏好可以直接用均值来计算得到

p'_s=\frac{1}{l}\sum_{i=1}^l{p'_{v_i^s}}

更进一步,采用注意力机制来学习到对应的权重,公式如下,其中σ为sigmoid函数,W,v,b为可学习参数。

\begin{array}{c} \alpha_{i}=\operatorname{softmax}_{i}\left(\epsilon_{i}\right), \\ \epsilon_{i}=\mathbf{v}_{0}^{T} \sigma\left(\mathbf{W}_{0} \mathbf{p}_{v_{i}^{s}}^{\prime}+\mathbf{W}_{1} \mathbf{p}_{s}^{\prime}+\mathbf{b}_{0}\right), \end{array}

最终当前会话反映的短期偏好的embedding可以计算为下式,

C_u=\sum_{i=1}^l{\alpha_i p'_{v_i^s}}

3.4.2 一般偏好学习

从HGNN中学习到的用户embedding为

q_u

包含了用户长期稳定的偏好。利用注意力机制学习用户长期偏好和当前会话中商品的关系,公式如下,

\begin{array}{c} \gamma_{i}=\operatorname{softmax}_{i}\left(e_{i}\right), \\ e_{i}=\mathbf{v}_{1}^{T} \sigma\left(\mathbf{W}_{2} \mathbf{p}_{v_{i}^{s}}+\mathbf{W}_{3} \mathbf{q}_{u}+\mathbf{b}_{1}\right), \end{array}

最终的一般偏好可以计算为,

O_u=\sum_{i=1}^l{\gamma_i p_{v_i^s}}

最后将两种偏好embedding结合起来,公式如下,

\alpha_c=\sigma(W_s[C_u||O_u])
S_u=\alpha_c \cdot C_u+(1-\alpha_c) \cdot O_u

3.5 预测与训练

对商品的预测方式为:

\hat{y}_i=softmax(S^Tp_{v_i}^{(0)})

损失函数为交叉熵损失函数

\mathcal{L}(\hat{\mathbf{y}})=-\sum_{i=1}^{|V|} y_{i} \log \left(\hat{y}_{i}\right)+\left(1-y_{i}\right) \log \left(1-\hat{y}_{i}\right)

4. 结果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3.1 总览
  • 3.2 异质全局图构建
    • 3.2.1 item-to-item
      • 3.2.2 item-to-user
      • 3.3 HG-GNN
        • 3.4 个性化会话编码器
          • 3.4.1 当前偏好学习
            • 3.4.2 一般偏好学习
            • 3.5 预测与训练
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档