ホーム topics 単語埋め込み 単語埋め込みとは
IBMのAIプラットフォームはこちら AI関連の最新情報を購読する
雲、円グラフ、グラフのピクトグラムのコラージュを使用したイラスト

公開日:2024年1月23日
寄稿者:Joel Barnard

単語埋め込みとは

単語埋め込みは、多次元空間で単語をベクトルとして表現する方法で、ベクトル間の距離と方向が、対応する単語間の相似性と関係性を反映します。

テキストを表現するための埋め込みの開発は、自然言語処理(NLP)および機械学習(ML)アプリケーションの進歩に重要な役割を果たしてきました。 単語埋め込みは、テキスト分類、感情分析、機械翻訳などのタスクでも不可欠なものになっています。

ワンホット・エンコーディングなど、機械が理解できる方法で単語を表現する従来の手法では、各単語を語彙集のサイズに等しい次元のスパース・ベクトルとして表します。 ここでは、唯一のベクトル要素は、その単語の存在を示す「ホット」(1に設定)のみです。このアプローチは単純ではありますが、次元の制限が原因で意味情報が欠如し、単語間の関係を把握できません。

一方、単語埋め込みは、多くの場合ニューラル・ネットワークに基づく機械学習技術を使用してトレーニングされた、連続値を持つ密なベクトルです。 その目的は、意味論的な意味と単語間の関係をコード化する表現を学習することです。 単語の埋め込みは、モデルを大量のテキスト データに公開し、単語が表示されるコンテキストに基づいてベクトル表現を調整することによってトレーニングされます。

単語埋め込みをトレーニングするための一般的な手法はWord2Vecです。これは、ニューラル・ネットワークを使用して、特定のコンテキスト内のターゲット単語の周囲の単語を予測します。 広く使用されているもう1つの手法は、GloVe(Global Vectors for Word Representation)で、グローバル統計を利用して埋め込みを作成します。

単語埋め込みは、機械学習アルゴリズムが従来の方法に比べてより微妙な方法で単語間の意味関係を理解して処理することを可能にするため、NLPタスクにとって非常に価値があることが証明されています。

エンタープライズAIの拡張においてAIガバナンスがビジネス上不可欠である理由

AI 導入の障壁、特に AI ガバナンスとリスク管理ソリューションの欠如について学びます。

関連コンテンツ

基礎モデルのガイドに登録する

単語埋め込みのユースケース

単語の埋め込みは、単語の表現を強化し、意味上の関係を把握するために、次のようなさまざまなNLPタスクで使用されます。

テキスト分類

単語の埋め込みは、感情分析、スパム検出、トピックの分類などのテキスト分類タスクの機能としてよく使用されます。

固有表現抽出(NER)

テキスト内のエンティティー(人名、組織名、場所名など)を正確に識別して分類するために、単語の埋め込みはモデルが単語間のコンテキストと関係を理解するのに役立ちます。

機械翻訳

機械翻訳システムでは、単語埋め込みは言語に依存しない方法で単語を表現するのに役立ち、モデルがソース言語とターゲット言語の単語間の意味関係をよりよく理解できるようになります。

情報検索

情報検索システムでは、単語の埋め込みにより、ユーザーのクエリーと関連文書をより正確に照合できるようになり、検索エンジンや推奨システムの有効性が向上します。

質問への回答

単語の埋め込みは、質問が投げかけられ、答えが見つけられるコンテキストの理解を強化することで、質問応答システムの成功に貢献します。

意味的な相似性とクラスタリング

単語の埋め込みを使用すると、関連記事のクラスタリング、類似文書の検索、テキスト内容に基づく類似アイテムの推奨などのタスクで、単語またはドキュメント間の意味的相似性を測定できます。

テキスト生成

言語モデリングやオートエンコーダーなどのテキスト生成タスクでは、入力テキストを表現し、一貫性があり文脈的に関連のある出力シーケンスを生成するために、単語の埋め込みがよく使用されます。

