融合文本特征的汉老双语句子相似度计算方法
2021-11-16谭琪辉周兰江
谭琪辉,周兰江,刘 畅
(1.昆明理工大学 信息工程与自动化学院 智能信息处理重点实验室,云南 昆明 650500;2.西南交通大学 信息科学与技术学院,四川 成都 611756)
0 引言
老挝语又称寮语,因为是小语种语言,所以国内外对其自然语言处理方面的研究还处于基础阶段。老挝语是音节文字语言,它从梵语、巴利语和柬埔寨语、汉语、英语等语言吸收了大量词汇,从而导致了老挝语词汇的复杂性。总而言之,老挝语在语义表达、句子结构上与汉语差异较大。双语句子相似度计算是在不同语言之间计算句子的语义相似度,本文的研究旨在寻找一种有效的方法以计算汉老双语句子相似度,这对后续进行汉语、老挝语平行语料库构建,以及汉老双语信息检索、机器翻译等研究具有重要意义。
目前,汉老双语句子相似度计算存在的问题如下:①汉老双语平行语料资源不足,且没有高质量的双语词典或语义词典,导致常规的句子相似度模型无法学到足够的特征,模型拟合能力不足,泛化性较差;②虽然解决语料稀疏问题的方法很多,但是面向老挝语的研究却很少。因为老挝语在语义表达、句子结构上与汉语差异较大,如果双语句子对中存在大量实体和关系,没有有效的特征模板会导致模型无法提取相应的句子特征,最终降低模型计算的准确率。
随着深度学习在自然语言处理方面取得的进展,使用深度神经网络构建跨语言句子相似度计算模型也有不错的效果。目前利用神经网络测量跨语言句子相似度的方法主要有两种:一是基于卷积神经网络[1](CNN)将句子表示为句子向量,如Yao等人[2]利用词嵌入和卷积神经网络产生句子向量,使用句子向量对的信息来计算句子相似度;又如Yin等人[3]采用融合卷积神经网络和注意力机制的 ABCNN 模型,考虑句子局部特征和句子间关系进行文本匹配,但CNN和注意力机制融合在句子相似度任务中的效果并不明显。二是基于长短时记忆神经网络[4](LSTM)来表达句子向量,如Mueller等[5]使用LSTM组成孪生(Siamese)网络将句中词向量表示为句子向量,并计算句子向量间的Manhattan距离得到句子相似度,但Siamese-LSTM在计算长句子相似度时,对长距离上下文信息记忆能力不足,容易丢失重要的句子特征;Wang等人[6]提出BiMPM模型,使用双向LSTM网络为每个句子提取多粒度特征并使用多种类型池化,再对不同粒度以多个相似性指标比较句子表示。虽然该方法改进了句子交互信息的提取粒度,但是模型参数过多,收敛较为困难。
近年来,许多学者将迁移学习应用于自然语言处理任务中以解决语料不足的问题,Ando等人[7]提出了一种迁移学习框架,该框架在多个任务间共享结构参数,提高了命名实体识别(NER)和其他各类任务的性能。Collobert等人[8]提出了一个独立于任务的卷积神经网络,并采用联合训练将知识从NER和词性标签迁移到组块。Peng等人[9]研究了基于递归神经网络的中文命名实体识别和分词之间的迁移学习。综上,基于模型的迁移学习通过自适应地修改模型体系结构,训练算法或特征表示从而利用源任务和目标任务之间的相关性,该方法可以解决小数据集造成深度神经网络性能不足的问题,有效提高句子相似度模型的性能。
为解决汉老双语句子相似度任务中存在的问题,本文构建了融合文本特征的汉老双语句子相似度模型,其中文本特征是本文对老挝语语法研究和专家校正所得的词性特征和数字特征。首先,该模型将汉老双语句子和文本特征分别转化为词向量,随后将这些词向量与Glove模型预训练的词向量拼接为特征向量,该向量包含单词共现的全局信息,以及汉语、老挝语特有的语义信息,能够丰富句子特征,提升模型计算准确率。其次,由自注意力双向长短时记忆神经网络(SelfAT-BiLSTM)组成的多层孪生网络将上述特征向量转化为句子向量并提取长距离上下文特征,其中多层BiLSTM网络[10]解决了单层LSTM孪生网络不能获取多维度语义信息的问题,而自注意力机制[11-13]对句中出现的语义特征分配不同权重,可以防止因老挝语句子较长而发生重要句子特征丢失的问题。最后采用迁移学习的方法构建句子相似度模型,并使用不同的微调参策略增强模型的泛化能力,这有效解决了汉老双语平行语料稀疏导致深度神经网络性能不足的问题。
本文做出的贡献如下:①针对汉老双语平行语料稀疏导致模型学习能力不足的问题,使用迁移学习方法构建句子相似度模型。首先采用通用模型fE(•)学习语言基础特征,然后在解决汉老双语句子相似度任务时对通用模型做出适应性调整。②在汉老双语句子相似度计算中使用词性、数字共现等文本特征来表示汉老双语句子的语义信息,丰富句子特征,提升模型计算准确率。
1 老挝语特征选取
本文通过研究提取汉语、老挝语文本特征来增强预训练的词向量,丰富句子特征,以此来提高深度神经网络学习的效果。
1.1 词性特征
本文采用相同的词性标签集对汉语和老挝语标注词性,共现次数较多的10类标签如表1所示。词向量预训练时将词性标签和词作为一个元组[word pos]输入预训练词向量模型,给定由n个词组成的句子S,S=[w1p1,w2p2,…,wnpn],句子S经过预训练模型输出为SW=[WiWpi]∈Rn×d,其中,Wi表示第i个词向量,Wpi表示第i个词的词性特征向量。
表1 词性标签
1.2 数字特征
在双语句子对中,数字序列出现的相对位置大致是相同的,作为两个对应的向量,在句子匹配中的区分作用也很明显。汉语和老挝语在数字的表示方法上有明显差异,因此本文提取汉语老挝语的数字特征作为句子相似度计算的文本特征。在提取数字特征时应注意以下问题:
(1)汉语和老挝语在表示数字的时候一般为阿拉伯数字,但在表示日期和计数单位时有不同的写法,如表2所示。
(3)根据表2,本文设计算法将汉语和老挝语各自的日期表示方法转换为对应日期的阿拉伯数字,并将汉语和老挝语句子中出现特有计数单位的情况根据数值大小统一转换为阿拉伯数字的表示形式。经以上处理后进行标记操作,若两个句子对中存在相同数字,则在每个句子中匹配数字的词向量上添加一个TRUE标签;否则,添加一个FALSE标签。假定句子S由n个词[x1,x2,…,xn]组成,其中,第i个词出现数字特征向量表示为di,则存在词向量矩阵D∈Rl×|V|使得di=D·vi,其中,vi为one-hot向量,大小为|V|(词表的大小),l为数字特征向量的维度,出现TRUE标签则di=1,出现FALSE标签则di=0,因此汉老语句子对的数字特征向量为SD=[d1,d2,…,dn]∈Rn×l。
表2 汉语-老挝语对应表
2 融合文本特征的汉老双语句子相似度模型
本节将详细介绍本文提出的融合文本特征的汉老双语句子相似度模型并介绍本文使用的迁移学习方法。如图1所示,模型包含5个部分:①输入层:对输入的双语句子对作格式化处理并提取文本特征;②词嵌入层:将处理后的文本转化为低维的词向量并与提取的文本特征向量做拼接;③BiLSTM层:对词嵌入层的拼接向量进行训练,得到隐藏状态向量;④Self-Attention层:产生注意力权重向量,与隐藏状态向量加权求和得到上下文特征向量;⑤输出层:包括一个定义相似度函数的ManDist层(输出孪生网络的曼哈顿距离),以及一个多层全连接网络对曼哈顿距离做非线性变换,最终由sigmoid函数输出相似度概率分布。
图1 本文模型结构
2.1 词向量表示
近年来,许多学者将词嵌入(Word Embedding)方法运用到自然语言处理任务中,通过编码固定长度的词汇和句子,把维数为d的高维空间嵌入到一个更低维数的连续向量空间生成词向量,每个词用一个词向量矩阵表示。2014年,Pennington等人[14]提出一种全局向量(GloVe)模型来表示向量空间中的单词。GloVe模型使用单词共现的全局统计信息建立共现矩阵M。矩阵M用于计算单词wi在另一个单词wj的上下文中出现的概率,该概率P(i|j)表示单词之间的关系。本文采用GloVe模型,通过预训练汉语和老挝语的词向量,将带有全局信息的Embedding作为词汇特征向量输入到汉老双语句子相似度模型。
本文将词性标签和单词一起进行词向量预训练,训练时将词性标签和词作为一个元组[word pos]输入词向量模型,通过训练得到相同维度的词向量和词性向量进行向量拼接,如图2所示,最终的词向量SW如式(1)所示,其中,m,n为常数。
图2 词向量和词性向量拼接
本文对词和词性的向量拼接有两种方法:①词向量Wi和词性向量Wpi直接相加得到词向量SW,此时m=n=1;②对词向量和词性向量分配不同的权重计算得到词向量SW,经实验证明,参数设置为m=0.8,n=0.2时,所得词向量使本文模型拟合效果最佳。
以上由预训练得到的词、词性向量以及汉语老挝语数字特征向量经过向量拼接得到如式(2)所示特征词向量F。
2.2 BiLSTM层
本文采用SelfAT-BiLSTM网络作为孪生网络的子网络,两个子网络共享权重,并将已训练的汉语老挝语词向量分别输入到左右两个子网络中。
2.3 Self-Attention层
在汉老双语句子相似度计算过程中,因老挝语是音节文字,语言句式较长,而BiLSTM神经网络对长距离的上下文信息记忆能力有限,容易丢失重要的句子特征表示。本文考虑到自注意力机制能不受单词间距离的影响直接计算句子中各位置的隐藏向量与当前隐藏向量的匹配程度,因此构建Self-Attention层获取汉老双语句子对中不同单词、特征之间的相关性程度,自注意力机制计算过程如式(4)~式(6)所示。
2.4 相似度计算函数
本文在相似度函数中没有使用L2正则,是因为L2正则无法修正欧氏距离因梯度消失导致不同语义句子对误判为同类型的问题,存在语义丢失现象,所以采用L1正则。获得预测结果后,本文使用交叉熵损失函数衡量预测值与真实值的差距,将训练集的相关性标签收缩到区间[0,1],然后使用反向传播更新孪生网络模型的参数,并使用留一法进行交叉验证。
2.5 句子相似度计算的迁移学习策略
针对汉语、老挝语平行语料DL稀疏的问题,本文在无标签数据集(分词语料)DE={(xei,xci,y)|xei∈Xen,xci∈Xcn,y=0,1,i=1,2,…,n}上预训练通用模型fE(• ),通用模型同样采用SelfAT-BiLSTM网络,将通用模型的参数θE初始化汉老句子相似度模型fL(•)(目标模型),再加入带有文本特征的汉语、老挝语词向量对通用模型进行训练调整。如图3所示。
由于预训练的通用模型fE(•)可以学习到基础的语言特征,同时模型参数θE取得有效值,因此用θE初始化目标模型fL(•)后,采取微调参数的方式完成迁移学习。本文采取以下三种策略进行微调参数。
(1)微调参数时,由于网络底层得到的特征是较为基础的边缘特征,而越高的网络层,和目标数据集的全局信息联系越紧密。因此采取固化目标模型fL(•)底层网络参数,更新顶层或中间特定层参数的方式,使得模型参数可以自适应汉老双语平行语料。
(2)为防止参数微调过度导致目标模型严重遗忘预训练模型学到的有效特征,以及参数微调导致原模型噪声引起的“负迁移”问题,因此对模型参数采取逐步微调法[15]。首先微调顶端网络层,在一个完整的迭代周期内更新所有未固定层的参数,下一步解冻下一个较低的固定层,重复上述操作直至更新所有层参数并收敛。
(3)受文献[16]的启发,微调目标模型整个网络的参数并尝试更改输出层结构,使其适应汉老双语平行语料。预训练通用模型时输出层采用余弦距离,损失函数使用均方误差损失(MSE)函数;训练目标模型时输出层使用曼哈顿距离,损失函数为交叉熵函数。
基于迁移学习的模型结构如图3所示。
图3 基于迁移学习的模型结构
3 实验
3.1 语料预处理
本文实验语料有两部分:一是英语汉语平行语料(400 000对句子)和英汉双语非平行语料(800 000 对句子)构成通用模型数据集,该语料由联合国会议文件组成[17],选择英汉双语语料是因为英语、汉语作为大规模的双语平行语料容易获取,其次,老挝语也吸收了许多英语、汉语词汇,有助于目标模型学习基础语言特征,提高计算准确率。二是汉老双语平行语料(25 681对句子)和汉老双语非平行语料(51 362对句子)作为本文模型的数据集,其中平行语料从汉语、老挝语双语网站获取,经过人工对齐,由老挝语语言专家校对整理而成。实验过程中,将两部分语料按照训练集占80%、测试集占15%、交叉验证集占5%划分。为使相似度计算步骤的句子对规范化,对实验语料进行预处理:
(1)删除所有标点符号和句中无意义的符号,未登录词设置为0;
(2)句子长度设置为30,大于最大长度的句子切分为30,小于最大长度的用0填充;
(3)根据双语文本中不同的日期表示方法转换为对应日期的阿拉伯数字,并将句中出现特有计数单位的情况根据数值大小统一转换为阿拉伯数字的表示形式;
(4)对双语平行语料(标准集)和非平行语料(噪声集)做相似性标记处理,标准集标签为1,噪声集标签为0;模型的输入为三元组(x1,x2,y)组成,其中x1和x2是双语句对序列,y∈{0,1}为相似性标签,表示x1和x2是否相似。
(5)句子序列标记包括分词和词性标注,老挝语句子序列由本实验室开发的自然语言工具包LaoWS和LaoPST[18]完成,英语句子序列由自然语言工具包NLTK[19]完成,汉语句子序列由自然语言工具包jieba[20]完成;
(6)对已标记的双语文本,使用GloVe模型分别训练词向量。
3.2 超参数设置
本文实验环境采用Python语言和TensorFlow深度学习框架,经过多次实验调参,本文在通用数据集(英汉平行语料)上训练所得的参数为目标模型参数初始值,训练通用模型的超参数设置如表3所示。
表3 模型超参数
其中,Embedding_dim是词向量维度;N_hidden是LSTM隐藏神经元个数;The Num_layer of BiLSTM是孪生网络中BiLSTM的层数;LR是学习率,本文采用Adam优化算法训练模型。汉老双语句子相似度计算采用准确率P(Precision)、召回率R(recall)和F1值作为评价指标,以F1值为主要参考指标。
3.3 实验结果分析
为验证汉老双语句子相似度计算任务的实验性能,考虑超参数的影响,本文设计了三组实验:①迁移学习方法的性能实验;②不同特征的有效性实验;③不同相似度计算方法的对比实验。
3.3.1 迁移学习方法的性能实验
根据2.5节的策略设计5个迁移学习对比实验:①不使用迁移学习方法,随机初始化参数训练目标模型,目标模型采用与通用模型相同的网络结构(SelfAT-BiLSTM),记作FT1;②采用通用模型参数初始化目标模型,固定底层参数,只微调输出层参数,记作FT2;③采用通用模型参数初始化目标模型,逐层微调所有网络层参数,目标模型和通用模型结构相同,输出层为“曼哈顿距离+交叉熵损失函数”,记作FT3;④更改输出层结构,通用模型的输出层使用“曼哈顿距离+交叉熵损失函数”,目标模型输出层采用“余弦距离+均方误差(MSE)损失函数”,记作FT4;⑤预训练通用模型的输出层使用“余弦距离+MSE损失函数”,训练目标模型时输出层使用“曼哈顿距离+交叉熵损失函数”,记作FT5。实验结果如表4所示。
表4 不同迁移方法的实验结果
由表4可知,方法FT2较FT1的F1值提升了1.34%,表明通用模型参数对目标模型的性能提升有效,但效果依然不好。分析原因可知,固定BiLSTM层以下的参数,使得可训练参数变少,模型容易很快收敛,受源数据影响较大,因此采用方法FT3改善通用模型负迁移问题。对比方法FT3、FT4和FT5,FT4较FT3的F1值提高了0.18%,说明通过更改输出层结构,使用不同的损失函数,可以提升模型计算精度,但效果不明显;而FT5较FT4的F1值提高了1.10%,说明使用“曼哈顿距离+交叉熵损失函数”更能有效地计算汉老双语句子相似度,表明迁移学习方法的有效性。
3.3.2 不同特征的有效性实验
本文将汉语、老挝语的文本特征应用于双语句子相似度计算模型,为验证特征对提升模型性能的有效性,在汉老双语平行语料上进行相关实验:将只使用词向量的模型特征记作FW,使用词性特征的记作Fp,使用数字特征的记作FN。表5是使用不同特征时对应的实验结果。
表5 使用不同特征的实验结果
由表5可知,将使用词向量的模型特征FW作为标准特征,模型融入汉语、老挝语匹配特征后,F1值得到提升。词向量融合词性特征Fp相较于标准特征表现较差,仅提升0.09%,说明加入词性特征后对句子相似度计算贡献率不高,特别在识别长句式的老挝语、汉语句子对时匹配程度不高,不宜作为单一特征使用。词向量融合数字特征FN使F1值提升了0.48%,表明数字特征在平行语料中出现概率较高,相对顺序基本一致,在句子相似度计算中区分作用明显。词向量融合词性特征和数字特征使F1值提升了1.34%,词性特征包含了浅层的位置特征信息,配合数字特征使模型学到更多的句子结构信息,进一步提高句子相似度计算精度。
3.3.3 不同相似度计算方法的对比实验
在相似度计算方法的对比实验中,使用了4种参照模型:①LSTM基础模型[3](Word Embedding+LSTM+曼哈顿距离);②ABCNN(Attention-based CNN)模型[3],使用双层CNN,对输入句子对做卷积操作,并经过Attention层对获取的深层次抽象特征按不同权重匹配,最后由逻辑层输出相似度结果;③BiLSTM模型是对模型(1)的改进,使用BiLSTM结构并在BiLSTM层输出结果后加入Self -Attention,以得到隐式句子表示对之间的关系;④使用双向多角度匹配的BiMPM模型[6],最大的特点是利用多维度匹配方法,获取两个句子细粒度的相关信息。各参照模型在相同语料(汉老双语平行语料)和相同超参数的基础上对比验证本文模型的有效性,实验结果如表6所示。
表6 各模型的对比结果
由表6可知,特征提取层使用卷积神经网络的ABCNN模型相比LSTM的F1值提升了5.76%,但ABCNN模型只能提取句子局部特征和有限的上下文特征,计算准确率不高。同样使用Attention机制而没有使用迁移学习的SelfAT -BiLSTM 模型比ABCNN模型的F1值高3.73%,其优点在于提取句子上下文特征时结合自注意力机制获取因句子长度而丢失的重要特征。BiMPM模型比SelfAT -BiLSTM 模型的F1值提升了1.12%,虽然前者从不同层次、不同粒度对句子对进行匹配,使匹配范围更大,但也导致模型参数过多,使得模型收敛困难。本文模型在SelfAT -BiLSTM 模型的基础上,融合汉语、老挝语文本特征并将迁移学习和深度学习方法相结合,相比于上述参照模型效果最好,其原因大致有两点:一是模型融合汉语、老挝语文本特征,丰富句子语义表示,模型计算准确率得到有效提升。二是预训练通用模型,获取通用语言特征,通过微调策略使其自适应汉老双语语料,解决了小数据集导致的神经网络性能不足的问题。
4 总结
本文针对汉老双语句子相似度计算研究中平行语料稀疏以及汉语、老挝语在语义表达、句子结构上差异较大的问题,提出了融合文本特征的汉老双语句子相似度计算方法。通过在句子相似度模型中将汉语、老挝语的词性、数字共现等文本特征与GloVe预训练词向量融合,丰富句子特征,提升模型计算准确率。本文对比了各个特征在模型中的表现,综合来看:单一特征提升效果不明显,而使用组合特征能够使模型性能得到有效提升。其次,采用迁移学习的方法构建句子相似度模型,并使用不同的微调参策略能够增强模型的泛化能力,有效解决了汉老双语平行语料稀疏导致神经网络性能不足的问题。实验结果表明,本文所提出的汉老双语句子相似度计算方法具有较好的实验性能。
本文提出的方法还存在进一步完善的空间,在汉老双语句子相似度任务中,通过挖掘老挝语句法、语义角色、语法关系等不同的特征融入模型,以提升模型识别精度,并尝试多任务学习,在相似度任务中加入老挝语命名实体识别辅助任务以提升模型对未登录词的识别能力;另一方面,可以尝试将本文提出的方法应用于汉老双语专业术语(军事、医疗、法律等)领域。