隐语义模型LSA和PLSA(NLP与推荐 二)

隐语义模型LSA(Latent Semantic Analysis)

语义模型:引入一个概念:语义(主题)

隐语义模型:文章--主题--词

只能观察到结果(词),无法观察到过程

  1. U,user--主题
  2. V,主题--词,每个词对每个主题的贡献
  3. k

图片文字说明


LSA的作用:

  • 可以识别多词同义,一词多义:如果w1 和w2在同一个主题反复出现,那他们可能近义词,如果w1出现在多个主题,那有可能w1是多义词
  • 用低维表示包含更多信息
  • 用转化后的维度数据做存储索引(LSI),可以提供索引召回率
  • 可以看作一个软聚类,是mixture model的基础

文本-->语义是在干嘛:

  • 表示方式不同,主题topic看的更概括:内蒙人爱喝酒(信息损失,维度下降)
  • 降维:bias-variance tradeoff (机器学习永恒主旋律)

LSA的问题:

  • 损失函数是平方差
  • SVD训练复杂度高
  • 难做增量更新模型
  • 无概率含义,纯数学方法,没有考虑文本数据特点,优化目标无概率含义,可能出现负数
  • 为什么概率含义重要:一个topic,猫的数量是-1,狗是3,不可读,如果一个是30%,一个是60%,这就更友好;对下游更友好,方便之后的处理


概率隐语义模型:

LSA不是概率模型,没有抓住文档的本质,文档--topic---词是有概率问题的;且主题之间是正交,假设过强。

需要概率模型的原因:1、含义明确,便于计算。2、有意义的隐变量:主题。

PLSA:

  • 从过程入手,假设文档和词的生成过程:LSA是矩阵相乘,直接出结果。
  • 预定义合理的概率模型
  • 求解概率模型中的参数

具体过程:

  1. 每次生成一个词
  2. 以P(d)的概率选择文档d
  3. 以p(z|d)的概率选择主题z
  4. 以p(w|z)的概率选择w

PLSA的损失函数:EM算法去优化

图片文字说明

PLSA的问题:

  • KM+KV , 训练满,容易过拟合,参数随着文档书增长
  • 非生成式模型,每个文档的主题分布是训练出来的参数,新文档进来需要重新训练
  • 拿1000个文档训练出来的就是指适合这1000个文档的分布和主题。
欢迎技术探讨