相似性と類似性

単語埋め込みを使用して、単語相似性タスク(例:特定の単語に類似した単語の検索)および単語類似性タスク(例:「王」と「女王」、「男性」と「女性」) を実行できます。

事前トレーニングモデル

事前トレーニングされた単語埋め込みは、BERT(トランスフォーマーからの双方向エンコーダー表現)やGPT(生成事前トレーニング済みトランスフォーマー)など、より高度な言語表現モデルを事前トレーニングするための基盤として機能します。

単語埋め込みの沿革

2000年代、研究者はニューラル・ネットワークを使用して連続空間内の単語間の関係をモデル化するニューラル言語モデル(NLM)を研究し始めました。 これらの初期モデルは、後の単語埋め込み開発の基礎となりました。

Bengio(2003年)氏率いる研究チームは、言語モデリングのためのフィードフォワード・ニューラル・ネットワークを導入しました。 これらのモデルは単語の分散表現を把握できましたが、大規模な語彙を処理する能力には限界がありました。

Mnih氏およびHinton氏(2009年)率いる研究チームは、単語の分散表現を学習するための確率モデルの研究を深めました。 これらのモデルは、単語間の意味的関係を把握することに焦点を当て、単語の埋め込みに向けた重要なステップでした。

2013年にGoogle社のTomas Mikolov氏率いるチームが発表したWord2Vecモデルは、大きな突破口となりました。Word2Vecは、Continuous Bag of Words(CBOW)とContinuous Skip-gramという2つのモデルを活用しています。これらのモデルは、大規模なコーパスから単語の埋め込みを効率的に学習し、そのシンプルさと有効性により広く採用されています。

2014年にPennington氏の研究チームによって導入されたGloVE(単語表現のためのグローバル・ベクトル)は、グローバル統計(単語の同時出現頻度)を使用して単語のベクトル表現を学習するというコンセプトに基づき開発されました。 さまざまなNLPアプリケーションで使用されており、セマンティックな関係を把握できることで知られています。

現在、深層学習の台頭により、埋め込み層はNLPタスク用のニューラル・ネットワーク・アーキテクチャーの標準コンポーネントになっています。 埋め込みは現在、単語だけでなく、エンティティー、フレーズ、その他の言語単位にも使用されています。 ほとんどの場合、単語の埋め込みにより、リカレント・ニューラル・ネットワーク(RNN)、長短期記憶(LSTM)ネットワーク、言語モデルからの埋め込み(eLMO)、BERT、ALBERT(軽量BERT)、GPTなどの言語モデルが猛烈なペースで進化できるようになりました。

単語埋め込みの作成方法

単語埋め込みの主な目的は、単語の意味関係とコンテキスト情報を把握する方法で単語を表現することです。 これらのベクトルは連続ベクトル空間内の数値表現であり、ベクトルの相対位置は単語間の意味上の相似性と関係を反映します。

単語を表すためにベクトルが使用される理由は、ニューラル・ネットワークを含むほとんどの機械学習アルゴリズムがプレーン・テキストをそのままの形式で処理できないためです。 タスクを実行するための入力として数値が必要です。

単語埋め込みを作成するプロセスには、大規模なテキスト・コーパス(WikipediaやGoogle Newsなど)でモデルをトレーニングすることが含まれます。 コーパスは、テキストを単語にトークン化し、ストップ・ワードや句読点を削除し、その他のテキスト・クリーニング・タスクを実行することによって前処理されます。

スライド式コンテキスト・ウィンドウがテキストに適用され、ターゲット単語ごとに、ウィンドウ内の周囲の単語がコンテキスト単語とみなされます。 単語埋め込みモデルは、コンテキスト単語に基づいてターゲット単語を予測するように、またはその逆にターゲット単語を予測するようにトレーニングされます。

