EMNLP 2021 | 正则表达式与神经网络的深度融合(续)
神經(jīng)網(wǎng)絡(luò)在自然語言處理的各項(xiàng)任務(wù)中獲得了成功, 在通過足夠多標(biāo)注數(shù)據(jù)的訓(xùn)練后, 神經(jīng)網(wǎng)絡(luò)往往有著很好的性能。但是由于在實(shí)際領(lǐng)域場景中高質(zhì)量標(biāo)注數(shù)據(jù)的缺失,以及大大小小特殊的需求,“規(guī)則”仍然扮演著重要的角色,因?yàn)橐?guī)則可以直接地、清晰地表達(dá)人們的知識和意圖。
近年來,越來越多的工作探索如何將規(guī)則(例如正則表達(dá)式、邏輯)和神經(jīng)網(wǎng)絡(luò)的優(yōu)勢互相結(jié)合。大部分的工作通過多任務(wù)學(xué)習(xí)(multi-task learning)、知識蒸餾(knowledge distillation)、融入規(guī)則特征等方式間接地融入規(guī)則的信息,這類方法簡單有效,但是規(guī)則和神經(jīng)網(wǎng)絡(luò)之間通常聯(lián)系不甚緊密。
本文介紹的工作屬于另一種方式,將正則表達(dá)式直接轉(zhuǎn)化成一個對應(yīng)的神經(jīng)網(wǎng)絡(luò),使得該神經(jīng)網(wǎng)絡(luò)不需要訓(xùn)練就有著和正則表達(dá)式系統(tǒng)相似的效果,同時,還可以通過標(biāo)注數(shù)據(jù)進(jìn)行訓(xùn)練以達(dá)到更好的性能。
正則表達(dá)式
正則表達(dá)式(regular expressions)是做字符識別、模式匹配的主要規(guī)則工具,可以被用于一些有明顯模式(pattern)的領(lǐng)域分類(如意圖分類)、領(lǐng)域標(biāo)注任務(wù)(如槽填充)。我們以 ATIS 數(shù)據(jù)集為例,如下圖所示:
1.1 意圖識別(Intent Detection)
“Show the flights from New York to Dallas” 這句話的意圖類別為“查詢航班信息(querying flights)”,給定一句話識別出其正確的意圖類別就是意圖分類任務(wù),是文本分類任務(wù)的一種。而我們可以用如下的正則表達(dá)式來識別意圖。
例如,我們可以使用下圖的正則表達(dá)式來識別“querying flights”的意圖。特殊符號 w 是 wildcard word 可以匹配任意詞,而“*”的意思是可以出現(xiàn)任意次。下面正則表達(dá)式的意思是,如果句子中出現(xiàn)了 show … flights … 這樣的語言結(jié)構(gòu),那么我們就認(rèn)為其意圖是“querying flight”。
1.2 語義槽填充(Slot Filling)
“Show the flights from New York to Dallas” 中含有兩個我們關(guān)心的語義槽,例如“New York”是“出發(fā)城市(fr.city)”, “Dallas” 是到達(dá)城市。槽填充任務(wù)的目的就是識別出句子中的語義槽,通常被建模成一種序列標(biāo)注任務(wù),用 BIO 的標(biāo)注方法,類似于命名體識別(Named Entity Recognition)。
我們可以用下圖的帶捕獲組的正則表達(dá)式來識別“出發(fā)城市(fr.city)”的語義槽。我們在 from 和 to 之間定義了捕獲組,該捕獲組的正則表達(dá)式匹配任意的 span,所以該正則表達(dá)式將出現(xiàn)在 from 和 to 之間的部分捕獲,并且標(biāo)注成 fr.city。
對于一些 pattern 比較清晰的領(lǐng)域數(shù)據(jù),我們可以對每個意圖、語義槽撰寫正則表達(dá)式,通過他們的匹配結(jié)果來確定句子的意圖類別以及句子中的語義槽。
正則表達(dá)式轉(zhuǎn)化為神經(jīng)網(wǎng)絡(luò)
我們在 EMNLP 2020 上發(fā)表的研究 Cold-Start and Interpretability:Turning Regular Expressions into Trainable Recurrent Neural Networks 將用作意圖分類的正則表達(dá)式轉(zhuǎn)化為可以訓(xùn)練的神經(jīng)網(wǎng)絡(luò),PaperWeekly 在此前也有過介紹:正則表達(dá)式與神經(jīng)網(wǎng)絡(luò)的深度融合。
論文標(biāo)題:?
Cold-Start and Interpretability: Turning Regular Expressions into Trainable Recurrent Neural Networks?
論文鏈接:
http://faculty.sist.shanghaitech.edu.cn/faculty/tukw/emnlp20reg.pdf
本文介紹將重點(diǎn)介紹我們發(fā)表于 EMNLP 2021 上的長文,“Neuralizing Regular Expressions for Slot Filling”,將用于語義槽填充的正則表達(dá)式轉(zhuǎn)化為可以訓(xùn)練的神經(jīng)網(wǎng)絡(luò)的方法。
論文標(biāo)題:
Neuralizing Regular Expressions for Slot Filling
論文鏈接:
https://aclanthology.org/2021.emnlp-main.747/
代碼鏈接:
https://github.com/jeffchy/RE2NN-SEQ
2.1 方法概覽:將用做槽填充任務(wù)的正則表達(dá)式轉(zhuǎn)化為神經(jīng)網(wǎng)絡(luò)
上圖展示了將正則表達(dá)式轉(zhuǎn)化為可以訓(xùn)練的神經(jīng)網(wǎng)絡(luò)的方法概覽。
首先我們將根據(jù)領(lǐng)域知識撰寫好的正則表達(dá)式轉(zhuǎn)化為等價的有限狀態(tài)轉(zhuǎn)換器(Finite-state Transducer, FST)。
之后我們將 FST 轉(zhuǎn)化為 i-FST(independent-FST),以減少表示 FST 的空間以及推斷的復(fù)雜度。
我們將 i-FST 的張量表示進(jìn)行張量秩分解,用分解后的矩陣來替代原先張量以減小 FST 推斷的時間復(fù)雜度。
我們提出、使用了一些不影響對于正則表達(dá)式近似的增強(qiáng)網(wǎng)絡(luò)表達(dá)能力的方法,包括融入外部詞向量,加入 tanh 非線性函數(shù)等,最終得到了我們的神經(jīng)網(wǎng)絡(luò) FSTRNN (Finite-State Transducer RNN)
2.2 正則表達(dá)式與有限狀態(tài)轉(zhuǎn)換器(Finite-state Transducer, FST)
任何帶捕獲組的正則表達(dá)式都可以被轉(zhuǎn)化為有限狀態(tài)轉(zhuǎn)換器(FST),FST 是有限狀態(tài)機(jī)的一種,下圖展示了用作 fr.city 的正則表達(dá)式以及它對應(yīng)的 FST。
FST 是有限狀態(tài)機(jī)的一種,以圖為例,FST 有起始狀態(tài) ,終止?fàn)顟B(tài) ,以及若干其他狀態(tài)。從起始狀態(tài)開始,FST 接受一個輸入序列(如句子),在狀態(tài)之間轉(zhuǎn)移,并且同時輸出一個輸出符號。例如,在讀句子 “Show flights from New York to Dallas” 時,t=3 時刻,剛讀完 from,我們在 FST 的 狀態(tài),接受“New”時,我們從 轉(zhuǎn)移到了 (因?yàn)? 接受 wildcard word),并且輸出了 B-fr.city。
我們可以發(fā)現(xiàn),圖中的正則表達(dá)式和 FST 是等價的。對于例子中的句子,正則表達(dá)式匹配了句子,并且將”New York”捕獲并且標(biāo)注為 fr.city。而 FST 在接受整個句子之后,在“New York”處輸出了 B-fr.city 和 I-fr.city。達(dá)到了同樣的標(biāo)注效果。對于該 FST 與 RE 在序列標(biāo)注上的等價性的嚴(yán)格的證明見 paper 論文。
2.3 FST的張量表示與i-FST
基于 FST 與正則表達(dá)式的等價性,我們下一步希望建模 FST 的運(yùn)行。直接表示 FST 至少需要一個四階的張量。我們輸入的詞表大小為 V,輸出的標(biāo)簽集合大小為 L,FST 的狀態(tài)數(shù)為 K,我們需要一個 VxLxKxK 的張量來表示 state 之間的轉(zhuǎn)移以及轉(zhuǎn)移時的輸入、輸出。這樣的空間復(fù)雜度以及參數(shù)量是我們無法接受的,因此我們提出將 FST 轉(zhuǎn)化為 i-FST。
如上圖所示,上半部分的 FST 可以被等價地轉(zhuǎn)化為下半部分的 i-FST。他們的主要區(qū)別是,給定 t 時刻到達(dá)的狀態(tài),i-FST 的輸出就已經(jīng)確定了(和上一個狀態(tài)以及輸入無關(guān))。而原本的 FST,給定了到達(dá)的狀態(tài),我們?nèi)匀恍枰蕾嚿弦粋€時刻的狀態(tài)以及輸入來確定輸出。舉例:在 i-FST 中,如果我們到達(dá)了狀態(tài) ,我們就確定了我們的輸出為 I-fr.city。而在 FST 中,若到達(dá)了 ,我們有兩種可能的輸出:I-fr.city, B-fr.city。
基于 i-FST 的條件獨(dú)立性,我們只需要用一個 VxKxK 的三階張量 T 來表示隨著輸入的狀態(tài)轉(zhuǎn)移,以及一個 KxL 的矩陣 O 來表示到達(dá)的狀態(tài)與輸出標(biāo)簽的對應(yīng)即可。我們還需要兩個 K 維的。
2.4 i-FST的運(yùn)行。
給定句子 以及 i-FST,直接找到最好的輸出序列 是 NP-Hard 的。因此我們使用近似算法:對于每個位置 t,找到最可能的 。我們可以基于 Variable Elimination,使用和隱馬爾可夫模型的向前向后前向后向算法(forward-backward algorithm)類似的方法來進(jìn)行每個時刻 的推斷。
我們向前循環(huán)地計算 forward score ,并且向后循環(huán)地計算 backward score 。通過他們的相乘來得到每個時刻每個狀態(tài)的分?jǐn)?shù)。并且乘以矩陣 O 以得到每個時刻每個輸出標(biāo)簽的分?jǐn)?shù)。可以看出我們的推斷算法非常接近 BiLSTM+Linear 網(wǎng)絡(luò)結(jié)構(gòu)的 forward 過程。
2.5 張量秩分解
我們利用張量秩分解將三階張量分解成三個矩陣,并且將 forward score 與 backward score 的計算進(jìn)行重寫,當(dāng)張量分解的重建誤差較低時,分解后和分解前有著近似的結(jié)果。
2.6 融入外部詞向量
分解后的得到矩陣 可以被看成一個只有規(guī)則信息的詞向量矩陣。我們可以將外部詞向量映射到與 R 維度,并且用一個超參數(shù) η 來結(jié)合兩個詞向量。當(dāng) η 接近 1 時,網(wǎng)絡(luò)仍然近似正則表達(dá)式。
此外還有其他的一些增強(qiáng)模型的技巧請參照 paper 論文。
2.7 模型訓(xùn)練與解碼
在 2.4 節(jié)中,我們說明了計算出每個時刻每個 label 分?jǐn)?shù)的近似算法。在標(biāo)注數(shù)據(jù)上訓(xùn)練,以及解碼的方式和傳統(tǒng)的神經(jīng)序列標(biāo)注模型類似。我們使用 Cross Entropy Loss 或者 CRF Loss 來計算輸出與真實(shí)的標(biāo)注的誤差,用 Adam 來進(jìn)行優(yōu)化。我們對應(yīng)的,使用 Softmax 以及 CRF Viterbi 進(jìn)行解碼。
實(shí)驗(yàn)
3.1 Baselines
我們的 baseline有正則表達(dá)式、傳統(tǒng)序列標(biāo)注模型(BiGRU+Softmax/CRF, BERT+Softmax/CRF)。我們還對比了其他利用同樣的正則表達(dá)式增強(qiáng)神經(jīng)網(wǎng)絡(luò)的方法(MarryUp, Posterior Regularization, Knowledge Distillation)。
3.2 實(shí)驗(yàn)數(shù)據(jù)集與設(shè)置
我們在 ATIS,ATIS-ZH,SNIPS 三個數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。我們采取了零樣本、少樣本、多樣本三種設(shè)定。數(shù)據(jù)集、正則表達(dá)式的統(tǒng)計信息與樣例如圖。
3.3 試驗(yàn)結(jié)果
3.3.1 零樣本
我們的模型 FSTRNN/GRU 不需要訓(xùn)練就有著和正則表達(dá)式相似的效果。說明我們的模型可以很好的近似正則表達(dá)式,并且作為一個神經(jīng)網(wǎng)絡(luò)較好的初始化。
3.3.2 GloVe詞向量的少樣本與全樣本實(shí)驗(yàn)。
我們的模型可以在少量樣本的情況下獲得進(jìn)一步的效果提升,并且由于比較好的蘊(yùn)含了規(guī)則知識,在少樣本與低資源的設(shè)定下有著較好的效果。在全樣本的設(shè)定下,數(shù)據(jù)集平均下來也有著不錯的競爭力,說明我們的模型可以和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)一樣,被標(biāo)注數(shù)據(jù)較好的訓(xùn)練。
3.3.3 With BERT
前面的實(shí)驗(yàn)使用了 GloVe 詞向量。在使用 BERT 的情況下,我們的模型依然有著不錯的樣本表現(xiàn),并且在 10% 和 100% 的設(shè)定下,與沒有用 BERT 的 FSTRNN 相比又著 8% 和 4% 的效果提升,說明我們的模型可以比較好地的 utilize 利用? BERT。
總結(jié)
我們提出了 FSTRNN,一種由用做槽填充任務(wù)的正則表達(dá)式直接轉(zhuǎn)化而來的神經(jīng)網(wǎng)絡(luò)。實(shí)驗(yàn)表明,FSTRNN 在初始時有著和正則表達(dá)式相似的效果,并且可以像傳統(tǒng)神經(jīng)網(wǎng)絡(luò)一樣,能夠較好得 利地用標(biāo)注數(shù)據(jù)進(jìn)行訓(xùn)練。
研究組介紹
上海科技大學(xué)信息學(xué)院屠可偉老師研究組主要從事自然語言處理、機(jī)器學(xué)習(xí)等人工智能領(lǐng)域的研究,目前側(cè)重于研究語言結(jié)構(gòu)的表示、學(xué)習(xí)與應(yīng)用。研究組近幾年已在各大頂會發(fā)表論文數(shù)十篇,2021 年已發(fā)表論文包括 ACL 長文 7 篇、EMNLP 長文 1 篇、NAACL 長文 1 篇等。
研究組招收碩士研究生(推免生)、博士后和研究助理,歡迎有興趣的同學(xué)聯(lián)系屠老師。
更多信息請?jiān)L問屠可偉老師主頁:
http://faculty.sist.shanghaitech.edu.cn/faculty/tukw/
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識的人。
總有一些你不認(rèn)識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵高校實(shí)驗(yàn)室或個人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)術(shù)熱點(diǎn)剖析、科研心得或競賽經(jīng)驗(yàn)講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創(chuàng)作品,未曾在公開渠道發(fā)表,如為其他平臺已發(fā)表或待發(fā)表的文章,請明確標(biāo)注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發(fā)送,要求圖片清晰,無版權(quán)問題
? PaperWeekly 尊重原作者署名權(quán),并將為每篇被采納的原創(chuàng)首發(fā)稿件,提供業(yè)內(nèi)具有競爭力稿酬,具體依據(jù)文章閱讀量和文章質(zhì)量階梯制結(jié)算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯(lián)系方式(微信),以便我們在稿件選用的第一時間聯(lián)系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
·
·
總結(jié)
以上是生活随笔為你收集整理的EMNLP 2021 | 正则表达式与神经网络的深度融合(续)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 办不了信用卡是什么原因 办信用卡流程分享
- 下一篇: 别再无聊地吹捧了,一起来动手实现MAE玩