[发明专利]一种基于多任务学习的序列化推荐方法有效
申请号: | 202111406256.9 | 申请日: | 2021-11-24 |
公开(公告)号: | CN114168845B | 公开(公告)日: | 2023-08-15 |
发明(设计)人: | 惠孛;田玲;郑旭;张栗粽;罗光春;杨钦程;梁逸寒 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F16/9535 | 分类号: | G06F16/9535;G06N3/0464;G06N3/0442;G06N3/045 |
代理公司: | 成都希盛知识产权代理有限公司 51226 | 代理人: | 陈泽斌 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 任务 学习 序列 推荐 方法 | ||
1.一种基于多任务学习的序列化推荐方法,其特征在于,包括以下步骤:
S1、计算用户的意图向量表征信息,并与用户上下文信息、用户画像信息的Embedding进行特征拼接输入至双塔模型的用户侧,获取物品Embedding矩阵并输入至双塔模型的物品侧,通过双塔模型生成初步的物品推荐列表;
S2、采用基于卷积神经网络CNN和长短期记忆网络LSTM捕捉用户历史行为轨迹,并利用注意力机制从用户历史行为轨迹中捕捉与当前意图最相关的信息,结合步骤S1中获取的初步的物品推荐列表中的物品信息,通过滑动推理计算生成细粒度的有序推荐列表;
S3、以细粒度的有序推荐列表作为输入,通过预训练的多任务学习神经网络模型调整序列的全局有序性,生成最终的推荐列表;
步骤S3中,多任务学习神经网络模型利用Transformer算法对序列信息进行建模,并通过构建额外的辅助任务来学习序列的有序性,其训练过程包括:
S31、对推荐列表中的各物品的特征进行Embedding处理:
Einput=Embedding(Xinput)
其中,Xinput=[i1,i2,i3,i4,...,iN],iN为推荐列表中的第N个物品的特征,依次输入序列直到长度L;
Einput为物品序列Embedding向量;
S32、对物品序列Embedding向量Einput通过Transformer模型计算点击率任务:
首先,将Einput复制为Q,K,V三个相同的向量,然后分别通过h个不同的线性变换,公式为:
其中分别为三个随机初始化的权重矩阵;d为物品对应的表征向量的维度,R为实数域;
接着,通过多头注意力机制进行处理:
Attention_op=Multi_Head(Q,K,V)=Concat(head1,...,headh)·Wo
其中Wo∈Rh×d×d为随机初始化的权重矩阵,d为Embedding向量的维度;
然后,通过两层前向网络计算获得序列中各物品的最终表征:
Final_op=LayerNorm(Attention_op)+Attention_op
Final_op=LayerNorm(Final_op)+Final_op
其中LayerNorm是归一化函数,计算如下:
其中,μ是向量均值,σ是向量方差,∈是扰动值,取e-6;
接着,对序列中各物品的最终表征进行拼接,获得物品表征拼接向量:
Econcat_goods=Concat(Final_op1,Final_op2,...,Final_opN)
最后,将物品表征拼接向量输入多层神经网络中进行计算,获得序列中的物品的用户兴趣排序:
output_layer1=σ(W1Econcat_goods+b1)
output_layer2=σ(W2output_layer1+b2)
其中,W1为第一层神经网络的权重,b1为其偏置,W2为第二层神经网络的权重,b2为其偏置,σ(·)为激活函数,采用sigmoid函数;
并且同时使用交叉熵作为此过程的损失函数,即:
CTR_Loss=-log(output_layer2)
S33、通过IOP任务(Inner Order Prediction)作为辅助任务对步骤S32中的序列中的物品的点击率排序进行重排序:
首先,对基于NegativeSampling(负采样)得到的无序流程进行Embedding处理:
然后,对各个Einput进行拼接,获得正向序列的Embedding表征,并对各个进行拼接,获得负向序列的Embedding表征:
接着,通过一个单层共享权重的神经网络来得到正向序列和负向序列的最终表征:
output_layer+=σ(WiopEconcat_input+biop)
Wiop是IOP任务中神经网络的权重矩阵,biop是IOP任务中神经网络的偏置向量,σ是神经网络的激活函数;
然后计算交叉熵作为损失函数:
IOP_Loss=-(log(output_layer+)+log(1-output_layer-))
S34、计算训练过程的最终损失函数:
将点击率任务的损失函数CTR_Loss与IOP任务的损失函数IOP_Loss相加即得到最终的损失函数:
Final_Loss=CTR_Loss+IOP_Loss
S35、采用Adam算法作为优化算法,基于步骤S34中计算的最终损失函数对步骤S31-步骤S34进行迭代,直至模型收敛,获得训练好的多任务学习神经网络模型。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111406256.9/1.html,转载请声明来源钻瓜专利网。