返回介绍

数学基础

统计学习

深度学习

工具

Scala

十七、STAMP [2018]

发布于 2023-07-17 23:38:23 字数 96849 浏览 0 评论 0 收藏 0

  1. 基于会话的推荐系统 Session-based Recommender system: SRS 是现代商业在线系统的重要组成部分,通常用于通过基于用户行为(这些用户行为编码在 browser session 中)提出的建议来改善用户体验。推荐器的任务是根据当前 session 中的动作 action 序列来预测用户的 next action (例如,点击某个 item)。最近的研究强调了在各种推荐系统中使用 RNN 的重要性,其中, RNNsession-based 的推荐任务中的应用在过去几年中取得了重大进展。尽管 RNN 模型已被证明可用于从一个action 序列中捕获用户的一般兴趣general interest ,但是由于用户行为固有的不确定性和浏览器提供的信息有限,学习从 session 中进行预测仍然是一个具有挑战性的问题。

    根据现有文献,几乎所有 RNN-based 的推荐模型都只考虑将 session 建模为一个 item 序列,而没有显式考虑用户的兴趣随时间漂移 drift ,这在实践中可能存在问题。例如,如果某个特定的数码相机链接刚刚被用户点击并记录在 session 中,则用户下一个预期的action 很可能是对当前 action 的响应:

    • 如果当前的 action 是:在作出购买决定之前,先浏览产品描述。那么,用户下一步很可能会访问另一个数码相机品牌类目brand catalog

    • 如果当前的 action 是:在购物车中添加数码相机。那么,用户的浏览兴趣很可能会转移到存储卡等其它外围设备上。在这种情况下,向该用户推荐另一台数码相机并不是一个好主意,尽管当前 session 的初衷是购买数码相机。

      因为用户对于“购买数码相机”这个需求的决策已经完成了,所以继续推荐数码相机已经不再合适。

    在典型的推荐系统任务中,session 由一系列 named item 组成,并且用户兴趣隐藏在这些隐式反馈中(如,点击)。为了进一步提高 RNN 模型的预测准确性,重要的是能够同时学习这种隐式反馈的长期兴趣long-term interest 和短期兴趣short-term interest。正如 《Adaptation and Evaluation of Recommendations for Short-term Shopping Goals》 指出的那样,用户的短期兴趣和长期兴趣对于推荐都非常重要。但是,传统的 RNN 架构并非旨在同时区分和利用这两种兴趣。

    在论文 《STAMP: Short-Term Attention/Memory Priority Model for Session-based Recommendation》中,作者考虑通过在推荐模型中引入一种 recent action priority 机制来解决这个问题,这个新的模型称作 Short-Term Attention/Memory Priority: STAMP 模型。STAMP 模型可以同时考虑用户的一般兴趣 general interest 和当前兴趣current interest

    • STAMP 中,用户的一般兴趣由 session prefix (包括last-click)构建的 external memory 所捕获,这就是术语 Memory 的由来。术语 “ last-click” 表示 session prefix 的最后一个 actionitem) ,推荐系统的目标是预测关于这个 last-clicknext click
    • STAMP 中,last-clickembedding 用于表示用户当前的兴趣,并在此基础上构建了所提出的注意力机制。

    由于 last-clickexternal memory 的一个组成部分,因此它可以被视为用户兴趣的 short-term memory 。同样地,建立在 last-click 之上的用户注意力可以看做是一种短期注意力short-term attention 。据作者所知,这是在为 session-based 的推荐构建神经注意力模型时,同时考虑长期记忆long-term memory和短期记忆short-term memory的首次尝试。

    由于 short-term memory 已经被包含进了 external memory,因此短期兴趣的信息实际上已经被包含进了长期兴趣。而 STAMP 实际上相当于为长期兴趣中的短期兴趣赋予了一个很强的注意力,使得模型能够关注到短期兴趣的信息,这也是为什么模型叫做 “短期注意力优先” 而不是叫 “短期注意力分离” 的原因。

    论文的主要贡献如下:

    • 引入了一个 short-term attention/memory priority 模型,该模型可以学习一个统一的 embedding 空间(跨 sessionitem),以及一个用于session-based 推荐系统中 next click 预测的新颖神经注意力模型neural attention model
    • 提出了一种新的注意力机制来实现 STAMP 模型,其中注意力权重是从 session context 中计算出来的,并随着用户当前的兴趣而增强。输出的注意力向量被视为用户的临时兴趣 temporal interest,并且比其它 neural attention based 方案对用户兴趣随时间的漂移更敏感。因此,它能够同时捕获用户的一般长期兴趣(响应初始意图 initial purpose)、以及用户的短期注意力(用户的当前兴趣)。论文通过实验验证了所提出的注意力机制的有效性和效率。
    • 在两个真实世界的数据集上评估了所提出的模型,实验结果表明:STAMP 达到了 state-of-the-art,并且所提出的注意力机制发挥了重要作用。
  2. 相关工作:session-based 推荐是推荐系统的一个子任务,其中推荐是根据用户 session 中的隐式反馈进行的。这是一项具有挑战性的任务,因为通常假定用户是匿名的,并且没有显式提供用户偏好(如,评分),相反,决策者只能获得一些正向的观察结果(如,购买或点击)。在过去的几年里,越来越多的研究关注于推荐系统问题的挑战,根据他们的建模假设,流行的方法可以分为两类:侧重于识别用户一般兴趣的全局模型global model 、侧重于识别用户临时兴趣的局部模型localized model

    • 捕获用户一般兴趣的一种方法是:通过基于用户整个 purchase/click 历史的协同过滤collaborative filtering: CF 方法。例如,矩阵分解Matrix Factorization: MF 方法使用潜在向量latent vector来表示一般兴趣,这些兴趣是通过分解由整个历史交易数据组成的 user-item 矩阵来估计的。
    • 另一种方法叫做邻域方法neighborhood method,它试图根据从 sessionitem co-occurrence 计算到的 item similarity 来提供推荐。
    • 第三种方法是基于马尔科夫链Markov chain: MC的模型,它利用user action 之间的顺序转移来进行预测。

    上述模型要么探索用户的一般兴趣,要么探索用户的当前兴趣:

    • 先前的 current interests based 推荐器很少考虑session 中不相邻的 item 之间的序列交互。
    • 尽管 general interests based 推荐器擅长捕获用户的一般品味,但是如果不显式建模相邻转移,则很难适应用户的 recent actions

    理想情况下,一个好的推荐器应该能够探索序列行为,并考虑到用户的一般兴趣。因为这两个因素可能会相互作用,从而影响用户的 next click 。因此,一些研究人员试图通过考虑两种类型的用户兴趣来改进推荐模型。

    • 《Factorizing personalized Markov chains for next-basket recommendation》 提出了一种混合模型 FPMC,它结合了 MFMC 的力量针对 next basket 推荐来同时建模序列行为和一般兴趣,从而获得比单独考虑短期兴趣或长期兴趣更好的效果。
    • 《Learning Hierarchical Representation Model for Next Basket Recommendation》 提出了一种 hybrid representation learning model ,该模型采用两层的 hierarchical structure 来从用户的最近交易中建模用户的序列行为和一般兴趣。

    但是,它们都只能对相邻action 之间的局部序列行为进行建模,而没有考虑 session context 所传递的全局信息。

    上述模型仅利用了 last action 来建模短期兴趣,利用 user representation 来建模长期兴趣。

    最近,深度神经网络已被证明在建模序列数据方面非常有效。受 NLP 领域最新进展的启发,人们已经开发了一些基于深度学习的解决方案,其中一些解决方案代表了 SRS 研究领域的 state-of-the-art

    • 《Session-based recommendations with recurrent neural networks》 使用带 GRURNN 来建模 session 数据。它从给定 sessionprevious clicks来直接学习 session representation,并提供 next action 的推荐。这是首次尝试将 RNN 网络应用于解决推荐系统问题。由于 RNN 提供的序列建模能力,他们的模型可以在预测 next action 时考虑用户的历史行为。
    • 《Improved Recurrent Neural Networks for Session-based Recommendations》 提出了一种数据增强技术来提高 RNNsession-based 推荐中的性能。
    • 《A Dynamic Recurrent Model for Next Basket Recommendation》 提出了一个动态循环模型,该模型应用 RNN 来学习在不同时间的、用户一般兴趣的 dynamic representation ,并捕获 basket 之间的全局序列行为。

    上面提到的、在推荐系统中的大多数神经网络模型都是通过使用相同的 operation 来操纵每个 context clicked item 来实现的,从而允许模型以隐式的方式捕获 next click和前面多个click 之间的相关性。此外,last time step 的隐状态包含有关序列的信息,并且靠近 next click 的部分得到更强的关注,因此可能会遗忘一些长距离 items 的某些一般兴趣的特征。为了解决这个问题,人们引入了各种模型来捕获 item 之间的相关性、以及更准确的一般兴趣。

    • 《Diversifying Personalized Recommendation with User-session Context》 提出了一种具有 wide-in-wide-out structure: SWIWO 的神经网络来学习 user-session context 。它通过组合当前 session 中的所有 item embedding 来构造 session context,这个 session context 根据与 target item 的响应的相对距离来为每个 item 提供一个固定的权重。
    • 《Neural Attentive Session-based Recommendation》 提出了一种 RNN based encoder-decoder model: NARM 。该模型将来自 RNN 的最后一个隐状态作为 query ,并使用前面多个点击的隐状态进行注意力计算,从而捕获给定session 中的主要意图main purpose(一般兴趣)。
    • 最近的另一项相关工作是 Time-LSTM 模型(《What to Do Next: Modeling User Behaviors by Time-LSTM》),它是 LSTM 的一个变体。Time-LSTM 考虑短期兴趣和长期兴趣,通过使用 time gate 来控制 last consumed item 的影响,并存储时间间隔来建模用户的长期兴趣。但是,在大多数真实世界的数据集中没有提供时间戳,因此这里不考虑它。

    我们的模型与 SWIWONARM 之间有显著差异。

    • SWIWO 以固定的方式确定 session 中每个 item 的权重,我们认为这在实践中是有争议的。在 STAMP中,对于给定的 session,所提出的注意力机制可以通过显式考虑每次historical clicklast click之间的相关性并计算动态权重来帮助缓解这种矛盾。

    • NARM 结合主要意图(即,一般兴趣)和序列行为(即,当前兴趣)来获得 session representation,其中将它们视为同等重要的、互补的特征。然而,STAMP 显式强调了last click所反映的当前兴趣,从而从previous clicks中捕获当前兴趣和一般兴趣的 hybrid features ,因此显式将last click的重要性引入推荐系统,然而NARM 仅捕获一般兴趣。STAMP 可以增强短期兴趣,以便在兴趣漂移的情况下准确捕获用户当前兴趣,尤其是在一个long session 中。

      即,对于 STAMP,当前兴趣更重要,但是重要程度是模型自己融合到 hybrid features 中的。

