一种长短兴趣序列推荐方法、装置及存储介质

文档序号:31626320发布日期:2022-09-24 00:42阅读:51来源:国知局
一种长短兴趣序列推荐方法、装置及存储介质

1.本发明涉及商品时间序列推荐的技术领域,尤其涉及一种长短兴趣序列推荐方法、装置及存储介质。


背景技术:

2.随着网络技术的进步与发展,手机与电脑等设备的逐步普及,网络购物已经成为居民日常生活的一部分,网络销售成为了商家营收占比的重要组成部分,各大电商平台无时无刻都在产生大量的用户与商品交互信息数据,这些数据在宏观和微观层面都表达了很多重要信息,电商企业可以充分利用这些数据信息研究预测客户的兴趣爱好,更好的为客户推荐商品与服务,同时也更好的为商家销售出他们的货品,充分满足商家与用户的需求;因此运用用户与商品交互数据,研究有效且轻量化的推荐算法有着极其重大的意义。用户在购买商品的时候,一般会考虑之前已购买的商品与将要买的物品之间的关系,因此用户与商品的交互序列对下一个商品的购买是包含重要的信息的;从海量的商品中为用户推荐他们真正需要的下一个商品变得极为重要;不仅大大减少了用户搜索商品的时间成本,同时也给商家解决备货与上线新商品等问题。
3.基于用户与商品交互的序列进行下一商品的预测算法上,现有的算法一般面临三个问题;第一个问题是传统的协同过滤算法面临数据稀疏性的问题,导致推荐效果不佳;第二个问题是传统的神经网络算法会把用户的表示嵌入向量用一个固定的向量来表示,这带来的问题是推荐的时候往往较多推荐热门商品,对于较为小众领域的商品召回能力不足;第三个问题是,较多的推荐网络没有引入时间信息,真实情况中的用户的表征向量会随着时间的变化有所变动。


技术实现要素:

4.为至少一定程度上解决现有技术中存在的技术问题之一,本发明的目的在于提供一种长短兴趣序列推荐方法、装置及存储介质。
5.本发明所采用的技术方案是:
6.一种长短兴趣序列推荐方法,包括以下步骤:
7.获取包含用户与商品交互序列的数据;
8.根据获得的数据构建用户与商品的图,将构建好的图输入图神经网络中,获得用户与商品的初始嵌入向量;
9.根据商品的初始嵌入向量,学习获得用户短时行为嵌入向量;
10.根据所述用户短时行为嵌入向量,学习获得k个短时用户兴趣嵌入向量;
11.将用户与商品交互序列与位置嵌入向量进行相加后,输入到transformer模块,获得长时用户兴趣嵌入向量;
12.将所述长时用户兴趣嵌入向量与用户的初始嵌入向量,融入到所述k个短时用户兴趣嵌入向量中,获得k+1个用户兴趣嵌入向量;
13.通过所述用户兴趣嵌入向量与商品嵌入向量间的注意力机制,学习每个兴趣嵌入向量的权重,构建用户最终嵌入向量;
14.根据商品嵌入向量和用户最终嵌入向量的内积,获得商品预测的结果。
15.进一步地,所述根据获得的数据构建用户与商品的图,将构建好的图输入图神经网络中,获得用户与商品的高阶语义的初始嵌入向量,包括:
16.根据获得的数据构建用户与商品的图,经过多层图卷积,将节点之间的信息汇聚到中心节点中,以表达用户与商品的初始嵌入向量;
17.其中,经过图卷积获得的初始嵌入向量的表达式如下:
[0018][0019]
式中,e
(l)
表示经过图卷积l层后,得到的商品与用户是嵌入向量整合;w
1(l)
与w
2(l)
为可学习的参数矩阵;表示每个节点把自身的信息融入,加入单位矩阵i,与初始化嵌入矩阵相乘,聚合用户/商品的邻居的信息;表示将用户与商品的相关性进行了融入。
[0020]
进一步地,所述根据商品的初始嵌入向量,学习获得用户短时行为嵌入向量,包括:
[0021]
用户与商品交互序列的表达式为:表示一个用户与商品的交互序列,按交互时间排序;其中为的物品id为1的嵌入向量,m为物品id;
[0022]
通过对用户与商品交互序列的商品嵌入向量做mean-pooling处理,获得用户短时行为嵌入向量n为用户id;m为商品id。
[0023]
进一步地,所述根据所述用户短时行为嵌入向量,学习获得k个短时用户兴趣嵌入向量,包括:
[0024]
将所述用户短时行为嵌入向量输入到胶囊网络,通过迭代多次动态路由的过程,由低级胶囊逼近高级胶囊的过程,最终获得k个用户短时兴趣嵌入向量,k为预设的超参数。
[0025]
进一步地,所述位置嵌入向量的表达式如下:
[0026][0027]
式中,表示用户与交互的商品在索引值为偶数的位置嵌入信息,表示该商品与用户交互的时间戳信息,表示用户与交互的商品在索引值为奇数的位置嵌入信息,l表示商品的索引值,d是商品嵌入的维度。
[0028]
进一步地,所述k+1个用户兴趣嵌入向量的表达式如下:
[0029][0030]
式中,表示用户k+1个兴趣嵌入矩阵,n是用户id,i是具体第几个兴趣嵌入向量的id,是兴趣嵌入向量;
[0031]
所述用户最终嵌入向量的表达式如下:
[0032][0033][0034]
其中,σ为softmax非线性激活函数;ij为商品嵌入向量,vi为用户嵌入向量;ui为最终通过加权求和短时与长时用户兴趣嵌入向量得到的用户嵌入向量,w
ij
为每个用户兴趣嵌入向量的权重值。其中公式(1)为简写,公式(2)是ui的详细计算过程。
[0035]
进一步地,所述根据商品嵌入向量和用户最终嵌入向量的内积,获得商品预测的结果,包括:
[0036]
对于用户ui和正样例商品以及负样例商品需要对输出的预测值进行监督训练,训练的损失定义如下:
[0037][0038]
o={(u,i,j)|(u,i)∈r
+
,(u,j)∈r-}
[0039]
式中,r
+
为观察到样本,r-为未观测到样本;σ为非线性激活函数;θ表示可学习参数;表示用户与商品交互皮预测偏好分数。
[0040]
进一步地,所述长短兴趣序列推荐方法,还包括构建端到端模型的步骤:
[0041]
将用户与商品交互数据通过预训练的图神经网络部分,用户行为层部分,多兴趣胶囊网络部分,transformers构建长时用户兴趣嵌入向量,多兴趣与商品嵌入向量间注意力机制层,以及点击率预测部分,构成端到端的一种长短兴趣序列推荐算法;
[0042]
在训练数据集上利用随机梯度下降方法进行模型参数学习,直到模型收敛。
[0043]
本发明所采用的另一技术方案是:
[0044]
一种长短兴趣序列推荐装置,包括:
[0045]
至少一个处理器;
[0046]
至少一个存储器,用于存储至少一个程序;
[0047]
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现上所述方法。
[0048]
本发明所采用的另一技术方案是:
[0049]
一种计算机可读存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行如上所述方法。
[0050]
本发明的有益效果是:本发明通过为用户生成多个短时与长时兴趣嵌入向量,能够更好地依托用户的不同兴趣需求,进而提高推荐效果。
附图说明
[0051]
为了更清楚地说明本发明实施例或者现有技术中的技术方案,下面对本发明实施例或者现有技术中的相关技术方案附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员而言,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
[0052]
图1是本实施例中一种长短兴趣序列推荐方法的步骤流程图;
[0053]
图2是本实施例中模型的预训阶段的示意图;
[0054]
图3是本实施例中模型的主模型模块的结构图。
具体实施方式
[0055]
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
[0056]
在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0057]
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
[0058]
本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
[0059]
如图1所示,本实施例提供一种长短兴趣序列推荐方法,首先通过预训练阶段,用户与商品交互数据预处理后,进行采样构造用户与数据的邻接矩阵,运用多次图卷积提取商品与用户多阶信息,获得商品与用户初始嵌入向量后,构造用户与商品交互序列,将该序列输入transformer模块中,学习用户长时兴趣嵌入向量。通过序列提取层获取短时用户行为嵌入向量;将其输入胶囊网络中,获取用户k个短时兴趣嵌入向量;将k个短时兴趣嵌入向量、长时兴趣嵌入向量与商品嵌入向量通过注意力机制模块,获取单个商品嵌入向量与每个用户兴趣嵌入向量的权重,接着通过加权求的用户最终嵌入向量;计算用户嵌入向量和商品嵌入向量交互的点击可能,推荐top k商品;最后通过目标函数bprloss来监督模型训练,通过梯度反向传播学习网络参数,直到收敛。该方法包括以下步骤:
[0060]
s1、获取包含用户与商品交互序列的数据。
[0061]
用户与商品交互数据包括用户与商品交互、用户与商品交互序列数据;对数据进行采样与预处理,过滤无效数据,运用交互数据构建用户与商品的邻接矩阵,再通过标准化处理后,构建得到用户与商品的邻接矩阵:
[0062][0063]
其中是标准化处理后的邻接矩阵,n是用户个数,m是商品个数;
[0064]
[0065][0066]
其中d是度矩阵,nu与ni是为用户与商品邻接点的集合。
[0067]
s2、根据获得的数据构建用户与商品的图,将构建好的图输入图神经网络中,获得用户与商品的初始嵌入向量。
[0068]
参见图2,预训练阶段用户与商品图输入到图神经网络中,经过多层图卷积,可以更好的结合节点之间的信息汇聚到中心节点中,节点的特征不仅包含本身特质同时与直接相连的邻居特征,与高阶抽线特征进行融合,更好的表达用户与商品初始嵌入向量。
[0069]
经过图卷积获得的初始嵌入向量的表达式如下:
[0070][0071]
其中,表示图卷积l层后,得到的商品与用户是嵌入向量整合;与为可学习的参数矩阵;相当于每个节点把自身的信息融入,加入单位矩阵i,与初始化嵌入矩阵相乘,聚合用户/商品的邻居的信息;将用户与商品的相关性进行了融入;最后两者相加,进行用户与商品嵌入向量的更新。
[0072]
每层图卷积后得到的用户嵌入向量:商品嵌入向量:
[0073]
将每层拼接在一起:
[0074]
商品:i={i1,i2,
…im
,};其中,in为第n个位置上的商品嵌入向量,1≤n≤m,m为物品总数量;
[0075]
用户:u={u1,u2,
…ul
,};其中,un为第n个位置上的用户嵌入向量,1≤t≤l,l为用户数量总数量;
[0076]
预训练阶段,对于用户ui和正样例商品以及负样例商品需要对输出的预测值进行监督训练,训练的损失可以如下定义:
[0077][0078]
这里的o表示:o={(u,i,j)|(u,i)∈r
+
,(u,j)∈r-},其中r
+
为观察到样本,r-为未观测到样本;σ为非线性激活函数;θ表示可学习参数,使用l2正则化简小模型的过拟合问题。
[0079]
s3、根据商品的初始嵌入向量,学习获得用户短时行为嵌入向量。
[0080]
将用户与商交互序列,运用mean-pooling or max-pooling等方式,学习得出用户短时行为嵌入向量。
[0081]
用户与商品交互序列:表示一个用户与商品的交互序列,按交互时间排序;其中为的物品id为1的嵌入向量,m为物品id。通过对用户与商品交互序列的物品嵌入向量做mean-pooling,最终获得用户短时行为嵌入向
量n为用户id;m为商品id。
[0082]
s4、根据所述用户短时行为嵌入向量,学习获得k个短时用户兴趣嵌入向量。
[0083]
学习得出用户短时行为表示嵌入向量,输入到胶囊网络中具体如下:将多个用户短时行为嵌入向量输入到胶囊网络中,具体需要多少个胶囊的数量,由用户的交互次数动态决定。
[0084]
公式:k
′u=max(1,min(k,log2(|iu|)))其中k
′u为动态用户兴趣个数,通过对比1与min(k,log2(|iu|))的最大值得到动态用户兴趣个数;其中iu为用户交互数量,k为人为设置的超参。
[0085]
学习得出用户短时行为表示嵌入向量,输入到胶囊网络中具体如下:
[0086]
该胶囊网络的学习方法为,通过迭代多次动态路由的过程,由低级胶囊逼近高级胶囊的过程最终得到用户短时兴趣嵌入向量,公式如下:
[0087]
公式:其中b
ij
为随机初始化,b
ij
~n(0,σ2),再通过softamx(b
ij
)获得每个短时行为向量的权重值;
[0088]
进一步地,为短时用户行为的嵌入向量,j为用户兴趣个数;
[0089]
通过将短时用户行为的嵌入向量与双线性映射矩阵加权求和得到用户短时兴趣嵌入向量;其中,为通过非线性激活函数后的用户短时兴趣嵌入向量
[0090]
进一步地,得到后,将其输入非线性激活函数中:其中,为通过非线性激活函数后的用户短时兴趣嵌入向量接着,通过将兴趣嵌入向量点乘短时用户行为嵌入向量;公式:可以看做是短时用户行为嵌入向量与兴趣嵌入向量的相关性程度;最后与初始值b
ij
相加,从而更新b
ij

