自然语言处理回顾

这些天重新看了过去看过的有关于自然语言处理的内容,关注到很多之前没有注意到的,但现在看来很重要的要点,整理如下:

1.LDA(潜在狄利克雷分配):
主题模型采用未标记文档的集合, 并尝试在该集合中查找结构或主题。主题模型通常假设单词的使用与主题的出现相关。

  1. 训练LDA模型时, 首先要收集文档, 并且每个文档都由固定长度的矢量(单词袋)表示。 LDA是一种通用的机器学习(ML)技术, 这意味着它也可以用于其他无监督的ML问题, 其中输入是固定长度向量的集合, 目标是探索此数据的结构。

  2. 要实现LDA模型, 首先要定义文档集中存在的”主题”数量。这听起来很简单, 但通常不如处理大量文档时直观。在具有 M 个主题的 N 个文档上训练LDA模型与找到最能解释数据的文档和主题向量相对应。假设文档中的词汇表由 V 个单词组成。

  3. 每个文档将在LDA模型中由长度为M 的向量表示, 该向量详细说明了该文档中出现的主题。一个文档可以包括75%为”主题1″和25%为”主题2″。 LDA通常会导致文档向量带有很多零, 这意味着每个文档只出现有限数量的主题。

  4. 每 主题均由长度为V 的向量表示, 该向量详细说明了可能出现的单词(给定有关该主题的文档)。因此, 对于主题1, “学习”, “建模”和”统计”可能是一些最常用的词。这意味着你可以然后说这是”数据科学”主题。对于主题2, 单词” GPU”, “计算”和”存储”可能是最常见的单词。你可以将其解释为”计算”主题。

  5. 由于使用词袋模型来表示文档, 因此LDA可能遭受与词袋模型相同的缺点。 LDA模型学习一个文档向量, 该向量预测该文档内部的单词, 而忽略任何结构或这些单词在本地级别上如何相互作用。

2.词袋:

传统上, 文本文档在NLP中表示为单词袋。在词袋模型中(注意,在词袋模型中和在LDA模型中,文档的表示方式不同),这意味着每个文档都表示为固定长度的矢量, 其长度等于词汇量。此向量的每个维度对应于文档中单词的计数或出现。能够将可变长度的文档缩减为固定长度的矢量, 使其更适合与多种机器学习(ML)模型和任务(聚类, 分类等)一起使用。
自然语言处理回顾
上图显示了如何在词袋模型中表示文档:单词” document”的计数为1, 而单词” model”在文本中出现两次。

3.词嵌入
自然语言处理回顾
上图是使用t分布随机邻居嵌入(t-SNE)将单词嵌入空间投影到2D空间的图。 t-SNE是一种降维方法, 可用于可视化高维数据。该方法将单词嵌入作为输入, 并将其投影到二维空间中, 该空间可以在图形中轻松查看。仅调查单词空间的一个小节, 重点放在接近”老师”的单词上。代替使用向量中无意义的维表示词, 可以使用词嵌入通过语义相关向量来表示词。

使用单词嵌入时, ML模型可以将大量文档(也称为”语料库”)中的信息嵌入矢量表示形式中, 以利用这些信息。词袋模型无法做到这一点, 当没有大量数据可用时会损害模型性能。单词嵌入导致文档表示形式不再是固定长度的。取而代之的是, 文档由单词矢量嵌入的可变长度序列表示。

word2vec就是单词嵌入模型

4.LDA2vec

扩展了Mikolov等人描述的word2vec模型。于2013年推出主题和文档载体, 并融合了词嵌入和主题模型的构想。主题模型的总体目标是产生可解释的文档表示形式, 该表示形式可用于发现未标记文档集合中的主题或结构。这种可解释的文档表示形式的示例是:文档X为20%的主题a, 40%的主题b和40%的主题c。另外 lda2vec在单词嵌入的基础上构建文档表示形式。

简而言之, lda2vec的最终结果是一组稀疏文档权重向量以及易于解释的主题向量。通过在lda2vec模型中提供一个附加的上下文向量, 可以更好地猜测上下文词。

请考虑以下示例:在原始的word2vec模型中, 如果关键词是”法语”, 则可能的上下文词可能是”德语”, “荷兰语”, “英语”。如果没有任何全局(与文档相关的)信息, 这些将是最合理的猜测。

如果文档向量是”食物”和”饮料”主题的组合, 则”法式长棍面包”, “奶酪”和”酒”可能更合适。如果文档向量类似于”城市”和”地理”主题, 则”巴黎”, “里昂”和”格勒诺布尔”可能更合适。

请注意, 这些主题向量是在词空间中学习的, 这便于解释:你只需查看最接近主题向量的词向量即可。另外, 对文档权重向量施加约束, 以获得稀疏向量(类似于LDA), 而不是密集向量。这样可以轻松解释不同文档的主题内容。

尽管性能趋于类似于传统的LDA, 但是使用自动微分方法使该方法可扩展到非常大的数据集。此外, 通过组合上下文向量和词向量, 你可以获得”专用”词向量, 该词向量可在其他模型中使用(并且可能会胜过更多”通用”词向量)。

参考文献:http://www.srcmini.com/46652.html

上一篇:LDA主题模型


下一篇:【线代&NumPy】第十二章 - 矩阵对角化课后练习 | 特征值分解 | 散布矩阵 | 降维方法LDA | 简述并提供代码