17.1 模型

  1. 典型的 session-based 的推荐系统建立在历史 session 之上,并根据当前的用户 session 进行预测。每个 session 由一个 action (用户点击的 item)的序列来组成,记做S=[s1,s2,,sN]$ \mathcal S=[s_1,s_2,\cdots,s_N] $ ,其中si$ s_i $ 表示在 time stepi$ i $ 处点击的 item (以 ID 表示)。St={s1,s2,,st},1tN$ \mathcal S_t=\{s_1,s_2,\cdots,s_t\}, 1\le t\le N $ 表示 sessionS$ \mathcal S $ 在 timet$ t $ 截断的 ation 序列的 prefix

    V={v1,v2,,v|V|}$ \mathbb V=\{v_1,v_2,\cdots,v_{|\mathbb V|}\} $ 表示推荐系统中的 unique item 集合,称作 item dictionary 。令X={x1,x2,,x|V|}$ \mathbf X=\left\{\mathbf{\vec x}_1,\mathbf{\vec x}_2,\cdots,\mathbf{\vec x}_{|\mathbb V|}\right\} $ 表示 item dictionaryV$ \mathbb V $ 的 embedding 向量。所提出的 STAMP 模型为V$ \mathbb V $ 中的每个 itemi$ i $ 学习d$ d $ 维实值 embeddingxiRd$ \mathbf{\vec x}_i\in \mathbb R^d $ 。

    具体而言,符号xtRd$ \mathbf{\vec x}_t\in \mathbb R^d $ 表示当前 session prefixSt$ \mathcal S_t $ 的last clickst$ s_t $ 的 embedding 。我们模型的目标是,在给定 session prefixSt$ \mathcal S_t $ 的条件下,预测 next possible click (即st+1$ s_{t+1} $ )。确切地讲,我们的模型是作为分类器来构建和训练的,该分类器学习为 item dictionaryV$ \mathbb V $ 中的每个候选item 生成一个分数 score,记做 output score vectory^=(y^1,y^2,,y^|V|)R|V|$ \hat{\mathbf{\vec y}} = \left(\hat y_1,\hat y_2,\cdots,\hat y_{|\mathbb V|}\right)\in \mathbb R^{|\mathbb V|} $ ,其中y^i$ \hat y_i $ 表示对应于 itemvi$ v_i $ 的得分。得到这个预测结果之后,我们对y^$ \hat{\mathbf{\vec y}} $ 中的元素进行降序排序,将 top-k 分数对应的 item 用于推荐。

  2. 为了符号方便,我们将三个向量的三线性乘积 trilinear product 记做:

    a,b,c=i=1daibici=a(bc)

    其中:a,b,cRd$ \mathbf{\vec a},\mathbf{\vec b},\mathbf{\vec c} \in \mathbb R^d $ ,$ \odot $ 表示 Hadamard product(即,逐元素乘积)。

17.1.1 STMP 模型

  1. 所提出的 STAMP 模型建立在所谓的 Short-Term Memory Priority: STMP 模型的基础之上,如下图所示。从图中可以看到,STMP 模型将两个 embeddingms$ \mathbf{\vec m}_s $ 和mt$ \mathbf{\vec m}_t $ ) 作为输入,其中:

    • ms$ \mathbf{\vec m}_s $ 表示用户对当前 session 的一般兴趣,定义为 sessionexternal memory 的均值:

      ms=1ti=1txi

      其中术语 external memory 是指当前 session prefixSt$ \mathcal S_t $ 的 item embedding 序列。

    • mt$ \mathbf{\vec m}_t $ 表示用户在该 session 的当前兴趣。在本文中,last clickxt$ \mathbf{\vec x}_t $ 用于表示用户的当前兴趣:

      mt=xt

      由于xt$ \mathbf{\vec x}_t $ 取自 sessionexternal memory,我们称其为用户兴趣的 short-term memory

    然后,我们使用两个 MLP 网络来分别处理一般兴趣ms$ \mathbf{\vec m}_s $ 和当前兴趣mt$ \mathbf{\vec m}_t $ 从而进行特征抽象 feature abstraction 。下图中所示的两个 MLP 单元的网络结构彼此相同,只是它们具有独立的参数设置。我们采用没有隐层的简单 MLP 来用于 feature abstraction。例如,对ms$ \mathbf{\vec m}_s $ 的操作定义为:

    hs=f(Wsms+bs)

    其中:hsRd$ \mathbf{\vec h_s}\in \mathbb R^d $ 为 output stateWsRd×d$ \mathbf W_s\in \mathbb R^{d\times d} $ 为权重矩阵,bsRd$ \mathbf{\vec b}_s\in \mathbb R^d $ 为偏置向量,f()$ f(\cdot) $ 为非线性激活函数(本文中我们使用 tanh)。

    论文表述有误,其实这里是单隐层的 MLP,而不是没有隐层的 MLP

    mt$ \mathbf{\vec m}_t $ 的状态向量 state vectorht$ \mathbf{\vec h}_t $ 可以类似于hs$ \mathbf{\vec h}_s $ 的方式来计算。然后,对于给定的候选 itemvi$ v_i $ (item representationxiX$ \mathbf{\vec x}_i\in \mathbf X $ ),得分函数score function定义为:

    z^i=σ(hs,ht,xi)

    其中:σ()$ \sigma(\cdot) $ 为 sigmoid 函数,z^i$ \hat z_i $ 表示关于当前的 session prefixSt$ \mathcal S_t $ 的加权用户兴趣与候选 itemvi$ v_i $ 之间的非归一化余弦相似度unnormalized cosine similarity

    这里使用线性交互,也可以使用非线性交互(如 MLP)。根据已有工作的结论,线性交互的表达能力不如非线性交互。

    z^=(z^1,z^2,,z^|V|)R|V|$ \hat{\mathbf{\vec z}}=\left(\hat z_1,\hat z_2,\cdots,\hat z_{|\mathbb V|}\right)^\top\in \mathbb R^{|\mathbb V|} $ 表示由z^i$ \hat z_i $ 组成的向量。然后通过 softmax 函数处理得到输出y^$ \hat{\mathbf{\vec y}} $ :

    y^=softmax(z^)R|V|

    其中y^$ \hat{\mathbf{\vec y}} $ 表示模型的输出向量,它表示每个 item 成为 next-click 的概率分布,每个元素y^i$ \hat y_i $ 表示 itemvi$ v_i $ 将在该 session 中作为 next-click 出现的事件的概率。

    如果仅仅是为了得到推荐列表,那么不需要进行 softmax 的计算。但是为了计算损失函数(需要用到归一化的概率),这里必须进行 softmax 的计算。

  2. 对于任何给定的 session prefixStS,t[1,2,,N]$ \mathcal S_t \sube \mathcal S, t\in [1,2,\cdots,N] $ ,损失函数定义为预测结果y^$ \hat{\mathbf{\vec y}} $ 的交叉熵:

    L(y^)=i=1|V|(yilog(y^i)+(1yi)log(1y^i))

    其中y$ \mathbf{\vec y} $ 表示由 ground truthst+1S$ s_{t+1}\in \mathcal S $ 激活的 one-hot 向量。

    然后我们执行迭代式的随机梯度下降 stochastic gradient descent: SGD 优化器来优化交叉熵损失。

  3. STMP 模型的定义(即,z^i$ \hat z_i $ )可以看出,模型根据候选 item 和加权用户兴趣的内积来预测 next-click 。其中,加权用户兴趣通过 long-term memory(平均历史点击)和 the short-term memorythe last-click)的双线性组合bilinear composition来表示。这种三线性组合模型trilinear composition model 的有效性在实验部分得到验证,在所有 benchmark 数据集上实现了 state-of-the-art 性能。

    然而,从等式ms=1ti=1txi$ \mathbf{\vec m}_s= \frac{1}{t}\sum_{i=1}^t \mathbf{\vec x}_i $ 可以看出,当从 current sessionexternal memory 建模用户的一般兴趣ms$ \mathbf{\vec m}_s $ 时,STMP 模型将 session prefix 中的每个 item 视为同等重要。我们认为这在捕获用户的兴趣漂移interests drift(即,可能由于意外的点击引起)时会出现问题,尤其是在 long session 的情况下。因此,我们提出了一个注意力模型来解决这个问题,该模型已被证明可以有效地捕获长序列中的注意力漂移。所提出的注意力模型是在 STMP 模型的基础上设计的,它遵循与 STMP 相同的思想,也优先考虑短期注意力short-term attention,因此我们称之为 Short-Term Attention/Memory Priority: STAMP 模型。

