一种融合关键词生成的推荐算法

文档序号:26103010发布日期:2021-07-30 18:14阅读:302来源:国知局
一种融合关键词生成的推荐算法

本发明涉及智能推荐技术领域,主要涉及一种融合关键词生成的推荐算法。



背景技术:

推荐系统作为解决“信息过载”问题的有效方法,近年来已经成为学术界和工业界的关注热点,同时各种各样的推荐系统亦随之在电子商务、社交网站、电子旅游和互联网广告等大量领域得到了广泛应用,并展示出优越的效果与前景。个性化推荐系统通过对用户行为数据进行分析、建模,预测用户的购物意向,为用户推荐可能感兴趣的产品。

常用的推荐方法主要包含基于内容推荐、协同过滤推荐、基于关联规则推荐以及混合推荐等。然而,现有的推荐方法通常根据用户的点击序列捕获用户的购买意图,由于电商网站中包含大规模的产品,这些方法会造成与用户购买意图相关的其他产品被忽略。也就是说,存在着具有不同id标识的相似商品,这些商品能够满足用户相同需求。我们认为,用户点击序列中的文本信息(例如,商品标题中包含的关键词)可以看作额外的监督信号,来学习相似商品中包含的共同意图。通过在多任务学习方法将产品推荐与商品关键字生成任务相结合,可以缓解训练过程中的上述问题。



技术实现要素:

发明目的:为了解决上述背景技术中存在的问题,本发明提供了一种融合关键词生成的推荐算法,本发明采用的技术方案如下:

步骤s1、获取用户的历史点击行为序列和对应产品标题的关键词序列;

将用户购买的产品vp作为预测目标产品,获取用户历史点击行为序列v=[(v1,t1),(v2,t2),…,(vn,tn)],其中ti对应于产品vi点击的时间戳;从用户历史点击行为对应的产品标题中,获取关键词序列;按照词频,选取前n个关键词组成的关键词序列w=[w1,w2,…,wn];

步骤s2、将所述用户历史点击行为序列v=[(v1,t1),(v2,t2),…,(vn,tn)]输入到用户偏好模型中,学习用户的特征表示向量sn;

步骤s3、将产品标题关键词序列数据w=[w1,w2,…,wn]输入到seq2seq模型中,得到标题关键词序列的上下文向量ct;

步骤s4、整合并计算步骤s2得到的用户的特征表示向量sn和步骤s3得到的标题关键词序列在步骤t=0时的上下文向量c0,得到用户的最终特征表示向量cu如下:

cu=wu[sn,c0]

其中wu为可学习参数;

步骤s5、根据所述用户最终特征向量计算用户购买各种产品的概率,根据用户购买产品的概率对用户进行产品推荐。

进一步地,所述步骤s2中学习用户的特征表示向量sn具体步骤如下:

步骤s2.1、创建一个可学习的产品嵌入矩阵ep,为每一个产品vi分配一个嵌入向量vi;

步骤s2.2、采用时间感知自注意力机制,学习用户行为中不同产品之间的相似度,并采用加权求和得到产品的表示向量;将点击2个产品之间的时间间隔rij=|ti-tj|作为指数获取时间间隔嵌入向量rij如下:

base(rij,2k)=sin(rij/100002k/d)

base(rij,2k+1)=cos(rij/100002k/d)

rij=flinear(base(rij))

其中flinear(·)代表线性函数;

加权求和得到产品的表示向量bi如下:

其中bi表示产品i在用户短期行为中的表示向量,vj为根据所述步骤s2.1得到的产品vj的嵌入向量,rij表示时间间隔嵌入向量,αij为产品vi和vj之间的相似度,wv表示可学习的参数;

产品vi和vj之间的相似度αij计算如下:

其中wq和wk为可学习的参数,vi和vj为根据所述步骤s2.1得到的产品vi和vj的嵌入向量,d表示产品嵌入向量的维度,使用归一化指数函数计算相似度;

步骤s2.3、使用最大池化层,获得用户的特征表示向量如下:

其中sn为用户的特征表示向量,snj为sn在维度j上的值。

进一步地,步骤s3中获取标题关键词序列的上下文向量ct具体步骤如下:

步骤s3.1、由步骤s1所得标题关键词序列w=[w1,w2,…,wn],进过id嵌入层后,通过双向长短期记忆网络获得隐式状态[h1,h2,....,hn];

步骤s3.2、获取标题关键词序列上下文向量;

通过步骤s3.1所述隐式状态hn,得到解码器的初始状态d0如下:

d0=relu(wdhn)

其中wd为可学习的参数,relu为线性整流函数,且relu(x)=max(0,x);

通过注意力机制,计算t时刻的关键词序列中单词的注意力分布;解码器根据单词的注意力分布查找生成下一个单词,具体计算公式如下:

eti=vttanh(w[dt,hi,sn]+b)

βt=softmax(et)

其中βt为关键词序列中单词的注意力分布,w和b是可学习参数;softmax为归一化指数函数;dt为t时刻的解码器状态,计算如下:

dt=f(dt-1,yt-1,ct-1)

其中f代表长短期记忆网络;yt-1为t-1时刻解码器的输入向量。ct-1为t-1时刻的标题关键词序列上下文向量;

标题关键词序列上下文向量ct由编码器的隐式状态加权得到,计算如下:

ct=∑iβtihi。

进一步地,所述步骤s5中计算用户购买产品概率,根据用户购买产品的概率对用户进行产品推荐步骤如下:

步骤s5.1、获得用户的最终偏好表示向量之后,通过用户最终特征表示向量cu与产品最终特征表示向量cv,计算用户购买产品的概率如下:

其中,产品最终特征表示向量cv是产品嵌入向量vi经过多层感知机获得,为可学习的参数矩阵;

将交叉熵作为模型训练的目标函数,并使用adam算法训练产品推荐模型,定义目标函数如下:

其中,zuv为用户购买产品的真实概率,为模型计算出来的概率,i为产品的个数;

步骤s5.2、利用指针生成模型生成关键词序列;

利用生成网络,计算时刻t生成单词w的概率pvocab(w):

pvocab(w)=softmax(wh[dt,ct]+oh)

其中,wh和oh为可学习的参数,dt为t时刻的解码器状态,ct为关键词序列的上下文向量。

利用指针网络,计算时刻t从关键词序列中复制单词w的概率:

根据t时刻的解码器状态dt,t-1时刻解码器的输入向量yt-1,关键词序列的上下文向量ct,计算从生成网络中生成单词的权重:

pgen=sigmoid(wt[dt,yt-1,ct]+bt)

其中sigmoid(·)为激活函数,

利用权重向量,融合生成网络和指针网络生成和复制单词的结果,计算公式如下:

p(w)=pgenpvocab(w)+(1-pgen)pcopy(w)

将交叉熵作为模型训练的目标函数,并使用adam算法训练关键词生成模型,定义的目标函数如下所示:

步骤s5.3、联合训练产品推荐任务和关键词生成任务;

联合产品推荐任务和关键词生成模型的损失模型,并使用adam算法同时训练两个模型:

其中0<η<1。

与现有技术相比,本发明将产品标题中包含的关键词看作除购买产品以外的额外监督信号,来学习相似产品中包含的共同意图,通过一种多任务学习框架,将旅游产品推荐与商品关键字生成任务相结合进行建模,可以同时提高推荐性能,并且提升推荐结果的可解释性。

附图说明

图1是本发明提供的融合关键词生成的推荐算法流程图;

图2是本发明提供的融合关键词生成的推荐算法模型示意图;

图3是本发明提供的融合关键词生成的推荐算法实施例示意图。

具体实施方式

下面结合附图对本发明作更进一步的说明。

一种如图1-2所示的融合关键词生成的推荐算法,包括以下步骤:

步骤s1、获取用户的历史点击行为序列和对应产品标题的关键词序列。

将用户购买的产品vp作为预测目标产品,获取用户历史点击行为序列v=[(v1,t1),(v2,t2),…,(vn,tn)],其中ti对应于产品vi点击的时间戳;从用户历史点击行为对应的产品标题中,获取关键词序列;按照词频,选取前n个关键词组成的关键词序列w=[w1,w2,…,wn]。

步骤s2、将所述用户历史点击行为序列v=[(v1,t1),(v2,t2),…,(vn,tn)]输入到用户偏好模型中,学习用户的特征表示向量sn。具体步骤如下:

步骤s2.1、创建一个可学习的产品嵌入矩阵ep,为每一个产品vi分配一个嵌入向量vi。

步骤s2.2、采用时间感知自注意力机制,学习用户行为中不同产品之间的相似度,并采用加权求和得到产品的表示向量bi;将点击2个产品之间的时间间隔rij=|ti-tj|作为指数获取时间间隔嵌入向量rij如下:

base(rij,2k)=sin(rij/100002k/d)

