一种基于多任务学习的多目标推荐方法及系统技术方案

技术编号:28748605 阅读:61 留言:0更新日期:2021-06-06 19:09
一种基于多任务学习的多目标推荐系统,包括用户多种行为序列获取模块、权重生成模块、GRU网络共享模块、SNR子网络路由模块、特征提取模块和多目标预测模块;一种基于多任务学习的多目标推荐方法,包括如下操作步骤:(1)根据用户与交互对象的交互行为,构建构造用户行为序列样本集合;(2)使用用户行为序列样本集合对系统进行训练;(3)保存训练好的系统最优模型,并通过系统最优模型计算并保存相关数据的最优值;(4)模型预测;(5)将得分最高的待推荐对象推荐至用户。对象推荐至用户。对象推荐至用户。

【技术实现步骤摘要】
一种基于多任务学习的多目标推荐方法及系统


[0001]本专利技术涉及一种基于多任务学习的多目标推荐方法及系统,属于信息
,特别是属于个性化推荐


技术介绍

[0002]推荐系统旨在帮助用户在众多信息中快速发现最感兴趣的信息,如:音乐、新闻资讯等。目前大部分推荐技术只进行单目标训练,例如使用LR(逻辑回归)、GBDT(梯度提升决策树)、深度学习等算法的点击率(CTR)预估技术。但是,对多个目标进行建模是推荐系统的常见需求,例如,因为用户的反馈是多种类型的,包括点击、完整播放等,只对单一反馈进行单目标优化的推荐算法推荐出的信息很可能有偏差,单独优化点击率的模型容易推荐出来标题党,单独优化完整播放率的模型可能短音乐短视频就容易被推荐出来,所以多目标推荐的需求应运而生,有必要同时优化点击率、完整播放率。
[0003]多目标推荐问题与单目标推荐问题不同,单目标推荐问题只优化单一目标,例如提高平台的点击率,但是平台的完整播放率等其他指标可能会变差,多目标推荐问题有多个目标函数,其目的是找到一种推荐方法使得多个目标达到整体最优,例如同时本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于多任务学习的多目标推荐系统,其特征在于:所述系统包括用户多种行为序列获取模块、权重生成模块、GRU网络共享模块、SNR子网络路由模块、特征提取模块和多目标预测模块;各模块的功能如下:用户多种行为序列获取模块的功能是:(1)构造用户行为序列集合S,具体是:选取N位用户,根据用户行为类型将行为分为P种行为,分别记作B1,...,B
P
;为每位用户分别选取其发生了行为B1,...,B
P
的交互对象ID,并按行为发生时间的先后顺序排列,来构成用户行为序列;将每位用户的历史行为的发生时间划分为T个时间槽;用户行为元组表示第i位用户在第t个时间槽对交互对象o所发生的多种交互行为,表示是否发生了行为B1,...,B
P
;所有用户的行为元组组成用户行为序列集合S,集合S包括N*T个(M+P)维向量,其中M为待推荐对象的总数,所有待推荐对象组成的集合等于所有交互对象组成的集合;用户i在第t个时间槽的行为S
it
是(M+P)维向量,前M项S
it
[0:M

1]是用户i在第t个时间槽的交互对象ID的one

hot向量,后P项S
it
[M:M+P

1]是用户i在第t个时间槽与交互对象发生的行为类型的multi

hot向量;(2)构造用于系统训练的用户行为序列正样本集合S
+
和负样本集合S

,具体是:遍历用户行为序列集合S,每次读入一个用户行为元组,则向正样本集合S
+
和负样本集合S

中分别加入一个三元组,具体为:读入用户i第t个时间槽的用户行为元组向正样本集合S
+
中加入一个三元组{x
i
,j,Y
ij
},其中x
i
为用户i前t

1个时间槽的交互对象序列,即x
i
={S
i1
[0:M

1],...,S
it
‑1[0:M

1]},由于x
i
序列长度小于T,所以在序列x
i
首位补充一个或多个0使得序列x
i
长度为T,j为用户i第t个时间槽的交互对象ID的one

hot向量,即j=S
it
[0:M

1],Y
ij
是正样本的B1,...,B
P
行为的真实标签,Y
ij
包括P个值分别记作即Y
ij
=S
it
[M:M+P

1];向负样本集合S

中加入一个三元组{x
i
,j,Y
ij
},其中x
i
与上述正样本相同,j为用户i第t个时间槽任意一个未交互的对象ID的one

hot向量,Y
ij
是负样本的B1,...,B
P
行为的真实标签,Y
ij
包括P个值分别记作因为是负样本所以Y
ij
全为0值;负样本集合S

中的每个负样本与正样本集合S
+
中的每个正样本一一对应,训练时S
+
、S

