基于注意力机制和卷积神经网络的用户行为序列推荐方法与流程

文档序号:18271056发布日期:2019-07-27 09:40阅读:795来源:国知局
基于注意力机制和卷积神经网络的用户行为序列推荐方法与流程

本发明涉及用户行为序列推荐方法,更具体地说,涉及一种基于注意力机制和卷积神经网络的用户行为序列推荐方法。



背景技术:

随着移动互联网技术不断发展,网络中的信息量以指数规律迅速扩展和增加,网络上的信息过载和信息迷航问题日益严重。为了给用户提供满意的信息和服务,推荐系统应运而生,成为了众多研究学者关注的研究领域。推荐系统通过预测用户对信息资源的喜好程度来进行信息过滤。

随着平台经济的快速发展,亚马逊,淘宝和优步等许多公司正在创建自我生态系统,通过与产品和服务的互动来留住用户。用户可以在日常生活中通过移动设备访问这些平台,这样就会生成了大量的行为日志。例如,2017年6月,优步累积了6800万用户旅行数据;foursquare上超过5000万用户已经产生了超过110亿的签到。要构建有效的推荐系统,关键因素是准确地表征和理解用户的兴趣和品味,而这些一直在不断的变动与发展。为了实现该目标,序列推荐应运而生,以基于用户历史活动序列来推荐用户可能与之交互的项目。

与传统的推荐系统不同,在序列推荐中,越来越多的数据来自系列的交易或会话。这些交易或会话形成用户的序列模式,用户接下来的可能访问的项目更可能取决于用户最近产生交互的项目。例如,一起购买牛奶和黄油导致用户接下来购买面粉的概率高于单独购买牛奶或黄油的概率。然而,传统的推荐方法,如协同过滤,矩阵分解和top-n推荐,不适合捕获序列模式,因为它们不会对动作的顺序进行建模。为了解决这个问题,早期的基于马尔可夫链的序列方法通常采用单独的模型来表征用户的长期偏好和短期偏好,然后将它们集成在一起。然而,这些基于马尔可夫链的方法建模每两个相邻项之间的局部顺序行为,但难以建模高阶关系。近年来,深度神经网络在相关领域得到了深入的研究,对序列推荐产生了很大的影响。用于建模用户序列模式的最流行的神经网络是循环神经网络(rnn)。基于rnn的方法比传统的顺序方法更强大。然而,rnn假设时间依赖性单调变化,这意味着当前或隐藏状态比前一个更重要。在序列推荐中,并非所有相邻动作都具有依赖关系。为了解决这个问题,有学者提出了采用卷积神经网络(cnn)的卷积滤波器对项目的嵌入向量进行卷积操作进而获得局部的序列特征。然而,这种方法只是将用户嵌入矩阵作为用户的长期偏好,这不足以学习用户的长期偏好。

因此,我们在本发明中提出了一种基于注意力机制和卷积神经网络的序列推荐方法。注意力机制用于建模用户的长期偏好,卷积神经网络用于挖掘用户的短期序列偏好,最后将这两者结合来产生推荐。



技术实现要素:

本发明的一个目的是解决至少上述问题和/或缺陷,并提供至少后面将说明的优点。

本发明提供所述的基于注意力机制和卷积神经网络的用户行为序列推荐方法,能够快速有效的的结合用户的长期偏好和短期偏好向用户推荐。

为了实现根据本发明的这些目的和其他优点,提供了一种基于注意力机制和卷积神经网络的用户行为序列推荐方法,其中,包括以下步骤:采集用户过往的行为数据作为长期偏好交互序列数据;

利用注意力机制算法计算所述长期偏好交互序列数据中各行为数据的权重,并根据所述权重计算出用户的长期偏好;

选取一段时间内的行为数据作为短期偏好交互序列数据;

根据所述短期偏好交互序列数据,利用卷积神经网络算法计算出用户的短期偏好;

将用户的长期偏好与短期偏好进行拼接,以产生用户行为序列推荐。

进一步的,所述过往的行为数据为用户在一定平台上的所有过往行为数据,或者为自当前日期起向从前计算一定时间的过往行为数据。

进一步的,所述选取一段时间内的行为数据为选取自当前日期起向从前计算一定时间的过往行为数据。

进一步的,所述利用卷积神经网络算法计算出用户的短期偏好的方法包括以下步骤:

利用水平卷积操作处理短期偏好交互序列数据,得到向量o;

利用垂直卷积操作处理短期偏好交互序列数据,得到向量

连接向量o和向量以此计算出用户的短期偏好。

进一步的,所述拼接输入到一个全连接网络中,以产生用户行为序列推荐。

进一步的,所述利用注意力机制算法计算所述长期偏好交互序列数据中各行为数据的权重包括以下步骤:

计算所述长期偏好交互序列数据中各行为数据的权重αj,包括:

首先计算出隐藏表示hj

其中,是线性整流函数(relu)的激活函数,w1和b1为经验参数,vj标示长期偏好交互序列数据中代表第j个项目的向量;

然后根据隐藏表示hj计算出权重αj

其中,u为代表当前待计算用户的向量,ut表示该向量的转置,lu代表该用户的长期偏好交互序列数据。

进一步的,所述根据所述权重计算出用户的长期偏好包括以下步骤:

将考虑了权重的项目嵌入长期偏好交互序列数据的总和表征用户的长期偏好ulong

进一步的,所述短期偏好交互序列数据为在t时刻,将从前的l个项目的嵌入向量,即从vt-l到vt-1,组成的矩阵e(u,t)视为图像,分别进行水平和垂直卷积运算;

所述利用水平卷积操作处理短期偏好交互序列数据,得到向量o包括以下步骤:

利用水平滤波器在不同时刻从项目矩阵上滑过并捕获序列特征,n表示滤波器个数,h表示水平滤波器的高度,k标示向量的维度,对于每一个时刻t,用每一个fx从e(u,t)的顶部滑动到底部,特征交互的结果的第i∈[1,l-h+1]个值由以下公式计算,

其中,是线性整流函数(rulu)的激活函数,·表示内积运算,表示矩阵e(u,t)的第i到第i+h-1行,所以,最终的卷积结果表示为向量cx

然后,对单个滤波器的输出结果cx进行最大池化(max-pooling)操作来获得最大值,因此,对于n个滤波器的最后输出结果用向量表示,

o=[max(c1),max(c2),...max(en)]

其中,

所述利用垂直卷积操作处理短期偏好交互序列数据,得到向量包括以下步骤:

个滤波器滤波器与e(u,t)的每一列进行交互,其卷积结果为

p是e(u,t)的第p行,使用垂直过滤器,聚合前面项目的嵌入向量,个滤波器的输出结果为

进一步的,所述连接向量o和向量的方法为:

连接结果

为参数,为参数,是激活函数。

进一步的,所述将用户的长期偏好与短期偏好进行拼接的方法包括:

通过以下公式得出拼接结果y(ut)

为参数,为参数,n表示项目的数量,数值表示在时刻t用户u与项目s交互的概率可能性大小,v为该用户的过往项目;

其中参数w2,b1,b2,w1,w3,b3为经验值,或根据以下方法得到:

采用梯度上升算法和反向传播方法来优化参数:

假设,相对于未观察到的项目,用户更加偏向于下一段时间交互的项目,于是定义这样一个排序规则对于项目p和q,则有:p是用户u在t时刻交互的项目,q是用户u在t时刻还未产生交互的项目,对于每次观察到的{(u,lu,p)},产生一对偏好序列d={(u,lu,p,q)},

然后,通过最大化下面的目标函数来训练模型,

θ代表模型对所有参数,λ是正则化权重,δ是逻辑斯谛函数,

通过上面的优化过程,求得模型参数θ的最优解,根据最优解推出所有参数。

本发明相比与传统的拟合用户-项目或项目-项目之间的交互的方法,够快速有效的结合用户的长期偏好和短期偏好向用户推荐。

本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。

附图说明

图1为本发明所述基于注意力机制和卷积神经网络的用户行为序列推荐方法的模型图。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

应当理解,本文所使用的诸如“具有”、“包含”以及“包括”术语并不配出一个或多个其它元件或其组合的存在或添加。