17.1.2 STAMP 模型

  1. STAMP 模型的架构如下图所示。从下图可以看到,这两个模型之间的唯一区别在于:

    • STMP 模型中,用户的一般兴趣的抽象特征向量abstract feature vector (即,状态向量hs$ \mathbf{\vec h}_s $ ) 是根据 external memory 的均值ms$ \mathbf{\vec m}_s $ 计算而来的。
    • 然而在 STAMP 模型中,hs$ \mathbf{\vec h}_s $ 是从一个 attention based 的、用户的一般兴趣(一个实值向量ma$ \mathbf{\vec m}_a $ )中计算而来的。如下图所示,ma$ \mathbf{\vec m}_a $ 是由所提出的注意力机制产生的,称作注意力网络attention net

  2. 所提出的注意力网络由两个组件组成:

    • 一个简单的前馈神经网络feed-forward neural network: FFN,负责为当前 session prefixSt$ \mathcal S_t $ 中的每个 item 生成注意力权重。

      用于注意力计算的 FNN 定义为:

      αi=w0σ(W1xi+W2xt+W3ms+ba)

      其中:

      • xiRd$ \mathbf{\vec x}_i\in \mathbb R^d $ 表示第i$ i $ 个 itemsiSt$ s_i\in \mathcal S_t $ 的 embeddingxtRd$ \mathbf{\vec x}_t\in \mathbb R^d $ 表示the last-clickembedding
      • w0Rd$ \mathbf {\vec w}_0\in \mathbb R^d $ 为待学习的加权向量。W1,W2,W3Rd×d$ \mathbf W_1,\mathbf W_2,\mathbf W_3\in \mathbb R^{d\times d} $ 为待学习的加权矩阵,baRd$ \mathbf{\vec b}_a\in \mathbb R^d $ 为待学习的偏置向量。
      • σ()$ \sigma(\cdot) $ 为 sigmoid 函数。αi$ \alpha_i $ 为当前 session prefixitemsi$ s_i $ 的注意力系数。

      可以看到:session prefixitem 的注意力系数是根据 target itemsi$ s_i $ 的 embeddinglast-clickst$ s_t $ 、以及 session representationms$ \mathbf{\vec m}_s $ 计算而来,因此它能够捕获si$ s_i $ 和用户兴趣的 long/short term memory 之间的相关性。

      这里捕获的不是短期兴趣相关性、也不是长期兴趣相关性,而是同时捕获了长期/短期兴趣的相关性。

      注意,在上式中,我们显式考虑了 short-term memory,这与相关工作明显不同,这就是所提出的注意力模型被称作 short-term attention priority model 的原因。

      这个模型既不是长期注意力模型,也不是短期注意力模型,而是短期注意力优先模型。

    • 一个注意力组合函数attention composite function,负责计算 attention based 的、用户的一般兴趣ma$ \mathbf{\vec m}_a $ 。

      在获得关于当前 session prefixSt$ \mathcal S_t $ 的注意力系数向量α=(α1,α2,,αt)$ \vec\alpha=(\alpha_1,\alpha_2,\cdots,\alpha_t)^\top $ 之后,关于 session prefix 的、attention based 的、用户的一般兴趣ma$ \mathbf{\vec m}_a $ 可以计算为:

      ma=i=1tαixi

