CN114168845B - 一种基于多任务学习的序列化推荐方法 - Google Patents

一种基于多任务学习的序列化推荐方法 Download PDF

Info

Publication number
CN114168845B
CN114168845B CN202111406256.9A CN202111406256A CN114168845B CN 114168845 B CN114168845 B CN 114168845B CN 202111406256 A CN202111406256 A CN 202111406256A CN 114168845 B CN114168845 B CN 114168845B
Authority
CN
China
Prior art keywords
user
vector
embedding
item
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111406256.9A
Other languages
English (en)
Other versions
CN114168845A (zh
Inventor
惠孛
田玲
郑旭
张栗粽
罗光春
杨钦程
梁逸寒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202111406256.9A priority Critical patent/CN114168845B/zh
Publication of CN114168845A publication Critical patent/CN114168845A/zh
Application granted granted Critical
Publication of CN114168845B publication Critical patent/CN114168845B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及物品推荐领域,其公开了一种基于多任务学习的序列化推荐方法,提高系统推荐结果的准确率和多样性。该方法包括:S1、计算用户的意图向量表征信息,并与用户上下文信息、用户画像信息的Embedding表征进行特征拼接输入至双塔模型的用户侧,获取物品Embedding矩阵并输入至双塔模型的物品侧,生成初步的物品推荐列表;S2、采用基于卷积神经网络CNN和长短期记忆网络LSTM捕捉用户历史行为轨迹,并利用注意力机制从用户历史行为轨迹中捕捉与当前意图最相关的信息,结合初步物品推荐列表中的物品信息,通过滑动推理计算生成细粒度的有序推荐列表;S3、以细粒度的有序推荐列表作为输入,通过预训练的多任务学习神经网络模型调整序列的全局有序性,生成最终的推荐列表。

Description

一种基于多任务学习的序列化推荐方法
技术领域
本发明涉及物品推荐领域,具体涉及一种基于多任务学习的序列化推荐方法。
背景技术
随着移动互联网时代的到来,信息的规模增长迅猛,广大用户的信息需求在大数据时代得到了极大的满足。但是,这些信息大多数是碎片化的,而且随着硬件的发展,越来越多的人对信息的获取渠道从传统的PC端转向移动端的设备(如:手机)无时无刻的在收集着大量的信息,用户面对这样大量的信息通常会无从下手,从而造成无法对信息进行有效的选择,即存在信息过载问题。因此,如何从大规模数据中挖掘出有价值的信息成为众多企业和研究机构需要思考的问题。
信息过载问题在目前还是非常严重的,针对这个问题,对信息的高效分发可以有效的缓解这个问题。推荐系统可以有效的解决人与物之间的匹配关系,其本质是一个高效的信息分发系统,为每个用户匹配到最适合的信息。推荐系统与搜索引擎不同的是,它侧重于探究用户的隐性反馈,引入个性化信息进行计算,根据计算获得的用户兴趣爱好点,有针对性的对用户进行定向引导,使用户找到其自身需求。
随着信息的种类增加,用户的兴趣越来越多样化,传统的推荐系统已经不能满足用户对信息需求的多样性,很难根据用户的历史行为轨迹为其预估未来可能感兴趣的信息。因此,序列化推荐系统的研究和使用变得日益广泛,它可以从动态的视角对用户进行建模,来拟合用户的兴趣演进趋势,从而准确的预估出用户接下来感兴趣的信息。
随着深度学习时代的到来,已经有许多企业和研究机构提出了基于深度学习的方法并根据用户行为轨迹来建模序列化推荐系统,这些方法相比传统机器学习模型(如逻辑回归,因子分解机算法等)可以获得更好的预测结果。2016年,加利福尼亚大学圣迭戈分校提出了基于马尔可夫链的序列化推荐算法,旨在解决用户行为轨迹信息高阶依赖的问题,开启了序列化推荐算法的大门。2018年,阿里巴巴提出了DIN(Deep InterestNetwork forClick-Through Rate Prediction)模型,其利用用户行为轨迹数据,极大地增强了模型的预估效果,至此,基于用户行为轨迹信息的序列化推荐算法成为了研究的热点。此外,对于推荐系统,用户能提供的信息越丰富,系统为其匹配的信息就会越准确。知识图谱丰富的结构化信息,可以极大的丰富用户的信息,在2012年,Google提出了知识图谱(KnowledgeGraph)项目,并在其搜索页面上更新了这个功能。作为结构化信息的代表,知识图谱以全新的面貌出现在大众视野,也逐渐推动了工业界和学术界对其的研究。推荐系统的多样性、精准性和可解释性可以得到有效提升。
对于深度学习时代的推荐系统,往往采用的是有监督学习方式,面对海量的数据,推荐系统通常以用户是否会点击为目标进行建模,而实际上决定用户点击一个信息的原因是复杂的,如果能对用户点击某个信息的深层次原因进行建模,会更好的刻画用户对信息的兴趣方向。在2020年的NIPS会议上,JeffDean认为多任务学习会是人工智能的下一个里程碑,因此,将多任务学习应用在推荐系统上,也将会对推荐系统有一定的促进作用。
由此可见,如今的推荐系统,既需要对海量的信息进行高效的挖掘,也需要对用户的兴趣发展趋势做出正确的预估和引导。在对推荐系统的研究中,用户兴趣建模、匹配算法优化、推荐结果多样性等诸多问题亟待解决。序列化推荐方法可以捕捉用户与信息的动态变化,而以目标用户的历史行为轨迹为基础,流程化的为其预估未来的兴趣趋势,是最难解决的问题。
发明内容
本发明所要解决的技术问题是:提出一种基于多任务学习的序列化推荐方法,提高系统推荐结果的准确率和多样性。
本发明解决上述技术问题采用的技术方案是:
一种基于多任务学习的序列化推荐方法,包括以下步骤:
S1、计算用户的意图向量表征信息,并与用户上下文信息、用户画像信息的Embedding(表征向量)进行特征拼接输入至双塔模型(Deep Structured Semantic Model)的用户侧,获取物品Embedding矩阵并输入至双塔模型的物品侧,通过双塔模型生成初步的物品推荐列表;
S2、采用基于卷积神经网络CNN和长短期记忆网络LSTM捕捉用户历史行为轨迹,并利用注意力机制从用户历史行为轨迹中捕捉与当前意图最相关的信息,结合步骤S1中获取的初步的物品推荐列表中的物品信息,通过滑动推理计算生成细粒度的有序推荐列表;
S3、以细粒度的有序推荐列表作为输入,通过预训练的多任务学习神经网络模型调整序列的全局有序性,生成最终的推荐列表。
作为进一步优化,步骤S1具体包括:
S11、以用户输入的查询信息作为查询意图,通过BERT模型进行离线计算,获得输出的整个句子[CLS]的向量表征,作为意图向量表征信息:
Equery=BERT(Xquery)
其中,Xquery为用户的查询意图,即用户输入的查询信息;Equery为意图向量表征信息;
S12、对用户上下文信息、用户画像信息进行Embedding转化处理,获得对应的Embedding向量:
Econtext=Embeddingcontext(Xcontext)
Euser=Embeddinguser(Xuser)
其中,Econtext为用户上下文信息的Embedding向量,Euser为用户画像信息的Embedding向量,Xcontext为用户上下文信息,Xuser为用户画像信息;
S13、将意图向量表征信息与用户上下文信息、用户画像信息对应的Embedding向量进行拼接,获得用户表征向量:
Econcat=Concatenate(Equery,Econtext,Euser)
其中,Econcat为用户表征向量;
S14、对物品的特征进行Embedding转化处理,获得对应的Embedding向量:
Eitem=Embeddingitem(Xitem)
其中,Eitem为物品的特征的Embedding向量,Xitem为物品特征;
S15、将所有物品对应的Embedding向量组成物品Embedding矩阵:
其中,为物品Embedding矩阵,EitemM为第M个物品的Embedding向量;M为物品的总数;d为物品对应的Embedding向量的维度;
S16、将步骤S13中获得的用户表征向量与步骤S15中获得的物品Embedding矩阵进行点乘:
从而获得到该用户对每个物品的得分列表排序前N个物品即可生成初步的物品推荐列表,所述N≤M。
作为进一步优化,步骤S2具体包括:
S21、将用户第t次行为的输入记为Xtarget_item;将用户前t-1次行为的输入记为 作为用户行为轨迹信息;
首先,对用户第t次行为的输入和前t-1次行为的输入均进行Embedding转化处理,获得对应的Embedding向量:
Etarget_item=Embeddingitem(Xtarget_item)
Esequence=Embeddingitem(Xsequence)
S22、对用户行为轨迹信息Embedding向量Esequence分别通过1×1,3×3,5×5的一维卷积神经网络CNN进行计算:
Eseq_1_1=Conv1×1(Esequence)
Eseq_3_3=Conv3×3(Esequence)
Eseq_5_5=Conv5×5(Esequence)
S23、对分别通过1×1,3×3,5×5一维卷积神经网络后的用户行为轨迹信息Embedding向量Eseq_1_1,Eseq_3_3,Eseq_5_5通过基于注意力机制的Activation层进行处理:
以Etarget_item作为query,以Eseq_1_1,Eseq_3_3,Eseq_5_5作为key,分别记为key1,key2,key3;对key1,key2,key3分别与query拼接后输入Activation层,Activation层的权重采用共享方式,拼接获得的输入向量分别为:
Attention1×1=Concat(query,key1,query×key1,query·key1)
Attention3×3=Concat(query,key2,query×key2,query·key2)
Attention5×5=Concat(query,key3,query×key3,query·key3)
通过Activation层计算各个拼接的输入向量的输出:
其中,
S24、将U1×1,U3×3和U5×5分别作为长短期记忆网络LSTM的输入,计算获得用户行为轨迹的最终表征向量:
θ是神经网络的偏置;
S25、对用户行为轨迹的最终表征向量与上下文信息的Embedding向量以及用户第t次行为的输入Xtarget_item进行拼接,获得用户的兴趣迁移向量:
S26、基于用户的兴趣迁移向量,通过两层神经网络计算预测的物品:
output_layer1=σ(W1Econcat_int+b1)
output_layer2=σ(W2output_layer1+b2)
其中,output_layer1为第一层神经网络的输出,output_layer2为第二层神经网络的输出,W1为第一层神经网络的权重,b1为其偏置,W2为第二层神经网络的权重,b2为其偏置,σ(·)为激活函数;
优化器使用Adam算法代替常规的随机梯度下降算法,为了使得模型能够快速收敛,设置固定的学习率为1e-5,模型采用二分类,损失函数使用交叉熵,即:
GOODS_Loss=-log(output_layer2)
在进行预测时,将初步物品推荐列表中的N个物品分别依次输入序列推理模型,经过模型滑动推理处理获得N×L的更细粒度的有序推荐列表:当将初步物品推荐列表中的第一个物品的表征向量作为当前输入,通过模型预测出下一个物品,将预测出的此物品的表征向量与当前输入进行拼接,然后再次输入模型,预测得到下一个物品,以此循环预测直至达到预先设定的序列长度L,完成针对初步物品推荐列表中的第一个物品滑动推理处理;然后将初步物品推荐列表中的第二个物品的表征向量作为当前输入,进入第二个物品滑动推理处理过程,以此类推,直至完成对初步物品推荐列表中的N个物品的滑动推理,获得大小为N×L的更细粒度的有序推荐列表。
作为进一步优化,步骤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进行迭代,直至模型收敛,获得训练好的多任务学习神经网络模型。
本发明的有益效果是:
(1)提升预估结果的准确性和多样性:
本发明采用了双塔模型作为基础的意图识别模型,利用BERT模型来更好的刻画用户意图,提升预估结果的准确度和多样性。
(2)能够计算出具有依赖性的组合结果:
利用LSTM算法来解决序列高阶信息的长期依赖,通过滑动CNN算法来建模序列的局部依赖,并通过Attention算法来捕捉与当前意图最相关的信息,通过滑动推理,在历史行为轨迹的基础上为用户推荐一组未来感兴趣的信息集合。因此,本发明能有效的刻画用户的行为轨迹信息,并通过滑动推理提升线上的计算速度。
(3)能够优化推荐序列的全局有序性:
本发明利用IOP辅助任务来对排序阶段产出的结果重新排序,该算法能有效的改善最终预估的准确度。
附图说明
图1为本发明中的基于多任务学习的序列化推荐原理图;
图2为基础双塔模型的示意图;
图3为本发明中的嵌入意图表征的双塔模型的示意图;
图4为本发明中基于双塔模型的匹配流程示意图;
图5为本发明提出的基于Attention与卷积神经网络的序列化推荐模型;
图6为本发明中Activation Unit的结构图;
图7为本发明中的滑动推理算法原理图;
图8为本发明提出的基于多任务学习的重排序算法原理图。
具体实施方式
本发明旨在提出一种基于多任务学习的序列化推荐方法,提高系统推荐结果的准确率和多样性。其原理如图1所示,包括三个阶段:召回阶段、排序阶段和重排序阶段;
在召回阶段,采用了双塔模型作为基础的意图识别模型,并利用BERT模型来更好的刻画用户意图,从而提升预估结果的准确度并在一定程度增加预估结果的多样性,此阶段能够获得粗粒度topN推荐列表;
在排序阶段,我们利用LSTM算法来解决序列高阶信息的长期依赖,利用滑动CNN算法来建模序列的局部依赖,利用Attention算法来捕捉与当前意图最相关的信息,通过滑动推理算法,在历史行为轨迹的基础上为用户推荐一组未来感兴趣的信息集合,此阶段能够获得N条有序推荐列表;
在重排序阶段,我们通过Transformer算法和辅助任务在保障预估准确度的前提下调整序列的全局有序性,从而有效的改善最终预估的准确度,生成最终的推荐列表。
在具体实现上,本发明中的基于多任务学习的序列化推荐方法,包括以下步骤:
S1、计算用户的意图向量表征信息,并与用户上下文信息、用户画像信息的Embedding表征进行特征拼接输入至双塔模型的用户侧,获取物品Embedding矩阵并输入至双塔模型的物品侧,通过双塔模型生成初步的物品推荐列表;
本步骤中,采用双塔模型作为基础,该模型的本质是以牺牲准确度的前提下,来提升它的预估速度,是因为在工业界,通常会离线计算每个塔的最上层表征Embedding,然后将这些表征Embedding存入线上的数据库中,在实际用户访问时,只需要查找其对应的Embedding,然后将用户对应的Embedding与信息对应的Embedding进行度量计算即可。
基础的双塔模型结构如图2所示,其中,上下文信息的输入记为Xcontext,由于使用的是电商数据集,因此上下文信息包含了时间、地点等特征,人物画像的输入记为Xuser,包括用户的年龄、性别等特征,物品的输入记为Xitem
双塔模型的训练过程如下:
由于在真实世界中,用户产生的行为数据通常是高维且稀疏的,如果不对这些行为数据做处理,会导致神经网络模型的学习效果变差,而且容易导致过拟合现象。因此,对每一维特征都做Embedding处理,将其由高维稀疏的数据转换为低维稠密的向量,具体公式如下:
Econtext=Embeddingcontext(Xcontext)
Euser=Embeddinguser(Xuser)
Eitem=Embeddingitem(Xitem)
其中,对于上下文信息Econtext∈Rd。对于用户信息/>Euser∈Rd。对于物品信息,/> Eitem∈Rd。d为Embedding的维度,为了降低参数量,可设置为d=8。D1,D2,D3是上下文信息向量,用户信息向量,物品信息向量三者的维度,/>是符合D1,D2,D3维度的定义域(实数定义域),/>是不同维度的矩阵,目的是把上下文信息向量,用户信息向量,物品信息向量三者转化为相同维度(d)的Embedding向量。
这里的Embedding矩阵采用共享权重技术,目的是为了增强模型的泛化能力从而降低过拟合的风险,因此,在得到上下文信息和人物画像的Embedding向量后,对其进行拼接,具体公式如下:
Econcat=Concatenate(Econtext,Euser)
向量拼接是神经网络模型结构常用的聚合操作,它可以将多个不同维度的向量拼接起来。
之后,将拼接过的向量输入多层神经网络中进行计算,由于是在搜索推荐场景下,多层的神经网络会导致模型学到无用信息,也会导致过拟合,因此,这里使用两层神经网络,具体公式如下:
output_layer1=(W1Econcat+b1)
output_layer2=(W2output_layer1+b2)
其中,W1为第一层神经网络的权重,b1为其偏置,神经元个数为128,W2为第二层神经网络的权重,b2为其偏置,神经元个数为64。
双塔模型的最重要的环节便是如何将两个塔的输出表征进行结合,本发明使用点乘作为最终的输出结果,具体公式如下:
Final_output=Eitem·output_layer2
通常,在训练时,使用sigmoid作为神经网络的激活函数,优化器使用Adam算法代替常规的随机梯度下降算法,为了使得模型能够快速收敛,设置固定的学习率为1e-5
由前述可知,基础的双塔模型只使用了用户的历史行为信息,这样只能捕捉到用户过去喜欢的物品信息,却不能知道现在用户的兴趣是否发生变化。针对此问题,本发明为用户提供主动输入查询信息的功能,像搜索引擎一样,可以将用户的Query意图融入进双塔模型,这样不仅可以利用到用户的历史行为信息,还可以利用到用户主动输入的意图信息,即,本发明中采用的双塔模型嵌入了用户意图表征,结构如图3所示。
其中,将用户输入的Query作为意图,为了便于样本的结构化处理,本发明对用户的输入做了限制,用户只能选择全量物品库中已有的物品信息进行输入,对于输入的信息进行文本化处理,然后将其输入至BERT模型,得到用户意图的向量表征。
需要说明的是,BERT的输出向量有两种,一种是每个词语的Embedding表征,另一个是整个句子[CLS]的向量表征。对此,由于本发明采用的是Google开源的BERT预训练模型,而它的每个单词的Embedding维度是768维,这对于召回阶段是过大的,如果将多个词语的Embedding拼接起来,模型的计算时间会大幅度提升,因此,采用整个句子[CLS]的向量表征作为用户意图的表征,具体的表达方式如下:
Equery=BERT(Xquery)
在预测阶段,首先将意图向量表征信息与用户上下文信息、用户画像信息对应的Embedding向量进行拼接,获得用户表征向量,作为左塔(用户侧塔)的输入:
Econcat=Concatenate(Equery,Econtext,Euser)
同理,对物品的特征进行Embedding转化处理,获得对应的Embedding向量:
Eitem=Embeddingitem(Xitem)
其中,Eitem为物品的特征的Embedding向量,Xitem为物品特征;
然后将所有物品对应的Embedding向量组成物品Embedding矩阵,作为右塔(物品侧塔)的输入:
其中,为物品Embedding矩阵,EitemM为第M个物品的Embedding向量;M为物品的总数;d为物品对应的Embedding向量的维度;
最后,将获得的用户表征向量Econcat与物品Embedding矩阵进行点乘:
从而获得到该用户对每个物品的得分列表排序前N个物品即可生成初步的物品推荐列表。
S2、采用基于卷积神经网络CNN和长短期记忆网络LSTM捕捉用户历史行为轨迹,并利用注意力机制从用户历史行为轨迹中捕捉与当前意图最相关的信息,结合步骤S1中获取的初步的物品推荐列表中的物品信息,通过滑动推理计算生成细粒度的有序推荐列表:
本步骤中,选择LSTM算法来对用户的行为轨迹信息进行建模,采用滑动CNN算法来建模序列的局部依赖。CNN算法常用在图像处理领域,该算法可以捕捉图片的局部特征,本发明利用不同步长的一维CNN算法来捕捉用户行为轨迹的多维信息,并采用Attention算法来捕捉与当前意图最相关的信息,在历史行为轨迹的基础上通过滑动推理为用户推荐一组未来感兴趣的信息集合。整体的模型结构如图5所示。
其中,Embedding Layer为嵌入表征层,前t-1次行为与第t次行为的Embedding矩阵共享权重。MLP为多层感知机层,即多层神经网络。上下文信息的输入记为Xcontext,上下文信息包含了时间、地点、用户的年龄、性别等特征,第t次行为的输入记为Xtarget_item,前t-1次行为的输入记为
模型的训练过程如下:
为了提高模型学习效果,避免过拟合,首先对每一维特征都做Embedding处理,将其由高维稀疏的数据转换为低维稠密的向量,具体公式如下:
Econtext=Embeddingcontext(Xcontext)
Etarget_item=Embeddingitem(Xtarget_item)
Esequence=Embeddingitem(Xsequence)
其中,对于上下文信息,Econtext∈Rd。对于物品信息,/>Etarget_item∈Rd。对于用户行为轨迹信息,/>Eitem∈R(t-1)xd
这里的物品Embedding矩阵Etarget_item采用共享权重技术,目的是为了增强模型的泛化能力从而降低过拟合的风险。
接下来,对用户行为轨迹信息Embedding向量Esequence分别通过1×1,3×3,5×5的一维卷积神经网络:
Eseq_1_1=Conv1×1(Esequence)
Eseq_3_3=Conv3×3(Esequence)
Eseq_5_5=Conv5×5(Esequence)
然后,对分别通过1×1,3×3,5×5一维卷积神经网络后的户行为轨迹信息Embedding向量Eseq_1_1,Eseq_3_3,Eseq_5_5通过ActivationUnit(激活单元)进行处理,将这三个向量均转化为定长向量,Activation是使用基于Attention的网络结构进行设计的,它不同于传统Attention机制,该结构会对输入进行四种不同维度的拼接,这四种输入分别为:
输入的轨迹信息Embedding向量Eseq_1_1,Eseq_3_3,Eseq_5_5
输入的目标物品Embedding向量Etarget_item
轨迹信息Embedding向量与目标物品Embedding向量的点乘;
轨迹信息Embedding向量与目标物品Embedding向量的叉乘;
具体的ActivationUnit的设计结构如图6所示;图中的query为Etarget_item,key依次为Eseq_1_1,Eseq_3_3,Eseq_5_5,记为key1,key2,key3
key1,key2,key3将分别与Etarget_item拼接输入ActivationUnit,ActivationUnit的权重采用共享的方式,query与key的拼接方式为:
Attention_input1×1=Concat(query,key1,query×key1,query·key1)
Attention_input3×3=Concat(query,key2,query×key2,query·key2)
Attention_input5×5=Concat(query,key3,query×key3,query·key3)
采取这样的拼接方式是为了让模型能够充分的学习用户行为轨迹与目标行为之间的交互信息。
ActivationUnit本质是Attention算法:
接下来,依次让U1×1,U3×3和U5×5通过LSTM算法,其中LSTM的每个cell神经元个数设置为32,获得用户行为轨迹最终表征:
/>
向量拼接是神经网络模型结构常用的聚合操作,它可以将多个不同维的向量拼接起来:
将拼接过的向量输入多层神经网络中进行计算,这里使用两层神经网络,具体公式如下:
output_layer1=σ(W1Econcat+b1)
output_layer2=σ(W2output_layer1+b2)
其中,W1为第一层神经网络的权重,b1为其偏置,神经元个数设置为64,W2为第二层神经网络的权重,b2为其偏置,神经元个数设置为32,σ(·)为激活函数,本发明使用sigmoid作为神经网络的激活函数。
模型采用二分类,损失函数使用交叉熵,优化器使用Adam算法代替常规的随机梯度下降算法,为了使得模型能够快速收敛,设置固定的学习率为1e-5。这样,如果一个物品被用户点击过,则说明用户对该物品是有兴趣的。
在采用模型进行预测时,该模型需要为每个用户形成一条序列,因此本发明提出了滑动推理算法,可以依次为每个用户推演出一条有序的序列。如图7所示,将由召回阶段得到的与用户最相关的N的物品,依次输入训练好的序列推理模型,例如,当物品1输入进序列推理模型,模型为其预估出下一个物品a,接着将物品1,物品a拼接起来再次输入序列推理模型,模型为其预估出下一个物品b,算法停止条件为预先设定的序列长度L,达到长度L即停止。
S3、以细粒度的有序推荐列表作为输入,通过预训练的多任务学习神经网络模型调整序列的全局有序性,生成最终的推荐列表:
本步骤选择Transformer算法来对序列信息进行建模。并通过构建额外的辅助任务来学习序列的有序性,即为IOP(Inner OrderPrediction)任务,整体的模型结构如图8所示。
其中,模型的输入为上一阶段推理出的长度为N的序列,记为Xinput=[i1,i2,i3,i4,...,iN]。
模型的训练过程如下:
首先,为了提高模型学习效果,避免过拟合,首先对每一维特征都做Embedding处理,将其由高维稀疏的数据转换为低维稠密的向量,具体公式如下:
Einput=Embedding(Xinput)
其中,对于序列信息,Xinput∈RD,Embedding∈RDxd,Einput∈Rd。这里的物品Embedding矩阵采用共享权重技术,目的是为了增强模型的泛化能力从而降低过拟合的风险。
接下来,对序列Embedding向量Einput通过Transformer模型计算点击率任务,将Einput复制为Q,K,V三个相同的向量,然后分别通过h个不同的线性变换,考虑到模型的计算速度,这里h=2,具体的公式为:
/>
其中,分别为三个随机初始化的权重矩阵,接下来,通过多头注意力机制Multi-HeadSelf-Attention进行处理:
Attention_op=Multi_Head(Q,K,V)=Concat(head1,...,headh)·Wo
其中,Wo∈Rh×d×d为随机初始化的权重矩阵,d为Embedding矩阵的维度,为了降低参数量,可以设置为8。
然后通过Position-wise Feed-ForwardNetworks(前向网络)得到序列最终的表征:
Final_op=LayerNorm(Attention_op)+Attention_op
Final_op=LayerNorm(Final_op)+Final_op
其中LayerNorm是归一化函数,计算如下:
其中,μ是向量均值,σ是向量方差,∈是扰动值,通常为e-6
向量拼接是神经网络模型结构常用的聚合操作,它可以将多个不同维的向量拼接起来:
Econcat=Concat(Final_op1,Final_op2,...,Final_opN)
将拼接过的向量输入多层神经网络中进行计算,这里使用两层神经网络,具体公式如下:
output_layer1=σ(W1Econcat+b1)
output_layer2=σ(W2output_layer1+b2)
其中,W1为第一层神经网络的权重,b1为其偏置,W2为第二层神经网络的权重,b2为其偏置。σ(·)为激活函数,该算法使用sigmoid作为神经网络的激活函数。
在训练过程中,辅助任务IOP用来调整序列的全局有序性:
首先,对基于NegativeSampling(负采样)得到的无序序列进行Embedding处理:
然后分别对各个Einput进行拼接,获得正序列Embedding表征;并对各个进行拼接,获得负序列Embedding表征:
在得到正负序列的Embedding表征后,通过一个单层共享权重的神经网络来得到最终的表征:
output_layer+=σ(WiopEconcat_input+biop)
/>
采用交叉熵作为损失函数:
IOP_Loss=-(log(output_layer+)+log(1-output_layer-))
最终将点击率任务的损失函数CTR_Loss与IOP任务的损失函数IOP_Loss相加即得到最终的损失函数,作为模型的损失函数:
Final_Loss=CTR_Loss+IOP_Loss
模型训练采用Adam算法作为优化算法,基于计算的最终损失函数进行迭代,直至模型收敛,获得训练好的多任务学习神经网络模型。
在预测时,将排序阶段生成的细粒度的序列输入至训练好的多任务学习神经网络模型,即可获得最终的经过重排序的推荐序列。

Claims (3)

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进行迭代,直至模型收敛,获得训练好的多任务学习神经网络模型。
2.如权利要求1所述的一种基于多任务学习的序列化推荐方法,其特征在于,
步骤S1具体包括:
S11、以用户输入的查询信息作为查询意图,通过BERT模型进行离线计算,获得输出的整个句子[CLS]的向量表征,作为意图向量表征信息:
Equery=BERT(Xquery)
其中,Xquery为用户的查询意图,即用户输入的查询信息;Equery为意图向量表征信息;
S12、对用户上下文信息、用户画像信息进行Embedding转化处理,获得对应的Embedding向量:
Econtext=Embeddingcontext(Xcontext)
Euser=Embeddinguser(Xuser)
其中,Econtext为用户上下文信息的Embedding向量,Euser为用户画像信息的Embedding向量,Xcontext为用户上下文信息,Xuser为用户画像信息;
S13、将意图向量表征信息与用户上下文信息、用户画像信息对应的Embedding向量进行拼接,获得用户表征向量:
Econcat=Concatenate(Equert,Econtext,Euser)
其中,Econcat为用户表征向量;
S14、对物品的特征进行Embedding转化处理,获得对应的Embedding向量:
Eitem=Embeddingitem(Xitem)
其中,Eitem为物品的特征的Embedding向量,Xitem为物品特征;
S15、将所有物品对应的Embedding向量组成物品Embedding矩阵:
其中,为物品Embedding矩阵,EitemM为第M个物品的Embedding向量;M为物品的总数;d为物品对应的Embedding向量的维度;
S16、将步骤S13中获得的用户表征向量与步骤S15中获得的物品Embedding矩阵进行点乘:
从而获得到该用户对每个物品的得分列表排序前N个物品即可生成初步的物品推荐列表,所述N≤M。
3.如权利要求2所述的一种基于多任务学习的序列化推荐方法,其特征在于,
步骤S2具体包括:
S21、将用户第t次行为的输入记为Xtarget_item;将用户前t-1次行为的输入记为 作为用户行为轨迹信息;
首先,对用户第t次行为的输入和前t-1次行为的输入均进行Embedding转化处理,获得对应的Embedding向量:
Etarget_item=Embeddingitem(Xtarget_item)
Esequence=Embeddingitem(Xsequence)
S22、对用户行为轨迹信息Embedding向量Esequence分别通过1×1,3×3,5×5的一维卷积神经网络CNN进行计算:
Eseq_1_1=Conv1×1(Esequence)
Eseq_3_3=Conv3×3(Esequence)
Eseq_5_5=Conv5×5(Esequence)
S23、对分别通过1×1,3×3,5×5一维卷积神经网络后的用户行为轨迹信息Embedding向量Eseq_1_1,Eseq_5_3,Eseq_5_5通过基于注意力机制的Activation层进行处理:
以Etarget_item作为query,以Eseq_1_1,Eseq_3_3,Eseq_5_5作为key,分别记为key1,key2,key3;对key1,key2,key3分别与query拼接后输入Activation层,Activation层的权重采用共享方式,拼接获得的输入向量分别为:
Attention1×1=Concat(query,key1,query×key1,query·key1)
Attention3×3=Concat(query,key2,query×key2,query·key2)
Attention5×5=Concat(query,key3,query×key3,query·key3)
通过Activation层计算各个拼接的输入向量的输出:
其中,
S24、将U1×1,U3×3和U5×5分别作为长短期记忆网络LSTM的输入,计算获得用户行为轨迹的最终表征向量:
θ是神经网络的偏置;
S25、对用户行为轨迹的最终表征向量与上下文信息的Embedding向量以及用户第t次行为的输入Xtarget_item进行拼接,获得用户的兴趣迁移向量:
S26、基于用户的兴趣迁移向量,通过两层神经网络计算预测的物品:
output_layer1=σ(W1Econcat_int+b1)
output_layer2=σ(W2output_layer1+b2)
其中,output_layer1为第一层神经网络的输出,output_layer2为第二层神经网络的输出,W1为第一层神经网络的权重,b1为其偏置,W2为第二层神经网络的权重,b2为其偏置,σ(·)为激活函数;
神经网络优化使用Adam算法,设置固定的学习率为1e-5,模型采用二分类,损失函数使用交叉熵,即:
GOODS_Loss=-log(output_layer2)
在进行预测时,将初步物品推荐列表中的N个物品分别依次输入序列推理模型,经过模型滑动推理处理获得N×L的更细粒度的有序推荐列表:当将初步物品推荐列表中的第一个物品的表征向量作为当前输入,通过模型预测出下一个物品,将预测出的此物品的表征向量与当前输入进行拼接,然后再次输入模型,预测得到下一个物品,以此循环预测直至达到预先设定的序列长度L,完成针对初步物品推荐列表中的第一个物品滑动推理处理;然后将初步物品推荐列表中的第二个物品的表征向量作为当前输入,进入第二个物品滑动推理处理过程,以此类推,直至完成对初步物品推荐列表中的N个物品的滑动推理,获得大小为N×L的更细粒度的有序推荐列表。
CN202111406256.9A 2021-11-24 2021-11-24 一种基于多任务学习的序列化推荐方法 Active CN114168845B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111406256.9A CN114168845B (zh) 2021-11-24 2021-11-24 一种基于多任务学习的序列化推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111406256.9A CN114168845B (zh) 2021-11-24 2021-11-24 一种基于多任务学习的序列化推荐方法

Publications (2)

Publication Number Publication Date
CN114168845A CN114168845A (zh) 2022-03-11
CN114168845B true CN114168845B (zh) 2023-08-15

Family

ID=80480756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111406256.9A Active CN114168845B (zh) 2021-11-24 2021-11-24 一种基于多任务学习的序列化推荐方法

Country Status (1)

Country Link
CN (1) CN114168845B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114693397B (zh) * 2022-03-16 2023-04-28 电子科技大学 一种基于注意力神经网络的多视角多模态商品推荐方法
CN114791983B (zh) * 2022-04-13 2023-04-07 湖北工业大学 基于时序物品相似度的序列推荐方法
CN114842681A (zh) * 2022-07-04 2022-08-02 中国电子科技集团公司第二十八研究所 一种基于多头注意力机制的机场场面航迹预测方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109885756A (zh) * 2018-12-18 2019-06-14 湖南大学 基于cnn和rnn的序列化推荐方法
CN109960759A (zh) * 2019-03-22 2019-07-02 中山大学 基于深度神经网络的推荐系统点击率预测方法
CN110717098A (zh) * 2019-09-20 2020-01-21 中国科学院自动化研究所 基于元路径的上下文感知用户建模方法、序列推荐方法
CN111753209A (zh) * 2020-07-02 2020-10-09 南京工业大学 一种基于改进时序卷积网络的序列推荐列表生成方法
CN112035745A (zh) * 2020-09-01 2020-12-04 重庆大学 一种基于对抗学习与双向长短期记忆网络的推荐算法
WO2021169451A1 (zh) * 2020-09-28 2021-09-02 平安科技(深圳)有限公司 基于对抗学习的内容推荐方法、装置和计算机设备
WO2021169367A1 (zh) * 2020-02-27 2021-09-02 深圳大学 一种基于多层注意力的推荐方法
CN113407851A (zh) * 2021-07-15 2021-09-17 北京百度网讯科技有限公司 基于双塔模型的确定推荐信息的方法、装置、设备和介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109885756A (zh) * 2018-12-18 2019-06-14 湖南大学 基于cnn和rnn的序列化推荐方法
CN109960759A (zh) * 2019-03-22 2019-07-02 中山大学 基于深度神经网络的推荐系统点击率预测方法
CN110717098A (zh) * 2019-09-20 2020-01-21 中国科学院自动化研究所 基于元路径的上下文感知用户建模方法、序列推荐方法
WO2021169367A1 (zh) * 2020-02-27 2021-09-02 深圳大学 一种基于多层注意力的推荐方法
CN111753209A (zh) * 2020-07-02 2020-10-09 南京工业大学 一种基于改进时序卷积网络的序列推荐列表生成方法
CN112035745A (zh) * 2020-09-01 2020-12-04 重庆大学 一种基于对抗学习与双向长短期记忆网络的推荐算法
WO2021169451A1 (zh) * 2020-09-28 2021-09-02 平安科技(深圳)有限公司 基于对抗学习的内容推荐方法、装置和计算机设备
CN113407851A (zh) * 2021-07-15 2021-09-17 北京百度网讯科技有限公司 基于双塔模型的确定推荐信息的方法、装置、设备和介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Weighted sequence loss based recurrent model for repurchase recommendation;Pengda Chen1 等;《IOP Conference Series: Materials Science and Engineerin》;第490卷(第6期);1-8 *

Also Published As

Publication number Publication date
CN114168845A (zh) 2022-03-11

Similar Documents

Publication Publication Date Title
CN114168845B (zh) 一种基于多任务学习的序列化推荐方法
CN110232480B (zh) 利用变分的正则化流实现的项目推荐方法及模型训练方法
Rutkowski et al. A content-based recommendation system using neuro-fuzzy approach
CN108876044B (zh) 一种基于知识增强神经网络的线上内容流行度预测方法
Zhao et al. Variational self-attention network for sequential recommendation
Navgaran et al. Evolutionary based matrix factorization method for collaborative filtering systems
CN111563770A (zh) 一种基于特征差异化学习的点击率预估方法
Ducoffe et al. Qbdc: query by dropout committee for training deep supervised architecture
CN115408603A (zh) 一种基于多头自注意力机制的在线问答社区专家推荐方法
Kumar et al. Machine learning algorithms: A conceptual review
Kumar et al. A Conceptual introduction of Machine Learning Algorithms
CN112380427A (zh) 基于迭代图注意力网络的用户兴趣预测方法及电子装置
Zhao et al. Machine learning phase transition: An iterative proposal
Chen et al. Combine temporal information in session-based recommendation with graph neural networks
Ferreira et al. Data selection in neural networks
Wang et al. SignADAM++: Learning confidences for deep neural networks
CN115470406A (zh) 一种基于双通道信息融合的图神经网络会话推荐方法
CN114565436A (zh) 基于时序建模的车型推荐系统、方法、设备及存储介质
Hao et al. Learnable Model Augmentation Contrastive Learning for Sequential Recommendation
Wilson et al. A recommendation model based on deep feature representation and multi-head self-attention mechanism
Kexin et al. Prediction stock price based on CNN and LSTM models
Ilayarani et al. Dichotomic Prediction of an Event using Non Deterministic Finite Automata
Osawa et al. Predicting Human Behavior with Transformer Considering the Mutual Relationship between Categories and Regions
Yin et al. Time-Aware Smart City Services based on QoS Prediction: A Contrastive Learning Approach
Christodoulou et al. A variational recurrent neural network for session-based recommendations using bayesian personalized ranking

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant