「论文笔记」Next-item Recommendations in Short Sessions

本文探讨了针对现实世界中大量存在的短对话场景,提出INSERT模型解决SBRSs的局限。该模型结合了单会话和多会话信息,通过LocalModule、GlobalModule和PredictionModule优化next-item预测。特别强调了如何有效利用相似会话和先验知识,以克服短会话上下文信息不足的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

session-based recommender systems(SBRSs)

目的:模拟用户对下一item的动态偏好
存在的问题:目前的SBRSs的大多数研究,仅基于长会话做推荐,忽略了短对话

短对话:不超多5个items
长对话:超过5个items

实际上,现实世界中的数据集中,短对话占很大的比例。现有的研究,通常在数据预处理时,将短会话过滤掉了,使得next-item prediction的挑战减少。因为短会话包含非常少的items,embedding的上下文信息很有限。

SBRSs的分类

  • single-session based SBRSs
    仅基于当前会话
    => GAP1: 可用的信息很非常有限,难以充分理解用户的偏好
  • multi-session based SBRSs
    • 联合用户的历史会话
      GAP2: 忽略了与当前用户相似的其他用户的丰富信息
    • 将来自其他用户的与当前会话相似的会话合并到当前会话的next-item prediction中
      • Step1: 使用固定长度的one-hot向量或包含items的embeddings的均值向量表示当前会话
      • Step2: 使用当前会话的表示作为key,从整个数据集中检索与当前会话相似的几个会话,作为预测当前会话next-items的参考
        => 由于过于简化会话表示以及key中有限的信息,经常会得到一些不相关会话
        GAP3: 如何高效的找出那些真的与当前会话相关和有效的历史会话并将它们合并到当前短会话中用于next-item 预测

IN ter- SE ssion collavorative R ecommender neT work(INSERT)包含3个modules:
(1) local module – 从当前短会话中推断用户的偏好
(2) global module – 从其他会话中学习有用的先验知识,包括当前用户和其他用户的历史会话,设计了一个similar session retrieval network(SSRN)
(3) prediction module – 首先根据从global module中学习到的先验知识对local module中推断的偏好进行调整和优化,然后基于最佳偏好预测next-item

问题定义

U = { u 1 , . . . , u n } U = \lbrace u_1, ..., u_n\rbrace U={u1,...,un} – 表示数据集中的所有 n n n 个用户的集合
V = { v 1 , . . . , v m } V = \lbrace v_1, ..., v_m\rbrace V={v1,...,vm} – 表示数据集中的所有 m m m 个items的集合
S u = { s 1 u , . . . , s ∣ S u ∣ u } S_u = \lbrace s_1^u, ..., s_{|S_u|}^u\rbrace Su={s1u,...,sSuu} – 每个用户 u ∈ U u\in U uU的会话序列,按照发生的时间排序
u u u 的第 l l l 个会话 s l u ∈ S u s_l^u \in S_u sluSu由items序列组成, s l u = { v i u , l , . . . , v ∣ S l u ∣ u , l } s_l^u = \lbrace v_i^{u, l}, ..., v_{|S_l^u|}^{u, l}\rbrace slu={viu,l,...,vSluu,l},按照发生时间排序

对于在当前用户 u c u_c uc 的当前会话 s l u c s_l^{u_c} sluc中预测的目标项 v t u c , l v_t^{u_c, l} vtuc,l

在当前会话 s l u c s_l^{u_c} sluc中出现在 v t u c , l v_t^{u_c, l} vtuc,l之前的所有项组成了会话期间的上下文 C i a = { v 1 u c , l , . . . , v t − 1 u c , l } C_{i a} = \lbrace v_1^{u_c, l}, ..., v_{t-1}^{u_c, l}\rbrace Cia={v1uc,l,...,vt1uc,l}

给定 C i a C_{ia} Cia,SBRS旨在预测 s l u c s_l^{u_c} sluc 中的 v t u c , l v_t^{u_c, l} vtuc,l

