低頻度語彙埋め込みの縮約による事前学習済みモデルの圧縮

自然言語処理で標準的に用いられる事前学習済みモデルは，モデルサイズ（パラメタ数）およびその学習（データサイズ）を大規模化することで単調に性能が改善する[1]ことから，近年，肥大化の一途を辿っている．これらのモデルをスマートフォンのような計算資源の限られる環境でも扱うためには，計算量，メモリ使用量の両面でモデルを軽量化することが重要になる．これに対して，量子化，枝刈り，知識蒸留など，様々なモデル圧縮手法[2]が研究されているが，これらの多くはモデルの中間層を軽量化するものであり，圧縮されたモデルをさらに小さくするためには入出力層（語彙埋め込み）の軽量化が重要となる．事前学習済みモデルの語彙[3,4,5]は，事前学習時の学習データに対して最適化されているため，単語分布の異なる下流タスクのドメインには出現しない語彙や低頻度となる語彙が含まれる．これらの低頻度語彙の下流タスクの推論への影響は少ないと予想され，単純に削除することも可能ではあるが，一定以上語彙を圧縮しようとすると，単純な削除では性能低下を避けることが難しい．本研究では，下流タスクの学習データで微調整済みの事前学習済みモデルを対象に，推論への影響が少ないと期待できる，下流タスクの学習データで低目的タスクの学習データfine-tuning📄事前学習済みモデル微調整済みモデル中間層中間層埋め込み層埋め込み層頻度フィルタリング販売販売出版出版書籍書籍販売中間層出版出版埋め込み層書籍埋め込み層が縮約されたモデル重みでの縮約表現による埋め込みを近似する埋め込みの構成重みの探索約表現(k=2)．モデルは縮約表現された語彙自体は保存せず，埋め込みを再構成するための重みと対応する語彙のIDを保存する．頻度となる語彙の埋め込みを高頻度語彙の埋め込で縮約表現することで，推論への影響を抑えて語彙埋め込みを圧縮する．具体的にはまず，下流タスクの学習データを圧縮対象の事前学習済みモデルのトークナイザでトークン化し，各語彙の頻度を数える．次に，圧縮の目標とする語彙サイズを超える頻度順位を縮約対象とする低頻度語彙とし，事前学習済みモデルの埋め込み空間内で𝑘近傍となる高頻度語彙を検索し，その埋め込みの線形和により，低頻度語彙の埋め込みを縮約表現する（図1)．実験では，DistilBERT[6]を対象に，日本語言語理解データセットJGLUE[7]に含まれる下流タスクのデータセット（JNLI,JSTS,JCoLA[8]）を用いて提案手法の有効性を評価した．具体的には，各下流タスクで微調整したDistilBERTに対し，下流タスクの学習データに出現する語彙サイズを超える頻度順位の語彙を縮約表現したときの性能低下を評価した．.