中的数据交替按批量读取;GRU网络共享模块的功能是:GRU网络共享模块包含k个并列的GRU网络,k值等于用户行为类型总数P,将k个GRU网络分别记作GRU1,...,GRU
k
;每个GRU网络的隐藏层单元数设定为K,利用其结构中的复位门和更新门,自动筛选出用户历史行为序列中的有用信息和用户当前行为中的重要信息,综合考虑用户的历史兴趣和即时兴趣,将用户i截止到第T个时间槽的序列信息提取为一个K维向量并输出;将k个GRU网络的输出分别记作所述GRU网络的每一个都包含多个相同的网络单元,单元数量等于行为序列长度,每个单元对应一个时间槽;所述GRU网络以权重生成模块所输出的用户加权交互对象序列作为输入,输出最后一个单元的输出向量h
iT
;第t个网络单元中,复位门和更新门是并行的两个单层全连接神经网络,以输入序列中的第t个元素向量和上一个网络单元的输出向量h
it
‑1的(M+K)维拼接向量为输入,以sigmoid为激活函数,输出结果即历史信息相关权重r
it
和即
时信息相关权重u
it
,得到r
it
和u
it
后,通过一个单层全连接神经网络生成候选激活向量该网络以输入序列中的第t个元素向量和加权后的上一个网络单元的输出向量r
it
*h
it
‑1的(M+K)维拼接向量为输入,以tanh为激活函数,输出结果即K维候选激活向量将u
it
作为的权重、(1

u
it
)作为h
it
‑1的权重,对和h
it
‑1进行加权求和得到第t个网络单元的输出向量h
it
,即SNR子网络路由模块的功能是:以所述GRU网络共享模块的输出结果作为输入,对进行加权求和后输出用户兴趣表示向量其中是用户i第T+1个时间槽时在行为B1的预测目标中的用户兴趣表示向量,是用户i第T+1个时间槽时在行为B
P
的预测目标中的用户兴趣表示向量,维度为K;所有用户第T+1个时间槽时在每种行为的预测目标中的用户兴趣表示向量分别构成集合所有用户第T+1个时间槽时在所有行为的预测目标中的用户兴趣表示向量构成集合U;所述预测目标为根据用户i前T个时间槽的交互行为预测用户i第T+1个时间槽对待推荐对象j发生B1,...,B
P
行为的概率,每个行为的预测作为一个预测目标,每个预测目标对应一个用户兴趣表示向量;同一用户在不同预测目标中的偏好并不相同,因此SNR子网路由模块为每个预测目标分别输出一个用户兴趣表示向量;SNR子网络路由模块作为所述的GRU网络共享模块和多目标预测模块之间的连接模块,将上下级网络之间的两两连接情况抽象为编码变量z;学习所述的编码变量z相当于学习所述的GRU网络共享模块的每个输出结果在多目标预测模块的输入信息中所占的权重,权重接近0则相当于对应连接断开,实现自动学习网络共享结构的功能;根据所述的编码变量z,用户i第T+1个时间槽的用户兴趣表示向量的计算公式为:其中z=[z
11
,

,z
1k
,

,z
P1
,

,z
Pk
]是P*k维向量;根据以下公式来生成z:u~U(0,1),z=g(s)=min(1,max(0,s(δ

γ)+γ)),其中u是符合均匀分布的P*k维随机向量,log(a)为需要学习的参数,将其初始化为按照正态分布生成的P*k维随机向量,随着训练进行端到端学习,其他参数为超参数,使得编码变量z可以基于梯度进行优化;所述SNR子网络路由模块中编码变量z的生成公式中的超参数β、δ、γ,通过网格搜索方式寻找最佳值;权重生成模块的功能是:根据与每个预测目标的相关度对输入序列中的元素进行加权,缓解频率低的行为被淹没的问题;将所述的SNR子网络路由模块输出的用户i第T+1个时间槽的用户兴趣表示向量和第1,2,...,T个时间槽的用户交互对象S
i1
[0:M

1],
S
i2
[0:M

1],...,S
iT
[0:M

1]作为所述权重生成模块的输入,即分别拼接与S
i1
[0:M

1],S
i2
[0:M

1],...,S
iT
[0:M

1]组成所述权重生成模块的输入矩阵其中concat()表示两个向量的拼接操作,所述权重生成模块首先计算出分别作为每个预测目标下第1,2,...,T个时间槽的交互对象对于用户i的P*T个权重值,记作所述权重生成模块需要判断所述系统是否尚未存在用户i的用户兴趣表示向量若是,则不执行上述权重生成模块的所有计算,直接使用系统新用户默认权重值,即上述P*T个权重值全部直接赋值为1;然后根据上述权重值,计算用户i第1,2,...,T个时间槽的用户加权交互对象计算公式为:k与P是相等的,一共有k*T个;所述用户i第1,2,...,T个时间槽的用户加权交互对象将分别作为用户i第T+1个时间槽的所述GRU网络共享模块的第1、2、

、k个GRU网络的输入序列的第1,2,...,T个元素,即作为用户i第T+1个时间槽的所述GRU网络共享模块的第1个GRU网络的输入序列,作为用户i第T+1个时间槽的所述GRU网络共享模块的第k个GRU网络的输入序列;所述权重生成模块的网络结构为一个MLP网络,包括一个输入层、...

【专利技术属性】
技术研发人员:王玉龙陈维玮刘同存王纯张磊王晶
申请(专利权)人:北京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1