论文阅读03——Future Data Helps Training- Modeling Future Contexts for Session-based Recommendation

https://blog.csdn.net/m0_37483148/article/details/108627915这篇文章中整理了今年上半年一些好的序列推荐论文

Future Data Helps Training- Modeling Future Contexts for Session-based Recommendation

1.引言

基于会话的推荐系统(SRS)是推荐领域的一个新兴课题,它的目标是根据用户会话中交互项目的有序历史记录来预测下一个项目。虽然深度神经网络[7,17,26,27]的最新进展在建模用户短期兴趣转换方面是有效的,但在长期会话中捕获顺序依赖性仍然是一个基本挑战[14,25,35]。在实践中,远程用户会话广泛存在于微视频和新闻推荐等场景中。例如,tiktok1.com上的用户可能在30分钟内观看100个微视频,因为每个视频的平均播放时间只有15秒。一般来说,从序列数据训练模型有两种流行的策略:数据增强[4,13,24,24,26,27]和自回归训练[11,35]。具体来说,数据增强方法,如改进的GRU4Rec[24],使用目标序列的前缀进行数据预处理并生成新的训练子片段,然后推荐器预测序列的最后一项。自回归方法以端端方式建模整个序列的分布,而不仅仅是最后一项。这个想法产生了一个典型的向右风格的单向生成模型,称为NextItNet[35]。这两种策略有着相似的直觉,在为目标交互构造预测函数时,只考虑其过去的用户行为(在本文中我们也称之为“上下文”)。然而,在顺序推荐中,我们认为这样的选择可能会限制模型的能力。关键的原因是,尽管用户行为是以序列数据的形式出现的,但可能并不严格地保持相等的依赖关系。例如,用户购买手机后,可能会点击手机套、耳机和屏幕保护器,但这三件物品之间没有顺序关系——换句话说,用户很可能会以任意顺序点击这三件物品。因此,并不是必须将用户会话建模为严格的序列。其次,推荐的目的是准确估计用户的偏好,使用更多的数据有利于偏好估计。由于目标交互后的未来数据也是用户引用的证据,因此有理由相信对未来数据进行建模可以帮助建立更好的目标交互预测模型。然而,用未来数据建模是一个挑战,因为它违背了机器学习的原则,如果处理不当会导致数据丢失。以已广泛应用于序列数据建模的编解码器(ED)神经结构为例[2,9,23]。

 

