自然语言处理的单词嵌入及表征方法

合集下载

列举4种用于自然语言处理的技术

列举4种用于自然语言处理的技术

列举4种用于自然语言处理的技术自然语言处理(Natural Language Processing,NLP)是计算机科学与人工智能领域中的一个重要研究方向,旨在实现计算机对人类自然语言的理解和处理。

NLP的应用范围非常广泛,涉及到机器翻译、语音识别、文本分类、情感分析等诸多领域。

本文将介绍四种用于自然语言处理的技术,它们分别是词嵌入、机器翻译、文本生成和情感分析。

首先,词嵌入是一种将单词或短语映射到向量空间的技术。

通过词嵌入,可以将自然语言中的词语转化为计算机可以理解的数值表示。

常用的词嵌入模型有Word2Vec和GloVe等。

词嵌入不仅能够用于单词的相似度计算和聚类分析,还可以作为输入传递给其他自然语言处理任务的模型,提升它们的性能。

其次,机器翻译是指将一种自然语言的文本自动翻译成另一种自然语言的技术。

机器翻译旨在消除不同语言之间的沟通障碍,并在跨语言交流、信息检索等方面发挥重要作用。

目前,基于神经网络的机器翻译模型如Sequence-to-Sequence(Seq2Seq)模型以及其改进版本Transformer已经取得了很大的成功,使得机器翻译的效果得到显著提升。

第三,文本生成是指利用计算机生成符合自然语言特征的文本的技术。

文本生成涉及到语言模型、自动摘要、对话系统等任务。

其中,语言模型是文本生成的基础,用于预测给定上下文的下一个可能的词语。

自动摘要旨在从文本中提取出最重要的信息,生成一个简洁而具有代表性的摘要。

对话系统则旨在使计算机能够与人类进行自然而流畅的对话。

最后,情感分析是指对文本的情感进行分类和评估的技术。

情感分析旨在判断文本中所表达的情感,如积极、消极或中性,并可以对情感进行情感极性分析,即情感的强度判断。

情感分析在社交媒体舆情分析、市场调查、用户评论分析等方面具有重要的应用价值。

常用的情感分析方法包括基于规则的方法和基于机器学习的方法,如支持向量机(SVM)和循环神经网络(RNN)等。

自然语言处理的术语

自然语言处理的术语

自然语言处理的术语自然语言处理(Natural Language Processing, NLP)是计算机科学与人工智能领域的一个重要研究方向,旨在使计算机能够理解和处理人类的自然语言。

在这篇文章中,我将介绍一些与自然语言处理相关的术语,帮助读者更好地理解这一领域的基本概念和技术。

1. 文本预处理(Text Preprocessing)文本预处理是自然语言处理的第一步,通常包括去除噪音、分词、词干化、去除停用词等一系列操作。

这些操作旨在将文本转换为计算机可以理解和处理的形式,为后续的任务提供数据基础。

2. 词袋模型(Bag of Words Model)词袋模型是一种常用的文本表示方法,它将文本表示为一个包含所有词汇的向量。

每个词汇的出现与否以及出现的频率被编码为向量的元素值。

词袋模型简化了文本的复杂性,但忽略了词序和语法结构。

3. 词嵌入(Word Embedding)词嵌入是一种将词汇映射到低维向量空间的技术。

通过学习词嵌入,可以捕捉到词汇之间的语义和语法关系。

常见的词嵌入模型包括Word2Vec、GloVe和BERT等。

4. 序列标注(Sequence Labeling)序列标注是一种常见的自然语言处理任务,旨在为输入的词序列标注相应的标签。

例如,命名实体识别任务将人名、地名、组织名等实体识别出来,并标注相应的实体类型。

5. 句法分析(Syntactic Parsing)句法分析是自然语言处理中的关键任务之一,旨在分析句子的语法结构。

句法分析可以帮助理解句子的语义和推理关系。

常见的句法分析方法包括基于规则的方法、统计方法和神经网络方法等。

6. 语义角色标注(Semantic Role Labeling)语义角色标注是一种将句子中的词语与其在句子中扮演的语义角色相对应的任务。

