Stanford CS224n 第十四講:樹 RNN 和短語句法分析

目錄
1. 從詞袋模型 VS 樹結構模型
2. 從詞向量到短語向量
3. RNN(遞歸神經網絡)分析句子實例
4. CNN VS RNN(遞歸神經網絡)
5. Recursive Neural Network(遞歸神經網絡) VS (循環神經網絡) Recurrent Neural Network

此部分主要講了如何通過樹RNN刻畫短語的語義,將短語也映射到詞向量的空間,可以刻畫短語與短語,短語和詞之間的相關性。至於如何刻畫,下面我們將一步步介紹。
PS:
此節課中大部分提到的RNN(比如樹RNN)都是Recursive Neural Network 遞歸神經網絡,而不是前面提到的RNN(時序模型)Recurrent Neural Network 循環神經網絡。下面博客中如果不是明顯說明,提到的RNN均爲遞歸神經網絡。

\newline
\newline
1. 從詞袋模型到樹結構模型
簡單的人們通過詞袋模型來表示一句話或者短語,如下左半圖;但是圖片形象的反映了詞袋模型不能完全包含所有的詞,其他的詞散落在下面。
複雜的就是通過語法樹結構來表示一句話或者短語,如下右半圖;模型變得比較複雜。

在這裏插入圖片描述
但是,即使是簡單的詞袋模型,在加入很多trick以後,有時還是可以擊敗深度學習的模型的。

2. 從詞向量到短語向量
那麼,既然有了詞向量,我們爲啥還要得到短語的向量呢?我們來看下面這個例子:
在這裏插入圖片描述
由上圖我們可以看出,加粗的部分"snowboarder" 和"person on a snowboard"具有相同的語義,但是一個是詞級別的,一個是短語級別的,因此短語級別的向量表示應運而生。
當然課程中還提到了將詞向量和短語向量映射到一個空間的必要性,因爲上例中,一個短語可能和一個詞具有相關性,要讓他們具有可比較性,就應該將他們映射到一個空間內。

3. RNN(遞歸神經網絡)分析句子實例
那麼我們怎麼做到利用詞向量和句法樹結構得到短語或者句子的embedding表示呢?
首先,根據下圖我們知道,想得到短語的vector,我們要學習出如何構造句子的句法樹和對向量如何進行複合性表示。
在這裏插入圖片描述
然後我們根據學習到的如何構造句法,先構造短語的句法樹,如下左半圖:
最後我們根據學習到的如何對向量進行復合和上面構造短語的句法樹,對向量進行複合性表示。如下右半圖:
在這裏插入圖片描述


下面是一個具體的例子,描述上面過程:
本例中一個單元的構成,是輸入 兩個子節點,輸出是 合併後的embedding+合併的評分:
在這裏插入圖片描述
(1)開始的時候是計算每個相鄰的單詞之間的評分:
在這裏插入圖片描述
(2)然後通過貪心算法,對分數高的組合進行複合性計算合併:
在這裏插入圖片描述
重複以上過程,直至合併的只剩下一個節點,那這個節點就是句子的複合性表示:
在這裏插入圖片描述
上述過程的改進:
(1)不再根據整個句子的總分挑選,而是採用 max-margin損失 使每個預測分值離錯誤類別要儘量遠;
在這裏插入圖片描述
(2)採用束搜索取代貪心算法,效果會更好;
(3)矩陣運算中W可視作兩個矩陣的拼接,c1c_1c2c_2其實沒有交互,可以考慮採用attention機制那一節課中的方式,採用metric learning或者其他讓兩者交互可能效果會更好。
(4)模型中使用同一個權值矩陣W處理NP、VP、PP關係,這明顯是不合理的,於是替換成了各種不同的權重矩陣WNPW^{NP},WVPW^{VP}
(5)最後還講了一種 矩陣-向量 的方式改進,主要思想還是增加兩個即將合併節點的交互,此處不再贅述。


需要強調的一點是,樹結構的求導過程要注意,前向傳播信號流入某節點,反向傳播誤差就得從某節點分流到所有源節點。如下圖:
在這裏插入圖片描述

4. CNN VS RNN(遞歸神經網絡)
其實CNN就是不管符不符合語法,就講節點合併;而RNN就是將它不符合語法結構的合併刪除了。如下圖所示:
在這裏插入圖片描述
5. Recursive Neural Network(遞歸神經網絡) VS (循環神經網絡) Recurrent Neural Network
在這裏插入圖片描述
(1)課程中講到遞歸神經網絡需要樹形結構;循環神經網絡不能很好的捕捉短語的語義。
(2)遞歸神經網絡從下往上傳遞信號;循環神經網絡更像是一種受限的樹結構,循環神經網絡從左往右傳遞信號。
(3)目前人們使用更多的是循環神經網絡。因爲遞歸神經網絡需要句法樹,而樹結構就無法簡單地利用反向傳播訓練。此外樹結構導致不易在GPU上優化。

ok,這節課就介紹到這兒了~
我感覺本節課主要讓我學習到了一種將句子或者短語embedding的方式。over~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章