CN111127165B - 基于自注意力自编码器的序列推荐方法 - Google Patents
基于自注意力自编码器的序列推荐方法 Download PDFInfo
- Publication number
- CN111127165B CN111127165B CN201911369965.7A CN201911369965A CN111127165B CN 111127165 B CN111127165 B CN 111127165B CN 201911369965 A CN201911369965 A CN 201911369965A CN 111127165 B CN111127165 B CN 111127165B
- Authority
- CN
- China
- Prior art keywords
- self
- commodity
- attention
- sequence
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 239000013598 vector Substances 0.000 claims abstract description 72
- 239000011159 matrix material Substances 0.000 claims abstract description 52
- 238000012549 training Methods 0.000 claims abstract description 14
- 238000007781 pre-processing Methods 0.000 claims abstract description 5
- 230000007246 mechanism Effects 0.000 claims description 44
- 238000004364 calculation method Methods 0.000 claims description 34
- 230000006870 function Effects 0.000 claims description 27
- 238000013528 artificial neural network Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 23
- 238000013135 deep learning Methods 0.000 claims description 9
- 230000004913 activation Effects 0.000 claims description 8
- 230000009466 transformation Effects 0.000 claims description 7
- 230000000295 complement effect Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 230000006872 improvement Effects 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 4
- 230000007774 longterm Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06393—Score-carding, benchmarking or key performance indicator [KPI] analysis
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Human Resources & Organizations (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Software Systems (AREA)
- Economics (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Entrepreneurship & Innovation (AREA)
- Evolutionary Computation (AREA)
- General Business, Economics & Management (AREA)
- Molecular Biology (AREA)
- Educational Administration (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供的基于自注意力自编码器的序列推荐方法,包括:获取用户商品序列和评分矩阵,并对商品序列进行预处理;使用自注意力模型对商品序列进行训练,预测用户与商品的关联性得分;使用自编码器对评分矩阵重建,计算用户喜爱度指数;结合用户与商品的关联性得分和用户喜爱度指数,得到高得分的商品为用户优先推荐。本发明提供的基于自注意力自编码器的序列推荐方法,利用词嵌入的方法将用户的物品浏览序列转化为低维稠密向量,结合位置编码输入自注意力模型中,再利用自编码器对评分矩阵的拟合和重建,计算用户喜爱度指数,最后得到最终的预测得分,为用户做出推荐,该方法同时考虑用户长、短期偏好等因素,有效地提升了推荐精度。
Description
技术领域
本发明涉及序列推荐技术领域,更具体的,涉及一种基于自注意力自编码器的序列推荐方法。
背景技术
推荐系统是一种典型的主动帮助用户找到他们需要的信息的解决方式。一般的推荐系统主要根据用户的个人基本信息、历史交互数据,甚至是利用所有用户的这部分数据,将其相结合,对用户的兴趣进行建模,帮助用户在海量的数据中找到他们可能感兴趣的信息或者商品。但在实际的用户场景中,所有用户的全部信息是一个很难获得的数据,在加上用户的需求是动态变化的,其历史数据信息反映的是用户的长期偏好,而用户的短期偏好通过历史记录的数据是很难反馈的。而基于序列的推荐系统可以在没有过多的历史记录的条件下,只利用用户浏览物品的序列信息,对用户下一个浏览的物品做出预测,推荐出用户可能感兴趣的物品对象。
现有的序列推荐算法主要包括两种方法:一是从一阶马尔科夫链的角度出发进行分析;二是将序列推荐看成是一个经典的seq2seq问题。例如,分解个性化马尔科夫链模型(FPMC)结合马尔科夫链和矩阵分解以实现个性化推荐。而GRU4Rec模型使用了基于GRU的seq2seq框架来处理序列推荐问题。但是,马尔科夫链方法只能捕获用户的短期兴趣;而一般的循环神经网络模型则可能捕获过于复杂的依赖关系,因此现有的序列推荐算法并无法同时考虑用户长、短期偏好,推荐的精确度低。
发明内容
本发明为克服现有的序列推荐算法存在无法同时考虑用户长、短期偏好,推荐的精确度低的技术缺陷,提供一种基于自注意力自编码器的序列推荐方法。
为解决上述技术问题,本发明的技术方案如下:
基于自注意力自编码器的序列推荐方法,包括以下步骤:
S1:获取用户商品序列和评分矩阵,并对商品序列进行预处理;
S2:使用自注意力模型对商品序列进行训练,预测用户与商品的关联性得分;
S3:使用自编码器对评分矩阵重建,计算用户喜爱度指数;
S4:结合用户与商品的关联性得分和用户喜爱度指数,得到高得分的商品为用户优先推荐。
其中,在所述步骤S1中,对商品序列进行预处理预处理的过程具体为:
将用户u浏览的商品序列Su拆成输入序列(S1,S2,...,S|su-1|)和输出序列(S2,S3,...,S|su|),其中,输入序列作为自注意力模型编码部分的输入,输出序列作为自注意力模型解码部分的输入;
设定超参数为n的商品序列最长长度,若用户商品序列超过最长长度,则对其进行截断,保留前n个商品序列;若用户原始商品序列小于最长长度,则对其左侧进行填补,最后得到长度为n的商品序列(S1,S2,...,Sn),完成商品序列的预处理。
其中,所述步骤S2具体包括以下步骤:
S21:利用网络嵌入方法训练商品序列,将用户浏览的商品序列转化为低维稠密向量,结合位置编码方式得到模型的输入向量;
S22:采用多头自注意力机制对商品序列的输入向量进行建模,构建自注意力模型;
S23:将自注意力模型加上一个两层的前馈神经网络进行数据拟合,对用户与商品的关联性得分进行预测。
其中,所述步骤S21具体为:
利用网络嵌入方法对商品进行词向量学习,得到商品序列的嵌入矩阵M∈R|I|*d,其中|I|为商品的总数,d为嵌入向量的维度,M的每一行表示一个商品对应的向量;
使用位置编码方式,记录商品序列相对位置信息,具体计算公式为:
PE(pos,2i)=sin(pos/100002i/d)
PE(pos,2i+1)=cos(pos/100002i/d)
其中,pos表示商品序列第几个商品,d表示嵌入向量的维度,2i和2i+1表示pos为偶数或奇数对应的公式;通过三角函数的方式得到商品序列的位置向量P∈Rn*d;将商品序列的嵌入矩阵和位置向量行拼接,得到输入向量具体为:
其中:Msi和Psi(i=1,...,n)分别表示商品Si的词向量和位置向量。
其中,所述步骤S22具体为:
首先,单个自注意力机制将得到的输入向量进行权重线性转化,同时对线性转化得到的values进行加权求和,并归一化到0至1之间,具体计算公式为:
其中,Q表示查询queries,K表示键keys,V表示值values,WQ、WK、WV∈Rd*d分别代表Q、K、V对应的随机初始化的权重,d表示模型的维度;然后,初始化h组不同的Q、K、V,得到h组单个自注意力机制,拼接为h头自注意力机制,具体计算公式为:
MultiHead(Q,K,V)=Concat(head1,...,headh)WO
其中,WO∈Rhd*d;接着,对多头自注意力机制的结果与输入向量进行拼接并标准化,构建自注意力模型,具体公式为:
其中,参数L表示利用残差连接的思想得到的多头自注意力层的输出结果。
其中,所述步骤S23具体为:
将自注意力模型加上一个两层的前馈神经网络进行数据拟合,具体计算公式为:
Fi=FFN(Si)=ReLU(SiW(1)+b(1))W(2)+b(2)
其中,W(1)和W(2)均为d*d维矩阵,b(1)和b(2)均为d维向量;接着,将一个多头自注意力机制和一个前馈神经网络构成一个自注意力模块,使用多个自注意力模块进行深度学习,具体计算公式为:
Lb=MultiHead(F(b-1))
其中,第一个自注意力模块L(1)=L和F(1)=F;根据自注意力模块的深度学习堆叠得到的特征Ft (b)对用户与商品的关联性得分进行预测,具体计算公式为:
其中,ri,t表示给定前t个商品时,商品i的预测得分;M∈R|I|*d表示商品的嵌入矩阵。
上述方案中,在模块堆叠过程中,为了缓解梯度消失和过拟合等问题,自注意力模型吸收了残差连接、层标准化和Dropout等多方面的内容,得到如下公式:
g(x)=x+Dropout(g(LayerNorm(x)))
其中,g(x)表示自注意力层或前馈神经网络。
其中,步骤S2中所述的自注意力模型在训练过程中使用二元交叉熵作为损失函数,具体计算公式为:
其中,<pad>表示补0的项;rot,t表示给定前t个商品时,商品ot的预测得分;rj,t表示给定前t个商品时,商品j的预测得分。
其中,所述步骤S3具体为:
自编码器通过神经网络以及激活函数对输入的评分矩阵R进行重建,对重建后的评分矩阵h(r;θ)归一化,得到用户喜爱度指数αi,具体计算公式为:
h(r;θ)=f(W·g(VR+μ)+b)
αi=softmax(h(r;h))
其中,g(·)表示激活函数,此处使用sigmoid函数;f(·)表示恒等函数;r∈Rd为输入向量,θ表示参数,即θ={W,V,μ,b};W∈Rd×k,V∈Rk×d为权重矩阵,μ∈Rk,b∈Rd为偏移量;R∈Rm×n为评分矩阵;d为输入向量维度,k为隐藏层维度;n为物品数,m为用户数。
其中,在所述步骤S3中,自编码器在训练过程中使用均分误差作为损失函数,具体计算公式为:
其中,表示只考虑具有观测值的样本范数;λ表示正则化系数。
其中,所述步骤S4中,结合用户与商品的关联性得分和用户喜爱度指数具体包括A、B两个过程:
A:若用户ID不存在,则直接使用自注意力模型的结果预测得分ri对用户作最后的商品推荐;
B:若用户ID存在,则自注意力模型给出的结果预测得分ri与自编码器的用户喜爱度指数αi进行点乘,加权得到每个用户对所有商品的最终预测得分,具体计算公式为:
scorei=∑αiri
然后对scorei进行降序排序,得到高得分的商品为用户优先推荐。
上述方案中,所述的自注意力模型包含三个部分的注意力机制,其注意力机制公式在细节上有所不同,具体为:
Encoder间的Attention:
Decoder间的Attention:
mask=(1,1,...,0,0)
Encoder和Decoder间的Attention:
其中,QE、KE和VE表示来自encoder的queries、keys和values;QD、KD和VD表示来自decoder的queries、keys和values;mask表示屏蔽机制,当预测t时刻的状态时,前t个状态均为1,t时刻以后的状态为0。
与现有技术相比,本发明技术方案的有益效果是:
本发明提供的基于自注意力自编码器的序列推荐方法,利用词嵌入的方法将用户的物品浏览序列转化为低维稠密向量,并结合位置编码输入到自注意力模型中,得到下一个物品的预测得分;再利用自编码器对评分矩阵的拟合和重建,将重建后的评分矩阵归一化为计算用户喜爱度指数;最后结合自编码器指数与自注意力的得分得到最终的预测得分,根据该得分降序排列为用户做出推荐,该方法同时考虑用户长、短期偏好等因素,有效地提升了推荐精度。
附图说明
图1为本发明所述方法的流程示意图;
图2为本发明所述方法的整体框架图;
图3为本发明嵌入层词向量学习神经网络图;
图4为本发明的单头自注意力机制结构图和并行运行多个单自注意力机制的多头自注意力机制结构图;
图5为本发明的自编码器网络示意图;
图6为本发明是实例中不同数据集下参数对模型效果影响示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
如图1所示,基于自注意力自编码器的序列推荐方法,包括以下步骤:
S1:获取用户商品序列和评分矩阵,并对商品序列进行预处理;
S2:使用自注意力模型对商品序列进行训练,预测用户与商品的关联性得分;
S3:使用自编码器对评分矩阵重建,计算用户喜爱度指数;
S4:结合用户与商品的关联性得分和用户喜爱度指数,得到高得分的商品为用户优先推荐。
更具体的,在所述步骤S1中,对商品序列进行预处理预处理的过程具体为:
将用户u浏览的商品序列Su拆成输入序列(S1,S2,...,S|su-1|)和输出序列(S2,S3,...,S|su|),其中,输入序列作为自注意力模型编码部分的输入,输出序列作为自注意力模型解码部分的输入;
设定超参数为n的商品序列最长长度,若用户商品序列超过最长长度,则对其进行截断,保留前n个商品序列;若用户原始商品序列小于最长长度,则对其左侧进行填补,最后得到长度为n的商品序列(S1,S2,...,Sn),完成商品序列的预处理。
更具体的,所述步骤S2具体包括以下步骤:
S21:利用网络嵌入方法训练商品序列,将用户浏览的商品序列转化为低维稠密向量,结合位置编码方式得到模型的输入向量;
S22:采用多头自注意力机制对商品序列的输入向量进行建模,构建自注意力模型;
S23:将自注意力模型加上一个两层的前馈神经网络进行数据拟合,对用户与商品的关联性得分进行预测。
更具体的,所述步骤S21具体为:
利用网络嵌入方法对商品进行词向量学习,得到商品序列的嵌入矩阵M∈R|I|*d,其中|I|为商品的总数,d为嵌入向量的维度,M的每一行表示一个商品对应的向量;
使用位置编码方式,记录商品序列相对位置信息,具体计算公式为:
PE(pos,2i)=sin(pos/100002i/d)
PE(pos,2i+1)=cos(pos/100002i/d)
其中,pos表示商品序列第几个商品,d表示嵌入向量的维度,2i和2i+1表示pos为偶数或奇数对应的公式;通过三角函数的方式得到商品序列的位置向量P∈Rn*d;将商品序列的嵌入矩阵和位置向量行拼接,得到输入向量具体为:
其中:Msi和Psi(i=1,...,n)分别表示商品Si的词向量和位置向量。
更具体的,所述步骤S22具体为:
首先,单个自注意力机制将得到的输入向量进行权重线性转化,同时对线性转化得到的values进行加权求和,并归一化到0至1之间,具体计算公式为:
其中,Q表示查询queries,K表示键keys,V表示值values,WQ、WK、WV∈Rd*d分别代表Q、K、V对应的随机初始化的权重,d表示模型的维度;然后,初始化h组不同的Q、K、V,得到h组单个自注意力机制,拼接为h头自注意力机制,具体计算公式为:
MultiHead(Q,K,V)=Concat(head1,...,headh)WO
其中,WO∈Rhd*d;接着,对多头自注意力机制的结果与输入向量进行拼接并标准化,构建自注意力模型,具体公式为:
其中,参数L表示利用残差连接的思想得到的多头自注意力层的输出结果。
更具体的,所述步骤S23具体为:
将自注意力模型加上一个两层的前馈神经网络进行数据拟合,具体计算公式为:
Fi=FFN(Si)=ReLU(SiW(1)+b(1))W(2)+b(2)
其中,W(1)和W(2)均为d*d维矩阵,b(1)和b(2)均为d维向量;接着,将一个多头自注意力机制和一个前馈神经网络构成一个自注意力模块,使用多个自注意力模块进行深度学习,具体计算公式为:
Lb=MultiHead(F(b-1))
其中,第一个自注意力模块L(1)=L和F(1)=F;根据自注意力模块的深度学习堆叠得到的特征Ft (b)对用户与商品的关联性得分进行预测,具体计算公式为:
其中,ri,t表示给定前t个商品时,商品i的预测得分;M∈R|I|*d表示商品的嵌入矩阵。
在具体实施过程中,在模块堆叠过程中,为了缓解梯度消失和过拟合等问题,自注意力模型吸收了残差连接、层标准化和Dropout等多方面的内容,得到如下公式:
g(x)=x+Dropout(g(LayerNorm(x)))
其中,g(x)表示自注意力层或前馈神经网络。
更具体的,步骤S2中所述的自注意力模型在训练过程中使用二元交叉熵作为损失函数,具体计算公式为:
其中,<pad>表示补0的项;rot,t表示给定前t个商品时,商品ot的预测得分;rj,t表示给定前t个商品时,商品j的预测得分。
更具体的,所述步骤S3具体为:
自编码器通过神经网络以及激活函数对输入的评分矩阵R进行重建,对重建后的评分矩阵h(r;θ)归一化,得到用户喜爱度指数αi,具体计算公式为:
h(r;θ)=f(W·g(VR+μ)+b)
αi=softmax(h(r;h))
其中,g(·)表示激活函数,此处使用sigmoid函数;f(·)表示恒等函数;r∈Rd为输入向量,θ表示参数,即θ={W,V,μ,b};W∈Rd×k,V∈Rk×d为权重矩阵,μ∈Rk,b∈Rd为偏移量;R∈Rm×n为评分矩阵;d为输入向量维度,k为隐藏层维度;n为物品数,m为用户数。
更具体的,在所述步骤S3中,自编码器在训练过程中使用均分误差作为损失函数,具体计算公式为:
其中,表示只考虑具有观测值的样本范数;λ表示正则化系数。
更具体的,所述步骤S4中,结合用户与商品的关联性得分和用户喜爱度指数具体包括A、B两个过程:
A:若用户ID不存在,则直接使用自注意力模型的结果预测得分ri对用户作最后的商品推荐;
B:若用户ID存在,则自注意力模型给出的结果预测得分ri与自编码器的用户喜爱度指数αi进行点乘,加权得到每个用户对所有商品的最终预测得分,具体计算公式为:
scorei=∑αiri
然后对scorei进行降序排序,得到高得分的商品为用户优先推荐。
在具体实施过程中,所述的自注意力模型包含三个部分的注意力机制,其注意力机制公式在细节上有所不同,具体为:
Encoder间的Attention:
Decoder间的Attention:
mask=(1,1,...,0,0)
Encoder和Decoder间的Attention:
其中,QE、KE和VE表示来自encoder的queries、keys和values;QD、KD和VD表示来自decoder的queries、keys和values;mask表示屏蔽机制,当预测t时刻的状态时,前t个状态均为1,t时刻以后的状态为0。
在具体实施过程中,本发明提供的基于自注意力自编码器的序列推荐方法,利用词嵌入的方法将用户的物品浏览序列转化为低维稠密向量,并结合位置编码输入到自注意力模型中,得到下一个物品的预测得分;再利用自编码器对评分矩阵的拟合和重建,将重建后的评分矩阵归一化为计算用户喜爱度指数;最后结合自编码器指数与自注意力的得分得到最终的预测得分,根据该得分降序排列为用户做出推荐,该方法同时考虑用户长、短期偏好等因素,有效地提升了推荐精度。
实施例2
更具体的,本发明提出了一种基于自注意力自编码器的序列推荐方法,采用一个自注意力机制对用户长、短偏好之间的交互进行建模,同时加入了一个自编码器对用户的评分矩阵进行重建,然后对这两个模块的信息进行融合,从而实现对用户的个性化智能推荐。如图2所示,本发明算法的整体框架图,主要包含了自注意力模型、自编码器模型两个部分。
在具体实施过程中,如图3所示的自注意力模型嵌入层的词向量学习神经网络结构,该神经网络工作的思路是基于分布式假设的,即两个相同的商品,若其所处的上下文类似,那么这两个商品也可能是同质商品。该神经网络结构通过对预处理后的商品序列的one-hot编码进行建模,得到商品的嵌入矩阵M∈R|I|*d,其中|I|表示商品的总数,d表示嵌向量的维度。M的每一行表示每一个商品对应的向量。
此外,利用网络嵌入方法对商品进行词向量学习,得到商品序列的嵌入矩阵M∈R|I|*d,其中|I|为商品的总数,d为嵌入向量的维度,M的每一行表示一个商品对应的向量;
使用位置编码方式,记录商品序列相对位置信息,具体计算公式为:
PE(pos,2i)=sin(pos/100002i/d)
PE(pos,2i+1)=cos(pos/100002i/d)
其中,pos表示商品序列第几个商品,d表示嵌入向量的维度,2i和2i+1表示pos为偶数或奇数对应的公式;通过三角函数的方式得到商品序列的位置向量P∈Rn*d;将商品序列的嵌入矩阵和位置向量行拼接,得到输入向量具体为:
其中:Msi和Psi(i=1,...,n)分别表示商品Si的词向量和位置向量。
在具体实施过程中,如图4所示,左边为单头的自注意力机制,它是多头自注意力机制的基本单元,其核心公式如下所示:
其中,Q表示查询queries,K表示键keys,V表示值values,WQ、WK、WV∈Rd*d分别代表Q、K、V对应的随机初始化的权重,d表示模型的维度;由于自注意力模型包含三个部分的注意力机制(可参见图1),其自注意力机制公式在细节上有所不同,具体如下:
Encoder间的Attention:
Decoder间的Attention:
mask=(1,1,...,0,0)
Encoder和Decoder间的Attention:
其中,QE、KE和VE表示来自encoder的queries、keys和values;QD、KD和VD表示来自decoder的queries、keys和values。mask表示屏蔽机制,当预测t时刻的状态时,前t个状态均为1,t时刻以后的状态为0。
在具体实施过程中,如图4所示,右边为并行运行多个单自注意力机制的多头自注意力机制,它是自注意力模型的核心部分。当随机生成多组不同的Q,K,V时,相当于将原始的输入矩阵映射到多个不同的空间中,他们能够学习到不同表示空间中的特征,从而增加模型的准确率。多头自注意力机制的公式如下:
MultiHead(Q,K,V)=Concat(head1,...,headh)WO
其中,WO∈Rhd*d。
进一步的,对多头自注意力机制的结果与原始输入进行拼接并标准化,输出给下一层,具体公式如下:
由于多头自注意力机制本质上只是线性的加权求和,其对复杂数据的拟合能力欠佳。因此,自注意力模型在多头自注意力机制之后加上了一个两层的前馈神经网络以实现对复杂数据的拟合,具体公式如下:
Fi=FFN(Si)=ReLU(SiW(1)+b(1))W(2)+b(2)
其中,W(1)和W(2)均为d*d维矩阵,b(1)和b(2)均为d维向量。
此外,为了进一步学习到更复杂、更深入的特征,自注意力模型使用了模块堆叠的思想,将一个多头自注意力机制和一个前馈神经网络构成一个自注意力模块,然后使用多个模块,具体公式如下:
Lb=MultiHead(F(b-1))
其中,第一个自注意力模块L(1)=L和F(1)=F;根据自注意力模块的深度学习堆叠得到的特征Ft (b)对用户与商品的关联性得分进行预测,具体计算公式为:
其中,ri,t表示给定前t个商品时,商品i的预测得分;M∈R|I|*d表示商品的嵌入矩阵。然后根据ri,t得分,对用户优先推荐高分的商品。
在具体实施过程中,如图5所示的自编码器网络示意图,自编码器可以分为编码和解码两个过程。解码层使用全连接层对评分矩阵R进行建模,并引入激活函数g(·)加入足够的非线性。然后再进行一次线性或非线性变换,得到重建后的评分矩阵h(r;θ),对其归一化,得到用户喜爱度指数α,具体计算公式为:
h(r;θ)=f(W·g(VR+μ)+b)
αi=softmax(h(r;h))
其中,g(·)表示激活函数,此处使用sigmoid函数;f(·)表示恒等函数;r∈Rd为输入向量,θ表示参数,即θ={W,V,μ,b};W∈Rd×k,V∈Rk×d为权重矩阵,μ∈Rk,b∈Rd为偏移量;R∈Rm×n为评分矩阵;d为输入向量维度,k为隐藏层维度;n为物品数,m为用户数。自编码器在训练过程中使用均分误差作为损失函数,具体计算公式为:
其中,表示只考虑具有观测值的样本范数;λ表示正则化系数。
在具体实施过程中,通过自注意力模型和自编码器的结合推荐方法,实现对用户的个性化智能推荐。具体包括以下两个过程:
(1)若用户ID不存在,则直接使用自注意力模型的结果预测得分ri对用户作最后的商品推荐。
(2)若用户ID存在,则自注意力模型给出的结果预测得分r与自编码器的用户喜爱度指数α进行点乘,加权得到每个用户对所有商品的最终预测得分,具体公式如下:
scorei=∑αiri
最后,对score进行降序排序,使用高分优先推荐方法,对用户进行商品推荐。
实施例3
更具体的,选用了亚马逊数据源中的美妆(Beauty)数据集和视频游戏(Videogame)数据集,以及MovieLens数据源中的MovueLens1M数据集这三个数据集对本发明所述方法进行评估,数据集的具体信息如表1所示:
表1
本实验使用了两套评价指标。对于自编码器,采用均方误差作为评价指标;对于自注意力模型以及本发明的整个模型,选择两个最常见的Top k评价指标,分别为命中率(Hitrate@k)和标准化折扣累积增益(NDCG@k)。
本实验在三个数据集上的参数设置略有不同。在几个重要的参数选择中,通过对比不同值上模型的表现效果来选择最终模型参数值,具体可参见图6。图6为本发明优选实例中不同数据集下参数对模型效果影响示意图,从上到下依次是自编码器隐藏层的神经元个数对实验效果的影响、商品序列最长长度对实验效果的影响、嵌入层神经网络的维度对实验效果的影响、自注意力模块堆叠个数对实验效果的影响和自注意力机制的头数对实验效果的影响。本实验三个数据集参数配置如表2所示:
表2
其中,hidden_units表示自编码器隐藏层的神经元个数;max_length表示商品序列最长长度;embedding_dim表示嵌入层神经网络的维度;blocks表示自注意力模块堆叠个数;num_heads表示自注意力机制的头数。
在具体实施过程中,本实验选择了8个基准模型作为比较对象,其包括了马尔科夫方法以及深度学习方法:BPR是一类经典的运用了矩阵分解思想的推荐算法;FCM是基于马尔科夫决策过程对序列进行建模;FPMC则结合了FCM和矩阵分解两种方法,提升了推荐的效果;TransRec从嵌入空间的角度入手,将物品和不同的用户嵌入到同一空间中,进而实现物品的推荐;GRU4Rec是基于GRU的seq2seq框架的序列推荐方法;GRU4Rec+在GRU4Rec的基础上引入了四种优化方法,如dropout机制和数据增强等;Caser基于卷积神经网络的角度,提出了卷积序列嵌入的推荐方法;SASRec利用了自注意力机制对序列进行建模,在多个公共数据集上取得了目前最佳的效果。
这几个基准模型和本发明提出的自注意力自编码器序列推荐算法的总体效果如表3所示。
表3
/>
从表3中可以看出,在三个不同大小的数据集上,无论是HR@10或者是NDCG@10,相对于目前已有的传统推荐方法或深度学习方法,本发明提出的算法整体表现都比较好,提升效果也越来越明显。在数据集Amazon-Beauty上,HR@10提升了0.38%,但NDCG@10略有下降。而在数据集Amazon-Video games上,两个指标都有不同程度的上升,HR@10和NDCG@10分别提升了0.45%和0.56%。而在数据集MovieLens-1M上,两个指标提升程度最好,HR@10提升了1.07%,NDCG@10提升了1.13%,均有1%以上的明显提升。
综上,本发明提出的基于自注意力自编码器的序列推荐方法通过结合自注意力模型和自编码器两个方法,融合了用户长期和短期的兴趣偏好,实现了对用户的个性化智能推荐。同时,本发明在三个大小不同的数据集上进行测试,结果表明,本发明的方法比现有的效果要好。在Amazon-Beauty数据集上,HR@10提升了0.38%;在Amazon-Video games数据集上,HR@10提升了0.45%,NDCG@10提升了0.56%;在MovieLens-1M数据集上,HR@10提升了1.07%,NDCG@10提升了1.13%。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (8)
1.基于自注意力自编码器的序列推荐方法,其特征在于,包括以下步骤:
S1:获取用户商品序列和评分矩阵,并对商品序列进行预处理;
S2:使用自注意力模型对商品序列进行训练,预测用户与商品的关联性得分;
具体包括以下步骤:
S21:利用网络嵌入方法训练商品序列,将用户浏览的商品序列转化为低维稠密向量,结合位置编码方式得到模型的输入向量;
S22:采用多头自注意力机制对商品序列的输入向量进行建模,构建自注意力模型;
S23:将自注意力模型加上一个两层的前馈神经网络进行数据拟合,对用户与商品的关联性得分进行预测;
S3:使用自编码器对评分矩阵重建,计算用户喜爱度指数;
具体为:
自编码器通过神经网络以及激活函数对输入的评分矩阵R进行重建,对重建后的评分矩阵h(r;θ)归一化,得到用户喜爱度指数αi,具体计算公式为:
h(r;θ)=f(W·g(VR+μ)+b)
αi=softmax(h(r;h))
其中,g(·)表示激活函数,此处使用sigmoid函数;f(·)表示恒等函数;r∈Rd为输入向量,θ表示参数,即θ={W,V,μ,b};W∈Rd×k,V∈Rk×d为权重矩阵,μ∈Rk,b∈Rd为偏移量;R∈Rm ×n为评分矩阵;d为输入向量维度,k为隐藏层维度;n为物品数,m为用户数;
S4:结合用户与商品的关联性得分和用户喜爱度指数,得到高得分的商品为用户优先推荐。
2.根据权利要求1所述的基于自注意力自编码器的序列推荐方法,其特征在于,在所述步骤S1中,对商品序列进行预处理的过程具体为:
将用户u浏览的商品序列Su拆成输入序列(S1,S2,...,S|su-1|)和输出序列(S2,S3,...,S|su|),其中,输入序列作为自注意力模型编码部分的输入,输出序列作为自注意力模型解码部分的输入;
设定超参数为n的商品序列最长长度,若用户商品序列超过最长长度,则对其进行截断,保留前n个商品序列;若用户原始商品序列小于最长长度,则对其左侧进行填补,最后得到长度为n的商品序列(S1,S2,...,Sn),完成商品序列的预处理。
3.根据权利要求1所述的基于自注意力自编码器的序列推荐方法,其特征在于,所述步骤S21具体为:
利用网络嵌入方法对商品进行词向量学习,得到商品序列的嵌入矩阵M∈R|I|*d,其中|I|为商品的总数,d为嵌入向量的维度,M的每一行表示一个商品对应的向量;
使用位置编码方式,记录商品序列相对位置信息,具体计算公式为:
PE(pos,2i)=sin(pos/100002i/d)
PE(pos,2i+1)=cos(pos/100002i/d)
其中,pos表示商品序列第几个商品,d表示嵌入向量的维度,2i和2i+1表示pos为偶数或奇数对应的公式;通过三角函数的方式得到商品序列的位置向量P∈Rn*d;将商品序列的嵌入矩阵和位置向量行拼接,得到输入向量具体为:
其中:Msi和Psi(i=1,...,n)分别表示商品Si的词向量和位置向量。
4.根据权利要求3所述的基于自注意力自编码器的序列推荐方法,其特征在于,所述步骤S22具体为:
首先,单个自注意力机制将得到的输入向量进行权重线性转化,同时对线性转化得到的values进行加权求和,并归一化到0至1之间,具体计算公式为:
其中,Q表示查询queries,K表示键keys,V表示值values,WQ、WK、WV∈Rd*d分别代表Q、K、V对应的随机初始化的权重,d表示模型的维度;然后,初始化h组不同的Q、K、V,得到h组单个自注意力机制,拼接为h头自注意力机制,具体计算公式为:
MultiHead(Q,K,V)=Concat(head1,...,headh)WO
其中,WO∈Rhd*d;接着,对多头自注意力机制的结果与输入向量进行拼接并标准化,构建自注意力模型,具体公式为:
其中,参数L表示利用残差连接的思想得到的多头自注意力层的输出结果。
5.根据权利要求4所述的基于自注意力自编码器的序列推荐方法,其特征在于,所述步骤S23具体为:
将自注意力模型加上一个两层的前馈神经网络进行数据拟合,具体计算公式为:
Fi=FFN(Si)=ReLU(SiW(1)+b(1))W(2)+b(2)
其中,W(1)和W(2)均为d*d维矩阵,b(1)和b(2)均为d维向量;接着,将一个多头自注意力机制和一个前馈神经网络构成一个自注意力模块,使用多个自注意力模块进行深度学习,具体计算公式为:
Lb=MultiHead(F(b-1))
其中,第一个自注意力模块L(1)=L和F(1)=F;根据自注意力模块的深度学习堆叠得到的特征Ft (b)对用户与商品的关联性得分进行预测,具体计算公式为:
其中,ri,t表示给定前t个商品时,商品i的预测得分;M∈R|I|*d表示商品的嵌入矩阵。
6.根据权利要求5所述的基于自注意力自编码器的序列推荐方法,其特征在于,步骤S2中所述的自注意力模型在训练过程中使用二元交叉熵作为损失函数,具体计算公式为:
其中,<pad>表示补0的项;表示给定前t个商品时,商品ot的预测得分;rj,t表示给定前t个商品时,商品j的预测得分。
7.根据权利要求1所述的基于自注意力自编码器的序列推荐方法,其特征在于,在所述步骤S3中,自编码器在训练过程中使用均分误差作为损失函数,具体计算公式为:
其中,表示只考虑具有观测值的样本范数;λ表示正则化系数。
8.根据权利要求7所述的基于自注意力自编码器的序列推荐方法,其特征在于,所述步骤S4中,结合用户与商品的关联性得分和用户喜爱度指数具体包括A、B两个过程:
A:若用户ID不存在,则直接使用自注意力模型的结果预测得分ri对用户作最后的商品推荐;
B:若用户ID存在,则自注意力模型给出的结果预测得分ri与自编码器的用户喜爱度指数αi进行点乘,加权得到每个用户对所有商品的最终预测得分,具体计算公式为:
scorei=Σαiri
然后对scorei进行降序排序,得到高得分的商品为用户优先推荐。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911369965.7A CN111127165B (zh) | 2019-12-26 | 2019-12-26 | 基于自注意力自编码器的序列推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911369965.7A CN111127165B (zh) | 2019-12-26 | 2019-12-26 | 基于自注意力自编码器的序列推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111127165A CN111127165A (zh) | 2020-05-08 |
CN111127165B true CN111127165B (zh) | 2024-03-26 |
Family
ID=70503324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911369965.7A Active CN111127165B (zh) | 2019-12-26 | 2019-12-26 | 基于自注意力自编码器的序列推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111127165B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737427B (zh) * | 2020-05-11 | 2024-03-22 | 华南理工大学 | 融合论坛互动行为与用户阅读偏好的慕课论坛帖推荐方法 |
CN111737573A (zh) * | 2020-06-17 | 2020-10-02 | 北京三快在线科技有限公司 | 资源推荐方法、装置、设备及存储介质 |
CN111915414B (zh) * | 2020-08-31 | 2022-06-07 | 支付宝(杭州)信息技术有限公司 | 向目标用户展示目标对象序列的方法和装置 |
CN112258262B (zh) * | 2020-09-15 | 2023-09-26 | 浙江大学 | 一种基于卷积自注意力网络的会话推荐方法 |
CN114422859B (zh) * | 2020-10-28 | 2024-01-30 | 贵州省广播电视信息网络股份有限公司 | 基于深度学习的有线电视运营商的排序推荐系统及方法 |
CN112256971B (zh) * | 2020-10-29 | 2023-06-20 | 清华大学深圳国际研究生院 | 一种序列推荐方法及计算机可读存储介质 |
CN112734519B (zh) * | 2021-01-06 | 2022-08-09 | 河北工业大学 | 一种基于卷积自编码器网络的商品推荐方法 |
CN112885423A (zh) * | 2021-03-16 | 2021-06-01 | 康键信息技术(深圳)有限公司 | 疾病标签检测方法、装置、电子设备及存储介质 |
CN112950325B (zh) * | 2021-03-16 | 2023-10-03 | 山西大学 | 一种社交行为融合的自注意力序列推荐方法 |
CN113139850A (zh) * | 2021-04-26 | 2021-07-20 | 西安电子科技大学 | 一种缓解数据稀疏性和商品冷启动的商品推荐模型 |
CN113222032B (zh) * | 2021-05-19 | 2023-03-10 | 西安电子科技大学 | 基于自注意图像编码的无参考图像质量评价方法 |
CN113255780B (zh) * | 2021-05-28 | 2024-05-03 | 润联智能科技股份有限公司 | 一种减速箱故障预测方法、装置、计算机设备及存储介质 |
CN113792215A (zh) * | 2021-09-15 | 2021-12-14 | 江南大学 | 基于深度自编码器的差分隐私推荐方法及系统 |
CN114169869B (zh) * | 2022-02-14 | 2022-06-07 | 北京大学 | 一种基于注意力机制的岗位推荐方法及装置 |
CN114693397B (zh) * | 2022-03-16 | 2023-04-28 | 电子科技大学 | 一种基于注意力神经网络的多视角多模态商品推荐方法 |
CN114791983B (zh) * | 2022-04-13 | 2023-04-07 | 湖北工业大学 | 基于时序物品相似度的序列推荐方法 |
CN116108283B (zh) * | 2023-04-13 | 2023-10-13 | 苏州大学 | 一种序列推荐的不确定性感知对比学习方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001167203A (ja) * | 1999-09-30 | 2001-06-22 | Fuji Electric Co Ltd | マーケティング分析支援システム、及び記録媒体 |
CN107527236A (zh) * | 2017-08-10 | 2017-12-29 | 云南财经大学 | 一种基于市场效应的协同过滤推荐方法及推荐系统 |
CN109087130A (zh) * | 2018-07-17 | 2018-12-25 | 深圳先进技术研究院 | 一种基于注意力机制的推荐系统及推荐方法 |
CN109408702A (zh) * | 2018-08-29 | 2019-03-01 | 昆明理工大学 | 一种基于稀疏边缘降噪自动编码的混合推荐方法 |
CN109635204A (zh) * | 2018-12-21 | 2019-04-16 | 上海交通大学 | 基于协同过滤和长短记忆网络的在线推荐系统 |
-
2019
- 2019-12-26 CN CN201911369965.7A patent/CN111127165B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001167203A (ja) * | 1999-09-30 | 2001-06-22 | Fuji Electric Co Ltd | マーケティング分析支援システム、及び記録媒体 |
CN107527236A (zh) * | 2017-08-10 | 2017-12-29 | 云南财经大学 | 一种基于市场效应的协同过滤推荐方法及推荐系统 |
CN109087130A (zh) * | 2018-07-17 | 2018-12-25 | 深圳先进技术研究院 | 一种基于注意力机制的推荐系统及推荐方法 |
CN109408702A (zh) * | 2018-08-29 | 2019-03-01 | 昆明理工大学 | 一种基于稀疏边缘降噪自动编码的混合推荐方法 |
CN109635204A (zh) * | 2018-12-21 | 2019-04-16 | 上海交通大学 | 基于协同过滤和长短记忆网络的在线推荐系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111127165A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111127165B (zh) | 基于自注意力自编码器的序列推荐方法 | |
CN109299396B (zh) | 融合注意力模型的卷积神经网络协同过滤推荐方法及系统 | |
CN110232480B (zh) | 利用变分的正则化流实现的项目推荐方法及模型训练方法 | |
CN110083770B (zh) | 一种基于特征层面更深的自注意力网络的序列推荐方法 | |
Ning et al. | Slim: Sparse linear methods for top-n recommender systems | |
Karatzoglou et al. | Multiverse recommendation: n-dimensional tensor factorization for context-aware collaborative filtering | |
CN107341687B (zh) | 一种基于多维标签与分类排序的推荐算法 | |
CN110781409B (zh) | 一种基于协同过滤的物品推荐方法 | |
CN111737578B (zh) | 一种推荐方法及系统 | |
CN114493755B (zh) | 一种融合时序信息的自注意力序列推荐方法 | |
KR102070049B1 (ko) | 보조정보를 이용하는 조건부 변분 오토인코더 기반의 협업 필터링 방법 및 장치 | |
CN110781401A (zh) | 一种基于协同自回归流实现的Top-n项目推荐方法 | |
CN113822742A (zh) | 一种基于自注意力机制的推荐方法 | |
CN111768268B (zh) | 一种基于本地化差分隐私的推荐系统 | |
Farahnak-Ghazani et al. | Multi-label classification with feature-aware implicit encoding and generalized cross-entropy loss | |
Xiang et al. | Text Understanding and Generation Using Transformer Models for Intelligent E-commerce Recommendations | |
CN111079011A (zh) | 一种基于深度学习的信息推荐方法 | |
CN113918764A (zh) | 一种基于交叉模态融合的电影推荐系统 | |
CN113486395A (zh) | 一种采用多元信息融合的科研数据匿名化方法及系统 | |
CN116680456A (zh) | 基于图神经网络会话推荐系统的用户偏好预测方法 | |
Van Balen et al. | PQ-VAE: Efficient Recommendation Using Quantized Embeddings. | |
CN114996566A (zh) | 一种面向工业互联网平台的智能推荐系统及方法 | |
CN115687757A (zh) | 融合层次注意与特征交互的推荐方法及其应用系统 | |
Fuangkhon | Effect of the distance functions on the distance-based instance selection for the feed-forward neural network | |
CN115760270A (zh) | 一种基于知识图谱的新颖性增强推荐方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |