一、DSSRec [2020]

《Disentangled Self-Supervision in Sequential Recommenders》

  1. 为了学习序列推荐器,现有方法通常采用 sequence-to-itemseq2item)的训练策略,该策略将用户过去的行为序列作为输入,以用户的 next behavior 作为 label 来监督训练序列模型。然而,seq2item 策略目光短浅,通常会生成缺乏多样性的推荐列表。在本文中,我们研究了通过关注更长远的未来从而来挖掘额外的监督信号的问题。这存在两个挑战:

    • 第一,重构包含许多行为的future sequence比重构单个 next behavior 要困难得多,这可能导致收敛困难。

    • 第二,所有未来行为构成的序列可能涉及许多意图,而并非所有意图都可以从早期的行为序列中预测出来。

    为了解决这些挑战,我们提出了一种基于潜在自监督(latent self-supervision )和解耦的 sequence-to-sequenceseq2seq)训练策略。具体来说,我们在潜在空间中进行自监督,即整体地重构 future sequencerepresentation ,而不是单独重构 future sequence 中的 items 。我们还解耦了任何给定行为序列背后的意图(intentions),并仅使用涉及共同意图的pairs of sub-sequences 来构建 seq2seq 训练样本。在真实基准数据集和合成数据上的实验结果证明了 seq2seq 训练带来的改进。

  2. 推荐系统中的用户行为序列在现代互联网应用和移动应用流量中占很大一部分。与这类序列数据相关的核心任务是,基于目标用户过去的点击、收藏等行为序列,为其推荐可能感兴趣的 next item 。受深度学习在描述序列数据方面强大表现力的启发,最近的研究工作利用深度序列模型,如循环神经网络和自注意力网络(即 Transformer),在该任务上取得了显著成果。

    训练序列模型的标准方法是,将用户过去的行为序列作为输入,并将用户的 next behavior 作为监督信号,即进行从 sequence-to-itemseq2item)的训练。然而,seq2item 训练目光短浅,很容易导致推荐列表缺乏多样性。例如,“衬衫,衬衫,衬衫,衬衫,衬衫,裤子” 这个序列中,对应 label 为 “衬衫” 的连续子序列数量远远多于 label 为 “裤子” 的子序列。因此,通过 seq2item 策略训练的算法,在用户点击衬衫后,更倾向于频繁推荐衬衫;而在实际的 top-k 推荐系统中,我们希望算法在生成包含 kitems 的推荐页面时,能更均衡地推荐 “衬衫” 和 “裤子”。其次,如果训练数据中的 next immediate behavior 与此前的行为序列无关,seq2item 训练就会变得很脆弱。如今,用户的意图多样且多变,甚至可能仅仅出于好奇就点击新的 items ,而不考虑之前的意图。

    在本文中,我们研究序列推荐问题,并通过关注更长远的未来从而挖掘额外的监督信号,以补充标准的 seq2item 训练策略。然而,用多个未来行为组成的序列,而不只是单个 next behavior ,来监督序列模型,带来了巨大的挑战:

    • 首先,重构包含多个行为的 future sequence 比重构单个 next behavior 要困难得多。而且,逐个地重构行为(例如点击某个 item )效率很低,因为 future sequence 中可能存在冗余的监督信号,比如许多点击可能反映的是同一个意图。

    • 其次,作为训练样本的 labelfuture sequence ,可能涉及用户多个不断变化的意图。值得注意的是,并非所有隐藏在 future sequence 中的意图都与作为训练样本输入的早期行为序列相关。在这种情况下,除非我们能识别出 future sequence 中哪些部分与早期行为相关且可预测,否则将面临低信噪比的问题。

    为了应对这些挑战,本文提出了一种全新的 sequence-to-sequenceseq2seq)训练策略。我们的 seq2seq 训练策略与标准的 seq2item 训练策略并行执行,通过从整个future sequence中进一步挖掘监督信号来补充后者。所提出的 seq2seq 策略分别采用潜在自监督(latent self-supervision)和意图解耦(intention disentanglement)的思想,来解决上述两个挑战。

    • 我们的第一个核心思想是在潜在空间而非数据空间中进行自监督。换句话说,我们的 seq2seq 训练策略让模型根据早期序列的representation ,来预测未来子序列的representation 。这种设计避免了逐个地重构future sequence中的所有行为,有助于 seq2seq 训练过程的收敛。要被预测的 representation 有效地充当了向量空间中的 distilled pseudo behavior (例如点击一个 pseudo item ),它总结了future sequence中的主要意图。

    • 我们的第二个核心思想是设计一个序列编码器,能够推断和解耦给定行为序列所反映的潜在意图。disentangled encoder 输出给定行为序列的 multiple representations ,每个 representation 聚焦于该序列的不同子序列。 multiple representations 中的每一个都刻画了用户与不同 latent category 相关的一个意图。然后,我们仅使用意图相关(即涉及相同 latent category )的 pairs of sub-sequences 来构建 seq2seq 训练样本。

      这是为了解决如下的问题:并非所有隐藏在 future sequence 中的意图都与作为训练样本输入的早期行为序列相关。

    我们在真实世界的基准数据集和合成数据上进行了广泛的实验。实证结果表明,我们的 seq2seq 训练策略通过发现 seq2item 训练未涵盖的额外监督信号,相比基线方法有性能提升。

    我们将主要贡献总结如下:

    • 我们提出了一种新颖的 seq2seq 训练策略,通过关注更长远的未来而不仅仅是 next immediate behavior 来提取额外的监督信号。

    • 我们建议在潜在空间中进行自监督以促进收敛,并提出 intention disentanglement 来判断在选择 seq2seq 训练样本时两个子序列是否相关。

    • 我们通过实证证明了我们的 seq2seq 训练策略的有效性,它补充了 seq2item 训练。

    论文整体感觉不太流畅,思想是个中间状态:还不如直接用自监督学习来建模用户的潜在意图,正如 《Intent Contrastive Learning for Sequential Recommendation》 所做的。

1.1 方法

  1. 序列数据:设 {x(u)}u=1N 为训练数据,即用户点击序列的集合。这里 N是用户数量,而 x(u)=[x1(u),x2(u),,xTu(u)] 是用户 u 点击的 items 的有序序列,其中 Tu 是用户 u 的点击次数, xTu(u) 是用户 u 的最新点击。序列中的每个元素 xt(u){1,2,,M},1tTu 是被点击 item 的索引,Mitem 空间的大小。我们关注现代推荐系统的候选生成阶段(candidate generation phase ),其任务是基于观察到的序列 x(u),在所有 M 个可能的候选中,预测用户 u 可能点击的 next item (或多个 items )。

  2. 深度序列推荐器:用于 candidate generation 的深度序列模型通常有一个序列编码器 ϕθ() 和一个 item embedding table HRM×D,其中 θ 是包含所有可训练参数(包括 H)的集合。编码器将序列 x(u) 作为输入,并输出序列的 representation ϕθ(x(u)),这可以看作是用户意图的 representation 。文献中的大多数编码器 ϕθ() 输出一个 D 维向量,也有一些模型输出 KD 维向量,以保留用户在 Klatent categories 下的意图。然后,模型通过测量 user representation ϕθ(x(u)) 和第 iitemrepresentation hi 在向量空间中的相似性,来估计用户 u 点击第 iitem 的概率。其中,hiRDH 的第 i 行。

  3. Sequence-to-item: seq2item 训练:到目前为止,训练深度序列推荐器最常见的做法是训练模型,基于截断的序列 [x1(u),x2(u),,xt(u)] 来恢复 next click xt+1(u) 。例如,一种常用的此类 training loss 为:

    Ls2i(θ)=utLs2i(θ,u,t)Ls2i(θ,u,t)=lnpθ(xt+1(u)x1(u),x2(u),,xt(u))

    其中,概率 pθ(xt+1(u){xi(u)}i=1t) 被设计为:与 xt+1(u) 和给定序列 {xi(u)}i=1t 在向量空间中的相似性成正比。

1.1.1 序列到序列的自监督

  1. 在本小节中,我们描述我们的 seq2seq 训练策略。我们的 seq2seq loss 的目的是补充,而不是取代传统的 seq2item loss 。换句话说,在使用 mini-batch 梯度下降来处理每个 mini-batch B 时,我们同时最小化 seq2item lossseq2seq loss

    每个 mini-batch B 是一组采样的序列。我们通过从训练集 {(u,t):1uN,1tTu1} 中均匀地采样每个元素来构建 mini-batch Bmini-batch B 中的每个训练示例 (u,t) 指的是一个早期序列 x1:t(u)=[x1(u),x2(u),,xt(u)] 及其相应的 future sequence xt+1:Tu(u)=[xt+1(u),xt+2(u),,xTu(u)]。我们进一步使用 xTu:t+1(u) 来表示 xt+1:Tu(u) 的逆向序列,即 xTu:t+1(u)=[xTu(u),xTu1(u),,xt+1(u)]

    我们假设我们有一个序列编码器 ϕθ(),其实现将在下一章节中介绍。编码器的输出是 D 维空间中的 K 个向量,即 ϕθ()={ϕθ(k)()}k=1K,它表示用户在 itemsK 个不同 latent categories 下的偏好。我们还假设,如果序列 x1:t(u) 不包含第 klatent category 下的任何 items ,那么 ϕθ(k)(x1:t(u))的值将只是一个白噪声向量。在我们对编码器的实现中,K 个输出中的每个输出 ϕθ(k)(x1:t(u)) 都关注输入序列的不同子序列。我们可以将 ϕθ(k)(x1:t(u)) 看作是一个 pseudo item ,它总结了属于第 klatent categoryclicked items

    方法的概览如 Figure 1 所示。

    注意:模型的 seq2i 训练部分,也使用了 Sequence Encoder + Intention Disentanglement

    未来序列的长度是否有限制?过去序列的长度是否有限制?从经验上讲,用过去的长度为 1 的序列,来预测未来的长度为 N 的序列,难度很大。

    实验部分表明,该模型对短序列效果较好,对长序列(比如,序列长度超过 140)的效果提升一般。

  2. Sequence-to-sequence: seq2seq 损失:我们为这个样本定义 sequence-to-sequence loss为:

    Ls2s(θ,u,t,k)=lnpθ(ϕθ(k)(xTu:t+1(u))ϕθ(k)(x1:t(u)))=lnexp(1Dϕθ(k)(xTu:t+1(u))ϕθ(k)(x1:t(u)))(u,t)Bk=1Kexp(1Dϕθ(k)(xTu:t+1(u))ϕθ(k)(x1:t(u)))

    positive pairx1:t(u) 的第 klatent category、当前子序列的未来序列的第 klatent category

    negative pairsx1:t(u) 的所有 latent categorybatch 内所有用户的所有未来序列的相同的 latent category。这里面可能会有 false negative

    对于每个序列,一共有 T×K 个损失,因为 1tT,1kK

    • 我们将点积得分缩放了 1/D,因为我们编码器的最后一层是 layer-normalization layer ,这个缩放因子有助于收敛。

    • 这里的 softmax 是在当前 mini-batch B 中出现的样本上进行归一化,而不是在训练集中出现的所有可能选项上进行归一化,以节省计算量。

    • 我们使用反向序列 xTu:t+1(u) 而不是原始的 xt+1:Tu(u),是因为我们的 encoder 根据时间顺序对序列中的 items 进行加权,我们希望更接近位置 titems 获得更多权重。

      为什么用反向序列?这里的解释讲不通。当使用 position embedding 的时候,并不能保证靠近位置 titems 具有更大的权重。

  3. 选择高置信度的样本进行 seq2seq 训练:然而,我们应该只使用 {Ls2s(θ,u,t,k):(u,t)B,1kK} 中的一个选定子集进行训练,而不是全部使用。例如,如果一个早期序列 x1:t(u) 涉及 latent category k=1k=3 下的意图,而future sequence xTu:t+1(u) 涉及 category k=1k=2 下的意图,那么在训练模型时,我们应该只使用 Ls2s(θ,u,t,k=1),而不使用 k=2k=3 对应的损失。因此,我们根据模型选择一些被认为具有高置信度的样本,来计算当前 mini-batch Bloss 。具体来说,sequence-to-sequence loss 计算为:

    Ls2s(θ,B)=(u,t)Bk=1KLs2s(θ,u,t,k)×I(Ls2s(θ,u,t,k)τ)

    其中 τ{Ls2s(θ,u,t,k):(u,t)B,1kK} 中第 λ×|B|×K 小的值。这里 λ[0,1] 是一个超参数。换句话说,我们只保留模型认为置信度最高的前 λ%sequence-to-sequence 训练样本。

  4. Sequence-to-item: seq2item 损失:传统的 sequence-to-item 训练策略对于在相对较短的时间内学习一个合适的编码器,以及对齐序列的向量空间和 item 的向量空间是必要的。我们的 sequence-to-item loss 定义如下:

    Ls2i(θ,B)=(u,t)BLs2i(θ,u,t)Ls2i(θ,u,t)=lnpθ(ht+1(u)ϕθ(x1:t(u)))=lnmax1kKexp(1Dht+1(u)ϕθ(k)(x1:t(u)))(u,t)Bk=1Kexp(1Dht+1(u)ϕθ(k)(x1:t(u)))

    其中 ht+1(u)RDitem xt+1(u)representation ,即 item embedding table HRM×Dxt+1(u) 所在的行。

    positive pairx1:t(u) 的最优的 latent category、当前子序列的 next itemembedding

    negative pairsx1:t(u) 的所有 latent categorybatch 内所有用户的所有 next itemembedding 。这里面也可能会有 false negative

  5. 我们在使用 mini-batch 梯度下降训练模型时,优化以下损失:

    L(θ,B)=Ls2i(θ,B)+Ls2s(θ,B)

 

