文本的词嵌入是什么?

词嵌入(Word embeddings)是一种单词的表示形式,它允许意义相似的单词具有类似的表示形式。

它们是文本的分布式表示,这大概是在挑战自然语言处理问题的深度学习方法时,令人印象深刻的关于性能的重大突破之一。

在这篇文章中,您将会了解到用于表示文本数据的词嵌入方法。

读完本文后,您会知道:

  • 用于表示文本的词嵌入方法究竟是什么,以及它是如何与其他特征提取方法不同的。
  • 关于从文本数据中学习词嵌入的三种主要算法。
  • 你可以训练一个新的词嵌入,或者在你的自然语言处理任务中使用预训练好的词嵌入。

我们开始本次学习之旅吧!

文本的词嵌入是什么?

图片作者 Heather,保留部分版权。

概览

这篇文章分为三大部分,分别是:

  1. 词嵌入是什么?
  2. 词嵌入的算法
  3. 词嵌入的使用

什么是词嵌入?

词嵌入是文本的学习表示,其中意义相同的单词具有相似的表示形式。

正是这种表达单词和文档的方法,被人们认为可能是在挑战自然语言处理问题时,有关深度学习的重大突破之一。

使用密集和低维向量的好处之一是利于计算:大多数神经网络工具包无法很好地处理非常高维的稀疏向量。... 密集表示最重要的益处在于其泛化能力:如果我们相信某些特征可能提供关于相似性的线索,那么为了捕获这些线索而准备一些表示则是值得的。

- 引用自 2017 年出版的 Neural Network Methods in Natural Language Processing(自然语言处理中的神经网络方法),第 92 页。

实际上,词嵌入是一类技术,这种技术将单独的词在预定义的向量空间中表示为实值向量。其中每个单词映射到一个向量上,向量值是以类似于神经网络的方式学习得来,该技术因此常被归类于深度学习领域。

为每个单词使用密集的分布式表示,这是词嵌入方法的核心思想。

每个单词由一个实值向量表示,这一向量通常有数十或几百个维度。这与稀疏词表示所需的成千上百万个维度形成鲜明对比,稀疏表示的一个例子就是独热编码(One-hot encoding)。

词汇表中一个分布式的词特征向量将每个单词互相关联在一起 ... 特征向量表示了词的不同方面:每个词与向量空间中的一个点相关联。特征的数量 ... 远小于词汇表的大小。

- 引用自 2003 年发表的 A Neural Probabilistic Language Model(一个神经概率语言模型)。

分布式表示是基于单词的用法学习得来的。这使得以类似的方式使用的单词能具有相似的表示,并自然地捕捉它们的意义。这可以与词袋模型(Bag-of-words model)中的脆而易碎的表示形成对照:(词袋模型中)除非显式地进行管理,否则不论单词如何被使用,不同的单词都会具有不同的表示。

这种方法有着更深层的语言学理论背景,即 Zellig Harris 的 “distributional hypothesis(分布假说) ”,这一假说可以概括为:具有相似语境的词语具有相似的意义。欲知详情,请参阅 Harris 在 1956 年发表的论文 “Distributional structure(分布式结构)”。

这种概念(让词的用法来定义它的意义)可以用 John Firth 所再三重复的妙语作为总结:

识词于其所友!(You shall know a word by the company it keeps!)

(译者注:这句妙语的翻译源自搜狐网站的一篇文章

- 引用自 1962 年发表的,对 1930 - 1955 年语言学分析的相关研究, “A synopsis of linguistic theory 1930-19551930-1955 年语言学理论概览)”,

词嵌入的算法

词嵌入方法是对文本语料库进行学习,从而得到预定义的固定大小词汇表的实值向量表示。

其学习的过程要么是与某些任务(如文档分类)的神经网络模型的结合,要么就是使用文档统计的无监督过程。

本小节对可用于从文本数据中学习到词嵌入的三种技术进行了综述。

1.嵌入层

一个嵌入层(Embedding layer),没有比这更贴切的名称了,它是一种与特定自然语言处理任务(如语言建模或文本分类)的神经网络模型共同学习的词嵌入。

它要求对文档文本进行准备与清理,以使得每个单词都是一个独热编码。向量空间的大小被指定为模型的一部分,例如 50, 100 或 300 个维度。向量使用小的随机数进行初始化。嵌入层用于神经网络的前端,并且它采用反向传播算法(Backpropagation algorithm)以有监督(Supervised)的方式进行拟合。

... 当神经网络的输入包含符号分类特征时(例如,从一个封闭的词汇表中取出 k 个不同符号的特征),通常我们将每个可能的特征值(即词汇表中的每个词)通过一些 d 维向量联系起来。然后将这些向量视为模型的参数,并与其他参数一起训练。