例如,对于句子"小明吃了一个苹果",语义角色标注可以标注出"小明"是施事角色,"吃"是动作角色,"苹果"是受事角色。

embedding的基本使用

embedding的基本使用

embedding的基本使用Embedding的基本使用近年来,随着人工智能和自然语言处理技术的不断发展,嵌入(embedding)成为了一种重要的技术手段。

嵌入是将高维度的数据转化为低维度表示的过程,它可以将复杂的信息转化为计算机可以处理的形式,为机器学习和深度学习提供了基础。

本文将介绍嵌入的基本使用方法以及其在不同领域的应用。

嵌入在自然语言处理领域中得到了广泛的应用。

在自然语言处理中,文本是一种高维度的数据,需要将其转化为低维度的嵌入表示。

这样可以提取文本的语义信息,帮助机器理解和处理文本。

例如,在文本分类任务中,可以使用嵌入将文本转化为向量表示,然后使用机器学习算法进行分类。

此外,嵌入还可以用于词义相似度计算、情感分析等任务,能够帮助机器理解文本的含义和情感。

嵌入在推荐系统中也得到了广泛的应用。

在推荐系统中,嵌入可以将用户和物品转化为向量表示,从而描述它们之间的关系。

通过计算向量之间的相似度,可以推荐给用户与其兴趣相似的物品。

例如,在电商平台中,可以使用嵌入将用户的历史购买记录和商品的特征转化为向量表示,然后通过计算向量之间的相似度,向用户推荐可能感兴趣的商品。

嵌入还可以应用于图像处理领域。

在图像处理中,嵌入可以将图像转化为向量表示,从而方便机器学习算法处理。

例如,在图像分类任务中,可以使用卷积神经网络提取图像的特征,然后将这些特征转化为嵌入表示。

这样可以减少图像的维度,提取图像的语义信息,从而提高图像分类的准确性。

在自然语言处理和图像处理领域中,还有一种重要的嵌入技术,即预训练嵌入。

预训练嵌入是指利用大规模的文本语料或图像数据进行训练,得到通用的嵌入表示。

这些通用的嵌入表示可以应用于各种具体的任务中,从而节省了训练时间和计算资源。

例如,在自然语言处理中,可以使用预训练的词向量将单词转化为向量表示,然后在具体的任务中进行微调。

这样可以提高模型的表现。

嵌入是一种重要的技术手段,它可以将高维度的数据转化为低维度表示,为机器学习和深度学习提供了基础。

自然语言处理中的词嵌入技术

自然语言处理中的词嵌入技术

自然语言处理中的词嵌入技术自然语言处理(Natural Language Processing,NLP)是人工智能领域中的一个重要研究方向,旨在使计算机能够理解和处理人类语言。

在NLP中,词嵌入技术是一种广泛应用的关键技术,它可以将语言中的单词转化为向量表示,从而使计算机能够对文本内容进行处理和理解。

词嵌入是一种将离散的符号化表示(如单词)转化为连续向量的技术。

在传统的文本处理中,单词通常被表示为独热向量,即只有一个元素为1,其余元素为0。

这种表示方法存在两个问题:首先,它无法捕捉到词之间的关系和语义信息;其次,由于每个单词的表示都是相互独立的,导致向量空间极大,计算成本高。

词嵌入技术通过学习将单词映射到低维向量空间中,解决了传统文本处理的问题。

其中,Word2Vec是最具代表性的方法之一。

Word2Vec基于两种核心模型:Skip-Gram和CBOW(Continuous Bag-of-Words)。

Skip-Gram模型通过给定一个单词预测其周围的上下文单词,而CBOW则相反,它根据上下文单词预测目标单词。

这样的模型能够通过训练建立起单词之间的语义关系,使得具有相似语义的单词在向量空间中距离更近。

除了Word2Vec,还有其他一些常用的词嵌入模型,如GloVe(Global Vectors for Word Representation)。

GloVe通过统计单词在语料库中的共现概率来构建词向量,能够同时捕捉到全局和局部的语义信息。

这种方法相比于Word2Vec在一些任务上表现更好。

词嵌入技术的应用非常广泛。

一方面,它可以应用于文本分类、情感分析和命名实体识别等任务中,通过对单词的语义信息进行建模,提高模型的性能。

另一方面,词嵌入还可以用于单词的相似度计算和文本推荐系统等场景,从而改进信息检索和推荐的效果。

在实际应用中,为了训练好的词向量模型,需要大量的文本数据。

一般情况下,可以使用维基百科、大规模的新闻语料库或者互联网上的大量文本进行训练。

自然语言法表示集合

自然语言法表示集合

自然语言法表示集合自然语言(Natural Language)是人类交流和表达思想的主要方式之一。

它包括了我们平时所使用的口语和书面语。

自然语言法表示(Natural Language Processing,NLP)是一门研究如何使计算机能够理解和处理自然语言的学科。

其目的是使计算机能够像人一样理解和处理文本,实现自动语言处理的能力。

自然语言法表示集合是NLP领域的一个重要概念。

它是用于表示和处理自然语言的一系列方法和技术的集合。

这些方法和技术可以用于语义分析、情感分析、机器翻译、问答系统等多个任务。

下面将介绍一些常见的自然语言法表示集合。

一、词袋模型(Bag of Words)词袋模型是NLP中最简单也是最常用的一种表示方法。

它将文本看作是一个词的无序集合,忽略了词与词之间的顺序和关系。

词袋模型主要包括词频统计和词向量化两个步骤。

词频统计用于计算每个词在文本中出现的次数,词向量化则将每个词表示为一个向量。

词袋模型的优点是简单且易于实现,但缺点是忽略了词的顺序和语义信息。

二、词嵌入(Word Embedding)词嵌入是一种表征词语语义信息的方法。

它将每个词表示为一个稠密的实值向量,使得相似的词在向量空间中更加接近。

常用的词嵌入模型有Word2Vec、GloVe和FastText等。

词嵌入的优点是能够捕捉到词之间的语义关系,但缺点是无法处理词汇外的词和词序信息。

三、句法分析(Syntactic Parsing)句法分析是NLP中的重要任务之一,旨在确定句子的结构和语法关系。

句法分析可以用于句子的语义分析和上下文理解。

常见的句法分析方法有基于规则的分析和基于统计的分析。

基于规则的分析通过预定义的规则来解析句子的句法结构,而基于统计的分析则通过统计学习方法来确定最有可能的句法结构。

句法分析的优点是能够捕捉到句子的结构和语法信息,但缺点是对于复杂句子效果不佳。

四、深度学习方法(Deep Learning)深度学习方法在NLP中得到了广泛应用,特别是在语义理解和自然语言生成任务中。

embedding原理

embedding原理

embedding原理嵌入(embedding)是将高维数据空间映射到低维嵌入空间的过程。

在自然语言处理(NLP)中,嵌入是将词语从离散的文本表示转换为连续的向量空间表示。

这种连续表示可以更好地捕捉词语之间的语义关系,从而提高在各种NLP任务中的表现。

本文将介绍嵌入的原理和常见的嵌入方法。

嵌入的原理基于分布假设,即相似的词汇在上下文中通常出现的位置也相似。

这就是著名的分布式假设(distributional hypothesis)。

基于此假设,嵌入模型通过分析大量文本语料库中的上下文信息来学习词语的嵌入表示。

在嵌入模型中,每个词语都被表示为一个固定长度的向量,这个向量可以被用来表示词语的语义和语法信息。

嵌入模型的训练通常分为两个阶段:建立词汇表和学习嵌入向量。

首先,需要建立一个词汇表,包含了训练数据中所有出现的词语。

词汇表中的每个词语都被赋予一个唯一的整数标识符。

然后,通过对大量文本数据进行训练,嵌入模型可以学习到每个词语的嵌入向量,这些向量被保存在一个嵌入矩阵中。

在推理过程中,可以通过查询嵌入矩阵来获取任何词语的嵌入表示。