如图1所示,本发明所述基于注意力机制和卷积神经网络的用户行为序列推荐方法,其中,包括以下步骤:采集用户过往的行为数据作为长期偏好交互序列数据;

利用注意力机制算法计算所述长期偏好交互序列数据中各行为数据的权重,并根据所述权重计算出用户的长期偏好;

选取一段时间内的行为数据作为短期偏好交互序列数据;

根据所述短期偏好交互序列数据,利用卷积神经网络算法计算出用户的短期偏好;

将用户的长期偏好与短期偏好进行拼接,以产生用户行为序列推荐。

进一步的,所述过往的行为数据为用户在一定平台上的所有过往行为数据,或者为自当前日期起向从前计算一定时间的过往行为数据。

进一步的,所述选取一段时间内的行为数据为选取自当前日期起向从前计算一定时间的过往行为数据。

进一步的,所述利用卷积神经网络算法计算出用户的短期偏好的方法包括以下步骤:

利用水平卷积操作处理短期偏好交互序列数据,得到向量o;

利用垂直卷积操作处理短期偏好交互序列数据,得到向量

连接向量o和向量以此计算出用户的短期偏好。

进一步的,所述拼接输入到一个全连接网络中,以产生用户行为序列推荐。

进一步的,所述利用注意力机制算法计算所述长期偏好交互序列数据中各行为数据的权重包括以下步骤:

计算所述长期偏好交互序列数据中各行为数据的权重αj,包括:

首先计算出隐藏表示hj

其中,是线性整流函数(relu)的激活函数,w1和b1为经验参数,vj标示长期偏好交互序列数据中代表第j个项目的向量;

然后根据隐藏表示hj计算出权重αj

其中,u为代表当前待计算用户的向量,ut表示该向量的转置,lu代表该用户的长期偏好交互序列数据。

进一步的,所述根据所述权重计算出用户的长期偏好包括以下步骤:

将考虑了权重的项目嵌入长期偏好交互序列数据的总和表征用户的长期偏好ulong

进一步的,所述短期偏好交互序列数据为在t时刻,将从前的l个项目的嵌入向量,即从vt-l到vt-1,组成的矩阵e(u,t)视为图像,分别进行水平和垂直卷积运算;

所述利用水平卷积操作处理短期偏好交互序列数据,得到向量o包括以下步骤:

利用水平滤波器在不同时刻从项目矩阵上滑过并捕获序列特征,n表示滤波器个数,h表示水平滤波器的高度,k标示向量的维度,对于每一个时刻t,用每一个fx从e(u,t)的顶部滑动到底部,特征交互的结果的第i∈[1,l-h+1]个值由以下公式计算,

其中,是线性整流函数(rulu)的激活函数,·表示内积运算,表示矩阵e(u,t)的第i到第i+h-1行,所以,最终的卷积结果表示为向量cx

然后,对单个滤波器的输出结果cx进行最大池化(max-pooling)操作来获得最大值,因此,对于n个滤波器的最后输出结果用向量表示,

o=[max(c1),max(c2),...max(cn)]

其中,

所述利用垂直卷积操作处理短期偏好交互序列数据,得到向量包括以下步骤:用个滤波器滤波器的每一列进行交互,其卷积结果为

p是e(u,t)的第p行,使用垂直过滤器,聚合前面项目的嵌入向量,个滤波器的输出结果为

进一步的,所述连接连接向量o和向量的方法为:

连接结果

为参数,为参数,是激活函数。

进一步的,所述将用户的长期偏好与短期偏好进行拼接的方法包括:

通过以下公式得出拼接结果y(u,t)

为参数,为参数,n表示项目的数量,数值表示在时刻t用户u与项目s交互的概率可能性大小,v为该用户的过往项目;

其中参数w2,b1,b2,w1,w3,b3为经验值,或根据以下方法得到:

采用梯度上升算法和反向传播方法来优化参数:

假设,相对于未观察到的项目,用户更加偏向于下一段时间交互的项目,于是定义这样一个排序规则对于项目p和q,则有:p是用户u在t时刻交互的项目,q是用户u在t时刻还未产生交互的项目,对于每次观察到的{(u,lu,p)},产生一对偏好序列d={(u,lu,p,q)},

然后,通过最大化下面的目标函数来训练模型,

θ代表模型对所有参数,λ是正则化权重,δ是逻辑斯谛函数,

通过上面的优化过程,求得模型参数θ的最优解,根据最优解推出所有参数。

实施例

首先,我们用u={u1,u2,……,um}表示m个用户的集合,v={v1,v2,……,vn}表示源域n个的项目集合。每个用户都与一系列项目产生交互序列这个序列按照时间顺序排列,其中t表示相对的时间索引而不是绝对的时间,|lu|表示用户的交互序列长度。有了以上符号表示,我们的序列推荐任务定义如下,我们专注于从隐式反馈和用户交互序列反馈数据(例如,用户的连续签到和购买交易记录)中提取信息。当给定一个用户u和他的历史交互序列lu,我们的目的是从交互记录中挖掘用户的长期偏好和短期偏好来推荐用户u接下来一段时间内可能产生交互的项目集合。

相关方法

(1)梯度上升算法

梯度上升法是比较常用的优化算法。梯度上升法基于的思想是:找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻。如果梯度记为则函数f(x,y)的梯度可表示为:

这个梯度意味着要沿x的方向移动沿y的方向移动其中,函数f(x,y)必须在待计算的点上有定义且可微。在每次迭代中,梯度上升算法都会沿梯度方向移动一步。其中,梯度算子总是指向函数值增长最快的方向。这里所说的是移动方向,而没有提及移动量大小。该量值称为步长,记作α。梯度上升的迭代公式可以表示为:

该公式将一直被迭代执行,直至达到某个停止条件为止。比如迭代次数达到某个指定值或算法达到某个可以允许的误差范围。

(2)反向传播算法

反向传播算法,即bp算法,是在有导师指导下,适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上。bp网络的输入输出关系实质上是一种映射关系:一个输入m输出的bp神经网络所完成的功能是从n维欧氏空间向m维欧氏空间中一有限域的连续映射,这一映射具有高度非线性。它的信息处理能力来源于简单非线性函数的多次复合,因此具有很强的函数复现能力。这是bp算法得以应用的基础。反向传播算法主要由两个环节(激励传播、权重更新)反复循环迭代,直到网络的对输入的响应达到预定的目标范围为止。

bp算法的学习过程由正向传播过程和反向传播过程组成。在正向传播过程中,输入信息通过输入层经隐含层,逐层处理并传向输出层。如果在输出层得不到期望的输出值,则取输出与期望的误差的平方和作为目标函数,转入反向传播,逐层求出目标函数对各神经元权值的偏导数,构成目标函数对权值向量的梯量,作为修改权值的依据,网络的学习在权值修改过程中完成。误差达到所期望值时,网络学习结束。

如图1所示,提出了一种全新的基于注意力机制和卷积神经网络的序列推荐方法。我们提出的模型主要分为4层,第一层是嵌入层(embeddinglayer),将user和item映射到连续的低维空间;第二层是注意力层(attentionlayer)用来建模用户的长期偏好;第三层是卷积层(convolutionallayer),用来挖掘用户的短期序列偏好;第四层是全连接层(fully-connectedlayer),拟合用户长期偏好和短期偏好来产生推荐。实验结果表明,我们提出的方法优于最先进的方法。

1、embeddinglayer

类似于自然语言处理中的离散词汇符号表示,原始的user和item的id的表示能力有限。因此,我们的模型第一步将user和item映射到两个低维连续空间中,分别记作矩阵ue和矩阵ve分别表示映射得到的user_embedding和item_embedding,k表示低维空间的维度,m和n别表示用户和项目的数量。

2、attentionlayer

由于用户的长期项目集通常随时间变化,因此学习每个用户的静态长期偏好表示不能完全表达用户的长期偏好的动态。此外,我们认为相同的项目可能会对不同的用户产生不同的影响,并且不同的项目会对将要访问或者购买的下几个项目产生不同的影响。例如,用户a因为自己的兴趣而购买物品m,而用户b购买物品m是为了送给朋友。在这种情况下,在预测他们可能在不久的将来购买什么时,项目m对用户a和b应该具有不同的权重。

