一种基于特征层面更深的自注意力网络的序列推荐方法与流程

文档序号:18319605发布日期:2019-08-03 10:19阅读:370来源:国知局
一种基于特征层面更深的自注意力网络的序列推荐方法与流程

本发明涉及推荐技术领域,特别是一种基于特征层面更深的自注意力网络的序列推荐方法。



背景技术:

随着互联网的快速发展,序列推荐已成为各种应用中不可或缺的一部分,例如,广告点击预测,产品推荐和网页推荐。在这些应用中,每个用户行为可以建模成一个按时间顺序的序列,他/她之后的行为受之前行为序列的影响。序列推荐的目的是通过从用户历史行为中捕获有用的序列模式,从而给用户推荐他/她可能喜欢的下一个物品。

现存的序列方法大多集中在基于马尔科夫链的方法和基于神经网络的方法。为了建模序列模式,rendle等人提出了fpmc(factorizingpersonalizedmarkovchain),融合矩阵分解和马尔科夫链分别去捕获用户的长期偏好和短期的物品与物品之间的转换。cheng等人扩展了fpmc,将个性化的马尔科夫链和用户行为约束嵌入到下一个推荐中。然而,所有这些基于马尔科夫链的方法都有一个相同的缺点,即这些模型仅能建模每两个相邻物品之间的局部序列模式。随着神经网络的成功,循环神经网络(rnn)被广泛应用于序列建模。hidasi等人提出gru4rec方法,使用门控循环单元(gru)去建模物品之间的转换模式。虽然rnn是一个建模序列模式的有效方法,但是它仍然面临几个挑战,例如,很难并行,耗时,即使使用lstm和gru也很难保存长期偏好。最近,tang等人提出一个基于cnn的模式,它将用户最近访问的l个物品看作一张图片,然后使用水平方向和垂直方向的卷积核去提取序列模式。另外,cnn通常被用于捕获局部信息,因此很难捕获用户的长期偏好。随着vaswani等人提出的自注意力机制(self-attentionmechanism)在机器翻译方面获得突出的实验结果,许多研究者开始着力于将自注意力机制应用于其他领域,例如自然语言推荐,智能问答,推荐等等。自注意力机制一个最大的优点是能够通过计算一个序列中不同物品对之间的权重来更好地获得用户的长期偏好。kang等人提出sasrec(self-attentivesequentialrecommendation)模式,利用一个自注意力机制代替传统的rnn来做序列推荐,获得杰出的性能。然而,上述推荐方法都仅考虑了物品之间的序列模式,但是忽略了有利于捕获用户细粒度偏好的特征之间的序列转换关系。

事实上,我们的日常生活通常表现出物品的特征层面的转换模式,即,显式特征(如,类型)或者其他的隐式特征。例如,一个用户买完衣服之后可能会要买匹配衣服的鞋子,这个暗示了下一个产品的类别与当前产品的类别是高度相关的。在这里,我们将用户对结构属性(例如,类型)不断变化的喜好称作显式特征转换。此外,每个物品可以又包含其他非结构的属性,像描述文本或者图片,它们体现出物品更多的细节特征。因此,我们想要从这些非结构化的属性中提取出用户潜在的特征模式,我们称这种为隐式特征转换。然而,现存的方法经常忽略了物品特征之间显示和隐式的特征转换,我们认为仅物品层面的序列不能揭示出完整的序列模式。



技术实现要素:

本发明所要解决的技术问题是克服现有技术的不足而提供一种基于特征层面更深的自注意力网络的序列推荐方法,本发明提出了一种特征层面自注意力网络,能够有效地捕获物品的特征之间的转换关系,来提高序列推荐性能。

本发明为解决上述技术问题采用以下技术方案:

根据本发明提出的一种基于特征层面更深的自注意力网络的序列推荐方法,构建基于特征层面更深的自注意力网络fdsa模型,通过fdsa模型捕获物品的特征之间的转换关系,来提高序列推荐性能;fdsa模型包括嵌入层、vanilla注意力层、基于物品的自注意力块、基于特征的自注意力块和全连接层;其中,

嵌入层,用于投射物品的稀疏表示和物品的离散化的特征到低维的稠密向量,输出物品序列和物品的多种异构特征;物品序列输出至基于物品的自注意力块,物品的多种异构特征输出至vanilla注意力层;

vanilla注意力层,用于通过注意力机制将物品的多种异构特征以不同的权重结合到特征序列;

基于物品的自注意力块,用于根据物品序列去学习物品层面的序列模式;

基于特征的自注意力块,用于根据特征序列去捕获特征层面的序列模式;

