从主题模型(Topic Model)到隐语义模型(Latent Factor Model)

  在项亮的《推荐系统实战》中曾提到:隐语义模型(以下简称LFM)的算法最早是在文本挖掘领域被提出来的,用于找出文本的隐含语义。而在文本挖掘领域,主题模型(以下简称TM)正是用于找出文本中的隐含主题。由此可以推断LFM是由TM演变而来,TM是文本挖掘领域的专有名词,而LFM是推荐系统领域的专有名词,但其算法思想却是一致的。


TM是什么?

  TM,就是一种建模方法,旨在找出文本中隐含的主题。举个例子,这有两句话,第一句是‘天猫购物狂欢节万人空巷’,第二句是‘阿里今年收入或再创新高’。如果我们缺乏先验知识,不了解“天猫”、“阿里”是什么,就无法找出它们之间存在的关系。但是,通过TM可以发现它们的语义是相似的。

  我们通过生成模型来理解TM,我们假设一篇文档的每个词都是以一定概率选定某个主题,再从该主题选定某个词。那么,要生成一个文档,每个词加和后的概率表示如下:

p(|)=p(|)p(|)

  TM训练推理的方法主要有两种,一个是pLSA(Probabilistic Latent Semantic Analysis),另一个是LDA(Latent Dirichlet Allocation)。pLSA主要使用的是EM(期望最大化)算法;LDA采用的是Gibbs sampling方法。由于篇幅有限,我们这里只简要地介绍一下LDA。关于pLSA,大家可以参考《PLSI主题模型》这篇文章。

LDA的简介

LDA有两种含义:一种是线性判别分析(Linear Discriminant Analysis);一种是概率主题模型,隐含狄利克雷分布(Latent Dirichlet Allocation)。这里我们讨论第二种含义。

  LDA,由David M.Blei、Andrew Ng、Jordan于2003年提出,是一种主题模型,它可以将文档集中每篇文档的主题以概率分布的形式给出,从而通过分析一些文档抽取出它们的主题(分布)出来后,便可以根据主题(分布)进行主题聚类或文本分类。同时,它也是一种典型的词袋模型,即一篇文档是由一组词构成,词与词之间没有先后顺序的关系。

  LDA中的关键知识点
  1、gamma函数
  2、二项分布、多项分布、Beta分布、Dirichlet分布
  3、共轭先验
  4、贝叶斯框架
  5、Gibbs采样

LFM是什么?

  LFM,由Simon Funk于2006年公布。LFM的核心算法是Funk-SVD算法,是推荐系统领域比较知名的算法之一。LFM主要应用在两个方面:一个是用户评分预测,一个是物品隐类Top-N热门排行。

  假设用户物品评分矩阵为R,现在有u个用户,i个物品,我们想要发现F个隐类,我们的任务就是找到两个矩阵U和V,使这两个矩阵的乘积近似等于R,即将用户物品评分矩阵R分解成为两个低维矩阵相乘,如下所示:

R^=UTVR

  其中,U表示隐类-用户矩阵,V表示隐类-物品矩阵。

  如果我们要预测某个用户对于某个物品的评分,表示如下:

rij(|)=uTi(|)vj(|)

  其中 rij 为用户i对物品j的预测分数。

  LFM主要利用随机梯度下降(Stochastic Gradient Descent)来处理损失函数,从而求出 R^ ,补全了用户对商品的缺失评分。

LDA与LFM的联系和区别

  联系:LDA与LFM都属于隐含语义分析技术,是一类概念,他们在本质上是相通的,都是找出潜在的主题或分类。
  区别:LDA是在文本挖掘领域对于多篇文章进行主题聚类,而LFM是在推荐系统领域对于多个用户进行兴趣聚类。

参考文献/博客:
[1] LDA 数学八卦,Rickjin(靳志辉),2013年2月8日.
[2] http://blog.csdn.net/v_july_v/article/details/41209515.
[3] 项亮. 推荐系统实践[M]. 人民邮电出版社, 2012.
[4] http://www.cnblogs.com/lixiaolun/p/4455764.html

你可能感兴趣的:(从主题模型(Topic Model)到隐语义模型(Latent Factor Model))