目前,有多种常见的嵌入模型用于NLP任务。

下面介绍几种常见的嵌入方法:1. Word2Vec:Word2Vec是一种基于神经网络的嵌入模型,用于学习词语的分布式表示。

它包括两种不同的模型:连续词袋模型(CBOW)和Skip-gram模型。

CBOW模型通过上下文预测目标词语,而Skip-gram模型通过目标词语预测上下文。

这两种模型通过优化任务来学习词语的嵌入向量。

2. GloVe:GloVe是一种全局向量嵌入模型,它通过统计词语之间的共现信息来学习嵌入表示。

GloVe模型利用全局统计信息来构建一个词语共现矩阵,然后通过优化目标函数来学习词语的嵌入向量。

GloVe模型的优势在于它可以同时考虑局部和全局的语义信息。

3. FastText:FastText是一种基于Word2Vec模型的扩展,它引入了字符级别的n-gram特征。

深度学习自然语言处理和表征方法

深度学习自然语言处理和表征方法

深度学习、自然语言处理和表征方法简介过去几年,深度神经网络在模式识别中占绝对主流。

它们在许多计算机视觉任务中完爆之前的顶尖算法。

在语音识别上也有这个趋势了。

虽然结果好,我们也必须思考……它们为什么这么好使?在这篇文章里,我综述一下在自然语言处理(NLP)上应用深度神经网络得到的一些效果极其显著的成果。

我希望能提供一个能解释为何深度神经网络好用的理由。

我认为这是个非常简练而优美的视角。

单隐层神经网络单隐层神经网络有一个普适性(universality):给予足够的隐结点,它可以估算任何函数。

这是一个经常被引用的理论,它被误解和应用的次数就更多了。

本质上这个理论是正确的,因为隐层可以用来做查询表。

简单点,我们来看一个感知器网络(perceptron network)o感知器(perceptron 是非常简单的神经元,如果超过一个阈值它就会被启动,如果没超过改阈值它就没反应。

感知器网络的输入和输出都是是二进制的(0和1)。

注意可能的输入个数是有限的。

对每个可能的输入,我们可以在隐层里面构建一个只对这个输入有反应的神经元(见注解1)。

然后我们可以利用这个神经元和输出神经元之间的连接来控制这个输入下得到的结果(见注解2)。

OutputHiddenCaseInput这样可以说明单隐层神经网络的确是有普适性的。

但是这也没啥了不起的呀。

你的模型能干和查询表一样的事并不能说明你的模型有任何优点。

这只能说明用你的模型来完成任务并不是不可能的罢了。

普适性的真正意义是:一个网络能适应任何你给它的训练数据。

这并不代表插入新的数据点的时候它能表现地很理想。

所以普适性并不能解释为什么神经网络如此好用。

真正的原因比这微妙得多… 为了理解它,我们需要先理解一些具体的成果。

单词嵌入(Word Embeddings)我想从深度学习研究的一个非常有意思的部分讲起,它就是:单词嵌入由0州embeddings)。

在我看来,单词嵌入是目前深度学习最让人兴奋的领域之一,尽管它最早是由Bengio等人在十多年前提出的(见注解3)。

自然语言处理中的词嵌入技术

自然语言处理中的词嵌入技术

自然语言处理中的词嵌入技术自然语言处理( Natural Language Processing,NLP )是计算机科学中一个重要的领域,它致力于让计算机更好地理解和处理自然语言。

实现 NLP 的方法有很多,其中词嵌入( Word Embedding )技术是一个被广泛应用的方法,它可以将自然语言中的单词转化为向量( Vector )的形式,使得计算机可以更好地对自然语言进行处理。

一、词嵌入技术的基础词嵌入技术的基础是矢量空间模型( Vector Space Model ),该模型最初是用于文档检索的,它将每个文档表示成一个向量,每个维度代表着文档中某个单词的权重。

然后可以计算不同文档之间的相似性。

在NLP 中,词嵌入技术将矢量空间模型扩展为对单词的表示。

词嵌入的目的是将单词嵌入到一个高维空间中,使得单词与其周围的单词在空间中具有相似的空间距离。

二、词嵌入技术的发展历程近年来,随着深度学习和神经网络的发展,词嵌入技术得到了快速发展。

其中最具代表性的是 Word2Vec 和 GloVe 两种词嵌入技术。

1. Word2VecWord2Vec 是 Google 在 2013 年推出的一种词嵌入技术。

其基本思路是通过训练神经网络来得到单词的嵌入向量。

Word2Vec 有两种模型:CBOW 和 Skip-Gram。

CBOW 模型是以该单词上下文中的其它单词预测该单词,而 Skip-Gram 模型则是以该单词预测该单词上下文中的其它单词。

两个模型都是基于神经网络,可以有效地将单词嵌入到高维空间中。

2. GloVeGloVe 是斯坦福大学的一项词嵌入技术,它是基于全局语言统计信息的模型。

其基本思路是通过对语料库中单词之间的共现次数进行统计,来计算不同单词之间的关系。

GloVe 的优点是可以处理更多的语言结构,例如合成词、多义词等。

并且 GloVe 也被证明在一些 NLP 任务中比 Word2Vec 更有效。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

自然语言处理的单词嵌入及表征方法简介过去几年,深度神经网络在模式识别中占绝对主流。

它们在许多计算机视觉任务中完爆之前的顶尖算法。

在语音识别上也有这个趋势了。

虽然结果好,我们也必须思考……它们为什么这么好使?在这篇文章里,我综述一下在自然语言处理(NLP)上应用深度神经网络得到的一些效果极其显著的成果。

我希望能提供一个能解释为何深度神经网络好用的理由。

我认为这是个非常简练而优美的视角。

单隐层神经网络单隐层神经网络有一个普适性(universality):给予足够的隐结点,它可以估算任何函数。

这是一个经常被引用的理论,它被误解和应用的次数就更多了。

本质上这个理论是正确的,因为隐层可以用来做查询表。

简单点,我们来看一个感知器网络(perceptron network)。

感知器(perceptron)是非常简单的神经元,如果超过一个阈值它就会被启动,如果没超过改阈值它就没反应。

感知器网络的输入和输出都是是二进制的(0和1)。

注意可能的输入个数是有限的。

对每个可能的输入,我们可以在隐层里面构建一个只对这个输入有反应的神经元(见注解1)。

然后我们可以利用这个神经元和输出神经元之间的连接来控制这个输入下得到的结果(见注解2)。

这样可以说明单隐层神经网络的确是有普适性的。

但是这也没啥了不起的呀。

你的模型能干和查询表一样的事并不能说明你的模型有任何优点。

这只能说明用你的模型来完成任务并不是不可能的罢了。

普适性的真正意义是:一个网络能适应任何你给它的训练数据。

这并不代表插入新的数据点的时候它能表现地很理想。

所以普适性并不能解释为什么神经网络如此好用。

真正的原因比这微妙得多…为了理解它,我们需要先理解一些具体的成果。

单词嵌入(Word Embeddings)我想从深度学习研究的一个非常有意思的部分讲起,它就是:单词嵌入(word embeddings)。

在我看来,单词嵌入是目前深度学习最让人兴奋的领域之一,尽管它最早是由Bengio等人在十多年前提出的(见注解3)。

除此之外,我认为它们能帮助你通过直觉来了解为什么深度学习如此有效。

单词嵌入W:words→Rn是一个参数化函数,它把某个语言里的单词映射成高维向量(大概200到500维)。

例如这样:W(‘‘cat”)=(0.2, -0.4, 0.7, …)W(‘‘mat”)=(0.0, 0.6, -0.1, …)(一般这个函数就是一个查询表,用一个矩阵θ来参数化,每行是一个单词:Wθ(wn)=θn.)初始化时,W中每个词对应一个随机的向量。

它会学习出有意义的向量以便执行任务。

举个一个可能的任务的例子:训练一个网络让其预测一个5元组(5-gram)(连续的5个词)是否‘成立’。

我们可以随便从维基百科上选一堆5元组(比如cat sat on the mat)然后把其中一个词随便换成另外一个词(比如cat sat song the mat),那么一半的5元组估计都会变得荒谬且没意义了。

判断5元组是否成立的模块网络(来自于Bottou (2011))我们训练的模型会通过W把5元组中每个词的表征向量取出来,输入给另外一个叫R的模块,模块R会试图预测这个5元组是‘成立的’或者是‘破碎的’。

然后我们希望看见:R(W(‘‘cat”), W(‘‘sat”), W(‘‘on”), W(‘‘the”), W(‘‘mat”))=1 R(W(‘‘cat”), W(‘‘sat”), W(‘‘song”), W(‘‘the”), W(‘‘mat”))=0 为了准确地预测这些值,这个网络需要从W以及R中学习到好的参数。

现在看来这个任务并没什么意思。

也许它能用来检测语法错误什么的,没什么大不了。

但是极其有趣的部分是这个W。

(事实上,对我们来说,这个任务的意义就是学习W。

我们当然也可以做一些其他的任务–一个很常见的任务是预测句子中下一个单词。

但我们实际上并不在乎任务是什么。

这节后面我们会谈到许多单词嵌入成果,但并不会区分得到这些成果的方法的不同。

)想直观感受一下单词嵌入空间的话,我们可以用t-SNE来对它进行可视化。

t-SNE 是一个复杂的高维数据可视化技术。

t-SNE对单词嵌入的可视化结果。

左图:数字区间。

右图:工作岗位区间。

来源:Turian et al. (2010),全图在此这种单词构成的“地图”对我们来说更直观。

相似的词离得近。

另一种方法是看对一个给定单词来说,哪些其他的单词离它最近。

我们可以再一次看到,这些词都很相似。

哪些词的嵌入离一个给定词最近?来自于Collobert et al. (2011)网络能让意义相似的词拥有相似的向量,这看起来是很自然的事。

如果你把一个词换成它的同义词(例如“a few people sing well”→“a couple people sing well”),句子的成立性并没有变化。

虽然从字面上看,句子变化很大,但如果W把同义词(像“few”和”couple”这种)映射到相近的空间,从R的角度来看句子的变化很小。

这就牛了。

可能的5元组的数目是巨大的,相比之下我们的训练数据量很小。

相似的单词距离近能让我们从一个句子演变出一类相似的句子。

这不仅指把一个词替换成一个它的同义词,而且指把一个词换成一个相似类别里面的词(如“the wall is blue”→“the wall is red”)。

进一步地,我们可以替换多个单词(例如“the wall is blue”→“the ceiling is red”)。

它的影响对单词数目来说是指数级的(参见注解4)。

很明显,这是W的一个用武之地。

但它是如何学会做这个的呢?看起来很可能很多情况下它是先知道“the wall is blue”这样的句子是成立的,然后才见到“the wall is red”这样的句子。

这样的话,把“red”往”blue”那边挪近一点,网络的效果就更好。

我们并没见过每个单词使用的例子,但是类比能让我们泛化衍生出新的单词组合。

你懂的单词你都见过,但是你能懂的句子你并没有都见过。

神经网络也是如此。

来自于Mikolov et al.(2013a)单词嵌入展示了一个更引人注目的属性:单词间的类比仿佛是被编码在了单词向量的区别中。

比如,这个看来是个男-女区别向量:W(‘‘woman”)−W(‘‘man”) ≃ W(‘‘aunt”)−W(‘‘uncle”)W(‘‘woman”)−W(‘‘man”) ≃ W(‘‘queen”)−W(‘‘king”)也许这看起来并不奇怪。

毕竟表性别的代词意味着换一个词整个句子的语法就错了。

正常话是这么说的“she is the aunt”,“he is the uncle.”。

同样的,“he is the King”, “she is the Queen.”。

如果你看见“she is the uncle,”最可能的解释就是这句话有语法错误。

这个情况看起来很可能是:一半的时候单词都被随机地替换了。