これにより、モデルは多様な言語パターンを把握し、各単語に連続ベクトル空間内の単語の位置を表す一意のベクトルを割り当てることができます。 似た意味を持つ単語は互いに近くに配置され、ベクトル間の距離と方向が相似度を表します。

トレーニング・プロセスには、コンテキスト内で予測された単語と実際の単語の差異を最小限に抑えるために、埋め込みモデルのパラメーターを調整することが含まれます。

以下は、非常に小さなコーパス(6単語)の単語埋め込みの簡略化された例です。各単語は3次元ベクトルとして表されます。

    ネコ          [0.2, -0.4, 0.7]
    イヌ         [0.6, 0.1, 0.5]
    アップル      [0.8, -0.2, -0.3]
    オレンジ   [0.7, -0.1, -0.6]
    幸せ     [-0.5, 0.9, 0.2]
    悲しい         [0.4, -0.7, -0.5]

この例では、各単語(例:「ネコ」「イヌ」、「リンゴ」)が一意のベクトルに関連付けられています。 ベクトル内の値は、連続した3次元ベクトル空間内の単語の位置を表します。 同様の意味またはコンテキストを持つ単語は、同様のベクトル表現を持つことが期待されます。 例えば、「ネコ」と「イヌ」のベクトルは互いに近く、それらの意味関係を反映しています。 同様に、「幸せ」と「悲しい」のベクトルも逆向きであり、対照的な意味を示しています。

上記の例は、説明のために非常に簡略化されています。 実際の単語埋め込みには通常、より複雑な関係や意味のニュアンスを把握するために数百の次元があります。

単語埋め込みの基本的な側面

単語埋め込みはNLPの基本的なツールとなっており、単語やフレーズの基本的な意味論に沿った方法で言語を理解し、表現するための基盤を提供します。

以下に、単語埋め込みをNLPの発展に役立つ強力な手法にした主なコンセプトと開発のいくつかを紹介します。

分布仮説

分布仮説は、同様の意味を持つ単語は同様の文脈で出現する傾向があると仮定します。 この概念は、多くの単語埋め込みモデルの基礎を形成しており、単語の共起パターンを分析することで意味上の関係を把握することを目的としています。

次元削減

従来のワンホット・エンコーディングとは異なり、単語埋め込みは低次元の密なベクトルです。 これにより、計算の複雑さとメモリー要件が軽減され、大規模なNLPアプリケーションに適したものになります。

意味表現

単語埋め込みは、単語間の意味的関係を把握し、類似した単語が互いに近接する連続ベクトル空間で単語を理解し、表現することを可能にします。 この意味表現により、言語をより微妙に理解できるようになります。

コンテキスト情報

単語埋め込みは、特定のコンテキスト内で共起する単語を考慮することにより、コンテキスト情報を把握します。 これにより、モデルが周囲の単語に基づいて単語の意味を理解し、フレーズや文章をより適切に表現できるようになります。

一般化

単語埋め込みは、コンテキストに基づいて単語を表現することを学習するため、目に見えない単語やまれな単語によく一般化されます。 これは、多様で進化する語彙を扱う場合に特に有利です。

単語埋め込みに対する2つの手法

周波数ベースの埋め込み方法と予測ベースの埋め込み方法は、単語埋め込みのコンテキストにおけるアプローチの2つの大きなカテゴリーに相当します。 これらのメソッドは主に、単語のベクトル表現を生成する方法が異なります。

周波数ベースの埋め込み

頻度ベースの埋め込みとは、コーパス内の単語の頻度から導出される単語表現を指します。 これらの埋め込みは、単語の重要性または重要性がテキスト内での出現頻度から推測できるという考えに基づいています。

頻度ベースの埋め込みの一例として、TF-IDF(Term Frequency-Inverse Document Frequency)があります。TF-IDFは、特定の文書内で頻繁に使用される単語と、コーパス全体で比較的まれな単語の両方を強調表示するように設計されており、特定の文書にとって重要な用語を識別するのに役立ちます。

