推荐系统(3):隐语义模型

书名:推荐系统实践 作者:项亮
链接:微信读书链接

文章目录

自从Netflix Prize比赛举办以来,LFM(latent factor model)隐语义模型逐渐成为推荐系统领域耳熟能详的名词。其实该算法最早在文本挖掘领域被提出,用于找到文本的隐含语义。相关的名词有LSI、pLSA、LDA和Topic Model。本节将对隐含语义模型在Top-N推荐中的应用进行详细介绍,并通过实际的数据评测该模型。

基础算法

隐语义模型的核心是用过隐含特诊联系用户兴趣和物品
有两个用户,A的兴趣涉及侦探小说、科普图书以及一些计算机技术书籍,B的兴趣比较集中在数学和机器学习方面。

那么如何给A和B推荐图书呢?

  • 对于UserCF,首先需要找到和他们看了同样书的其他用户(兴趣相似的用户)​,然后给他们推荐那些用户喜欢的其他书。
  • 对于ItemCF,需要给他们推荐和他们已经看的书相似的书,比如作者B看了很多关于数据挖掘的书,可以给他推荐机器学习或者模式识别方面的书。
  • 还有一种方法,可以对书和物品的兴趣进行分类。对于某个用户,首先得到他的兴趣分类,然后从分类中挑选他可能喜欢的物品。

即这三种方法需要解决3个问题:

  1. 如何给商品进行分类
  2. 如何确定用户对这哪些类的物品感兴趣,以及感兴趣的程度?
  3. 对于一个给定的类,选择哪些属于这个类的商品推荐给用户,以及如何确定这些物品在一个类中的权重?

对于第一个问题的简单解决方案是找编辑给物品分类。以图书为例,每本书出版时,编辑都会给书一个分类。为了给图书分类,出版界普遍遵循中国图书分类法。但是,即使有很系统的分类体系,编辑给出的分类仍然具有以下缺点。

  • 编辑的意见不能代表各种用户的意见。 比如,对于《具体数学》应该属于什么分类,有人认为应该属于数学,有些人认为应该属于计算机。从内容看,这本书是关于数学的,但从用户看,这本书的读者大部分是做计算机出身的。编辑的分类大部分是从书的内容出发,而不是从书的读者群出发。
  • 编辑很难控制分类的粒度。 我们知道分类是有不同粒度的,​《数据挖掘导论》在粗粒度的分类中可能属于计算机技术,但在细粒度的分类中可能属于数据挖掘。对于不同的用户,我们可能需要不同的粒度。比如对于一位初学者,我们粗粒度地给他做推荐就可以了,而对于一名资深研究人员,我们就需要深入到他的很细分的领域给他做个性化推荐。
  • 编辑很难给一个物品多个分类。 有的书不仅属于一个类,而是可能属于很多的类。
  • 编辑很难给出多维度的分类。 我们知道,分类是可以有很多维度的,比如按照作者分类、按照译者分类、按照出版社分类。比如不同的用户看《具体数学》原因可能不同,有些人是因为它是数学方面的书所以才看的,而有些人是因为它是大师Knuth的著作所以才去看,因此在不同人的眼中这本书属于不同的分类。
  • 编辑很难决定一个物品在某一个分类中的权重。 比如编辑可以很容易地决定《数据挖掘导论》属于数据挖掘类图书,但这本书在这类书中的定位是什么样的,编辑就很难给出一个准确的数字来表示。

所以为了解决这个问题,从数据出发,采用用户行为统计的自动聚类,较好地解决了上面提出的5个问题;

  • 编辑的意见不能代表各种用户的意见,但隐含语义分析是来自用户行为的统计,代表用户对物品的看法。隐含语义分析技术和ItemCF在物品分类方面的思想类似,如果两个物品被很多用户同时喜欢,那么这两个物品就很有可能属于同一个类。
  • 编辑很难控制分类的粒度,但隐含语义分析技术允许我们指定最终有多少个分类,这个数字越大,分类的粒度就会越细,反之分类粒度就越粗。
  • 编辑很难给一个物品多个分类,但隐含语义分析技术会计算出物品属于每个类的权重,因此每个物品都不是硬性地被分到某一个类中。
  • 编辑很难决定一个物品在某一个分类中的权重,但隐含语义分析技术可以通过统计用户行为决定物品在每个类中的权重,如果喜欢某个类的用户都会喜欢某个物品,那么这个物品在这个类中的权重就可能比较高。

隐含语义分析技术从诞生到今天产生了很多著名的模型和方法,其中和该技术相关且耳熟能详的名词有pLSA、LDA、隐含类别模型(latent class model)​、隐含主题模型(latent topic model)​、矩阵分解(matrix factorization)​。这些技术和方法在本质上是相通的,其中很多方法都可以用于个性化推荐系统。本章将以LFM为例介绍隐含语义分析技术在推荐系统中的应用。
LFM通过如下公式计算用户u对物品i的兴趣:
P r e f e r e n c e ( u , i ) = r u i = p u T q i = ∑ f = 1 F p u , k q i , k Preference(u,i)=r_{ui}=p_u^Tq_i=\sum_{f=1}^F{p_{u,k}q_{i,k}} Preference(u,i)=rui=puTqi=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值