base(rij,2k+1)=cos(rij/100002k/d)

rij=flinear(base(rij))

其中flinear(·)代表线性函数;

加权求和得到产品的表示向量bi如下:

其中bi表示产品i在用户短期行为中的表示向量,vj为根据所述步骤s2.1得到的产品vj的嵌入向量,rij表示时间间隔嵌入向量,αij为产品vi和vj之间的相似度,wv表示可学习的参数;

产品vi和vj之间的相似度αij计算如下:

其中wq和wk为可学习的参数,vi和vj为根据所述步骤s2.1得到的产品vi和vj的嵌入向量,d表示产品嵌入向量的维度,使用归一化指数函数计算相似度;

步骤s2.3、使用最大池化层,获得用户的特征表示向量如下:

其中sn为用户的特征表示向量,snj为sn在维度j上的值。

步骤s3、将产品标题关键词序列数据w=[w1,w2,…,wn]输入到seq2seq模型中,得到标题关键词序列的上下文向量ct。具体步骤如下:

步骤s3.1、由步骤s1所得标题关键词序列w=[w1,w2,…,wn],进过id嵌入层后,通过双向长短期记忆网络获得隐式状态[h1,h2,....,hn];

步骤s3.2、获取标题关键词序列上下文向量;

通过步骤s3.1所述隐式状态hn,得到解码器的初始状态d0如下:

d0=relu(wdhn)

其中wd为可学习的参数,relu为线性整流函数,且relu(x)=max(0,x);

通过注意力机制,计算t时刻的关键词序列中单词的注意力分布;解码器根据单词的注意力分布查找生成下一个单词,具体计算公式如下:

eti=vttanh(w[dt,hi,sn]+b)

βt=softmax(et)

其中βt为关键词序列中单词的注意力分布,w和b是可学习参数;softmax为归一化指数函数;dt为t时刻的解码器状态,计算如下:

dt=f(dt-1,yt-1,ct-1)

其中f代表长短期记忆网络;yt-1为t-1时刻解码器的输入向量。ct-1为t-1时刻的标题关键词序列上下文向量;

标题关键词序列上下文向量ct由编码器的隐式状态加权得到,计算过程如下:

ct=∑iβtihi。

步骤s4、整合并计算步骤s2得到的用户的特征表示向量sn和步骤s3得到的标题关键词序列在步骤t=0时的上下文向量c0,得到用户的最终特征表示向量cu如下:

cu=wu[sn,c0]

其中wu为可学习参数。

步骤s5、根据所述用户最终特征向量计算用户购买各种产品的概率,根据用户购买产品的概率对用户进行产品推荐。具体地:

步骤s5.1、获得用户的最终偏好表示向量之后,通过用户最终特征表示向量cu与产品最终特征表示向量cv,计算用户购买产品的概率如下:

其中,产品最终特征表示向量cv是产品嵌入向量vi经过多层感知机获得,为可学习的参数矩阵;

将交叉熵作为模型训练的目标函数,并使用adam算法训练产品推荐模型,定义目标函数如下:

其中,zuv为用户购买产品的真实概率,为模型计算出来的概率,i为产品的个数;

步骤s5.2、利用指针生成模型生成关键词序列;

利用生成网络,计算时刻t生成单词w的概率pvocab(w):

pvocab(w)=softmax(wh[dt,ct]+oh)

其中,wh和oh为可学习的参数,dt为t时刻的解码器状态,ct为关键词序列的上下文向量。

利用指针网络,计算时刻t从关键词序列中复制单词w的概率:

根据t时刻的解码器状态dt,t-1时刻解码器的输入向量yt-1,关键词序列的上下文向量ct,计算从生成网络中生成单词的权重:

pgen=sigmoid(wt[dt,yt-1,ct]+bt)

其中sigmoid(·)为激活函数,

利用权重向量,融合生成网络和指针网络生成和复制单词的结果,计算公式如下:

p(w)=pgenpvocab(w)+(1-pgen)pcopy(w)

将交叉熵作为模型训练的目标函数,并使用adam算法训练关键词生成模型,定义的目标函数如下所示:

步骤s5.3、联合训练产品推荐任务和关键词生成任务;

联合产品推荐任务和关键词生成模型的损失模型,并使用adam算法同时训练两个模型:

其中0<η<1。

为了验证本发明提供的融合关键词生成的推荐算法的效果,本发明提供如下实施例加以证明。

