1 介绍
本文是2020.5.19上传ARXIV,可以说是比较新的。
口语语言处理,例如翻译、检索、摘要和理解,近年来取得了较大的成功,得益于“倾泻”架构。
该架构主要包含:ASR模块,将语音信号转化为文本形式,后面再接各种下游任务模块,这些模块在之前产生的文本上进行训练。
但是,设计一种端到端的方法一直以来都有很大的吸引力。原因在于:两类模块都是基于不同的标准来进行局部优化,而端到端方法可以从全局进行优化;并且,端到端方法可以从语音信号中获得一些潜在的信息,而这些信息往往没有在ASR处理后的文本中体现出来。
一些口语语言处理,例如翻译、检索、理解(意图识别和槽位填充)已经用到了端到端的思想,它们的模型输入通常是句子级。但口语问答(SQA,Spoken Question Answering)相比较以上任务更难。它的输入比上述任务更长,通常是段落级。
Audio word2vec是第一个尝试将声学单词转化为只包含声学信息的嵌入式向量。Speech2Vec试图模仿CBOW方式或skip-gram方式来提取语义特征。另外一些方法尝试将声学词与文本词的向量进行对齐。一些方法尝试利用BERT从声学信号中获得嵌入向量。这些方法可以从声学词向量中获得一些信息,但获得的信息的层次远不足以应付口语问答这类任务。
本文提出了SpeechBert用于处理端到端SQA任务,从语音信号和文本上进行预处理
假设用于训练的声学数据集包含了正确的转录,因此可以通过强制对齐将声学数据集切分为声学词(对应潜在词符号的语音信号)。
2 SpeechBERT
2.1 文本BERT预训练
用标准的BERT预训练。思路参考BERT原文,分为MLM和NSP两种任务。
2.2 初始声学-语义联合嵌入向量
给出训练的过程描述图如下。
采用LSTM作为编码器。
2.3 利用文本和语音数据进行MLM预训练
思路参考BERT。只是输入数据变为文本+语音数据。
2.4 问答任务上的微调
参考BERT
3 实验
数据集为spoken SQUAD,从原始SQUAD上得到的。相当于是把原来的文本数据用语音读了一遍,形成了声学数据。但比原来数据集少了一部分,因为这部分缺失的数据没有对应声学数据。
评估指标同样为EM和F1。
声学数据采用MFCC 39维,BERT隐含层维度为768。
代码基于pytorch。实际结果单独效果不如BERT,但是将本文模型和BERT集成起来,效果是目前最好的。F1值为71.75。