- 引用自 2017 年出版的 Neural Network Methods in Natural Language Processing(自然语言处理中的神经网络方法),第 49 页。

词的独热编码被映射到词向量中。如果我们使用多层感知器(Perceptron)模型,那么在将单词向量输入给模型之前,我们要将它们串联在一起。如果使用的是循环神经网络,那么每个单词可以作为输入序列中的一员。

这种学习嵌入层的方法需要大量的训练数据,并且训练速度低下,但是会学习到针对特定文本数据和 NLP 任务的嵌入。

2. Word2Vec

Word2Vec 是一种统计学方法,它可以从文本语料库中高效地学习独立的词嵌入。

2013 年,它由 Tomas Mikolov 等人在谷歌开发,它作为一个响应,使得对基于神经网络的嵌入的训练更加有效。从那时起,它就已成为开发预训练词嵌入的一个约定俗成的标准。

此外,该研究还涉及到对学习到的向量的分析,以及在单词表示方面对向量数学的探索。例如,从 “King”(国王) 中减去 “man-ness”(男人),其结果再加上 “women-ness”(女人)就会得到 “Queen”(女王) 这个词,掌握到这样的类比“king is to queen as man is to woman(国王与女王是对应的,正如男人对于女人一样)

我们发现,这些表示法非常善于捕捉语言中的句法和语义规律性,并且每种关联都以特定关系(Relation-specific)的向量偏移作为特征。这允许基于词之间的偏移来进行面向向量的推理。例如,男性/女性的关联是自动学习得到的,在诱导向量的表示下,“ King - Man + Woman” 的结果是一个非常近似于 “Queen” 的向量。

- 引用自 2013 年发表的 Linguistic Regularities in Continuous Space Word Representations( 连续空间词表达中的语言规律)。

有两种不同的学习模型被引入,它们可以作为 word2vec 方法的一部分来学习词嵌入:

  • 连续词袋模型(CBOW,Continuous Bag-of-Words) 模型。
  • 连续跳跃元语法(Continuous Skip-Gram)模型。

CBOW 模型基于上下文来预测当前的词,从而学习到词嵌入。连续 Skip-Gram 模型则是通过预测当前单词的邻近词来学习。

Word2Vec 训练模型

图片源自 2013 年发表的 “Efficient Estimation of Word Representations in Vector Space(向量空间中词表示的有效估计)”。

这两种模型都侧重于在局部使用的上下文语境下进行学习,其中上下文是由一个邻近词窗口来定义的。这个窗口是模型的一个可配置参数。

滑动窗口的大小对得到的向量相似性具有深刻影响。大的窗口趋于产生更多的局部相似性 [...] 而较小的窗口则倾向于产生更多在功能上和句法上的相似性。

- 引用自 2017 年出版的 Neural Network Methods in Natural Language Processing(自然语言处理中的神经网络方法),第 128 页。

这种方法的主要优点就是可以高效地学习到高质量的词嵌入(具有低维度和低时间复杂度的特性),它允许从更大的文本语料(数十亿个词)中学习更大规模的嵌入(更多维度)。

3.GloVe

用于词表示的全局向量算法(或称为 GloVe)是由 Pennington 等人于 Stanford 大学开发的,这一算法是对于 word2vec 方法的一个扩展,它可以高效地学习到词向量。

经典的向量空间模型的词表示是使用矩阵分解技术(例如潜在语义分析 [LSA,Latent Semantic Analysis])开发的,这些技术在使用全局文本统计这方面表现优异,但它们并不像 word2vec 那样学习方法一样,能够捕获(词的)意义并在任务中表示出来,比如计算出类比(例如上面描述的国王与女王的例子)。

GloVe 是一种将矩阵分解技术的全局统计(例如 LSA)与 word2vec 中基于局部语境的学习结合起来的方法。

不同于使用窗口来定义局部上下文(word2vec),GloVe 使用了整个文本语料库,语料库中的统计信息用于构造明确的词的上下文或者词的共生矩阵(Co-occurrence matrix)。使用整个文本语料库的结果,是得到一个通常能获得更好的词嵌入的学习模型。

GloVe 是一个新的全局的 Log-bilinear 回归模型,这个模型用于无监督学习的词表示,它在词类比,词相似性以及命名实体识别任务方面皆优于其它模型。

- 引用自 2014 年发表的 GloVe: Global Vectors for Word Representation(GloVe:用于词表示的全局向量)。

词嵌入的使用

当您在自然语言处理项目中使用词嵌入时,您有一些可选设置。