1.1.2 解耦的序列编码

  1. 目前推荐领域最先进的序列编码器是基于多头自注意力编码器,即 Transformer 编码器。例如,SASRec 编码器是 Transformer 的一个最新变体,它使用一组可训练的 position embeddings,而不是原来手工制作的 position embeddings ,来编码序列中 items 的顺序。此外,SASRec 在编码序列时,复用 item embedding table H,而不是为编码器构建另一个 item embedding table 。换句话说,在编码序列 x1:t(u)=[x1(u),x2(u),,xt(u)] 时,其第一层将 [h1(u),h2(u),,ht(u)] 作为输入。·

    然而,单独的 SASRec 编码器并不能完全满足我们对序列编码器 ϕθ() 的要求。特别是,它捕获多个意图的能力有限。SASRec 的作者报告说,多头版本的 SASRec 为相同的输入序列输出多个 vector representations,但似乎并没有比 single-head implementation 有明显的优势。从经验上看,单头和多头的 SASRec 都倾向于推荐与输入序列中最近点击的 item 属于同一 categoryitems ,即使用户之前点击过其他 categoriesitems

    因此,我们在这里提出一个意图解耦层(intention-disentanglement layer),它附加在单头 SASRec 编码器之后,以便重用 SASRec 的表达能力。设 [z1(u),z2(u),,zt(u)] ,其中 zi(u)RD,是单头 SASRec 编码器在输入序列 x1:t(u)=[x1(u),x2(u),,xt(u)] 时,在 t 个位置的输出。我们可以将 zi(u) 看作是用户点击 item xi(u) 时的潜在意图,i=1,2,,t

  2. 意图聚类:我们的 intention-disentanglement layer 首先根据意图与一组 intention prototypes 的距离从而对意图进行聚类:

    pki=exp(1DLayerNorm1(zi(u))LayerNorm2(ck(u)))k=1Kexp(1DLayerNorm1(zi(u))LayerNorm2(ck(u)))

    其中:

    • i=1,2,,tk=1,2,,K

    • 这里 {ckRD:1kK}Klatent categories 下的 prototypical intention representations ,它们是模型参数θ 的一部分。

    • LayerNormll() 是一个 layer-normalization layer ,我们使用下标 l 来避免不同 layer-normalization layers 之间的混淆,因为每个层都有自己参数来缩放输出。

    由于归一化,我们实际上使用的是余弦相似度,而不是点积,来衡量给定意图 zi(u) 和典型 intention prototype ck (即,latent category )之间的相似性。先前的工作(《Learning disentangled representations for recommendation》)发现,在处理模式崩溃 mode collapse (即模型忽略大多数 prototypes 的退化情况)时,余弦相似度比点积更具鲁棒性。

    latent category {ck(u)}k=1K 是自由参数,在所有用户所有样本上共享。可以理解为一种全局的聚类。

  3. 意图加权:上述注意力权重 pki 衡量了位置 i 处的主要意图与第 klatent category 的相关程度。我们现在引入另一个注意力权重 pi 来衡量位置 i 处的主要意图对预测用户未来意图的重要程度:

    pi=exp(1Dkeyiquery)i=1texp(1Dkeyiquery)keyi=key~i+ReLU(Wkey~i+b)key~i=LayerNorm3(αi+zi(u))query=LayerNorm4(αt+zt(u)+b)

    其中:

    • i=1,2,,t

    • 这里 WRD×DbRDbRD,以及 αiRD 都是参数,包含在 θ 中。

    我们可以将 {αiRD:1imaxTu} 看作是我们的 intention-disentanglement layer 使用的一组 position embeddings 。我们根据 αtzt(u) 以及一个可训练参数 b 来计算 query 向量,基于以下假设:最近的点击更有价值,并且在向量空间中与 latest intention 接近的早期意图更可能是重要的。然而,这些假设并不总是正确的,这就需要引入可训练参数 Wbb

  4. 意图聚合:我们现在可以根据 pkipi 聚合在所有位置收集到的意图。编码器的 K 个输出计算如下:

    ϕθ(k)(x1:t(u))=LayerNorm5(βk+i=1tpki×pi×zi(u))

    其中:

    • k=1,2,,K

    • 这里 βkRDoutput k 的偏差,初始化为从均值为 0、标准差为 1D 的正态分布中采样得到的样本。

    • 我们使用两组不同的 {βk}k=1K。其中一组用于编码作为 seq2seq 样本输入的序列,即 x1:t(u);而另一组用于编码作为 label 的序列,即 xTu:t+1(u)

    pi :位置 i 处的主要意图对预测用户未来意图的重要程度;pki :位置 i 处的主要意图与第 klatent category 的相关程度。因此,ϕθ(k)(x1:t(u)) 是对 latent category 的加权聚合,权重与 latent category 和未来意图的重要程度相关。

  5. 在损失函数中促进解耦:在文献中,提出了许多正则化方法来促使 K 个部分 {ϕθ(k)()}k=1K 保留足够不同的信息,例如最小化它们之间互信息的正则化项。然而,我们注意到在我们的损失函数中,基于第 k 个部分 ϕθ(k)(x1:t(u)) 计算到的每个正例的得分(见 Ls2s(θ,u,t,k)Ls2i(θ,u,t) 的分子),是与基于所有其他 K1 个部分 {ϕθ(k)(x1:t(u)):1kK,kk} 计算的得分进行比较的(见 Ls2s(θ,u,t,k)Ls2i(θ,u,t) 的分母)。因此,如果模型想要最大化与第 k 部分相关的正例的可能性,就会被迫在 ϕθ(k)(x1:t(u)) 中保留与其他 K1 个部分不同的信息。所以,我们没有为 disentanglement 引入任何额外的正则化项。

1.2 实验

  1. 在本节中,我们评估我们的方法与 SOTA 的序列推荐器相比的性能,并展示 seq2seq 训练的优势。然后,我们进行消融研究,并分析超参数的影响。

  2. 数据集:我们在经过 SASRecBERT4Rec 处理的数据集上进行实验。这四个数据集分别是 Amazon Beauty40,226 个用户和 54,542items )、Steam281,428 个用户和 13,044items)、MovieLens-1M6,040 个用户和 3,416items )和 MovieLens-20M138,493 个用户和 26,744items),它们的平均序列长度分别为 8.812.4163.5144.4。序列中的items 按时间排序,最后一个位置对应最近的点击。我们按照先前工作(SASRec, BERT4Rec)的相同方式分割数据集,即每个用户序列的最后一个 item 用于测试,倒数第二个 item 用于验证,其余 items 用于训练。

    future 序列的长度是多少?这里没讲。

  3. 评估指标:我们根据召回率(recall)、归一化折损累计增益(normalized discounted cumulative gain: NDCG)和平均倒数排名(mean reciprocal rank: MRR)来评估所有方法。这些指标的值越高,表明推荐性能越好。我们遵循 BERT4Rec 的建议,将测试集中的每个 ground-truth item 与根据流行度来随机采样的 100negative items 进行配对,这是文献中的常见做法。然后,推荐任务就变成了在这 101items 中识别出哪个 item 是每个用户的 ground-truth next item

  4. 实现和超参数:

    • 我们在 TensorFlow 中实现我们的模型,并使用 TensorFlow 推荐的默认初始化方法来初始化参数。

    • 我们使用 Adam 优化器进行 mini-batch 梯度下降,将学习率设置为 0.001batch size128

    • 我们使用单头版本的 SASRec 作为我们编码器的一部分。

    • 对于 MovieLens-1MMovieLens-20M,我们将最大序列长度限制为 200,而对于其他两个数据集,将其限制为 50,这与 SASRecBERT4Rec 使用的配置相同。然后,通过随机搜索来调优其他超参数。具体来说:

      • 我们遵循 BERT4Rec,从 {16, 32, 64, 128, 256} 中选择 item embedding 维度 D

      • {1, 2, 3} 中选择自注意力块的数量,这部分是我们从 SASRec 借用的编码器组件。

      • 超参数 λ{0.05, 0.10, . . . , 1.0} 中选择。

      • 潜在类别的数量 K{1, 2, . . . , 8} 中选择。

      • dropout rate{0, 0.1, 0.2, . . . , 0.9} 中选择。

      • l2 正则化项从 {0, 0.0001, 0.001, . . . , 1} 中选择。

1.2.1 推荐性能

  1. 在本小节中,我们报告与 SOTA 的序列推荐器相比,我们方法的整体性能。

  2. 基线方法:

    • 我们将我们的方法与一系列有代表性的基线方法进行比较:

      • 一个简单的基线,即推荐最受欢迎的 itemsPOP)。

      • 经典贝叶斯个性化排序算法的矩阵分解变体(BPR-MF) 。

      • 著名的神经协同过滤(NCF)。

    • 然后,我们考虑利用用户行为数据序列性的强大基线,包括:

      • 将序列建模为马尔可夫链的因子化个性化马尔可夫链(FPMC)。

      • 基于循环神经网络的 GRU4Rec 及其改进版本 GRU4Rec+

      • 基于卷积神经网络的 Caser

      • 基于 TransformerSASRec

      • SOTA 的深度序列推荐器 BERT4Rec,它使用 BERT 的完形填空目标来训练双向 Transformer 编码器。

  3. 分析:Figure 2Figure 3 展示了所有方法在四个数据集上的整体推荐性能。我们可以看到:

    • 我们的方法将传统的 seq2item 训练策略与 disentangled latent seq2seq training 相结合,始终优于所有基线方法。在 BeautySteam 数据集上的改进尤为显著,相比最强的基线方法,相对提升通常超过 35%

    • 然而,我们也注意到,在另外两个数据集 MovieLens-1MMovieLens-20M 上的性能提升不太明显,相比最强的基线方法,相对提升约为 5%。这可能是因为后两个数据集包含长得多的序列,平均长度分别为 163.5144.4,而 BeautySteam 数据集包含的序列平均长度分别为 8.812.4,要短得多。长度超过 140 的长序列可能特别难以解耦。

1.2.2 对合成噪声的鲁棒性

  1. 我们现在分析与仅使用 seq2item 训练的传统策略相比,我们的 seq2seq 训练策略的鲁棒性如何。具体来说,我们通过用均匀采样的 item 来随机替换训练集中观察到的部分 clicks 来破坏训练数据。我们在 Beauty 数据集上进行这个实验,将被破坏的训练数据的百分比从 10%50% 进行变化。

    我们在 Figure 4 中展示了我们方法的两个变体。

    • 一种方法如正文所述,同时优化 seq2item 损失和 seq2seq 损失。

    • 另一种方法仅优化 seq2item 损失。

    我们可以看到,只要噪声水平相对较低(例如,噪声 < 20%),使用 seq2seq 训练策略时,推荐性能下降得更慢。这表明我们的 seq2seq 训练策略通过从更长远的未来中挖掘额外的监督信号,并从高置信度的 seq2seq 样本中进行选择性学习,确实有可能带来更高的鲁棒性。

1.2.3 消融研究

  1. Table 2 列出了消融研究的结果。

    • 我们方法的变体 1 去掉了 seq2seq 损失,只使用 seq2item 损失。我们观察到性能下降,这证明了我们 seq2seq 损失的有效性。

    • 变体 23 直接重构future sequence中的每个 items ,即针对future sequence中的每个 item 优化 seq2item 损失,而不是使用我们的 seq2seq 损失。变体 23 的性能甚至比只考虑一个 future item 的变体 1 更差。性能下降可能是由于长期未来中存在许多不相关的 items

1.2.4 超参数敏感性

  1. 我们的 seq2seq 损失涉及一个关键的超参数 λ[0,1],它是用于确定训练集中的 seq2seq 样本是否具有高置信度,从而决定是否使用该样本进行训练。我们在 Beauty 数据集上进行实验,并在 Figure 5 中展示了这个超参数的影响。

    Figure 5 表明 λ 的选择确实很重要。阈值太严格会限制使用的 seq2seq 样本数量,而阈值太宽松会引入太多不相关的 seq2seq 样本。其他数据集上的结果也遵循类似的趋势,尽管最优值可能因数据集而异。