ELMo 的世界:用深度學習來解釋有著多重意思的詞彙

作者 Crowd Favorite

Bank、Fair、Duck。

單看字的話,這三者都各自有著許多意思。「Bank」指存錢的地方或是河岸,「Fair」指搭乘摩天輪的遊樂場或是乘坐後的心得感受。「Duck」是指怎麼避免同為「duck」(鴨)一名的水禽可能對你造成的傷害。

辨別出某個單字用在某個地方時的意思,對於人類來說並沒有什麼問題,對於自然語言處理(NLP)模型來說就不見得這麼輕鬆了。

用於解析文字的人工智慧工具已經存在多年,只是要它們解析有著多種意思的單字時,可就是一個頭兩個大。

來自艾倫人工智慧研究所(Allen Institute for Artificial Intelligence)與華盛頓大學的研究人員使用一套神經網路,按照單字出現的上下文來判斷這個字的意思,以求克服這項難題。

向前和向後閱讀 

 

通常使用有著詞向量(word vector)結構的資料來訓練 NLP 模型,這些資料將基本語言意義和單詞語法的基本元素加到每個單字裡。該演算法假設每個單字都有一個向量表示,但英語的使用方式並非如此。

研究團隊以其稱為 ELMo 的神經網路打破了這個假設,它可以為每個單字建立無限數量的向量(報告第一作者的 Matthew Peters 說 ELMo 是 Embeddings from Language Models(語言模型嵌入)的縮寫,不是指芝麻街裡那隻渾身紅色又毛茸茸的 Elmo)。

Dean Kamen presents Grace her Dean’s List award at FIRST Robotics Championship
ELMo 愛閱讀:不是指深受孩子喜愛的
Elmo,而是使用雙向語言模型的神經網路 ELMo。

研究團隊使用了雙向語言模型,將每個可能意思的向量加在單字上。尋常的語言模型會試著預測句子裡會出現的下一個單字,像是某一段話是「人們坐在______上」,演算法便會預測空格裡出現「凳子」或「草地」這樣的字眼。

採用雙向模型,代表它具備第二個回顧式的演算法,會在句子的結尾處試著預測結尾處前面的單字。模型試著解析的單字出現在句子的開頭處時,這一招便能派上用場,相關的上下文稍後便會出現。

Peters 說:「這就像是『He lies to his teacher』和『He lies on the sofa』的差別。」

研究團隊使用包括情緒分析及問答在內的六項 NLP 任務來評估演算法,以測試 ELMo 的能力。跟使用相同訓練資料的舊技術相比,ELMo 每次都有新的 SOTA 結果,在某些情況下比起舊有的頂尖模型,表現還要好上 25%。

「我們極為樂見在自然語言處理領域裡,出現一種方法能提升處理各種任務的表現。」Peters 說。

ELMo 接受半監督式學習的挑戰

用於自然語言處理的訓練資料類型很重要,像是不能使用舊有文字來訓練用於 Q&A 系統的模型,通常要使用大量有著註釋的問答內容資料集進行訓練,才能明白如何正確回答。

為資料加上註釋是件耗時耗力的作業。研究人員先選擇使用約有十億個字的大型無標籤學術資料集來訓練 ELMo,再針對 Q&A 這類特殊任務改採規模較小且已加上註釋的資料集。這種將大量未標記的資料搭配少部分有標記資料的方法,稱為半監督式學習

研究人員減少使用帶有標籤和註釋的資料,便能更容易將其 NLP 模型用於解決實際問題。

「我們對自己的案例選擇使用一個標準的無標記學術資料集來訓練語言模型。」Peters 說。不過研究人員也可以針對生醫文章、法律合約等專業領域或其它語言,調整演算法來配合其它無標記的資料集。

   跟過去的 SOTA 基線相比,ELMo 提高了神經網路模型在處理六項標竿 NLP 任務方面的表現。這六項任務分別是(由左至右):文字蘊涵、命名實體辨識、問答、指代消解、語意角色標註和情感分類。

研究人員在 Amazon Web Services 上使用 NVIDIA Tesla V100 及 K80 GPU 進行訓練和推論。

研究人員在後續的報告裡,使用僅數百個有加上標籤的範例,將 ELMo 模型用於回答幾何問題。加上標籤一事或許只花了幾個小時的人工作業,卻大幅提升了 NLP 模型的效能。

ELMo 將以開放源碼函式庫的方式提供大眾使用。Peters 表示其他 NLP 研究人員已經將該模型用於他們自己的研究工作,包括針對英語以外的語言。