训练了一个概率性分类器对每个候选项 v ∈ V v \in V vV 预测条件概率 p ( v ∣ { C i a , S } ) p(v|\lbrace C_{ia}, S\rbrace) p(v{Cia,S}),S包含了训练集中的所有历史会话,最终选择top-K个条件概率形成推荐列表

INTER-SESSION COLLABORATIVE RECOMMENDER NETWORK

关键的思想:利用从其他会话学习到的有用的先验知识,可以有效地约束当前短会话中给定的有限项的用户偏好表示的假设空间

三个modules:
(1)local module – 根据 C i a C_{ia} Cia推断得到的用户偏好表示 h c h_c hc
p ( v ∣ C i a ) = s o f t m a x ( M L P ( h c ) ) p(v|C_{ia})=softmax(MLP(h_c)) p(vCia)=softmax(MLP(hc))
(2)global module – 基于S学习的先验知识的d维向量表示 β ( S ) \beta(S) β(S)
基于特征调制函数 ψ \psi ψ 使用先验知识 β ( S ) \beta(S) β(S) h c h_c hc 进行调整和优化
ψ ( h c , S ) = h c + β ( S ) \psi(h_c, S) = h_c + \beta(S) ψ(hc,S)=hc+β(S)
重写条件概率函数
p ( v ∣ C i a , S ) = s o f t m a x ( M L P ( ψ ( h c , S ) ) ) p(v|C_{ia}, S)=softmax(MLP(\psi(h_c, S))) p(vCia,S)=softmax(MLP(ψ(hc,S)))
(3)prediction module

1. Local Module
Step1: 将 C i a C{ia} Cia 中的每个item v i v_i vi embed为d维向量表示 x i x_i xi
Step2: 将 x i x_i xi 输入到基于GRU的RNN中
h i = G R U ( x i , h i − 1 ) h_i = GRU(x_i, h_{i-1}) hi=GRU(xi,hi1)
第一个隐层状态 h 0 h_0 h0 使用零向量进行初始化

对于 C i a C{ia} Cia的每个item,我们将对应的GRU输出 h i h_i hi看作在 i i i 处的用户偏好的embedding「因为GRUs可以自然的从 v i v_i vi 和会话中在 v i v_i vi 之前的items中提取的有用特征」「此外,由于循环模型是基于RNN的,所以当有新的items出现,the local
module可以生成用户偏好embeddings,并且保留了会话中的序列模式」

在本论文中,使用在 ∣ C i a ∣ |C_{ia}| Cia最近的用户偏好embedding作为用户的当前偏好,用于在 s l u c s_l^{u_c} sluc 中进行next-item预测
h c = h ∣ C i a ∣ h_c = h_{|C_{ia}|} hc=hCia

2. Global Module

  • Current User‘s Prior Knowledge Learning Module(CUPKL)
  • Other Users’ Prior Knowledge Learning Module(OUPKL)

目的:分别从当前用户的历史会话 H ( u c ) \mathbb{H}(u_c) H(uc)和与当前会话有相似用户偏好的其他用户会话 S ( u c ) \mathbb{S}(u_c) S(uc)中学习到先验知识,分别为 β ( H ( u c ) ) \beta(\mathbb{H}(u_c)) β(H(uc)) β ( S ( u c ) ) \beta(\mathbb{S}(u_c)) β(S(uc))

在CUPKL和OUPKL中都包含了一个SSRN(similar session retrieval network)用于计算会话之间的相似度还有一个Session Encoder用于对候选相似会话中的用户偏好进行编码

2.1 Forming Candidate Similar Session Sets
问题:从整个数据集中检索相似的会话将产生不相关的会话以及很高的计算壁垒
解决:使用两个相似候选集用于模型检索:一个是 s l u c s_l^{u_c} sluc 之前的 u c u_c uc 会话的会话集:
H ( u c ) = { s 1 u c , . . . , s l − 1 u c } \mathbb{H}(u_c) = \lbrace s_1^{u_c}, ..., s_{l-1}^{u_c}\rbrace H(uc)={s1uc,...,sl1uc}
另外一个是几个与当前用户有着相似偏好的用户的会话集

