LDA主题模型
概率图模型LDA(Latent Dirichlet Allocation)用于推断文档中主题的分布情况。它通过将整个文档集合中的每一篇文档对应到一个主题的概率分布形式来展示这些信息,并通过分析一组特定的文档后推断出其主题的分布情况。进而能够基于推断出的主题分布来进行主题聚类以及文本分类的任务。
1. 基础知识
1.1 LDA属于贝叶斯模型
LDA是一种基于贝叶斯模型的方法,在应用贝叶斯模型时通常需要考虑“先验分布”、“数据(似然)”和“后验分布”这三个要素:
后验概率密度函数 = 先验概率密度函数 × 数据(似然)
We can refer to LDA as a generative probabilistic framework designed for analyzing collections of discrete data types, such datasets like text corpora.
Among these models, LDA stands out as a three-level hierarchical Bayesian approach.
Within this framework, each item within the collection is represented by a finite mixture distribution over an underlying set of topics.
Each topic itself is constructed through an infinite mixture distribution over the associated probability simplex.
1.2 LDA采用词袋模型构造成词向量
在LDA框架下, 一篇文献被建模为基于词袋表示的空间向量. 作为典型的无序文本表示方法之一, 在这种模型下文本被视为由独立单词组成的集合. 其中,'我喜欢你'与'你喜欢我'被视为相同的语义表达.
与词袋模型相反的一个模型是n-gram,n-gram考虑了词汇出现的先后顺序。
1.3 共轭分布
在贝叶斯概率论框架下, 当后验概率P(\theta|x)与先验概率p(\theta)遵循相同的统计特性时, 这就使得先验分布在参数空间中的形式得以保留, 被认为是其后的一种合理延拓. 这一性质即称为共轭性.
共轭分布在提出的背景下可以从主观上讲符合人们的直觉;而且它能够构建一个前因后果的链条式结构,在当前计算中得到的后验分布,在后续计算中可被用作新的先验分布的基础;只要其形式一致 就能持续形成这样的链条式结构。
比如你对好人和坏人的认知
- 先验分布为:估计有P(θ)= ½ 的概率值。
- 现在你得到了P(D|θ)= ½ 的概率值。
- 这样一来就形成了一个新的联合概率值P(θ,D)= ½ × ½ =¼。
- 接下来应用贝叶斯定理就可以得到条件概率值P(θ|D)= (¼)/(½)=½。
1.3 二项分布与Beta分布共轭
1.3.1 二项分布
在涉及n重伯努利试验的情况(即进行n次独立重复的试验,在每次试验中仅有两种可能的结果)中,若每次试验事件A发生概率固定于p时,则随机变量X遵循参数(n,p)的二项分布。该概率质量函数可表示为Binomial(k;n,p)=P(X=k)=C(n,k)pk(1-p){n−k} ,其中k取值范围从0到n。其均值计算公式则为E[X]=np。
1.3.2 Beta分布
设参数α、β均大于零,则取值范围在区间[0,1]上的随机变量x的概率密度函数服从Beta分布为:\text{Beta}(p|\alpha,\beta) = \frac{\Gamma(\alpha)\Gamma(\beta)}{\Gamma(\alpha+\beta)} p^{\alpha-1}(1-p)^{\beta-1}其中Γ表示Gamma函数,并满足Γ(n)=(n−1)!
Beta分布的期望:E=\frac{\alpha}{\alpha+\beta}
1.4 多项分布与Dirichlet分布共轭
1.4.1 多项分布
多项分布是二项分布在多元场合的推广。
考虑进行n次独立重复的试验,在每一次试验中可能出现的结果有多个。假设在每一次试验中,可能出现的结果分别为事件A_1,A_2,...,A_r,其中每个事件的概率满足P(A_i)=p_i(i=1,2,…,r),且\sum_{i=1}^r p_i = 1。设随机变量X表示这些事件分别出现次数的情况,则X服从多项分布。其概率质量函数由以下公式给出:
Multinomial(k₁,k₂,…,kᵣ | n,p₁,p₂,…,pᵣ) = \frac{n!}{k₁! k₂! … kᵣ!} p₁^{k₁} p₂^{k₂} … pᵣ^{kᵣ}}
1.4.2 Dirichlet分布
其概率密度函数的表达式为:
Dirichlet(\vec p| \vec \alpha) = \frac{\Gamma(\sum\limits_{k=1}^K\alpha_k)}{\prod_{k=1}^K\Gamma(\alpha_k)}\prod_{k=1}^Kp_k^{\alpha_k-1}
其均值向量为:
E=\left( \frac{\alpha_1}{\sum_{i=1}^K \alpha_i}, \frac{\alpha_2}{\sum_{i=2}^K \alpha_i}, ..., \frac{\alpha_K}{\sum_{i=1}^K \alpha_i}\right)
1.5 LDA采样
在现实应用中,我们往往难以准确获得精确的概率分布信息,在这种情况下常常需要依赖近似推断方法来解决问题。而通过使用随机化技术来实现其采样法则是一种重要的近似推断手段。
在许多任务中,我们关注某些特定的概率分布,并非因为我们对这些特定的概率分布本身感兴趣,而是因为需要根据它们来计算对应的期望值,并在此基础上进行相应的决策。采样法正是以这一思路为基础的。对于大多数情况而言,在处理这类问题时往往假设数据服从某种特定的概率分布。这样的假设不仅大大简化了问题的复杂性,还为后续分析提供了坚实的基础。
假设我们的目标是计算函数f(x)在概率密度函数p(x)下的期望,则可根据p(x)生成一组样本\{x_1, x_2, \cdots, x_N\};接着求取函数f在该组样本上的平均值;最后依据大数定律进行充分采样数量以提高近似的准确度。
如何采样?
概率图模型中主要应用广泛的是马尔可夫链蒙特卡罗(MCMC)方法这一技术手段。其核心思想在于通过构建一条满足特定条件的马尔可夫链来实现对目标分布p的渐趋近于平稳状态的逼近过程。在这一过程中,如何巧妙地设计转移概率机制至关重要,不同的设计策略将直接导致一系列不同的MCMC算法形成。其中最为著名的代表便是Metropolis-Hastings(MH)算法这一经典方法,在统计学与机器学习领域均占据重要地位。该算法基于“拒绝采样”(reject sampling)机制来实现对复杂目标分布的有效采样与积分计算任务
2. LDA模型原理
基于我们拥有的M篇文档,在第d篇文档中包含N_d个独特的词项。亦即输入具体来说,则是这些数据的表现形式。我们的目标在于确定每一篇文档所涉的主题分布情况以及每个主题所包含的词项构成情况。假定主题总数为K值,则所有这些分布都将围绕着这K个主题展开分析。