ドキュメント内の用語(単語)のTF-IDFスコアは、次の式を使用して計算されます。

    TF-IDF (t,d,D) = TF(t,d) x IDF(t, D)

TF-IDFのアプリケーションには、情報検索、ドキュメントのランキング、テキストの要約、テキスト・マイニングなどがあります。

周波数ベースの埋め込みは単純で理解しやすいですが、より高度な予測ベースの埋め込みが提供する意味論的な情報やコンテキスト認識の深さが欠落しています。

予測ベースの埋め込み

予測ベースの埋め込みは、単語のコンテキストまたは隣接する単語の特定の側面を予測するようにトレーニングされたモデルから派生した単語表現です。 単語の出現統計に焦点を当てた頻度ベースのエンベディングとは異なり、予測ベースのエンベディングは意味関係とコンテキスト情報を把握し、単語の意味をより豊富に表現します。

予測ベースの埋め込みは、同義語を区別し、多義性(単語の複数の意味)をより効果的に処理できます。 予測ベースの埋め込みのベクトル空間プロパティーにより、単語の相似性の測定や類似性の解決などのタスクが可能になります。 予測ベースの埋め込みは、目に見えない単語やコンテキストまでうまく一般化することもできるため、語彙外の用語を処理する場合に堅牢になります。

予測ベースの手法、特にWord2VecやGloVe(後述)のような手法は、豊富な意味論的な意味を把握し、さまざまなNLPタスクにうまく一般化できるため、単語埋め込みの分野で主流になっています。

Word2Vec

Tomas Mikolov氏を含むGoogle社の研究者チームによって2013年に開発されたWord2Vec(Word to Vector)は、自然言語処理(NLP)および機械学習モデルで単語埋め込みを学習するための基礎的な技術となっています。

Word2Vecはベクトル表現を生成する2つの主要なモデルで構成される:Continuous Bag of Words(CBOW)とContinuous Skip-gramです。

Word2Vecの文脈では、CBOW(Continuous Bag of Words)モデルは、与えられたウィンドウ内の周囲の文脈単語に基づいてターゲット単語を予測することを目的としています。 コンテキスト単語を使用してターゲット単語を予測し、学習された埋め込みによって単語間の意味的関係が把握されます。

一方、Continuous Skip-gramモデルは、ターゲット単語を入力とし、周囲の文脈単語を予測することを目的とする。

モデルのトレーニング方法

文中の一連の単語が与えられると、CBOWモデルは一定数のコンテキスト単語(ターゲット単語を囲む単語)を入力情報として理解します。 各コンテキスト単語は、共有埋め込み層を介して埋め込み(ベクトル)として表現されます。 これらの埋め込みはトレーニング・プロセス中に学習されます。

個々のコンテキストの単語埋め込みは、通常は合計または平均することによって集約されます。 この集約された表現は、次の層への入力として機能します。

次に、集計された表現を使用して、ソフトマックス・アクティベーション関数を使用してターゲット単語を予測します。 モデルは、語彙全体にわたる予測された確率分布と、ターゲット単語の実際の分布(ワンホット・エンコードされた表現)との差を最小限に抑えるようにトレーニングされます。

CBOWモデルは、ターゲット単語を正確に予測する能力に基づいて埋め込み層の重みを調整することによってトレーニングされます。

Continuous Skip-gramモデルは、学習データを使って、ターゲット単語の埋め込みに基づいてコンテキスト単語を予測します。 具体的には、語彙全体の確率分布を出力し、ターゲット単語が与えられたコンテキスト内に各単語が存在する可能性を示します。

トレーニングの目的は、ターゲット単語が与えられた場合に実際の文脈単語の可能性を最大化することです。 これには、埋め込み層の重みを調整して、予測された確率とコンテキスト単語の実際の分布との差を最小限に抑えることが含まれます。 このモデルでは、コンテキスト・ウィンドウのサイズを柔軟に設定することもできます。 タスクの特定の要件に基づいて調整できるため、ユーザーはローカルとグローバルの両方のコンテキスト関係を把握できるようになります。

