# 単語の重要度に応じてパラメタ数可変な単語分散表現の学習

露木浩章 小川哲司哲則林良彦
早稲田大学理工学術院
tsuyuki@pcl.cs.waseda.ac.jp

## 1 はじめに

本研究では単語分散表現の圧縮を目的として，単語の重要度に応じてパラメタ数を可変とするゲート 機構を提案しその有効性を評価する。

ニューラルネットワークを用いた自然言語処理モ デルにおいて，単語ベクトルは単語の意味を表す特徵量の役割を果たす。しかし，モデルの精度向上の ために単語ベクトルの次元サイズや語彙サイズを大 きくすると，必要メモリ量が膨大となりモバイル端末上での処理が困難である．メモリコストの問題を 解決しモバイル端末上で実行できれば，データの送受信コストやユーザデータの情報漏洩リスクを低減 できる. また既存研究より，単語ベクトルのパラメ タ冗長性を排除することは，必要メモリ量の削減だ けでなく，過学習の抑制に基づくモデルの精度向上 にも寄与することが分かっている [1].

単語ベクトルのパラメタ数が膨大な場合，出現回数が少ない統計的に信頼性の低い単語を<unk>に置換する前処理が用いられる。しかし，感情分析にお ける感情語のようにタスクにおいて重要な役割を 持つ単語 (重要語) を置換するとモデルの精度低下 につながる。例えば，IMDB コーパス [2]を用いた 感情分析の予備実験では出現回数が 2 回以下の語 を<unk>に置換すると，置換しない場合と比べて感情語が 1098 個減り，0.9 ポイント識別精度が低下し た. 本研究では，識別に寄与する重要語に多くのパ ラメタを割り振り，寄与しない非重用語には少ない パラメタを割り振ることで，モデルの精度を落とす ことなく単語べクトルのパラメタ数を削減する手法 を提案する。

パラメタ数の少ない単語同士は似たべクトルに なりやすいため，提案法は感情語を<unk>に置換せ ずに残したまま，感情分析に寄与しない非重要語を <unk>に置換する機能を果たす. 実験の結果，提案法はモデルの精度を落とすことなく従来法を上回る圧縮率を達成した。また，感情分析タスクで学習す ると長いコードが割り当てられた語彙の中に感情語 が多く存在することを確認した。

## 2 関連研究

単語ベクトルに要するメモリ量を削減する手法は 語彙サイズを減らす手法と単語あたりの必要メモリ 量を減らす手法の 2 つに大別できる。

語彙サイズを減らす手法として Byte Pair Encoding (BPE) [3] が存在する。 BPE は目的コーパスにお ける出現回数に応じてサブワード分割する．BPE は OOV 問題を解決でき，語彙サイズも低減できる強力な手法だが，文中に含まれるトークン数が増加す ることから，文べクトルを構成する際に用いられる LSTM や Self-attention Network における計算量や必要メモリ量が増大しやすい。

単語あたりの単語ベクトルに要するメモリ量を削減する手法として量子化を用いた重み共有法が用い られる．全単語間で共有されるパラメタの内，入力単語に適切なパラメタを選択する離散値のコードを 学習する. Neural Compressor (NC) [4] は最大值 K の 自然数からなる長さ $\mathrm{M}$ のコードに基づき， $\mathrm{M} \times \mathrm{K}$ の コードブック ( Decoder) から M 個の基底ベクトルを 抜き出し，その和によって単語べクトルを再構成す る手法である．各単語に割り当てられた離散値コー ドに要する bit 数が小さくなり，単語ベクトルの高 い圧縮率を達成した． Near-loss-Binarization (Bin) [5] では離散値コードをバイナリ化し，さらに高い圧縮率を達成した．NCと Binではいくつかのコーパス で元の単語ベクトルよりも圧縮語の単語ベクトル の方がタスクの精度が高くなることが報告されて いる。これは単語間で重みを共有することで低頻度語の学習が容易になったためであると考えられる。本研究と同様にバイナリコードの長さを単語ごと に可変とする手法として AdaComp [6] が存在する. AdaComp では $(32,16,6,4)$ のように長さの異なるバ

図 1 可変長コードを学習するニューラルネットワークの 図. 点線は gumbel softmax と Sign 関数の計算を表す.

