当前位置: 代码迷 >> 综合 >> 【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统
  详细解决方案

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

热度:10   发布时间:2023-10-21 02:34:22.0

【大概记录一下这篇论文和思考】

ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

作者大大:Jin Yao ChinKaiqi ZhaoShafiq Joty,Gao Cong(Nanyang Technological University, Singapore.)

 

现状:

  • 用户评论是非常重要的数据,可以了解用户的喜好和关注点。
  • 冷启动问题。(新建用户时,初始数据过少,无法推荐。)
  • CNN把用户评论和物品信息一起卷积来获取其特征的方法,无法获得用户和物品的细粒度交互信息。(如:DeepCoNN, D-Attn, and TransNets)
  • 评论中的无关信息。(一句话中,不是所有的单词都是有用的,存在很多噪声。)
  • 同一个词语在不同句子中有不同的情感。((1) "This laptop has a long battery life"【正面情绪】, and (2) "The laptop requires a long startup time"【负面情绪】.)
  • 不同用户对于同一物品的关注点不同(手机——关注价格、性能等),同一用户对不同物品的关注点不同(恐怖电影关注情节,动作电影关注演技),不可一概而论。

 

主要工作:

? We propose a novel aspect-based neural recommender system which performs aspect-based representation learning for
users and items by designing an attention mechanism to focus on the relevant parts of these reviews while learning the representation of aspects on the task. Furthermore, we estimate aspect-level user and item importance in a joint manner
using the idea of co-attention, which allows us to model the finer-grained interactions between users and items. To the best of our knowledge, this is the first paper to propose an end-to-end neural aspect-based recommender system which concurrently addresses the above-mentioned requirements.

提出了一个新的基于方面级别的(aspect-based)神经网络推荐系统。(方面aspect即用户从哪个角度评论,或者商品从哪个角度介绍,例如价格、性能、服务等。)为了学习用户和物品的基于方面的表达,设计一个注意力机制,在学习方面级别表达时,只关注评论的相关部分。(评论中不是所有文本都在描述一个方面。)在预测级别方面的重要程度时,使用了共同关注的方法(co-attention),可以同时关注用户和物品之间的细粒度关系。(例如:一个人买生活用品更注重经济实惠,买电子产品注意机器性能。)

? Extensive experiments have been conducted on 25 benchmark datasets from Amazon and Yelp to evaluate our proposed model against several state-of-the-art baselines such as DeepCoNN, D-Attn, and ALFM.

在亚马逊和Yelp的25个基准数据集上进行了广泛的实验,以评估模型是否符合一些最先进的基准线,如DeepCoNN、D-Attn和ALFM。

? We investigate how the different components in our proposed model contribute to its effectiveness. In particular, we include an qualitative analysis of the aspects which are learned automatically by our model without any external supervision.

研究模型中的不同组成部分对其有效性的贡献。特别是,对模型自动学习的方面进行了定性分析,而无需任何外部监督。

 

模型图:

 

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

 

 

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

 

Embedding Layer:

将用户文档的矩阵【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统转化乘矩阵【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统,通过查找变矩阵【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统,通过查找表,将每个词汇表V中的词汇变成一个d维向量。

这个embedding矩阵需要与训练,比如word2vec或者GLoVe,因为用这两个方法可以记住句子中词语的顺序,而不像bag-of-words完全放弃单词顺序。

 

Aspect-based Representation Learning:

方面集合(set of aspects)【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统包括许多方面,比如价格、质量、位置等等。A集合中共有K个元素。在这里,用户和物品使用的集合A相同。

使用【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统得到方面级别的用户表达【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

用户文本【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统包括用户u过去所有交互过的物品的评论,这些评论里包含着方面A的观点。物品文本【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统同理。

在这一层中学习方面集合A包括哪些,和方面级别(aspect-level,也就是类似“喜欢”、“一般”、“不喜欢”)

 

几个基本客观事实:(文中提到的):

1.不是文档中的每一个词都一样重要,我们只需要注意一些特定部分。

2.同一个词在不同句子中有不同含义。我们需要考虑一个词在不同方面中的不同情感。((1) "This laptop has a long battery life"【正面情绪】, and (2) "The laptop requires a long startup time"【负面情绪】.)

3.方面相关的词汇(如价格、口味),和评价该方面的词离的很近(如贵、好吃)。

 

用户u在方面a的方面级别的用户表达(aspect-level user representation)【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

方面级别特殊单词投射矩阵(aspect-specific word projection matrix)【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统,表达在a方面时单词的含义(由于事实2可知,同一词汇在不同方面的句子中含义不同)

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统是一个维为向量,表达文本矩阵【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统中第i个单词的embedding。【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统为这第i个单词在这个方面下的表达。一篇文档共有n个单词,所以【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统。如果考虑全部K个方面,总结果就是【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统的矩阵。

 

每个方面【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统 都有一个embedding 【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统,其中c是一个超参数。(个人认为【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统就类似为方面a的一个卷积核,提取方面a特征的矩阵)

c是一个窗口大小。根据事实3,如果这是方面相关的词汇,只需要看其上下文的一段距离。

在看第i个词在方面a的重要性时:

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统    符号“;”表示串联。

 

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统内积,使用softmax算注意力attention,这样就得到了单词i在方面a上有多重要。(其实就类似于【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统作为卷积核在文本【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统上滑动求特征)

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统 (根据度娘,算完了应该是一个1*h1大小的矩阵)

 

最后加权求和,得到了用户u在a方面的表达:

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

(ps。我觉得attn和M应该是对应位相乘,因为好像不能做矩阵乘法,最后是一个1*h1大小的矩阵)

 

物品的【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统同理可得。

本层需要学习的参数【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

 

 

Aspect Importance Estimation:

不同用户对物品的各个方面关注度不同。一个用户在看不同物品时,关注点会改变。同一物品,不同用户有着不同的关注点。

所以,在学习用户注重方面的时候,将上面得到的物品的表达作为文档考虑进去。反之亦然。

 

用户表达【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统(这个包括所有K个方面)和物品表达【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统,得到一个方面级别的关联矩阵S(aspect-level
affinity matrix )。

这体现了方面级别的用户和物品表达的关联。如下图。

 

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

 

然后利用S作为一个特征去预测用户和物品在各个方面的重要性

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

用Pu算Hu,Qi算Hi。所以用户和物品,两个不同的用户,两个不同的物品,他们之间的H是不同的。

 

本层要学习的参数 【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

 

Prediction 层

给出任意用户-物品对,可以推断打分:

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

b是各种bias。

 

总结:所有要学习的参数:【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

优化:预训练ARL的参数。

防止过拟合:Pu,a,Qi,a有ρ的概率随机dropout,算bias时使用L2正则化。

 

测试

实验设置:

d=300,|Du|=|Di|=500,c=3,h1=10,h2=50,ρ=0.5

比较MSE(均方误差)

结果如下图,吊打别人就对了。

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

 

论文的一些分析:

1. aspects numbers:K设置为4-6比较好。

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

 

2.h1<15,h2=50

【论文笔记】ANR: Aspect-based Neural Recommender 基于方面的神经网络推荐系统

 

3.模型简化了之后,没有原来效果好。

 

 

 

 

  相关解决方案