之前的方法是利用稀疏的詞匯特征作文本表示徽龟、CNN蔬啡、rnnLSTM
使用層級的attention network可以捕捉文檔的層級結(jié)構(gòu):1.因?yàn)槲臋n有層級結(jié)構(gòu),所以我們構(gòu)建的句子表示,然后聚合成文本表示 2.文本中不同的句子和單詞有不同的作用沧侥,并且高度依賴上下文善玫,例如水援,相同的詞在不同的文檔中有不用的意思
所以這篇文章,包括兩個level的attention茅郎,一個是在word上的一個是在sentence上的蜗元,為了在構(gòu)建文本表示的時候讓模型對word和sentence有更多的attention。
與之前工作不同的是:本文利用上下文來發(fā)現(xiàn)token什么時候是相關(guān)的系冗,而不是簡單地過濾了token奕扣,
結(jié)構(gòu)圖
HAN:包括幾個部分:word-sequence encoder、word-level attention layer掌敬、sentence encoder惯豆、sentence-level attention layer
1.sequence encoder(GRU-based)
GRU使用門機(jī)制,去追蹤序列的狀態(tài)奔害,沒有使用單獨(dú)的記憶單元
一共有兩種類型的門 :reset gate rt 和update gate zt楷兽,來一起控制信息是怎樣來更新的,time t how to compute the new state:
是之前的狀態(tài)ht-1和目前的狀態(tài)ht的線性插值华临,zt門決定之前有多少信息應(yīng)該被保存芯杀,多少新的信息應(yīng)該被添加,zt的更新方法
xt是時刻t中的序列向量雅潭,候選序列ht^ 使用類似傳統(tǒng)的RNN的方式來計(jì)算
rt是重置門揭厚,控制過去的狀態(tài)對候選狀態(tài)的貢獻(xiàn),如果rt是0寻馏,棋弥。忘記之前的狀態(tài),重置門的更新方法:
2.層級attention
使用層級結(jié)構(gòu)來構(gòu)建document level 向量
2.1 word encoder?
首先embeds the words 通過一個embedding矩陣诚欠,使用雙向的GRU顽染,通過累加詞的雙向信息漾岳,來獲得詞的annotation(注釋?)
(先直接使用了embedding粉寞,后面完整的模型中尼荆,使用的了BiGRU)
2.2 Word Attention
使用attention機(jī)制來提取,對sentence的meaning比較重要的詞唧垦,然后匯集這些詞的表示組成句子向量
1.首先 將word annotation 通過一層的MLP feed得到ut捅儒,作為隱層的表示,
2.然后在word-level振亮,度量詞的重要性作為uit的相似度巧还,然后通過softmax獲得一個標(biāo)準(zhǔn)的重要性權(quán)重ait
3.計(jì)算句子向量,si坊秸,權(quán)重單詞加和
4.context vector uw是最高層級的representation
2.3 sentence encoder
2.4 sentence attention
2.5 document classification