收集中国电商平台途牛旅游网从2013年7月1日到2013年7月31日的用户点击数据以及商品购买信息。用户的点击数据包括用户id,会话id,点击时间,商品id以及对应的商品标题。商品购买信息包含用户id,会话id,购买时间,商品id以及对应的商品标题。在进行相关预处理操作后(过滤掉长度小于2的用户会话和出现次数小于2的项目),并且为了模拟真实的线上商品推荐,将数据集中前28天作为训练,第29天作为验证,其余2天的数据用于测试。数据集描述如下表1所示。

表1数据集描述

为了验证方法的准确性和有效性,我们采用召回率(recall)和平均倒数排名(meanreciprocalrank,简称mrr)作为算法推荐效果的评价指标。其中,recall是指用户真实感兴趣项目被推荐的比例。mrr是指在生成的推荐列表中,符合用户偏好的项目排名越靠前,则推荐结果越准确。评价指标的具体定义如下所示:

同时采用如下模型作为对比实验:

(1)pop根据训练集中商品购买的次数,为用户推荐热门商品。

(2)item-knn是基于物品的协同过滤算法。其中,物品之间的相似度使用余弦相似度计算。

(3)bpr是一种基于贝叶斯后验优化的个性化排序算法。该算法利用用户对物品的显示反馈信息,并将成对的组合作为优化目标。

(4)cdl是结合评分矩阵与商品描述文本的深度协同学习模型。其利用自编码器学习商品文本向量,并作为商品特征向量的偏置量,从而实现评分数据和商品描述信息的融合。

(5)grurec-topk是一种基于循环神经网络的会话推荐模型。该模型采用基于排序的损失函数学习模型以提高推荐的效果。

(6)time-grurec是在gru4rec模型的基础上,引入时间因素的改进算法,利用点击行为之间的间隔时间来进一步提高模型的精度。

(7)stamp利用注意力机制捕捉用户的长短期兴趣偏好。

(8)sr-gnn是一种基于图神经网络的会话推荐算法,该算法结合用户的长期偏好和会话中的当前兴趣,预测用户在当前会话中的下一步行为。

对于上述对比方法,在最佳参数设置情况下进行实验。对于本发明提出的融合关键词生成的推荐算法(tpr-kg),单词嵌入层采用word2vec模型,并且将单词嵌入维度和物品嵌入维度设置为128。从[0.0001,0.0005,0.001,0.005]中选择学习率。根据验证集的实验结果,优选为0.0005效果。在所有梯度下降中选择adam算法,并且使用dropout策略避免过拟合,dropout比率设置为0.2。

下表2所示为本发明的产品推荐方法与其他推荐方法在召回率和平均倒数排名方面的实验结果比较。

表2本发明的产品推荐方法与其他推荐方法在召回率和平均倒数排名方面比较

根据上表所示实验结果,可以发现tpr-kg算法在所有评价指标上,显著优于所有对比方法。其次,传统的推荐方法(即pop、item-knn和bpr)在所有情况下都优于基于神经的推荐方法(即cdl、grurec-topk、time-grurec、stamp和sr-gnn)。这可能是由于用户-项目交互数据非常稀疏,传统方法并不适用。其中,time-grurec比gru-topk表现得更好,因为timegrurec考虑的时间间隔有助于捕捉用户购买意向的偏移。但是gru-topk忽略了时间对基于会话的推荐的影响。最后,尽管cdl利用了项目标题信息,但它的性能比tpr-kg差,说明基于rnn的方法比基于矩阵分解的方法有更好的动态学习用户偏好的能力。

如图3所示为本发明算法的产品推荐案例。可以看出,本发明提供的tpr-kg模型具备以下2个特征:

(1)、tpr-kg能够捕捉用户的购买意图。可以看到tpr-kg在推荐列表的前5位推荐了马尔代夫相关的旅游产品,而用户最终也购买了马尔代夫旅游产品。这验证了tpr-kg在捕捉意图方面的有效性。

(2)、tpr-kg模型可以过滤会话中的意外点击。tpr-kg在推荐列表的前5位只推荐了马尔代夫相关的旅游产品,而过滤掉了张家界和黄石公园的意外点击。

下表3为本发明产品推荐方法中关键词生成子任务的2个案例。其中,左列是tpr-kg生成的关键词,右列是与购买的商品对应的关键词。从这2个案例中,可以看出,tpr-kg模型生成的关键词质量很高。

表3本发明产品推荐方法中关键词生成子任务的2个案例

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1