當前位置:
首頁 > 新聞 > 基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

機器之心報道



本文將首先介紹詞嵌入模型及其基本演算法,然後再對詞嵌入模型所不能解決的問題-自然語言理解做進一步的討論。下面,我們將首先探討詞嵌入模型的基本原理。

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題



詞嵌入模型

自然而然地,每個前向傳播的神經網路都把在辭彙表中的詞語當成輸入,並把它們表示成低維空間中向量。然後,它們再通過反向傳播進行調整,得出詞嵌入作為第一層的權重。通常,這稱之為「嵌入層(Embedding Layer)」。

產生詞嵌入作為副產物的神經網路和 word2vec 這樣的以生成詞嵌入為特定目標的方法之間的主要區別是它們的計算複雜度。對於一個大的辭彙集來說,使用非常高深度的架構來生成詞嵌入的計算成本太高。

這就是為什麼直到 2013 年詞嵌入才進入自然語言處理的舞台。計算複雜度是詞嵌入模型的一個關鍵權衡,也是我們這篇概述中會重複出現的主題。

另一個區別就是訓練目標:word2vec 和 GloVe 都是用來生成廣泛語義關係的詞嵌入模型,這對許多下游任務有用;而這種方式訓練的詞嵌入對不依賴於這種語義關係的任務並無太多幫助。相反,常規的神經網路對於某個特定任務生成的詞嵌入在別的任務往往功能有限。值得注意的是,一個依賴於語言建模這樣的語義關係的任務能夠生成類似於詞嵌入模型的嵌入,這一點我們將在下節探討。

額外說明一點,word2vec 和 Glove 之於自然語言處理,也許就像是 VGGNet 之於計算機視覺,亦即一個普通的權重初始化——它能提供有用特徵,而且無需長時間訓練。

比較不同的模型,我們可以設想如下的標準:我們設想一串來自辭彙庫 V(其大小為|V|)的包含 T 個訓練單詞的的字元序列 w1,w2,w3,?,wT。

想像我們的模型是一段包含 n 個單詞的文段。我們將每一個單詞與一個 d 維的輸入向量 vw(嵌入層中的同名詞嵌入)和一個輸出向量 vw"(另一個詞表徵,其作用下面很久就會介紹)聯繫在一起。最終,對於每一個輸入 x,我們相對於模型參數θ和模型輸出分數 fθ(x) 來優化目標函數 Jθ。

語言建模上的一項注意

詞嵌入模型和語言模型聯繫緊密。對語言模型的質量評價基於它們學習 V 辭彙庫的詞語概率分布的能力。事實上,許多最新的詞嵌入模型一定程度上嘗試預測序列下一個會出現的詞。另外,詞嵌入模型的評價通常運用困惑度(perplexity)——一個從語言建模借來的基於交叉熵的評價標準。

在我們進入詞嵌入模型的眾多細節之前,讓我們簡單介紹一些語言建模的基礎知識。

總體而言,語言建模力求在給定之前的詞語的情況下,計算一個詞語 wT 的出現概率,也就是 p(wT|w{t?1},?w{t?n+1})。運用鏈式法則和馬爾可夫假設,我們就可以近似地通過之前出現的 n 個詞得到每個詞的概率乘積,從而得到整個句子或整篇文章的乘積:

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

在基於 n 元的語言模型中,我們可以用一個詞的組分的 n 元的頻率(frequency)來計算這個詞的概率:

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

設置 n=2 產生二元模型,而 n=5 和 Kneser-Ney 則一同呈現平滑的五元模型——平滑的五元模型在語言建模中是公認的的一個強有力基準線。更多的細節,敬請參照斯坦福大學的演講課件。

在神經網路中,我們通過大家熟知的 Softmax 層來計算相同的目標函數:

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

內積 hT v"{wT} 計算了詞 wT 的未標準化的對數-概率(log-probability),我們用在辭彙庫 V 中的所有詞的對數-概率之和來把它標準化。h 是它的倒數第二層(見圖 1 前向傳播網路的隱藏層)的輸出向量,而 v"w 就是詞 w 的輸出嵌入,亦即在 softmax 層的權重矩陣中的表徵。注意雖然 v"w 可以表徵詞 w,但它是從輸入詞嵌入 vw 獨立學習的,因為向量 v"w 和向量 vw 的相乘對象是不同的(vw 和索引向量相乘,v′w 和 h 相乘)。

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

圖 1: 一種自然語言模型(Bengio 等人,2006 年)

我們需要計算每個詞 w 在神經網路輸出層的概率。想要高效地做到這一點,我們將 h 和一個權重矩陣相乘,這個權重矩陣每行都是對於在 V 中出現的詞 w 所得的 v′w。我們隨後將得到的向量(我們通常稱之為 logit,也就是前一層的輸出)以及 d=|V| 傳入到 softmax 層,softmax 層則把詞嵌入「壓扁」成一個辭彙庫 V 裡面詞的概率分布。

