【论文阅读】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

Abstract

随着互联网上的用户和商品数目的大量增加,个性化推荐系统仍然面临着几个具有挑战性的问题:

1. 利用稀疏隐式反馈进行推荐比较困难
2. 合并异构数据比较困难

为了应对以上这些挑战,作者提出了一个门控式注意-自编码器 (Gated Attentive-autoencoder (GATE)) 模型,该模型能够通过一个神经门控结构学习物品内容和二元评分的融合隐藏表示。本文的模型利用物品之间的邻近关系来推断用户的偏好。特别的,该自动编码器集成了词语级和邻域级注意力模块。其中,词语级从单词序列中学习隐藏表示,通过分配更大的注意力权重来支持信息类词汇。邻域级通过加权邻域来学习邻域的隐藏表示。

以往模型的问题:

  1. 使用标准词包向量学习内容的隐藏表示,同等对待信息词与其他词汇,导致对物品的表示不恰当
  2. 通过加权正则化项,将物品评分、描述等异构信息的隐藏表示形式组合在一起,会触发繁琐的超参数调优
  3. 没有注意商品之间的关系。利用用户对相邻商品的偏好也有利于推断用户对该商品的偏好

本文作出的主要贡献:

  1. 为了从项目的词序列中学习隐藏表示,作者应用了一个词注意模块来自适应的区分信息词,从而更好的理解商品的内容。在参数更少的情况下,可以实现相同的性能与复杂的递归或卷积神经网络
  2. 为了有效地融合商品内容和评分的隐藏表示,作者提出了一个神经门控层来提取和组合商品内容和评分的显著部分
  3. 根据商品-商品之间的关系,作者利用邻域-注意模块来学习一个商品的邻域的隐藏表示。在一个商品的邻域上对用户偏好进行建模,为推断用户对该商品的用户偏好提供一个重要的补充
  4. 以上所提出的两个注意力模块都能够分别解释和显示商品的重要单词和邻域

Problem Formulation

本文考虑的推荐系统任务使用隐式反馈作为训练和测试的数据。用户偏好用一个 m×n 的二元矩阵 𝑹 表示,n个商品的完整表示用文件列表𝓓表示,列表𝓓中的每一个文件都是一串词序列。商品之间的关系用一个 n×n 的二元邻接矩阵𝑵表示,其中𝑵𝑖𝑗 = 1 表示商品 𝑖 和商品 𝑗 是相关联的。给定𝓓、𝑵、 𝑹的一部分,那么问题就是预测𝑹中剩余的评分值。

Methodolodies

在这里插入图片描述上图是GATE的架构,黄色部分是用于二进制评级预测的堆叠自动编码器,绿色部分是用于商品内容的单词-注意力模块。蓝色矩形是用于融合隐藏表示的门控层。中间的粉色部分是邻域-注意力模块,用于获取一个商品的邻域的隐藏表示。具体来说,Word_Attb表示单词-注意层,Neighbor_Att表示邻域-注意层,Agg_Layer表示聚合层。⊙是按元乘, ⊕是按元加。

Model Basics

用户和商品的大量增加使得用户-商品交互更加复杂和难以建模,经典的矩阵分解 (matrix factorization, MF) 方法利用内积来预测用户对商品的偏好,将用户和商品的潜在因素进行线性组合。受自动编码器对显式反馈和隐式反馈建模的启发,作者采用Autoencoder作为基础构件。为了捕获用户对某一商品的偏好,作者应用一个堆叠Autoencoder将用户对某一项 𝑖 的二元评分𝐫𝑖 ( m维向量 ) 进行编码成商品的评分隐藏表示z𝑖.𝑟( 其中𝑖为z的下标、𝑟为z是的上标-表示这个隐藏表示式从商品的二元评分中学到的 ):
在这里插入图片描述其中₁是h₁×m的权重矩阵,W₂是h×h₁的权重矩阵,W₃是h₁×h的权重矩阵,W₄是m×h₁的权重矩阵。m 表示用户的数量,h₁ 表示第一个隐藏层的维数,h 表示瓶颈层的维数,𝐫𝑖 表示一个多热 (multi-hot) 向量,其中 𝐫𝑢,𝑖 = 1 表示用户 𝑢 偏爱商品 𝑖

Word-Attention Module

这个模块学习的权重自适应地选择了具有不同重要性的信息性词汇,使信息性词汇对项目有更大的贡献。

  1. 嵌入层( Embedding Layer ): 在所提出的这个模块中,商品i的输入是文本描述的单词序列 𝑙𝑖, 其中每个单词都表示为一个独热( one-hot )向量。在嵌入层,利用字嵌入矩阵将一个独热编码向量转换为一个低维实值稠密( low-dimensional real-valued dense )向量E表示,其中E为h×v的矩阵,h为单词嵌入的维数,v为词汇量的大小。经过嵌入层转换后,商品的文本表示为:
    在这里插入图片描述
  2. 多维注意力( Multi-dimensional Attention ): 我们将多维注意机制应用于单词序列来学习商品的隐藏表示,而不使用复杂的递归或卷积神经网络。原因是,在实际场景中,用户可能更关心可以用几个词来描述的商品主题,而不是单词序列中的单词-单词关系。
    单词-注意力的目标是为单词分配不同的重要性,然后以加权的方式将单词嵌入聚合起来以描述项目。给定项目 𝑫𝑖 的词嵌入,计算注意权值的基本注意机制由两层神经网络表示:在这里插入图片描述其中需要学习的是wa₁[ h维向量 ],Wa₂[ h×h的矩阵 ],ba₂[ h维向量 ]。softmax(∙) 函数保证权重和为1。然后根据 𝜶𝑖 提供的权值对𝑫𝑖中的嵌入进行求和,得到项目的向量表示( 上标c表示从商品内容中学习隐藏表示 ):
    在这里插入图片描述
    然而,为单词嵌入分配一个重要值通常会使模型关注商品内容的特定方面。当单词数很多时,商品内容中的多个方面共同描述了该商品的特征。因此,我们需要多个 𝜶𝑖 来关注项目内容的不同部分。基于这一灵感,我们采用矩阵代替人工智能来捕捉多维度的注意力,并为每个词的嵌入分配一个注意力权重向量。注意权向量的每个维度表示 𝑫𝑖 中所有嵌入项之间关系的一个方面。假设我们想从嵌入中提取 da 个方面的注意力,然后我们得将wa扩展到Wa₁[ da×h的矩阵 ],这样的表现好像是"重要的单词是什么"的一种高层次的表达:
    在这里插入图片描述其中 A𝑖 是一个注意力权重矩阵,ba𝑖 是一个偏置向量,并且softmax是顺着它输入的第二维来执行的。通过将注意力权重矩阵与词嵌入相乘,我们得到了一个项目的矩阵表示:
    在这里插入图片描述

然后,我们还有另一个神经层来将商品矩阵的表示聚合为向量表示。商品的隐藏表示形式修改为:
在这里插入图片描述其中wt是在聚合层( aggregation layer )的参数, 𝜶(∙)是激活函数

Neural Gating Layer

我们已经从两个异构数据源获得了商品的隐藏表示,即二元评分和商品的内容描述。下一个目标是将这两种隐藏的表示形式结合起来,以方便对未评级的商品进行用户偏好预测。因此,作者提出了一个神经门控层来自适应地合并这两种隐藏的表现形式。这是受到了LSTM门控机制的启发。门控G和融合商品隐藏表示zi计算方式如下:
在这里插入图片描述W𝑔₁和W𝑔₂都是h×h的矩阵,b𝑔是在门控层的参数。通过使用一个门控层,可以从这两个隐藏的表示法中提取出显著部分并平滑地结合起来。

Neighbor-Attention Module

有些商品之间有内在的关系。因此,对于某个商品,如果用户对其邻居感兴趣,则该用户也可能对该商品感兴趣。在这样的启发下,作者提出了一个邻域注意模块来学习特定项的邻域隐藏表示。
形式上,我们将第i项的邻集定义为N𝑖,它可以从第N项的邻矩阵中得到。第 𝑖 项的邻居隐藏表示 z𝑖 计算如下:
在这里插入图片描述

为了同时捕获用户对某一商品及其邻域的偏好,将解码器重写为:
在这里插入图片描述

Weighted Loss

为了从隐式反馈对用户偏好进行建模,在平方损失函数中插入一个置信矩阵:
在这里插入图片描述其中⊙为矩阵的元素乘。||·||F是矩阵的弗洛贝尼乌斯范数。其中,我们令置信矩阵C为:
在这里插入图片描述其中超参数ρ是一个常数。

Network Training

结合正则化项,该模型的目标函数如下:
在这里插入图片描述其中λ是正则化参数。通过使目标函数最小化,通过反向传播的梯度下降法可以计算出所有参数的偏导数。在学习过程中,我们使用Adam来自动调整学习速率。

实验部分请读者自行查看原文,博主只对前四部分进行翻译整理。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值