自然語(yǔ)言理解(Natural Language Understanding,NLU)是自然語(yǔ)言處理(Natural Language Processing,NLP)的一部分。自然語(yǔ)言理解的應(yīng)用主要有機(jī)器翻譯,機(jī)器客服以及智能音箱等。自然語(yǔ)言理解就是希望機(jī)器像人一樣,具備正常人的語(yǔ)言理解能力,由于自然語(yǔ)言在理解上有很多難點(diǎn),所以 NLU 的表現(xiàn)至今還不如人類(lèi)。
NLU主要有以下五個(gè)難點(diǎn):語(yǔ)言的多樣性、語(yǔ)言的歧義性、語(yǔ)言的魯棒性、語(yǔ)言的知識(shí)依賴(lài)、語(yǔ)言的上下文。自然語(yǔ)言理解跟整個(gè)人工智能的發(fā)展歷史類(lèi)似,一共經(jīng)歷了3次迭代:基于規(guī)則的方法、基于統(tǒng)計(jì)的方法、基于深度學(xué)習(xí)的方法
深度學(xué)習(xí)方法在各項(xiàng)指標(biāo)上都超越了之前的方法,獲得了更好的結(jié)果。其中比較有代表性的工作是卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)【1】以及循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)【2】。CNN雖然在NLP中有所作用,但是NLP并非它擅長(zhǎng)的領(lǐng)域,它在計(jì)算機(jī)視覺(jué)領(lǐng)域取得了更為矚目的成果。相比之下,RNN在設(shè)計(jì)之初就是被用來(lái)處理時(shí)序列數(shù)據(jù),非常契合NLP的數(shù)據(jù)結(jié)構(gòu)。在RNN的基礎(chǔ)上,近些年來(lái)涌現(xiàn)了非常多的自然語(yǔ)言處理模型,且NLU大部分的進(jìn)展都與模型的進(jìn)步掛鉤。
RNN容易受到短期記憶的影響。如果序列很長(zhǎng),它很難將信息從較早的時(shí)間步傳送到后面的時(shí)間步。因此,如果嘗試通過(guò)一段文本進(jìn)行預(yù)測(cè),RNN可能會(huì)遺漏開(kāi)頭的重要信息。為了解決這個(gè)問(wèn)題,作為RNN分支下的改進(jìn)版,Long-Short Term Memory(LSTM)【3】和Gated Recurrent Unit(GRU)【4】都利用了門(mén)單元結(jié)構(gòu)拓展了RNN每個(gè)節(jié)點(diǎn)的功能,使得模型在更長(zhǎng)的文本距離上有足夠的記憶能力。
在之后的科研過(guò)程中,人們發(fā)現(xiàn),在自然語(yǔ)言模型中加入注意力機(jī)制【5】能有效提高模型的性能。注意力機(jī)制的本質(zhì)來(lái)自于人類(lèi)視覺(jué)注意力機(jī)制。人們視覺(jué)在感知東西的時(shí)候一般不會(huì)是一個(gè)場(chǎng)景從到頭看到尾每次全部都看,而往往是根據(jù)需求觀察注意特定的一部分。而且當(dāng)人們發(fā)現(xiàn)一個(gè)場(chǎng)景經(jīng)常在某部分出現(xiàn)自己想觀察的東西時(shí),人們會(huì)進(jìn)行學(xué)習(xí)在將來(lái)再出現(xiàn)類(lèi)似場(chǎng)景時(shí)把注意力放到該部分上。
注意力機(jī)制初始是在編碼器-解碼器結(jié)構(gòu)下用于神經(jīng)機(jī)器翻譯的一種結(jié)構(gòu),目前它已經(jīng)非??焖俚?cái)U(kuò)展到了其它相關(guān)任務(wù),例如圖像描述和文本摘要等。注意力機(jī)制的巔峰之作是Google于2017年提出的Transformer【6】模型架構(gòu)。Transformer在語(yǔ)義特征提取能力,
長(zhǎng)距離特征捕獲能力(比如主謂一致),任務(wù)綜合特征抽取能力(比如機(jī)器翻譯),并行計(jì)算能力及運(yùn)行效率等方面都要優(yōu)于RNN。從此,基于Transformer架構(gòu)提出的新型架構(gòu)層出不窮,把計(jì)算機(jī)處理NLP相關(guān)任務(wù)的水平提高了一個(gè)層次。
其中最為著名的架構(gòu)是Bidirectional Encoder Representation from Transformers(BERT)【7】和Generative Pre-Training(GPT)【8】。BERT幾乎適用于各項(xiàng)NLU任務(wù),而GPT主要用于閱讀理解、句子或段落生成等任務(wù)。
在BERT的基礎(chǔ)上,百度提出的ERNIE模型【9】改進(jìn)了BERT在中文NLP任務(wù)中表現(xiàn)不夠好的缺陷。在BERT預(yù)訓(xùn)練語(yǔ)言模型中,它很少考慮知識(shí)信息,即知識(shí)圖譜。知識(shí)圖譜能夠提供豐富的結(jié)構(gòu)化知識(shí)事實(shí),以便進(jìn)行更好的知識(shí)理解。因此清華大學(xué)提出了ERNIE【10】來(lái)改進(jìn)BERT在知識(shí)驅(qū)動(dòng)型任務(wù)上的表現(xiàn)。MASS【11】和UNILM【12】改進(jìn)了BERT在自然語(yǔ)言生成任務(wù)(Natural Language Generation)上的表現(xiàn)。還有SpanBert【13】,RoBERTa【14】,ALBert【15】,Electra【16】和DistillBert【17】都在各個(gè)角度對(duì)BERT進(jìn)行了改進(jìn)。
為了衡量各個(gè)模型在NLU任務(wù)上的表現(xiàn),有一個(gè)公開(kāi)的Benchmark,通用語(yǔ)言理解評(píng)估基準(zhǔn)(General Language Understanding Evaluation ,GLUE)【18】。GLUE Benchmark比賽排名是衡量自然語(yǔ)言理解技術(shù)水平的重要指標(biāo)。比賽設(shè)置了自然語(yǔ)言推斷、語(yǔ)義相似度、問(wèn)答匹配、情感分析等9項(xiàng)任務(wù),最后按平均分綜合排名。目前GLUE上表現(xiàn)最好的是阿里巴巴的團(tuán)隊(duì)所提出的模型StructBERT【19】。
Reference:
【1】 Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.
【2】 Mikolov T, Karafiát M, Burget L, et al. Recurrent neural network based language model[C]//Eleventh annual conference of the international speech communication association. 2010.
【3】 Hochreiter S, Schmidhuber J. Long short-term memory[J]. Neural computation, 1997, 9(8): 1735-1780.
【4】 Cho K, Van Merri?nboer B, Gulcehre C, et al. Learning phrase representations using RNN encoder-decoder for statistical machine translation[J]. arXiv preprint arXiv:1406.1078, 2014.
【5】 Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[J]. arXiv preprint arXiv:1409.0473, 2014.
【6】 Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.
【7】 Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint arXiv:1810.04805, 2018.
【8】 Radford A, Narasimhan K, Salimans T, et al. Improving language understanding by generative pre-training[J]. URL https://s3-us-west-2. amazonaws. com/openai-assets/researchcovers/languageunsupervised/language understanding paper. pdf, 2018.
【9】 Sun Y, Wang S, Li Y, et al. Ernie: Enhanced representation through knowledge integration[J]. arXiv preprint arXiv:1904.09223, 2019.
【10】 Zhang Z, Han X, Liu Z, et al. ERNIE: Enhanced language representation with informative entities[J]. arXiv preprint arXiv:1905.07129, 2019.
【11】 Song K, Tan X, Qin T, et al. Mass: Masked sequence to sequence pre-training for language generation[J]. arXiv preprint arXiv:1905.02450, 2019.
【12】 Dong L, Yang N, Wang W, et al. Unified language model pre-training for natural language understanding and generation[C]//Advances in Neural Information Processing Systems. 2019: 13042-13054.
【13】 Joshi M, Chen D, Liu Y, et al. Spanbert: Improving pre-training by representing and predicting spans[J]. arXiv preprint arXiv:1907.10529, 2019.
【14】 Liu Y, Ott M, Goyal N, et al. Roberta: A robustly optimized bert pretraining approach[J]. arXiv preprint arXiv:1907.11692, 2019.
【15】 Lan Z, Chen M, Goodman S, et al. Albert: A lite bert for self-supervised learning of language representations[J]. arXiv preprint arXiv:1909.11942, 2019.
【16】 Clark K, Luong M T, Le Q V, et al. ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators[C]//International Conference on Learning Representations. 2019.
【17】 Sanh V, Debut L, Chaumond J, et al. DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter[J]. arXiv preprint arXiv:1910.01108, 2019.
【18】 https://gluebenchmark.com/
【19】 Wang W, Bi B, Yan M, et al. StructBERT: Incorporating Language Structures into Pre-training for Deep Language Understanding[J]. arXiv preprint arXiv:1908.04577, 2019.