[0091]
公式:
[0092]
通过迭代多次上面的步骤,最终获得k个短时用户兴趣嵌入向量。
[0093]
s5、将用户与商品交互序列与位置嵌入向量进行相加后,输入到transformer模块,获得长时用户兴趣嵌入向量。
[0094]
所述位置嵌入向量的表达式如下:
[0095][0096]
其中,d是商品嵌入的维度,其中i是用户id,j是商品id,k是位置嵌入向量的维度。
[0097]
通过利用三角函数的周期性,既可以捕捉特定时刻的语义信息,也可以描绘时间点之间的周期关系和相对性,产生嵌入表征。该方法可以引入不同的周期大小,从而在不同维度上提取不同的周期性关系。同时,与位置信息不同,时间轴可以无限延伸,而这一基于三角函数映射的表征方式可以适配任意大小的时间戳,从而能够处理测试过程出现的未经训练的时间。
[0098]
s6、将所述长时用户兴趣嵌入向量与用户的初始嵌入向量,融入到所述k个短时用户兴趣嵌入向量中,获得k+1个用户兴趣嵌入向量。
[0099]
通过将长时用户兴趣嵌入向量与用户初始嵌入向量,融入到k个短时兴趣嵌入向量中,最终获得k+1个用户兴趣嵌入向量。k+1个用户兴趣嵌入向量的表达式如下:
[0100][0101]
式中,表示用户k+1个兴趣嵌入矩阵,n是用户id,i是具体第几个兴趣嵌入向量的id,是兴趣嵌入向量。
[0102]
s7、通过所述用户兴趣嵌入向量与商品嵌入向量间的注意力机制,学习每个兴趣嵌入向量的权重,构建用户最终嵌入向量。
[0103]
用户最终嵌入向量的表达式如下:
[0104][0105][0106]
其中,σ为softmax非线性激活函数;ij为商品嵌入向量,vi为用户嵌入向量;ui为最终通过加权求和短时与长时用户兴趣嵌入向量得到的用户嵌入向量。
[0107]
s8、根据商品嵌入向量和用户最终嵌入向量的内积,获得商品预测的结果。
[0108]
预训练阶段,对于用户ui和正样例商品以及负样例商品需要对输出的预测值进行监督训练,训练的损失可以如下定义:
[0109][0110]
o={(u,i,j)|(u,i)∈r
+
,(u,j)∈r-}
[0111]
式中,r
+
为观察到样本,r-为未观测到样本;σ为非线性激活函数;θ表示可学习参数,使用l2正则化简小模型的过拟合问题。
[0112]
s9、构建端到端模型,利用训练数据进行参数学习与更新。
[0113]
将用户与商品交互数据通过预训练的图神经网络部分,用户行为层部分,多兴趣胶囊网络部分,transformers构建长时用户兴趣嵌入向量,多兴趣与商品嵌入向量间注意力机制层,以及点击率预测部分,构成端到端的一种基于注意力机制的长短兴趣序列推荐算法,在训练数据集上利用随机梯度下降方法进行模型参数学习,直到模型收敛。
[0114]
以下结合符合及具体实施例对上述方法进行详细解释说明。
[0115]
本实施例提供一种基于注意力机制的长短兴趣序列推荐方法,通过采样过滤无效数据,构建用户与商品的图进入预训练模块;将构建好的用户与商品图输入到图神经网络
中,经过多层卷积后,得到用户与商品结点融合其他节点的初始嵌入向量;将获得的商品初始嵌入向量与可学习的位置向量进行拼接,输入到用户行为层,运用mean-pooling or max-pooling等方式,学习得出用户短时行为嵌入向量,输入到胶囊网络中,通过迭代多次动态路由的过程,学习出k个短时用户兴趣嵌入向量;通过把用户与商品交互序列输入到transformer模块,获得全局用户兴趣嵌入向量;将全局用户兴趣嵌入向量与k个短时兴趣嵌入向量均与用户初始嵌入向量进行拼接,获得k+1个用户兴趣嵌入向量;通过用户兴趣嵌入向量与商品嵌入表示向量间的注意力机制学的每个兴趣嵌入向量的权重,最终构建用户最终嵌入向量;利用商品与用户嵌入向量的内积,得到商品预测的结果;构建端到端模型,利用训练数据进行参数学习与更新。该方法具体包括以下步骤:
[0116]
步骤1、数据准备。
[0117]
需要准备的数据主要是包括用户与商品的交互与时间信息。在公开数据集上下载taobao,tianmao或者movie-1m等数据集,每个样本包括用户与用户交互过的商品,以及具体是交互时间信息;遍历所有用户,将用户与商品交互数量小于30的进行剔除,过滤无效数据。
[0118]
步骤2、预训练模型学习用户与商品初始嵌入向量。
[0119]
构建商品与用户的图,得到一个邻接矩阵维度(6040+3706,6040+3706)维度基于稀疏矩阵的键字典,接着将其转换成lil稀疏矩阵;根据用户与商品的数量,构建基于稀疏矩阵的键字典维度(6040,3706),将该矩阵插入邻接矩阵中根据索引为(6040,6040:)的值中;将该矩阵的转置插入邻接矩阵中根据索引为(6040:,:6040)的值中;接着将邻接矩阵在转换为基于稀疏矩阵的键字典,用户与商品的邻接矩阵构造完成。
[0120]
r∈rn×m,邻接矩阵,n是用户个数,m是商品个数;
[0121]
通过r构造好商品与用户的邻接矩阵;再通过标准化处理得到
[0122]
其中d是度矩阵,nu与ni是为用户与商品邻接点的集合;将度矩阵与邻接矩阵进行点积,该做法的原因是度大的节点在其特征表征中具有较大的值,度小的节点具有较小的值,这可能会导致梯度消失或梯度爆炸。最后实现了对邻接矩阵的归一化。
[0123]
进一步地,需要对邻接矩阵进行归一化处理;首先创建单位矩阵维度为(9746,9746)与邻接矩阵进行相加,节点的聚合表征不包含自己的特征,该表征是相邻节点的特征聚合,并没有包含自身节点特征,因此需要通过单位矩阵融合,作用相当于给每个节点加上自身的属性,增加闭环。具体表达式如下:
[0124][0125]
进一步地,将用户与商品,以及构造好的邻接矩阵输入到预训练模型中;首先初始化用户(6040,64)与商品(3706,64)的初始嵌入向量,以及图神经网络中的线性变化矩阵维度(64,64)以及偏置矩阵(64,1);将基于csr稀疏矩阵的邻接矩阵变成稀疏tensor,维度为(9746,9746)。
[0126]
模型的每次训练过程,首先需要对数据样本进行采样;采样的方式有很多种;从训练集中6040个用户随机抽取4060个;遍历每个用户,从训练集中选取一个正样本和负样本;
最终通过采样后,获得用户id,用户id对应的正样本与负样本商品id的三个列表。
[0127]
将三个列表已经邻接矩阵输入图神经网络模型中;将邻接矩阵通过一层dropout层(0.1),将部分的节点失效,该作用更有利于测试集的泛化性,减少过拟合的影响;将用户和商品初始嵌入向量按列拼接,构成一个整体初始化嵌入矩阵tensor,维度(9746,64),用列表将其纳入。
[0128]
进入第一层图卷积网络,将邻接矩阵(9748,9746)与整体初始化嵌入向量矩阵(9746,64)进行矩阵相乘,获得边的表示嵌入矩阵,将用户到用户,商品到商品,聚合用户与商品所有邻居的信息,将其过一层线性变化层,进行特征提取,获得汇总邻居信息的表示嵌入矩阵(9746,64)。
[0129]
进一步地,将邻居汇聚的信息进行嵌入到自身节点身上,将整体初始化嵌入向量矩阵与汇总邻居信息的表示嵌入矩阵进行点乘,使邻居汇聚的信息聚合在中心节点上,实现了商品到用户,用户到商品信息的传递与聚合,维度(9746,64);将其在进过线性变化层和非线性激活。
[0130]
将用户到用户的传递与商品到用户的信息传递两部分进行相加,再通过dropout与正则化处理后,实现了一层图卷积网络放入列表中,获得的矩阵依旧是维度(9746,64);通过多次图卷积后,用户与商品可以提取更加高阶的信息,丰富了表示嵌入向量的信息;
[0131]
具体计算公式可写为:
[0132][0133]
其中表示图卷积l层后,得到的商品与用户是嵌入向量整合;与为可学习的参数矩阵;相当于每个节点把自身的信息融入,加入单位矩阵i,与初始化嵌入矩阵相乘,聚合用户/商品的邻居的信息;将用户与商品的相关性进行了融入;最后两者相加,进行用户与商品嵌入向量的更新。
[0134]
最后将多次图卷积学出的用户与商品表示嵌入矩阵进行拼接,获得最终的经过多层图神经网络后的整体最终化嵌入矩阵,维度为(9746,256)假设经过3层图卷积;
[0135]
每层图卷积后得到的用户嵌入向量:
[0136]
商品嵌入向量:
[0137]
将每层拼接在一起:
[0138]
商品:i={i1,i2,
…im
,}
[0139]
其中,in为第n个位置上的商品嵌入向量,1≤n≤m,m为物品总数量;
[0140]
用户:u={u1,u2,
…ul
,}
[0141]
其中,un为第n个位置上的用户嵌入向量,1≤t≤l,l为用户数量总数量。
[0142]
通过拆分整体最终化嵌入矩阵,获得用户与商品对应的嵌入矩阵,将抽样的用户id与商品id列表进行提取,抽取其中的用户与正负样本商品对应的嵌入向量。
[0143]
将用户的嵌入向量与正负样本表示嵌入向量,分别进行内积,损失函数如下:
[0144][0145]
这里的o表示:o={(u,i,j)|(u,i)∈r
+
,(u,j)∈r-},其中r
+
为观察到样本,r-为未观测到样本;σ为非线性激活函数;θ表示可学习参数,使用l2正则化简小模型的过拟合问题。
[0146]
最后通过bprloss损失函数,进行模型训练的监督,通过梯度回传,实现参数的更新。预训练模块训练完成后,我们将学习得出的用户与商品表示嵌入向量输入到主模型中。
[0147]
步骤3、商品初始嵌入向量输入到输入到用户行为层,学习短时用户行为嵌入向量。
[0148]
在训练集中随机抽取1000个用户,得到用户id序列(1000),用户与商品购买序列(1000,50),用户与正样本序列(1000,1),用户与负样本序列(1000,10);将以上数据均扩展一维维度。
[0149]
商品:i={i1,i2,
…im
,}
[0150]
其中,in为第n个位置上的商品嵌入向量,1≤n≤m,m为物品总数量;
[0151]
用户:u={u1,u2,
…ul
,}
[0152]
其中,un为第n个位置上的用户嵌入向量,1≤t≤l,l为用户数量总数量。
[0153]
进一步地,将用户与商品交互序列与用户购买商品交互数量序列输入到用户行为层;将每一个用户的序列,通过滑动窗口50个作为一个序列,获得n个该用户与不同商品交互的序列,将他们的商品表示嵌入向量通过mean-pooling的方式聚合成n个短时用户行为表示嵌入向量;该行为层的作用是将一个用户的相邻50个商品嵌入向量进行平均,得到用户的短时行为嵌入向量,再通过滑动窗口的作用获得用户n个短时行为嵌入向量。
[0154]
用户与商品交互序列:表示一个用户与商品的交互序列,按交互时间排序;其中为的物品id为1的嵌入向量,m为物品id。通过对用户与商品交互序列的物品嵌入向量做mean-pooling,最终获得用户短时行为嵌入向量n为用户id;m为商品id。
[0155]
步骤4、短时用户行为嵌入向量输入到胶囊网络,学习短时用户兴趣嵌入向量。
[0156]
获取用户n个短时用户行为嵌入向量后,我们将其输入到胶囊网络中;胶囊网络的作用是将n个输入的向量,最终聚合成一个向量进行输出,起到了聚类的作用。
[0157]
具体而言:在本模型中,胶囊网络的作用在于通过迭代多次动态路由的过程,将多个短时用户行为嵌入向量,提取出k个短时用户兴趣嵌入向量。
[0158]
公式:k
′u=max(1,min(k,log2(|iu|)))其中k
′u为动态用户兴趣个数,通过取1与min(k,log2(|iu|))的最大值得到;其中iu为用户交互数量,k为人为设置的超参。
[0159]
胶囊网络的学习方法为,通过迭代多次动态路由的过程,由低级胶囊逼近高级胶囊的过程最终得到用户短时兴趣嵌入向量,公式如下:
[0160]
公式:其中b
ij
为随机初始化,b
ij
~n(0,σ2),再通过softamx(b
ij
)获得每个短时行为向量的权重值。
[0161]
进一步地,为短时用户行为的嵌入向量,j为用户兴趣个数;
[0162]
通过将短时用户行为的嵌入向量与双线性映射矩阵加权求和得到用户短时兴趣嵌入向量;其中,为通过非线性激活函数后的用户短时兴趣嵌入向量
[0163]
进一步地,得到后,将其输入非线性激活函数中:其中,为通过非线性激活函数后的用户短时兴趣嵌入向量接着,通过将兴趣嵌入向量点乘短时用户行为嵌入向量;公式:可以看做是短时用户行为嵌入向量与兴趣嵌入向量的相关性程度;最后与初始值b
ij
相加,从而更新b
ij

