复旦大学邱锡鹏教授:词法、句法分析研究进展综述
本文為第十六屆自然語言處理青年學(xué)者研討會(huì) YSSNLP2019 報(bào)告《詞法、句法分析研究進(jìn)展綜述》的簡(jiǎn)要文字整理,本報(bào)告主要回顧詞法、句法領(lǐng)域的最新研究進(jìn)展。
?
關(guān)于報(bào)告人:
邱錫鵬,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院副教授,博士生導(dǎo)師。于復(fù)旦大學(xué)獲得理學(xué)學(xué)士和博士學(xué)位。主要從事自然語言處理、深度學(xué)習(xí)等方向的研究,在 ACL、EMNLP、IJCAI 等計(jì)算機(jī)學(xué)會(huì) A/B 類期刊、會(huì)議上發(fā)表 50 余篇學(xué)術(shù)論文,引用 1600 余次。開源中文自然語言處理工具 FudanNLP 作者。2015 年入選首屆中國(guó)科協(xié)人才托舉工程,2017 年 ACL 杰出論文獎(jiǎng),2018 年獲中國(guó)中文信息學(xué)會(huì)“錢偉長(zhǎng)中文信息處理科學(xué)技術(shù)獎(jiǎng)—漢王青年創(chuàng)新獎(jiǎng)”。
大家好,我是邱錫鵬。今天非常榮幸給大家簡(jiǎn)要分享一下 NLP 中詞法和句法分析領(lǐng)域的最新研究進(jìn)展。
首先,我們來看一下詞法和句法分析中的任務(wù)定義。我們一般認(rèn)為詞是語言中的最小語義單位,所以在進(jìn)行后續(xù)的很多 NLP 任務(wù)的時(shí)候,需要先進(jìn)行(中文)分詞,標(biāo)注它的詞性,并分析句子的句法結(jié)構(gòu)。像這里給的一個(gè)句子“上海計(jì)劃發(fā)展金融業(yè)”,首先需要將其進(jìn)行分詞,然后進(jìn)行詞性標(biāo)注和句法分析。這里我們的句法分析主要以依存句法分析為主進(jìn)行介紹,建立詞與詞之間的依賴關(guān)系。因此我們這里主要涉及三個(gè)任務(wù):中文分詞,詞性標(biāo)注和依存句法分析。
目前用來解決這三個(gè)任務(wù)的基本方法可以分為序列標(biāo)注方法,基于轉(zhuǎn)移的方法和基于圖的方法三種。為了解決錯(cuò)誤傳播問題,一般來說,我們可以將這三個(gè)任務(wù)進(jìn)行聯(lián)合建模,比如中文分詞和詞性標(biāo)注的聯(lián)合模型、詞性標(biāo)注和句法分析的聯(lián)合模型、以及三個(gè)任務(wù)的全聯(lián)合模型。
這三個(gè)任務(wù)的最新研究進(jìn)展和 SOTA 模型都可以從 NLP-Progress 這個(gè)網(wǎng)站進(jìn)行查詢。
中文分詞
首先我們來看一下中文分詞。?
目前中文分詞最好的模型是來自 EMNLP 2018 的一篇論文,采用了基于堆疊雙向長(zhǎng)短期記憶網(wǎng)絡(luò)的序列標(biāo)注模型。
該方法雖然在模型上并沒有太多的創(chuàng)新,但是其采用了預(yù)訓(xùn)練 bigram embedding 和變分 droupout 方法以及堆疊雙向長(zhǎng)短期記憶網(wǎng)絡(luò)的微創(chuàng)新,訓(xùn)練了一個(gè)相對(duì)較深的網(wǎng)絡(luò),在解碼時(shí)直接使用一個(gè) softmax 分類器,而不用 CRF。在多個(gè)數(shù)據(jù)集上達(dá)到了最好的效果。
基于序列標(biāo)注的方法是給字進(jìn)行打標(biāo)簽,很難利用到詞級(jí)別的信息。為了引入詞級(jí)別的信息可以采用以下三種方法:基于轉(zhuǎn)移的方法、Semi-CRF 和 DAG-LSTM/Lattice-LSTM。下面我分別簡(jiǎn)要介紹一下這三種方法。
基于轉(zhuǎn)移的方法是通過轉(zhuǎn)移動(dòng)作序列來進(jìn)行分詞,即從左往右判斷一個(gè)每?jī)蓚€(gè)相鄰的字是分還是不分。這是一種貪婪的方法。在中間某一步時(shí),我們已經(jīng)有之前分好詞的信息,所以可以利用詞級(jí)別的信息來進(jìn)行建模。
第二種利用詞級(jí)別信息的方法是利用 Semi-CRF 模型,直接建模不同詞之間的依賴關(guān)系。一般來講,可以先統(tǒng)一通過一個(gè)雙向的循環(huán)神經(jīng)網(wǎng)絡(luò)來提取字別的信息,然后使用一個(gè)融合方法來生成詞級(jí)別的信息,最后輸入 Semi-CRF 層來進(jìn)行分詞。Semi-CRF 的缺點(diǎn)是候選詞有一個(gè)最大長(zhǎng)度限制,我們提出了一種改進(jìn)方法,目前正在投稿中。
第三種利用詞級(jí)別信息的方法是是改進(jìn) LSTM 模型,將鏈?zhǔn)浇Y(jié)構(gòu)擴(kuò)展到 DAG 結(jié)構(gòu)。我們可以用一個(gè)事先準(zhǔn)備好的詞典,對(duì)句子進(jìn)行預(yù)分割,把所有的分割可能性都組合出來。這樣我們模型的輸入是有多個(gè)字和詞構(gòu)成的混合序列,構(gòu)成一個(gè) DAG 結(jié)構(gòu)。針對(duì)這種結(jié)構(gòu),我們提出一種 DAG-LSTM 來進(jìn)行序列標(biāo)注。
在中文分詞中,有一個(gè)問題是很多不同的分詞標(biāo)準(zhǔn)。之前的方法都是在單個(gè)標(biāo)準(zhǔn)上進(jìn)行訓(xùn)練模型。我們知道,不同的分詞標(biāo)準(zhǔn)之間有很多共通的特性。如這個(gè)表中所示,三個(gè)不同標(biāo)準(zhǔn)存在部分重疊,因此我們可以同時(shí)利用多個(gè)不同標(biāo)準(zhǔn)的數(shù)據(jù)進(jìn)行聯(lián)合訓(xùn)練,通過多任務(wù)學(xué)習(xí)來輔助提高每個(gè)單獨(dú)標(biāo)準(zhǔn)的分詞能力。
這里介紹一個(gè)我們?cè)诙鄻?biāo)準(zhǔn)分詞上面的最新工作,所有不同的標(biāo)準(zhǔn)都共享一個(gè)模型,由于 Transformer 的強(qiáng)大能力,我們用一個(gè)共享的 Transformer 來進(jìn)行編碼,解碼用一個(gè)共享的 MLP 或 CRF。然后增加一個(gè)額外的 Criterion ID,用來指示模型輸出哪個(gè)標(biāo)準(zhǔn)的結(jié)果。目前這個(gè)模型在所有的分詞任務(wù)上都達(dá)到了最好的效果。
詞性標(biāo)注
詞性標(biāo)注一般來講比較簡(jiǎn)單,所以很少有單獨(dú)工作來專門的詞性標(biāo)注任務(wù)。一般都是詞性標(biāo)注和其他任務(wù)相結(jié)合。首先我們來看一下聯(lián)合的中文分詞和詞性標(biāo)注任務(wù)。
第一種方法是基于字的序列標(biāo)注方法,使用“BMES”和詞性的交叉標(biāo)簽來給每個(gè)字打標(biāo)簽。比如“B-NN”、“S-NR”等。相比于中文分詞,分詞和詞性的聯(lián)合任務(wù)需要更多的特征,因此我們可以用更復(fù)雜的網(wǎng)絡(luò)來進(jìn)行抽取特征。
第二種方法是基于轉(zhuǎn)移的方法,首先利用一個(gè) BiLSTM 編碼器來提取上下文特征,在解碼時(shí)每一步都預(yù)測(cè)一個(gè)動(dòng)作。動(dòng)作的候選集合為是否分詞以及詞性。
依存句法分析
接下來介紹下句法分析的最新進(jìn)展,這里主要以依存句法分析為主。在深度學(xué)習(xí)之前,依存句法分析就分為基于轉(zhuǎn)移的方法和基于圖的方法。近幾年,分別出現(xiàn)了針對(duì)這兩種不同方法的神經(jīng)網(wǎng)絡(luò)模型。
首先來看下基于轉(zhuǎn)移的方法,通過 shift-reduce 兩個(gè)基本的動(dòng)作來將序列轉(zhuǎn)換為樹結(jié)構(gòu)。首先用一個(gè) buffer 來存儲(chǔ)所有未處理的輸入句子,并用一個(gè)棧來存儲(chǔ)當(dāng)前的分析狀態(tài)。
動(dòng)作可以分為:1)shift,即將 buffer 中的一個(gè)詞移到棧中;2)left_arc(x),即棧頂兩個(gè)詞 a,b 為 a<-b 的依賴關(guān)系,關(guān)系種類為 x;3)right_arc(x),即棧頂兩個(gè)詞 a,b 為 a->b 的依賴關(guān)系,關(guān)系種類為 x。后兩種動(dòng)作為 reduce 動(dòng)作。
目前基于轉(zhuǎn)移的方法的最好模型是 Stack LSTM,通過三個(gè) LSTM 來分別建模棧狀態(tài)、待輸入序列和動(dòng)作序列。 其中因?yàn)闂P枰霔:统鰲?#xff0c;因此作者提出了一個(gè) Stack LSTM 來建模棧狀態(tài)。
雖然基于 Stack LSTM 取得了非常好的效果,但是在目前的依存句法分析中,最流行的方法是基于圖的方法經(jīng)典的方法是 Biaffine 模型。直接用神經(jīng)網(wǎng)絡(luò)來預(yù)測(cè)每?jī)蓚€(gè)詞之間存在依存關(guān)系的概率,這樣我們就得到一個(gè)全連接圖,圖上每個(gè)邊代表了節(jié)點(diǎn) a 指向節(jié)點(diǎn) b 的概率。然后使用MST等方法來來將圖轉(zhuǎn)換為一棵樹。
Biaffine 模型其實(shí)和我們目前全連接自注意力模型非常類似。Biaffine 模型十分簡(jiǎn)單,并且容易理解,并且在很多數(shù)據(jù)集上都取得了目前最好的結(jié)果。
除模型外,目前依存句法分析主要關(guān)注于多語言的依存通用依存分析。目前一個(gè)數(shù)據(jù)集是 universal dependenies,其中有很多問題值得研究,比如多任務(wù)學(xué)習(xí)、遷移學(xué)習(xí)、通用語言表示等。
詞性標(biāo)注 & 句法分析
很自然地我們可以將詞性標(biāo)注和句法分析作為聯(lián)合任務(wù)來進(jìn)行建模。
聯(lián)合的詞性標(biāo)注和句法分析方法有很多,可以是基于轉(zhuǎn)移的方法也可以是基于圖的方法。這里介紹一種比較簡(jiǎn)單的方法,首先利用 LSTM 來預(yù)測(cè)詞性,然后用詞性信息和詞信息一起用另外一個(gè) LSTM 進(jìn)行建模,并用 Biaffine 模型進(jìn)行句法分析。
中文分詞 & 句法分析
在中文方面,句法分析是基于詞級(jí)別的,所以在做句法分析之前要先進(jìn)行分詞。那么我們是不是可以將中文分詞和句法分析也作為一個(gè)聯(lián)合任務(wù)來同時(shí)進(jìn)行呢?
我們提出了一個(gè)基于圖方法的統(tǒng)一模型來同時(shí)解決中文分詞和句法分析問題。其實(shí)方法很簡(jiǎn)單,只需要將詞內(nèi)部的字之間加上一個(gè)特殊的依賴關(guān)系“app”,然后將詞級(jí)別的依存關(guān)系轉(zhuǎn)換為字級(jí)別的依存關(guān)系。并且用 biaffine 模型來進(jìn)行同時(shí)預(yù)測(cè)。
這就是具體的模型結(jié)構(gòu),和 biaffine 模型類似。
fastNLP
最后,上面的模型都將在 fastNLP 中進(jìn)行實(shí)現(xiàn),這里簡(jiǎn)單介紹下我們最近的一個(gè)工作,基于深度學(xué)習(xí)的自然語言處理平臺(tái) FastNLP。
我們希望做到具有 Spacy 的易用性,AllenNLP 模塊化以及 AutoML 自動(dòng)模型選擇。
FastNLP 是一個(gè)模塊化可擴(kuò)展的 NLP 框架,提供大量的預(yù)訓(xùn)練模型,可以使大家在五分鐘內(nèi)實(shí)現(xiàn) SOTA 模型。另外 NLP 中大量的時(shí)間都花在數(shù)據(jù)的預(yù)處理和數(shù)據(jù)轉(zhuǎn)換上面,FastNLP 提供了一種非常簡(jiǎn)單高效的數(shù)據(jù)預(yù)處理方法。面向我們科研工作者,FastNLP 也提供了非常方便的參數(shù)記錄以及實(shí)驗(yàn)過程可視化工具。
最后希望有興趣的老師、同學(xué)一起來參與開發(fā),謝謝。
點(diǎn)擊以下標(biāo)題查看更多往期內(nèi)容:?
用于視覺對(duì)話的多步雙重注意力模型
圖神經(jīng)網(wǎng)絡(luò)綜述:模型與應(yīng)用
基于小樣本學(xué)習(xí)的意圖識(shí)別冷啟動(dòng)
小樣本學(xué)習(xí)(Few-shot Learning)綜述
兩行代碼玩轉(zhuǎn) Google BERT 句向量詞向量
基于預(yù)訓(xùn)練自然語言生成的文本摘要方法
自然語言處理中的語言模型預(yù)訓(xùn)練方法
像搭積木一樣構(gòu)建NLP深度學(xué)習(xí)模型
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識(shí)的人。
總有一些你不認(rèn)識(shí)的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。
PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺(tái)上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得或技術(shù)干貨。我們的目的只有一個(gè),讓知識(shí)真正流動(dòng)起來。
??來稿標(biāo)準(zhǔn):
? 稿件確系個(gè)人原創(chuàng)作品,來稿需注明作者個(gè)人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?
? 如果文章并非首發(fā),請(qǐng)?jiān)谕陡鍟r(shí)提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會(huì)添加“原創(chuàng)”標(biāo)志
? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請(qǐng)單獨(dú)在附件中發(fā)送?
? 請(qǐng)留下即時(shí)聯(lián)系方式(微信或手機(jī)),以便我們?cè)诰庉嫲l(fā)布時(shí)和作者溝通
?
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁(yè)搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點(diǎn)擊 |?閱讀原文?| 獲取最新論文推薦
總結(jié)
以上是生活随笔為你收集整理的复旦大学邱锡鹏教授:词法、句法分析研究进展综述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3步理清Python数据分析关键点,新手
- 下一篇: CVPR 2019 | STGAN: 人