2.1 主题数目K的确定–调参
在LDA算法中,默认并无固定的理想主题数量。模型在训练过程中必须设定主题数量,并要求研究者应当参考生成的结果来微调主题数量以提升文本分类的准确性。
2.2 LDA的主要思想
根据LDA模型(LDA),每个文档通常涉及多个主题,并且每个词汇在这些主题中的分布情况也是明确的。在构建文档的过程中,在线性代数视角下我们可以将整个文档表示为多个主题向量的线性组合。具体来说,在构建过程中首先会根据先验概率选择一个主题z_{d,n};然后该主题下各个词汇出现的概率分布情况也会被考虑进来逐步生成完整的文档内容。通过迭代抽样的方法进行多次更新后最终形成完整的文章结构。
LDA的实现是上述文档创建的反向过程,在给定一篇生成的文章时,能够识别出该文章的主题,并提取这些主题相关的关键词。

2.3 LDA的假设条件
我们假设每个文档的主题先验分布在Dirichlet分布下,并定义为:对于任意文档d而言,其主题分布θ_d被定义为其遵循参数向量α所定义的Dirichlet分布。其中α是一个超参数向量,并且是一个K维向量。
假设主题中的词先验分布遵循Dirichlet分布在任取主题k时其词概率向量β_k满足:
\beta_k= Dirichlet(\vec \eta)其中η被视为该分布的超参数是一个V维向量而V则表示整个词汇表中的总词数
给定任意文档d及其词项w_{dn},基于其主题分布θ_d生成z_{dn}的可能值遵循Multinomial(θ_d)
因此,在分析过程中,通过基于词频分布\beta_{z_{dn}}我们推导出对应的主题编号z_{dn}的概率分布为: w_{dn} = Multi(\beta_{z_{dn}})
因此可以假设文档是通过如下方式生成:

在这样的文档中所有的词汇被认为是由主题模型生成的结果一旦知道某个文档中各个词汇出现的概率分布(即该概率构成的一个N维向量)那么就可以推断出每个特定词汇的概率值都与某个特定的主题相关联并且该主题所对应的概率分布会直接影响这个特定的概率值出现的可能性程度大校
2.4 LDA的联合概率函数
LDA模型对应的联合概率函数 :