Skip-gramモデルは基本的にターゲット単語を「スキップ」してその文脈を予測するため、単語間の意味関係や類似性を把握するのに特に効果的です。

利点と限界

Word2Vecで使用されるどちらのモデルにも、独自の利点と限界があります。 Skip-gramモデルは、膨大な量のテキスト・データの処理に適しており、まれな単語を適切に表現することがわかっています。 一方、CBOWはより高速で、より頻繁に使用される単語をより適切に表現します。

限界に関しては、Word2Vecは、1つの単語に複数の意味がある多義性を効果的に処理できない場合があります。 モデルは、多義的な単語のさまざまな意味の表現を平均化したり、組み合わせたりする場合があります。 また、Word2Vecは単語を原子単位として扱い、サブ単語情報を把握しません。

これらの限界の一部に対処することが、Word2Vec の欠点の一部を克服することを目的とした、FastText、GloVe、トランスフォーマー・ベースのモデル(後述)など、より高度なモデルの開発の動機となりました。

GloVe

GloVe(Global Vectors for Word Representation)は、コーパス内の単語の共起パターンに関するグローバルな統計情報を把握するために設計された単語埋め込みモデルです。

2014年にJeffrey Pennington氏、Richard Socher氏、Christopher D. Manning氏によって導入されたGloVeモデルは、ローカル・コンテキストのみに焦点を当てるのではなく、グローバル情報の使用を強調する点でWord2Vecと異なります。

GloVe は、コーパス全体にわたる単語の共起に関するグローバルな統計が単語の意味論を把握するために重要であるという考えに基づいています。 個々の単語のローカルなコンテキストだけでなく、データセット全体で単語が相互にどのくらいの頻度で共起するかを考慮します。

このモデルは、予測された共起確率とコーパス統計から導出された実際の確率との差を最小限に抑えることを目的としています。

GloVeは、グローバル統計に依存し、行列因数分解技術を使用して単語ベクトルを学習するため、他のいくつかの方法と比較して計算効率が高くなります。 このモデルは、大規模な計算リソースを必要とせずに、大規模なコーパスでトレーニングできます。

GloVeは、トレーニング・プロセスに対するさまざまな単語ペアの影響を制御するために、単語ペアにスカラー重みを導入します。 これらの重みは、学習された埋め込みに対する非常に頻繁またはまれな単語のペアの影響を軽減するのに役立ちます。

トレーニングの仕組み

Word2Vecモデル(CBOWとSkip-gram)では、ターゲットとなる単語からコンテキスト単語を予測したり、その逆を行ったりすることに重点を置いていますが、Gloveは、その同時出現確率に基づいて単語ベクトルを最適化するという異なるアプローチを採用しています。 トレーニング・プロセスは、単語間の意味的関係を効果的に把握する埋め込みを学習するように設計されています。

最初のステップは、コーパス内で単語が同時に出現する頻度を表す共起行列を構築することです。

次に、単語ベクトルとその共起確率の間の関係を記述する目的関数を定式化します。

目的関数は、勾配降下法またはその他の最適化アルゴリズムを使用して最適化されます。 その目的は、単語ベクトルとバイアスを調整して、予測された対数共起確率と実際の対数共起確率の間の二乗差を最小限に抑えることです。

アプリケーションとユースケース

ユーザーは、事前トレーニングされたGloVe埋め込みをダウンロードして、特定のアプリケーションに合わせて微調整したり、直接使用したりできます。

GloVe埋め込みは、テキスト分類、感情分析、機械翻訳などのNLPタスクで広く使用されています。

GloVeは、グローバルな意味関係の把握、単語の全体的なコンテキストの理解、共起統計の活用が自然言語処理タスクの成功に重要なシナリオに優れています。