我们首先选择与 u c u_c uc 最相似的用户作为与 u c u_c uc 交互的大多数相同items交互的用户。在数学上,我们计算每个用户 u τ u_\tau uτ u c u_c uc之间的相似度:
s i m u ( u τ , u c ) = ∣ Ω τ ∩ Ω c ∣ ∣ Ω τ ∣ × ∣ Ω c ∣ sim_u(u_{\tau}, u_c) = \frac{|\Omega_\tau \cap \Omega_c|}{|\Omega_\tau| \times |\Omega_c|} simu(uτ,uc)=Ωτ×ΩcΩτΩc
其中 u τ ∈ U u_{\tau} \in U uτU τ ≠ c \tau \neq c τ=c Ω τ \Omega_\tau Ωτ是与 u τ u_\tau uτ 交互的items集
这样就形成了在训练集中与 u c u_c uc最相似的N个用户的候选相似集 S ( u c ) \mathbb{S}(u_c) S(uc)
因此,由先验知识调整和优化后的用户偏好方程可改写为:
ψ ( h c , H ( u c ) , S ( u c ) ) = h c + β ( H ( u c ) ) + β ( S ( u c ) ) \psi(h_c, \mathbb{H}(u_c), \mathbb{S}(u_c)) = h_c + \beta(\mathbb{H}(u_c)) + \beta(\mathbb{S}(u_c)) ψ(hc,H(uc),S(uc))=hc+β(H(uc))+β(S(uc))
其中, H ( u c ) \mathbb{H}(u_c) H(uc) S ( u c ) \mathbb{S}(u_c) S(uc) 分别表示 u c u_c uc 和他的相似用户的会话集

2.2 Similar Sessions Retrieval Network(SSRN)
为了找到和当前绘画相似的会话:
现有的研究:

  1. 使用固定长度的向量对会话进行编码
  2. 基于这些会话的向量表示计算这些会话的相似度

存在的问题:得到的会话之间的相似度可能不准确,因为会话encoder难以保留所有的会话信息
例如,现有的研究常常使用基于注意力的加权和或简单地使用item embeddings的均值来表示会话。忽略了item的位置和顺序

解决:直接使用由每个会话得到的item embeddings计算它们之间的最短距离,来衡量两个会话之间的相似度

previous work:使用Session Encoder编码后的向量表示计算相似度
This work:直接对item embedding之后的结果求最短距离来衡量两个会话之间的相似度

区别如下图所示:
在这里插入图片描述

给定了 H ( u c ) \mathbb{H}(u_c) H(uc) 或者 S ( u c ) \mathbb{S}(u_c) S(uc) 中的候选会话:

  1. 将每个item v i ∈ c s v_i \in cs vics 嵌入为一个d维embedding x i x_i xi
  2. 将它们依次送到RNN层,输出为 h 1 , h 2 , . . . h t h_1, h_2, ... h_t h1,h2,...ht 包含了对应item和它的前置items的信息
  3. 对于每个 h i h_i hi,计算它们与 h c h_c hc 的相似度 λ i , c \lambda_{i,c} λi,c:
    λ i , c = h i ⋅ h c T \lambda_{i,c} = h_i \cdot h_c^T λi,c=hihcT
    其中, i ∈ [ 1 , t ] i \in[1, t] i[1,t] 是cs中的item位置
  4. c s cs cs C i a C_{ia} Cia的相似度:取 c s cs cs 中所有items和 C i a C{ia} Cia 之间的最大相似度,将其看作 h c h_c hc 与候选相似会话 c s cs cs 之间的最短距离:
    s i m ( c s , C i a ) = max ⁡ i ∈ [ 1 , t ] λ i , c sim(cs, C_{ia}) = \max \limits_{i \in [1,t]} \lambda {i, c} sim(cs,Cia)=i[1,t]maxλi,c

2.3 Session Encoder
一旦此候选会话 c s cs cs h c h_c hc 相似,它的用户偏好就会作为当前会话的补充

