G検定(ジェネラリスト検定)
すきっぷぐらむ
スキップグラム
Skip-gram
スキップグラムは、現在の単語を入力にして前後の一定範囲の単語を予測する単語表現の学習モデルです。文脈から中心の単語を予測するCBOWとは、予測の向きが逆です。
詳しい説明
現在の単語から周囲の単語を予測するモデル
スキップグラム(Skip-gram)は、単語をベクトルで表す単語表現を学習するためのモデル構造の一つです。文中のある単語を現在の単語として入力し、その前後の一定範囲に現れる単語を予測します。原論文の説明では、現在の単語を、連続的な射影層を持つ対数線形の分類器に入力し、現在の単語の前後の一定範囲にある単語を予測します。言い換えると、同じ文の中の別の単語をもとに、ある単語の分類をできるだけ正しくしようとするモデルです。
CBOWとは予測の向きが逆
スキップグラムは、同じ論文で提案されたもう一つの構造であるCBOWとよく似た構造です。違うのは予測の向きです。CBOWは文脈をもとに現在の単語を予測します。これに対してスキップグラムは、現在の単語を与えて周囲の単語を予測します。CBOWは周囲の単語から中心の単語を当て、スキップグラムは中心の単語から周囲の単語を当てるので、両者は逆向きの関係にあります。二つを区別するときは、何を入力にして何を予測するかに注目すると整理しやすくなります。
予測する範囲の広さと計算量
スキップグラムでは、予測の対象にする前後の範囲を広げられます。原論文によると、範囲を広げると得られる単語ベクトルの品質は上がりますが、計算量も増えます。範囲の広さを決めるときは、品質と計算量のどちらを優先するかを考える必要があります。
離れた単語ほど少なくサンプリングする工夫
範囲を広げたときの工夫として、原論文は距離に応じた重み付けを行っています。現在の単語から遠い単語は、近い単語に比べて、ふつうは現在の単語との関連が弱いと考えられます。そこで学習用の例を作るとき、遠い単語からは少なくサンプリングし、遠い単語の重みを小さくしています。重みを直接掛けるのではなく、サンプリングする回数で差をつけている点が特徴です。
二値分類器の重みを埋め込みとして使う発想
自然言語処理の教科書は、スキップグラムを埋め込みを計算する方法の一つとして紹介しています。そこで扱うのは負例サンプリングを組み合わせた形で、SGNS(skip-gram with negative sampling)と呼ばれることもあります。考え方は次のとおりです。たとえば apricot という単語の近くに、ある単語がどれだけ現れるかを数えるのではありません。代わりに、この単語は apricot の近くに現れそうか、という二値の予測課題で分類器を学習します。ただし、この予測課題を解くこと自体が目的ではありません。学習した分類器の重みを、単語の埋め込みとして取り出して使います。
まとめると、スキップグラムは確率的な分類器を学習します。この分類器は、対象の単語と文脈の窓を与えられたとき、ある単語が対象の単語の近くに現れそうかどうかを予測します。予測の課題は埋め込みを得るための手段にすぎず、本当に欲しいのは学習の結果として得られる重みのほうです。この発想の転換が、この手法の要点です。
試験で問われること
G検定
- スキップグラムは、現在の単語を入力にして前後の一定範囲の単語を予測するモデルか、それとも文脈から現在の単語を予測するモデルか。
- CBOWとスキップグラムは、入力にするものと予測するものがそれぞれどう違うか。
- スキップグラムで予測の範囲を広げると、単語ベクトルの品質と計算量はそれぞれどう変わるか。
- 原論文は、現在の単語から離れた単語の重みを小さくするために、学習用の例を作るときに何をしたか。
- SGNSでは、単語が近くに現れるかどうかを予測する二値分類器を学習した後、その分類器の何を単語の埋め込みとして使うか。
最終更新日: 2026/09/23