全连接层,用于结合基于物品的自注意力块和基于特征的自注意力块的输出结果来预测给用户推荐的下一个物品。

作为本发明所述的一种基于特征层面更深的自注意力网络的序列推荐方法进一步优化方案,嵌入层用于去转换行为序列s和其对应的类别序列c的one-hot向量到稠密向量表示;其中,

从用户历史行为序列中取一个固定长度的序列s=(s1,s2,…,sn)来计算用户历史偏好,其中n代表模式处理的最大长度;如果一个用户的行为序列小于n,在序列的左边使用0来填充序列直到序列的长度达到n;如果一个用户的行为序列大于n,取最近的n个行为;每一个物品对应着一个类别,得到一个固定长度的类别序列c=(c1,c2,…,cn);其中,sv为用户第v时刻访问的物品,cv为用户第v时刻访问的物品对应的类别特征,v=1,2,3...n。

作为本发明所述的一种基于特征层面更深的自注意力网络的序列推荐方法进一步优化方案,vanilla注意力层,用于采用一个vanilla注意力机制去辅助基于特征的自注意力块捕获用户对属性不断变化的喜好;

给定一个物品j,它的属性能被编码为其中,vec(cj)和vec(bj)分别表示物品j的类别和品牌的稠密向量表示,表示物品j的文本特征表示;

注意力网络αj被定义为:

αj=softmax(wfaj+bf)(1)

其中,wf是d×d的矩阵,bf是d-维的向量,d是向量的维度,softmax(*)是归一化指数函数;

通过注意力评分来计算物品j的属性向量表示的加权和;

fj=αjaj(2)

fj为物品j的特征表示。

作为本发明所述的一种基于特征层面更深的自注意力网络的序列推荐方法进一步优化方案,基于特征的自注意力块:

从vanilla注意力层,能得到物品j的特征表示fj;因此,给定一个用户,能得到一个特征序列f={f1,f2,...,fn},fv为用户在第v时刻访问的物品对应的特征的特征向量表示;在特征的输入表示上加入位置矩阵为二维矩阵空间,维度为n×d;即这个基于特征的自注意力块的输入矩阵f被定义为

其中,pv为用户第v时刻访问的物品的位置向量表示;

自注意力机制sdpa(q,k,v)被定义为

其中q,k,v分别表示query,key和value,query是查询,key是键,value是键对应的值,上标t是转置,d表示向量的维度;在基于特征自注意力机制块query,key和value都等于f,将它们通过三个不同的投射矩阵线性转换之后,喂到缩放点积注意力sdpa中,

hf=sdpa(fwq,fwk,fwv)(5)

其中wq,wk是投射矩阵,hf是经过缩放点积注意力sdpa得到的结果,是二维矩阵空间,维度为d×d;这个自注意力机制采用多头注意力机制mh,这个多头注意力机制能够被定义为

其中wo是要学习的参数,lf是基于特征自注意力机制设置的头数,mf是经过多头注意力机制mh之后得到的结果,mh(f)是多头注意力机制,concat()是向量连接函数,hi是第i头对应缩放点积注意力sdpa的结果,sdpa()是缩放点积注意力,i=1,2...lf;除此之外,这个自注意力机制运用了残差连接,层正则化和激活函数为relu的两层全连接去增强自注意力机制的性能;最后,这个基于特征自注意力块的输出被定义为

其中,layernorm()是层正则化,of是经过残差连接和层正则化之后的结果,relu()是非线性激活函数,w1、w2、b1、b2均是fdsa模型参数;定义整个自注意力块sab()为

of=sab(f),(8)

of是聚合了所有之前访问过的物品的特征表示,sab()是整个自注意力块;

当自注意机制堆叠q块之后,

其中,是基于特征自注意力块堆叠q块之后的结果,当q为0时,

作为本发明所述的一种基于特征层面更深的自注意力网络的序列推荐方法进一步优化方案,基于物品的自注意力块:

给定一个用户,能够得到一个物品序列s以及它对应的矩阵s;这个堆叠的基于物品自注意力块被构造为

其中,是基于物品自注意力块堆叠q块之后的结果,当q为0时,

作为本发明所述的一种基于特征层面更深的自注意力网络的序列推荐方法进一步优化方案,为了同时捕获物品和特征的转换模式,连接基于物品的自注意力块的输出结果和基于特征的自注意力块的输出结果然后投射到全连接层;

其中osf是将两个自注意力块结合之后经过全连接层得到的结果,wsf是全连接层的权重矩阵,bsf是全连接层的偏置向量,是二维空间,维度为2d×d,是一维空间,维度是d;通过点积操作计算用户对物品的偏好;