イナリコードを扱う AutoEncoderを 4 つ用意し，単語ごとに使用する AutoEncoder を選択する手法であ る.しかし，異なるコード長を持つ単語間で異なる コードブック (Decoder) が用いられることから，NC やBin で重要とされている重み共有が一部行われて いない。また，コード長の種類を増やすと学習パラ メタ数が増大し過学習しやすくなる. 本研究では異 なるコード長を持つ単語間でも同じコードブックを 使用することで，重み共有を実現する。また，学習 パラメタ数を増やさずにコード長の種類を増やす事 が可能なためより細かいコード長の調整が可能で ある.

## 3 提案法

本節では，本研究で提案する手法について述べ る。提案法は学習済みの単語ベクトル GloVe [7] か らバイナリコードを得る AutoEncoder の機構 ( 3.1 節) と, 入力単語ベクトルに応じて選択された長さ 以上の要素をバイナリコードから削除するゲート機構 ( 3.2 節) からなる.

## 3.1 バイナリコードの学習

バイナリ制約のある AutoEncoder を使用する。学習済み単語ベクトルを入力とする AutoEncoderを学習した後，得られた中間特徵量を入力単語ベクトル のバイナリベクトル，Decoderを単語間で重み共有 されるコードブックとして用いる. $x \in \mathbb{R}^{d}$ を入力単語ベクトル,$m$ をバイナリコードの最大コード長と するとき単語べクトルを以下のように再構成する.

$
\hat{x}=W_{\text {dec }}\left(\Phi\left(W_{\text {enc }} x+b_{\text {enc }}\right) \circ g\right)+b_{\text {dec }}
$

$W_{e n c} \in \mathbb{R}^{d \times m} と W_{d e c} \in \mathbb{R}^{m \times d}, b_{e n c}, b_{d e c}$ は Encoder と Decoder の学習パラメタである. 関数 $\phi(\cdot)$
と $g$ は Encoder の出力をバイナリ化する関数とコー ド長を可変とするゲート機構である．関数 $\phi(\cdot)$ とし て以下の式 2 を用いる.

$
\Phi\left(h_{i}\right)=\operatorname{ReLU}\left(\operatorname{Sign}\left(h_{i}\right)\right)= \begin{cases}+1 & \left(x_{i} \geq 0\right) \\ 0 & \text { otherwise }\end{cases}
$

関数 $\phi(\cdot)$ は 1 と 0 からなるバイナリコードを出力 するが関数 $\operatorname{sign}(\cdot)$ の微分値は 0 になるため誤差逆伝播法による学習ができない．そこで上位から伝搬してきた微分値をそのまま下位の層に伝搬する Straight-Through Estimator (STE) [8] を適用する.

## 3.2 コード長を可変とするゲート機構

単語ベクトルを Encoderを通してバイナリコード に変換した後， 入力単語に適切な長さまでバイナリ コードを消去するゲート機構 $g$ を適用する.

$
g=\operatorname{cumsum}(\alpha)=\sum_{i \leq m}^{m} \alpha_{i}
$

$\alpha$ はある 1 つの要素のみ 1 で他の要素が 0 な one-hot ベクトルであり, $\operatorname{cumsum}(\cdot)$ は累積和の関数である. $\alpha$ において 1 がたつ要素の要素番号がその単語の コード長を表している. 微分可能な形で one-hot べ クトルを学習するために Gumbel Softmax [9]を用い て， $\alpha$ を以下のように計算する.

$
\begin{aligned}
\alpha_{i} & =\operatorname{softmax}_{\tau}\left(\log \beta_{i}+G_{i}\right) \\
& =\frac{\exp \left(\left(\log \beta_{i}+G_{i}\right) / \tau\right)}{\sum_{j=1}^{m} \exp \left(\left(\log \beta_{j}+G_{j}\right) / \tau\right)}
\end{aligned}
$

式 4 の $G_{i}$ は Gumbel 分布 $-\log (-\log ($ Uniform $[0,1]))$ からサンプリングされるノイズであり， $\tau$ は温度パ ラメタである． $\beta$ は単語べクトルを入力とする 2 層 のニューラルネットワーク $\mathrm{f}(\cdot)$ によって計算する.

$
\beta=\mathrm{f}(x)=\operatorname{softplus}\left(W \tanh \left(W^{\prime} x+b^{\prime}\right)+b\right)
$

$W \in \mathbb{R}^{d \times d}$ と $W^{\prime} \in \mathbb{R}^{d \times d}, b, b^{\prime}$ は学習パラメタで ある．実験では $\tau=0.1$ とした。

## 3.3 目的関数

単語ごとにバイナリコードの長さを可変とするモ デルの学習によって，目的タスクにおける重要語に は長いコードを，非重用語には短いコードを割り当 てる。このとき，コーパスによってはすべての単語 のコード長が最大長に収束するおそれがあるため， コード長に関する制約項を加えた。目的タスクにお ける学習の目的関数を以下の式 6 に示す.

$
L=L_{\text {task }}+\lambda_{2} \frac{1}{m} \sum_{i=0}^{m} g_{i}
$
表 1 各タスクに用いたコーパスのサイズ.

式 6 の第一項 $L_{\text {task }}$ は各タスクにおける目的関数で ある. 第二項はコード長に関する制約項である． $\lambda_{2}$ は定数であり，実験では 0.0001 とした.

先行研究 [6] から事前学習の導入によって目的夕 スクにおけるモデル精度が向上することが明らかに なっている. 本研究では再構成誤差に基づく事前学習をした後に目的タスクにパラメタを適応させた。事前学習の目的関数を以下の式 7 に示す.

$
L_{\text {pre }}=\frac{1}{m} \sum_{i=0}^{m}\left(x_{i}-\hat{x_{i}}\right)^{2}+\frac{\lambda_{1}}{2}\left.\|W_{\text {dec }} W_{e n c}-I\right.\|^{2}
$

$\lambda_{1}$ は定数であり，実験では 0.01 とした. 式 7 の第一項は入力単語ベクトルの再構成誤差, 第二項はバイ ナリコードの各要素が異なる観点の情報を Encode し, 浱性を減らすような正則化項である. 事前学習のとき $W_{\text {dec }}$ と $W_{\text {enc }}$ は同じパラメタとなるようパ ラメタを共有した．また，事前学習時はモデルから ゲート機構を取り除いた。

## 4 実験

## 4.1 実験設定

再構成誤差による事前学習と目的タスクにおける fine-tuning の 2 ステップの学習を行った. コードの 最大長 $m$ は 32，64，128の 3 種を比較した。異なる コード長に設定された 4 つの AutoEncoder を用いる AdaComp [6] については $(\mathbf{1 2 8}, 64,32,16),(\mathbf{6 4}, 32,16,8)$, $(\mathbf{3 2}, 16,8,4)$ の 3 種を比較手法とした.

コードの事前学習 300 次元の単語ベクトル GloVe ${ }^{1)}$ を使用した. 目的タスクにおける fine-tuning を前提としていない手法と公平な比較を行うため，実験では目的タスクに fine-tuning した GloVeを学習済みの単語ベクトルとして用いた。学習には Adam を使用し学習率は 0.001 , バッチサイズは 64 とした.

タスク適応したコードの学習 評価に用いたタス クを表 1 に示す. 学習には GloVe 中に存在する語彙 のみを使用した. 学習の高速化のため DBpedia [12]


は単語ベクトルの平均を，それ以下のタスクでは 2 層からなる LSTM の各タイムステップ出力の平均を 文ベクトルとした，LSTM のユニット数は 450，識別層として 1 層のニューラルネットワークを使用し た. 学習には Adam を使用し学習率は DBpedia のみ 0.0001，それ以外のタスクには 0.001 を用いた，バッ チサイズは 64 とした.

## 4.2 実験結果

最大バイナリコード長を変えて実験したときの識別精度と圧縮率を表 2 に示す. 表 2 より, DBpedia 以外のタスクにおいタスクで圧縮前の単語ベクト ル GloVe finetuneよりも圧縮語の単語ベクトルの方 がタスクの識別精度が高い。同様の結果は先行研究 $[4,5,6]$ でも報告されており, 強い正則化による 効果だと考察されている.コードブック (Decoder) の重み共有により低頻度語の学習が簡単になっ た点，識別タスクにおいて区別する必要のない単語 (Tom と Mary 等) がバイナリ化によってより近い ベクトルとなり後段の LSTM の学習が容易になった 点が理由として考えられる. DBpedia は多くの学習 データを用いた学習が行えるため, 正則化が必要な かったと考えられる. 小規模コーパスにおけるモデ ルの学習において過学習を防ぐ正則化は重要であ り，単語ごとにコード長を可変とする提案法はこの 正則化の効果をタスクの非重要語に対してより強め るものである.

コード長を可変とする手法 (AdaComp，Ours) は コード長固定の手法 Bin よりも高い精度を示した.特に提案法は AdaComp よりも精度が高く, 圧縮率も高くなった. 次の 2 つの点から精度が向上し たと考えられる.1つ目はより多様なコード長を 選択できる点である. AdaComp はコード長ごとに AutoEncoderを用意するために，コード長の種類を 増やすとパラメタが増えて学習が難しくなる．提案法はパラメ夕数はそのままに最大コード長と同じ数 だけコード長の種類を用意できるため，より細かく 冗長性を排除できる. 2 つ目は重み共有により学習 が容易になった点である．異なるコード長を持つ単語間での重み共有により低頻度語学習の効率化が精度向上につながったと考えられる. DBpedia コーパ スにおいて，コード長を可変とする提案法は Bin と 比較して圧縮率が大きく向上した。語彙サイズが大 きいコーパスほど，多くの非重要語が出現するため より多くのパラメタを消去できためである.
表 2 各タスクにおけるバイナリコードを用いる手法の実験結果.

図 2 各コード長が割り当てられた語彙と感情語の平均出現回数.

## 5 コード長の分析

提案法を学習した結果得られたバイナリコードに ついて，2つの分析をした. 提案モデルの学習には SST5コーパスを用いた.

コード長と語彙の出現回数 各コード長が割り当 てられた語彙と感情語について，SST5コーパスに おける出現回数の平均を図 2 に示す. 感情語は感情語辞書 [13]に含まれている語のうち SST5 コーパス に出現した語を使用した. 図 2 より, 出現回数の多 い語には長いコードが割り当てられる傾向がある が, 出現回数の多い語がコード長 14 や 20 から 24 あ たりに特に多く存在していることがわかった. 個々 のバイナリコードを見ると"the"や"on"のように文の 感情極性に依存しないが出現回数の多い語がコー ド長 14 や 20 から 24 に多く存在していた. 対して, コード長ごとの感情語の平均出現回数の違いに傾向 は確認できなかった。

図 3 各コード長が割り当てられた語彙のうち，感情語の 比率.

コード長と感情語の比率 各コード長が割り当て られた語彙のうち，その語が感情語である比率を 図 3 に示す. 長いコードほど感情語の比率が高くい ことがわかった. 提案法によって感情語のような タスクにおける重要語に長いコードが割り当てら れる。

## 6 おわりに

本研究では単語分散表現の圧縮を目的として，単語ごとのパラメタ数を可変とするゲート機構を提案 した. 提案法はモデルの精度を落とすことなく従来法を上回る圧縮率を達成した。感情分析タスクにお いて感情語に多くのパラメタ (長いコード) が割り当 てられていたことから，提案するゲート機構の導入 によって，期待通りにタスクにおける重要語に多く のパラメタを割り振られ非重要語には少ないパラメ タを割り振られることが分かった.

## 参考文献

[1] Maximilian Lam. Word2bits - quantized word vectors. arXiv:1803.05651v3, 2018

[2] Andrew L. Maas, Raymond E. Daly, Peter T. Pham, Dan Huang, Andrew Y. Ng, and Christopher Potts. Learning word vectors for sentiment analysis. In $A C L, 2011$.

[3] Rico Sennrich, Barry Haddow, and Alexandra Birch. Neural machine translation of rare words with subword units. In $A C L, 2016$.

[4] Raphael Shu and Hideki Nakayama. Compressing word embeddings via deep compositional code learning. In ICLR, 2018.

[5] Julien Tissier, Christophe Gravier, and Amaury Habrard. Near-lossless binarization ofword embeddings. In $A A A I$, 2019.

[6] Yeachan Kim, Kang-Min Kim, and SangKeun Lee. Adaptive compression ofword embeddings yeachan. In $A C L$, 2020.

[7] Jeffrey Pennington, Richard Socher, and Christopher Manning. Glove: Global vectors for word rep- resentation. In EMNLP, 2014.

[8] Geoffrey E. Hinton. Neural networks for machine learning.coursera, video lectures. 2013.

[9] Eric Jang, Shixiang Gu, and Ben Poole. Categorical reparameterization with gumbel-softmax. In ICLR, 2017.

[10] Richard Socher, Alex Perelygin, Jean Y. Wu, Jason Chuang, Christopher D. Manning, Andrew Y. Ng, and Christopher Potts. Recursive deep models for semantic compositionality over a sentiment treebank. In EMNLP, 2013.

[11] Ellen M Voorhees and Dawn M Tice. The trec-8 question answering track evaluation. In TREC, 1999.

[12] Xiang Zhang, Junbo Zhao, and Yann LeCun. Characterlevel convolutional networks for text classification. In NIPS, 2015.

[13] Minqing Hu and Bing Liu. Mining and summarizing customer reviews. In $K D D, 2004$.
 露木浩章 小川哲司哲則林良彦 早稲田大学理工学術院 tsuyuki@pcl.cs.waseda.ac.jp  