自然语言处理中的文本表示研究
摘要:
文本表示:是自然语言处理的基础性和必要性工作,影响甚至决定着 自然语言处理系统的质量和性能
文章思路:
探讨文本表示基础-->宏观分析文本表示技术分类和详细技术(重要部分)-->文本表示技术的发展趋势和方向预测-->神经网络和表示学习在文本表示中的应用
关键词解释:
自然语言处理:大量的文本数据可以借助计算机进行分析和处理, 从中发现或挖掘有用的模式和知识, 自然语言处理就是完成这种任务的学科领域
文本表示:文本表示也称语言表示,是对人类语言的一种主观性约定或描述。研究自然语言处理时需要将人类真实的语言转化成计算机可以处理的形式,这个过程可以叫做文本表示。
向量空间模型 主题模型 图模型 深度学习 表示学习
正文:
自然语言处理:
-
工作方式:借助计算机对文本进行处理,处理对象是人类语言,采用的方法是计算机算法或模型
-
成果:文本分类、文本摘要、机器自动翻译等的实际应用, 以及在此基础上的语言学理论、人脑语言 机制等的深入研究.
-
最终目标:让机器能准确地理解人类语言, 并自然地与人类进行交互
-
研究重点:研究如何用计算机表示、存储和处理人类语言,设计相应的系统实现自然语言处理任务,并评估这些系统的质量。
-
自然语言处理系统:采用人工智能算法或模型, 编制计算机程序模拟人的自然语言处理机制实现的
-
核心问题:将人类真实的自然语言转化为计算机可以处理的形式,也称为自然语言的形式化和数字化,在自然语言处理的领域中通常称为文本表示
文本表示:
-
基本原理:人类真实的自然语言转化为计算机可以处理的形式, 一般也称为自然语言的形式化或数字化, 在自然语言处理领域通常称为文本表示.
-
内涵:
-
外延:
-
技术分类:
-
主流技术:基于向量空间、基于主题模型、基于图、 基于神经网络、基于表示学习的文本表示
-
发展趋势
文本表示也称语言表示, 是 对人类语言的一种主观性约定或描述, 是认知科学和人工智能领域中的共性和基础性问题. 认知科学认为语言表示是语言在人脑中的表现形式, 影响或决定着人类对语言的理解和产生. 而人工智能认为语言表示是指语言的形 式化或数学化描述,在计算机中表示语言并通过计算机程序自动处理
自然语言处理领域中自然语言的复杂性、多样性和歧义性使得自然语言处理任务非常困难, 这就要求在应用领域中, 根据处理的要求, 把自然语言以一定的数学形式严密而合理地表示出来, 然后通过机器学习, 实现自然语言的机器处理. 在计算学科, 一般认为数据决定了机器学习的上限, 而算法只是尽可能逼近这个上限, 借助计算机进行自然语言处理所用到的数据就是文本表示的结果.
任何自然语言的文本形式都是特定符号组成的线性序列,比如中文,包含汉字、标点以及其他符号。从语言学来看这些符号组成的序列表达了一定语义,人们会根据一定的语法约束将单个或孤立的符号进行组合从而进行交流、沟通和记载。
尽管认知科学、脑神经科学和心理学的研究对人脑语言机制中的语言信息的存储和处理研究有许多突破, 但其核心原理还不是特别清楚. 用计算机模拟人脑的语言处理机制进行自然语言处理尚缺乏强有力的理论支撑, 再加上自然语言的歧义性、复杂性和多样性, 以及计算机本身算力的有限性和相关算法、模型的局限性, 使得自然 语言处理尽管应用前景广泛, 但难度很大, 具有挑战性。
自然语言处理领域的5个阶段:
-
20世纪50年代之前的萌芽时期:计算机出现,人工智能提出促进了自然语言处理领域的发展
-
20世纪 60–70年代是自然语言处理的快速发展时期
-
20世纪 70–80年代是自然语言处理研究的低谷时期
-
20世纪90年代–2010s, 自然语言处理 进入统计时代:利用概率统计的数学工具,融合机器学习的方法,自然语言处理领域取得了很多成果
-
2012 年以来, 基于深度学习的自然语言处理成为主流方法
1.1什么是文本表示
文本表示和处理
基于语言学的文本表示在分析文本基本组成要素的基础上, 重点分析文本成分之间的组成和结构, 实质上 是对语法的分析和表示, 形成词法和语法规则。在自然语言处理的初期, 这种基于规则的文本表示是主流方法
借助数学模型对自然语言进行分析建模,将自然语言形式化、数字化,通常利用集合、向量、矩阵等进行文本表示,利用概率与统计、函数、图论等方法进行文本分析。自然语言处理的核心目标是是让计算机处理人的语言,目前首先要解决语言符号的输入和存储,然后是通过统计手段和机器学习等方法,来实现文本分析、处理和生成等操作。
自然语言的形式化,是先建立一个符号系统,确立符号连接成合法序列的规则,约定合法符号如何表示出自然语言中的语义,再定义这些符号怎么运算。
典型的自然语言处理一般流程如图:
大数据时代的到来,让源文本的获取方式更加广泛,之后对源文本进行的文本预处理包括文本的清洗、纠错、格式处理、以及为文本深入分析而进行的分局、分词、词性标注、停用词过滤等。根据对文本的处理目标不同,选择相关的预处理方式。文本预处理大多是自动化处理,少数需要人工或二者结合的方式。算法/模型以及可视化的输出结果都是根据具体的文本处理任务而选定的。文本表示,在文本预处理的基础上,将字符序列的文本转化为计算机可以分析的数字化形式。
文本表示实质上就是一种建模,要涉及到模型相关的数据机构、存储和算法。主要包括两步骤:
-
选择或构建文本表示模型,也就是要确定用什么样的要素表示非结构化的文本
-
文本要素的数值化,进而实现文本数值化
文本表示至少要满足两个条件:
-
合格的表达效果。将源文本的信息恰当完全的表达出来,保证语义信息的一致性和完整性。一旦空间映射时缺少或歪曲了信息,在后续的计算中就无法再获取这些信息
-
合格的表达效率。尽量减少源文本转化为文本表示的复杂度,同时文本表示的结果应便于后续文本处理的实现。
语言模型
语言模型是用来判断文本数据合理性的一种机制,也就是衡量或量化句子的合法性。语言模型可以根据上下文预测下一个语言单位是什么,可以从大规模的文本中学习到语义。
语言模型发展过程:
-
20世纪80年代以前:基于规则的语言模型,也称文法模型。由专家归纳整理出自然语言的语法规则,计算机利用规则进行解析语言文本,判断合法性或生成合法文章等操作。缺点:文法模型的解释性很强但自然语言的多样性、歧义性和动态性以及人为制定规则的有限性,让该模型持续性和移植性较差。
-
20世纪80年代末至2010s年:统计角度建模的统计语言模型。该模型把文本序列中的语言成分的使用认为是一个随机事件,一个文本序列的概率大小可以用来评估其符合自然语言规则的程度。该模型语料丰富,易于实现,借助平滑技术解决数据稀疏问题,效果较好,可解释性强。缺点:注重了文本匹配而忽略了语义和推理、样本依赖导致非词表问题处理能力差、无法存储较多语义信息而失去泛化能力。
-
平滑技术:用来解决句子中出现零概率问题,“平滑”处理的基本思想是“劫富济贫”,即提高低概率(零概率),降低高概率,尽量使概率的分布区域实际水平。
-
加法平滑技术
假设每个n元语法发生的次数比实际统计次数多发生δ次(0≤δ≤1)一般δ取1,其中|V|是所考虑的所有词汇的单词表中单词的个数,假设无穷大那么所有的概率都趋于0,但现实中V一般都是有限个,所以概率的分布变得更加接近于实际水平
-
古德-图灵估计法
对于任何一个出现r次的n元语法,都假设它出现了r*次,用r*代替r
nr是出现r次的n元语法的数目,再将r*转化为概率
-
后备(back-off)平滑方法
当事件在样本中出现的频数大于某一数值k时用最大似然估计法,通过减值来估计其概率,如果小于k则用低阶语法模型来代替告诫语法模型(将高阶模型上的减值根据低阶模型的分布情况分配给未发生的事件,这种方法更加合理一些)
-
-
例如给定序列中语言成分的样本空间, 也就是词表(vocabulary) V, 由V中n个 词W1,W2,..., Wn组成的句子S, 其概率P(S)=P(W1,W2,..., Wn), 表示S存在的可能性, 计算机从大规模语料中学习统计语言模型的参数. 统计语言模型中常采用n元语法模型(n-gram)进行计算 ,当n=1时, 称为一元语言模型 (unigram), 序列中每个词都和其他词独立, 也就是和它的上下文无关, 当n=2时, 称为二元语言模型(bigram), 当 n=3时, 称为三元语言模型(trigram).
-
-
2003年:神经网络语言模型(neural network language model, NNLM)。使用低维、稠密的实际向量表示语言中的组成要素。比如单词, 利用单词在语料中的上下文进行该单词的分布式表示, 形成词向量.
神经网络语言模型,解决了文法模型的主观性和基于统计的语言模型的高维、稀疏性,同时通过词向量可以获得词之间的相似性,进而为语言的语义解析提供基础。
-
2010年,最早的基于循环神经网络(RNN)的语言模型(RNNLM)提出,使语言模型性能有了较大提升。对于图片类问题,卷积神经网络可以解决很多,但对于语言问题,输入的语境和语序都很重要。循环神经网络具有记忆性,因此在对非线性特征学习时具有一定优势
-
2012年,基于长短期记忆循环神经网络的语言模型和基于卷积神经网络的语言模型。
认知语言模型
模拟人对语言的处理方式,建立类脑语言信息处理的系统
-
确立内部表示的形式
-
将获取的语言成分转换成计算机可以理解的内部表示
-
根据算法或设定的模型进行处理
-
内部表示再转化为外部形式的输出
认知语言学中文本表示主要分为两种:
-
建立在物理符号系统假设基础珊瑚的符号主义方式,将语言的内部表示转化为符号和规则。
-
建立在脑科学和神经科学基础之善好的联结注意方式,将语言的内部表示转化为多粒度、多层次神经元的神经网络方式。
1.2为什么进行文本表示
文本形式上是不同粒度符号的序列,这种线性结构可以进一步抽象成树状或图状的结构,但不论是符号串序列还是树状图状的结构计算机都是无法直接进行处理的,必须借助向量或矩阵等数据结构实现文本的数值化或向量化。但不像语音与图像信息易于实现向量化或矩阵化,自然语言处理中的文本内容对象需要借助合适的文本表示模型和方法实现向量化。
上面说到的基于规则的自然语言处理系统通过建立知识库和推理机实现文本表示,以人工分析和处理为主。机器学习算法采用特征工程的方法(发现、统计并形成文本中的代表性特征, 包括词频、词性标注、命名实体识别、 词干化等文本词法特征, 句法分析、依存关系、位置信息等语法特征, 指代消解、语义角色标注等语义特征, 以及 借助WordNet、HowNet等知识库形成的知识特征等), 然后实现文本特征数值化, 获得文本表示。深度学习算法的文本表示直接包含在了神经网络的学习过程中,利用多层神经网络中各层之间特征的不同抽象和变换实现特征学习,进而实现文本表示。
进行自然语言处理需要提取出文本特征并且实现数字化表示,特征工程通过的是人工处理的方式,但如果可以使用计算机通过算法将文本的特征自动化的提取出来,则可以解决诸多人工方法中存在的问题。表示学习刚好可以很好的解决这个问题。
-
特征工程:有句是这样说的“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已”特征工程顾名思义就是一项工程活动,目的是最大限度的从原始数据中提取特征供算法和模型使用。
-
表示学习:表示学习是学习一个特征技术的集合:将原始数据转换成能被机器学习来有效开发的一种形式。它避免了手动提取特征的麻烦,允许计算机学习使用特征的同时,也学习如何提取特征(学习如何学习)
(此介绍只是特征工程的九牛一毛,仅仅是为了文章更好理解)
2.主流技术和方法
文本表示可以从两个维度进行考虑
-
针对文本内容对象的不同粒度,小粒度的字、词等,大粒度的句子、段落等
-
按不同的表示形式划分,分为离散表示和连续表示
文本表示也有浅层和深层的划分:
-
浅层文本表示:提取文本低级别信息作为特征,如:单个字或字符甚至是偏旁,忽略文本对象的上下文关系。**往往浅层特征会作为深度学习模型的输入,依靠深度学习模型得到文本的深层表示。
-
深层文本表示:提起文本复杂的特征,一般包含文本对象及其所在的上下文之间的关系,甚至还包括辅助知识。
文本表示的宏观分类
举个例子:
自然语言处理中文本的离散表示是一种局部化方法,将文本抽象成文本内容对象的序列,根据目标任务确定文本对象,将这些对象作为离散的特征进行数值化,采取的人工、半自动化或全自动化的方式从文本中提取特征,特征的粒度可以是字、词甚至是句子段落等,特征以文本中的内容和形式为主也可以引入外部知识或背景知识做辅助。这种表示几乎可以应用于各种领域、各种结构和各种规模的文本。离散表示的代表是词袋模型也叫向量空间模型,其中常用的特征的粒度是词
-
离散表示最简单的形式是“独热”表示(one-hot),词的one-hot表示是将词数字化为一个向量
-
词的one-hot表示流程:
-
确立词典,可从文本集差生也可外部导入
-
将每个词表示成维数为词典长度的向量,向量中该词对应的位置为1,其余为0
-
-
句子或文本的one-hot表示也形成一个向量,维数也是字典长度,根据向量中对文本特征数字化的不同,主要分为两种:
-
基于布尔表示的形式:元素值是0或1,, 数字化过程中 对于向量的第k个元素, 如果词典中的第k个词出现在句子或文本中, 那么其值为1, 否则为0;
-
基于计数表示的形式:元素值是非负整数, 数字化过程中对于向量的第k个元素, 其取值是词典中的第k个词在句子或文本中的出现次数的某种度量值, 简单的取值方法就是统计该词在句子或文本中出现的次数之和, 改进形式包括TF-IDF、n-gram等
-
自然语言处理中文本的连续表示,也称分布式表示,于1954年首次被提出,其理论是“上下文相似的词,其语义也相似”。用一个文本对象附近的其他对象来表示该对象,是现代自然语言处理的重要创新。
分布式表示对文本对象和的数值化建模建立在其上下文基础上,由两部分组成:
-
选择一种方式描述上下文
-
选择一种策略刻画文本对象与其上下文之间的关系
计算形式上以代数法、统计法和语义分析法为主,可针对所有的文本粒度和文本规模,获取方式以自动获取为主,主要分为:
-
基于矩阵的文本表示:
构建一个大小为V×C的共现矩阵M, 其中V是词典大 小, C是所限定的上下文范围大小, 比如在词的表示中, 词W的上下文可以为特定窗口中的其他词、W所在句子 或所在文档等. 如果以句子或篇章作为窗口范围, 共现矩阵M的每一行就是W对应词的向量表示, 每一列是句子或篇章的向量表示除了构建文本对象及其上下文的共现 矩阵, 也可构建文本对象与其上下文之间的语法关系矩阵或语义关系矩阵
-
基于聚类的文本表示使用较少
-
基于神经网络的分布式表示:借助于神经网络的非线性变换将文本转化成为稠密、低维、连续的向量, 可以实现不同文本粒度, 比如词、 句子、篇章等的表示.随着深度学习在自然语言处理中的广泛应用, 文本的分布表示成为主流方法, 特别是表示 学习, 可以从文本中自动获取文本的特征, 逐渐成为未来研究和应用的主要形式.
2.1向量空间模型(离散型文本表示)
词的序列形成词袋BOW
句子序列形成句子包BOS
文档表示形成一个维数很高的向量,各位对应文档的特征项,其数值对应特征项在该文档中的权重(term weight), 权重值利用具体的自然语言处理任务设定的加权公式进行计算, 体现了特征项在文档中的重要程度, 维数为特征项集合的长度, 该集合也称词典.
特征项语言单元是根据任务确定的最小语言单位,不可再分,可以是字、词、词组等。从集合角度看, 一个文档的内容就是由特征项组成的集合, 表示为: Doc(t1,t2,...,tn), 其中tk是特征项, 特征项的 权重反映了特征项在文档中的重要程度. 这样, 文档就可用特征项及其对应的权重来表示, 形成一个向量, 向量的 形式为: Doc((t1,w1),(t2,w2),...,(tn,wn)), 简记为Doc(w1,w2,...,wn), 其中, wk是特征项tk的权重.
当只考虑文档中单个特征是否包含,文档的表示变成向量模型的一种特例,则称为布尔模型或one-hot模型,权值只有0或1。文档的向量维数是词典的长度. 如果按特征项在文档中出现的频率来表示权值, 比如词频进行统计,称为基于词频的文档向量空间表示
若将前面提到的ont-hot表示,推广开来,文本表示中的各种特征项都可以进行类似表示,对于某个特征项,其向量空间模型表示成一个向量,维数是特征项的集合长度,对应特征为0,其余为0。若还要考虑到词之间的关系,则可基于共现矩阵的方式构建:
-
基于文档集或文档语料库的词向量:N个文档组成的文档集,词在2某个文档中出现记为1未出现为0,可构建一个N维向量当然也可以使用词频(TF)、词频及逆文档频率(TF-IDF)作为权值。
-
采用特定窗口大小的文本片段:将其中词的共现作为词向量的构建方法, 维数就是该窗口大 小, 每维的权重可以是布尔值0或1, 也可以是其他的量化值
向量空间模型缺陷:
-
特征项的数量庞大,造成数据稀疏和维度灾难
-
假设特征项之间相互独立,忽略文本中的结构信息
-
特征项的划分和获取没有具体标准
-
不关注文本和特征项的意义表示
改进:
-
改进和优化特征项的选择和确定,获取特征项的语义信息和结构信息
如:借助图方法、主题方法等进行关键词抽取、利用深度学习获取词向量等(下文有详细介绍)
-
改进和优化特征项权重的计算方法
2.2基于主题模型的方法
文章分析就是写文章的一个逆过程,通过词汇的集合确定相应的主题,最后理解文章的核心思想。主题模型就是实现这种思想的文本建模形式。
潜在语义分析LSA基于分布假设理论和词袋模型, 构建文本的词-文档矩阵(term-document matrix) X, 每一行为一个词的分布语义表示, 上下文以文档为基本单位, 每一列为一个文档的BOW向量表示. 那么, 矩阵运算XTX 表示了文档和文档之间的关系, XXT表示了词与词之间的关系, 对矩阵进行SVD奇异值分解, 可以得到词和文档的稠密向量表示, 进而发现潜在的主题语义信息.
SDV奇异值分解
主题模型的原理
将相同主题的词或词组映射到同一维度上,两个不同的词属于同一主题的判断依据是:如果两个词有更高的概率出现在同一篇文档,或者一个给定的主题,两个不同的词产生概率比其他词要高。
-
所以说到底主题模型是一个比较特殊的概率图模型。假设有K个主题(一般人为设定, 这也是模型可能存在的问题), 就把一篇文章 表示成一个K维向量, 向量的每一维代表一个主题, 权重代表该文章属于对应主题的概率
-
LDA主题模型:通过三层贝叶斯方法发现语料库中具有代表性的主题,并能够计算出每个文本的主题分布,并得到每个主题相关的词分布特性
-
贝叶斯方法:这种方法是基于假设的先验概率、给定假设下观察到不同数据的概率以及观察到的数据本身而得出的。其方法为,将关于未知参数的先验信息与样本信息综合,再根据贝叶斯公式,得出后验信息,然后根据后验信息去推断未知参数的方法
2.3基于图的方法
-
借助图进行问题建模需要解决3个基本问题:
-
表示问题,如何通过图结构来描述节点之间的关系以及节点和边的属性量化
-
学习问题,节点、结构表示学习,获取相关的参数
-
推断问题,通过已知的部分信息来推断和计算其他信息
2.3.1 基于经典图论的图文本表示
最早的图模型,节点是文本解析后的单词,边是节点之间的共现关系,边的类型是从文件中提取出的几种标签,这种文本图并未考虑边的权重信息。
这种图结构作为文本表示的模型,简称为GSM模型,构建该模型有3步:
-
获取文本特征,构建节点集合V(相同特征只构建一个节点,节点总数就是文本中互不相同的特征项数目)
-
定义特征项之间的关系,确定边集合E,最简单的就是共现关系。
(若两个特征项出现在一个窗口中, 比如一个句子、特定个数的字符间隔、一个文档等, 窗口内的特征项对应的节点之间就有连边),除了共现关系的图之外还可以有其他关系的图,比如语法关系图、语义关系图等。
-
对节点和边根据需要量化,包括节点属性量化和边的权重量化
2.3.1 基于信息检索的图文本表示
PageRank算法:起源于搜索引擎,最早用来计算网页的重要性。应用时,整个万维网建模为一个有向图,每个网页是一个节点,节点之间的链接关系为边,在此基础上计算网页的重要性
基本思想有两点:
-
数量原则,某网页的网页数量越多,则网页的重要性越大
-
质量原则,某网页的其他网页的重要性越大,该网页的重要性越大
TextRank算法:是由PageRank算法改进而来的基于图的文本表示的算法。首先把文本分割成若干特征项并建立图模型, 可以是有向图, 也可以是无向图, 但一般是加权图, 然后进行迭代计算, 对文本中的重要成分进行排序
对于网页重要性计算的方法:
对于文本特征项重要性计算的方法:
s(vi)、ws(vi)是第i个节点的重要性度量值, d是阻尼系数, 一般取值为0.85.第一个式子中的In(vi)表示有链接指向网页i的网页集合, Out(vj)是网页j中有链接指向的其他网页的集合,第二个式子中的Adj(vi)表示无向图中与vi邻接 的节点, 如果是有向图, Adj(vi)就是节点i的入链In(vi), Adj(vj)就是j节点的出链Out(vj).
PageRank算法初始设置 每个网页的重要性为1, 按公式多次迭代达到稳定, 得到的结果就是当前互联网状态下网页的重要性权重值. TextRank类似进行迭代计算。
TextRank算法主要有两个应用:
-
用于关键词提取的文本表示建模和算法
-
首先构建关键词图G= (V,E)文本预处理后将特定词性的词选为候选关键词
-
然后采用共现关系和构建节点之间边的集合(共现关系的条件前面提到过)
-
-
用于抽取式无监督文本摘要方法
其中的节点集合V是文本中的句子集合,通过句子之间的位置关系或者通过计算句子之间某种相似性度量来确定集合E
扩展:
同时期建立在网页链接基础上的典型信息搜索模型除了PageRank算法,同时期的Hits (hyperlink-induced topic search)算法:
-
将互联网网页分为两类:
枢纽或中心页面(hub page)和权威页面(authority page)
-
枢纽指那些包含很多权威页面的链接的页面
权威页面指那些包含领域性、主题性那些主题很明确具体的实质性内容的页面
-
每个网页被赋予两种属性:hub属性和authority属性,初始值为1
-
HITS算法基本思想也是包括两点:
-
高质量的hub页面会指 向许多高质量的authority页面
-
高质量的authority页面会被许多高质量的hub页面指向
-
2.3.3 基于复杂网络的图文表示
复杂网络:具有自相似、小世界、自组织、无标度和吸引子中部分或全部 性质的网络,一般用来描述自然界或人类社会中呈现高度复杂性网络结构的系统, 实质上是由大量 节点及其相互作用形成的图结构。复杂系统中的要素或现象等被抽象为节点, 其间的关系被定义为边。
利用复杂网络建模进行文本表示和前面讲过的类似,比如如果两个词语间距离不大于2, 这两个词语间即可构成边。还有很多其他的构成方式。
2.3.4基于知识图谱的图文本表示
如果想在图或者网络的形式表示文本的基础上考虑嵌入知识 相关的内容,就要涉及到知识图谱。知识图谱起源于语义网络, 目标是描述现实世界中的各种实体和概念, 以及它们之间的关联关系,其直观表示形式就是一个图G,其中节点代表实体, 边代表两个实体之间的关系, G中的结构定义成三元 组形式, 三元组主要有两种:
-
一种是 〈主体(subject)、谓词(predicate)、客体(object)〉,
-
另一种是 〈主体(subject)、 属性(property)、属性值(property value)〉
如果从文中抽取节点、边的信息时实现自动表示学习,将无监督特征项学习和深度学习技术纳入表示学习的范畴并充分考虑语言学先验知识和相关的自然语言处理任务, 将大 大减少数据表示的构建成本和误差。
2.4基于神经网络的方法
传统的机器学习方法对复杂任务的处理,往往需要将任务的输入和输出人为切割成很多模块或阶段,逐个分开进行学习。
传统机器学习方法存在问题:
-
每个模块都需要单独优化,优化目标和任务总目标可能不一致
-
模块之间的错误还可能逐级放大。
基于神经网络的深度学习采用端到端的训练或端到端的学习,学习过程中不进行模块或阶段划分,巧妙地解决了传统机器学习划分阶段不连贯的问题。
神经网络是一种模型,不是深度学习,而深度学习是基于神经网络模型的机器学习方法,二者从某种角度上来看是一致的,常用作同义词使用。
多层次的神经网络, 也称深度神经网络(deep neural network, DNN)是深度学习的基础, 本质上是一种特征学习方法, 在语音、图像和视频数据处理中效果明显
神经网络模型在自然语言处理的领域:
-
先获取海量的无标注文本
-
输入多隐层神经网络模型
-
经过隐层的非线性变换自动学习文本中的词法、句法和语义特征
-
解决了依赖于人工的复杂的“特征工程”问题
词向量的维度:
前文中提到的向量空间模型的简化形式one-hot模型将词表示成一个向量,和基于图的表示利用词及其上下文构建图得到的词的向量表示,这些词向量的维度是次的词典序列和词上下文中的共线、语法或语义的量化。通过特定模型可以增加或删除一些维度在目前自然语言处理领域,词向量是指嵌入模型中词向量的表示,也称词嵌入,是基于神经网络模型训练得到的低维实数向量,训练好一般不能动,单独分析词向量中的某一维没有具体含义。由于词的表示是由向量中的所 有维度共同决定, 语义分散存储在向量的各个维度中。
基本的基于神经网络语言模型NNLM实现机制:
模型由输入层、隐藏层和输出层组成, 输入第t–1到第t–n+1个单词的one-hot向量表示wt–1, wt–2,..., wt–n+1, 模型预测并输出第t个单词的嵌入表示wt, 隐藏层通过参数矩阵 C∈R|V|×m将输入的每个词映射为一个向量C(i), C(i)∈Rm表示词典中第i个词对应的向量, |V|表示单词表中的单词个数, m表示向量的维度.
2.4.1代表性模型:
Word2Vec模型:
建立在NNLM基础上,并将其简化,神经网络仅3层,输入层采用输入词的one-hot向量,隐藏层不需要激活函数,只是线性处理,输出层和输入层维度一样采用Softmax回归。
Softmax回归模型是逻辑回归模型在分类问题上的推广,在普通逻辑回归的问题中,类标签y的取值一般是0和1,在softmax逻辑回归中y是可以有两个以上的值,所以一般用来解决多分类问题
根据数据的输入和输出方式Word2Vec分为两种:
-
连续词袋模型CBOW (continuous bag of words)是根据目标词上下文中的词对应的词向量, 计算并输出目标词的向量表示
-
Skip-Gram模型与CBOW模型相反, 是利用目标词的向量表示计算上下文中的词 向量.
-
实践验证CBOW适用于小型数据集, 而Skip-Gram在大型语料中表现更好.
-
在训练文本集合中, 以单词t为中心, CBOW方法输入其前k个单词和后k个单词(比如k=2)的one-hot向量 表示wt–2, wt–1, wt+1和wt+2, 隐藏层计算目标单词t与其前后各k个单词的关联概率, 最后输出中心词t的嵌入表示wt.
-
Skip-Gram方法输入单词t的one-hot向量表示wt, 隐藏层计算其前k个单词和后k个单词(比如k=2)与目 标单词t的关联概率, 最后输出它们的嵌入表示wt–2, wt–1, wt+1和wt+2.
词向量的应用:
-
直接使用词向量进行任务处理或使用训练出的词向量作为主 要特征扩充现有模型(词语相似度计算、语义角色标注等)
-
词向量作为神经网络中的输入特征, 提升现有系 统的性能(情感分析、信息抽取、机器翻译等)
GloVe (global vectors for word representation)词向量模型:
建立在矩阵分解基础上的GloVe (global vectors for word representation)词向量模型, 本质上也是基于词共现矩阵, 通过训练神经网络得到词向量.但相较于Word2Vec模型,GloVe利用了全局信息,在训练时收敛更快,周期更短
2.4.2句子向量化的方法:
-
基于神经网络词袋模型
将句子中的词对应的词向量进行某种加权计算(最简单的是取所有词向量的平均值)作为句子向量
缺点:丢失了词序信息,对短文本难以捕获有效的语义信息
-
基于递归神经网络RecNN (recursive neural network).
将句子按照某种拓扑结构, 比如句法树, 进行分解, 将结构 中词对应的词向量递归处理得到句子表示
缺点:给定的拓扑结构限制了适用范围
-
基于循环神经网 络RNN.
将句子看作时间序列, 表示成一个有顺序的向量序列, 通过对这个向量序列进行变换(transformation)和 整合(aggregation), 计算出对应的句子向量表示
-
基于卷积神经网络CNN.
将句子看作符号序列, 通过多个卷积 层和子采样层对文本序列进行处理, 得到一个固定长度的向量
-
综合或改进方法.
目前的做法是综合这些方法 的优点, 结合具体任务, 进行模型选择或组合
2.4.3段落或篇章的表示方法:
参考句子向量化的实现方法,采用层次化的方法,先获取句子表示,再以句子表示作为输入得到段落或篇章的表示。
-
基于卷积神经网络CNN
利用卷积神经网络对句子建模,以句子为单位再卷积和池化,得到篇章或段落表示
-
基于循环神经网络RNN
采用循环神经网络对句子建模,然后再用循环神经网络建模以句子为单位的序列,得到篇章表示
-
混合模型
先用循环神 经网络对句子建模, 然后以句子为单位再卷积和池化, 得到篇章表示.
其中循环神经网络相对适合处理文本序列,应用较多
2.4.4基于深度神经网络的文本表示代表性工作
1.ELMo (embeddings from language models)
ELMo实现了一词多义、动态更新的词嵌入建模.
流程:
-
在一个大的语料库上训练语言模型,得到词向量和神经网络结构
-
新型领域转换,用训练数据来调优预训练好的ELMo模型,这种训练数据的上下文信息就是词的语境
本质思想:
事先用语言模型学好一个单词的词向量, 此时多义词无法区分. 实际使用词向量的时候, 再根 据上下文单词的语义去调整该单词的词向量表示, 经过调整后的词向量更能表达在这个具体上下文中的含义
典型的两个阶段:
-
用语言模型进行预训练
-
在做特定任务时,从与训练网络中提取对应单词的词向量作为新特征补充到下游任务中去
2.Transformer/self-attention
Transformer是Google提出的一种文本表示全新架构模型,模型采用encoder-decoder结构(encoder将输入序列转化为一个上下文向量, 然后将其传递 给decoder, decoder生成输出序列)在encoder和decoder中不再采用RNN、CNN和LSTM,而是采用特征学习能力更强的自注意力(self-attention)和多头注意力(multi-head self-attention)”机制
3.Open AI GPT (generative pre-training)
GPT的目标是为自然语言处理学习一个通用的文本表示, 采用了12层的深度神经网络, 能够在大量任务上 进行应用,其训练过程和ELMo类似,主要的不同点有两个
-
特征抽取不是双层双向LSTM(长短期记忆网络是 RNN 的一种变体)而是用Transformer
-
GPT的预训练虽然仍然是以 语言模型作为目标任务, 但是采用的是单向的语言模型, 只采用目标词的上文来进行预测,
缺点:GPT只能从前往后预测,只能利用文本的单向信息,无法挖掘上下文之间的关系
4.BERT (bidirectional encoder representation from transformers)
BERT是一种非常成功的文本表示学习模型, 即通过一个深层模型来学习文本特征, 这个模型可以从无标记数据集中预训练得到,训练这个模型来预测句子中被mask的单词。给定输入字符序列, 字符的某一部分用特殊符 号[mask]替换, 训练模型从中恢复原始字符,简单来说就是可以训练这个模型之后,可以利用这个模型将某些序列中被遮盖住的字符进行预测恢复,去做完形填空
GPT和BERT的出现, 使自然语言处理任务的主流做法变为预训练 & 微调(pre-train+finetune)的形式, 先在大规模语料库上进行有监督或无监督预训练, 然后针对特定任务对模型微调
缺点:
-
预训练任务和微调任务之间可能存在不一致
-
预测的时候多个mask之间的文本内容是相互独立的,在预训练的时候对于依赖关系的挖掘不够充分
基于神经网络的文本表示模型的主要优点包括:
-
数据驱动,与当前的大数据时代相适应,大量的语料易于获取
-
自动特征获取,克服了繁琐的特征工程的一些问题
-
神经网络在图像、视频等领域中的成功应用,为NLP(自然语言处理)提供了良好的借鉴
-
不同粒度、不同领域的文本借助向量获得统一的文本表示形式
-
基于神经网络的系 统易于计算机的并行处理, 实现了端到端的应用, 克服了传统NLP系统表示、任务两步法的弊端
基于神经网络的文本表示研究存在的问题包括:
-
神经网络模型可解释性差, 理论依据不足
-
深度学习需要海量训练数据, 不同数据集、不同数据规模、不同模型和不同的超参设置都会导致结果不同
-
文本表示建立在基于上下文建模的词向量基础上, 如何利用外部先验知识优化词向量表示模型, 以便提高文本特征表示能力
-
对词向量及其他粒度文本表示的质量评价基于神经网络的文本表示模型既有比较明显的优点, 也存在一些问题
需要的改进:
-
可解释性. 研究和探索神经网络模型应用于文本表示的理论基础和模型架构
-
组合性. 如何利用神经网络学习到一个好的不同粒度文本的嵌 入表示, 如何基于已有嵌入表示建立更大粒度文本内容对象的表示模型
-
适应性. 针对多领域、多语言、多 模式等的具体NLP任务, 充分借鉴和融合相关技术
2.5 基于表示学习的方法
在机器学习领域,如果原始数据经过提炼有更好的表达,往往会是后续任务更易于处理,即找到对于原始数据更好的表达,以便后续任务更好的解决,这就是表示学习。
官方定义是:表示学习也称学习表示, 试图通过机器学习算法自动地进行特征空间映射, 获得原始数据的有效表示, 最终提高机器学习模型的性能. 表示学习涉及到两个核心问题: (1)什么是好的表示? (2)怎么学习到好的表示?
自然语言处理中好的文本表示是一个较为主观的概念,通常具有较强的表示能力,有限的规模包含更多文本信息;有易用性,好的文本表示可以使后续的任务处理更有简单;还要有较强的泛化能力。
2.5.1 文本表示中的深度学习和表示学习
前文中提到的深度学习,是将文本建模对象对应到一组向量X (x(1),x(2),...,x(n)),然后经过多层的神经网络的变换,得到新的向量H (h(1), h(2),...,h(m)),最后基于H得到输出的y。深度学习是表示学习最好的体现, 算法自动构建特征, 解决了人工特征构建的问题,其关系如图
2.5.2文本表示中的图嵌入和表示学习
图嵌入方法,也称网络嵌入, 通过保留图中节点信息 和节点之间边的拓扑结构, 将图中节点表示为低维向量空间,这种方法进一步发展形成了图表示学习,图神经网络GNN是图表示学习的高阶版本,实质上都是深度学习应用于图表示学习的具体体现,一般不做严格区分。GNN一般定义为假设网络G=(V,E),V是节点集合,E是边集合,GNN网络表示将学习到网络中的每一个节点在低维空间的向量表示,即将图中每一个节点都映射到一个低维向量空间,将复杂、高维的图数据转化成低维稠 密的向量, 并且在空间内保持原图结构中的节点信息和结构信息。
图表示学习方法:
-
基于因子分解的文本图表示学习:
主要针对文本图表示的邻 接矩阵进行近似分解, 并将分解的结果作为文本特征的嵌入表示
-
基于随机游走的文本图表示学习:
通过节点之间的消息传递来捕捉 文本的依赖关系, 基本思想是基于节点的局部邻居信息对节点进行嵌入表示学习, 简言之就是通过神经网络来聚 合每个节点及其周围节点的信息.
-
基于深度学习的文本图表示学习:
将深度学习模型迁移到图数据上, 进行端到端的建模
图模型和神经网络
作为文本表示的主流建模方法,都可以看作一种网络结构,二者有很多联系:
-
可以利用神经网络的抽象表示能力建模并实现图模型中的推断问题
-
可以利用图模型算法来解决神经网络中的学习和推断问题
二者也有很多不同:
对抗神经网络GAN
GAN包含两部分:
-
生成器用来生成尽可能真实的自然语言文本, 去“欺骗”或“误导”判别器
-
判别器尽最 大努力甄别真实语言文本与生成的文本.
训练GAN就是使生成器和判别器相互博弈, 达到真实文本和生成器生 成的文本难以区分的效果. 比较代表性的改进模型有SegGAN、GraphGAN、ANE等
2.5.3文本表示中的注意力机制和表示学习
大多数注意力机制都是在 深度学习的常见编码-解码(encoder-decoder)框架上发 挥作用的, encoder-decoder框架适合处理由一个文本序列到另外一个文本序列的处理模型, 比如中英文翻译。
假设给定固定长度的向量X(x1,x2,...,xn)是汉语句子,Y(y1,y2,...,ym)是对应的英文翻译,通过编码-解码框架进行翻译, X和Y分别 由各自语言的单词序列组成。翻译过程中X向量若是长输入序列可能会失去整个序列的部分信息,此时引入注意力机制,注意力机制最核心的工作就是在序列的不同时刻产生不同的语言编码向量, 量化要重点关注输入序列中的哪些部分, 然后根据关注区域产生后续的输出。
原始的编码-解码模型:
引入注意力机制:
引入注意力机制的encoder-decoder模型, 编码器将输入信息编码成一个向量的序列, 序列中不同片段的重要 性反映在不同的向量中. 解码的时候, 每一步选择向量序列中的一个子集进行下一步处理, 这样的每个输出, 都能 够充分利用输入序列携带的信息
其他文本表示方法分析
3.1 基于事件的方法
事件是客观的、是不依赖特定语言的对现实的抽象。针对特定文体的自然语言处理, 比如叙事 文本、新闻文本等. 从认知科学角度, 事件是人类认识和理解现实世界、描述或传播信息的基本单元, 以事件为知 识表示单元对文本中的事件以及事件关系进行有效表示是一项基础性工作, 可以为事件本体以及基于事件的知识 推理提供服务
3.2基于语义的方法
自然语言处理的核心思想是对语义的表示和分析, 对文本语义的表示简单来说就是将无结构文本表示成结构化的形式。语义分析的目标就是通过建立有效的模型和系统, 实现各个语言单位(包括词汇、句子和篇章等)的自动语义分析, 从而实现对整个文 本的真实语义的理解.
根据文本组成粒度的不同, 语义分析又可进一步分解为词汇级、句子级以及篇章级语义分析。
-
词汇级语义分析关注词的语义
-
句子级语义分析关注整个句子所表达的语义
-
篇章语义分析旨在研究自然语言文本的内在结构并理解文本不同粒度间的语义关系
3.3基于知识的方法
尽管现在主流自然语言 处理系统中的文本表示较少关注知识, 甚至都不关注语言学知识, 但针对特定应用的领域知识和语言学知识对自 然语言处理有极大的帮助作用, 语言的领域应用不仅需要静态知识, 更需要动态知识. 领域专家的思维、决策知识 等加以整合和表示, 赋予机器, 从而一定程度上降低对专家的依赖
4 文本表示发展趋势
-
文本表示与知识的融合。知识应用于文本表示既是可理解的, 又能缓解计算资源限制, 特别是对于垂直领 域, 专业知识非常有效, 如医疗、金融等文本表示。结合知识图谱和未标注语料学习知识和词向量表示, 更有效地实现文本嵌入
-
跨语种的语言统一表示研究。考虑将相同语义的 不同语言的文本进行相同或相近的表示, 试图为不同语种构建统一的语言表示模型, 提高各语种语言的表示能力
-
多粒度文本的联合表示。以语言研究为基础, 分析语言本身的层次结构, 分析不同粒度文本之间的关系, 构 建多粒度文本的联合语义表示模型.
-
少资源文本表示学习。目前, 文本表示不论是统计方式还是基于神经网络, 一般需要大量语料的学习, 受限 于数据和算法, 大多数文本表示方法经常过滤掉少资源或低频的词, 即使处理这些词, 也难以很好地建模, 这样往 往会丢失有价值的信息, 降低表示能力
-
文本表示的自动学习。实用化的自然语言处理需要对复杂语境进行建模, 基于海量文本数据自动学 习文本的表示, 必然是自然语言表示研究的一个重要方向
-
多模态深度语义的融合表示。为实现对信息的多维度和深层次理解, 声音、图像、视频、文本等不同模态 的信息综合感知和认知表示建模, 拟合人类学习过程
-
传统表示模型的深入研究和广泛应用。自然语言处理发展过程而提出的经典文本表示模型优化和融合, 一方面能快速实现具体的自然语言处理任务, 另一方面也能降低模型对时间、资源等的过度依赖
5.总结
该笔记,包括该论文作者给出的大部分内容以及我自己找到的拓展资料,用自己较为容易理解的语言和文章原文结合起来,进行对自然语言处理中的文本表示的内容进行记录。原文doi号放在末尾
软件学报 ISSN 1000-9825, CODEN RUXUEW
Journal of Software,2022,33(1):102−128 [doi: 10.13328/j.cnki.jos.006304]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY