3.1 概述
对词的表示是计算机处理自然语言的第一步。词表示的研究属于数据表示的分支,是机器学习的基础工作。自然语言中词通常包含多种特征信息,如语义信息、语法信息、类别信息、情感信息等,对词的表示需要充分融入这些特征,以满足计算机对自然语言理解的需求。
在自然语言处理领域,单个词通常被映射到向量空间中的一个点,向量中的每一维都表示词的一种直接或潜在的特征。本节重点探讨分布式的词表示模型(Distributional Models of Semantic),也被称为词嵌入(Word Embedding),是一种将自然语言的词映射到低维实数向量空间的词表示技术,其中向量的每一个维度都刻画词的一种直接或潜在的语义特征。
词表示的效果直接影响计算机对自然语言的理解以及任务的效果。在文本处理的实际任务中,一方面,优质的词嵌入可以辅助计算机更好地理解自然语言的语义信息,更准确地刻画词间的相似性和语义关系,因此可以有效地缓解任务中语义空缺的问题。另一方面,词嵌入可以通过向量间的数学计算刻画词语义相似度,辅助强化任务中相似度测量的效果,如问句相似度检测、文档相似度检测等。基于上述优点,词嵌入被广泛应用在自然语言处理任务中,有效地提升机器翻译、问答系统、情感分析和命名实体识别等任务效果,迅速成为自然语言处理领域研究的热点。借助于计算机处理能力的提升和深度学习方法的引入,词嵌入构造方法蓬勃发展,吸引了国内外众多研究人员的关注。通常,词嵌入构造方法的研究内容是如何将词表示为低维实数向量并嵌入从语料中挖掘的潜在语义特征,以实现通过向量间的数学计算度量文本之间的语义关联。
本节从机器学习的理论角度,介绍词嵌入构造方法特征选择和特征学习两部分。
1)特征选择
是指从海量文本数据中选择能表示词间语义关联的特征。在自然语言中,仅通过字面形式很难判断两个词之间的关联,人类需要根据一定的知识判断词间是否具有语义关联。同样,计算机判断两个词之间的语义关联也需要一定的知识。文本数据中多种信息都可作为表示词语义特征的知识,如上下文信息、主题、句子顺序、句内词序等,但是这些信息隐藏在自然语言中,具有稀疏、无结构、多形态等特点,很难被全部提取并用统一的数据形式表示。因此,词嵌入构造方法首先需要进行特征选择,从语料中提取蕴含词间语义关联的信息。然后通过建模,将选择的信息处理为计算机可以处理的数据形式。
从机器学习的角度,特征选择决定了学习效果的上限。目前的词嵌入构造方法中,最广泛的特征选择理论依据是沃伦·韦弗(Warren Weaver)提出的统计语义假说(Statistical Semantics Hypothesis):人类自然语言的统计信息可以表示人类语言的语义。在统计语义假说的理论上,延伸出分布式假说(Distributional Hypothesis)、扩展的分布式假说、潜在联系假说等。不同的词嵌入构造方法基于不同的假说进行特征选择,具体来说,特征选择包含语料处理和建模两方面:
首先,在语料处理方面,由于词嵌入构造方法是一种语料驱动的学习方法,因此语料作为原始输入信息是构建高质量词嵌入方法的重要影响因素之一。这种影响一方面体现在为提升学习质量,通常需要对语料进行标准化、还原大小写、词根化处理等预处理;另一方面,体现在语料的规模和涉及的领域等属性会影响词嵌入的质量。研究人员通过实验验证的方法发现语料对训练词嵌入质量的影响规律:在语料规模方面,语料规模越大训练结果越好;在语料领域方面,通常利用同一领域的语料训练得到的词嵌入质量更高。语料领域对词嵌入质量的影响比语料规模的影响更大。
其次,在建模方面,需要将特征处理为易于被计算机处理的数据形式。常见的数据形式包括窗口、矩阵。其中,窗口是指将语料中目标词紧邻的上下文看作一个窗口,通过窗口的滑动逐步向模型中输入信息;矩阵是刻画语料中词与其上下文共现的统计信息的数据形式,矩阵的每行对应一个词,矩阵的每列对应其上下文,矩阵的元素是从语料中统计的二者之间的关联信息。
2)特征学习
是指借助学习结构对特征进行近似的、非线性的转化。特征学习决定了对输入的特征信息与输出的词嵌入之间非线性关系的描述能力,决定了方法对学习效果上限的逼近程度。常见的特征学习模型包括受限玻尔兹曼机、神经网络、矩阵分解、聚类分类等。在词嵌入构造方法中,通常根据数据建模的形式选择学习结构,例如针对矩阵数据通常使用矩阵分解方法,针对窗口数据通常使用神经网络方法。因此语料建模与特征学习两个过程紧密相关。
由于不同的词嵌入方法本质上是由特征选择的方法决定的,因此本书从特征选择的角度进行总结,将现有词嵌入构造方法归纳为基于分布语义的方法、基于语言模型的方法、利用语料多源特征的方法以及引入外部特征的方法。
目前,分布式表示学习利用无标注语料中的词上下文信息学习语义的向量化表示。学习方法主要分为两类:一类是基于矩阵分解的方法,即将语料建模为蕴含语义特征的共现矩阵,并借助数学方法(例如:矩阵分解)进行特征学习;另一类是基于神经网络的方法,根据语言模型中的预测任务,通过给定的上下文信息预测词的任务学习语义特征。本节将对这两类方法进行介绍。