8  嵌入模型

嵌入是一种单词表示,允许具有相似含义的单词具有相似的表示。它们是文本的分布式表示,这可能是深度学习方法在挑战自然语言处理问题上表现出令人印象深刻的性能的关键突破之一。在本章中,您将了解用于表示文本数据的嵌入方法。完成本章后,您将了解:

  • 用于表示文本的嵌入方法是什么以及它与其他特征提取方法的区别。
  • 3种主要用于从文本数据单词嵌入的算法
  • 您可以训练新的嵌入模型或在您的自然语言处理任务中使用预先训练的嵌入模型

8.1 概观

本教程分为以下几部分:

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

8.2    什么是Word Embedding模型

单词嵌入是文本的学习表示,其中具有相同含义的单词具有相似的表示。正是这种表达单词和文档的方法可能被认为是深度学习挑战自然语言处理问题的关键突破之一。

使用密集和低维向量的一个好处是便于计算:大多数神经网络工具包不能很好地处理非常高维,稀疏的向量。......密集表示的主要好处是泛化能力(概括能力):如果我们觉得某些特征可能提供类似的线索,就有必要提供能够捕获这些相似性的表示方法

  • 92页,自然语言处理中的神经网络方法,2017年。

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

该方法的关键是为每个单词使用密集的分布式表示。每个单词由实值向量表示,通常为数十或数百个维度。这与稀疏字表示所需的数千或数百万维度形成对比,例如one-hot编码

将词汇表中的每个词与分布式词特征向量相关联...特征向量表示词的不同方面:

每个词与向量空间中的点相关联。特征的数量......远小于词汇的大小

  • 神经概率语言模型,2003

基于单词的使用来学习分布式表示这允许以类似方式使用的单词方法会形成相似的表示,能很自然地捕获它们的含义这与词袋模型中的清晰但脆弱的表示形成鲜明地对比,在词袋模型表示方法中,除非明确管理,否则不同的词语具有不同的表示形式,无论它们如何被使用。

该方法背后有更深层次的语言学理论,即Zellig Harris的分布假设,可归纳为:具有相似语境的词语具有相似的含义。有关更深入的信息,请参阅Harris 1956年的论文分布式结构Distributional structure。这种根据单词使用来确定其意义的概念可以通过John Firth经常重复的口头禅来概括:

可以通过一个词的伴词了解其意义You shall know a word by the company it keeps!

  • 11页,语言学理论概要1930-1955,语言分析研究

1930-1955, 1962.

8.3 Word Embedding模型算法

单词嵌入方法从文本语料库中学习预定义固定大小词汇表的实值向量表示。学习过程要与某个任务上的神经网络模型绑定,例如文档分类,要么是无监督过程,使用文档统计。本节介绍可用于从文本数据中学习嵌入单词的三种技术。

8.3.1 嵌入层

由于缺少更好的名称,单词嵌入这个命名是通过嵌入层是与特定自然语言处理任务(例如语言建模或文档分类)上的神经网络模型结合获得的。它要求清理和准备文档文本,先用one-hot编码每个单词矢量空间的大小被指定为模型的一部分,例如50,100300维。矢量用小的随机数初始化。嵌入层于神经网络的前端,并使用反向传播算法以监督方式拟合。

...当神经网络的输入包含符号分类特征(例如,采用k个不同符号之一的特征,例如来自封闭词汇表的单词)时,通常将每个可能的特征值(即词汇表中的每个单词)是具有d随机向量然后将这些量视为模型的参数,并与其他参数一起训练。

  • 49页,自然语言处理中的神经网络方法,2017年。

一个热编码的单词被映射到单词向量。如果使用多层感知器模型,在输入模型之前词向量会被连接起来。如果使用递归神经网络,则每个字可以作为序列中的一个输入这种学习嵌入层的方法需要大量的训练数据并且可能很慢,但是针对特定文本数据和NLP任务学习嵌入则是可以接受的

8.3.2 Word2Vec

Word2Vec是一种有效从文本语料库中学习独立词嵌入模型的统计方法由谷歌的Tomas Mikolov等人开发2013并将其用于基于神经网络的训练过程中,发现词嵌入模型预处理模型输入比以往的编码方法效率更高,从那时起词嵌入就成为开发预训练模型的事实标准。

此外,论文中提及了如何构建词向量和对词向量的数学原理的推导。例如,从King中减去man-ness并增加women-ness的结果就是女王这个词,捕获了kingqueen的语义和manwoman是一致的。

