This week, I read an article about the self-attention mechanism, the article proposes a novel model, MEANTIME, it employs multiple types of temporal embeddings, designed to capture patterns from the user’s sequence of actions, as well as an attention structure that takes full advantage of this diversity. MEANTIME addresses some of the previous limitations of the self-attention mechanism: 1) The previous model did not make use of the extracted context information; 2) The use of simple embedding scheme, resulting in bottlenecks; 3) Each self-attentional head in the same position embedding, resulting in a pattern of overlapping learning. In addition, I learn the relevant content of self-attention, understand and master the core content of attentiion mechanism, and supplement some mathematical knowledge of SVM.
本周,我阅读了一篇关于自注意力机制相关的文章,文章提出了一种新颖的模型MEANTIME,它采用了多种类型的时间嵌入,旨在从用户的行为序列中捕捉各种模式,以及充分利用这种多样性的注意力结构。MEANTIME主要解决了之前基于自注意力机制存在的一些局限性:1)以前的模型没有利用到提取到的上下文信息;2)使用简单的嵌入方案,导致出现瓶颈;3)对每一个自注意力头使用相同的位置嵌入,导致学习重叠的模式。此外,我学习了self-attention的相关内容,理解并掌握到了attentiion机制的核心内容,以及补充学习了SVM的一些数学知识。
文献链接:MEANTIME: Mixture of Attention Mechanisms with Multi-temporal Embeddings for Sequential Recommendation
Recently, self-attention based models have achieved state of-the-art performance in sequential recommendation task. Following the custom from language processing, most of these models rely on a simple positional embedding to exploit the sequential nature of the user’s history. However, there are some limitations regarding the current approaches. First, sequential recommendation is different from language processing in that timestamp information is available. Previous models have not made good use of it to extract additional contextual information. Second, using a simple embedding scheme can lead to information bottleneck since the same embedding has to represent all possible contextual biases. Third, since previous models use the same positional embedding in each attention head, they can wastefully learn overlapping patterns. To address these limitations, we propose MEANTIME (MixturE of AtteNTIon mechanisms with Multi-temporal Embeddings) which employs multiple types of temporal embeddings designed to capture various patterns from the user’s behavior sequence, and an attention structure that fully leverages such diversity. Experiments on real-world data show that our proposed method outperforms current state-of-the-art sequential recommendation methods, and we provide an extensive ablation study to analyze how the model gains from the diverse positional information.
背景:从用户的历史记录中获取用户的偏好对于做出有效的推荐至关重要,因为用户的偏好和项目的特征都是动态的;此外,用户的偏好在很大程度上取决于上下文;因此,sequential recommendation旨在通过用户的历史记录来预测用户可能更喜欢的下一组事物。
问题:大多数顺序推荐算法忽略了interactions’ timestamp values,虽然TiSASRec成功地结合了时间信息,但它却仅限于单个嵌入方案。由于timestamp values中的信息十分重要,因此探索多种形式的时间嵌入是有益的,而且这些嵌入可以充分提取不同的模式,以及可以充分利用这些多样性的模型架构。
方案:论文提出了MEANTIME,它引入多个时间嵌入,以更好地编码序列中用户项交互的绝对位置和相对位置。此外,论文使用了多个单独处理每个位置嵌入的自注意头,专注于特定的用户行为模式。
1)论文提出多样化用于编码序列中用户项交互位置的嵌入方案,通过将多个内核应用于序列中时间戳的位置/值来创建唯一的嵌入矩阵来实现的。
2)论文提出了一种新的模型架构,该架构同时操作多个self-attention heads,其中每个头通过利用提出的位置嵌入从用户的行为中提取特定模式。
3)通过实验证明了论文方法在真实世界数据集上的有效性,以及提供了一项全面的消融研究,帮助了解模型中各个组件的影响。
Temporal Recommendation包含上下文信息,因此它对推荐系统的表现至关重要。TimeSVD++和BPTF在矩阵分解方法中采用了时间因子;Time-LSTM为LSTM配备了几种形式的时间门,以更好地模拟用户交互序列中的时间间隔;CTA在temporal information上使用多个参数化核函数来校准self-attention机制。
Sequential Recommendation,旨在基于用户的顺序历史来推荐相关项目。SASRec成功地运用了self-attention,使得在NLP领域取得了巨大成功;BERT4Rec通过采用基于Transformer和Cloze-task的训练方法改进了SASRec;TiSASRec通过将时间戳信息合并到self-attention中去增强SASRec;而论文的工作是试图通过提出一种新的模型架构来进一步推进这一趋势,该架构使用多类型的时间嵌入和self-attention来更好地捕捉用户行为中的各种模式。
如下图所示,一种新的模型架构,为每个注意力头部注入各种不同的时间嵌入。
目标:基于给定的历史(Vu,Tu),预测用户u可能在目标时间戳与之交互的下一个项目。
相对嵌入通过利用时间差信息来编码序列中每个交互对之间的关系。首先,我们定义了一个时间差矩阵,其元素定义为dab=(ta − tb)/T,其中T为可调整的单位时间差。如下所示,编码函数:
每一个嵌入都提供了对时间数据的独特视图。例如:Sin捕获周期性事件,较大的时间间隔要么在Exp中迅速衰减为零,要么在Log中可管理地增加;Pos可以从以前的模型中学习模式;最后Con完全消除了位置偏差,因此注意力只能集中在项目之间的关系上。
Attention Architecture:基于自注意力机制的模型采用了简单的绝对位置编码,将EItem和EPos的总和作为输入;EPos被仅依赖于阵列的位置索引之间差异的相对位置嵌入ER所取代,并且位置信息不再用于键和值编码器;参数bI和bR分别用作全局内容/位置偏差。对于绝对嵌入,论文也采用了前面的结构。
Stacking Layers:将Position-wise前馈网络应用于self-attention的结果,以完成单层:
然后堆叠L个这样的层,为每个子层应用残差连接以促进训练:
Prediction Layer:给定最后一层的输出,通过以下方式获得每个位置的项目得分分布:
从(Vu,Tu)中对项目v和时间戳t的子序列进行采样,并以概率ρ用[MASK]随机屏蔽其中的一部分,将v转换为v’;然后我们将v′和t送到模型中以获得P;接下来,计算损失如下:
在四个不同领域具有稀疏性的数据集上评估了模型:MovieLens 1M、MovieLen 20M、Amazon Beauty和Amazon Game。其中遵循通用数据预处理过程,将每个数据集转换为隐式数据集,将每个数值评级或评论视为用户项交互的存在,最后按用户ID对交互进行分组,按时间戳对它们进行排序。
与最好基线相比,论文提出的模型在所有指标和数据集中都具有最优的性能。
下图比较了在ML-1M和Amazon Game数据集上所有可能的时间嵌入组合情况,结果表明了具有不同特征的数据集需要精心选择合适的时间嵌入,以提供用户项交互上下文的正确视图。
MEANTIME,它的特点是使用时间信息和多个编码函数为Self-attention提供独特的位置嵌入。通过在四个数据集上的实验表明,它在时序推荐方面优于最新的基线。通过广泛的消融研究,论文表明不同的数据集需要不同的位置嵌入以获得最佳性能,因此需要考虑不同数据集的特性,仔细调整模型中的位置因子。
如下图所示,Self-attention的核心部分。
为了方便讲解,将上式简化为:
由此上图中XXT 可以表示为一个矩阵乘以它自己的转置,即可以看成这些向量分别与其他向量计算内积。而向量的内积表征两个向量的夹角,其几何意义是表征一个向量在另一个向量上的投影。
上图是向量分别与自己和其他两个向量做内积,得到了一个新的向量。
我们知道投影的值大,说明两个向量相关度高。因此,如果两个向量夹角是90度,那么这两个向量线性无关,完全没有相关性。
进一步讲,这个向量是词向量,是词在高维空间的数值映射。词向量之间相关度高表示在关注词A的时候,应当给予词B更多的关注。
Softmax的意义是归一化,因为进行Softmax操作后,这些数字的和为1。
从上图看出,行向量与X的第一个列向量相乘,得到了一个新的行向量,且这个行向量与X的维度相同。
在新的向量中,每一个维度的数值都是由三个词向量在这一维度的数值加权求和得来的,这个新的行向量就是"早"字词向量经过注意力机制加权求和之后的表示。
如下图所示,在二维空间中,两种类别的点被一条直线完全划分开就叫做线性可分。
严格的数学定义: D0和D1是n维欧氏空间中的两个点集,如果存在n维向量w和实数b,使得所有属于D0的点都有wxi + b > 0, 而对于所有属于D1的点xj,则有wxj + b < 0, 则称D0和D1线性可分。
将二维空间扩展到多维空间中时,能够将D0和D1完全正确地划分开的wx + b = 0就成了一个超平面。
为了使上述超平面更具鲁棒性,我们会去找最佳超平面,以最大间隔把两类样本分开的超平面,也称之为最大间隔超平面。
最大间隔超平面:
1)两类样本分别被分割在该超平面的两侧;
2)两侧距离超平面最近的样本点到超平面的距离被最大化。
SVM想要的是找到各类样本点到超平面的距离最远,也就是找到最大间隔超平面。
根据1.3中的图所示,支持向量到超平面的距离为d,其他点到超平面的距离大于d。
由此可以得到最大间隔超平面的上下两个超平面:
下图中乘以2倍是为了后面推导,对目标函数没有影响。
因此得到最优化问题:
在对self-attention的学习中,我理解到了为什么Attention机制的核心是加权求和。对self-attention来说,它跟每一个input vector都做attention,因此没有考虑到input sequence的顺序。简单来说,每一个词向量都与其他词向量做内积,计算后的结果丢失了原来文本的顺序信息。即打乱词向量的顺序,得到的结果仍然是相同的。对于此类问题,会涉及到Transformer的位置编码,我会后面的时间去学习Transformer。在对SVM的学习中,我学习了一点关于数学方面的知识,在下周会学习如对偶问题等关于SVM的数学知识。