文章浅析-《Joint Deep Modeling of Users and Items Using Reviews for Recommendation》

    科技2022-07-15  138

    文章浅析-《Joint Deep Modeling of Users and Items Using Reviews for Recommendation》

    推荐系统论文阅读笔记之《Joint Deep Modeling of Users and Items Using Reviews for Recommendation》IntroductionThis paperSummaryContributionsMethods第一层 look-up层第二层 Convolution层第三层 Max-pooling层第四层 Fully-connected层第四+1层 Factorization Machine层 Experiment数据集:词embedding方式评价标准BaselineResult

    推荐系统论文阅读笔记之《Joint Deep Modeling of Users and Items Using Reviews for Recommendation》

    Introduction

    推荐系统应用于众多电商平台,如不离手的抖音、百货大楼淘宝、Amazon,甚至一些广告、新闻推送等。简言之,推荐即通过用户的历史交互信息对用户进行特征建模,然后通过预测user对item的评分、点击概率、喜欢的可能排序等进行推荐。.

    This paper

    文章下载地址:https://arxiv.org/pdf/1701.04783.pdf 代码下载地址:[作者未提供]

    Summary

    现有的一些推荐算法主要考虑user-item的交互和评分情况,忽略了用户的评论中包含了大量的信息,它不仅可以提供附加信息,还能潜在地缓解稀疏性问题,提高推荐的质量。在本文中,我们提出了一个基于CNN的深度学习的模型——DeepCoNN,通过user的所有评论信息和item的所有被评论信息来学习user和item的特征表示,最后预测评分。

    Contributions

    1.提出DeepCoNN(名为:深度合作的神经网络),使用user reviews和item reviews对user和item属性进行联合建模(PS: 所谓联合建模,就是使用提出的网络模型同时对user和item进行建模)。 2.使用pre-train好的模型对词进行embedding,就是根据词进行look-up操作,得到word-embedding矩阵。 3.在三个数据集上(Yelp、Amazon、Beer)实验表明优于现有的算法。

    Methods

    DeepCoNN网络模型 图片来源:原文

    由上图可知,模型一共有三层(三层?明明是四层啊!~好,那就四层!说三层是因为把卷积层和池化层合为卷积网络,是一层。按图,四层!) 下面,以学习user特征为例,介绍模型各层……

    第一层 look-up层

    给不了解文本处理的小伙伴简简单单说一下蛤~ look-up翻译过来就是查找。 问: 去哪里查什么呢? 答: 去训练好的词嵌入矩阵查某个词的词向量。 再问: 为什么要查呢?有词不就好了吗?再答: 不好!网络模型计算的是数字,不是词,所以词要转化成数字!词嵌入矩阵就是每个词对应的数字形式,一般来讲,一个词对应一个向量,look-up之后的reviews就对应一个矩阵,因为一个review有很多词鸭,呱呱呱~二、四、六、七、八…… 反问: 懂了吗?反答: 懂了! 好,Go on!

    In the look-up layer, reviews are represented as a matrix of word embeddings to extract their semantic information. To achieve it, all the reviews written by user u, denoted as user reviews, are merged into a single document du1:n, consisting of n words in total. Then, a matrix of word vectors, denoted as V u1:n, is built for user u as follows:

    别看原文了,看中文吧: 把用户的所有评论合成一条长评论,一共有n个单词,对每个单词进行look-up操作,再合起来就构成Vu1:n了。所谓的合起来就是把每个词查得的vector按行排成矩阵,这个矩阵的行数就是这条评论词的个数,列数就是每个词向量的维度。

    第二层 Convolution层

    卷积层,通过不同的卷积核提取不同的特征。 了解CNN的小伙伴就知道这个操作蛤~

    Vu1:n是用户Uj的评论embedding,Kj是卷积核,bj是偏置项。对于文本数据通常采用1d卷积,Vu1:n卷积之后对应图中卷积层的一个列向量,多个卷积核输出多个列向量。使用多个卷积核的目的是提取多种特征,一个卷积核提取一种特征,要问怎么就提取特征了?详见CNN介绍蛤~

    第三层 Max-pooling层

    池化层,最大池化操作!

    对每个卷积核提取的特征取最大值,即图中从卷积层的每一列取最大值组合起来得到池化层的一行。O是池化得到的向量,n1是卷积核个数。

    第四层 Fully-connected层

    全连接层

    将得到的O输进全连接层,xu即为学得的user特征,f为激活函数,W是权重矩阵,g是偏置项。

    至此,模型介绍完毕! ??? 别急,还有……

    第四+1层 Factorization Machine层

    为了将user特征和item特征映射到同一空间,引入因子分解机,一套行云流水的常规操作,OK了!

    Experiment

    数据集:

    1.Yelp: https://www.yelp.com/dataset-challenge 2.Amazon: https://snap.stanford.edu/data/web-Amazon.html 3.Beer

    数据集情况分析:

    词embedding方式

    使用训练好的GoogleNews-vectors-negative300.bin进行look-up。

    评价标准

    Mean Square Error (MSE,均方误差):

    通常来讲,预测评分的评价标准为MSE、RMSE,本文也不例外。

    Baseline

    读者可以参见原文。

    Result

    读者亦可以参见原文。

    -----完结----- 这篇文章发表于2017年ACM,时隔已久。可以看到,这篇文章的网络结构并不复杂,可以说是中规中矩,只不过是用到了评论数据作为附加信息。近几年,相关论文很多,用到的时间感知、内容感知、LSTM、注意力机制等都可以考虑到网络结构中。以上!

    Processed: 0.012, SQL: 8