word embedding小结笔记-一些算法 的概要

此篇涉及到一些算法的概要,会在别的文章中详解。

word embedding是一种词表示形式,它允许具有相似含义的词具有类似的表示形式。

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

本文将记录将:

用于表示文本的word embedding方法是什么以及它与其他特征提取方法有何不同。
有3种主要算法可用于从文本数据中学习单词word embedding。
您可以在自然语言处理任务上训练新的embedding,也可以使用预先训练的embedding。

总览

这篇文章分为3部分:

什么是word embedding?
一些word embedding算法(概述)
使用word embedding

什么是word embedding?

使用密集和低维向量的好处之一是计算能力:大多数神经网络工具包在高维,稀疏向量中不能很好地发挥作用。 …密集表示 的主要好处是泛化能力:如果我们认为某些功能可以提供相似的线索,那么值得提供能够捕获这些相似性的表示

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

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

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

与词汇表中的每个单词关联一个分布式单词特征向量

基于单词的用法学习分布式表示。这允许以相似方式使用的单词具有相似的表示形式,从而自然地捕捉其含义。

该方法背后有更深层的语言理论,即Zellig Harris的“分布假设”,可以概括为:具有相似上下文的单词将具有相似含义。

如下图所示,有类似的word class会相对靠近:

在这里插入图片描述

一些word embedding算法

word embedding方法可从文本语料库中学习预定义固定大小词汇的实值矢量表示。

学习过程或者与神经网络模型联合完成某些任务(例如文档分类),或者是使用文档统计信息的无监督过程。

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

  1. Embedding Layer

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

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

    one hot编码的单词被映射到单词向量。如果使用多层Perceptron模型,则在将单词向量作为模型的输入馈送之前将其串联起来。如果使用递归神经网络,则每个单词都可以作为序列中的一个输入。

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

  2. Word2Vec

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

    它是由Tomas Mikolov等开发的。作为2013年Google的回应,旨在提高基于神经网络的嵌入训练的效率,从那时起,它已成为开发预训练词嵌入的事实上的标准。

    此外,这项工作还涉及对学习到的向量的分析以及对单词表示形式的向量数学的探索。例如,从“国王”中减去“男子气概”并添加“妇女”,便产生了“女王”一词,这比喻为“国王是王后,男人是女人”。

    我们发现这些表示形式出奇地擅长捕获语言中的句法和语义规则性,并且每种关系都具有特定于关系的向量偏移量。这允许基于单词之间的偏移量进行面向矢量的推理。例如,可以自动学习男女关系,并通过诱导的向量表示,“ King – Man + Woman”产生一个非常接近“ Queen”的向量。

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

Continuous Bag-of-Words, or CBOW model.
Continuous Skip-Gram Model.

CBOW模型通过根据当前单词的上下文预测当前单词来学习嵌入。Continuous Skip-Gram Model通过预测给定当前单词的周围单词来学习。
如下图所示:

在这里插入图片描述

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

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

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

  1. GloVe
    Pennington等人开发的用于词表示的全局向量(GloVe)算法是对word2vec方法的扩展,该方法可有效学习词向量。在斯坦福。

单词的经典向量空间模型表示法是使用诸如潜在语义分析(LSA)的矩阵分解技术开发的,该技术在使用全局文本统计数据方面表现出色,但不如word2vec这样的学习方法能够捕获含义并在任务中演示它例如计算类比(例如上面的King和Queen示例)。

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

GloVe不用使用窗口来定义本地上下文,而是使用整个文本语料库中的统计数据来构造一个显式的单词-上下文或单词共现矩阵。结果是一种学习模型,可能会导致一般更好的单词嵌入。

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

使用word embedding

在自然语言处理项目上使用word embedding时,我们有一些选择。

1.学习嵌入

您可以选择学习针对您的问题的单词嵌入。

这将需要大量的文本数据,以确保学习有用的嵌入,例如数百万或数十亿个单词。

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

独立学习,训练模型以学习嵌入,然后将其保存并用作以后任务的另一个模型的一部分。如果要在多个模型中使用相同的嵌入,这是一个好方法。

联合学习,其中学习嵌入是大型任务特定模型的一部分。如果仅打算在一个任务上使用嵌入,则这是一种好方法。

2.重用嵌入

对于研究人员来说,通常是在获得许可的情况下免费提供经过预先训练的单词嵌入,以便您可以在自己的学术或商业项目中使用它们。

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

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

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

静态的,嵌入保持静态,并用作模型的组件。如果嵌入非常适合您的问题并提供良好的结果,则这是一种合适的方法。

已更新,其中使用预训练的嵌入为模型提供种子,但是在训练模型期间共同更新了嵌入。如果您希望最大程度地利用模型并将其嵌入任务中,那么这可能是一个不错的选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值