数据学习
AI博客
原创AI博客
大模型技术博客
期刊会议
学术世界
期刊出版社
领域期刊
SCI/SCIE/SSCI/EI简介
期刊列表
会议列表
所有期刊分区
学术期刊信息检索
JCR期刊分区查询
CiteScore期刊分区查询
中科院期刊分区查询
管理 - UTD24期刊列表
管理 - AJG(ABS)期刊星级查询
管理 - FMS推荐期刊列表
计算机 - CCF推荐期刊会议列表
南大核心(CSSCI)
合工大小核心
合工大大核心
AI资源仓库
AI领域与任务
AI研究机构
AI学术期刊
AI论文快讯
AI数据集
AI开源工具
数据推荐
AI大模型
国产AI大模型生态全览
AI模型概览图
AI模型月报
AI基础大模型
AI大模型排行榜
大模型综合能力排行榜
大模型编程能力排行榜
LMSys ChatBot Arena排行榜
Berkeley大模型工具使用能力排行榜
OpenLLMLeaderboard中国站
AI大模型大全
大模型部署教程
在线聊天大模型列表
2023年度AI产品总结
Recommender systems based on user reviews: the state of the art[J]., 2015, 25(2):99-154.
Vanessa He
UMUAI(User Modeling and User-Adapted Interaction)
2015-01
1564
2017/05/06 22:26:36
:tw-1f310: :tw-1f310: :tw-1f310: :tw-1f310: :tw-1f310:***一篇关于利用评论信息去做推荐的综述***:tw-1f310: :tw-1f310: :tw-1f310: :tw-1f310: :tw-1f310: #### **基于评论的推荐系统研究概览:** ![](http://www.datalearner.com/resources/blog_images/693b0cc7-76d1-4535-953d-3de4a2d06768.png) ### **一、基准推荐方法** #### **1、基于内容的方法(Content-based approach)** 该方法首先假定了每个产品可以通过一个向量来表示,即X=(x
1
,x
2
,...,x
n
)。其中,x
i
可能表示产品的文本描述、元数据或者关键字(the item’s textual description, meta-data, or keywords)。 文档d中词w
i
的权重策略可以通过**TF-IDF方法**来计算,f
d,i
表示文档d中w
i
词频,N表示文档数,n
i
表示w
i
出现过的文档数:![](http://www.datalearner.com/resources/blog_images/7b090757-630f-43d4-b4c5-8cabd1dfc66c.png) 于是,产品描述表示为X(d) = (x
d,1
,..., x
d,n
),相应的,用户描述X(u)可表示为X(u) = (x
u,1
,..., x
u,n
),表示用户过去喜欢或者购买的产品描述向量。 基于内容的推荐方法主要是推荐用户描述与产品描述中最相似的产品(Lops et al. 2011),这样的产品包含文本信息,例如文档、网站或者新闻。至于相似性的计算方法,可以选择**余弦相似性**计算方法:![](http://www.datalearner.com/resources/blog_images/5939ee4e-45e9-477a-a964-b200c309f070.png) 基于内容的推荐方法可以被用于电视(Smyth and Cotter 2000)、电子商务 (Schafer et al. 2001)和旅行(Chelcea et al. 2004)问题推荐中。这一方法存在的问题有,一方面方法通过抽取高频词得到的产品静态描述可能并不符合实际,另一个限制是因为描述(profiles)来自于静态信息描述,即使用户对不同产品的偏好不同,有相同产品的浏览历史的用户会有相同的描述(profiles)。 #### **2、基于评分的协同过滤( Rating-based collaborative filtering)** 该方法通常构造用户-产品的评分矩阵R,矩阵中的每个值r
u,i
表示用户u对产品i的评分。CF的目标就是基于已知评分来预测R中的未知评分。CF方法主要有memory-based CF和model-based CF两个子分支。 **memory-based CF**方法包括基于用户(**user-based**)和基于产品(**item-based**)两种。以基于用户的方法为例,可以通过**K-NN( k-Nearest Neighbors )**算法来找到与目标用户最相似的K个用户: ![](http://www.datalearner.com/resources/blog_images/0786cf58-2c85-41eb-96d3-102f162b4dcf.png) 其中,*I(u,v)*表示用户u和v都评分过的产品集,$\bar r$
u
表示用户u评分过的的产品评分均值。于是,对于目标用户而言,未知产品i的预测评分计算如下: ![](http://www.datalearner.com/resources/blog_images/69301ab7-bcfc-4d21-87f9-9c5ca6f4dd56.png) 其中,*Neighbors(u)*表示与用户u最相似的k个用户集,具有最高预测评分的产品被推荐给用户。 而**model-based CF**的目标是用评分矩阵来训练参数模型,这样的模型有聚类模型(Chee et al. 2001;Ungar et al. 1998)、贝叶斯网络(Horvitz et al. 1998; Zigoris and Zhang 2006)、主题模型 (Hofmann 2004)和隐因子模型(Koren et al. 2009)等,其中的隐因子模型因其可以发现用户评分下的隐藏兴趣而成为了近些年最流行的模型。 ** 隐因子模型**的标准形式就是**低秩矩阵分解模型( low-rank matrix factorization ,MF)**(Koren et al. 2009),于是,q
i
和p
u
分别表示产品地K维特征向量和用户的对那些特征的偏好向量,用户u对产品i的评分预测为: ![](http://www.datalearner.com/resources/blog_images/0d3d27e5-3bcd-4078-b45f-cbf727f01ac1.png) 模型中的参数可以通过最小化下面的误差平方函数来优化,λ表示正则化项: ![](http://www.datalearner.com/resources/blog_images/9d947d49-2759-47f4-bbb1-082865636795.png) 更常使用的隐因子模型是**有偏的MF**(Koren and Bell 2011;Koren et al. 2009),因为其考虑了极可能引起评分偏差的用户偏差和产品偏差。举例来看,一些用户相比其他用户更可能偏向于给所有产品高分,一些产品可能会比其他产品得到更高的评分。于是,预测评分的模型变成如下:![](http://www.datalearner.com/resources/blog_images/83915050-3e34-480f-a875-d7207799a701.png) 其中,μ表示全局评分均值,b
i
和b
u
表示产品向量和用户向量的偏差,关于模型参数的优化,有很多方法,如交替最小二乘(the alternating least-squares)和基于梯度的方法(gradient-based methods)(Koren and Bell 2011)。 除了有偏的MF之外,还有很多已经被应用于基于评论的RS中的变化模型(Raghavan et al. 2012; Seroussi et al.2011),如**概率矩阵分解(probabilistic MF)**(Salakhutdinov and Mnih 2008)和**基于属性的矩阵分解(attribute-based MF)**(Koren et al. 2009)。 总之,CF方法主要你来与评分信息,一个用户需要提供足够数量的评分信息,系统才能够返回精准的推荐结果。这样不可避免的带来了关于**新用户和新产品的冷启动问题**。 #### **3、基于偏好的产品排序( Preference-based product ranking)** 一个用户的偏好可以通过({V
1
,..,V
N
},{w
1
,...,w
1
})来表示,其中V
i
表示用户对属性a
i
的价值函数,w
i
表示a
i
的重要程度(权重)。举例来看,价值函数可以定义为![](http://www.datalearner.com/resources/blog_images/52ba161f-6d4c-4692-819f-4fd41533ba7a.png),p
a
i
是产品在属性a
i
上的值,min(a
i
)和max(a
i
)是属性a
i
在全数据上的最小值和最大值。根据**多属性效用理论**( the multi-attribute utility theory,MAUT),可以根据效用值对产品进行排序,选择top产品推荐给用户,那么每个产品(a
1
,...,a
n
)的效用计算如下: ![](http://www.datalearner.com/resources/blog_images/d734438e-4ab9-4de9-9091-87d410937b83.png) 另外,在**基于实例的推荐系统**中,用户的偏好可以理解成他喜欢的查询产品,这样的话,系统将会构建每个产品的属性集,并从中筛选与查询产品最相似的产品进行推荐,其相似性的计算可以表示如下,其中,sim
i
(t
i
,c
i
)表示在第i个属性上两个产品的相似性,可通过欧几里得距离来计算,w
i
表示第i个属性的权重: ![](http://www.datalearner.com/resources/blog_images/9aa9f9c1-d08b-43cd-a10a-a06c6762aa29.png) 通常在实验中被用来与基于偏好的排序方法进行比较的**非个性化排序方法是基于流行度的排序(the popularity-based ranking)**(Musat et al. 2013; Poriya et al. 2014)。在这个方法中,不需要任何的用户偏好信息,它的得分是所有用户对某产品的评分均值,这样一来,如果对于产品的属性有评分的话,那么产品的最终得分计算如下: ![](http://www.datalearner.com/resources/blog_images/9008bbd0-e496-4843-9e16-b4353d1e6ca6.png) 其中,r
u,a
i
表示用户u对产品i的属性a
i
的评分,N(a
i
)表示对a
i
评分过的用户数,n表示属性数。计算后的得分越高的产品将被推荐。 ### **二、评论元素** 尽管原始评论信息中的数据多为非结构化的,但是主题模型和观点挖掘的发展使得评论的解释性和从中抽取价值元素成为可能,因此,这一部分将会总结可以被抽取并被用于提高基准推荐方法的价值信息。 **1、高频术语(Frequent terms)**:决定评论中术语重要性的权重计算方法可以采用TF-IDF方法,于是,抽取出来的术语将会被用于构建描述评论者的用户描述(user profile)。 ![](http://www.datalearner.com/resources/blog_images/0d093401-07e4-43de-aa66-aab2bd1a00f7.png) **2、评论主题(Review topics)**:作者在评论中讨论的产品重要方面。如图2所示。 作者提及的主题有房间质量、食物、健身器材、位置,那么如何确定评论文本主题呢?第一种方法是基于频率的方法( the frequency-based approach),基于种子单词来抽取高频名词,然后手动或者根据预定义词典将词进行分组(Musat et al. 2013);第二种方法是用主题模型,如潜在狄利克雷分布(Latent Dirichlet Allocation ,LDA)(Blei et al. 2003),来自动的发现评论文档中的隐藏主题。LDA的目标就是将文档中共现的单词进行聚类从而形成主题,每个文档d可以被K维主题分布θ
d
表示,每个主题k被一组词分布φ
k
表示,φ
k
表示一个词属于这个主题的概率,确定的评论主题可以被用于提高基于CF推荐方法中的真实评分 (McAuley and Leskovec 2013;Seroussi et al. 2011) 。 **3、全观点(Overall opinions)**:用户对产品的情感倾向可以通过从表现了其全观点的评论中得到。举例来说,如图2中,我们可以推断出评论者对于宾馆总体上是正向观点的。评估全观点的一个简单方式就是集成评论中所有观点词情感值(Leung et al. 2006; Zhang et al. 2013)。机器学习算法,如朴素贝叶斯分类器(the naive Bayesian classifier)和支持向量机(Support Vector Machine,SVM),可被使用来学习观点并将其分类入正确的情感类别中 (Pang et al. 2002; Poirier et al. 2010b)。推断出来的全观点可被转化成虚拟评分,代替CF中真实评分的角色 (Poirier et al. 2010b; Zhang et al. 2013)或者用于提高真实评分(Pero and Horváth 2013) 。 **4、特征观点(Feature opinions)**:从评论中也可以抽取出产品的具体特征观点,如图2中, “Rooms are spacious and luxuriously appointed”表达了作者对特征“room”的积极观点。多特征可以被映射到高一层次的特征上,如“room”、“size”和“cleanness”可以被“room quality”来表示。特征抽取的典型方法包括:基于统计的方法,通过关联规则挖掘将频繁出现的词或短语刻画成特征;基于LDA或SVM的方法,直接识别特征;基于词汇化的隐马尔可夫模型(a lexicalized Hidden Markov Model,LHMMs)((Jin et al. 2009))或条件随机域(Conditional Random Fields,CRFs)((Miao et al. 2010;Qi and Chen 2010))的机器学习方法。与特征相关的观点可以通过寻找附近的形容词或者通过观点模型挖掘确定(Hu and Liu 2004a; Moghaddam and Ester 2010)。特征观点还可以通过用户隐偏好向量建模,并被用于扩充基于模型的CF方法 (Jakob et al. 2009; Wang et al. 2012);特征观点还可以被用于获得用户的权重偏好 (Chen and Wang 2013; Liu et al. 2013)或者属性价值偏好 (Wang et al. 2013),用于基于偏好的产品排序方法中。此外,通过增强排序质量还有助于构建产品描述(Aciar et al. 2007; Dong et al. 2013b; Yates et al.2008) 。 **5、上下文观点(Contextual opinions)**:如图2,“first visit to company’s Hong Kong offices”提供了关于这一评论的上下文信息,,又比如,“This camera’s image quality is not good when I used it to take pictures at night,”其中, “at night”是上下文环境,“image quality” 是特征, “not good”是消极观点。在推荐系统中,这些信息通过结合星级评分,可用来推断一个用户在不同上下文环境中的产品选择效用 (Hariri et al. 2011),也可以用来构建用户的语境相关隐特征模型(Li et al. 2010)或语境依赖下的特征偏好模型 (Chen and Chen 2014; Levi et al. 2012)。 **6、比较性观点(Comparative opinions)**:比较性的观点在图2中有,“Bed was comfortable, perhaps not as good as some St. Regis’ but clearly better and more luxurious than the Westins heavenly stateside”。比较性的观点表明了在某些特征上,一个产品是否优于或者劣于另一个产品。这样的观点可以通过一组特殊的语言规则来抽取(Ganapathibhotla and Liu 2008),并可以用来通过图构建产品的比较关系,从而提高产品的排序质量 (Jamroonsilp and Prompoon 2013;Li et al. 2011; Zhang et al. 2010)。 **7、评论情感(Review emotions)**:情感反映了评论者写评论时的情绪,如伤心、开心、有压力的、幸福等。虽然相比观点,情感更难从评论语句中检测出来,但是,我们可以构建一个情感分类器自动化的标签化文本 (Shaikh et al. 2009)。抽取评论情感可以用来确定用户喜欢一个产品的概率 (Moshfeghi et al. 2011)。情感词可以通过集成之后推断评论者的总体评分(Zhang et al. 2013)。 **8、评论有用性(Review helpfulness)**:评论文本之外,读者对评论“helpful”的投票数量也是有用的。举例来说,这个数量被用于决定随后评分的质量得分(Raghavan et al. 2012)。评分质量被考虑进CF框架中将会使得预测结果更好。 ### **三、基于评论的用户描述构建(Review-based user profile building)** ![](http://www.datalearner.com/resources/blog_images/b65b9e2c-718c-44e1-8622-784c9813c35f.png) **1、基于术语的描述Term-based profile**:基于术语的用户描述的构建,通过两个实验被证明在新颖性、多样性、覆盖率、精确性、召回率和F1上都由于基于内容的CF(基于产品和基于用户的CF)。如table1所示。 **2、评分描述——从评论中推断评分**:这一部分主要是要研究基于评论观点推断用户对产品的整体偏好的方法,这种偏好表现为虚拟评分 virtual rating (Zhang et al. 2013),也叫做推断评分 inferred rating、观点评分opinion rating或文本评分text-based rating。 **(1)对集成词观点强度或情感的研究** (Leung et al. 2006) 以前的研究主要是词性标注(Part-of-Speech tagging)、确定情感方向、集成观点词情感成评论者总情感的思路。 Zhang et al. (2013)研究通过集成**表情符号**(emoticons)和观点词情感来推断评论者总情感。具体模型构建如下: ** RS(r) = αRS
W
(r) +(1 − α)RS
E
(r)**,其中, ①评论语料情感值RS
W
(r) =Σ
c∈r
CS(c)。按照标点符号分割评论,每一句的情感值 CS(c) =ΣS
w
,其中,S
w
= (L
w
2
/L
clause
)S
w
W
N
w
,L
w
表示情感词w个数,L
clause
表示每一句词数,S
w
W
表示词典W中情感词w的情感值,N
w
表示负向检查系数。 ②表情符号情感值RS
E
(r) = Σ
e∈E
sent
∩e∈r
S
e
E
。S
e
E
表示在表情符号集E
sent
中的表情符号e的情感值。 ③α∈[0,1],是调节两种情感组成相关贡献的参数。 **(2)通过机器学习分类观点** 不同于上面提及的方法,Poirier et al. (2010a,b)利用**机器学习方法来对观点进行分类**。他们首先将每个评论表示成词频向量,然后该向量结合用户评分在正向和负向两种情感类上训练一个选择性朴素贝叶斯分类器。最后,训练好的分类器被应用于推断新评论的评分。 总结:这一部分研究,首先通过集成方法(1)或者机器学习(2)推断评论的全局观点,然后将全局观点转变成评分并通过基于记忆的CF方法来处理。如表1所示实验也证实了从评论中获得评论的可能性,并且能够使CF方法解决评分稀疏性的问题。 ![](http://www.datalearner.com/resources/blog_images/6ebe85b0-e08d-4f67-b708-cdcaa3420645.png) **3、评分描述——用评论来提高评分**: 当处理冷启动问题时,用评论作为辅助信息可以帮助基于评分的方法获得满意的推荐结果。 **(1)考虑评论有效性(review topics)**:评论的有效性体现在其可以指示评分的真实性(Raghavan et al. 2012),具体就是读者可以对评论进行投票“helpful”或者“unhelpful”,**质量得分(quality score)**![](http://www.datalearner.com/resources/blog_images/02479151-6534-4ea1-aa0f-dc2867e156e0.png)。如果用户得到很少的投票,那么质量得分就从一个回归模型中估计,该回归模型是通过从投票多的评论及其产品元数据中抽取特征而训练得到。然后,质量得分便被用于概率矩阵分解模型中星级评分的权重。 **(2)考虑评论主题(review helpfulness)**: ①**利用主题描述(topic profile)给评分赋权重**:Musat et al. (2013)将候选产品评论中的主题与目标用户主题描述中的主题之间的相似性作为评论者星级评分的权重。然后,产品评分的权重均值表示用户对该产品的潜在偏好可能性。 主题描述:![](http://www.datalearner.com/resources/blog_images/85fbf780-8c63-4339-b058-7b266c5ba861.png),其中,count(z,R
i
)表示用户所有评论R
i
中主题z的观点数,ts是一个阈值(试验中设置为0)。 ②**利用隐因子来关联评论主题**:不同于用评论主题来权重评分,McAuley and Leskovec (2013)和Seroussi et al.(2011) 直接将它们融入隐因子模型中预测评分。 McAuley and Leskovec (2013)的研究中中,评论主题是用来发现用户隐偏好与产品内在性能之间的关系,举例来说,当要决定是否要给用户推荐哈利波特书时,如果知道书是关于巫师的且用户对巫师感兴趣,那么这个信息就变得十分有用了,于是,作者构建了一种隐因子主题模型(Hidden Factors as Topics (HFT) model),将从产品评分中学习到的隐特征与从评论中学习到的隐主题结合了起来。 Seroussi et al.(2011)的研究中,LDA发现的评论主题也可以用于反应用户的隐属性,如人口统计学信息或词汇惯用。于是,作者利用基于属性的MF( attribute-based MF,the Matrix Factorization with User Attributes model,MFUA)联系这些隐属性。为了解决新用户的问题,作者提出了一种调整策略:如果目标用户提交的评分少于n(n在实验中设为2)个,那么他们就采取基于属性的MF方法,反之,则采取古典的有偏MF模型。于是,对于目标用户u而言,产品i的预测评分可以表示为: ![](http://www.datalearner.com/resources/blog_images/92d80778-90d6-4d28-ad10-0737e42b833c.png) **(3)考虑全局观点(overall opinions)**:之前的部分是在介绍当真实评分不可得时,虚拟评分是怎么产生推荐的?这一部分,将会介绍一种典型的系统,**当真实评分和推断评分都有的时候,如何利用推断评分来提高特定用户的真实评分。**其实,在 3.2节中Zhang et al.2013的试验中已经证明了结合两种个评分将会带来更好的推荐结果,及时只是平均的融合两者。 Pero and Horváth (2013)调查了在有偏MF模型中融入全局观点的三种方式:①预过滤观点(opinion pre-filtering)指的是观点被用于预处理训练数据,使得评分更接近于全局观点;②**后过滤观点(opinion post-filtering,实验证明效果最好)**指的是评分和全局观点先分别被训练成两个预测模型,然后再线性的结合两模型;③观点建模(opinion modeling)指的是全局观点被隐式的用于训练期,也就是说,评分矩阵被标准因式分解之后,如果预测评分在真实评分与全局观点之间,就给预测偏差一个小的权重。 ![](http://www.datalearner.com/resources/blog_images/4480a920-2299-4b6d-91e2-4191f7fa6ddc.png) **(4)考虑评论上下文环境(review contexts)**:“This camera has very good picture quality at night”中的“at night”就是特征 “picture quality”的上下文环境。实际推荐系统中,获取用户上下文环境是一个挑战,这一部分将来解决这一问题。 **①用评论环境来预测产品效用**:Hariri et al. (2011) 假定用户在不同的环境中给一个宾馆相同的评分,但是他们选择宾馆的效用因不同的环境而不同。于是,这部分主要利用评论环境研究越策效用。首先,文章将预先定义好的家庭、夫妻、独自旅行、商业和朋友旅行五类旅行类型作为关键环境;然后,用有标签的LDA模型(Ramage et al. 2009,基于主题模型的多标签文本语料的有监督分类算法)来训练一个可以确定每个旅行类型与用户评论或用户当前查询相关概率的多类分类器,分类器直接在一组包含用户显式特定旅行类型的评论数据上进行训练,检测好的评论环境被表示成五种类型的分布,比如说,只检测到两种旅行类型独自旅行和商业,那么context
u
i
={P(家庭)=0,P(夫妻)=0,P(独自旅行)=0.5,P(商业)=0.5,P(朋友旅行)=0}。 一个产品的**效用**被表示成两个因子:通过标准基于产品的KNN算法计算得到的**预测评分**和通过计算产品与目标用户当前环境之间相关性的**环境得分**。对于后者而言,先用cosine计算产品间相似性:![](http://www.datalearner.com/resources/blog_images/d589da87-e3bf-4e78-9dac-8f5601ee083e.png),然后,用户u对产品i的预测环境计算如下:![](http://www.datalearner.com/resources/blog_images/c37ef5f9-02cb-4841-aedc-4b2e89ce1bff.png)。其中,Neighbors(i)表示与产品i有较高环境相似性的产品集。于是,环境得分计算如下:![](http://www.datalearner.com/resources/blog_images/600f0409-8351-4ae5-b871-8c006555c681.png)。最后总之,用户u对产品i的效用计算如下:![](http://www.datalearner.com/resources/blog_images/76340343-57e5-4e8f-b5c3-c252f57b367b.png)。 **②关联评论环境与隐因子**: **(5)考虑评论情感(review emotions)** ### **四、基于评论的产品描述构建(Review-based product profile building)**
赏
支付宝扫码打赏
如果文章对您有帮助,欢迎打赏鼓励作者
Back to Top