前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SIGIR'21 | 模式感知的序列推荐方法

SIGIR'21 | 模式感知的序列推荐方法

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

关注我们,一起学习

title:Motif-aware Sequential Recommendation

from:SIGIR 2021

1. 导读

本文将Motif翻译为模式。

本文是针对序列推荐而提出的相关方法,MoSeR。该方法在考虑行为序列宏观结构的同时,进一步考虑微观结构。MoSeR捕获隐藏在行为序列中的模式以对微观结构特征进行建模。MoSeR 提取同时包含最后一个行为和目标商品的模式。这些模式以有向图的形式反映了局部商品之间的拓扑关系。因此,MoSeR可以在了解局部商品之间的固有模式的情况下做出更准确的预测。

思考:本文是一篇短文,其亮点在于增加了模式(Motif)来对目标商品和序列中最后交互的商品之间的关系进行挖掘,还是比较有意思的,后续其他操作和正常的推荐方法类似。

2. 序列中不同的模式

如图所示为三种模式,

  • 对撞结构,即某人买了一个手机后短时间内可能不会再购买手机;
  • 单向依赖,即买了电脑后有概率想买U盘;
  • 双向依赖,即用户买了iphone或ipad后很有可能会想买另一个。

将所有训练集序列汇总为有向商品图,并从有向图中提取包含最后行为和目标商品的模式。为了缓解复杂性和稀疏性,本文专注于最简单和基本的模式,三元组。模式特征是通过提取的模式中的边缘权重计算的。最后,结合模式特征、用户序列表征和目标商品表征作为输入来预测目标项目在下一个时间步的概率。

3. 方法

3.1 问题定义

用Q表示商品集合,用户u的行为序列表示为

s^u=[s_1^u,...,s_T^u]

,目标即利用序列预测

s_{T+1}^u

3.2 商品图构建

根据用户行为序列中的商品构建带权有向图

\mathcal{G}

,其中的节点式商品,边表示从一个商品转移到另一个商品,边权重edge(i, j)利用这种转移关系出现的频率计算,如下式,其中

p(s_t^u=i,s_{t+1}^u=j)

表示在任何时间t,交互了i之后交互了j,这样出现的频率。

p(s_t^u=i)

表示用户和商品i交互的频率。

A(i, j)=\frac{\sum_{u}p\left(s_{t}^{u}=i, s_{t+1}^{u}=j\right)}{\sum_{u}p\left(s_{t}^{u}=i\right)}

3.3 Motif模式特征提取

这里只考虑最简单的模式,即三元组的形式。模型预测下一个商品,相当于是给序列最优一个商品

s_t^u

s_{t+1}^u

构建边。那么包含最后一个商品和目标商品的模式可以有多种,如上图所示。第k种模式,结合连接的不同节点,具体可以写为下式,其中m1,m2是中间节点。

H_{\Delta_{k}}\left(s_{t}^{u}, s_{t+1}^{u}\right)=\left[\left(s_{t}^{u}, m_{1}, s_{t+1}^{u}\right),\left(s_{t}^{u}, m_{2}, s_{t+1}^{u}\right), \ldots\right]

对于每一个三元组

(s_t^u,m,s_{t+1}^u)

,定义函数

\sigma(s_t^u,m,s_{t+1}^u)

通过边权重表示该模式的重要性,具体公式如下,如果边不存在,则权重为0。当然,σ这个函数也可以对应其他计算方法,这里简单起见用了加法。

\sigma(s_t^u,m,s_{t+1}^u)=A(s_t^u,m)+A(m,s_t^u)+A(s_{t+1}^u,m)+A(m,s_{t+1}^u)

最后,提取商品对的模式的特征

X(s_t^u,s_{t+1}^u) \in \mathbb{R}^9

,将每一种模式对应不同的三元组计算得到的重要性分数相加,然后拼接得到最后的向量。具体公式如下,

\mathbf{X}_{k}\left(s_{t}^{u}, s_{t+1}^{u}\right)=\sum_{\left(s_{t}^{u}, m, s_{t+1}^{u}\right) \in H_{\Delta_{k}}\left(s_{t}^{u}, s_{t+1}^{u}\right)} \sigma\left(s_{t}^{u}, m, s_{t+1}^{u}\right)

在实践中,处理所有的模式会带来很多计算成本。因此,在本文中将候选三元组的最大数量固定为𝑀𝑚𝑎𝑥,随机选择候选三元组。

3.4 MoSeR框架

随机初始化商品表征

\mathbf{Q}=\mathbb{R}^{|Q|\times d}

,然后同构transformer块建模用户行为序列,拼接行为序列表征和模式特征进行最终的预测。

3.4.1 位置感知的Transformer块

与很多方法类似,本文的方法也是将位置embedding和行为序列中的embedding进行结合,本文采用相加的方式,具体如下,

\mathrm{S}=\left[\mathrm{Q}_{s_{1}^{u}}+\mathrm{P}_{1}, \mathrm{Q}_{s_{2}^{u}}+\mathrm{P}_{2}, \ldots, \mathrm{Q}_{s_{T}^{u}}+\mathrm{P}_{T}\right]

然后采用残差结构,用自注意力机制结合两层全连接层得到序列表征,这里都是比较通用的,不过多解释。公式如下,

Attention(S)=softmax(\frac{SW^1(SW^2)^T}{\sqrt{d}})SW^3
S^{(b)}=Attention(S^{(b-1)})
F=FCN_{\theta_1}(S^{(1)}+S^{(b)})

3.4.2 预测

结合目标商品表征,序列表征以及模式特征,通过两层全连接层与用户偏好进行预测,公式如下,

r_{u,i,t}=FCN_{\theta_2}(F_t,Q_i,X(s_t^u,i))

3.5 训练策略

在训练阶段,将每个用户序列固定为一定的长度。当序列超过最大长度时切割早期的记录,当序列不够长时在开头填充默认的零向量。采用二元交叉熵损失作为目标函数,其中f()为sigmoid函数。

J=-\sum_{u} \sum_{t}^{T}\left[\log \left(f\left(r_{u, s_{t+1}^{u}, t}\right)\right)+\sum_{j \notin s^{u}} \log \left(1-f\left(r_{u, j, t}\right)\right)\right]

4. 实验

在这里,讨论为一对商品选择的候选模式𝑀𝑚𝑎𝑥 的最大数量如何影响性能。图 3 显示了不同 𝑀𝑚𝑎𝑥 的结果。一般来说,MoSeR 的性能随着 𝑀𝑚𝑎𝑥 的增加而增加,而当 𝑀𝑚𝑎𝑥 变得太大时性能下降。因为当候选模式很少时,模式特征可能不够。然而,当候选motif集太大时,可能存在很多无用的模式,而一些稀有但重要的motif类型会因此失去作用,或者作用减弱。当 𝑀𝑚𝑎𝑥 等于 13 时,在两个数据集上都获得了最佳性能。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3.1 问题定义
  • 3.2 商品图构建
  • 3.3 Motif模式特征提取
  • 3.4 MoSeR框架
    • 3.4.1 位置感知的Transformer块
      • 3.4.2 预测
      • 3.5 训练策略
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档