本节将对这些选项进行概述。

1.学习嵌入

你可以选择学习一个词嵌入以帮助解决你的问题。

而这将需要大量的文本数据(如数百万甚至数十亿个词)来确保能学习到有使用价值的嵌入。

训练词嵌入时,您有两个主要选项:

  1. 单独学习(Learn it Standalone),此时模型被训练来学习词嵌入,它会被保存起来,并在以后作为另一个模型中的一部分。如果你想在多个模型中使用同样的嵌入,这会是一个很好的方法。
  2. 联合学习(Learn Jointly),此时学习到的嵌入将作为一个大型的特定任务模型的一部分。如果你只打算在一个任务上使用嵌入,这会是一个好方法。

2.重用嵌入

通常情况下,研究人员会基于一些许可协议来免费提供预训练的词嵌入,以便您可以在自己的学术或商业项目中使用它们。

例如,word2vec 和 GloVe 词嵌入都可以免费下载。

你可以在项目中使用它们,而不需要从头开始训练自己的嵌入。

在使用预训练的嵌入时,您有两个主要选项:

  1. 静态的(Static),其中嵌入保持静态(不变的)并作为模型中的一个组件来使用。如果嵌入很好地拟合您的问题并且给出好的结果,则这是一个合适的方法。
  2. 更新的(Updated),预训练嵌入作为模型的种子(Seed),但嵌入会在模型训练期间进行联合更新。如果您希望充分利用模型并将其嵌入到您的任务中,这可能是一个不错的选择。

你应该使用哪个选项?

如果可以,请对不同的选项进行探索,测试一下,看看哪个能给出最好的结果。

或许您可以从快速的方法开始(比如使用预训练的嵌入),并且只有当使用新的嵌入才能在问题上获得更好的性能时,才使用新的嵌入。

扩展阅读

如果您正在深入研究,本节将提供更多有关该主题的资源。

文章

论文

项目

书籍

总结

通过本文,您了解到了深度学习应用中作为文本表示方法的词嵌入技术。

具体来说,你学到了:

  • 表示文本的嵌入方法是什么,以及它是如何区别于其他特征提取方法的。
  • 从文本数据中学习词嵌入的三种主要算法。
  • 你可以在自然语言处理任务中训练一个新的嵌入,或者使用预训练的嵌入。

本文的版权归 StoneDemo 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

一个神经网络学习一切!谷歌又放了个大卫星(附论文)

李林 问耕 编译自 Arxiv 量子位 出品 | 公众号 QbitAI 最近,Google又在论文题目上口出狂言:One Model To Learn The...

39311
来自专栏贾志刚-OpenCV学堂

图形图像算法中必须要了解的设计模式(1)

随着信息的多元化,信息的概念不仅仅指的是文字,它还包含图片、声音、视频等其它丰富的信息。文字信息越来越多地被图片、声音、视频信息所替代,而视频又是由一针一针的图...

1263
来自专栏机器学习算法与Python学习

Machine Learning -- Bayesian network

链接地址:http://www.dataguru.cn/thread-508373-1-1.html 0 引言 事实上,介绍贝叶斯定理、贝叶斯方法、贝叶斯推断的...

4536
来自专栏算法channel

入门解读 seq2seq 和注意力模型

2554
来自专栏人工智能头条

深度学习在自然语言处理中的应用

2144
来自专栏数据派THU

一文读懂机器学习概率图模型(附示例和学习资源)

来源:机器之心 本文长度为10085字,建议阅读15分钟 本文结合基础应用示例系统性的为你讲解概率图模型。 概率图模型是人工智能领域内一大主要研究方向。近日,数...

1.2K9
来自专栏IT派

读懂概率图模型:你需要从基本概念和参数估计开始

概率图模型是人工智能领域内一大主要研究方向。近日,Statsbot 团队邀请数据科学家 Prasoon Goyal 在其博客上分两部分发表了一篇有关概率图模型的...

4114
来自专栏AI启蒙研究院

进击的TensorFlow

602
来自专栏机器之心

资源 | 百万级字符:清华大学提出中文自然文本数据集CTW

选自arXiv 作者:Tailing Yuan等 机器之心编译 参与:刘晓坤、李泽南 文字识别一直是图像处理领域中的重要任务。近日,清华大学与腾讯共同推出了中文...

5054
来自专栏ATYUN订阅号

Google语义文本相似性研究的进步,可为智能产品提供必要的技术

最近,基于神经网络的自然语言理解研究的快速发展,特别是学习语义文本表征,为全新产品提供必要的技术,如Smart Compose和Talk to Books。它还...

1564

扫码关注云+社区

领取腾讯云代金券