本文結(jié)構(gòu):
四個問題
- 每個問題是什么
- 應用什么模型
- 模型效果
CS224d-Day 11:
Recursive neural networks -- for different tasks (e.g. sentiment analysis)
課程鏈接
視頻鏈接
課件鏈接
四個問題
這次課主要講了標準的 Recursive neural networks 模型及其擴展模型在3個問題上的應用和效果,最后的 Tree LSTM 簡單地介紹了模型和效果迅皇。
這3個問題分別是 Paraphrase detection框咙,Relation classification喇嘱,Sentiment Analysis衣厘。
每個模型都可以應用到任意一個問題上早歇,只不過效果不同茄靠,有些模型對一些問題表現(xiàn)會更優(yōu)一些茂契。
1.Paraphrase detection
目的是判斷兩句話是否具有相同的意思
用到的模型是標準的RNN
為了解決這個問題,需要思考:
-
怎樣比較兩個句子厌小?
通過成對地比較兩個句子的短語,這個時候可以用 standard RNN,因為它可以得到一個合理的樹結(jié)構(gòu)梢薪,也就是句子的短語組成結(jié)構(gòu)。
-
怎樣用相似度來判斷兩個句子的意義是一樣的?
如果用兩個樹結(jié)構(gòu)的頂點去判斷瘦麸,那會丟掉很多中間環(huán)節(jié)的信息厉碟。
如果只計數(shù)兩個句子中相似短語的個數(shù),那么會丟掉位置信息,即這些短語出現(xiàn)在什么位置铐殃。
所以用 similar matrix 來表示相似度贰军。
如下圖,左邊是兩個句子许饿,樹結(jié)構(gòu)中分別有7個部分和5個部分陋率,右邊是由similar matrix到最后結(jié)果的過程。
similar matrix 由5行7列組成菩浙,顏色深淺表示兩個樹結(jié)構(gòu)相應部分間的相似度大小劲蜻。
-
上圖中楚堤,為什么不能直接把 similar matrix 直接投入神經(jīng)網(wǎng)絡中鳄袍?
因為這個矩陣的大小是隨著輸入句子的不同而變化的重罪。
所以需要引用一個 pooling 層,它可以將輸入的 similar matrix 映射成維度一致的矩陣,然后再投入到 RNN 中蝇更。
最后的效果:
2.Relation Classification
目的是識別詞語之間的關(guān)系
尤其是 very + good 這種访圃,very 此時只是一個加強 good 的作用
用到的模型是標準的 Matrix-Vector RNN
普通的 RNN 中批糟,每個節(jié)點都是由向量表示的纬傲,在這個 Matrix-Vector RNN 中,每個節(jié)點除了向量外自帶一個矩陣叹括,在由 left 和 right child 生成 parent 的時候算墨,對彼此作用各自的矩陣后,再去生成 parent汁雷。
-
用向量和矩陣的區(qū)別净嘀?
單獨的向量反映不出相互作用這種層次的意義报咳,加上矩陣作用給對方后,可以顯示出 very 可以讓 good 這種形容詞更強的意義挖藏。
矩陣是隨機初始化的暑刃,通過 Back Propagation 和 Forward Propagation 可以不斷地學習出來。
最后的效果:
下圖中膜眠,橫軸是 1-10 星號的電影岩臣,縱軸是 not annoying 這樣的詞出現(xiàn)在相應級別中的比例。
在 not annoying 宵膨,not awesome 這兩個例子中架谎,綠色的 RNN 沒有藍色的 MV-RNN 表現(xiàn)得好,因為 not annoying 出現(xiàn)在低星級的次數(shù)不應該比出現(xiàn)在高星級電影中的次數(shù)多辟躏。
另外一種問題是因果關(guān)系等的判斷
最后的效果:
對于這個問題谷扣,用了不同的模型和feature來看效果。
在 SVM 用了好多feature捎琐,最后的效果是 82.2
POS:part of speech
wordnet 大量人工生成的數(shù)據(jù)
prefix 等其他形態(tài)學的特征
dependency parse feature 不同類型的parser
textrunner 百萬的網(wǎng)上數(shù)據(jù)
Google n-gram 幾十億個 n-gram
單純用神經(jīng)網(wǎng)絡模型会涎,數(shù)據(jù)量沒那么大的時候,效果不到80%
加入了 POS野哭,WordNet在塔,NER 數(shù)據(jù)后幻件,變成了 82.4拨黔,優(yōu)于SVM。
數(shù)據(jù)越多的話绰沥,效果越好篱蝇。
3.Sentiment Analysis
目的是識別句子表達的情感
用到的模型是RNTN(Recursive Neural Tensor Network)
- 用 Bag of words 這種方法有缺陷:
一個 not 后面多個 positive 的詞時,應該是否定徽曲,結(jié)果被判斷成肯定零截。
前半句否定,后半句肯定秃臣,后半句的效果比前半句更強的時候涧衙,怎么判斷出來。
解決方案奥此,一個是更好的數(shù)據(jù)弧哎,一個是更好的模型
更好的數(shù)據(jù):
人工標注 11,855 個句子的 215,154 個短語,每個短語由不同的人標注 3 次稚虎。
下圖是標注結(jié)果的可視化撤嫩,橫軸是短語的長度,縱軸是各個情感類別的比例蠢终。
最后的效果:
可以發(fā)現(xiàn)序攘,用新的 tree bank 的模型效果要比原來的好茴她,肯定否定情感分類越準。
更好的模型:
RNTN(Recursive Neural Tensor Network)
這個模型可以讓 word 之間有更多的 interaction程奠,‘very good’的詞向量的轉(zhuǎn)置和矩陣 V 再和詞向量本身作用丈牢。
最后的效果:
RNTN 作用在新的 Tree Bank 上效果可以高達 85.4.
4.Semantic Similarity
目的是識別語義相似性
用到的模型是 Tree LSTMs
Tree LSTMs 和普通的 LSTMs 的不同之處在于 Tree LSTMs 是從 tree 的結(jié)構(gòu)中進行LSTMs 的建模。
parent 的 hidden層是其 children 的 hidden 層的和瞄沙,每一個 forget unit 是根據(jù)具體的某個節(jié)點來計算的赡麦,計算最終 cell 時要把所有 forget units 和對應的 cells 相乘并求和,其他部分和普通LSTMs計算方法一樣帕识。
最后的效果:
[cs224d]
Day 1. 深度學習與自然語言處理 主要概念一覽
Day 2. TensorFlow 入門
Day 3. word2vec 模型思想和代碼實現(xiàn)
Day 4. 怎樣做情感分析
Day 5. CS224d-Day 5: RNN快速入門
Day 6. 一文學會用 Tensorflow 搭建神經(jīng)網(wǎng)絡
Day 7. 用深度神經(jīng)網(wǎng)絡處理NER命名實體識別問題
Day 8. 用 RNN 訓練語言模型生成文本
Day 9. RNN與機器翻譯
Day 10. 用 Recursive Neural Networks 得到分析樹
Day 11. RNN的高級應用
我是 不會停的蝸牛 Alice
85后全職主婦
喜歡人工智能泛粹,行動派
創(chuàng)造力,思考力肮疗,學習力提升修煉進行中
歡迎您的喜歡晶姊,關(guān)注和評論!