[0164]
公式:
[0165]
通过迭代多次上面的步骤,最终获得k个短时用户兴趣表示嵌入向量。
[0166]
动态路由的过程:首先初始化b
ij
,通过softmax(b
ij
)序列,得到每一个短时用户行为嵌入向量的权重,再通过加权求和得出聚合多个行为嵌入向量后的向量,进入squash非线性激活函数,最终得到新的嵌入向量,最后将其与之前的短时用户行为嵌入向量进行相加,得到新的bij的值;通过迭代多次,最终可以将n个用户行为嵌入向量,聚合成k个提取了用户行为特征的短时用户兴趣嵌入向量。
[0167]
步骤5、用户与商品交互的序列通过transform模块,学习长时用户兴趣嵌入向量。
[0168]
具体而言,我们将用户与商品交互的序列通过transform模块,提取出用户长时兴趣嵌入向量,作为用户的全局兴趣;主要的步骤包括2个步骤。
[0169]
参见图3,首先是映入位置嵌入层,该层的作用在于为用户与商品的交互的商品嵌入向量给予位置信息,可以更好的在transformer模块中保留时间信息,从而为transformer模块中提取商品特征的时候保留长时信息和短时信息;给予每个商品嵌入向量时间信息;具体做法如下:
[0170]
公式:
[0171]
其中,d是商品嵌入的维度,其中i是用户id,j是商品id,k是位置嵌入向量的维度;
[0172]
通过利用三角函数的周期性,既可以捕捉特定时刻的语义信息,也可以描绘时间点之间的周期关系和相对性,产生嵌入表征。该方案可以引入不同的周期大小,从而在不同维度上提取不同的周期性关系。同时,与位置信息不同,时间轴可以无限延伸,而这一基于三角函数映射的表征方式可以适配任意大小的时间戳,从而能够处理测试过程出现的未经训练的时间。
[0173]
接着d是字嵌入的维度,表示的范围大于【-1,1】;不同的维度上使用不同的函数操纵位置编码,高纬的表示空间更有意义,因此不同的位置编码的每一维赋予不同
的这使得每一维度上都包含了一定的位置信息,而各个位置的编码又各不相同。
[0174]
接着将商品融入时间信息后的表示嵌入向量输入多头注意力机制模块中,该模块可以很好的学习到商品与商品之间的关系。通过query,key,value的注意力机制的形式,将一个商品的嵌入向量,通过其他商品加权求和得出。
[0175]
步骤6、运用注意力机制,将长时与短时用户兴趣嵌入向量进行合并。
[0176]
其中表示所有用户的兴趣嵌入向量,n是用户id,i是具体第几个兴趣嵌入向量的id,是兴趣嵌入向量。
[0177]
注意力机制层;将k个短时用户兴趣嵌入向量与一个长时用户兴趣嵌入向量一同通过注意力机制,加权求和得出最终的用户嵌入向量;
[0178][0179][0180][0181]
其中分别是三个全局共享的可训练参数矩阵,分别是三个全局共享的可训练参数矩阵,其中d
model
是商品嵌入向量的维度,k是参数矩阵的维度;
[0182]
得到每个商品嵌入向量的query,key,和value三个向量后,query向量用于匹配每一个key向量,两者点乘,用于求出query向量与key向量的相关性权重大小,再与value向量进行点乘后,得到相关性大小,运用softmax激活函数得出对应的权重值;加权求和更新得出每一个商品嵌入向量;最后通过多头对每一个头进行平接后,与wo参数矩阵,参数矩阵,
[0183]
对于k+1个用户兴趣嵌入向量,我们最终的目的是合成最后的用户嵌入向量;因此我们将k+1用户兴趣嵌入向量通过一层relu非线性激活函数,使数值都大于0,防止梯度传播消失,便于梯度的传递。
[0184]
将k+1个用户兴趣嵌入向量输入到注意力机制层中,将k+1个用户兴趣嵌入向量作为key;接着根据随机采样的正样本个item的id值,获取这个商品的嵌入向量;同理负样本也获取负样本的商品嵌入向量。
[0185]
内在的机制为,首先将一个商品嵌入向量作为query,与每一个兴趣嵌入向量进行内积,再通过softmax得到概率值,接着通过概率值加权求和得到用户的嵌入向量。
[0186]
最后通过最后一个输出作为用户的长时兴趣嵌入向量,将其加入到短时用户兴趣表示嵌入向量;并将预训练阶段学的用户初始嵌入向量,一同加入,丰富了短时用户兴趣嵌入向量。
[0187]
利用softmax函数对注意力值进行归一化,得到每个兴趣嵌入向量的注意力概率分布:
[0188]
公式:
[0189]
公式:
[0190][0191]
其中,为各个区域的注意力大小,w
ij
为各个区域最后的注意力的向量,其值与大小相等,w
ij
其各个元素的和为1;
[0192]
其中σ为softmax非线性激活函数;ij为商品嵌入向量,vi为用户嵌入向量;ui为最终通过加权求和短时与长时用户兴趣嵌入向量得到的用户嵌入向量。
[0193]
步骤7、分数预测层,点击率预测。
[0194]
利用商品表示嵌入向量与用户表示嵌入向量做点积的方式得到预测值;
[0195]
公式:
[0196]
公式:bprloss:
[0197]
这里的o表示:loss为损失值,o={(u,i,j)|(u,i)∈r
+
,(u,j)∈r-},其中r
+
为观察到样本,r-为未观测到样本;sigmoid为非线性激活函数;θ表示可学习参数,使用l2正则化简小模型的过拟合问题。
[0198]
步骤8、模型训练。
[0199]
构建端到端模型,利用训练数据进行参数学习与更新,具体为:
[0200]
首先通过预训练阶段,用户与商品交互数据预处理后,进行采样构造用户与数据的邻接矩阵,运用多次图卷积提取商品与用户多阶信息,获得商品与用户初始嵌入向量后,构造用户与商品交互序列,将该序列输入transformer模块中,学习处用户长时全局兴趣表示嵌入向量;第二通过序列提取层获取短时用户行为嵌入向量;将其输入胶囊网络中,获取用户k个兴趣表示嵌入向量;将k个短时兴趣嵌入向量、全局兴趣嵌入向量与商品嵌入向量通过注意力机制模块,获取单个商品嵌入向量与每个用户兴趣嵌入向量的权重,接着通过加权求的用户最终嵌入向量;计算用户嵌入向量和商品嵌入向量交互的概率,推荐top k商品;最后通过目标函数bprloss来监督模型训练,通过梯度反向传播学习网络参数,直到收敛。
[0201]
本实施例还提供一种长短兴趣序列推荐装置,包括:
[0202]
至少一个处理器;
[0203]
至少一个存储器,用于存储至少一个程序;
[0204]
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现图1所示方法。
[0205]
本实施例的一种长短兴趣序列推荐装置,可执行本发明方法实施例所提供的一种长短兴趣序列推荐方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。
[0206]
本技术实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1所示的方法。
[0207]
本实施例还提供了一种存储介质,存储有可执行本发明方法实施例所提供的一种长短兴趣序列推荐方法的指令或程序,当运行该指令或程序时,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。
[0208]
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
[0209]
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
[0210]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0211]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
[0212]
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0213]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述
实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0214]
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
[0215]
尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
[0216]
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1