注意 softmax 層(對比於之前的 n 元計算)僅僅隱式地考慮之前出現的 n 個詞。長短時記憶模型(Long Short-term Memory, 英文簡稱 LSTM),通常用來作自然語言處理模型,將這些詞編碼成狀態 h。我們在下一章將會介紹的 Bengio 的自然語言模型,則是把之前的 n 個詞通過一個前向傳播層傳入。

請大家記住這個 softmax 層,許多後續介紹的詞嵌入模型都將或多或少地運用它。運用這個 softmax 層,模型將嘗試著在每一時刻 t 都最大化正確預測下一詞的概率。於是,整個模型嘗試最大化整個數據集的平均對數-概率:

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

相似地,運用鏈式法則,模型的訓練目標通常是最大化整個語料庫的所有詞相對於之前 n 個詞的平均對數-概率:

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

如果想在試驗階段從這個語言模型取樣詞,我們可以在每一時刻 t 貪婪地選擇最高概率的詞 p(wT : | : w{t-1} ... w{t-n+1}),或者用定向搜索。舉個例子,我們可以用它來生成像運用了 LSTM 作為解碼器的 Karpathy 的 Char-CNN 中的任意文本序列。



經典神經語言模型

Bengio 等人在 2013 年 [1] 提出的經典神經語言模型包含一個前向傳播神經網路,它有一個隱藏層,用來預測文本序列的下一個單詞,如圖 2 所示。

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

圖 2: 經典神經語言模型(Bengio 等人,2013 年)

他們的模型的最大化目標函數就是我們在上文中介紹的典型的神經語言模型的目標(為了簡潔,我們忽略規範化(regularization)這一項):

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

f(wT , w{t-1} , ... , w{t-n+1}) 是這個模型的輸出,即 softmax 計算出的概率 p(wT : | : w{t-1} , .., w{t-n+1})。n 在這裡就是傳入這個模型的之前 n 個詞的數量。

Bengio 等人首先提出詞嵌入模型,它是一個在實數範圍 R 內的詞特徵向量。他們的架構非常經典,是目前各種改進方法的原型。他們原始模型中的基礎模塊依然能在現在的許多神經網路和其他詞嵌入模型中找到。

  • 嵌入層:一個用索引向量和詞嵌入矩陣相乘得出的詞嵌入層;

  • 中間層:一個可包含一層或多層的中間層,例如,一個可以將之前出現的 n 個詞非線性地組合在一起的全連接層(fully-connected layer);

  • Softmax 層:一個最終層,輸出辭彙庫 V 中詞的概率分布。

另外,Bengio 等人發現了目前最先進模型中存在的兩個核心問題:

  • 他們發現 2. 中間層可以由一個 LSTM 替代,這個已被最新神經語言模型使用。

  • 他們發現最後的 softmax 層(更確切地說,是標準化項)是神經網路的瓶頸,因為計算 softmax 的計算複雜度與辭彙庫 V 中詞的數量成正比,而個數量通常為成百上千,乃至幾百萬。

因此,如何在一個大辭彙庫中用較低的計算成本計算 softmax,成為了建立神經語言模型和詞嵌入模型的一個關鍵挑戰。



C&W 模型

在 Bengio 等人對神經語言模型的的最初探索以後,計算機計算能力和演算法還尚不允許在大辭彙庫上的訓練。詞嵌入模型的研究因而止步不前。

Collobert 和 Weston [4](因此被稱為 C&W)在 2008 年展示了詞嵌入模型在一個充分大的資料庫中如何向下游任務攜帶語法和語義,並且提升性能。他們 2011 年的論文充分解釋了他們的做法。

他們的解決方法避免了對於 softmax 層的昂貴計算,其方法是採用另一個目標函數:Collobert 和 Weston 的神經網路輸出是正確詞序列相對於不正確詞序列高出的分數 fθ,而不是 Bengio 等人的論文中用來最大化基於之前的詞出現的下一個詞概率的的交叉熵標準。他們為了這個目標函數採用了一個成對排名的標準,如下所示:

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

他們的模型從所有包含 n 個詞的窗口 X 中取樣得到正確的窗口 x。對於每一個窗口 x,用 V 中的 w 代替 x 的中間詞來產生一個不正確的版本 x(w),而模型的目標就是最大化模型對於正確的窗口和不正確窗口的分數的距離。如圖 3 所示,他們的模型架構類似於 Bengio 等人的模型。

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

圖 3: 去掉了排名目標的 C&W 的模型(Collobert 等人,2011 年)

計算後的語言模型能夠生成具有許多語義關係的詞嵌入,例如國家能夠聚類在一起,語法上接近的詞在向量空間上相鄰。他們的排名函數避免了 softmax 的複雜計算,且保持了 Bengio 等人論文中計算同樣昂貴的完全相連的中間層(2.)(見圖 3 中的 HardTanh 層)。他們對於 130000 個詞的模型需要花費 7 周來訓練的有一部分原因在於此。

讓我們現在介紹當今毫無疑問最為流行的詞嵌入模型 word2vec,它源於 Mikolov 等人在 2013 年中兩篇論文,且催生了上千篇詞嵌入的論文。正因為詞嵌入模型是自然語言處理中深度學習的一個關鍵的模塊,word2vec 通常也被歸於深度學習。然而嚴格上來說,word2vec 並不屬於深度學習,因為它的架構並非多層,也不像是 C&W 模型一般運用非線性模型。

在他們的第一篇文章 [2] 中,Mikolov 等人提出了更低計算成本的學習詞嵌入的兩個架構。他們的第二篇論文 [3] 通過加入更多的提升了訓練速度和準確度的策略來提升了模型。

這些架構提供了對比於 C&W 模型和 Bengio 模型具有如下兩大優點:

  • 他們去掉了昂貴的中間層。

  • 他們運用語言模型來更多地考慮上下文。

我們等等會講到,他們的模型之所以成功不僅是因為這些改變,而更是因為某些特定的訓練策略。

接下來,我們會來看這兩個架構:



連續的詞袋(CBOW)

言模型只能通過觀察之前出現的詞來進行預測,且對於此類模型的評價只在於它在一個數據集中預測下一個詞的能力,訓練一個可以準確預測詞嵌入的模型則不受此限。Mikolov 等人運用目標詞前面和後面的 n 個詞來同時預測這個詞,見圖 4。他們稱這個模型為連續的詞袋(continuous bag-of-words,或者 CBOW),因為它用連續空間來表示詞,而且這些詞的先後順序並不重要。

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

圖 4:連續的詞袋(Mikolov 等人,2013 年)

CBOW 的目標函數和語言模型僅有著細小差異:

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

這個模型並沒有傳入 n 個之前的詞,而是在每個時刻 t 接收目標詞的前後 n 個詞的窗口 wT。



Skip-gram

CBOW 可以看作一個具有先知的語言模型,而 skip-gram 模型則完全改變將語言模型的目標:它不像 CBOW 一樣從周圍的詞預測中間的詞;恰恰相反,它用中心語去預測周圍的詞,如圖 5 所示。

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

圖 5:Skip-gram(Mikolov 等人,2013)

skip-gram 模型的目標因此用目標詞前後的各 n 個詞的對數──概率之和計算如下的目標:

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

為了更直觀地解釋 skip-gram 模型是怎樣來計算 p(w{t+j}|w_{t}) 的,讓我們先來回顧 softmax 的定義:

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

我們不計算目標詞 wT 基於前面出現的詞的概率,而是計算周圍詞 w{t+j} 對於 wT 的概率。於是,我們可以簡單地替換掉這些變數:

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

因為 skip-gram 架構並不包括能夠產出中間狀態向量 h 的中間層,h 自然地成為對於輸入詞 wT的詞嵌入 v{wT}。這也是我們為什麼想給輸入向量 vw 和輸出向量 v′w 以用不同的表示,因為我們想要將詞嵌入和自己相乘。用 v{wT} 替換 h,我們得到:

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

注意 Mikolov 論文中的代號和我們的有細微差別,他們標註詞語為 wI,而周圍的詞為 wO。如果我們用 wI 替換 wT,用 wO 替換 w{t+j},然後根據乘法交換律交換內積的向量位置,我們能夠得到和它們論文中一樣的公式表示:

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題



接下來我們將在了解這些經典模型的基礎上進一步探討詞嵌入的局限性。

如今有一種可以表徵自然語言單詞的技術,它在自然語言處理任務(如情感分析和機器翻譯)中是十分高效的。這種表徵就是詞嵌入(word embeddings),該技術使用數學方法從數百萬的樣本詞學習訓練詞義從而表徵單詞。詞嵌入主要就是通過學習單詞之間的關係而表徵詞義。如通過確保各個向量(具體說向量「國王」-「男性」+「女性」=「王后」)之間的特定數學關係,一組優良的表徵將獲取「國王是男性,王后是女性」這一關係。

這種向量化的表徵是谷歌新翻譯系統的核心,只不過該系統能夠更進一步表徵整個句子而不是單詞。該新系統「在主要的幾個自然語言對中,有效地降低了翻譯錯誤率高達 55% 到 85%」,並且還能執行 zero-shot 翻譯:也就是互譯沒有訓練數據集的兩種語言。鑒於所有的這些,也許聽到 NLP 的前沿研究者 Oren Etzioni 所嘲諷的就會很驚訝了,他嘲諷道:「當人工智慧不能確定句子中的「它」是指什麼的時候,其是不會影響世界的。」

所以,人工智慧可以在沒有訓練的情況進行語言對足夠好的翻譯,但人工智慧還是不能確定「它」是指的什麼。



語義並不是直接獲取

當了解到詞和句子的向量化表徵是如何工作時,可以認為它們真正在獲取意義,即有產生一些理解。但這樣說是不對的,這些表徵是由使用語言的樣本而驅動,而我們使用的語言是由意義而驅動的。因此,我們所做出來的表達自然地反映了該含義。但是,學習這種詞嵌入表徵的人工智慧系統並沒有直接獲取實際意義。

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

對於自然語言處理任務的目的來說,缺乏直接獲取真實意義的方法並不重要。

不理解句子中的「它」是指的是什麼不會對翻譯的準確性產生巨大的影響,然而當嘗試構建會話人工智慧時,問題就出來了:

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

樣本 bot 的截屏

理解代詞的指代在持續性對話中是十分重要的技能。如上所說,用於訓練執行 NLP 任務的人工智慧訓練數據不包括用於消除單詞歧義的必要信息,並且這些信息主要是來自於對世界認知的知識。是否有必要體現世界的實體或簡單地將大量「通識知識」編入程序從而收集必要的信息,這還是一個開放性問題。



約束條件下操作

一些優秀的人才正在研究人工智慧中自然語言理解的問題。在 NIPS 2016,OpenAI 的研究者們發表了 A Paradigm for Situated and Goal-Driven Language Learning。斯坦福大學的研究者們也正在研究互動式語言學習(interactive language learning),該方法認識到為了學習語義,與世界交互的重要性。有趣的是,他們的樣本系統向 Terry Winograd 的SHRDLU 系統表示敬意,Terry Winograd 的 SHRDLU 系統是一個早期對話系統,其限制自身認同對世界由塊組成的陳述。

基於語言建模的詞嵌入模型和其所不能解決的自然語言理解問題

Terry Winograd 的早期自然語言理解程序 SHRDLU,其限制自身認同對世界由塊組成的陳述

對於任何想要構建會話人工智慧的開發者來說,這樣的限制仍然是絕對有必要的。亞馬遜的 Lex 和 IBM 的對話服務都允許開發人員在對他們應用需要如何運作上指定約束。開發人員定義了應用程序可以執行的一組意圖,並將這些意圖映射到用戶可能請求的一組方式上。

但是有些方法可以在不解決自然語言理解問題(這可能需要幾十年或更長時間)的情況下增強這種會話人工智慧的體驗。上圖顯示 bot 在前一個命令是「關閉擋風玻璃刮水器」時不能理解「現在打開它」是什麼意思,這說明了有時候這種會話人工智慧連無歧義的代詞都不能理解,這絕對是當前技術所能解決的。

了解當前人工智慧和機器學習技術上什麼是可能、什麼是不可能對任何想要使用該技術增強應用功能的人都是十分重要。如果你對人工智慧目前的能力不懷有足夠的質疑,你可能會浪費大量的時間和金錢來嘗試做一些尚未可能完成的工作。另一方面,如果你太懷疑了,也許你會失去開發一個極其實用和盈利人工智慧的機會。

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

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


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

ACL2017中國研究論文解讀:讀懂中國自然語言處理前沿進展
ACL 2017中國研究論文解讀:讀懂中國自然語言處理前沿進展
15個排名最佳的數據科學 Python 包
Garry Kasparov回憶錄講述與深藍「世紀之戰」
科學機器人子刊:從機器人社交與醫療自動化分級到機器人建築平台

TAG:機器之心 |

您可能感興趣

自然語言處理:語言模型與評價方法
嬰兒學習語言的基礎能力,感知語言的聲音和結構
語言不是問題
從字元級的語言建模開始,了解語言模型與序列建模的基本概念
不精確的語言
易建聯親口說出無法立足NBA真因,不是性格問題和語言障礙
自然語言處理基礎:上下文詞表徵入門解讀
再聊聊自然語言處理中的結構化預測問題
自然語言處理的發展與應用
怎樣解決編程語言之間的差異性問題?
會撩妹可解決問題的小機靈,自然語言處理的正確打開方式了解一下
從客戶的肢體語言判斷他們的想法
寫作方法|不能忽視的作文要素——如何讓語言表達更加協調
存在問題的邏輯語言維度
從語言學角度看詞嵌入模型
身體語言定律:利用好肢體語言,吸引男神不是夢!
自然語言處理助力解決社會工程攻擊問題
真正的語言是無聲的
語言的魔方:語言塑造文化
培養孩子語言能力要注意的問題