2.5 LDA的训练:EM算法
LDA模型的核心目标是从给定的输入语料中通过学习得到两个控制参数α和β。当这两个参数被确定后,即可用于生成文档。其中α和β分别代表以下各项信息:
- α:是一个K维实数向量,在Dirichlet分布中被设定为参数序列α₁,α₂,…,α_K;该参数序列用于由该主题θ向量生成。
- β:是由各个主题生成的概率单词分布矩阵p(w|z),它记录了不同主题下各单词出现的概率。
把w当做观察变量,θ和z当做隐藏变量,就可以通过EM算法 学习出α和β。
3. LDA模型应用
3.1 语义表示
基于贝叶斯理论的主题生成模型(TM)通过分析大量文档数据,在语义层次上对每个文档进行特征提取和表达。这些应用包括但不限于文本分类任务中的自动标签识别、无监督学习驱动的文档聚类方法以及基于信息检索技术的内容丰富度评估与CTR预估。
基于主题模型的文档特征表示可以分为两类,如下图所示:
文档的主题分布情况:通过主题建模技术进行降维处理后获得各文档在不同主题上的概率分布。这些方法能够有效提取并表示这类文本的特征信息。
基于LDA模型中的Bag-of-Words假设,在文档内部并不考虑词语的位置信息从而忽视了词语间的相对位置信息。在许多工业领域问题中,
通常要求相邻或相关联的词语倾向于由同一个主题生成。
为了满足这一需求,
SentenceLDA模型则假定一个句子内部的所有词语均源自于同一个主题,并构建了对句子内部词语共现关系更为细致的模型。
Document Vector Representation : By integrating both topic vectors and document topic distributions, a unified vector representation is constructed that combines the strengths of these two approaches. Techniques such as Topical Word Embedding (TWE) and similar methods that incorporate word embeddings with topic modeling can effectively capture and represent the characteristic features of this category of documents.
高频词汇通常主导了LDA生成的主题结构,在这种情况下,
低频词汇在实际应用场景中的作用显得相对有限。
TWE通过基于LDA模型的训练优化了关键词向量表示,
从而获得了词汇与主题之间的向量表示。
基于此,在分析每个主题下的低频词语及其语义特征时,
我们能够更加精准地捕捉到这些词语的意义,
从而进一步提升其在下游应用中的效果。

3.1.1 新闻质量分类
针对新闻APP这一类应用而言,在收集各类新闻信息时所呈现的质量状况一般呈优差并存的状态。为此目的,在提高用户使用体验方面,则会建立一个分类系统用于自动筛选内容较差的部分
我们可为传统特色进行人工设定;具体涉及信息源网站、消息长度、图片张数以及热度评分等多个方面。除此之外,在此基础之上还可应用主题模子计算各条消息的主题分布情况,并将其作为辅助性指标整合到原有特色体系之中
3.1.2 新闻聚类
文档的主题分布本质上是一个包含语义信息并进行维度缩减的过程,在经过降维度处理后得到的低维主题特征能够有效地被用来对原始文档集合进行聚类分析。

表3呈现了基于主题分布特征实施K-means聚类所得的部分结果。可见,在簇1中主要涉及与房屋装修相关的新闻资讯,在簇2则集中于股票市场相关信息。各簇内部的新闻内容具有较高的语义相关性。
3.1.3 内容丰富度
在信息检索的情境下必须衡量网页内容的丰富程度以便在某种程度上反映其质量
基于计算所得出的网页主题分布情况中蕴含的信息量可被量化为信息熵值。这一数值大小直接反映了网页内容的丰富程度,并可作为衡量标准用于后续分析过程中。研究发现,在复杂排序模型中将这一指标定为单一维度特征具有显著提升排序效果的作用机制。
3.2 语义匹配
业界若干个应用场景都在基于语义进行评估的需求。此类评估问题被统一称为"基于语义的评估术语"。根据不同长度的文档差异性将这些评估方法划分为三种类型:即针对短文档对短文档进行比较、针对短文档与长文档之间的对比以及针对长文档之间相互比较的方法。
基于主题模型构建的语义匹配方案常被用作传统文本相似度计算的重要辅助手段,并不替代现有的传统文本匹配方法。
3.2.1 短文本-短文本语义匹配
3.2.1.1 query-query相关度
鉴于主题模型在处理简要文本时表现欠佳,在针对这类问题的任务中词向量的应用更为广泛。而对于较为简单的任务而言,则可采用基于Word2Vec的浅层神经网络模型训练出的词向量。
3.2.2 短文本-长文本语义匹配
3.2.2.1 query-content相关度
例如,在搜索引擎中,评估搜索关键词与网页内容之间的语义关联程度
在评估两个文本的相似程度时

其中,q表示query, c表示content, w表示q中的词, z_k表示第k个主题。
3.2.2.2 文档关键词抽取
在文档中提取关键词,在文本分析中通常采用的方法是基于词的TF-IDF值计算。除此之外,还可以通过主题模型来计算某个文档生成特定单词的可能性,并以此评估该单词的重要性程度。

然而,在主题模型中,条件概率P(w|z_k)往往会被高频词所主导。这使得一些在语义上具有重要性但频次较低的词难以被选作关键词。针对上述挑战而言,可以通过使用TWE(Term Weighting and Embedding)方法进行训练,能够获得主题与单词之间的向量表示。通过使用TWE方法进行训练后,在后续处理中我们再利用这些向量表示来计算每个词汇与文档主题之间的相似度,并通过公式(3)评估其在语义上的重要性。

其中,\overrightarrow{v_m}代表?所对应的词向量;\overrightarrow{z_k}代表主题z_k所对应的主题向量;同时这些词向量与主题向量均位于同一个嵌入空间中。
3.2.3 长文本-长文本语义匹配
基于主题建模的方法,我们能够提取两段较长文本的主题概率分布。进而通过计算这两个多项分布之间的差异程度来量化其相似程度。评估多项分布间的差异程度则可采用Hellinger Distance以及Jensen-Shannon Divergence(缩写为JSD)这两种指标。
3.2.3.1 用户画像与个性化推荐
在互联网应用领域中,在我们收集了大量用户的行为主数据之后,这些行为数据所对应的文本内容可形成一篇高度抽象化的文档结构;通过对该文档进行主题提取分析得到相应的主题分布情况,则可将其作为一种有效的用户画像表现形式。
在新闻个性化推荐场景中, 我们可以通过将用户的最近浏览行为进行整合, 将其最近浏览的新闻(及其标题)融合在一起形成一篇综合性的文档. 这一文档的主题分布则被用作表示并反映用户的阅读兴趣. 通过计算实时更新的新闻主题分布与上述构建好的用户画像之间的海林格距离(Hellinger Distance), 我们可以得到一个量化指标, 这一指标可被用来评估并决定向用户提供最佳化的新闻推送, 从而实现有效的个性化推荐效果.
在小说推荐任务中,推荐算法常用基于特征的矩阵分解模型(SVD-based Model),它能够有效处理海量数据并提取关键信息。考虑到每个用户的收藏或下载行为涉及一定数量的小说内容,则可以利用这些信息来构建用户的主题表示向量,并用于刻画用户的阅读兴趣偏好。通过计算每篇小说的主题分布与用户画像之间的Jensen-Shannon散度(JSD),可以量化评估用户对不同作品的兴趣程度。为了提升模型性能,在构建协同过滤系统时通常会将JSD评分作为一个全局特征指标加入到SVD-based模型中进行训练,并通过排序算法对候选作品进行排序后输出给目标用户
该推荐框架基于特征矩阵分解技术而设计,并且支持在模型中引入一系列全局特性、个性化用户特性和具体物品特性。通过这种方式,在实际应用中能够显著提升推荐系统的性能表现。
3.2.3.2 垂类新闻CTR预估
新闻推荐服务涵盖多种垂直领域的新闻类型,并非单一领域的产品和服务延伸至其他相关领域。
从某个用户的角度来看, 我们是从某个用户的角度来看将该用户历史上点击的新闻整合成一个综合文档, 并利用垂直分类的主题模型进行内容分析以获得文档的主题分布作为该用户的用户画像
垂类新闻的CTR预估模型利用的特征可以分为三类:
- 文章与读者相似性指标 :指的是通过长文本匹配算法计算出的文章与读者分类信息之间的关联程度。
- 文章主题表现 :是指该文章所包含的主题分布情况。
- 常规的数据统计指标:如时间信息、来源渠道以及互动频率等。
参考教程
- 深入解析LDA主题模型——由达观数据在SegmentFault‘思否’平台发布的一文详述
——由达观数据在SegmentFault‘思否’平台发布的一文详述
https://segmentfault.com/a/1190000012215533
探讨文本主题模型中的LDA方法(第一部分):LDA基础 - 刘建平老师 - 个人博客平台 http://www.cnblogs.com/pinard/p/6831308.html
周志华《机器学习》的学习心得(第16篇)——概率图模型
- Home · baidu/Familia Wiki
https://github.com/baidu/Familia/wiki
