当前位置:   article > 正文

『迷你教程』 程序员入门NLP中文本的词嵌入_nlp什么是词嵌入

nlp什么是词嵌入

什么是词嵌入

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

在这里插入图片描述

正是这种表示单词和文档的方法可能被认为是深度学习在具有挑战性的自然语言处理问题上的关键突破之一。

《Neural Network Methods in Natural Language Processing》 2017年

One of the benefits of using dense and low-dimensional vectors is
computational: the majority of neural network toolkits do not play
well with very high-dimensional, sparse vectors. … The main benefit of
the dense representations is generalization power: if we believe some
features may provide similar clues, it is worthwhile to provide a
representation that is able to capture these similariti
使用密集和低维向量的好处之一是计算:大多数神经网络工具包不能很好地处理非常高维的稀疏向量。…密集表示的主要好处是泛化能力:如果我们相信某些特征可能提供类似的线索,那么提供能够捕捉这些相似性的表示是值得的。

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

该方法的关键是对每个单词使用密集分布式表示的想法。

每个词都由一个实值向量表示,通常是数十或数百个维度。这与稀疏词表示所需的数千或数百万个维度形成对比,例如 one-hot编码

《A Neural Probabilistic Language Model》 2003年

associate with each word in the vocabulary a distributed word feature vector … The feature vector represents different aspects of the word: each word is associated with a point in a vector space. The number of features … is much smaller than the size of the vocabulary

与词汇表中的每个词关联一个分布式词特征向量……特征向量代表词的不同方面:每个词与向量空间中的一个点相关联。特征的数量……远小于词汇量

分布式表示是基于单词的使用来学习的。这允许以相似方式使用的单词产生相似的表示,自然地捕捉它们的含义。这可以与词袋模型中清晰但脆弱的表示形成对比,其中,除非明确管理,否则不同的词无论如何使用他们都是具有不同的表示。

该方法背后有更深层次的语言学理论,即Zellig Harris的“分布假设”,可以概括为:具有相似上下文的单词将具有相似的含义。如需更深入的了解,请参见 Harris 1956 年的论文“分布式结构”。

这种让这个词的用法定义其含义的概念可以用约翰·弗斯 (John Firth) 经常重复的俏皮话来概括:

《A synopsis of linguistic theory 1930-1955》1962 年

You shall know aword by the company it keeps!
它所拥有的公司你会知道一个词!

词嵌入算法

词嵌入方法从文本语料库中学习预定义固定大小词汇的实值向量表示。

学习过程要么在某些任务上与神经网络模型联合,例如文档分类,要么是一个无监督的过程,使用文档统计。

三种可用于从文本数据中学习词嵌入的技术。

1.嵌入层

由于缺乏更好的名称,嵌入层是在特定的自然语言处理任务(例如语言建模或文档分类)上与神经网络模型联合学习的词嵌入。
在这里插入图片描述

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

《Neural Network Methods in Natural Language Processing》2017年

when the input to a neural network contains symbolic categorical features (e.g. features that take one of k distinct symbols, such as words from a closed vocabulary), it is common to associate each possible feature value (i.e., each word in the vocabulary) with a d-dimensional vector for some d. These vectors are then considered parameters of the model, and are trained jointly with the other parameters.
神经网络的输入包含符号分类特征(例如,采用 k 个不同符号之一的特征,例如来自封闭词汇表的单词),通常关联每个可能的特征值(即词汇表中的每个单词)对某些 d 使用 d 维向量。这些向量然后被认为是模型的参数,并与其他参数联合训练。

one-hot 编码的词被映射到词向量。如果使用多层感知器模型,则词向量在作为输入输入到模型之前会被连接起来。如果使用循环神经网络,则每个单词都可以作为序列中的一个输入。

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

2. Word2Vec

Word2Vec 是一种从文本语料库中高效学习独立词嵌入的统计方法。
在这里插入图片描述

它是由 Tomas Mikolov 等人开发的。2013 年在谷歌作为响应使基于神经网络的嵌入训练更有效,从那时起已成为开发预训练词嵌入的事实上的标准。

此外,这项工作涉及对学习向量的分析和对单词表示的向量数学的探索。例如,从 “ King ” 中减去 “ man-ness ” 并添加 “ woman -ness ” 得到 “ Queen ” 这个词,捕捉到 “国王之余即女王,男人之余即女人” 这样的比喻。

请添加图片描述

《Linguistic Regularities in Continuous Space Word Representations》2013 年

We find that these representations are surprisingly good at capturing syntactic and semantic regularities in language, and that each relationship is characterized by a relation-specific vector offset. This allows vector-oriented reasoning based on the offsets between words. For example, the male/female relationship is automatically learned, and with the induced vector representations, “King – Man + Woman” results in a vector very close to “Queen.”
我们发现这些表示在捕捉语言中的句法和语义规律方面出奇地好,并且每个关系都以特定于关系的向量偏移为特征。这允许基于单词之间的偏移进行面向向量的推理。例如,男性/女性关系是自动学习的,并且通过诱导向量表示,“King – Man + Woman”会产生非常接近“Queen”的向量。

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

  • 连续词袋,或 CBOW 模型。
  • 连续跳跃语法模型。

CBOW 模型通过根据上下文预测当前词来学习嵌入。连续的skip-gram模型通过给定当前词预测周围的词来学习。

连续的skip-gram模型通过给定当前词预测周围的词来学习。

在这里插入图片描述

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

《Neural Network Methods in Natural Language Processing》2017年

The size of the sliding window has a strong effect on the resulting vector similarities. Large windows tend to produce more topical similarities […], while smaller windows tend to produce more functional and syntactic similarities.
滑动窗口的大小对得到的向量相似度有很大的影响。大窗口往往会产生更多的主题相似性 […],而较小的窗口往往会产生更多的功能和句法相似性。

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

3. GloVe

词表示的全局向量或 GloVe 算法是 word2vec 方法的扩展,用于有效学习词向量,由斯坦福 Pennington 等人开发。
在这里插入图片描述

单词的经典向量空间模型表示是使用矩阵分解技术(例如潜在语义分析 (LSA))开发的,该技术在使用全局文本统计方面做得很好,但在捕获含义和在任务上演示时不如 word2vec 等学习方法像计算类比(例如上面的国王和王后的例子)。

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

GloVe 不是使用窗口来定义本地上下文,而是使用整个文本语料库的统计数据构建一个明确的词上下文或词共现矩阵。结果是一个学习模型,通常可以产生更好的词嵌入。

《GloVe: Global Vectors for Word Representation》 2014年

GloVe, is a new global log-bilinear regression model for the unsupervised learning of word representations that outperforms other models on word analogy, word similarity, and named entity recognition tasks.
GloVe 是一种新的全局对数双线性回归模型,用于词表示的无监督学习,在词类比、词相似性和命名实体识别任务上优于其他模型。

如何使用词嵌入

在自然语言处理项目中使用词嵌入时的选择。

1. 学习嵌入

您可以选择对问题学习进行词嵌入。这将需要大量的文本数据来确保学习到有用的嵌入,例如数百万或数十亿个单词。

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

  • Learn it Standalone,在其中训练模型以学习嵌入,稍后将其保存并用作另一个模型的一部分以用于您的任务。如果您想在多个模型中使用相同的嵌入,这是一个很好的方法。
  • 联合学习,其中嵌入是作为大型任务特定模型的一部分学习的。如果您只打算在一项任务上使用嵌入,这是一种很好的方法。

2. 重用嵌入

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

例如,word2vecGloVe 词嵌入都可以免费下载。

这些可以用于您的项目,而不是从头开始训练您自己的嵌入。

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

  • Static,嵌入保持静态并用作模型的组件。如果嵌入非常适合您的问题并提供良好的结果,则这是一种合适的方法。
  • Updated,其中使用预训练的嵌入作为模型的种子,但嵌入在模型训练期间联合更新。如果您希望充分利用模型并嵌入您的任务,这可能是一个不错的选择。

应该使用哪个选项?

使用不同的算法得到的词嵌入的计算结果和模型是不一样的,可以根据自己的实际情况进行有选择的使用和调整,这些都是需要学习更多的NLP知识。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/366361
推荐阅读
相关标签
  

闽ICP备14008679号