我们发现这种表示方法在捕获语言中的句法和语义规律方面令人惊讶地擅长,并且每个关系都由特定于关系的向量偏移来表示,这允许单词之间的关系可以用向量的偏移的来推断。例如,male/female关系是自动学习的,并且通过推导矢量表示,King-Man + Woman得到非常靠近Queen的矢量。

  • 连续空间中词表示的语言规律,2013年。

引入了两种不同的学习模型,可以作为Word2Vec方法的一部分来学习嵌入一词;他们是:

  • 连续的词袋,或CBOW模型。
  • 连续Skip-Gram模型。

CBOW模型通过基于其上下文预测当前单词来学习嵌入。连续SKIP-GRAM模型通过预测给定当前单词的周围单词来学习。

 

 

 

 

 

 

 

 

 

8.1Word2Vec培训模型。取自向量空间中词表示的有效估计,2013

两种模型都专注于在给定其本地使用上下文的情况下学习单词,其中上下文由相邻单词的窗口定义。该窗口是模型的可配置参数。

滑动窗口的大小对得到的向量相似性具有很大的影响,大窗户倾向于产生更多的主题相似性[...],而较小的窗户倾向于产生更多的功能和句法相似性。

  • 128页,自然语言处理中的神经网络方法,2017年。

该方法的主要优点是可以有效地学习高质量的单词嵌入(低空间和时间复杂度),允许从更大的文本语料库(数十亿字)学习更大的嵌入(更多维度)。

8.3.3 GloVe

单词表示的全局向量或GloVe算法是用于有效学习单词向量的Word2Vec方法的扩展,由斯坦福大学的Pennington等人开发。经典的向量空间模型表示是使用矩阵分解技术(如潜在语义分析(LSA))开发的,这些技术很好地利用了全局文本统计,但在捕捉意义和显示词性之间的相关性比如分类和类比等任务不如Word2Vec学习的方法(例如上面的国王和王后示例)。

GloVe是一种将LSA等矩阵分解技术的全局统计与Word2Vec中基于本地语境的学习结合起来的方法。GloVe不是使用窗口来定义局部上下文,而是使用整个文本语料库中的统计信息构造显式的单词上下文或单词共现矩阵,这样获得的学习模型通常会是更好的词嵌入模型。

GloVe是一种新的全局对数双线性回归模型,用于无监督学习单词表示,在单词类比,单词相似度和命名实体识别任务方面优于其他模型。

  • GloVeWord表示的全局向量,2014

8.4 使用Word Embedding模型

在自然语言处理项目中使用单词嵌入时,您有一些选择,本节概述了这些选项。

8.4.1 学习嵌入

您可以为您的问题选择学习自己词嵌入模型,这将需要大量的文本数据以确保可以学习到有用的词嵌入,例如数百万或数十亿个单词。训练单词嵌入时,您有两个主要选项:

独立学习,就独立于任务训练模型以学习词嵌入迷行,嵌入模型被保存并在以后作为另一个模型的一部分用于您的任务。如果您想在多个模型中使用相同的词嵌入模型,这是一个很好的方法。

共同学习,将嵌入作为大型任务特定模型的一部分进行学习。如果您只打算在一个任务上使用词嵌入,这是一个很好的方法。

8.4.2 重复使用嵌入

研究人员通常可以免费提供经过预先训练的单词嵌入,通常是在获得许可下,您就可以在自己的学术或商业项目中使用它们。例如,Word2VecGloVe字嵌入都可以免费下载,可以在您的项目中使用,而不需要从头开始训练您自己的嵌入模型。在使用预先训练的嵌入模型时,您有两个主要选项:

  • 态,嵌入模型保持静态仅仅只作为组件用于您的问题模型。如果嵌入适合您的问题并提供良好的结果,这是一种合适的方法。
  • 动态,使用预训练嵌入模型作为问题模型起点,嵌入层参数在模型训练期间会同时更新。如果您希望在问题模型充分利用词嵌入模型,这可能是一个不错的选择。

8.4.3 你应该选择哪种选择?

尝试不同的选项,如果可能的话,测试哪个选项可以最好地解决您的问题。也许从快速方法开始,例如使用预先训练的嵌入,并且如果它能够在您的问题上获得更好的性能,则只使用新的嵌入。


0 条 查看最新 评论

没有评论
暂时无法发表评论