[知识点整理]用于内容感知推荐系统的门控式注意自动编码器(Gated Attentive-Autoencoder for Content-Aware Recommendation)

原文:Chen Ma, Peng Kang, Bin Wu, Qinglong Wang, and Xue Liu. 2019. Gated Attentive-Autoencoder for Content-Aware Recommendation. In The Twelfth ACM International Conference on Web Search and Data Mining (WSDM ’19), February 11–15, 2019, Melbourne, VIC, Australia. ACM, New York, NY, USA, 9 pages. https://doi.org/10.1145/3289600.3290977

摘要

        随着用户和商品数量的大量增加,个性化推荐系统着几个挑战性的问题:

   1.利用稀疏隐式反馈比较困难(the hardness ofexploiting sparse implicit feedback)

   2.合并异构数据难度比较大(the difficulty of combining heterogeneous data)

        为了应对这些挑战,作者提出了门控式注意自动编码器(Gated Attentive-Autoencoder ,GATE)模型,该模型通过神经门控结构(neural gating structure)来学习商品内容和二元(例如like和dislike)评分的隐藏表示。该模型利用商品之间的邻近关系来推断用户的偏好。词语层次和邻居层次的注意模块与自动编码器集成在一起,词语注意模块从商品(描述)的词语序列中学习到商品的隐藏表示,分配较大的权重给信息量大的词语。邻居注意模块则通过加权考虑邻域来学习商品邻域的隐藏表示。

        本文主要的贡献如下:

1.为了从商品的词语序列中学习到隐藏的表示,使用词语注意模块来自适应地区分含有信息的词语,从而能够更好的理解商品的内容,并且该模块在参数更少的情况下达到与复杂的递归或卷积神经网络的效果。

2.为了有效融合商品的内容和评分的隐藏表示,提出了一个神经门控层(neural gating layer)提取和组合它们显著的部分。

3.根据商品和商品之间的关系,利用邻居注意模块来学习商品邻域的隐藏表示,在商品邻域上对用户偏好进行建模为推断改商品的用户偏好提供了重要补充。

4.提出的两个注意模块都能各自解释和可视化重要的词语和相邻商品。

问题描述

        本文考虑的推荐系统任务使用隐式反馈作为训练和测试数据用户的偏好由m*n的二元矩阵R构成,m代表用户数,n代表商品数。n个商品的完整集合用文件列表表示,而中的每一个文件表示为一串词语序列。商品相邻关系由一个n*n大小的二元相邻矩阵N表示,其中表示第i个商品和第j个商品相关联。给定NR的一部分,问题就是预测R中的剩下部分。之后用大写粗体表示矩阵,小写粗体表示列向量,细体表示标量。

方法

        模型的体系结构如上图所示。黄色部分是用于评分预测的堆叠式自动编码器(stacked autoencoder,以下autoencode简称为AE);绿色部分是用于商品内容的词语注意模块;蓝色为门控层(Gating Layer);用于融合隐藏表示,粉红色为邻居注意模块。Word_Att是词语注意层,Neighbor_Att是邻域注意层,Agg_Layer是聚合层。⊙是按元乘,⊕是按元加。

  • 模型基础

        用户和商品数量的增加使得处理交互复杂并且难以建模,为了捕捉用户对某个商品的偏好,我们使用堆叠式AE来对第i个商品所有用户的评分向量(1*m大小)来进行编码为,上标r表示该隐藏表示是从商品们的评分中学习到的。 编码和解码规则如下:

        W1为h1*m大小、W2为h*h1大小、W3为h1*h大小、W4为m*h1大小的加权矩阵,h1是第一个隐藏层的维度,h为瓶颈层(bottleneck layer)的维度 。ri是mult-hot向量(向量中含有多个1),rui=1表示用户u喜欢商品i。

  • 词语注意模块

        相对于之前的工作从词袋(bag-of-words)中学习而忽视了不同词语的重要性不同的情况下,所以提出了该模块,该模块的权重自适应地选择了重要性不同的词语,并使信息量更大的单词对描述(depict)商品做出更大的贡献。