在本论文中,使用基于注意力的session encoder来表示 c s cs cs 中的用户偏好:

  1. c s cs cs 的用户 u c s u_{cs} ucs 嵌入为d维的用户偏好embedding θ c s \theta_{cs} θcs
  2. 计算它对 c s cs cs 中的item v i v_i vi 的偏好:
    α ( v i , u c s ) = 1 η x i ⋅ θ c s T \alpha(v_i, u_{cs}) = \frac{1}{\eta}x_i \cdot \theta_{cs}^T α(vi,ucs)=η1xiθcsT
    其中, η = ∑ j = 1 t x j ⋅ θ u c s T \eta = \sum_{j=1}^t x_j \cdot \theta_{u_{cs}}^T η=j=1txjθucsT 是归一化因子
  3. c s cs cs 的用户偏好计算为:
    w c s = ∑ i = 1 t α ( v i , u c s × x i ) w_{cs} = \sum\limits_{i=1}^t\alpha(v_i, u_{cs} \times x_i) wcs=i=1tα(vi,ucs×xi)

H ( u c ) \mathbb{H}(u_c) H(uc) S ( u c ) \mathbb{S}(u_c) S(uc) 中的每个会话的会话相似度和用户偏好都准备好后,分别使用它们与 C i a C{ia} Cia 的相似度作为权重来聚合楼昂贵后续安吉中所有会话的用户偏好,计算先验知识的表示:
β ( H ( u c ) ) = M L P h ( ∑ c s ∈ H ( u c ) s i m ( c s , C i a ) × w c s ) \beta(\mathbb{H}(u_c)) = MLP_h(\sum\limits_{cs\in\mathbb{H}(u_c)} sim(cs, C_{ia}) \times w_{cs}) β(H(uc))=MLPh(csH(uc)sim(cs,Cia)×wcs)
β ( S ( u c ) ) = M L P h ( ∑ c s ∈ S ( u c ) s i m ( c s , C i a ) × w c s ) \beta(\mathbb{S}(u_c)) = MLP_h(\sum\limits_{cs\in\mathbb{S}(u_c)} sim(cs, C_{ia}) \times w_{cs}) β(S(uc))=MLPh(csS(uc)sim(cs,Cia)×wcs)

3. Prediction Module
预测函数:
p ( v ∣ C i a , H ( u c ) , S ( u c ) ) = s o f t m a x ( M L P ( ψ ( h c , H ( u c ) , S ( u c ) ) ) ) p(v | C_{ia}, \mathbb{H}(u_c), \mathbb{S}(u_c)) = softmax(MLP(\psi(h_c, \mathbb{H}(u_c), \mathbb{S}(u_c)))) p(vCia,H(uc),S(uc))=softmax(MLP(ψ(hc,H(uc),S(uc))))

4. Optimization and Training
使用user-aware mini-batch梯度下降框架训练提出的模型:
对于每个mini-batch,我们在数据集中选择一批由不同用户生成的会话。对于batch中的每个用户 u c u_c uc 生成用于训练的候选相似会话集, H ( u c ) \mathbb{H}(u_c) H(uc) S ( u c ) \mathbb{S}(u_c) S(uc)
将预测任务看作多类分类任务,并使用交叉熵损失来训练模型:
L ( v + ) = − [ l o g p ( v + ) + ∑ v i ∈ V , v i ≠ v + l o g ( 1 − p ( v i ) ) ] \mathcal{L}(v^+) = -[logp(v^+) + \sum\limits_{v_i \in V, v_i \neq v^+} log(1-p(v_i))] L(v+)=[logp(v+)+viV,vi=v+log(1p(vi))]
其中, v + v^+ v+ 是当前会话中真正的next-item,而 p ( v ) p(v) p(v) p ( v ∣ C i a , H ( u c ) , S ( u c ) ) p(v | C_{ia}, \mathbb{H}(u_c), \mathbb{S}(u_c)) p(vCia,H(uc),S(uc)) 的缩写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值