为了满足上述要求,我们使用注意机制,该机制已成功应用于许多任务,如自动应答,文档分类和推荐。给定用户u,我们首先计算他/她的历史序列lu中每个项目的重要性,然后我们聚合这些项目的嵌入向量以形成用户的长期偏好表示。形式上,注意力网络定义如下:

是参数,vj表示项目j的嵌入向量,是relu激活函数,用来提升模型的非线性能力。首先,我们将用户u的历史交互序列lu中的每一个项目的低维空间向量vj输入到一个全连接网络中得到其隐藏表示hj;然后,根据公式(1)求得其对应的注意力权重αj。传统注意模型中是每个输入使用相同的上下文向量,我们将用户u的嵌入向量视为上下文向量,并将注意得分αj作为hj和u之间的归一化相似度与softmax函数一起测量,其表征了项目j对用户的重要性u。最后,我们用注意力得分加权的项目嵌入向量的总和表征用户的长期偏好,记作ulong

3、卷积层

卷积层利用cnn的卷积滤波器(filter)的去捕获用户的局部序列特征,对于给定的一个用户u及其交互序列lu,我们在t时刻,将前面的l个项目的嵌入向量(即从vt-l到vt-1)组成的矩阵e(u,t)视为“图像”,分别进行水平和垂直卷积运算。水平卷积层

在水平卷积操作中,我们利用水平滤波器在不同时刻从项目矩阵上滑过并捕获序列特征,n表示滤波器个数,h表示水平滤波器的高度。对于每一个时刻t,我们用每一个fx从e(u,t)的顶部滑动到底部。特征交互的结果的第i∈[1,l-h+1]个值由公式(2)计算,

是rulu激活函数,·表示内积运算,表示矩阵e(u,t)的第i到第i+h-1行。所以,最终的卷积结果表示为向量cx

然后,我们对对单个滤波器的输出结果cx进行最大池化(max-pooling)操作来获得最大值。因此,对于n个滤波器的最后输出结果我们用向量表示,

o=[max(c1),max(c2),...max(cn)]

垂直卷积层

垂直卷积层中,我们用(~)来标记符号。

与水平卷积层中类似的,我们用个滤波器滤波器与e(u,t)的每一列进行交互,其卷积结果为

p是e(u,t)的第p行。使用垂直过滤器,我们可以聚合前面项目的嵌入向量,因此,这些垂直过滤器可以用t时刻前面l个项目的嵌入向量的加权和来捕获用户u的局部序列特征。个滤波器的输出结果为

没有必要对垂直卷积结果应用池化操作,因为我们希望保持每个潜在维度的聚合。因此,该层的输出是

最后,我们连接两个卷积层的输出,然后将它们输入到一个全连接网络中,以获得更加高级和抽象的序列特征表示

是激活函数。

4、fully-connectedlayer

为了获得用户的总体偏好,我们还将注意力层的输出和卷积层的输出连接在一起,并将它们输入到一个全连接输出层中,表示如下,

n表示项目的数量,数值表示在时刻t用户u与项目s交互的概率可能性大小。最后,根据y(u,t)来推荐用户接下来可能交互的项目。

网络模型参数优化

为了优化模型,得到最佳的模型参数,我们采用基于上述的梯度上升算法和反向传播方法来优化模型。同时,我们采用brp优化准则目标函数。我们假设,相对于未观察到的项目,用户更加偏向于下一段时间购买的项目,于是我们定义这样一个排序规则对于项目p和q,则有:p是用户u在t时刻交互的项目,q是用户u在t时刻还未产生交互的项目。对于每次观察到的{(u,lu,p)},我们产生一对偏好序列d={(u,lu,p,q)}。

然后,我们通过最大化下面的目标函数来训练我们的模型,

θ代表模型对所有参数,λ是正则化权重,δ是逻辑斯谛函数。

通过上面的优化过程,我们可以求得模型参数θ的最优解。

尽管本发明的实施方案已公开如上,但其并不仅限于说明书和实施方式中所列运用。它完全可以被适用于各种适合本发明的领域。对于熟悉本领域的人员而言,可容易地实现另外的修改。因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

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