論文メモ 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) $$
- 論文はこちらからダウンロードできます。