其中,表示osf的第t行,n是物品的嵌入矩阵,nj表示矩阵n中第j行对应的向量,也就是第j时刻用户访问物品的向量表示;是给定用户之前访问的t个物品,物品j是用户下一个要访问的物品的概率;

在测试过程中,取矩阵osf的最后一行来预测下一个物品。

作为本发明所述的一种基于特征层面更深的自注意力网络的序列推荐方法进一步优化方案,采用交叉熵损失函数作为fdsa模型的优化目标函数。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

(1)本发明提出了一种新颖的基于特征层面更深的自注意力网络(fdsa),能够有效地捕获物品的特征之间的转换关系,来提高序列推荐性能;

(2)本发明表明考虑物品的特征之间的转换关系能够明显地提高序列推荐的性能。

附图说明

图1是fdsa的框架图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。

本发明提出一个新颖的特征层面的自注意力机制来做序列推荐。为了捕获显式转换模式,与那些将物品表示与其特征表示结合的方法不同,我们在物品序列和特征序列上运用独立的自注意力机制,分别去提取物品之间和特征之间的关系。之后,我们结合物品层面的上下文和特征层面的上下文来预测下一个物品。此外,我们进一步研究如何从物品的异构属性中学习有意义的隐式的特征转换模式。我们额外地添加一个vanilla注意力机制辅助基于特征的自注意力机制从物品的多样的属性中自适应地挑选重要的特征,并进一步学习潜在的隐式特征转换模式。然后,我们结合这两个块的输出结果到一个全连接层来预测下一个物品。

1、问题定义

我们让表示n个用户的集合,表示m个物品的集合。我们使用表示用户之前访问的按时间排序的一个行为序列,其中sj是第j时刻用户访问的物品,是物品的集合。每一个物品j有一些属性,例如,文本描述,类别和品牌。这里我们以物品的类别为例,物品j的类型被表示为cj,其中是类别的集合。序列推荐的目的是给定用户的历史行为序列,预测用户可能访问的下一个物品。

基于以上背景描述,本发明提出了一种新颖的基于特征层面更深的自注意力网络(fdsa),能够有效地捕获物品的特征之间的转换关系,来提高序列推荐性能。本发明的主要贡献有以下几点:1)我们提出一个新颖的框架,特征层面更深的自注意力网络(fdsa)来做序列推荐。fdsa利用自注意力网络结合物品转换模式和特征转换模式去建模用户序列意图。2)通过在物品序列和特征序列运用不同的自注意力块去建模显式和隐式特征转换。此外,为了获得隐式特征转换,一个vanilla注意力机制被增加去辅助基于特征的自注意力块从物品的多样的特征中去自适应地选择重要的特征。3)我们在两个真实的数据集上进行大量的实验,证明了我们提出方法的有效性。

1、我们提出的模型

正如我们之前提到的,人类日常活动经常表现出特征层面的转换模式。因此,本发明提出了一种新颖的基于特征层面更深的自注意力网络(fdsa),不仅能够学习物品层面的转换模式,而且能够建模特征层面的转换模式。如图1所示,fdsa由五部分组成,即,嵌入层,vanilla注意力层,基于物品的自注意力块,基于特征的自注意力块和全连接层。具体地,我们首先投射物品的稀疏表示和物品的离散化的特征(即,one-hot编码)到低维的稠密向量。对于物品的文本特征,我们利用一个主题模型去提取这些文本的主题关键词,然后利用word2vector模型去获得这些关键词的词向量表示。由于物品的特征通常是异构的,并且来自不同的领域。因此,我们利用一个一般的注意力机制辅助基于特征的自注意力机制从物品的异构属性中自适应的选择重要的特征。随后,通过两个自注意力块,用户的序列模式能够被学习,其中,基于物品的自注意力块被利用去学习物品层面的序列模式,基于特征的自注意力块被使用去捕获特征层面的序列模式。最后,我们结合着两个块的输出到一个全连接层去得到最后的预测。下面,我们详细介绍fdsa每一个部分的细节。

1)嵌入层

由于用户的行为属性是不固定的,我们从用户历史行为序列中取一个固定长度的序列s=(s1,s2,...,sn)来计算用户历史偏好,其中n代表我们模式处理的最大长度。如果一个用户的行为序列小于n,我们在序列的左边使用0来填充序列直到序列的长度达到n;如何一个用户的行为序列大于n,我们取最近的n个行为。此外,由于每一个物品对应着一个类别,我们能得到一个固定长度的类别序列c=(c1,c2,...,cn)。之后,我们利用一个嵌入层去转换行为序列s和其对应的类别序列c的one-hot向量到稠密向量表示。对于其他的类别型的特征(例如,品牌,商家),我们采用相同的方式处理。而对于文本型特征(例如,描述文本,物品的描述标题),我们首先利用广泛使用的主题模型提取文本的主题关键词,不久利用word2vector模型去学习关键词的文本语义表示。在这个实验中,我们从每一个物品的描述文本和描述标题中提取五个主题词,然后再利用平均池化方法融合五个关键词向量到一个向量表示。

