當前位置:
首頁 > 新聞 > 紅樓夢、法律,BERT 已有如此多的神奇應用

紅樓夢、法律,BERT 已有如此多的神奇應用

2019 年 5 月 ACM 圖靈大會上,朱松純教授(加州大學洛杉磯分校)與沈向洋博士(微軟全球執行副總裁)在談到「人工智慧時代的道路選擇」這個話題時,沈向洋博士認為人工智慧發展在工業界將會迎來黃金十年,而朱松純教授也表示人工智慧的發展趨勢將會走向大一統,從小任務走向大任務,從 AI 六大學科走向統一。

自然語言處理領域的 BERT 模型恰好印證了這一規律,BERT 嘗試著用一個統一的模型處理自然語言處理領域的經典任務,如閱讀理解、常識推理和機器翻譯等任務。事實證明,自從谷歌於去年十月發布 BERT 之後,BERT 便開始了漫長的霸榜之路,在機器閱讀理解頂級水平測試 SQuAD1.1 中 BERT 表現出了驚人的成績,全部兩個衡量指標上全面超越人類,並且還在 11 種不同 NLP 測試中創出最佳成績,包括將 GLUE 基準推至 80.4%(絕對改進 7.6%),MultiNLI 準確度達到 86.7%(絕對改進率 5.6%)等。雖然近段時間不斷有後起之秀在各種指標上超過了這一經典,但這只是架構上的小修小改。毫無疑問,BERT 開啟了自然語言處理領域一個嶄新的時代。

最近發布的 XLNet 在多個方面超越了 BERT,但是 BERT 語言模型與現有領域,如法律文書、科研論文,的交叉應用實例,對於 XLNet 的應用仍有非常大的意義。

本文作者是曾祥極,目前在浙江大學讀碩士,方向是常識推理和AutoML,希望能和大家一起共同學習,探討科研論文等。

1. 介紹

紅樓夢、法律,BERT 已有如此多的神奇應用

BERT、GPT 與 ELMo 模型架構圖,來源 https://arxiv.org/abs/1810.04805

近十年,深度學習的復興給自然語言處理領域帶來了翻天覆地的變化,特別是 2013 年簡化版詞嵌入 word2vec 的提出為深度學習在自然語言處理領域的應用打下了鋪墊。由於神經網路是基於張量空間的數值計算,因此神經網路不能良好地表示自然語言文本。自然語言文本與神經網路之間需要一個橋樑來完成這一轉換,而詞嵌入就是這個橋樑,詞嵌入可以將自然語言文本轉化成語義空間上低維的稠密數值向量。但是經過詞向量轉換後的句子表示在整個語義層面上仍然有著較大地缺陷,因為詞嵌入無法有效地解決一詞多義的問題。

語言預訓練模型從另一個思路嘗試著解決上下文環境語義表示的問題。互聯網上擁有海量的文本數據,然而這些文本大多都是沒有標註的數據,AllenNLP ELMo 模型的提出解決了從這些海量的無標記文本數據中獲取上下文語義表示的問題。但是受限於 LSTM 的能力,ELMo 模型只是一個使用了三層 BiLSTM 的網路模型,按照傳統觀點,深度學習模型要想捕捉更精確的語義表示就需要將模型網路層數做得更深。

OpenAI GPT 模型解決了這個問題,GPT 採用 Transformer 的編碼層作為網路的基本單元,Transformer 捨棄了 RNN 的循環式網路結構,完全基於注意力機制來對一段文本進行建模,從而可以將網路模型做得更深。除此之外,Transformer 還解決了 RNN 不能並行計算的缺點,這對減少模型訓練的時間以及加大訓練數據集帶來了可能性。

BERT 則在此基礎上更進一步,相比於 GPT 對句子從左到右的單向掃描,BERT 模型的每個詞語可以感知兩側的語境,從而可以捕捉更多的信息。BERT 採用了兩個超大的數據集:BooksCorpus(800M words) 和 English Wikipedia(2500M words) 進行預訓練。因此,可以說 BERT 擁有了某種程度上的語言語義理解能力。BERT 可以作為其它任務網路模型的上游骨架,它可以很好的抽取任務數據的語義表示向量,我們只需要在上面進行微調即可獲得很好的效果,這衍生出了許多神奇的下游應用。

2. 應用

2.1. 紅樓夢知識提取

紅樓夢、法律,BERT 已有如此多的神奇應用

紅樓夢人物知識圖譜,來源 http://kw.fudan.edu.cn/

知識圖譜是人工智慧研究中的核心問題,它是人類對世界的近似表示與理解,能夠賦予機器精準查詢、理解與邏輯推理等能力。知識圖譜相關的技術主要分為三個部分:知識提取、知識表示和知識應用。知識提取主要負責從各種結構化和非結構化的信息中抽取實體和關係即構建知識圖譜,知識表示則是研究如何更好地表示知識,知識應用則是利用已經構建好的知識圖譜為各種下游任務賦能,賦予機器理解世界的能力。

知識圖譜也能夠輔助我們快速了解小說的人物關係,對於沒有仔細讀過紅樓夢或者是讀得似懂非懂的同學們來說,我們可以利用 BERT 搭建起知識提取的機器學習模型提取紅樓夢中的人物即實體,並分析人物與人物之間的關係,這對我們快速了解小說人物結構非常有幫助。有一位作者利用 BERT 對紅樓夢進行了一個簡單的人物知識圖譜建模,接下來我們將會詳細說明作者是如何從紅樓夢中抽取人物和關係。

1)數據準備:作者首先利用正則表達式從紅樓夢提取對話,如果假設說出這段話的人的名字出現在這段話的前面,那麼可以用這段話前面的一段話作為包含說話人(speaker)的上下文(context)。如果說話人不存在這段上下文中,標籤為空字元串。目前效果較好的實體抽取模型多為監督學習的模型,所以基於 BERT 的實體抽取模型也採用有監督的方法訓練模型。因此,作者對之前抽取的對話進行實體標註。除此之外,由於實體之間 de 關係抽取技術還不太成熟,因此作者做了一個很簡單的假設,把相鄰的人看作是在對話,這在一定程度上是可以成立的。標註數據的部分結果如下:

{"uid": 1552, "context": "黛玉又道:", "speaker": "黛玉", "istart": 0, "iend": 2}
{"uid": 1553, "context": "因念云:", "speaker": None, "istart": -1, "iend": 0}
{"uid": 1554, "context": "寶釵道:", "speaker": "寶釵", "istart": 0, "iend": 2}
{"uid": 1555, "context": "五祖便將衣缽傳他.今兒這偈語,亦同此意了.只是方才這句機鋒,尚未完全了結,這便丟開手不成?"黛玉笑道:", "speaker": "黛玉", "istart": 46, "iend": 48}
{"uid": 1556, "context": "寶玉自己以為覺悟,不想忽被黛玉一問,便不能答,寶釵又比出"語錄"來,此皆素不見他們能者.自己想了一想:", "speaker": "寶玉", "istart": 0, "iend": 2}
{"uid": 1557, "context": "想畢,便笑道:", "speaker": None, "istart": -1, "iend": 0}
{"uid": 1558, "context": "說著,四人仍復如舊.忽然人報,娘娘差人送出一個燈謎兒,命你們大家去猜,猜著了每人也作一個進去.四人聽說忙出去,至賈母上房.只見一個小太監,拿了一盞四角平頭白紗燈,專為燈謎而制,上面已有一個,眾人都爭看亂猜.小太監又下諭道:", "speaker": "小太監", "istart": 103, "iend": 106}
{"uid": 1559, "context": "太監去了,至晚出來傳諭:", "speaker": "太監", "istart": 0, "iend": 2}

雖然作者花了兩個小時標註了 1500 條左右的數據,然而這對於模型的訓練仍然顯得有些不足,所以作者又利用數據增強技術擴增到兩百萬條數據。

2)模型:作者構建實體抽取模型的思路是把實體抽取任務看成 QA 問題,即問題是對話語句而答案是抽取的實體,因此作者基於 BERT 並仿照閱讀理解任務 SQuAD 上的模型做了實體抽取模型。

3)預測結果:由於 BERT 模型的強大,通過簡單的問答訓練,作者發現實體抽取的效果非常好,只有少部分出現問題,以下是部分預測結果:

紅樓夢、法律,BERT 已有如此多的神奇應用