也许我们会放马后炮:“当然是这样啦!单词嵌入会学着把性别按照一致的方式来编码。

事实上也许就存在一个性别的维度。

对单复数来说也是一样。

找出这些明显的关系太简单了!”然而,更复杂的关系也是这样被编码的。

这看起来几乎像奇迹一样!单词嵌入中的关系对。

来自Mikolov et al. (2013b).能够充分意识到W的这些属性不过是副产品而已是很重要的。

我们没有尝试着让相似的词离得近。

我们没想把类比编码进不同的向量里。

我们想做的不过是一个简单的任务,比如预测一个句子是不是成立的。

这些属性大概也就是在优化过程中自动蹦出来的。

这看来是神经网络的一个非常强大的优点:它们能自动学习更好的数据表征的方法。

反过来讲,能有效地表示数据对许多机器学习问题的成功都是必不可少的。

单词嵌入仅仅是学习数据表示中一个引人注目的例子而已。

共同表征单词嵌入的这些属性当然非常有意思,但是除了判断5元组是不是成立这种傻问题还能干点啥有用的么?W和F学习完成任务A,G可以根据W来学习完成任务B之前我们学习单词嵌入是为了在简单任务上有出色的表现,但基于我们从单词嵌入中发现的好属性,你也许会猜想它们对自然语言处理任务整体都适用。

实际上,这样的单词特征表示(word representations)是极其有用的:“利用单词特征表示…已经成为近年来许多NLP系统成功的秘密武器,包括命名实体识别,词性标注,语法分析和语义角色标注。

(Luong et al.(2013)”在深度学习工具箱里,把从任务A中学到的好表征方法用在任务B上是一个很主要的技巧。

根据细节不同,这个普遍的技巧的名称也不同,如:预训练(pretraining),迁移学习(transfer learning),多任务学习(multi-task learning)等。

这种方法的好处之一是可以从多种不同数据中学习特征表示。

这个技巧有个对应面。

除了在一种数据上学习表征然后应用在不同任务上,我们还可以从多种数据中学习出一种单个的表征!一个很好的例子就是Socher et al. (2013a)提出的双语单词嵌入。

我们可以从两种不同语言中把单词嵌入到一个共享的空间去。

在这个例子里,我们学习把汉语和英语嵌入到同一个空间去。

我们用和上面差不多的方法来训练Wen和Wzh两种嵌入。

但是,我们已知某些中文和英文的词汇有相似的意思。

所以,我们追加一个属性优化:我们已知的翻译过后意思相似的词应该离得更近。

理所当然,我们会发现我们已知的有相似意思的词在最后结果中离得很近。

我们本来就是针对这个做的优化,这个结果没什么让人惊讶的。

但更有意思的是我们未知的翻译后意思相似的词结果距离也很近。

鉴于我们前面有关单词嵌入的经验,这个也许并不太让你感到惊奇。

单词嵌入就是会把相似的词聚到一起,所以如果我们已知的中英词汇离得近,它们的同义词自然离得近。

我们还知道类似性别差异趋向于可以用一个常数的差异向量表示。

看起来,对齐足够多的点会让这些差异向量在中文和英文的嵌入中保持一致。

这样会导致如果我们已知两个男性词互为翻译,最后我们也会得到一对互为翻译的女性词。

直观来讲,仿佛就是两种语言有着相似的“形状”,通过对齐不同的点,两种语言就能够重叠,其他的点就自然能被放在正确的位置上。

双语单词嵌入的t-SNE可视化图。

绿色是中文,黄色是英文。

来自(Socher etal. (2013a))在双语单词嵌入中,我们对两种很相似的数据学习了一个共享表征。

我们也可以学习把非常不同的几种数据嵌入到同一个空间去。

近期,深度学习已经开始探索能够把单词和图像嵌入到同一个表征下的模型(参见注解5)。

基本思路就是你可以通过单词嵌入输出的向量来对图像进行分类。

狗的图像会被映射到“狗”的单词向量附近。

马的图像会被映射到“马”的单词向量附近。

相关文档
最新文档