1.嵌入层(Embedding Layer)

        商品i的输入是来自其内容描述的li个词语,每个单词用一个one-hot(只有一个为1)的列向量表示。在本层,one-hot编码向量通过一个h*v大小的词语嵌入矩阵(word embedding matrix)E转换为低维密集向量表示,h是词语嵌入的维度,v是词汇表(vocabulary)的大小。通过该层转换后,商品内容被表示为:

        Di为h*li大小矩阵,ej为h长列向量。 

2.多维注意(Multi-dimensional Attention)

        受机器翻译中只依赖注意机制的变换器(Transformer)的启发,我们在不使用复杂的递归或卷积神经网络的情况下,将多维注意机制应用于词语序列,来学习商品的隐藏表示。原因是在现实世界中,用户可能更关心可以用几个词语来表达商品的主题或主旨,而不是词语序列中的词语对词语的关系。

        词语注意的目的是给不同的词语赋予不同的重要性,然后以加权的方式聚合词语嵌入来描述(characterize)这个词。给定商品Di的词语嵌入,通过两层神经网络计算注意权重的普通(vanilla)注意机制表示:

        wa1为h长的列向量,Wa2为h*h矩阵,ba2是h长的列向量是需要被学习的参数,sofrmax()函数确保权重和为1,然后我们根据ai提供的权重来对Di中的词语嵌入求和,来获得商品的向量表示(上标c表示从商品内容中学习到的隐藏表示):

         然而,为单词嵌入指定一个重要值通常会使模型关注(focus on)商品内容的特定方面。特别是当词语数量特别大时,商品内容中的多个方面共同描述了该商品。因此我们需要多个ai来关注商品内容的不同部分,我们采用一个矩阵来代替ai来获取多维注意并 对每个词语嵌入分配一个注意权重向量。注意权重向量的每一维表示Di中所有嵌入关系的一个方面。假设我们希望从词语嵌入中提取注意的da个方面,然后我们将wa扩展到da*h大小的矩阵Wa1,它的表现像是”重要单词是什么“的高级表达:

        其中,Ai为da*li大小的注意权重矩阵,ba1是长为da的偏置向量, softmax是沿着输入的第二维,通过将注意力权重矩阵与词语嵌入相乘,我们得到了一个商品的矩阵表示:

        Zic是da*h大小的商品矩阵表示,然后我们用另一个神经层来将商品矩阵表示聚合为向量表示。商品的隐藏表示形式修改(revise)为:

         wt是da长的聚集层(aggregation layer)参数,at()是激活函数。

  • 神经门控层

        我们已经从商品的内容和评分获得了商品隐藏的表示,下一个目标是将这两种表示结合,以便对未评分的商品进行预测,受长短期记忆(long short-term memory,LSTM)的启发我们提出了本层进行自适应地合并(merge)他们。门控G和融合的商品隐藏表示zig通过以下公式计算:

        h*h大小的矩阵Wg1Wg2以及h长的向量bg是门控层的参数,通过该层可以提取出两个隐藏表示的显著部分并平滑地组合。

  • 邻域注意模块

        有些商品之前有固定的关系例如论文的引用,这些密切相关的商品可以形成有共同主题的邻域关系。如果用户对某个商品的邻居感兴趣,那么很可能对这个商品也感兴趣。在商品的邻居中,某些商品具有代表性,在描述邻域中发挥重要作用。我们将商品i的邻居集合定义为,可以从矩阵N获得。商品i的邻域隐藏表示计算为:

        h*h大小的矩阵Wn为邻居注意层要学习的参数 ,为了同时获得用户对商品及其邻域的偏好,可改写为

加权损失

        在平方损失函数(square loss function)中插入置信矩阵(confidence matrix):

         m*n大小的置信矩阵C如下:

        超参数ρ是固定的。

网络训练

        模型的目标函数如下: 

        λ为正则化参数。最小化目标函数可以通过反向传播的梯度下降实现,并使用Adam的方法来自动调整学习率。 

猜你喜欢

转载自blog.csdn.net/qq_36614557/article/details/105117397
今日推荐