4)人物關係:至於人物實體關係的抽取,作者則根據之前的假設,利用規則對人物關係進行了分析。其中,寶玉與襲人之間對話最多(178+175),寶玉與黛玉之間對話次之(177+174),寶玉與寶釵之間對話(65+61),僅從對話次數來看,襲人與黛玉在寶玉心目中的佔地差不多,寶釵(65+61)佔地只相當於黛玉的三分之一,略高于晴雯(46+41)。

最後,作者在 gitlab 上上傳了自己的代碼 https://gitlab.com/snowhitiger/speakerextraction。

2.2. 情報檢測

紅樓夢、法律,BERT 已有如此多的神奇應用

颶風,來源:https://www.apnews.com/b4a51136559d44f589319ecfbf6f11a9

隨著互聯網用戶的不斷增加,互聯網上的信息已經達到了不可能靠人力就能處理的地步,這其中情報信息的檢測也變得十分重要。災難信息是屬於情報信息的一種,它是在災害和其他緊急情況的準備,緩解,響應和恢復階段使用信息和技術的研究,比如爆炸檢測、情感分析和危害評估等。

諸如 Facebook、Twitter 等社交網站上的災難信息如果得不到有效的檢測,那麼這將是一個極大的安全隱患。傳統的災難信息檢測是基於關鍵詞過濾的方法,但是這種方法具有很大的問題,一是災難信息的組織形式在不斷發生變化,二是僅靠社交公司有限的人力根本不可能有效地維護關鍵詞語料庫。

Guoqin Ma 提取了基於 BERT 的機器學習模型對災難信息進行處理,他將推特上的災難信息處理看作是文本分類問題。因此,在作者所用到的數據集中,作者將推特信息和災難類型分別分為如下幾類:

紅樓夢、法律,BERT 已有如此多的神奇應用

作者以一個單層雙向 LSTM 作為基準,然後再在 BERT 之上衍生了四個模型變種 default BERT,BERT+NL,BERT+LSTM,BERT+CNN。

其中 default BERT 只在 BERT 的輸出層加上單層全連接網路以及 softmax,而 BERT+NL 則是多層全連接網路以及 softmax,BERT+LSTM 顧名思義就是 BERT 輸出層輸入到一個 LSTM 網路,最終 LSTM 的輸出再通過 softmax 輸出,而 BERT+CNN 也是相同的原理,只不過 LSTM 換成了 CNN。

最終的實驗結果如下圖所示,我們可以看到基於 BERT 的模型在所有指標上均超過了只基於 LSTM 的基準模型。

紅樓夢、法律,BERT 已有如此多的神奇應用

最後,作者在 github 上上傳了自己的代碼 sebsk/CS224N-Project。

2.3. 文章寫作

在自然語言處理的任務中,文本生成可採用經典的 sequence2sequence 模型來完成,即 Encoder 和 Decoder 模型結構,其中 Encoder 和 Decoder 一般都採用 RNN 來實現。而要想使用 BERT 來進行文本生成這個任務通常來說會是一個比較難的問題,原因在於 BERT 在預訓練的時候採用的是 MASK 的方法,這是一種自編碼(AE)的方法,訓練的時候會利用上下文語境一起訓練,並嘗試著復現原輸入。相比於 BERT,一般的 LSTM 採用的是上文預測下文的方法,這是一種自回歸(AR)的方法,天然適合文本生成,因為文本生成就是從左到右一個單詞一個單詞生成的。

那麼 BERT 是否就不能應用於文本生成呢?Alex Wang 在他的論文「BERT has a Mouth, and It Must Speak: BERT as a Markov Random Field Language Model」中解釋了這一問題,論文標題很直接地回答了這個問題,BERT 有張會說話的嘴。

這篇文章的作者先結合偽對數似然證明了 BERT 是一個馬爾科夫隨機場語言模型(MRF-LM),而馬爾可夫隨機場是一個可以由無向圖表示的聯合概率分布,即下一個時間點的狀態只與當前的狀態有關,屬於生成式模型。同時也因為在某種程度上 BERT 學習到了句子的分布,所以這也就是說我們可以利用 BERT 來進行文本生成,比如新聞寫作、小說寫作等任務。

但是隨後出人意外地是該論文的作者隨後又在自己的博客中聲明自己的推導有誤,BERT 不是馬爾科夫隨機場,鏈接見段尾。雖然作者說明 BERT 不是馬爾科夫隨機場,但是仍然可作為一個生成模型。

