1. 定義と概要
CBOW(Continuous Bag-of-Words)とは、word2vecが持つ2つの学習方式のひとつで、中心の単語の周囲にある複数の文脈語を入力として中心語を予測する方向で学習を進める手法です。学習の結果、単語ごとの意味を数値ベクトルで表す分散表現(単語の意味を数百次元程度の数値ベクトルで表す表現方法)が得られます。
文脈語(コンテキスト語。予測したい単語の前後に出現する周辺の単語)は、CBOWが中心語を推測する際の手がかりです。中心語の前後に同じような単語が並ぶ文は数多くあり、その周辺情報を繰り返し学習に使うことで、意味の近い単語どうしが似たベクトルに近づいていきます。
名称にBag-of-Words(文書に含まれる単語の出現有無や回数だけで文章をベクトル化する、別の手法)という語を含みます。ただしCBOWは単語ごとの分散表現を学習する仕組みであり、文書全体をベクトル化するBoWとは異なる概念です。
word2vec全体の発表経緯や意義は別記事のテーマとなるため、ここではCBOWの位置づけに絞って触れます。word2vecの学習方式は、文脈語から中心語を予測するCBOWと、中心語から文脈語を予測するスキップグラムという、予測の向きが逆の2種類です。
学習の際は、中心語の前後何語までを文脈語として使うかを窓幅(ウィンドウサイズ。中心語の前後どこまでを文脈として見るかの範囲)として指定します。その範囲に含まれる複数の文脈語のベクトルをひとつにまとめたうえで、入力とする流れです。
2. 試験対策ポイント
まず整理しておきたいのは、CBOWと予測の向きが逆であるスキップグラムとの対応関係です。CBOWは複数の文脈語を入力として中心語を予測しますが、スキップグラムは逆に中心語から複数の文脈語を予測します。入出力の向きが入れ替わる関係として、あわせて押さえておきたいポイントです。
入力となる複数の文脈語のベクトルは、CBOWの内部処理では足し合わせたうえで平均をとる形でひとつのベクトルにまとめられてから予測に使われ、その過程で文脈語の並び順、つまり語順の情報が失われます。単語の集合を袋に入れるイメージが、Bag-of-Words(単語の袋)という名前の由来です。
CBOWは文脈語をまとめて一括処理するぶん計算量が少なく、スキップグラムより学習が高速に進む傾向があるとされます。一方で、低頻度語(学習に使う文章データの中で出現する回数が少ない単語)やレアな単語の分散表現の精度では、スキップグラムに劣る傾向があるとされます。速度と精度のトレードオフとして整理しておきたいところです。
3. 関連概念との比較・相違点
スキップグラムとの最大の違いは、予測の向きにあります。観点ごとに並べると、対になる関係がつかみやすくなります。
| 観点 | CBOW | スキップグラム |
|---|---|---|
| 予測の向き | 複数の文脈語から1つの中心語を予測 | 1つの中心語から複数の文脈語を予測 |
| 学習速度 | 文脈語をまとめて処理するため高速な傾向 | CBOWより学習に時間がかかる傾向 |
| 低頻度語の精度 | スキップグラムに劣る傾向 | CBOWより精度が出やすい傾向 |
入出力の構造が逆転した関係であること、そして学習速度と低頻度語の精度がトレードオフの関係にあることが、両者を分ける柱です。扱うデータの性質や目的に応じて、どちらの方式を選ぶかが変わってきます。
なお、CBOWという名称はBoW(Bag-of-Words。文書に含まれる単語の出現有無や回数だけで文章をベクトル化する、別の手法)と語感が近く、混同しないよう注意が必要です。
BoWは文書全体を単語の出現有無や回数でベクトル化する手法であるのに対し、CBOWは文脈語から中心語を予測して単語ごとの分散表現を学習する手法です。ベクトル化する対象が文書か単語かという点で、両者は別の概念として区別されます。
4. ビジネス・実務での活用シナリオ
大量のテキストから短時間で分散表現を構築したい場面では、CBOWが選ばれることがあります。ニュース記事やECサイトのレビューなど膨大な文章データから単語ベクトルを素早く得たい場合、計算量の少なさによって学習にかかる時間を抑えられる点が強みです。
日常語や頻出する語彙が中心となる検索・要約サービスでも、CBOWの高速性を活かしやすい場面があります。こうしたサービスでは低頻度語の精度差が結果に影響しにくいため、CBOWで生じうる精度面の弱さが実害になりにくく、学習速度の優位性を優先しやすい領域です。
分散表現の効果を素早く確認したい実験段階、いわゆるプロトタイピングの場面でも、計算コストの低いCBOWが有力な選択肢です。まずCBOWで仮説を検証し、精度を重視する段階になってからスキップグラムへ切り替える使い分けが行われることがあり、開発の初期段階で試行錯誤の回数を増やせる利点につながります。
5. 要点まとめ
- CBOWは、周囲の文脈語から中心の単語を予測する方向でword2vecの学習を行う手法で、予測の向きが逆のスキップグラムと対をなします。
- 文脈語のベクトルを平均してひとつの入力にまとめるため語順の情報は失われますが、その分学習は高速に進む傾向があります。
- 学習速度で優位な一方、低頻度語やレアな単語の分散表現の精度ではスキップグラムに劣る傾向があるとされます。
6. 確認問題
問1CBOWは、中心の単語の周囲に出現する複数の文脈語を入力として、中心語を予測する方向で学習を行う手法である。
解答・解説をみる
○ 正しい
CBOWは文脈語から中心語を予測する方向で学習が進む手法です。逆方向に学習するスキップグラムと対になる関係として整理できます。
問2CBOWは、文脈語のベクトルを1語ずつ順番に処理することで語順の情報を保持したまま中心語を予測する。
解答・解説をみる
× 誤り
正しくは、複数の文脈語のベクトルは足し合わせて平均をとる形でひとつにまとめられてから予測に使われるため、語順の情報は失われます。この処理が、Bag-of-Words(単語の袋)という名前の由来になっています。
問3CBOWは一般に学習速度がスキップグラムより速い傾向がある一方、低頻度語の分散表現の精度ではスキップグラムに劣る傾向があるとされる。
解答・解説をみる
○ 正しい
CBOWは文脈語をまとめて一括処理するため計算量が少なく学習が高速な傾向があるとされます。一方で低頻度語やレアな単語の精度ではスキップグラムに劣る傾向があるとされ、速度と精度のトレードオフとして整理されます。

