単語の埋め込みを生成する単語の予測可能性タスクをトレーニングしたいと考えています。ドキュメント コレクションには 243,000 のドキュメントが含まれています。コードの実装はトーチです。私はデータセットの巨大なサイズに苦労しており、243,000 の完全な記事ドキュメントのコレクションであるこのような大規模なデータセットで単語の埋め込みをトレーニングする方法についてのアイデアが必要です。リサーチ コンピューティング リソースは時間制限があるため、GPU ノードに短時間アクセスできるため、増分モデル トレーニングを選択しました。
- 増分モデル トレーニング: データセット全体でトレーニングする 1 つの方法は、データの 1 つのチャンクでモデルをトレーニングして保存する増分モデル トレーニングを使用することです。後で同じ事前トレーニング済みのモデルを取得し、次のデータのチャンクでトレーニングを開始します。このアプローチで私が直面している問題は、単語の語彙/辞書をどのように維持するかということです。単語の埋め込み方法では、辞書/語彙が重要な役割を果たします。すべてのドキュメントを一掃し、設定された最小頻度よりも多いカウントを持つ単語の語彙を作成します。さて、実際には、このボキャブは各単語に関連付けられたインデックスを持つハッシュ マップであり、トレーニング サンプルでは、モデルを単純にするために単語をボキャブ内のインデックスに置き換えます。インクリメンタル トレーニングの場合、ディクショナリをインクリメンタルに作成するにはどうすればよいですか? 最初にドキュメント全体で語彙/辞書を作成し、その後段階的にトレーニングする必要がありますか? それとも、増分トレーニングでも語彙を拡張する方法はありますか?
- もう 1 つの問題は、語彙データ構造のサイズに対するメモリ制限です。LUA ベースの Torch でモデルを実装しています。そのため、LUA はテーブルのサイズに制限を設けているため、ドキュメント全体の語彙を単一のテーブルにロードすることはできません。このようなメモリの問題を克服するにはどうすればよいですか?
- グローブのベクトルからインスピレーションを得ています。彼らの論文では、次のように述べています。16 億のトークンを含む 2014 年のウィキペディアのダンプ。43 億のトークンを持つ Gigaword 5。60 億のトークンを持つ Gigaword5 + Wikipedia2014 の組み合わせ。また、Common Crawl5 からの 420 億個の Web データ トークン。各コーパスをスタンフォード トークナイザーでトークン化および小文字化し、最も頻繁に使用される 400,000 語のボキャブラリを構築し、共起カウント X のマトリックスを構築します。このような大きなコーパスと大きなボキャブラリで Glove ベクトルがどのようにトレーニングされ、その場合のメモリ制限がどのように処理されたかについてのアイデアはありますか? 論文参照 - http://nlp.stanford.edu/pubs/glove.pdf
- 単語の埋め込みを生成するためにデータセットのサイズを制限する方法についてのアイデアはありますか? ドキュメント数の増減に伴い、単語埋め込みのパフォーマンスやカバレッジにどのような影響がありますか? サンプリング手法を使用してデータセットからドキュメントをサンプリングすることは良い考えですか? はいの場合、いくつかのサンプリング手法を提案してください。