最近在研究Attention機(jī)制在自然語言處理中的應(yīng)用校辩,查找了一些文獻(xiàn)召川。
文獻(xiàn):Hierarchical Attention Networks for Document Classification
GitHub實(shí)現(xiàn)代碼
GitHub實(shí)現(xiàn)代碼
參考博客:Text Classification, Part 3 - Hierarchical attention network
開始正題:
文章主要的兩個(gè)貢獻(xiàn):
- 第一: 利用文檔原有的層次結(jié)構(gòu)特性(句子是由單詞組成,文檔是由句子組成)汉形,先使用單詞的詞向量表示句子概疆,再此基礎(chǔ)上以句子向量構(gòu)建文檔的信息表示峰搪。
- 第二:在文檔中概耻,句子對(duì)文檔的重要性貢獻(xiàn)有差異,在句子中單詞對(duì)句子的重要性貢獻(xiàn)也有差異侦高。而單詞和句子的重要性依賴于上下文環(huán)境厌杜。相同的單詞夯尽,在不同的上下文中所表現(xiàn)出的重要性是不一樣的。為了描述這種情況咆槽,引入了Attention機(jī)制來描述這種重要性罗晕。
- 文章分別從句子級(jí)和文檔級(jí)兩個(gè)層次使用Attention機(jī)制。
- Attention機(jī)制可以帶來兩個(gè)優(yōu)點(diǎn):一個(gè)可以提升分類性能法褥,第二個(gè)可以提升識(shí)別出在影響最終分類決策的單詞或句子的重要性酬屉。
主要思路
- 網(wǎng)絡(luò)結(jié)構(gòu):包括五層網(wǎng)絡(luò)呐萨,詞向量編碼(GRU),詞向量Attention層切距,句子向量編碼(GRU)谜悟,句子向量Attention層北秽,softmax輸出層.
網(wǎng)絡(luò)結(jié)構(gòu)
Attention機(jī)制應(yīng)用的假設(shè)是對(duì)句子的含義贺氓,觀點(diǎn)辙培,情感等任務(wù),每個(gè)單詞的貢獻(xiàn)是不相同的肤粱。因此,使用Attention機(jī)制去抽取更重要的單詞
單詞詞向量:
查詢?cè)~向量表(比如GloVe厨相,Word2Vec等)生成句子中每個(gè)單詞的詞向量,并將句子表示為單詞詞向量的連接
句子鸥鹉。
這里面:
表示的就是句子中每個(gè)單詞的詞向量表示蛮穿,句子的總長度為T。
這種表示方法就表示了以某個(gè)單詞為中心的句子相關(guān)信息毁渗。
單詞級(jí)Attention
因?yàn)榫渥又忻總€(gè)單詞的重要性不相同践磅,因此使用Attention機(jī)制描述每個(gè)單詞的重要性,抽取相對(duì)句子含義重要的那些單詞灸异,使用這些重要的詞的詞向量組成句子的向量表示
將GRU輸出的詞的引隱狀態(tài)向量羔飞,作為MLP(Multi Layer Percetron)的輸入,計(jì)算得到詞向量隱狀態(tài)的新的表示檐春。
這里有個(gè)問題:uw是如何來的逻淌?bw是如何計(jì)算的?uw初始時(shí)隨機(jī)初始化為疟暖,在訓(xùn)練階段學(xué)習(xí)獲得卡儒。bw也是學(xué)習(xí)獲得。
按照和單詞級(jí)的向量表示一樣的方式俐巴,計(jì)算句子級(jí)的向量表示骨望。
將最后句子級(jí)向量表示的文檔輸入softmax層,計(jì)算分類欣舵。
使用的loss是交叉熵
最終結(jié)果: