Coda

論文メモ A Neural Attention Model for Sentence Summarization

June 20, 2020

注意機構による深層学習で文を要約する手法である。 もとの文にない単語を含む要約文を生成できるが、生成前に文の長さを決めておかなければならない。

モデルへの入力文を\(\boldsymbol{\rm x}\), 出力文を\(\boldsymbol{\rm y}\)とすると、スコア関数\(s\)を含む次の式が最適な要約文になるようモデルを学習する。 $$ \underset{\boldsymbol{\rm y}\in \mathcal{Y}}{\operatorname{argmax}} s(\boldsymbol{\rm x}, \boldsymbol{\rm y}) $$ 入力文\(\boldsymbol{\rm x}_1, \dots , \boldsymbol{\rm x}_M\)や出力文\(\boldsymbol{\rm y}_1, \dots , \boldsymbol{\rm y}_N\)のトークンは、要素数\(\mid V\mid\)の語彙\(\mathcal{V}\)のOne-hotベクトルで表される。 要約であるため、\(N < M\)になる。

ウインドウサイズを\(C\)とする\(\boldsymbol{\rm y}_c\triangleq \boldsymbol{\rm y}_{[i-C+1,\dots , i]}\)によるマルコフ性を仮定し、スコア関数を次の式で近似する。 $$ \begin{align} s(\boldsymbol{\rm x}, \boldsymbol{\rm y})&\approx \sum^{N-1}_{i=0}\log p(\boldsymbol{\rm y}_{i+1}\mid \boldsymbol{\rm x}, \boldsymbol{\rm y}_c;\theta)\\
p(\boldsymbol{\rm y}_{i+1}\mid \boldsymbol{\rm x}, \boldsymbol{\rm y}_c;\theta)&\propto \exp (\boldsymbol{\rm Vh}+\boldsymbol{\rm W}\text{enc}(\boldsymbol{\rm x,y_c}))\\
\tilde{\boldsymbol{\rm y}}_c&=[\boldsymbol{\rm E}\boldsymbol{\rm y}_{i-C+1},\dots , \boldsymbol{\rm E}\boldsymbol{\rm y}_i]\\
\boldsymbol{\rm h}&=\tanh (\boldsymbol{\rm U}\tilde{\boldsymbol{\rm y}}_c) \end{align} $$ パラメタは\(\theta = (\boldsymbol{\rm E},\boldsymbol{\rm U}, \boldsymbol{\rm V}, \boldsymbol{\rm W})\)である。 \(\boldsymbol{\rm E}\in \mathbb{R}^{D\times V}\)は分散表現の行列であり、\(\boldsymbol{\rm U}\in \mathbb{R}^{(CD)\times H}, \boldsymbol{\rm V}\in \mathbb{R}^{V\times H}, \boldsymbol{\rm W}\in \mathbb{R}^{V\times H}\)は重み行列である。 \(\boldsymbol{\rm h}\)はサイズ\(H\)の隠れ層である。

\(\text{enc}\)は文脈と入力を表すサイズ\(H\)のベクタを返すエンコーダであり、注意機構がつかわれる。 $$ \begin{align} \text{enc}(\boldsymbol{\rm x}, \boldsymbol{y}_c)&=\boldsymbol{\rm p}^{T}\boldsymbol{\rm \bar{x}},\\
\boldsymbol{\rm p}&\propto \exp(\tilde{\boldsymbol{\rm x}}\boldsymbol{\rm P}\tilde{\boldsymbol{\rm y}}’_c),\\
\tilde{\boldsymbol{\rm x}}&=[\boldsymbol{\rm F}\boldsymbol{\rm x}_1,\dots , \boldsymbol{\rm F}\boldsymbol{\rm x}_M],\\
\tilde{\boldsymbol{\rm y}}’_c&=[\boldsymbol{\rm G}\boldsymbol{\rm y}_{i-C+1}, \dots , \boldsymbol{\rm G}\boldsymbol{\rm y}_i],\\
\forall i\ \bar{\boldsymbol{\rm x}}_i &=\sum^{i+Q}_{q=i-Q}\tilde{\boldsymbol{\rm x}}_i/Q \end{align} $$ \(\boldsymbol{\rm G}\in \mathbb{R}^{D\times V}\)は文脈を示す分散表現で、\(\boldsymbol{\rm P}\in \mathbb{R}^{H\times (CD)}\)は重み行列である。 \(Q\)は平準化のためのウィンドウのサイズに対応する。

学習では負の対数尤度関数を損失関数にもちいる。\(J\)件の学習データのうち\(j\)番目のデータを\((\boldsymbol{\rm x}^{(j)}, \boldsymbol{\rm y}^{(j)})\)とすると、損失関数は次の式になる。 $$ \begin{align} \text{NNL}(\theta)&=-\sum^J_{j=1}\log p(\boldsymbol{\rm y}^{(j)}\mid \boldsymbol{\rm x}^{(j)};\theta)\\
&=-\sum^J_{j=1}\sum^{N-1}_{i=1}\log p (\boldsymbol{\rm y}^{(j)}_{i+1}\mid \boldsymbol{\rm x}^{(j)},\boldsymbol{\rm y}_c;\theta) \end{align} $$

推定時は、次の\(\boldsymbol{\rm y}^*\)をBeam searchにより近似的に求める。

$$ \boldsymbol{\rm y}^* = \underset{\boldsymbol{\rm y}\in \mathcal{Y}}{\operatorname{argmax}}\sum^{N-1}_{i=0}g(\boldsymbol{\rm y}_{i+1},\boldsymbol{\rm x}, \boldsymbol{\rm y}_c) $$

fig