サブワードとは、単語をそれより短い文字の断片に分割して処理する自然言語処理の手法です。未知語への対応や語彙数の爆発を防ぐため、大規模言語モデルなど多くのAIで標準的に採用されています。
サブワードとは
一言でいうとサブワードとは、単語を意味のある小さな単位に分割することで、未知の単語や多様な表現に柔軟に対応できるようにするテキスト処理の仕組みです。
詳しく解説
大規模言語モデルやニューラル機械翻訳では、あらかじめ決められた単語のリストである語彙を用いてテキストを数値化します。しかし、すべての単語を事前に登録することは不可能であり、登録されていない未知語が登場すると正しく処理できないという問題がありました。これを解決するのがサブワードです。一般的な手法としてBPEやWordPieceなどが使われ、頻出する単語はそのまま、稀な単語は複数のサブワードに分割して表現します。これにより、語彙数を適切に管理しつつ、あらゆるテキストを高精度に処理できるようになりました。
具体例・使われ方
例えば、「unhappiness」という単語を処理する場合、モデルによっては「un」「happiness」や、「un」「happi」「ness」といったサブワードに分割して認識します。これにより、見たことがない派生語や造語であっても、既知の部品の組み合わせとして意味を推測することが可能です。
似た用語との違い
文字単位の処理では極端にシーケンスが長くなり計算コストが増加し、単語単位の処理では未知語に対応できないというジレンマがありました。サブワードは文字単位と単語単位の中間に位置し、それぞれの欠点を補うバランスの取れた手法です。
注意点
サブワードの分割方法は使用するトークナイザーや学習データによって異なるため、モデルを変更した際に予期せぬ分割が起きることがあります。また、言語や文字種によって分割の効率が変わる点にも注意が必要です。