HFT算法

原文链接:
https://www.zhihu.com/question/56347440/answer/151561680

HFT

​ ​ 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的基本思想,其转换函数需要满足以下两点要求 :

  1. 允许 γ 中各项可取任意实数值的同时,保证 θ 是一个概率分布向量,即 θ 中各项非负且小于等于1,各项累加和为1。
  2. 保证 γ 与 θ 各对应项在各自向量中的大小位序相同。例如 γ 中最大值项对应的topic,在 θ 中也具有最大值。

​ ​ 根据这两项约束,文章中为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,当这两种模型结合在一起时,整体模型的最优化过程就需要交替的完成这两个步骤:

  1. 对前述定义的目标函数使用L-BFGS更新参数
  2. 根据更新的参数计算两个分布向量θ与φ,对每个word分配的topic进行重新采样

​ ​ 当模型训练好后,即可使用user feature vector与item feature vector的内积进行评分预测。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值