基于时序感知自注意力和对比学习的商品序列推荐方法
文献发布时间:2024-04-18 19:58:30
技术领域
本发明涉及推荐系统的技术领域,尤其是指一种基于时序感知自注意力和对比学习的商品序列推荐方法。
背景技术
推荐系统根据用户历史信息对用户做出推荐,帮助用户快速找到感兴趣的商品,也给商家带来巨大效益。与传统推荐技术不同,序列推荐能够动态模拟用户-商品的交互并捕捉复杂的依赖关系,更好地建模用户的兴趣。最近,由于Transformer在编码序列中表现强大,也被引入到序列推荐中来,基于Transformer的序列推荐模型利用自注意力网络SAN学习商品间的重要性,更好地建模序列依赖关系,表现出优于其它序列模型的强大性能。
尽管利用SAN的序列推荐方法已经在商品推荐任务中取得了优异的效果,但目前现有的方法大多还存在以下问题:
1、目前的方法大多只模拟了用户-物品交互的时间顺序,没有利用真实的时间信息,这使得建模的序列关系是不完整的;
2、目前的方法大多直接把商品信息与位置信息叠加起来,再通过SAN计算注意力分数,这不仅限制了注意力矩阵的表现力,还会引入噪声,使得建模的序列关系是不准确的;
3、目前的方法大多依赖推荐任务来优化大量参数,受到数据稀疏和噪音问题的困扰,这使得它们很难学习到高质量的用户表征,从而导致次优的商品推荐结果。
以上存在的问题使得现有利用SAN的序列推荐模型无法较好地建模序列依赖,导致较差的商品推荐结果。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提出了一种基于时序感知自注意力和对比学习的商品序列推荐方法,通过引入真实的时间间隔,利用解耦的时序感知多头自注意力来计算注意力矩阵,让模型可以建模更复杂的序列依赖;同时,引入一个对比学习模块,分别利用随机数据级增强和模型级增强构造多对正负样本,将序列推荐任务与对比学习任务结合起来,解决了数据稀疏和噪音问题的困扰,增强对用户偏好的学习,提升推荐的效果。
为实现上述目的,本发明所提供的技术方案为:基于时序感知自注意力和对比学习的商品序列推荐方法,该方法提出了一种基于时序感知自注意力和对比学习的序列推荐模型,该模型由两部分组成,第一部分是基于改进Transformer的序列推荐器,包括嵌入模块、自注意力模块和预测模块,数据经过嵌入模块编码后,由自注意力模块捕获嵌入向量的信息,最后由预测模块给出商品偏好分数,其中改进包括:①在嵌入模块中构造不同信息的嵌入向量,使用一种改进汉明窗函数,将时间间隔转变为嵌入矩阵,引入时间信息同时捕获相同时间间隔依赖;②将自注意力模块中的注意力改造为解耦的时序感知多头自注意力,分别计算不同的注意力矩阵,增强模型的建模能力;第二部分是对比学习模块,该模块使用随机数据级增强和模型级增强构造多对正负样本,进行对比学习任务,辅助训练并提升推荐效果;
该商品序列推荐方法的具体实施包含以下步骤:
1)收集用户真实场景下的历史数据,包括用户ID、商品ID和交互时间戳,对历史数据进行预处理:以用户ID分类,将用户u的数据组织为长度n的用户序列S
2)将训练集送入序列推荐模型中进行训练,使用Adam优化器对模型的损失函数进行迭代优化,直至模型收敛,利用验证集筛选最优模型参数,最后利用测试集评估具有最优参数的模型效果,得到性能最优的基于时序感知自注意力和对比学习的序列推荐模型;
3)获取需要进行商品推荐的用户u历史数据,通过步骤1)中的预处理组织成用户序列S
进一步,在步骤1)中,获取用户在真实交易场景下的历史数据,并进行预处理,包括以下步骤:
1.1)获取用户历史数据,包括用户ID、商品ID和交互时间戳,以用户ID分类,将用户u的交互数据组织为长度n的用户序列S
1.2)将上述时间戳序列t
式中,
式中,T是所有序列的时间间隔集合,
1.3)划分训练集、验证集和测试集,具体操作是:对于用户序列S
进一步,在步骤2)中,基于改进Transformer的序列推荐器和对比学习模块进行推荐任务和对比学习任务的联合训练,将步骤1)划分的训练集送入序列推荐模型中训练,利用Adam优化器对模型的损失函数
式中,
每一训练轮次后,根据预测模块在验证集上的结果保留模型的最优参数,模型收敛后停止训练,利用测试集评估具有最优参数的模型效果,得到一个性能最优的基于时序感知自注意力和对比学习的序列推荐模型。
进一步,所述基于改进Transformer的序列推荐器进行推荐任务的学习,具体操作是:将预处理的数据送入序列推荐器的序列编码器中编码学习,该序列编码器由嵌入模块和自注意力模块组成;利用序列编码器输出的序列向量,根据预测模块预测用户购买的商品,具体结构如下:
一、嵌入模块:通过嵌入模块分别将商品ID、位置及时间间隔序列编码为嵌入向量,并在模型训练中不断更新,具体过程如下:
a、商品嵌入/位置嵌入:首先初始化一个商品嵌入向量矩阵
式中,n为序列长度,x
b、时间间隔嵌入:首先,将时间间隔序列T
式中,T
二、改进自注意力模块:利用解耦的时序感知多头自注意力捕获三个嵌入矩阵的信息后,输入前馈层神经网络,增加模型的非线性;为了缓解梯度消失和过拟合,在每一子层的输出后进行一次LD(·)操作,LD(·)包括残差连接、层归一化和Dropout操作;堆叠L层自注意力模块,得到最后第L层输出H
H
H
式中,H
a、解耦的时序感知多头自注意力:使用解耦的时序感知多头自注意力捕获嵌入信息,增强模型的建模能力,计算公式如下所示:
A
式中,A
b、前馈层神经网络:为了赋予模型更强的非线性能力,应用一个前馈层神经网络,其中包括两个线性变换PFFN、FFN和一个GELU激活,这里采用GELU替换原来的RELU:
FFN(x)=GELU(xW
式中,A
三、预测模块:堆叠了L层自注意力块之后,得到商品、位置和时间间隔的组合表示H
根据预测商品得分的大小,对用户进行推荐;
四、推荐损失:采用对数似然损失函数作为推荐任务损失进而优化模型参数,直至模型收敛;其中对于每个用户u和每个位置t,推荐损失
式中,
进一步,所述对比学习模块进行对比学习任务,利用随机数据级增强和模型级增强构建对比学习任务,辅助推荐任务的训练;随机数据级增强采用裁剪、屏蔽、乱序三种元操作,每一次随机选择一种操作以设定比例构建同一序列的不同视图;所述对比学习模块还使用一种模型级增强来构建不同视图,即通过序列编码器中的两个不同Dropout掩码来构建视图,保留了原序列的语义信息;因此,给定一个批次数量为B的序列,分别经过两次模型级增强和两次数据级增强,最后经过序列编码器得到
式中,
进一步,在步骤3)中,首先,收集需要进行商品推荐的用户u的历史数据,利用步骤1)中的预处理操作,将历史数据组织成用户序列S
本发明与现有技术相比,具有如下优点与有益效果:
1、本发明使用一个嵌入模块,分别构造商品、位置和时间间隔嵌入向量,对于时间间隔特征,使用一种改进汉明窗函数,将时间信息引入模型,并捕获相同时间间隔的关系,使得模型建模的序列关系比较完整。
2、本发明将自注意力模块中原有的注意力改造为解耦的时序感知多头自注意力,分别计算三种嵌入矩阵的注意力分数,增强模型对数据的建模能力,使得建模的序列关系比较准确。
3、本发明使用一个对比学习模块,分别利用随机数据级增强和模型级增强构造多对正负样本,进行对比学习任务,辅助推荐任务的学习,在数据稀疏和噪音影响下,仍能提升推荐的效果。
4、本发明解决了现有基于SAN的序列推荐模型存在的问题,提高了商品推荐的效果,提升用户的体验,为商家带来效益。
附图说明
图1为本发明实施例中基于时序感知自注意力和对比学习的商品序列推荐方法流程图。
图2为本发明实施例中基于时序感知自注意力和对比学习的商品序列推荐方法架构图。
图3为本发明实施例中基于时序感知自注意力和对比学习的商品序列推荐方法的改进自注意力模块的结构示意图。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
如图1所示,本实施例提供了一种基于时序感知自注意力和对比学习的商品序列推荐方法,该方法提出了一种基于时序感知自注意力和对比学习的序列推荐模型,该模型由两部分组成,第一部分是基于改进Transformer的序列推荐器,包括嵌入模块、自注意力模块和预测模块,数据经过嵌入模块编码后,由自注意力模块捕获嵌入向量的信息,最后由预测模块给出商品偏好分数,其中改进包括:①在嵌入模块中构造不同信息的嵌入向量,使用一种改进汉明窗函数,将时间间隔转变为嵌入矩阵,引入时间信息同时捕获相同时间间隔依赖;②将自注意力模块中的注意力改造为解耦的时序感知多头自注意力,分别计算不同的注意力矩阵,增强模型的建模能力;第二部分是对比学习模块,该模块使用随机数据级增强和模型级增强构造多对正负样本,进行对比学习任务,辅助训练并提升推荐效果;其包括以下步骤:
S1)获取用户在真实场景下的历史行为数据,进行预处理,具体过程如下:
S11)获取用户历史数据,包括用户ID、商品ID和交互时间戳,以用户ID分类,将用户u的交互数据组织为长度n的用户序列S
S12)将上述时间戳序列t
其中
T是所有序列的时间间隔集合,
S13)划分训练集、验证集和测试集,具体操作是:对于用户序列S
S2)构建基于时序感知自注意力和对比学习的序列推荐模型,其中,分别构建基于改进Transformer的序列推荐器和对比学习模块进行推荐任务和对比学习任务的联合训练,将步骤1)划分的训练集送入序列推荐模型中训练,利用Adam优化器对模型的损失函数
是推荐任务损失,/>
每一训练轮次后,根据预测模块在验证集上的结果保留模型的最优参数,模型收敛后停止训练,利用测试集评估具有最优参数的模型效果,得到一个性能最优的基于时序感知自注意力和对比学习的序列推荐模型。
其中,构建基于时序感知自注意力和对比学习的序列推荐模型,如图2所示,需要分别构建基于改进Transformer的序列推荐器和对比学习模块。
构建基于改进Transformer的序列推荐器进行推荐任务的学习,具体结构如下:
一、嵌入模块:通过嵌入模块分别将商品ID、位置及时间间隔序列编码为嵌入向量,并在模型训练中不断更新,具体过程如下:
a、商品嵌入/位置嵌入:首先初始化一个商品嵌入向量矩阵
其中n为序列长度,x
b、时间间隔嵌入:首先将时间间隔序列T
T
二、改进自注意力模块:如图3所示,利用解耦的时序感知多头自注意力捕获三个嵌入矩阵的信息后,输入前馈层神经网络,增加模型的非线性;为了缓解梯度消失和过拟合,在每一子层的输出后进行一次LD(·)操作,LD(·)包括残差连接、层归一化和Dropout操作;堆叠L层自注意力模块,得到最后第L层输出H
H
H
其中,H
a、解耦的时序感知多头自注意力:使用解耦的时序感知多头自注意力捕获嵌入信息,增强模型的建模能力,计算公式如下所示:
A
其中,A
b、前馈层神经网络:为了赋予模型更强的非线性能力,应用一个前馈层神经网络,其中包括两个线性变换和一个GELU激活,这里采用GELU替换原来的RELU:
FFN(x)=GELU(xW
其中,A
三、预测模块:堆叠了L层自注意力块之后,得到商品、位置和时间间隔的组合表示H
根据预测商品得分的大小,对用户进行推荐;
四、推荐损失:采用对数似然损失函数作为推荐任务损失进而优化模型参数,直至模型收敛;其中对于每个用户u和每个位置t,推荐损失
其中,
构建对比学习模块进行对比学习任务,利用随机数据级增强和模型级增强构建对比学习任务,辅助推荐任务的训练;随机数据级增强采用裁剪、屏蔽、乱序三种元操作,每一次随机选择一种操作以一定比例构建同一序列的不同视图;对比学习模块还使用一种模型级增强来构建不同视图,即通过序列编码器中的两个不同Dropout掩码来构建视图,这种方法极大保留了原序列的语义信息;因此,给定一个批次数量为B的序列,分别经过两次模型级增强和两次数据级增强,最后经过序列编码器得到
其中,
S3)首先,收集需要进行商品推荐的用户u的历史数据,利用步骤1)中的预处理操作,将历史数据组织成用户序列S
综上所述,在采用以上方法后,本发明为商品序列推荐应用了新的方法,通过在SAN中引入真实的时间间隔,并提出使用解耦的时序感知多头自注意力计算注意力矩阵,解决了基于SAN的序列推荐中存在的建模不完整、不准确的问题,同时引入一个对比学习模块,解决了推荐系统中的数据稀疏和噪音问题,提升了推荐效果,根据用户历史行为序列,为用户推荐出合适的商品,提升用户体验,同时为商家创造价值,具有实际推广价值,值得推广。
以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。
- 基于协同注意力网络和对比学习的序列推荐方法及系统
- 一种基于时序感知图注意力网络的序列推荐算法