19

Deep Learning for Human Language Processing_Intro

 3 years ago
source link: https://www.wmathor.com/index.php/archives/1458/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

HLP研究的内容

Human Language Processing研究的内容根据输入输出的不同,可以分为如下6种

zymMfa6.png!web

从左到右,从上到下依次是

  • ASR(Speech2Text)
  • TTS(Text2Speech)
  • Voice Conversion(Speech2Speech)
  • Translation、Chat-Bot、Summarization、QA(Text2Text)
  • Speaker Recognition(Speech2Class)
  • Sentiment Analysis(Text2Class)

Speech2Text

语音转文字最典型的应用就是语音识别(Speech Reconition),也叫做Automatic Speech Recognition,简称ASR。早期的语音识别,往往采用基于HMM模型的算法,加上声学模型(Acoustic Model),语言模型(Language Model)和 词典(Lexicon)。虽然经过多年的研究,效果不错,但是算法流程复杂,模型很大,难以适应目前物联网发展中嵌入式AI对语音识别性能的要求

Z3AjAnV.png!web

随着深度学习的发展以及轻量网络模型的推陈出新,现在的ASR往往是采用Seq2Seq方法,训练一个模型直接end-to-end得到最终结果。流程简单,效果逐年提升,而且模型可以做得很小,使得能够放置到手机、智能家居或者是物联网设备中

nqu2qm2.png!web

世界上的语言有5000多种,每种语言都可以拿来做语音识别。 因此按照语言的不同,又可以分为中文语音识别(Chinese ASR)、英文语音识别(English ASR)、西班牙语识别(Spanish ASR)等等。这些语言的差异,在于组成语句的颗粒不一样:比如中文由4000+个汉字组成,汉字是组成句子的最小单位。英文的最小单位为26个英文字母,字母组成单词,单词组合成句子。当然,我们也可以做一个通用的语音识别系统,即输入任何一句话,他都要能输出对应的文本,这就是通用语音识别(General ASR)所追求的目标,不过目前看来,要实现这个目标,还为时尚早

Text2Speech

文字转语音最常见的应用就是语音合成(Text-to-Speech Synthesis)。这样的应用在生活中比比皆是。一个能够和人类互动的robot,既要能够听懂人类说的话(ASR), 也要能够说出人类能够听得懂的话(TTS)。 中间Text到Text处理的过程就是自然语言处理(NLP)

现在做语音合成,也是采用Seq2Seq模型,和语音识别在模型的选择上并没有本质的不同,依然是深度学习end-to-end硬train一发,就完事了

NzIRny6.png!web

Speech2Speech

该类任务有以下3种典型的应用场景

  • Speech Denosing:语音去噪。将语音中的噪声部分去除,保留比较干净的信息
  • Speech Separation:典型的场景如嘈杂的环境中有多人同时说话,通过语音分离,将每个人说的话,分别提取出来

uqamUnF.png!web

  • Voice Conversion:声音转换,例如柯南的变声器

Speech2Class

输入一段语音信号,输出一个类别。该类任务有以下三种典型的应用

  • Speaker Recognition:语音识别,即依据你说话的声音来判断是不是同一个人,或者是哪一个人。类似于Face Recognition,主要用在门禁、身份认证等领域
  • Keyword Spotting:关键词检测,通常用在工业控制或者智能家居中;需要检测出语音中是否含有预先定义的几个关键词,如智能音响需要能够检测出turn on/turn off/volumn up/volumn down等少数几个关键词
  • WakeUp words detect:一种特殊的Keyword Spotting的情形, 只需要判断语句中是否含有预先定义的唤醒词, 如“hey Siri”,"Alexa", "OK Google"

ymQVRnm.png!web

Text2Text

这类任务就是NLP主要研究的领域,应用的方向非常之多。输出的内容含义不同,就可以实现不同的功能

Y3eYbu7.png!web

可以看到,这类任务的应用包括自动翻译、文本摘要、聊天机器人、阅读理解、智能问答等等,甚至可以做语法剖析、词性标注; 虽然任务种类很多,但要说到模型选择,依然是那个你最熟悉的Seq2Seq Model

Text2Class

这类任务的应用也非常广泛,举例如下

  • 垃圾邮件分类
  • 情感分析
  • 文章主题分类

各类任务之间有什么联系?

可以看到,任务之间有相互对应的关系,比如Text2Speech和Speech2Text就是一对互相关联的任务。当Word2Vec诞生之后,以及各种各样Pre-trained Model的出现,使得Text和Speech在表达形式上达成了统一,都可以看作是二维matrix. 因此,抛开信号在客观世界中的表现形式,所有的任务其实都是Matrix2Matrix之间的转化,都可以采用Seq2Seq的supervised model来处理

另外,对于输入为Text的三类任务,Pretrained-Model使得输入的处理变得规范统一,BERT家族的兴旺正是对于Word2Vec思想发扬光大,追求更好的单词向量表示的明证

feqUZjj.png!web

而对于输出为Text的两类任务,在词语输出的顺序上研究人员存在分歧,这也导致出现了两类方法,Autogressive和Non-autoregressive。比方说下面的例子,非自回归会觉得应该先生成这个句子最重要的部分,也就是"dream"这个单词,然后模型会考虑谁是"dream"的主体,因此会生成"I",之后模型会考虑"I"和"dream"之间的关系是什么,因此会生成"have",最后模型考虑我有几个梦想?因此就会输出"a"

MR7bemz.png!web

HLP领域还有哪些值得研究的课题

Unsupervised Learning

实际应用中,采用监督学习的方法,收集已经标注好的数据往往是非常困难的,因此是否可以从中进行学习是一个非常有价值的研究方向

YfIRvm7.png!web

以Voice Conversion为例:假如采用监督学习的思路,用Seq2Seq模型来进行处理,我们需要获取SpeakA和SpeakB 关于同一个text的speech,但实际上我们难以获取到这样的输入对。我们能采集到的是Speak A的语音集合和Speak B的语音集合, 这两个集合之间并没有一对一的对应关系

Few Shot Learning / One Shot Learning

同样以Voice Conversion为例,如果我们在实际生活中,只能获取到Speaker A或者是Speaker B很少的语音信息,甚至只有一条语音记录,那又该如何处理

Adversarial Attack

Adversarial Attack在图像领域非常常见,最有名的就是GAN网络。而在HLP中,语音、文字也是可以做到的,举例来说:我们可以设计一个Discriminator判断一段声音是否是机器合成的

fAJ3Iju.png!web

系统鲁棒性的追求,与欺诈的对抗是一个永不过时、永不停歇的课题


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK