ニューラル ネットワーク - 文頭から word2vec (CBOW) トレーニング データを構築します

okwaves2024-01-25  11

CBOW のトレーニング データを構築する際、Mikolov et al.コンテキスト ウィンドウの中央にある単語を使用することを提案します。 「最高」とは何ですか?文の先頭/末尾の単語を捉えるアプローチ (これはタスクによって異なると思うので、引用符で囲むのが最善です)。オンラインで見た実装では、次のようなことが行われます。

for i in range(2, len(raw_text) - 2):
    context = [raw_text[i - 2], raw_text[i - 1],
               raw_text[i + 1], raw_text[i + 2]]

このアプローチからは 2 つの問題が発生すると考えられます。

問題 1: このアプローチでは、文の途中に不均衡な焦点が当てられます。たとえば、文の最初の単語は 1 つのコンテキスト ウィンドウにのみ表示され、ターゲット単語として表示されることはありません。これを文中の 4 番目の単語と比較してください。この単語も 4 つのコンテキスト ウィンドウに表示され、ターゲット単語になります。いくつかの単語が最初に頻繁に現れるため、これは問題になります文章のng(つまり、しかし、したがって、など)。このアプローチなら、その使用を最小限に抑えることができるのではないでしょうか? 問題 2: 4 単語以下の文は完全に無視され、短い文の重要性は最小限に抑えられます。たとえば、5 つの単語を含む文は 1 つのトレーニング サンプルのみを提供できますが、長さ 8 の文は 4 つのトレーニング サンプルを提供します。

これらの問題が結果にどの程度影響するか、またはトレーニング データを構築するための代替アプローチについて洞察を提供できる人はいますか? (最初の単語をターゲット単語にして、次の N 単語をコンテキストとして使用することも考えましたが、これによってそれ自体の問題が発生します)。

Stack Exchange に関する関連質問: 文の先頭から word2vec (CBOW) トレーニング データを構築します



------------------------

私がこれまでに見たすべての実際の実装は、Mikolov によるオリジナルの word2vec.c に戻ると、すべての単語が順番に「中心ターゲット単語」になるようにしますが、コンテキスト ウィンドウを利用可能なものに切り詰める傾向があります。

たとえば、ウィンドウ = 5 (両側) で、「中央の単語」がテキストの最初の単語である場合、後続の 5 つの単語のみが使用されます。中心の単語が 2 番目の単語の場合、前の 1 単語と後ろの 5 単語が使用されます。

これは実装が簡単で、実際にはうまく機能します。

CBOW モードでは、すべての中心単語は依然として同じ数のニューラル ネットワーク順方向伝播 (大まかには予測試行) の一部ですが、単語は「エンドが入力として参加する頻度はわずかに低くなります。ただし、それでも、10 単語のうちの 1 単語ではなく、わずか 5 単語のうちの 1 単語になる場合など、段階的に大きな更新の対象となります。

(SG モードでは、語尾に近い単語は入力とターゲットの両方の頻度が若干低くなります。)

あなたのサンプル コード – フル コンテキスト ウィンドウが中心ターゲットにならずに単語を表示する – は、私が見たことのないものであり、バグの多い、洗練されていない実装でのみその選択が行われることを期待しています。

つまり、テキストが 1 単語よりも長い一般的な実装では、どちらの問題も発生しません。 (2 単語のテキストであっても、最初の単語は 2 番目のみのウィンドウを使用して予測され、2 番目の単語は 1 番目のみのウィンドウを使用して予測されます。)

実際の単語サンプリングの結果はわずかですが、両端の単語の扱いがまったく異なるため、word2vec の適切なトレーニング コーパス (大規模および大規模) において、単語の扱いにおけるこれらのわずかな違いが結果に違いをもたらすとは想像しにくいです。関連するすべての単語について、豊富な対照的な例を使用して変化に富んでいます。

(まれではあるが重要なトークンが先頭または末尾の位置にしか現れない、小規模なコーパスや合成コーパスでは問題になるかもしれません。しかし、これは word2vec の通常の使用方法とは程遠いです。)

一部の説明とAPI は word2vec トレーニングの単位を「文」として記述し、アルゴリズムは実際には「トークンのリスト」に対してのみ機能します。多くの場合、各トークンのリストは複数の段落またはドキュメントにまたがります。文末のピリオドを含む句読点などを擬似単語として保持する場合があります。s.文の境界を越えてウィンドウを出血させることはめったに害にはなりませんが、ある文から次の文につながる単語の共起は、文内の単語の共起と同じくらい有益である可能性があるため、役立つことがよくあります。したがって、多くの文を含むトレーニング テキストの一般的な実践では、あなたが考えているようなわずかに異なるサンプリング処理が行われる「終わりに近い」単語はさらに少なくなります。

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。