2)vanilla注意力层

因为物品的特征经常是异构的,很难知道是哪些特征决定一个用户的选择。因此,我们使用一个vanilla注意力机制去辅助基于特征的自注意力块捕获用户对属性(例如,类别,商标,描述文本等)不断变化的喜好。给定一个物品j,它的属性能被编码为其中,vec(cj)和vec(bj)分别表示物品j的类别和品牌的稠密向量表示,表示物品j的文本特征表示。形式上,这个注意力网络被定义为:

αj=softmax(wfaj+bf),(1)

其中,wf是d×d的矩阵,bf是d-维的向量。最后,我们通过注意力评分来计算物品j的属性向量表示的加权和。

fj=αjaj。(2)

值得注意的是,如果物品j只考虑一个特征(例如,类别),这个物品j的特征表示为vec(cj)。

2)基于特征的自注意力块

因为基于物品的自注意力与基于特征的自注意力只有它们的输入部分不同,因此,我们集中在详细地描述基于特征自注意力块。从上面的vanilla注意力层,我们能得到物品j的特征表示fj。因此,给定一个用户,我们能得到一个特征序列f={f1,f2,...,fn)。为了建模特征层面的转换模式,我们利用vaswani等人提出的自注意力网络能够有效地捕获特征之间的关系,而不考虑它们之间的距离。虽然自注意网络可以确保计算效率并获得长期依赖性,但它忽略了序列输入的位置信息。因此,我们在特征的输入表示上加入位置矩阵即,这个基于特征的自注意力块的输入矩阵被定义为

vaswani等人提出的缩放点积注意力(sdpa),即自注意力机制被定义为

其中q,k,v分别表示query,key和value,d表示每个特征的特征维度。在基于特征自注意力机制块query,key和value都等于f,我们将它们通过三个不同的投射矩阵线性转换之后,喂到sdpa中,

hf=sdpa(fwq,fwk,fwv),(5)

其中wq,wk是投射矩阵。为了使模型能够共同处理来自不同位置的不同表示子空间的信息,这个自注意力机制采用多头注意力机制(mh),这个多头注意力机制能够被定义为

其中wo是要学习的参数,lf是基于特征自注意力机制设置的头数。除此之外,这个自注意力机制运用了残差连接,层正则化和激活函数为relu的两层全连接去增强自注意力机制的性能。最后,这个基于特征自注意力块的输出被定义为

其中w*,b*是模型参数。为了简化,我们定义整个自注意力块为

of=sab(f),(8)

因为物品的自注意力块和特征的自注意力块只是输入层面上有所不同,其余结构是一致的,因此这里为了简单采用统一的表述方式,将这两种都定义为sab();

第一个自注意力块之后,of本质上聚合了所有之前访问过的物品的特征表示。然而,下一个物品推荐可能更相关于最近访问的物品的特征,因此,我们在of基础之上,再运用自注意力机制,它能够捕获更加复杂的特征转换。当自注意机制堆叠q块之后,

其中,当q为0时,

3)基于物品的自注意力块

基于物品的自注意力块的目的是为了学习有意义的物品层面的转换模式。给定一个用户,我们能够得到一个物品序列s以及它对应的矩阵s。因此,这个堆叠的基于物品自注意力块被构造为

其中,当q为0时,

4)全连接层

为了同时捕获物品和特征的转换模式,我们连接基于物品自注意力块的输出结果和基于特征注意力块的输出结果然后投射到一个全连接层。

其中最后,我们通过点积操作计算用户对物品的偏好。

其中,表示osf的第t行,n是物品的嵌入矩阵,yt,j是给定之前的t个物品,物品j是下一个要访问的物品的概率。值得注意的是,在训练期间,这个模型输入的是一个序列(e.g.,s1,s2,...,sn-1),它期望得到的是一个“shifted”版本的序列:(i.e.,s2,s3,...,sn)。而在测试过程中,我们取矩阵osf的最后一行来预测下一个物品。

2、损失函数

在这个子部分,为了有效地从训练过程中学习,我们采用交叉熵损失函数作为fdsa模型的优化目标函数,它被定义为

在这里,对于序列中的每一个物品j,我们随机采样一个负样例j′。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围内。

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