17.1.3 The Short-Term Memory Only Model

  1. 为了评估本文基本思想的有效性(即,在根据 session 作出决策时,优先考虑用户行为的 short-term attention/memory),在本节中我们提出了一个 Short-Term Memory Only: STMO 模型。STMO 模型仅根据当前 session prefixSt$ \mathcal S_t $ 的 last-clickst$ s_t $ 来预测 next clickst+1$ s_{t+1} $ 。

    STMP 模型类似,STMO 模型中使用简单的 MLP 进行 feature abstractionMLPlast clickst$ s_t $ 作为输入,并输出一个向量htRd$ \mathbf{\vec h}_t\in \mathbb R^d $ ,就像 STMP 中的 MLP CELL B 一样。ht$ \mathbf{\vec h}_t $ 定义为:

    ht=f(Wtxt+bt)Rd

    其中:ht$ \mathbf{\vec h}_t $ 表示 output state 向量,WtRd×d$ \mathbf W_t\in \mathbb R^{d\times d} $ 表示权重矩阵,btRd$ \mathbf{\vec b}_t\in \mathbb R^{d} $ 为偏置向量,f()$ f(\cdot) $ 为激活函数(这里为 tanh)。

    然后,对于给定的候选 itemviV$ v_i\in \mathbb V $ ,得分函数被定义为xi$ \mathbf{\vec x}_i $ 和ht$ \mathbf{\vec h}_t $ 之间的内积:

    z^i=htxi

    在得到分数向量 score vectorz^R|V|$ \hat{\mathbf{\vec z}}\in \mathbb R^{|\mathbb V|} $ 之后,可以根据y^=softmax(z^)$ \hat{\mathbf{\vec y}}=\text{softmax}\left(\hat{\mathbf{\vec z}}\right) $ 计算的 ranking list 进行预测,也可以根据L(y^)$ \mathcal L\left(\hat{\mathbf{\vec y}}\right) $ 优化模型的参数,就像 STMP 模型中的情况一样。

17.2 实验

  1. 数据集:

    • Yoochoose数据集:来自 RecSys’15 Challenge ,是由从电商网站收集的六个月的click-streams 组成,其中训练集仅包含 session 事件。
    • Diginetica 数据集:来自 CIKM Cup 2016。我们仅使用交易数据 transaction data

    预处理:

    • 遵从 《Session-based recommendations with recurrent neural networks》《Neural Attentive Session-based Recommendation》,我们过滤掉长度为 1session,也过滤掉出现频次低于 5item
    • Yoochoose 测试集由那些训练集 session 之后几天的 session 所组成,并且我们对训练集过滤掉未出现在训练集中的 item 。对于 Diginetica 测试集,唯一区别是我们使用接下来一周(而不是几天)的 session 进行测试。

    经过预处理之后,Yoochoose 数据集包含 37483item7966257session31637239 个点击事件;Diginetica 数据集包含 43097item202633session982961 个点击事件。

    《Improved Recurrent Neural Networks for Session-based Recommendations》 相同,我们对 input sessionS={s1,s2,,sN}$ \mathcal S = \{s_1,s_2,\cdots,s_N\} $ 生成序列和对应的 label([s1],s2),([s1,s2],s3),,([s1,s2,,sN1],sN)$ ([s_1],s_2),([s_1,s_2],s_3),\cdots,([s_1,s_2,\cdots,s_{N-1}],s_N) $ 用于训练和测试,这种方式被证明是有效的。因为 Yoochoose 训练集非常大,并且根据 《Improved Recurrent Neural Networks for Session-based Recommendations》 的实验,对最近一段时间的数据的训练比对整个数据的训练要产生更好的结果,因此我们使用最近 1/641/4 比例的训练序列。

    即,按照时间对训练序列进行排序,然后在训练序列的最近部分上(比如最近 1/4 )进行训练。但是可能存在这样一种情况:某些测试集的 item 出现在完整训练集中、但是未出现在最近 1/4 的训练集中。对于这部分测试 item,我们仍然保留。因为这些测试 item 是训练集中见过的,只是我们人为地丢弃了部分训练数据而已。

    三个数据集的统计数据如下表所示:

  2. baseline 方法:

    • POP:一个简单的推荐模型,它根据item 在训练集中出现的频次来推荐热门的 item

    • Item-KNN:一个 item-to-item 模型,它根据候选 itemsession 中现有 item 之间的余弦相似度来推荐与session 中现有 item 相似的 item 。为了防止稀疏 item 之间巧合导致高度相似性,我们包含一个类似于《A Dynamic RecurrentModel for Next Basket Recommendation》中的约束。

      余弦相似度通过 session 中的 item 共现来计算。

      论文中提到的约束并未找到,可能表述有误。通常为解决这类巧合问题,我们采用拉普拉斯平滑来计算余弦相似度。

    • FPMC:用于 next-basket 推荐的、state-of-the-arthybrid 模型。为了使其适用于 session-based 推荐,我们在计算推荐分时不考虑 user latent representation

    • GRU4Rec:一个 RNN-based 的、用于 session-based 推荐的深度学习模型。它由 GRU 单元组成,利用 session-parallel mini-batch 训练过程,并在训练期间采用 ranking-based 损失函数。

    • GRU4Rec+:基于 GRU4Rec 的改进模型。它采用两种技术来提高 GRU4Rec 的性能,包括:数据增强过程、考虑输入数据分布偏移 shift 的方法。

    • NARM:一个 RNN-basedstate-of-the-art 方法。它采用注意力机制从隐状态中捕获主要意图main purpose,并将其与序列行为(通过 RNN 得到的)拼接从而作为 final representation 来生成推荐。

  3. 我们使用以下指标来评估推荐模型的性能:

    • P@20P@K 表示ground truthitemranking list 中排名 top K 位置的 test case 的比例,定义为:

      P@K=nhitN

      其中:N$ N $ 表示推荐系统中的 test case 的数量,nhit$ n_\text{hit} $ 表示top Kranking list 命中的 test case 数量。当 ground truth 出现在 top K ranking list 时,则表示命中。

    • MRR@20ground truth 排名倒数的均值。如果排名落后于 20,则排名倒数reciprocal rank置为零。

      MRR@K=1Nt is ground truth1rank(t)

      MRR 是取值范围为 [0,1] 的归一化分数,它的取值的增加反映了大多数 hit 将在 ranking list 的排名顺序中出现更靠前,也表明推荐系统的性能更好。

  4. 超参数配置:通过对所有数据集进行广泛的网格搜索来调优超参数,并根据验证集上的 P@20 指标通过早停early stopping来选择最佳模型。网格搜索的超参数范围是:

    • embedding 维度d$ d $ :{50, 100, 200, 300}
    • 学习率η$ \eta $ :{0.001, 0.005, 0.01, 0.1, 1}
    • 学习率衰减λ$ \lambda $ :{0.75, 0.8, 0.85, 0.9, 0.95, 1.0}

    根据平均表现,本文中我们对两个数据集的所有测试集使用以下超参数:d=100,η=0.005,λ=1.0$ d=100,\eta=0.005,\lambda=1.0 $ 。此外:

    • batch size = 512epoch 数量为 30
    • 我们从正态分布N(0,0.052)$ \mathcal N(0,0.05^2) $ 中采样来初始化所有权重矩阵,并将所有偏置向量置为零。
    • 所有 item embedding 均使用正态分布N(0,0.0022)$ \mathcal N(0,0.002^2) $ 来随机初始化,然后与其它参数联合训练。

17.2.1 The Next-Click Prediction

  1. 为了展示我们方法的整体性能,我们将其与 state-of-the-art 的推荐方法进行比较,结果如下表所示。每列的最佳结果以粗体突出显示。从下表可以看到,STAMPYoochoose数据集和 Diginetica 数据集上的所有指标上均达到了 state-of-the-art 性能,验证了它的有效性。

    从下表可以观察到结论:

    • Item-KNNFPMC 等传统方法的性能没有竞争力,因为它们只优于朴素的 POP 模型。这些结果有助于验证在 session-based 推荐任务中考虑用户行为(交互 interaction)的重要性。因为结果表明:仅根据 item 的共现流行度 co-occurrence popularity 进行推荐、或简单考虑连续 item 的转移 transition ,那么无法作出准确的推荐。

      此外,这类全局解决方案 global solutions 可能会耗费时间和内存,使其无法扩展到大规模数据集。

    • 所有的神经网络 baseline 都显著优于传统模型,从而证明了深度学习技术在该领域的有效性。

    • GRU4Rec+ 通过使用数据增强技术来提高 GRU4Rec 的性能。这个数据增强技术将单个 session 分为几个 sub-session 来进行训练。然而 GRU4Rec+ 没有修改 GRU4Rec 的模型结构,它们都只考虑了序列行为sequential behavior,这可能会遇到用户兴趣漂移users’ interest drift的困难。

    • NARMbaseline 中取得了最好的性能,因为它不仅使用带 GRU unitRNN 来建模序列行为,而且还使用注意力机制来捕获主要意图。这表明主要意图的信息在推荐中的重要性。这是合理的,因为当前 session 的一部分 item 可能反映用户的主要意图,并与 next item 相关。

    • 在我们提出的模型中,STAMP 模型在两个实验中,在 Yoochoose 数据集上获得了最高的 P@20MRR@20 ,并在 Diginetica 数据集上取得了可比的结果。

    • STMO 模型无法从当前 session 中的 previous clicks 中捕获一般兴趣的信息,因此它会在遇到相同的 last-click 时(即使是位于不同的 session)生成相同的推荐。不出所料,该模型在我们提出的模型中表现最差,因为它无法利用一般兴趣的信息。

      但是与 Item-KNNFPMC 等传统机器学习方法相比(这些方法都是基于 last-click 进行预测),STMO 取得了显著更好的性能,这证明了我们提出的框架模型能够学习有效的、统一的 item embedding representation

    • 作为 STMO 的扩展,STMP 只是使用均值池化函数来生成 session representation 从而作为长期兴趣,并应用 last-click 的信息来捕获短期兴趣。它在所有三个实验中都优于 STMO,并且性能与 GRU4Rec+ 相当,单略逊于 NARM

      正如预期的那样,同时考虑 session context 的信息以及 last click 的信息适合于该任务,因此 STMP 能够更好地为给定 session 提供 session-based 推荐。

    • STMP 相比,STAMP 应用了 item-level 注意力机制,在三个实验中分别在 P@20 上实现了 0.95%, 1.25%, 1.12% 的提升、在 MRR@20 上实现了 1.04%, 1.06%, 2.04% 的提升。结果表明,以这种方式生成的 session representation 比均值池化函数更有效,这证明了当前 session 中并非所有 item 在生成 next item 推荐时都同等重要,并且部分重要的 item 可以通过所提出的注意力机制来捕获从而建模对用户兴趣有用的特征。state-of-the-art 的结果证明了 STAMP 的有效性。

      相比较而言,STMP -> STAMP 的效果提升并不是非常显著。这是符合预期的,因为 STMPSTAMPsession representation 都包含相同的信息(同一个序列),也都包含了 last click 的信息。二者的差异在于抽取 session representation 的方法不同,STAMP 的抽取方法更加精细化。

17.2.2 STAMP 和 NARM 的比较

  1. 为了验证我们提出的 STAMP 模型和 state-of-the-artNARM 模型在实际生产环境中的表现(即,推荐系统一次仅推荐几个 item),ground truth 应该位于 ranking list 的前面。因此,我们使用 P@5, MRR@5, P@10, MRR@10 来评估推荐质量从而试图模拟实际情况。结果如下表所示,并且我们认为实验结果可能在一定程度上反映了它们在实际生产环境中的表现。

    可以看到:当在模拟生产环境中按照更严格的规则进行评估时,STAMP 在这项任务中表现良好,比 NARM 更有竞争力。这证明了考虑一般兴趣和短期兴趣的有效性,以及学到的 item embedding 的有效性。

  2. 我们还记录了 NARMSTAMP 方法的运行时间。我们使用相同的 100embedding 向量来实现这两个模型,并在同一个 GPU server 上测试它们。下表给出了三个数据集上每个 epoch 的训练时间。结果表明 STAMPNARM 更有效率。

    我们认为这是因为 NARM 模型在每个 GRU unit 中包含了很多复杂的操作,而我们提出的模型更简单、更高效。这意味着 STAMP 可能更适合实际应用,因为计算效率在现实世界 session-based 的推荐系统中是至关重要的,因为这些系统总是由大量的 sessionitem 组成的。

    NARMRNN-based 方法,而 STAMPattention-based 方法。众所周知,RNN 方法的时间成本更高。

17.2.3 last click 的效果

  1. 这里我们设计了一系列的对比模型来验证在 session context 的基础上应用 last click 信息进行 session-based 推荐的有效性:

    • STMP-:在 STMP 的基础上,不使用 trilinear layer 中的 last click item embedding

    • STMP:本文提出的 STMP 模型。

    • STAMP-:在 STAMP 的基础上,不使用 trilinear layer 中的 last click item embedding

      注意,由于 STAMPattention 系数的计算过程中使用了 last click item embedding。因此,即使不使用 trilinear layer 中的 last click item embeddingSTAMP- 也包含 last click item embedding 的信息。

    • STAMP:本文提出的 STAMP 模型。

    下表给出了实验对比的结果,所有结果都表明:融合 last click 信息的模型要比没有融合 last click 信息的模型,效果更好。

    这些结果证明,last clicksession-based 的推荐具有积极的贡献。我们的模型是基于同时捕获长期兴趣和短期兴趣、并加强 last click 信息。我们认为这在处理 long session 方面是有利的,因为用户兴趣在一个 long 的浏览期间可能会改变,而用户的 next action 可能与反映短期兴趣的 last click 更相关。

  2. 为了验证 last click 的效果,我们研究了不同 session 长度的 P@20 。在 Yoochoose 1/64 数据集上的结果如下图所示。

    • 我们首先展示了在 STMP, STAMP, NARM 上不同 session 长度的实验结果,如图 (a) 所示。可以看到,当 session 长度超过 20 时,和 STMPSTAMP 形成鲜明对比,NARM 的性能迅速下降。这表明 short-term interests priority based 的模型在处理 long session 方面可能比 NARM 更强大。

    • 另一方面,在图 (b) 中,我们发现当长度在 130 之间时,STMPSTAMPP@20 结果分别明显高于对应的 without last click 模型。原因是 last clicksession representation 中捕获了当前兴趣,使得 STMPSTAMP 可以更好地建模用户兴趣来进行 next click 推荐。

      对于较长的 session 长度,STMP-STMP 之间、以及 STAMP-STAMP 之间的性能 gap 变得更大。这证明了,尽管从 session context 中捕获一般兴趣很重要,但是显式利用临时兴趣可以提高推荐的质量。

      此外,STAMP- 优于 STMP-,这是由于 STAMP- 中的注意力机制捕获了混合兴趣 hybrid interest,而 STMP- 仅考虑一般兴趣。这表明 last lick 信息在 session-based 推荐任务中的重要性。

17.2.4 对比所提出的模型

  1. 为了进一步验证不同模型的有效性,我们通过对不同 session 长度的比较研究来展示它们在不同情况下的表现。

    我们将 session 划分为两组:Short 组表示 session 长度为 5 或更少,Long 组表示 session 长度大于 5 。其中,5 是几乎所有原始数据集中所有 session 的平均长度。对于 Yoochoose 测试集和 Diginetica 测试集,属于 Short 组的 session 占比分别为 70.10%76.40%,属于 Long 组的 session 占比分别为 29.90%23.60% 。对于每一种方法,我们在每个数据集上计算每个长度分组的 P@20MRR@20 的结果,如下图所示。

    • (a) 展示了在 Yoochoose 上的结果。可以看到:

      • 所有方法在 Long 组的 P@20MRR@20 结果都比 Short 组更差,这突出了该数据集上为 long sessionsession-based 推荐的挑战。我们猜测这可能是因为随着 session 长度则增加,很难捕获到用户的兴趣漂移interest drift

      • 此外,STMPSTAMP 在两组中的表现都优于 STMO,并且随着 session 长度的增加,gap 变得更大。这意味着考虑一般兴趣和当前兴趣的模型(相比较于仅使用 last click 信息的模型)在处理 long session 时可能更强大。

        这证实了我们的直觉,即在 session-based 推荐中, session contextlast click 信息可以同时地、有效地用于学习用户兴趣并预测 next item

    • (b) 展示了在 Diginetica 上的结果。

      • STMOSTMP 有更好的 MRR@20 结果,而且随着 session 长度的增加,gap0.38% 增长到 1.11% 。这种表现可能表明 STMP 中的 average aggregation 有其缺点,影响了推荐效果,同时 STMO 的结果可能暗示了短期兴趣对作出准确推荐的有效性。
      • 总体而言,STAMP 仍然是表现最好的模型,这也强调了需要有效的 session representation 来获得 hybrid interest,这也证明了所提出的注意力机制的优势。

  2. 此外,上图显示,在 Yoochoose 数据集上,Short 组和 Long 组之间的趋势与 Diginetica 数据集上的趋势大不相同。为了解释这一现象,我们分析了这两个数据集,并显示了两个数据集中重复点击(即在一个 session 中同一个 item 被点击至少两次)的 session 占比(区分不同的 session 长度)。

    从下表可以看到:Yoochoose 中重复点击的 session 占比相比 Diginetica 数据集,在 Short 组中的占比更小、在 Long 组中的占比更大。

    从这些结果中我们发现 session 中的重复点击对推荐效果有影响,它与模型性能成反比。这可能是因为重复点击可能会强调不重要item 的一些无效信息,并使其难以捕获到 next action 相关的用户兴趣。

    这个结论比较突兀,逻辑上讲不通?

    STAMP 中,我们使用short-term attention priority 的方式建模用户兴趣,即注意力机制从给定 session 中选择重要的 item 来建模用户兴趣。这可以有效缓解 session 中重复点击的影响。

    相反,在其它方法中仅使用 last click 或平均点击信息,这无法克服与重复点击有关的问题。这证明了 short-term attention priority 和所提出的注意力机制的有效性。

17.2.5 可视化

  1. 这里我们从 Yoochoose 测试集中随机选取多组样本进行分析,它们一致性地表现出相同的模式。下图说明了所提出的 item-level 注意力机制的注意力结果及其优势。在下图中,颜色越深则重要性越高。因为在没有 item 详细信息的情况下很难直接评估每个 context itemtarget item (这里的 target item 指的是 last click ,而不是 next click )之间的关联,因此注意力机制的有效性可以根据 item 的类别信息(每个长条下方的字母代表类别,如 s )来部分地解释。

    例如在 session 11255991 中,我们可以观察到与 target item 具有相同类别的 item ,要比其它 item 具有更大的注意力权重。item 的类别可以在一定程度上反应用户的兴趣,与 target item 相同类别的 item 具有较高权重,这可以部分地证明注意力机制能够捕获到用户对 next action 的兴趣。

    如下图所示,我们的方法能够在决定 next action 时强调一些因素:

    • 首先,并不是所有的 item 在决定 next action 时都是重要的,我们的方法能够挑选出重要的 item ,而忽略了无意中的点击。

    • 其次,尽管一些重要的 itemsession 中并不是位于当前 action 附近,但是它们也可以被我们的方法识别为重要的 item。我们认为这表明我们的模型能够捕获到用户对最初的、或主要意图的一般兴趣。

    • 第三,位置接近 session 结束的 item 往往具有较大的权重,尤其是长度较长的 session 中的 last click item 。这证明了我们的直觉,即用户的预期的 action 可能更多的是对 current action 的反应。

      这表明所提出的注意力机制对给定 session 中的兴趣漂移很敏感,并且正确地捕获到了当前的兴趣,这也是 STAMP 能够超越其他的、主要聚焦于长期兴趣的模型的原因之一。

    • 此外,结果表明,重要的 item 可以被捕获,无论它们在给定 session 的什么位置。这证明了我们的猜想,即所提出的 item-level 注意力机制可以从全局角度捕获关键 item ,从而构建一般兴趣和当前兴趣的 hybrid feature

    因此,基于可视化的结果,我们认为所提出的 item-level 注意力机制通过计算注意力权重,捕获了预测 sessionnext action 的重要部分,使得模型能够同时靠考虑长期兴趣和短期兴趣,并作出更准确、更有效的建议。

    这里的可视化结果仅挑选出少数几个 case,不具备统计意义上的说服力。最好能够给出大批的 case 的统计结论。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文