問題タブ [word-embedding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
text - skflow 事前トレーニング単語埋め込みを text_classification_cnn に読み込みます
これは、畳み込みテキスト分類に関するskflowの例です
このコードのパッチをデバッグすると、それがどのように機能するのか説明できません。代わりに事前トレーニング済みの単語埋め込みを使用する方法は?
tensorflow - 埋め込みを学習するときのテンソルフロー制限バッチサイズ
単語のテンソルフロー ベクトル表現がテキスト シーケンスに対してこれを行う方法と同様に、HMM によって生成される一連の状態の状態埋め込みを学習しようとしています。
私の問題は、この HMM の「語彙」が 12 の異なる状態しかないことです。この語彙のサイズよりも大きなバッチを使用してコードを実行すると、Tensorflow が気に入らないようです。たとえば、バッチ サイズ 14 でトレーニングしようとすると、次のエラーが発生します。
このチェックの背後にある動機は何ですか?
machine-learning - テスト データを含む単語の埋め込みを行うには、word2vec を使用する必要がありますか?
私は NLP の初心者で、テキスト分類の仕事をしようとしています。仕事をする前に、単語の埋め込みを行う必要があることを知っています。私の質問は、トレーニング データでのみ単語埋め込みジョブを実行する必要があるか(テスト データがトレーニング データの事前トレーニング済みの vec-model からベクトルを取得するようにするため)、またはトレーニング データとテスト データの両方で実行する必要がありますか?
lua - 大規模なデータセットで Word 埋め込みをトレーニングする際のメモリの問題を処理するにはどうすればよいですか?
単語の埋め込みを生成する単語の予測可能性タスクをトレーニングしたいと考えています。ドキュメント コレクションには 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
- 単語の埋め込みを生成するためにデータセットのサイズを制限する方法についてのアイデアはありますか? ドキュメント数の増減に伴い、単語埋め込みのパフォーマンスやカバレッジにどのような影響がありますか? サンプリング手法を使用してデータセットからドキュメントをサンプリングすることは良い考えですか? はいの場合、いくつかのサンプリング手法を提案してください。
python - LSTM 内の Tensorflow シーケンス間 LSTM (ネスト)
特別な単語埋め込みを使用して LSTM を構築したいと考えていますが、これがどのように機能するかについていくつか質問があります。
ご存知かもしれませんが、一部の LSTM は文字を操作するため、文字を入力して文字を出力します。単語を抽象化して、ネストされた LSTM を使用して堅牢な埋め込みを学習し、わずかな文字レベルのエラーに耐性があるようにして、同じことをしたいと思います。
したがって、小さな LSTM が単語のすべての文字を展開し、これにより単語の埋め込みが作成されます。文に埋め込まれた各単語は、高レベルの LSTM への入力として供給されます。LSTM は、文字ではなく、すべての時間ステップで単語レベルで動作します。
質問: - それについて述べた研究論文はもう見つかりません。私が話していることを知っているなら、私がやりたいことに名前を付けたいと思います. - そのための TensorFlow オープンソース コードはすでに存在しますか? -それ以外に、それを実装する方法についてのアイデアはありますか? ニューラル ネットワークの出力は、処理が難しくなる可能性があります。出力が入れ子になった LSTM を使用して文字のトレーニングを行うには、単語の埋め込みを元に戻す必要があるからです。全体を 1 つのユニットとして 1 回トレーニングする必要があります (ワークフロー: LSTM chars in、LSTM on words、LSTM chars out)。
rnn_cell.MultiRNNCell
LSTMをネストするのではなく、互いの上に積み重ねると思います。
そうでなければ、メインの LSTM の外側のオートエンコーダーとして埋め込み (インとアウト) をトレーニングすることをお勧めしますか?
nlp - CBOW とスキップグラム: コンテキストを反転して単語をターゲットにするのはなぜですか?
このページでは、次のように述べられています。
[...] skip-gram は文脈と対象を反転させ、対象の単語から各文脈の単語を予測しようとします [...]
ただし、それが生成するトレーニング データセットを見ると、X と Y のペアの内容は、(X, Y) の 2 つのペアとして交換可能であるように見えます。
(quick, brown), (brown, quick)
では、最終的に同じものである場合、なぜコンテキストとターゲットをそれほど区別するのでしょうか?
また、Word2vecで Udacity のディープ ラーニング コースの演習を行っていると、なぜこの問題でこれら 2 つのアプローチの違いがそれほど大きいように見えるのか疑問に思います。
skip-gram に代わるものは、CBOW (Continuous Bag of Words) と呼ばれる別の Word2Vec モデルです。CBOW モデルでは、単語ベクトルからコンテキスト ワードを予測する代わりに、コンテキスト内のすべての単語ベクトルの合計から単語を予測します。text8 データセットでトレーニングされた CBOW モデルを実装して評価します。
これで同じ結果が得られるのではないでしょうか?
nlp - Word2Vec の次元はどこから来たのですか?
ニューラルネットワークをトレーニングし、ベクトル空間で類似の単語を見つけるためのニューラル埋め込みを構築するために word2vec モデルを使用しています。しかし、私の質問は、このhttps://iksinc.wordpress.com/2015/04/13のように、トレーニングの開始時に乱数 (ベクトル) によってそれらを初期化する、単語とコンテキストの埋め込み (行列) の次元についてです。 /words-as-vectors/
{book,paper,notebook,novel} の単語をグラフに表示したいとしましょう。まず、この次元 4x2、4x3、または 4x4 などの行列を作成する必要があります。行列の最初の次元のサイズはわかっています。私たちの語彙 |v|。しかし、行列の 2 番目の次元 (ベクトルの次元の数)、たとえば、これは単語「本」のベクトル [0.3,0.01,0.04] です。これらの数値は何ですか?それらには何らかの意味がありますか?たとえば、関連する 0.3 数値語彙の単語「本」と「紙」の関係に対して、0.01 は本とノートなどの関係です。ちょうど TF-IDF、または各次元 (列) Y が意味を持つ Co-Occurence 行列のように -行 X の単語に関連する単語またはドキュメントです。