0Pricing
Learn AI with Python · レッスン

GloVeとFastTextの埋め込み

グローバルな共起統計、サブワードを扱うFastText、学習済み埋め込みの読み込みについて学習します。

「GloVeとFastTextの埋め込み」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。

Word2Vec の先へ

Word2Vec は局所的な文脈ウィンドウから学習します。その他にも影響力のある埋め込み手法が2つあり、GloVe はグローバルな統計情報を使い、FastText は文字の部分列を使います。

GloVe とは

GloVe(Global Vectors)は、グローバルな共起行列を使って学習します。これは、局所的なウィンドウだけでなく、コーパス全体で各単語の組が一緒に現れる頻度を表したものです。

グローバルな統計情報が役立つ理由

完全な共起行列を因数分解することで、GloVe はコーパス全体にわたる単語間の関係や比率を捉えます。その結果、類推タスクで Word2Vec に匹敵する、または上回る高品質なベクトルを生成することがよくあります。

事前学習済みベクトルの読み込み

埋め込みの学習には巨大なコーパスが必要なので、通常は事前学習済みのベクトルをダウンロードします。gensim.downloader を使えば、GloVe ベクトルなどの一般的なモデルを1行で取得できます。

import gensim.downloader as api

glove = api.load("glove-wiki-gigaword-100")
print(glove["computer"].shape)   # (100,)

事前学習済み GloVe の利用

読み込んだ GloVe ベクトルでは、Word2Vec と同じように類似度の計算や類推を行えます。

import gensim.downloader as api

glove = api.load("glove-wiki-gigaword-100")
print(glove.most_similar("king", topn=3))
print(glove.most_similar(positive=["king", "woman"], negative=["man"], topn=1))

語彙外問題

Word2Vec と GloVe は、学習時に見た単語にしかベクトルを割り当てません。新しい単語やスペルミスの単語(out-of-vocabulary、OOV)にはベクトルがなく、これは扱いの難しいテキストにおける大きな制限です。

FastText とは

FastText は、各単語を文字 n-gramの集合として表現することで OOV の問題を解決します。単語 "playing" には "pla"、"lay"、"ing" のような部分が含まれるため、関連する単語と構造を共有できます。

文字 n-gram が役立つ理由

単語ベクトルはその部分文字列から構築されるため、FastText は未知語の n-gram からベクトルを作成できます。また、形態論も捉えられるため、接頭辞、接尾辞、まれな単語の扱いにも役立ちます。

FastText の学習

gensim は Word2Vec と似た API で FastText を提供します。min_n と max_n パラメータで、文字 n-gram の範囲を設定します。

from gensim.models import FastText

model = FastText(
    sentences,
    vector_size=100,
    window=5,
    min_count=1,
    min_n=3,
    max_n=6,
)

FastText は OOV を処理できる

学習時に一度も見ていない単語でも、その文字 n-gram から組み立てたベクトルが返されます。これは FastText が Word2Vec や GloVe に対して持つ特徴的な利点です。

from gensim.models import FastText

model = FastText(sentences, vector_size=100, min_n=3, max_n=6, min_count=1)
# works even if "catlike" was never in training
vec = model.wv["catlike"]

埋め込みの選択

語彙が固定されたクリーンなテキストには GloVe または Word2Vec を使います。形態的に豊かな言語、ノイズの多いテキスト、または OOV の単語が頻出する場合は FastText を選びます。どの場合でも、事前学習済みベクトルは優れた出発点になります。

理解度チェック

埋め込みに関する知識を確認しましょう。

まとめ

まとめ: GloVe はグローバルな共起統計から学習し、FastText は文字 n-gram を使って語彙外の単語や形態論を扱います。gensim.downloader.load で事前学習済みベクトルを読み込みます。どちらも類似度の計算と類推をサポートします。ノイズの多いテキストや形態的に豊かなテキストには FastText を、クリーンで語彙が固定されたテキストには GloVe または Word2Vec を選びます。

よくある質問

「GloVeとFastTextの埋め込み」レッスンは無料ですか?

はい。「GloVeとFastTextの埋め込み」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。

「GloVeとFastTextの埋め込み」で何を学びますか?

グローバルな共起統計、サブワードを扱うFastText、学習済み埋め込みの読み込みについて学習します。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn AI with Pythonを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「GloVeとFastTextの埋め込み」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn AI with Pythonレッスンでコードを書いて実行できますか?

はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Word2Vec:Skip-gramとCBOW
  2. GloVeとFastTextの埋め込み
  3. BERTによるテキスト分類
  4. 意味的類似度と文埋め込み
← Learn AI with Pythonに戻る