返回介绍

数学基础

统计学习

深度学习

工具

Scala

二十五、LINet(2019)

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

  1. 在电商和流媒体等许多在线服务中,用户的行为通常是序列sequential的,例如,被查看的 item 之间具有时间相关性 temporal correlation 。此外,可以将序列动作 sequential action 分组到 session 中。每个 session 由在特定时间段内发生的 action 组成。session-based 推荐的任务是:给定用户在 session 中的 previous actions,预测用户在同一个 session 中的 next action

    由于 session-based 推荐在许多 application 中具有很高的实用价值,它越来越受到研究人员的关注,并提出了许多有趣且有效的方法。大多数 state-of-the-art 方法都遵循 encoder-predictor 架构,其中encoderprevious actions 编码到 session embedding 中,并且 predictor 根据 session embedding 来生成在所有可能的 action 集合上的概率分布。

    很容易理解:在 session-based 推荐中,排序信息ordering information 对于预测 next action 很有用,因为 session data 本质上是序列的。然而,并非所有排序信息都很重要。具体而言,论文 《Session-based Recommendation with Local Invariance》认为:有些时候只有通用generalhigh-level 的排序信息很重要,而 sub-sessional level (称作 detailed ordering)并不重要。例如,当用户想在电商网站上购买手机和一些配件时,用户可能需要针对手机及其配件比较不同品牌的多个商品。在这种情况下,用户查看不同手机或不同品牌配件的顺序并不重要,因为用户只是在比较商品,而无意按照一个特定顺序查看商品。论文《Session-based Recommendation with Local Invariance》 把短时间内查看 item 时顺序无所谓的属性称作局部不变性 local invariance ,这在现实世界中很容易找到。此外,high-level ordering ,即用户查看每种类别商品的排序,对 next item 有影响。例如,假设用户购买了手机之后需要一个耳机:

    • 如果用户首先搜索手机,那么该用户可能还想购买耳机,因为该用户可能还没有耳机。
    • 另一方面,如果用户首先搜索耳机,那么该用户可能只想购买耳机(而不会考虑再买一个手机)。

    因此,一个好的 session-based recommender 应该考虑不同粒度 level 的排序信息。

    然而,现有的研究并没有很好地解决这种局部不变性。关于 session-based 推荐的现有研究有两个分支:

    • 第一个分支包括以严格顺序对 action 进行编码的方法。具体而言,最近的研究在 encoder 组件中应用了 RNN 并取得了可喜的成果。使用 RNN 的主要优点是:session 的序列属性 sequential property 很自然地由网络结构来建模。因此,RNN-based 方法显著优于以前的 non-RNN based 方法。但是,这些方法仍然强制执行严格的顺序。此外,这些方法更关注用户的近期 actions ,不擅长在 long session 中捕获依赖关系。

    • 第二个分支包括完全丢弃排序信息的方法。具体而言,受到计算机视觉和 NLP 中注意力机制的成功的启发,STAMP 设计了纯粹的 attention-basedsession encoder ,并获得了 state-of-the-art 的性能。与 RNN-based 方法相比,STAMP 能够通过注意力机制有效地捕获同一个 session 中任意两个 item 之间的依赖关系。但是,session 中的 high-level 的序列属性被忽略了,这在某些情况下可能会出现问题。

      item-level 的注意力机制 + high-levelRNN 机制是否可行?

    上述两种设计 encoder 组件的方法是两个极端,因为它们要么假设 session 内用户 action 之间的严格顺序,要么完全丢弃排序信息。很容易理解,排序信息很有用,因为 session 数据是序列的。但是,在 session 的某些局部区域(称作 sub-session)中,item 的顺序可能并不重要,因为用户不打算按照严格的顺序来点击 item 。换句话讲,有些时候,在 sub-session level,重要的是 item 出现,而不是顺序。

    为了应对上述挑战,论文《Session-based Recommendation with Local Invariance》 提出了一个叫做 LINet 的新模型,该模型通过对不同 level 的序列信息给予不同程度的注意力从而考虑局部不变性。具体而言,忽略某些 sub-session 中无关紧要的 detailed ordering information,而保留整个 sessionhigh-level sequential information 。基本思想是:

    • 首先,使用具有高斯加权的 full self-attention layersub-session 中抽取 position-invariant feature (作为 sub-sessionrepresentation )。
    • 然后,使用具有注意力机制的 RNN (作用在 sub-session representation 上)来捕获通用的序列信息。

    论文的主要贡献如下:

    • 论文在 session-based 推荐中识别和研究局部不变性。据作者所知,该论文是第一个在 session-based 推荐的背景下考虑这一点的人。
    • 论文提出了一种新颖的、基于深度学习的模型,该模型考虑了局部不变性。与以前的模型不同,这些模型要么假设 sessionitem 之间的严格顺序,要么完全丢弃排序信息,而论文提出的模型通过遵循 item 的通用顺序 general order 来自动学习生成不受 sub-session 中细微位置变化影响的 session representation
    • 在现实世界数据集上进行的大量实验表明,论文提出的模型优于 state-of-the-art 方法,并且所提出的、捕获序列信息的具有局部不变性的机制起着重要作用。

25.1 模型

  1. V={v1,v2,,v|V|}$ \mathcal V=\{v_1,v_2,\cdots,v_{|\mathcal V|}\} $ 为包含在所有 session 中的 unique item 的集合。sessions=[vs,1,vs,2,,vs,|s|]$ s=[v_{s,1},v_{s,2},\cdots,v_{s,|s|}] $ 为根据时间戳排序的 item 序列,其中vs,tV$ v_{s,t}\in \mathcal V $ 表示在 sessions$ s $ 中 time stept$ t $ 时刻被点击的 itemsession-based 推荐任务是预测 next item,即:对于每个 time stept$ t $ ,1t|s|$ 1\le t\le |s| $ ,给定先前点击 item 的序列st=[vs,1,vs,2,,vs,t]$ s_t=[v_{s,1},v_{s,2},\cdots,v_{s,t}] $ 时预测 next itemvs,t+1$ v_{s,t+1} $ 。

    一个典型的 session-based 推荐模型通常计算整个 item 集合V$ \mathcal V $ 上的概率分布p(vst)$ p(v\mid s_t) $ ,其中 top-k 概率的 item 将作为推荐列表。

  2. 类似于先前的 state-of-the-art 方法,我们的模型遵从 encoder-predictor 架构。

    V={v1,v2,,v|V|}$ \mathbf V = \left\{\mathbf{\vec v}_1,\mathbf{\vec v}_2,\cdots,\mathbf{\vec v}_{|\mathcal V|}\right\} $ 表示V$ \mathcal V $ 中每个 itemembedding 向量,其中viRd$ \mathbf{\vec v}_i\in \mathbb R^d $ 为vi$ v_i $ 的 embedding 向量。给定一个 session 序列st=[vs,1,vs,2,,vs,t]$ s_t=[v_{s,1},v_{s,2},\cdots,v_{s,t}] $ ,我们模型的输入是 item embedding 列表[x1,x2,,xt]$ \left[\mathbf{\vec x}_1,\mathbf{\vec x}_2,\cdots,\mathbf{\vec x}_t\right] $ ,其中xi$ \mathbf{\vec x}_i $ 为 itemvs,i$ v_{s,i} $ 的 embedding 向量。

    • 局部编码器local encoderitem embedding list 作为输入,并生成 group representation 的一个序列,该序列对 short sub-session 中的位置变动是不变 invariant 的。

    • 全局编码器 global encoder 是一个序列模型,它从 group representation 的序列中抽取 session representationch$ \mathbf{\vec c}_h $ 。

    • 由于 NARMSTAMP 已经证明了考虑最近兴趣的重要性和有效性,因此我们将ch$ \mathbf{\vec c}_h $ 和一个表示最近点击 item 的向量mt$ \mathbf{\vec m}_t $ 拼接起来,构成一个 hybrid representationc$ \mathbf{\vec c} $ 。

      在论文中,mt=xt$ \mathbf{\vec m}_t = \mathbf{\vec x}_t $ 。

    • 最后,predictor 根据 item embeddingsession hybrid representation 来在V$ \mathcal V $ 上计算 next item 的概率分布。

    接下来,我们将详细讨论我们模型的每个组件。