Word2VecとGloVe以外の選択肢

Word2VecとGloveの成功は、FastText、BERT、GPTなどのより洗練された言語表現モデルに関するさらなる研究を促しました。 これらのモデルは、サブ単語埋め込み、注意機構、およびトランスフォーマーを活用して、高次元の埋め込みを効果的に処理します。

サブ単語埋め込み

FastTextなどのサブ単語埋め込みでは、単語をサブワード単位の組み合わせとして表すため、柔軟性が高まり、まれな単語や語彙外の単語を処理できます。 サブ単語を埋め込むと、単語埋め込みの堅牢性と対象範囲が向上します。

GloVeとは異なり、FastTextは、各単語を単語全体ではなく文字「n-grams」で構成されているものとして扱うことで単語を埋め込みます。 この機能により、珍しい単語だけでなく、語彙外の単語も学習できます。

注意機構とトランスフォーマー

注意機構トランスフォーマー・モデルは、文脈情報と単語間の双方向の関係を考慮し、より高度な言語表現を実現します。

注意機構は、予測を行う際に入力シーケンスの特定の部分に集中するニューラル・ネットワークの能力を向上させるために導入されました。 入力のすべての部分を同等に扱う代わりに、注意機構により、モデルは入力の関連部分に選択的に注意を向けることができます。

トランスフォーマーは、BERT、GPT、T5(テキストからテキストへの転送トランスフォーマー)など、NLPのさまざまな最先端モデルのバックボーンとなっています。 これらは、言語モデリング、機械翻訳、テキスト生成、質問応答などのタスクに優れています。

トランスフォーマーは自己注意機構を使用して、シーケンス内の異なる単語間の関係を把握します。 このメカニズムにより、各単語がシーケンス内の他のすべての単語に対応し、長距離の依存関係を把握できるようになります。

トランスフォーマーは、RNNと比較してトレーニング中により多くの並列化を可能にし、計算効率が高くなります。

関連ソリューション
IBM Natural Language Understanding

IBM Watson Natural Language Understandingは、ディープラーニングを使用して、非構造化テキスト・データから意味とメタデータを抽出します。テキスト分析を使用してデータを掘り下げ、カテゴリー、分類、エンティティ‐、キーワード、センチメント、感情、関係、および構文を抽出します。

NLUはこちら

IBM watsonx

IBMの次世代AIとデータのプラットフォームでAIの力を倍増します。IBM watsonx は、ビジネスにすぐに使えるツール、アプリケーション、ソリューションのポートフォリオであり、AI導入のコストとハードルを削減しながら、AIの成果と責任ある使用を最適化するように設計されています。

watsonxの詳細はこちら

IBM AIソリューション

ビジネス全体でAIを運用化し、迅速かつ倫理的に効果を発揮します。IBMのビジネス・グレードのAI製品と分析ソリューションの充実した製品群は、AI導入のハードルを下げ、適切なデータ基盤を確立しながら、成果と責任ある活用のために最適化するよう設計されています。

AIソリューションはこちら
参考情報 機械学習とは

データとアルゴリズムを活用するOW ML、そのユースケース、および関連する懸念事項について洞察を得ることで、テクノロジーの責任ある革新的な使用を可能にします。

AI、機械学習対ディープラーニング、ニューラル・ネットワーク:その違いは?

AI、ML、深層学習、ニューラル・ネットワークは関連するテクノロジーですが、これらの用語は同じ意味で使用されることがよくあります。 このブログ記事では、その曖昧さの一部を明確にしていきます。

Pythonの初心者向けガイド

Pythonは、埋め込みでよく使用されるプログラミング言語です。このガイドでは、この簡単なプログラミング言語を始めるために知っておく必要があるいくつかの基本概念を紹介します。

次のステップ

AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、デプロイしましょう。わずかなデータ、わずかな時間でAIアプリケーションを構築できます。

watsonx.aiの詳細はこちら デモの予約