論文原文:A STRUCTURED SELF-ATTENTIVE SENTENCE EMBEDDING 引言
這篇文章提出了使用self-attention技術來產生可解釋句子向量的模型。通常我們使用向量(vector)來表示單詞、短語或者句子向量,在這篇文章中,作者提出可以使用二維句子來表示句子,矩陣的每一行表示句子的不同部分。作者在3個不同的資料集上進行了3種不同的task,分別是author profiling,sentiment classification以及textual entailment,都取得了不錯的效果。 模型
作者提出的模型主要由2部分組成。第1部分是一個雙向LSTM,第2部分是self-attention mechanism,該機制提供了對LSTM的隱藏層狀態進行加和的權重。
模型結構圖如下a:
模型的輸入: S=(w1,w2,...,wn)∈Rn∗d S=(w_1, w_2, ..., w_n) \in R^{n*d},一個含有n個token的序列, wi w_i表示序列中第i個token對應的word embedding
輸入的S進入一個雙向LSTM,第t個單詞對應的前向和後向隱藏狀態計算方法如下:
然後將前向和後向的隱藏狀態進行串連得到用於後續計算的 ht h_t,如果LSTM的隱藏單元數為u,則 ht∈R2u h_t\in R^{2u}。文中用句子 H∈Rn∗2u H\in R^{n*2u}表示所有隱藏狀態h的集合:
至此,BiLSTM的使命結束了。
上圖中b部分就是用於產生self-attention的簡單前饋神經網路:
a=softmax(Ws2tanh(Ws1HT)) a=softmax(W_{s2}tanh(W_{s1}H^T))
其中, Ws1∈Rda∗2u,HT∈R2u∗n,Ws2∈R1∗da W_{s1}\in R^{d_a*2u}, H^T\in R^{2u*n}, W_{s2}\in R^{1*d_a},所以最終a的形狀為 R1∗n R^{1*n},並且由於使用了softmax函數進行了歸一化,a的每一維度可以認為是對應位置單詞的attention。
至此,self-attention機制介紹完畢。
然後就可以得到句子表示 m=a⋅H∈R1∗2u