25.1.1 Local Encoder

  1. 局部编码器的目标是,抽取对每个 group 内的位置变动position change不变的 group feature

  2. 理想情况下,每个 group 都是由 group embedding 来表达,其中 group embeddinggroupitem embedding 的加权和。例如,一个 groupg$ g $ 的 group embedding 为:

    xg=vGwg,vv

    其中:G$ \mathcal G $ 为 groupg$ g $ 中的 item 集合,wg,v$ w_{g,v} $ 为 itemv$ v $ 对 groupg$ g $ 的贡献,v$ \mathbf{\vec v} $ 为 itemv$ v $ 的 embedding

    然而,由于 group 数量未知,因此无法实现这一理想目标。此外,这些 group 可能没有硬边界 hard border 。因此,我们为每个原始 item 抽取一个 group embedding 。第i$ i $ 个 item 对应的 group embedding 定义为:

    xi=1jtwi,jxj

    这个 group emebdding 只是所有 item 的加权和。

    即,为每个 item 构造一个 group,这有点类似于一个滑动窗口,每个窗口一个 group

  3. wi,j$ w_{i,j} $ 是最重要的部分,这里我们重点详述。

    直观而言,group 是由相似的相邻 item 而形成的。这意味着对于 itemvs,i$ v_{s,i} $ 而言,如果vs,j$ v_{s,j} $ 更相似且在时间上更接近vs,i$ v_{s,i} $ ,那么wi,j$ w_{i,j} $ 更大。因此,我们将wi,j$ w_{i,j} $ 定义如下:

    wi,jαi,j(l)×fi(|ij|),1jtwi,j=1

    其中:

    • αi,j(l)$ \alpha_{i,j}^{(l)} $ 是使用注意力机制定义的xj$ \mathbf{\vec x}_j $ 的重要性得分,可以看做是某种相似性。

      ei,j(l)=pltanh(Wl[xi||xj]),αi,j(l)=exp(ei,j(l))1ktexp(ei,k(l))

      这里l$ l $ 表示 localpl,Wl$ \mathbf{\vec p}_l,\mathbf W_l $ 为局部编码器的参数。||$ || $ 表示向量拼接。

    • fi()$ f_i(\cdot) $ 为均值为零、方差为σi2$ \sigma_i^{2} $ 的高斯分布的概率密度函数,其中方差控制了 group size

      观察到,group 由相似的 item 组成,而方差控制了 group size 。相邻的 itemxi$ \mathbf{\vec x}_i $ 越相似,则 group size 越大,方差越大。换句话讲,方差与xi$ \mathbf{\vec x}_i $ 和它的相邻 item 之间的平均相似度正相关。为简单起见,我们假设是线性关系。因此,方差定义如下:

      σi2=k×12ml,0<|il|msim(xi,xl)

      其中:k$ k $ 是参数,sim() 为相似性函数(如,余弦相似度)。

      这里sim() 也可以考虑使用ei,j(l)$ e_{i,j}^{(l)} $ 。

      我们在大小为m$ m $ 的 context 中估计平均相似度。m$ m $ 应该足够大从而进行准确的估计。但是,较大的m$ m $ 会引入一个风险:包含了不太可能位于这个 group 内的 item 。根据我们的实验,我们建议将m$ m $ 设置为13$ 1 \sim 3 $ 。

      k,m$ k,m $ 是非常关键的超参数,影响 LINet 的效果。

  4. 考虑wi,jαi,j(l)×fi(|ij|)$ w_{i,j}\propto \alpha_{i,j}^{(l)}\times f_i(|i-j|) $ 。

    • 单独使用αi,j(l)$ \alpha_{i,j}^{(l)} $ (即,wi,j=αi,j(l)$ w_{i,j} = \alpha_{i,j}^{(l)} $ ),那么wi,j$ w_{i,j} $ 实际上与一个 full self-attention layer 的注意力权重相同。因此,αi,j(l)$ \alpha_{i,j}^{(l)} $ 使得xi$ \mathbf{\vec x}_i^\prime $ 成为xi$ \mathbf{\vec x}_i $ 的 contextualized embedding
    • 通过添加fi(|ij|)$ f_i(|i-j|) $ ,我们使得xi$ \mathbf{\vec x}_i^\prime $ 聚焦于一个局部区域。因此,xi$ \mathbf{\vec x}_i^\prime $ 也可以视为一个 local context embedding ,并且它关注的局部区域是由 group size 动态决定的。
  5. 从信号处理的角度来看,局部编码器也可以看做是一个平滑滤波器smoothing filter 。类似的思想可以在 《Making convolutional networks shift-invariant again》 中找到,其中卷积网络中的平移不变性 shift invariance 通过使用平滑滤波器得到改善。我们通过根据上下文动态调整滤波器的权重(即,wi,j$ w_{i,j} $ )来实现局部位置不变性local position invariance

25.1.2 Global Encoder

  1. 全局编码器将 group feature[x1,x2,,xt]$ \left[\mathbf{\vec x}_1^\prime,\mathbf{\vec x}_2^\prime,\cdots,\mathbf{\vec x}_t^\prime\right] $ 编码到 session embedding 从而表达用户在当前 session 中的兴趣。由于 group 的顺序暗示了用户当前关注点的变化,因此这个相对顺序 relative order 包含了用于预测 next item 的有用信息。因此,我们使用 RNN 来生成 session representation

  2. RNN 的输出状态为[h1,h2,,ht]$ \left[\mathbf{\vec h}_1,\mathbf{\vec h}_2,\cdots,\mathbf{\vec h}_t\right] $ ,其中hi$ \mathbf{\vec h}_i $ 可以视为前面i$ i $ 个 grouprepresentation 。为了更好地捕获用户兴趣,我们应用 item-level 注意力机制来动态选择和线性选择前面的 grouprepresentation

    具体而言,我们将 RNN 输出状态的加权和作为抽取到的 session representationch$ \mathbf{\vec c}_h $ :

    ch=1i<tαi(g)hi

    其中,加权的权重αi(g)$ \alpha_i^{(g)} $ 使用注意力机制来计算:

    ei(g)=pgtanh(Wg[hi||ht]),αi(g)=exp(ei(g))1ktexp(ek(g))

    这里g$ g $ 表示globalpl,Wl$ \mathbf{\vec p}_l,\mathbf W_l $ 为全局编码器的参数。||$ || $ 表示向量拼接。

    通过结合局部编码器和全局编码器,session representationch$ \mathbf{\vec c}_h $ 包含整个 session 的通用序列信息 general sequential information ,并且对于一些 sub-session 中不重要的局部位置变动是不变invariant的。

    LINet 采用了 attention(叠加高斯分布) -> RNN -> attention 的架构。它本质上是修改了 RNN 的输入。实际上我们也可以考虑更多的方法来修改 RNN 的输入。

25.1.3 Predictor

  1. predictor 评估 next item 的概率分布。由于 STAMP 已经证明:显式考虑用户最近的兴趣对于预测 next item 是有效的。因此,我们将 session representationch$ \mathbf{\vec c}_h $ 与用户最近的兴趣mt$ \mathbf{\vec m}_t $ 结合成为当前sessionhybrid representationc$ \mathbf{\vec c} $ 。为简单起见,我们设置mt=xt$ \mathbf{\vec m}_t = \mathbf{\vec x}_t $ 。那么,候选 itemviV$ v_i\in \mathcal V $ 的得分定义为:

    zi=viF(c)

    其中:vi$ \mathbf{\vec v}_i $ 为 itemvi$ v_i $ 的 embeddingF()$ F(\cdot) $ 为一个神经网络用于将c$ \mathbf{\vec c} $ 映射到vi$ \mathbf{\vec v}_i $ 相同的 embedding 空间。

    c$ \mathbf{\vec c} $ 是如何得到的?论文并没有解释。可能是直接拼接得到,即c=[ch||mt]$ \mathbf{\vec c} = \left[\mathbf{\vec c}_h||\mathbf{\vec m}_t\right] $ 。

    然后使用 softmax 函数对分数进行归一化,从而获得V$ \mathcal V $ 中所有 item 的概率分布:

    y^=softmax(z)R|V|

    其中:z=(z1,z2,,z|V|)R|V|$ \mathbf{\vec z} = (z_1,z_2,\cdots,z_{|\mathcal V|})\in \mathbb R^{|\mathcal V|} $ 。

  2. 训练:对于每个 session 序列st$ s_t $ ,损失函数定义为预测值y^$ \hat{\mathbf{\vec y}} $ 和 ground truthy$ \mathbf{\vec y} $ 的交叉熵:

    L(y,y^)=iyi×logy^i

    其中:y$ \mathbf{\vec y} $ 是表示 next item 真实分布的一个 one-hot 向量。

    然后,我们端到端地通过反向传播来训练所有参数以及 item embedding

25.2 实验

  1. 数据集:

    • YooChoose 数据集:来自于 RecSys Challenge 2015 ,包含用户在电商网站上 6 个月内的点击 stream
    • Diginetica 数据集:来自于 CIKM Cup 2016,我们仅使用它的交易数据transactional data

    模型需要根据用户在当前 session 中的 click/buy 历史来预测用户想要 click/buynext item 。正如 《Improved recurrent neural networks for session-based recommendations》 中所验证的,由于 YooChoose 训练集非常大,并且相较于训练整个数据集,训练最近的数据能够产生更好的结果,因此我们仅使用最近的 1/641/4 的训练数据。因此,我们从 YooChoose 数据集生成了两个数据集。

    我们对数据集应用了与 NARM, RepeatNet, STAMP 中相同的预处理步骤。

  2. baseline 方法:

    传统方法:

    • Item-KNN :推荐与当前 sessionprevious items 相似的 item ,其中相似度定义为 session 向量之间的余弦相似度。

      session 向量:该向量长度为 session 个数。对于某个 itemi$ i $ ,如果它在第j$ j $ 个 session中出现,则 session 向量的第j$ j $ 位为 1,否则为 0

    • BPR-MF:通过随机梯度下降来优化 pairwise ranking 目标函数。

    • FPMC:用于 next basket 推荐的 state-of-the-art 的混合模型。

    神经网络方法:

    • GRU4Rec:在 session-parallelmini-batch 训练过程中采用 ranking-based 的损失函数。
    • NARM:使用 RNN 来捕获用户的主要意图 main purposes 和序列行为sequential behavior
    • STAMP:纯粹使用注意力机制来捕获用户的通用兴趣general interest和最近的焦点recent focus
    • RepeatNet:使用 repeat-explore 机制来考虑重复消费现象。
    • SR-GNN:将 session 转换为 graph,并使用 GNN 来学习 session representation
  3. 评估指标:

    • Hit@20next itemground truth 位于预测结果的 top 20 中的 case,占所有 test case 的占比。
    • Mean Reciprocal Rank: MRR@20:是 ground truth 的排名倒数 reciprocal rank 的均值。如果排名差于 20,则排名倒数置为零。
  4. 所有方法的实验结果如下表所示。

    • 与神经网络模型相比,传统方法表现不佳,这证明传统方法不再适用于 session-based 推荐。传统方法表现不佳的一个原因是:它们没有考虑、或者仅考虑有限的序列信息。

    • GRU4Rec 是一种简单的单层 RNN,可以利用整个 session 的序列信息,已经优于所有传统方法。因此,利用 session 的完整序列信息对于 session-based 推荐至关重要。

    • 然而,我们不必遵循严格的排序。STAMP 完全忽略了 session 中除了 last item 之外的排序信息,SR-GNN 在将 session 编码为 graph 时可能会丢弃一些排序信息(例如 session 的开始和结束),但是这两种方法仍然产生竞争力的结果。

    • 然而,这些方法的性能仍然不如 LINet

      • 三种 RNN-based 的方法 GRU4Rec, NARM, RepeatNet 在每个 sessionitem 之间都假定了严格的次序,这意味着它们很容易被局部区域中细微的次序所误导。
      • STAMPSR-GNN 盲目地丢弃了一些重要的序列信息。

      相反,LINet 可以自动地在遵循严格次序和完全忽略次序之间寻求良好的平衡。如下表所示,LINetYooChoose 1/64YooChoose 1/4 数据集中优于所有 state-of-the-art 的方法,并且在所有数据集中的 Hit@20 指标上都有显著提高。这证明了所提出模型的有效性。

  5. 消融研究:为了测试所提出模型中的核心模块(即,local encoderglobal encoder)的有效性,我们提出并评估以下四个模型:

    • LINet-No-LE:移除 local encoderLINet

      此时x=x$ \mathbf{\vec x}^\prime = \mathbf{\vec x} $ 。

    • LINet-No-GE:移除 global encoderLINetgroup feature 的均值作为 context embeddingch$ \mathbf{\vec c}_h $ 。

    • LINet-No-AW:没有注意力权重的 LINet,即:wi,j=fi(|ij|)$ w_{i,j} = f_i(|i-j|) $ 。

    • LINet-No-GW:没有高斯权重的 LINet,即:wi,j=αi,j(l)$ w_{i,j} = \alpha_{i,j}^{(l)} $ 。

      如果没有高斯权重,那么 LINet 完全退化为 attention + RNN + attention 的三层架构,它的效果好于 RNN + attention 的两层架构(如 NARM )也就不足为奇了。这是不公平的比较(三层网络 vs 两层网络)。

    实验结果如下表所示。可以看到:

    • 与完整模型相比,移除 local encoderglobal encoder 的两个不完整模型在两个数据集上的性能都有显著下降,这证明了 local encoderglobal encoderLINet 中都发挥了重要作用。

      • 移除 local encoder 之后,LINet-No-LE 通过遵循严格的次序获取序列信息,不考虑局部不变性,因此可能会被一些无用的局部次序误导并产生错误的预测。
      • 移除 global encoder 之后,LINet-No-GE 仅捕获局部区域的上下文信息,无法考虑 item 之间的长期依赖关系并利用有价值的序列信息。

      因此,session-based 推荐器有必要既捕获 session 中的序列属性sequential property ,又考虑局部不变性属性local invariance property

    • 与完整模型相比,移除注意力权重或高斯权重的其它两个不完整模型的性能也更差,尽管 gap 相比移除 local encoder/global encoder 更小。

      • 如果没有注意力权重,LINet-No-AW 在计算相邻 item 的权重分wi,j$ w_{i,j} $ 时不会考虑相似性,因此 group embedding 很容易受到异常值的影响。
      • 如果没有高斯权重,LINet-No-GW 只是计算 itemcontextualized embedding,而不是聚焦于局部区域。

      因此,在计算 group embedding 时,local encoder 具有注意力权重和高斯权重这两种权重是很重要的。

  6. 考虑局部不变性的能力:我们设计了一个额外的实验来测试模型考虑局部不变性的能力。这个想法是:评估模型在相似的 session 组成的 pair 上的表现。我们首先定义相似的 session

    • 首先,我们仅使用 training session 来定义两个 item 之间的相似性,即:

      sim(vi,vj)=1dnd(i,j)dnd(i,j)log2(d+1)

      其中:

      • nd(i,j)$ n_d^{(i,j)} $ 是vi$ v_i $ 与vj$ v_j $ 距离为d$ d $ 的 training session 的数量。
      • log2(d+1)$ \log_2(d+1) $ 是一个针对长距离的惩罚项,这借鉴了 discounted cumulative gain: DCG 的思想。

      背后的直觉是:sim(vi,vj)$ \text{sim}(v_i,v_j) $ 度量vi$ v_i $ 和vj$ v_j $ 在同一个 group 中的概率。两个 item 越靠近,那么概率越高。

      一个特殊情况是:当vi$ v_i $ 和vj$ v_j $ 在同一个 session 中彼此相邻时。如果我们假设它们之间的相对次序在这种情况下不再重要,那么vi$ v_i $ 和vj$ v_j $ 以概率 1 属于同一个 group

    • 然后,我们仅选择基于神经网络的方法进行比较,因为如前所示,基于神经网络的方法在所有数据集的所有评估指标上始终优于传统方法。此外,我们排除了 GRU4RecSTAMP,因为 NARM 可以被视为 GRU4Rec 的改进版本,而 STAMP 不考虑 session 内部的任何次序。因此,我们测试的方法包括:NARMRepeatNetSR-GNNLINet

      给定一个 session 序列si$ s_i $ ,令si,k$ s_{i,k} $ 表示si$ s_i $ 中的第k$ k $ 个 itemsi,1:k$ s_{i,1:k} $ 表示si$ s_i $ 的前面k$ k $ 个 item 组成的前缀。我们从满足以下条件的测试集中抽取所有 session 序列的 pair(si,sj)$ (s_i,s_j) $ :

      • si$ s_i $ 和sj$ s_j $ 的长度相同,记做l$ l $ 。

      • si$ s_i $ 和sj$ s_j $ 具有相同的 last item,即:si,l=sj,l=v$ s_{i,l} = s_{j,l} = v $ ,因此模型需要在给定输入序列si,1:l1$ s_{i,1:l-1} $ 或sj,1:l1$ s_{j,1:l-1} $ 的情况下预测 next itemv$ v $ 。

      • si,1:l1$ s_{i,1:l-1} $ 和sj,1:l1$ s_{j,1:l-1} $ 组成的二部图G$ \mathcal G $ 中存在一个完美匹配M$ \mathcal M $ 。具体而言,si,1:l1$ s_{i,1:l-1} $ 和sj,1:l1$ s_{j,1:l-1} $ 中的 itemG$ \mathcal G $ 中的两组节点,并且对于每个 item pair(u,v)$ (u,v) $ 存在一条权重为sim(u,v)$ \text{sim}(u,v) $ 的边,其中usi,1:l1,vsj,1:l1$ u\in s_{i,1:l-1},v\in s_{j,1:l-1} $ ,sim(u,v)$ \text{sim}(u,v) $ 的定义如前所示。此外,我们要求sim(u,v)$ \text{sim}(u,v) $ 大于一个阈值θ$ \theta $ ,并且u$ u $ 和v$ v $ 的索引之差小于另一个阈值β$ \beta $ 。原因如下所述。

        这里的索引指的是 item 在各自序列中出现的序号。

      给定一个满足所有条件的 pair(si,sj)$ (s_i,s_j) $ ,我们可以重新排列一个序列(如,si$ s_i $ )的前面l1$ l-1 $ 个 item ,使得匹配的 item 具有相同的索引。例如,如果si,1$ s_{i,1} $ 和sj,2$ s_{j,2} $ 相匹配,那么si,1$ s_{i,1} $ 被放置在 position = 2 。令重新排列的序列为si,1:l1$ s^\prime_{i,1:l-1} $ 。

      • 如果θ$ \theta $ 很大,则si,1:l1$ s_{i,1:l-1}^\prime $ 和sj,1:l1$ s_{j,1:l-1} $ 在相同索引下对应的 item 非常相似,因此si,1:l1$ s_{i,1:l-1}^\prime $ 和sj,1:l1$ s_{j,1:l-1} $ 是非常相似的。由于sj,1:l1$ s_{j,1:l-1} $ 的 next itemsj,l$ s_{j,l} $ ,因此很可能si,1:l1$ s_{i,1:l-1}^\prime $ 的 next item 也是sj,l$ s_{j,l} $ 。

        这里si,1:l1$ s_{i,1:l-1}^\prime $ 是通过对si,1:l1$ s_{i,1:l-1} $ 进行重新排列来人工构造的,它的 label 是否还是si,l$ s_{i,l} $ ?这里没有保证。

      • 如果β$ \beta $ 很小,那么si,1:l1$ s_{i,1:l-1}^\prime $ 和sj,1:l1$ s_{j,1:l-1} $ 之间的唯一区别是 sub-sessional level 的一些细微的位置变化。我们可以得出结论:这些变化对于 next item 没有影响。因此,我们可以说si$ s_i $ (或者sj$ s_j $ )具有很大的局部不变性。

      因此,抽取到的 sessionpair 构成了具有较大局部不变性的数据集。此外,M$ \mathcal M $ 中的平均权重可以作为si$ s_i $ 或sj$ s_j $ 的局部不变性的一个很好的量化指标。M$ \mathcal M $ 的平均权重越大,则局部不变性越大。

    • 然后,我们评估在所有 pair 中,有多少百分比的 pair 被模型预测为:pair 中每个sessionnext item 都是位于 top-k prediction。例如,给定一个 pair(si,sj)$ (s_i,s_j) $ ,对于这两个序列,仅当 ground-truth netxt item 都在预测的 top-k 时,我们才纳入百分比的计算。因此,为了获得良好的性能,模型需要对两个序列都产生一致且准确的预测。

      与之前的实验一样,本实验中的 k = 20 。结果如下图所示。

      • 我们可以看到,这些模型具有相似的性能,并且 LINet 在两个数据集中始终优于其它模型。这进一步证明了我们的模型在处理 session 中局部不变性方面具有更强的能力。
      • 观察到当θ$ \theta $ 很大时,所有模型的性能都会下降。一个可能的原因是序列长度。对于一个长序列,由于涉及的 item 较多,满足上述最后一个条件(即,si,1:l1$ s_{i,1:l-1} $ 和sj,1:l1$ s_{j,1:l-1} $ 组成的二部图G$ \mathcal G $ 中存在一个完美匹配M$ \mathcal M $ )的可能性较小。因此,以较大θ$ \theta $ 抽取的 pair 中的序列长度较短,这意味着它们包含的序列信息较少,因此更难预测。

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

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

发布评论

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