SSE-PT Sequential Recommendation Via Personalized Transformed

2021-08-18
4 min read

SSE-PT: Sequential Recommendation Via Personalized Transformer

SSE-PT/SSE-PT (github.com)

时间信息对于推荐问题至关重要,因为用户偏好在现实世界中自然是动态的。 深度学习的最新进展,尤其是除了在自然语言处理中广泛使用的 RNN 和 CNN 之外,还发现了各种注意力机制和更新的架构,可以更好地利用每个用户参与的物品的时间顺序。 特别是 SASRec 模型,受到自然语言处理中流行的 Transformer 模型的启发,取得了最先进的结果。 然而,SASRec 就像最初的 Transformer 模型一样,本质上是一个非个性化的模型,不包括个性化的用户嵌入。

为了克服这个限制,本文提出了一种个性化变换器 (SSE-PT) 模型,不仅更具可解释性,而且能够关注每个用户最近的参与模式。 此外, SSE-PT 模型稍加修改,称之为 SSE-PT++,可以处理极长的序列,并在具有可比训练速度的排名结果方面优于 SASRec,在性能和速度要求之间取得平衡。

1. 论文模型

1.1 序列推荐

给定 n 个用户,每个用户按时间顺序与 m 个物品的一个子集互动,顺序推荐的目标是在任何给定时间点为任何给定用户学习在总共 m 个物品中前 K 个物品的良好个性化排名。假设数据为 n 个物品序列的格式:

长度为 T 的序列sis_{i}包含用户 i 按照时间顺序(从旧到新)与之交互的最后 T 个物品的索引。 对于不同的用户,序列长度可能会有所不同,但可以填充较短的序列,使它们都具有长度 T 。不能简单地将数据点随机分成训练/验证/测试集,因为它们按时间顺序排列。 相反,需要确保训练数据在验证数据之前,也就是在测试数据之前。 使用序列中的最后一个物品作为测试集,倒数第二个物品作为验证集,其余的作为训练集。使用 NDCG@K 和 Recall@K 等排名指标进行评估,这些指标在附录中定义。

1.2 个性化的 Transformer 架构

模型称之为 SSE-PT,它利用了一种称为随机共享嵌入的新正则化技术。在接下来的部分中,将检查的个性化转换器 (SSE-PT) 模型的每个重要组件,尤其是嵌入层,以及随机共享嵌入 (SSE) 正则化技术的新应用。

嵌入层

定义一个可学习的用户嵌入查找表URn×duU\in R^{n\times d_{u}}和物品嵌入查找表VRm×diV\in R^{m\times d_{i}},其中du,did_{u},d_{i}分别为用户和物品的隐藏单元的数量。同时还指定了可学习的位置编码表PRT×dP\in R^{T\times d},其中d=du+did=d_{u}+d_{i}。所以每个输入序列siRTs_{i}\in R^{T}将由以下嵌入表示:

其中[vjit;ui][v_{j_{it}};u_{i}]表示将物品嵌入vjitRdiv_{j_{it}}\in R^{d_{i}}和用户嵌入uiRduu_{i}\in R^{d_{u}}连接为时间tt下的嵌入EtRdE_{t}\in R^{d}

Transformer编码器

在嵌入层之上,我们有 B 个自注意力层和全连接层,其中每一层根据前一层的输出为每个时间步提取特征。 这部分与原始论文中使用的 Transformer 编码器相同。

预测层

在时间tt,用户ii参与物品ll的预测概率为:

其中 σ 是 sigmoid 函数,ritlr_{itl}是用户ii在时间点tt对物品ll的预测得分,定义为:

其中Ft1BF_{t-1}^{B}是在最后一个时间戳与变压器编码器关联的输出隐藏单元。

尽管可以为uiu_{i}vlv_{l}使用另一组用户和物品嵌入查找表,但使用与嵌入层中相同的一组嵌入查找表 U,V 更好。 但是这些嵌入的正则化可能会有所不同。 为了将(4)中的uiu_{i}vlv_{l}与(2)中的 ui ,vj 区分开来,我们将(4)中的嵌入称为输出嵌入和(2)中的嵌入称为输入嵌入。

{正项预测概率之间的二元交叉熵损失l=ji(t+1)l=j_{i(t+1)}和一个均匀采样的负项kΩk\in \Omega,由[log(pitl)+log(1pitk)]-[\log(p_{itl})+\log(1-p_{itk})]给出。对 sis_{i}tt求和,可以得到想要最小化的目标函数:

在推理时,可以通过对所有物品 ℓ 的分数ritlr_{itl}进行排序并推荐排序列表中的前KK个物品来为用户ii在时间tt做出前KK个推荐。

随机共享嵌入的新应用

SSE-PT 模型最重要的正则化技术是随机共享嵌入(SSE)。 SSE 的主要思想是在 SGD 期间用另一个具有一定概率的嵌入随机替换嵌入,这具有正则化嵌入层的效果。 如果没有 SSE,所有现有的众所周知的正则化技术,如层归一化、dropout 和权重衰减都将失败,并且无法防止模型在引入用户嵌入后严重过度拟合。

1.3 处理长序列:SSE-PT++

为了处理极长的序列,可以对基本 SSE-PT 模型在输入序列sis_{i}是如何馈送到 SSE-PT 神经网络方面进行轻微修改。将增强模型称为 SSE-PT++ 以区别于之前讨论的 SSE-PT 模型,后者无法处理长于 T 的序列。