【技术实现步骤摘要】
一种融合时序信息的自注意力序列推荐方法
[0001]本专利技术涉及序列推荐领域,具体涉及一种融合时序信息的自注意力序列推荐方法。
技术介绍
[0002]现有的序列推荐方法主要通过常见的序列建模算法(例如马尔科夫链,循环神经网络,自注意力机制模型)对用户历史交互行为序列建模,捕获有效用户行为模式,从而预测用户未来可能交互的物品,但现有的序列建模算法仍存在不足之处:现有序列推荐方法使用根据交互时间戳排序后的交互物品序列作为模型的输入,仅仅考虑了用户历史交互物品之间的基本的先后顺序,没有考虑用户每次交互的具体时间带来的影响,复杂的用户行为模式难以得到深入有效的建模。
技术实现思路
[0003]针对现有方法无法利用时序信息对用户历史交互行为进行建模的缺点,本专利技术提出了一种融合“时序信息”的基于自注意力机制的序列推荐方法,可用于常见的序列推荐场景(短视频推荐,电商平台,电影音乐推荐等)。本专利技术采用了一种独特的编码器
‑
解码器结构方法,使用编码器处理交互时间戳序列,使用解码器处理交互商品序列,从而融合每次交互行为的具体时序信息以捕获更为细粒度的用户行为模式。同时针对时序信息具有连续性的特点,使用了一种基于窗函数的编码方法,可以更好地将时间戳转换成嵌入编码。再结合自注意力机制,剔除时序信息和物品信息中的冗余部分,利用其中的关键信息,对用户近期交互行为做出更精确的预测,克服现有方法没有考虑具体时序信息的缺陷,提高了推荐效果。
[0004]本专利技术提供了一种融合时序信息的自注意力序列 ...
【技术保护点】
【技术特征摘要】
1.一种融合时序信息的自注意力序列推荐方法,其特征在于,该方法包括以下步骤:步骤S1)数据预处理:获取数据集,并将数据集中的用户历史交互记录转换成长度为L的历史交互序列其中t
i
是第i次交互的具体时间戳,s
i
是每次第i次交互的商品编号,(t
i
,s
i
)表示第i次交互的时间商品二元组,i=1,2,..,L;步骤S2)构建融合时序信息的自注意力序列推荐模型,并根据获取的数据集得到训练集,采用所述训练集对融合时序信息的自注意力序列推荐模型进行训练,得到训练好的融合时序信息的自注意力序列推荐模型;步骤S3)获取长度为L的用户历史交互序列,输入通过步骤S2)得到的训练好的融合时序信息的自注意力序列推荐模型中,然后根据融合时序信息的自注意力序列推荐模型中的预测层给出用户对每个商品的偏好分数,将这些偏好分数从高到低排序,偏好分数越高,其对应的商品被推荐的可能性越大,从而得到推荐给用户的交互商品序列集合;其中,所述融合时序信息的自注意力序列推荐模型的主要结构分为时间戳编码模块、商品编码模块、编码器、解码器、预测层五个部分;所述时间戳编码模块将用户历史交互时间戳转换时序信息嵌入编码;所述商品编码模块将用户历史交互商品编号转换成商品嵌入编码;依次通过所述编码器中的残差注意力模块和前馈层,深入挖掘来自所述时间戳编码模块的时序信息嵌入编码之间的潜在关系,得到商品序列的时序信息;所述解码器首先使用第一残差注意力模块处理来自商品编码模块的商品嵌入编码,捕获商品序列中各个商品的相互关系,得到商品序列信息,接着使用第二残差注意力模块和前馈层,融合来自于所述编码器的商品序列的时序信息和第一残差注意力模块得到的商品序列信息,得到融合信息;最后将得到的融合信息送入所述预测层,预测层综合商品序列信息和商品序列的时序信息对用户近期可能的交互商品做出预测。2.根据权利要求1所述的融合时序信息的自注意力序列推荐方法,其特征在于,所述步骤S1)中将数据集中的用户历史交互记录转换成长度为L的历史交互序列的具体方法为:对于所述数据集中长度超过L的序列,选取其最近L次时间商品二元组;对于长度小于L的序列,在其最左边填充若干个填充时间戳和填充商品编号,直到它的长度达到L,其中,所述填充时间戳和填充商品编号均采用0表示。3.根据权利要求2所述的融合时序信息的自注意力序列推荐方法,其特征在于,所述融合时序信息的自注意力序列推荐模型中各部分的具体结构如下:一、时间戳编码模块:该模块的输入是提前经过预处理,长度为L的用户历史交互时间戳序列T=[t1,t2,...,t
L
],采用一种基于窗函数的编码方法,利用窗函数计算编码权重取值,具体过程如下:1)对于时间来说,它们之间的相对大小比它们的绝对大小更有意义,因此将用户历史交互时间戳序列[t1,t2,...,t
L
]转换成相对时间间隔序列:T
r
=[0,t2‑
t1,...,t
L
‑
t1]2)根据最大时间间隔将相对时间间隔序列归一化得到归一化的相对时间间隔序列,R
U
是所有用户的相对时间间隔集合,是将最大时间间隔缩放到一个合理范围
的超参数,经过归一化的相对时间间隔序列T
s
通过下面的公式计算得到,其中是第i次交互时间戳转换成的归一化相对时间间隔:这里的k是分桶数目,也就是将相对时间间隔归一化到[0,k];3)定义一个可学习的时间戳编码矩阵这里的d是每个编码向量的维度大小,e
j
表示第j个编码向量,j=1,2,...,k;4)根据窗函数计算编码权重矩阵w∈R
L
×
k
,矩阵w中的元素代表归一化相对时间间隔对第j个编码向量的权重取值:对第j个编码向量的权重取值:对第j个编码向量的权重取值:其中,w
′
表示窗函数的窗口大小,为一个常数;5)根据定义的时间戳编码矩阵M
T
和计算得到的权重矩阵w,计算每个归一化相对时间间隔的嵌入编码,从而得到相对时间间隔的嵌入编码矩阵E
T
:二、商品编码模块:该模块的输入是用户历史交互商品编号序列[s1,s2,...,s
L
],首先定义一个可学习的商品编码矩阵M∈R
N
×
d
,N是商品总数量,d为每个商品编码向量的维度大小,和时间戳编码矩阵中的编码向量的维度大小相同;然后根据商品编号s
i
从M中检索到物品i的编码得到物品编码矩阵E
I
∈R
L
×
d
,具体检索操作为:,具体检索操作为:为M中第s
i
个编码向量,为了引入商品的先后顺序,这里加入位置编码P∈R
L
×
d
来记录商品在历史交互序列中的位置信息,得到加入位置编码的商品嵌入编码:
这里的P
i
代表用户历史交互商品编号序列中第i个位置的位置编码;三、编码器和解码器:1)残差注意力模块:所述时序信息嵌入编码和所述商品嵌入编码分别送入编码器和解码器进行进一步处理,在编码器和解码器中都使用了残差注意力模块,因此下面首先介绍残差注意力模块,残差注意力模块的输入是Q,K,V三个矩阵,具体过程如下:a.放缩点乘注意力SDPA如下定义:这里的d是维度大小,和前面的d均相同,softmax(*)表示归一化指数函数;b.考虑序列因果性:序列推荐本质上是一个序列预测任务,预测第t+1个商品的时候只能参考前t次交互行为,因此需要修改注意力的形式,禁止Q
i
′
和K
j
′
之间的联系以避免信息泄露,其中,Q
i
′
表示矩阵Q的第i
′
行,K
j
′
表示矩阵K的第j
′
行,j
′
>i
′
;c.多头机制:多头...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。