1. 定義と概要
OOV(Out-of-Vocabulary)とは、機械学習モデルが学習時に構築した語彙に含まれておらず、モデルにとって未知のまま扱われる単語を指す用語です。日本語では未知語と呼ばれ、OOVは英語表記 Out-of-Vocabulary の略称です。
具体例としては、学習後に登場した新語や流行語、学習データに含まれていなかった人名や地名などの固有名詞、誤字脱字、専門用語や略語、SNS特有のスラングなどが挙げられます。
従来、単語をそのまま1つの単位として扱う手法では、モデルが持つ語彙表に載っていない単語を扱う手段がなく、そのまま処理を続けられなくなる制約がありました。単語ごとに個別のベクトルを割り当てるword2vecのような分散表現(単語の意味を100〜300次元程度の数値ベクトルで表す表現方法)の手法が、その代表例にあたります。
言語は日々新しい単語が生まれ続けるうえ、あらゆる固有名詞や誤字のパターンを事前に語彙へ収めることは現実的に難しく、OOVはテキストを扱ううえで避けられない現象として発生します。この課題に対応するため、未知語を専用の記号に置き換える方法や、単語より小さい単位に分解して扱う方法など、複数の対処法が考案されてきました。
2. 試験対策ポイント
まず整理したいのは、OOVが発生する典型的な要因です。学習後に生まれた新語や流行語、学習データに存在しなかった人名・地名などの固有名詞、誤字脱字、専門用語・略語、SNS特有の表現などが代表的な要因として整理されます。語彙表がどれだけ大規模でも、これらをすべて事前に網羅するのは容易ではありません。
対処法の一つに、未知語をUNKトークン(未知語をまとめて表すために使う専用の記号)へ一律に置き換えて処理を継続する方法があります。実装が単純である一方、置き換えられた単語同士の違いは同じ記号にまとめられて区別できなくなり、元の単語が持っていた情報は失われる点も特性として押さえておきたいところです。
もう一つの対処法として、単語をサブワード(単語をさらに細かく分けた文字のかたまり)に分解し、既知の断片の組み合わせから未知語の表現を合成する方法があります。文字の並びの出現頻度をもとに結合を繰り返して語彙を作るBPE(Byte Pair Encoding)は、その代表例の一つです。
単語を文字レベルの構成要素に分解して学習するfastText(サブワードを扱う自然言語処理のライブラリ)のサブワード方式も、こうした考え方に基づく代表的な対処法の一つに位置づけられます。いずれも内部の詳しい仕組みは別記事のテーマですが、まずは考え方の違いを押さえておきたいところです。
文字単位でテキストを扱う処理(文字N-gram等)も、そもそも単語単位に依存しないためOOVの影響を受けにくい特性があります。UNKトークンへの置き換え、サブワード分割、文字単位の処理という3つの方向性を関連づけて理解しておきたいところです。
3. 関連概念との比較・相違点
単語単位の手法(word2vec等)とサブワード・文字単位の手法(fastText・文字N-gram等)の最大の違いは、OOVへの強さです。単語をそのまま1つの単位として扱う手法は、学習時の語彙に無い単語を表現する手段を持たず、未知の単語に出会うとそのままでは処理を続けられません。
これに対し、単語より小さい単位に分解する手法は、既知の断片の組み合わせから未知語も表現できる点で対照的です。実務でOOVの発生が避けられない場面では、後者の手法を選ぶ余地が広がります。
UNKトークンへの置き換えとサブワード分割も、OOVへの対処のアプローチが異なります。UNKトークン置き換えは、未知語をひとまとめの記号に退避させて処理を止めない簡易的な対処です。実装は単純ですが、未知語同士の違いが区別できなくなる代償を伴います。
一方でサブワード分割は、未知語の内部構造にあたる文字の並びを保ったまま意味のある表現を合成しようとする対処であり、UNKトークンに比べて元の単語が持つ情報を残しやすい点が特徴です。
4. ビジネス・実務での活用シナリオ
カスタマーサポートやチャットボット(自動応答システム)の現場では、新商品名や略語、入力ミスを含む問い合わせ文が日常的に寄せられます。サブワード分割を用いたモデルであれば、未知語を既知の断片に分解して意味の推定を試みられます。未知語をすべてUNKトークンに置き換える方式では、元の単語の情報が失われ、問い合わせの意図を正しく把握することが難しくなりやすいのが実情です。
検索エンジンやEC(電子商取引)サイトでも、流行語や新語、表記ゆれを含む検索クエリへの対応が求められます。サブワードや文字単位で既知の部分文字列と照合できる仕組みであれば、語彙表に載っていない語を含むクエリに対しても、関連性の高い検索結果を返せます。単語単位でしか一致を判定できない仕組みでは、こうした表記ゆれへの対応が難しくなる点が制約です。
医療や法律等の専門分野の文書処理では、専門用語や略語が多いことから、一般的な語彙で学習したモデルほどOOVが発生しやすくなります。分野特化の語彙を追加で構築したり、サブワード分割を採用したりすることが、実務上の対処として使われます。専門性の高い文書ほど、OOVへの備えが処理の精度を左右する要素です。
5. 要点まとめ
- OOV(Out-of-Vocabulary)とは、モデルが学習時に扱った語彙に含まれず推論時に初めて出会う単語(未知語)を指す用語で、新語・固有名詞・誤字・専門用語などで日常的に発生します。
- word2vecのように単語ごとに1つのベクトルを割り当てる単語単位の手法はOOVを表現する手段を持たず、対処法としてUNKトークンへの置き換え、サブワード分割、文字単位の処理が用いられます。
- UNKトークン置き換えは未知語の情報を失う簡易な対処であるのに対し、サブワード・文字単位の手法は既知の断片の組み合わせから未知語も表現できる点で対照的な関係です。
6. 確認問題
問1OOV(Out-of-Vocabulary)とは、モデルが学習時に扱った語彙に含まれておらず、推論時に初めて出会う単語を指す用語である。
解答・解説をみる
○ 正しい
定義そのままの内容で、日本語では未知語と呼ばれます。新語や固有名詞、誤字、専門用語などが具体例にあたります。
問2word2vecのように単語ごとに1つのベクトルを割り当てる単語単位の手法は、学習データに存在しなかった単語であっても問題なくベクトルを割り当てられる。
解答・解説をみる
× 誤り
正しくは、単語単位の手法は学習時の語彙に無い単語を表現する手段を持たず、OOVに弱い特性があります。単語を文字やサブワードに分解する手法が、この弱点を補う関係にあります。
問3OOVへの対処法の一つに、未知語を専用の記号(UNKトークン)へ一律に置き換えて処理を継続する方法がある。
解答・解説をみる
○ 正しい
実装が単純な対処法にあたります。ただし置き換えられた単語同士の違いは区別できなくなり、元の単語の情報は失われます。