如图1 (a)所示,在机器翻译中,在预测序列中的目标词时(即,编码器将两边的单词作为输入源。由于源词和目标词来自不同的域,所以不存在数据泄漏的问题。然而,如果我们将相同的ED架构应用于用户会话建模,如图1 (b)所示,不可避免地会出现数据泄漏问题。这是因为源条目和目标条目来自相同的域,这样目标条目(由解码器预测)恰好出现在编码器的输入中。为了解决上述问题,我们提出了一种新的SRS方法来建模未来的上下文:基于间隙填充的编码器-解码器框架工作的顺序推荐,或简称GRec。GRec修改了ED的设计,使其适合未来的数据建模,而不需要数据泄露:编码器和解码器由一个空隙填补机制[19]联合训练,它的灵感来自于最近开发的预训练语言模型[3]。具体来说,在用户会话中,通过填写空白符号(如“__”)删除部分条目。编码器以部分完全序列作为输入,解码器根据编码的表示模型对间隙项进行预测。通过这种方式,GRec可以强制编码器知道一般的用户偏好(通过揭露动作来表示),并同时强制解码器根据过去的环境和已编码的一般用户偏好来生成每个表单下一项。

•我们强调了建模基于未来上下文的推荐系统的必要性,并开发了一个通用的神经网络框架GRec,它可以在没有数据流的情况下工作。

•我们使用带有稀疏核[35]的卷积神经网络指定GRec,统一了序列生成的自动生成机制和编码的两端econtext的优点。

•我们在解码器中提出了一种反向瓶颈结构的投影仪神经网络,可以提高编码器和解码器之间的代表性带宽。

•我们在两个真实数据集上进行了广泛的实验,证明了GRec在利用基于会话的推荐系统的未来上下文方面的有效性。

论文组织如下。在第2节中,我们回顾了在SRS中使用顺序神经网络模型的最新进展。特别地,我们概括了两种广泛使用的单向培训方法。在第3节中,我们首先研究在用户会话中创建双向上下文的直接方法,并指出它们在项目推荐任务中的缺点。然后,我们详细描述了我们提出的GRec的框架和体系结构。在第4节中,我们通过实验和测试来验证GRec在SRS任务中的有效性。在第5部分,我们得出结论和未来的工作。

 

 

2.2从左到右风格的算法

在本节中,我们主要回顾了具有从左到右风格的顺序推荐模型,包括但不限于改进的GRU4Rec [24] (IGRU4Rec的缩写)、Caser[26]和nextitnet[35]。其中IGRU4Rec和Caser属于数据增强方法,如图2 (a)所示,而enextitnet是典型的基于AR的生成模型,如图2 (b)所示。注意,GRU4Rec、NextItNet可以同时使用da和AR方法进行训练。

2.2.1数据增强

[24]的作者提出了一种通用数据增强方法来提高srs的推荐质量,该方法在未来的大部分工作中得到了进一步应用,如[13,24,26,27]。在SRS中DA的基本思想是将用户会话中的所有前缀视为新的训练序列[7]。特别地,对于给定的用户会话{x1,…,xt−1,xt}, DA方法将生成一组序列和目标标签{(x2|x1),(x3|x1,x2),…,(xt|x1,x2,…,xt−1)},如图2 (a)所示。由于通过额外的子会话学习更多的信息,特别是在用户界面较长和用户-项目矩阵稀疏的情况下,数据扩充成为减少过拟合问题的有效方法。尽管数据增强方法已经成功地应用于大量的SRS工作中,但它可能会导致整个用户会话的完整性中断,并显著增加训练时间。AR学习方法[11,35]提出对原始输入序列的所有位置进行优化,而不是只对最后一个位置进行优化。具体地说,模型以{x1,…,xt−1}(orx1:t−1)为输入和输出概率(即softmax),以seq2seq (sequence-to-sequence)的方式对x2:tby进行输入和输出。数学上,一个用户会话{x1,…, xt−1,xt}可以映像作为一个产品的物理分布,链式法则:

有了这个公式,每个预测项都可以以之前点击的所有项为条件。与此相对应,AR方法不再需要数据增强技术。如前所述,数据增强和AR都按照从左到右的顺序对用户会话进行处理。虽然它符合自然顺序的顺序数据的生成规律,但建模的方式不可避免地忽略了许多与目标交互相关的未来有用的上下文。特别是在推荐领域,用户的行为顺序可能不服从严格的顺序关系。因此,这些方法可能会限制顺序推荐模型的能力。此外,利用附加的未来上下文也可以看作是一种数据扩充的方式,帮助模型减轻SRS的稀疏性问题。受此启发,我们认为,研究对序列推荐模型的影响是至关重要的,要考虑到两个方向的环境。

2.3相关工作

最近,强大的基于深度神经网络的序列模型几乎已经主导了基于会话的推荐系统(SRS)领域。其中,GRU4Rec[7]模型被认为是采用递归神经网络(RNN)建模用户偏好演化的先驱工作。受此成功的启发,基于rnn模型的一个类被开发出来。例如,[24]中一个经过证明的RNN变体通过提出数据增强技术,对标准RNN模型有了良好的改进。Hidasi等[6]进一步提出了一组可供选择的函数以及有效的采样技巧来改善交叉熵和两两损失。[17]提出了个性化的srs,而[5,20]探索了如何使用内容和上下文特征来提高推荐的准确性。另一项研究是基于卷积神经网络(CNN)和注意力机制。主要原因是基于rnn的序列模型严重依赖于一个隐藏状态,不能充分利用gpu[35]的对位处理能力。因此,他们的速度在训练和评估中都受到了限制。相反,CNN和纯粹的基于注意力的模型本质上更容易被并行化,因为用户会话中的所有时间步长在训练中都是已知的。最典型的SRS CNN模型是Caser[26],它将项目嵌入矩阵作为图像,然后对其进行2D处理。在NextItNet[35]中,作者认为标准的cnn架构和Caser的最大池化操作不适合建模远程用户序列。相应地,他们提出使用堆叠扩张的CNN来增加高层神经元的感受场。此外,作者认为,开发一个seq2seq风格的目标函数可以省去以往工作中广泛使用的数据增强技术。他们发现自回归NextItNet更强大,在基于top- n的推荐任务中,han Caser模型比RNN模型更有效。受Caser和nextitnet成功的启发,通过使用(或改进)1D扩张CNN或2D CNN来建模用户-项交互序列,提出了若干扩展工作,如[32,33]。同时,基于转换者的自我注意[11,22,37]模型在SRS领域也显示了良好的结果。然而,我们知道,由于计算所有时间步长的自我注意需要二次复杂度,因此自注意机制的计算成本要比堆叠的双层CNN结构高。最近,[14,25]引入门禁网络,通过捕获短期和长期序列模式来改进SRS。上述顺序推荐器构建在编码器或解码器体系结构上。联合训练编码器和解码器对双向上下文建模,并保持自回归生成机制,在现有的推荐文献中并没有探索。与本文相对相关的工作是NARM[13],它为SRS提出了一种基于注意力的“ED机制”。然而,NARM实际上是一种顺序到一的架构,而不是它的解码器网络中典型的seq2seq。换句话说,NARM只对最后一个项目解码分布,而标准的ED模式解码一个完整序列的分布。相比之下,我们提出的GRec是一个pseq2pseq(部分序列到部分序列)ED范例,其中它的编码器和解码器关注于编码和解码不完整的序列。通过这种设计,GRec结合了序列生成的自回归机制和编码的两个边上下文的优点。在介绍最后的解决方案之前,我们首先需要研究一些传统的方法来融入未来的上下文。然后,我们说明了这些方法在应用于生成任务时的潜在缺点。基于此分析,我们提出了基于间隙填充(或填空)的编码器-解码器生成框架,即GRec。在下面,我们instantiate拟议的方法使用扩张卷积神经网络用于NextItNet,同时兼顾准确性和效率。

3.1双向数据Augmentation

一种简单方法利用未来的数据是扭转原来的用户输入序列和训练模型通过喂养它的输入和输出逆转。这种双向数据增强方法已经在多个NLP任务[23]中得到了有效的验证。基于数据增强和增强现实方法的推荐模型无需任何修改即可直接应用。例如,我们使用NextItNet(用NextItNet+表示)来显示这个方法,如下面的插图所示。

问题:如果将上述的双向数据扩充用于项生成任务,可能会有两个潜在的缺点:(1)item xi的左右上下文由同一组参数或NextitNet的相同卷积内核建模。但在实际操作中,左右环境对弓形虫的影响是非常不同的。也就是说,同样的参数表示从这个角度来看是不准确的。(2)由于模型在训练右上下文时可能会对左上下文学习的参数进行较大的修改,因此左右上下文的单独训练过程容易导致次优性能。更好的解决方法是针对的是(1)单一优化目标同时左边和右边上下文,和(2)左右由不同的模型参数.

3.2双向NextItNets (tNextItNets)

在这里,我们引入双向NextItNets模型过去前进的方向和未来环境方向。与forward NextItNet类似,backwardNextItNet在用户会话上反向运行,以未来上下文为条件预测前面的项目。这里的断言与[35]不同,在[35]中,预测项和它的未来关联都需要被掩盖。我们只保证被预测的元素不会被更高层的神经元访问。

问题:虽然tNextItNets可以解决3.1节中提到的培训问题,但是在生成阶段实际上无法使用未来的上下文。也就是说,当向后接标题用于推理时,它是无用的。训练和预测之间的差异可能会严重影响最终的推荐性能,因为双向NextItNets学习到的最佳参数在很大程度上可能不是单向NextItNet的最佳参数。另一个缺点是,双向NextItNets本质上是独立训练的“从左到右”和“从右到左”模型的浅连接,这限制了对复杂上下文表示的expresivenessin建模。所以,这是未知的提议的双向NextItNets是否比NextItNet更好,尽管它使用了更多的上下文。

3.3.1 SRS的Seq2seq。

首先,我们介绍SRS的这些eq2seq学习的基本概念。∈(x,z)∈(x,z)为sequenepair,其中x={x1,…,xt}∈x用titems表示用户输入sessionsequence,且z={z2,…, zд+ 1}∈Zrepresents精矿产量序列,和(X, z)被视为do-mains源和目标。与标准seq2seq场景(例如,图1 (a)),我们下面的SRS任务的特殊关系(见图1 (b)):(1)д= t;(2) {z1,…,zд}= {x1,…,xt}。seq2seq模型的目标是学习Θ一组参数来描述条件probablityP (z | x,Θ),并且通常使用日志的可能性objectivefunction[21日23]:G (x, z,Θ)=我(x, z)∈(x, z) logp (z | x;Θ)。通过对链式法则的分解,可以进一步将概率表示为一种自回归方式

3.3.2 Pseq2pseq的总体框架

可以看出,使用Eq.(4)设计一个seq2seq学习模型是很重要的,因为被预测的项,例如xi,可以从编码器网络byx中间接看到。为了解决这个问题,我们通过在ED架构中应用空隙填充的思想(最初是为[19]任务语言设计的)提出了所谓的卷积运算。这里,我们假设用户会话中的项是句子中的单词。相应地,我们可以用间隔符号“__”随机替换等式中的一些标记。填补空白的目的是了解这些缺失标记的真相。GRec包括一个修改版的编码器和解码器,以及一个注入解码器网络的投影仪模块。编码器和解码器都是通过使用扩容的可变神经网络来描述的,尽管它们可以简单地用循环的[7]和注意[11]网络来替代。编码器和解码器的主要区别在于,编码器网络建立在深度双向CNN的基础上,解码器网络建立在深度因果CNN的基础上。为了增强编码器和解码器之间的品牌宽度,我们将解码器放在由编码器计算的表示之上,并在它们之间注入一个网络。这与将编码器表示压缩到固定长度向量[23]或通过注意机制使它们对齐的模型形成对比[2,21]。形式上,给定一个用户会话sequencex={x1,…, xt}∈X,我们表示̃部分项目,例如,X△= {X△1,…,X△m}(1≤m < t)是随机替换空白masksymbols(“_”)。GRec优化pseq2pseq模型由预测在每个用户会话,把修改后的项目序列̃xa inputsequence。客观functionG (X;Θ)GRec被定义为

我们使用图3来展示Eq.(5)的图形示例。GRec的解码器可以预测被隐藏在编码器部分的项(即x△)。如图3所示,GRec接受输入se-quence“x1,x3,x7,x8”,并生成“x2,x4,x5,x6,x9”作为输出序列。以项目“x6”的生成为例,在预测时,GRec可以利用部分序列“x1,x2,x3,x4,x5”的因果关系,同时通过编码器利用项目“x3,x7,x8”的代表,其中“x7,x8”是“x6”的未来上下文。为了清晰起见,我们将Nex-tItNet (seq2seq)和GRec (pseq2pseq)在模型生成方面进行比较

通过这种设计,GRec可以同时利用过去和将来的上下文,而不会导致数据泄漏。

3.3GRec设计

下面介绍GRec的组成部分:嵌入层、编码器、解码器、投影仪和softmax层。嵌入层。提出的GRec有两个不同的嵌入层,即编码器嵌入矩阵∈Rn×danddecoder嵌入矩阵∈R(n−1)×d,其中−1为项数,dis嵌入维数。具体来说,encoderof GRec嵌入蒙面用户输入序列̃xvia一look-uptable fromeE,表示byeẼx∈Rt×d,而译码器嵌入原来输入sequencexfrombE表示bybEx∈Rt×d。在进行嵌入查找操作后,我们将编码器和解码器的嵌入表示为:

编码器:深度双向CNNs空隙填充。受NextItNet的启发,我们将编码器网络与一系列的一维叠加膨胀层叠加在一起。为了减轻梯度消失的问题,我们每两个扩张层包裹一个剩余块。与NextItNet不同,编码器的卷积操作不是因果关系。每一个较高层次的神经元都能同时看到它的左右脉络。通过空隙填充设计,这些神经元被强迫理解序列中未被掩藏的上下文。值得一提的是,所提出的缺口填充机制是动态的和随机的,这掩盖了不同批次训练中项目序列的不同部分。在形式上,我们将编码器网络的输出与图3中的两个堆叠层定义为

解码器:深度因果cnn缺口预测。该解码器由嵌入层、投影仪和causalCNN模块组成,每个位置只能参与左侧。CNN组件严格遵循NextItNet,只是允许它估计编码器中蒙面项目的概率,而不是NextItNet中的整个序列。同时,在进行因果CNN操作之前,我们需要将编码器的最终输出矩阵和译码器的嵌入矩阵进行聚合,然后将它们传递到投影网络中,这个过程在后面进行描述。在形式上,解码器的最后一个隐藏层(softmax层之前)可以表示为

投影仪:连接编码器和解码器。虽然编码器的输出隐层,即Fencoder (eẼxL)和inputembedding解码器的层,也就是说,eẼx0Lhave张量相同的外形,我们经验发现,直接将解码器上的theencoder element-wise之外可能没有提供最好的结果。为了最大限度地增强编码器和解码器之间的表示品牌,我们在解码器中提出了一个附加的投影网络(或简称投影网络)。具体来说,投影机是一种倒置的套头衫式残余结构,由投影-uplayer、激活功能层、投影-down层以及投影-上层和投影-下层之间的跳跃连接组成。投影机首先通过1×1×d×f(本文中的f=2)卷积运算将原维度的卷积投影到更大的维度上。接下来是非线性,然后用1×1×f×卷积运算将fchannels投影回原始的维数。投影仪的输出为

模型培训和生成。如Eq.(5)所述,GReconly考虑的是遮罩位置,而不是完整的序列。因此,我们首先执行查找tableby检索蒙面的隐藏的向量位置fromFdecoder (eẼxL, bExL),表示byFx△解码器(eẼxL, bExL)。然后,将这些向量输入到全连通神经网络层中,由该神经网络层将它们从三维潜在空间投影到三维软空间中。被掩蔽项sx△的计算概率为

由于GRec只估计每批中的部分项目,与nextitnet样式的模型(估计整个序列)相比,它需要更多的训练步骤来收敛,但与基于从左到右数据增强的模型(例如Caser)(只估计最后一项)相比,它需要更少的步骤。一旦模型训练良好,我们就可以使用它来生成项目。与训练阶段不同,在训练阶段编码器必须遮罩一定百分比的项目,GRec能够直接计算最后一层的最终位置的最大值,而不执行遮罩操作。

3.3.4与现有模型的连接

我们的工作与NextItNet和著名的双向语言modelBERT密切相关[3,22]。在本小节中,我们将展示GRecto nextitnet样式和伯特样式模型之间的联系。为了清晰起见,我们在讨论过程中省略了投影层。如图4 (a)所示,当m=1时,编码器只掩码一个位置,即x5,从输入序列,相应的解码器只预测这个掩码令牌,条件是该序列中的其他项。在数学上,我们havep (x△|̃x) = p (x5 | x \ x5)。如果我们用“__”进一步屏蔽译码器的输入,GRec就会变成一个标准的带有一个softmax输出的编码器,并且非常类似于众所周知的双向语言模型BERT,唯一的例外是,BERT应用的是Transformer[29]架构,而GRec使用的是堆叠的1D扩展的cnn。在这个简单的例子中,GRec简化为一个顺序到一的模型,并失去了它的自回归特性。事实上,基于数据的推荐模型,如Caser、IGRU4Rec和NARM,也可以看作是一种顺序到一的模型,只是应用了不同的神经网络基础结构。当m=t−1时,编码器中的所有项(除了第一个位置)将被掩蔽,解码器将从x2toxt中预测这些掩蔽项,如图4 (b)所示。在这种情况下,GRec的编码几乎失效。如果我们移除编码器,grecnet就会精确地变成NextItNet。注意,带有m=t−1的GRec的性能很可能比NextItNet差。这是因为在这种情况下,GRec的编码器引入了许多额外的噪声,使得解码器更加难以优化。总之,我们提出的GRec可以看作是一个pseq2pseqmodel,它联合训练编码器和解码器完成顺序推荐任务。与nextitnet风格的模型相比,GRecis能够建模过去和未来的上下文。与tobert风格的模型相比,GRec更适合生成到期的任务到它的自回归过程。与标准的seq2seq编码器-解码器模型相比,当编码器和解码器被送入相同的inputsequence时,GRec没有数据泄漏的问题。

4 实验

这项工作的主要贡献是提高SRS existingleft-to-right风格学习算法,我们评估GRec 数据集与短期、中期和长期的会议,并进行广泛的消融研究回答followingresearch问题:

(1)RQ1:三种提议的方法是否比现有的从左到右的时段模型执行好吗?

(2)RQ2: GRec如何执行不同的缺口填补策略?

(3)RQ3: GRec其他关键模块的影响是什么?

(4)RQ4: GRec是一个通用的框架,还是用其他类型的神经网络代替编码器和解码器工作得很好?我们用三个不同的会话长度在两个真实数据集上进行实验。这个数据集是由movielens于2018年9月26日创建的。由于原始数据集包含冷数据项,我们通过过滤出现次数少于20次的数据项来进行基本的预处理,类似于[26]。然后根据时间顺序生成同一用户的交互序列。我们把这一序列加进后来的每部电影中。如果子序列的长度更小,我们在序列开始的时候用0来填充以达到lcs。对于长度小于l的,我们需要在实验中删除它们。在我们的实验中,我们setk=30 withl=10和k=100 withl=20,得到了两个数据集ML30和ML100.TW104。这是腾讯公司维实团队于2018年10月创建的私人数据集。TW10是一个简短的视频数据集,其中每个视频的平均播放时间不到30秒。由于冷启动用户和物品已经由官方供应商进行了微调,所以我们不需要考虑冷启动问题。每个用户序列最多包含10个条目。表1总结了本次工作中评估数据集的统计情况。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值