赞
踩
原文链接:
https://www.zhihu.com/question/56347440/answer/151561680
HFT算法(Hidden Factors as Topics,是一个用评论文本来增强评分预测的算法)
目前存在的推荐算法,主要关注于利用用户的评分历史和隐式反馈信息训练模型,而忽略了一项常见的用户反馈——评论。用户对商品进行的评论,既能反映用户偏好,又能体现商品的某些属性,其中蕴含着大量有价值的信息。
将经典的rating-prediction model 或 item-ranking model与一个能利用评论信息的模型相结合,会产生一个更加强大的推荐模型。它不仅可以进行更加精确的预测,同时能利用来自评论的信息使推荐具有良好的解释性,进而能在一定程度上缓解冷启动问题。例如,可以利用评论信息对矩阵分解模型中的特征向量赋予明确的含义,当某个不活跃用户的特征向量在“Tom Hanks”上具有较高值时,可以顺理成章地为其推荐“Forrest Gump”。本文介绍的算法HFT [1],就是一个将评分模型与评论模型相结合的经典算法,在LibRec中有本算法的实现代码。
HFT 模型
HFT 模型由两部分组成 : rating model 和 topic model。其中rating model部分选用的模型是BiasedMF;topic model部分选用的模型是LDA,将每个item所有的评论表示为一个document。如何将rating model与topic model关联在一起,是构建模型的关键问题。HFT使用的关联方式是,定义一个转换函数将BiasedMF中的item feature vector γ 与LDA中每个document对应的topic分布 θ 联系在一起 (HFT的另一种实现方式是将user feature vector与topic distribution关联)。这种关联方式正体现了HFT的基本思想“Hidden Vectors as Topics”。
更具体来说,HFT的基本思想为: item feature vector与此item对应的topic distribution中各项具有关联关系;且item的某种属性程度越高,此属性对应的topic在评论中出现的概率也越大,即feature vector中某一项的值越大,其在topic distribution中对应项的值也越大。
为满足HFT的基本思想,其转换函数需要满足以下两点要求 :
根据这两项约束,文章中为HFT定义的转换函数如下所示 :
HFT 的图模型表示形式如下,其中M表示item的数量,N表示user的数量,L表示document的长度,K表示topic的种类数; 左半部分为LDA表示的topic model,右半部分为BiasedMF表示的rating model;蓝色虚线箭头对应item feature vector到topic distribution的转换。
模型的目标函数,也是由rating model 和 topic model 两部分的目标函数构成:
模型学习
BiasedMF 在训练时常用的学习算法为gradient descent,而LDA在训练时常用的方法为Gibbs Sampling,当这两种模型结合在一起时,整体模型的最优化过程就需要交替的完成这两个步骤:
当模型训练好后,即可使用user feature vector与item feature vector的内积进行评分预测。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。