博客鏈接:http://www.kyunghyuncho.me/home/blog/amistakeinwangchoberthasamouthanditmustspeakbertasamarkovrandomfieldlanguagemodel

我們可以看到生成的效果如下(左邊是 BERT 生成的效果,右邊是 GPT 生成的效果):

紅樓夢、法律,BERT 已有如此多的神奇應用

最後,作者上傳了自己的代碼到 Github 上 :nyu-dl/bert-gen。

2.4. 法律文書 BERT

紅樓夢、法律,BERT 已有如此多的神奇應用

法律文檔,來源 https://tutorcruncher.com/business-growth/legal-implications-when-starting-a-tutoring-business/

在自然語言處理領域,訓練數據的文本質量至關重要,高質量的文本數據能夠讓模型學得更快學得更好。而法律行業則是少有的擁有高質量文本數據的行業,這是因為法律文書、合同等文本的質量高低與相關人員的切身利益密切相關,所以相關方都會反覆審查文書內容確保文本質量。

清華大學人工智慧研究院和冪律智能在最近這段時間發布了幾個中文領域的預訓練 BERT 模型,其中有民事文書 BERT 和刑事文書 BERT 是法律領域專用的預訓練語言模型。

民事文書 BERT 基於 2654 篇民事文書進行訓練,經過測試,它在相關法律任務上能夠更快地學習到東西,並明顯優於 Google 官方的中文 BERT。而刑事 BERT 則是基於 663 萬篇刑事文書進行訓練,在相關任務上的表現也比原版中文 BERT 要好。以下是測試結果:

紅樓夢、法律,BERT 已有如此多的神奇應用

該項目的預訓練法律 BERT 模型與著名的開源項目 huggingface/pytorch-pretrained-BERT 完全兼容,只是模型參數發生了改變。此外由於 pytorch-pretrained-BERT 有著完善的文檔,所以對於想要嘗試該模型並熟悉 pytorch 的同學來說,這個模型可以很快的上手。

我們可以在 GitHub 上找到相關項目的資料以及模型鏈接:thunlp/OpenCLaP

2.5. 科學論文

近日,美國能源部勞倫斯伯克利國家實驗室最近發表在《自然》雜誌上的一篇論文引起了人們的廣泛關注。研究人員表示它們的無監督預訓練詞嵌入在自動閱讀 300 萬篇材料學領域的論文之後發現了全新的科學知識。他們將這些論文的摘要用 word2vec 演算法進行詞嵌入訓練,通過解釋分析詞與詞之間的關係,可以提前數年給出新熱電材料的預測,在目前未知的材料中找出有應用潛力的候選材料。

在論文文本預訓練領域,也有這麼一個基於 BERT 模型進行訓練的。SciBERT 是 AllenNLP 提出的一個基於科學論文文本預訓練的 BERT,根據 SciBERT 介紹,它具有以下特性:

  1. 完全基於 semanticscholar.org (https://semanticscholar.org/) 的論文全文進行訓練,而不僅僅是摘要,整個論文數量達到了 1.14M,而文本符號也達到了 3.1B 的級別;
  2. SciBERT 有自己的詞庫 scivocab,該詞庫完全匹配訓練語料庫;
  3. 在目前所有科學領域的自然語言處理任務中均達到了最先進的級別,我們可以看下圖;

紅樓夢、法律,BERT 已有如此多的神奇應用

最後,我們可以在 Github 上找到源碼和預訓練模型進行下載 :allenai/scibert。

3. 結語

由於 BERT 通過威力巨大的特徵抽取器 Transformer 在海量的文本上學習到了大量的語言特徵先驗知識,所以這對於大多數自然語言處理的任務都有非常好的效果。如果 BERT 比作一個人,那麼它的閱讀量則達到了我們一生所不能達到的量,從一定程度上可以說 BERT 是一位博學家。BERT 為我們開啟了一個嶄新的自然語言處理時代,相信站在這個巨人的肩膀上,未來一定會爆發更多有趣的工作!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

ICML2019| 強化學慣用於推薦系統,螞蟻金服提出生成對抗用戶模型
結合符號與連接,斯坦福神經狀態機衝刺視覺推理新SOTA

TAG:機器之心 |