タグ付けされた質問 「word2vec」

Word2vecは、高次元空間で単語をベクトルとして表すニューラルネットワークです。

5
LDA対word2vec
単語の類似性を計算するためのLatent Dirichlet Allocationとword2vecの類似性を理解しようとしています。 私が理解しているように、LDAは単語を潜在トピックの確率のベクトルにマッピングし、word2vecはそれらを実数のベクトルにマッピングします(点ごとの相互情報の特異値分解に関連します。O。Levy 、Y. Goldberg、 "Neural Word Embedding暗黙的な行列因子分解として」 ; word2vecの仕組みも参照してください)。 理論的な関係(一方を他方の一般化、またはバリエーションと見なすことができます)と実用(一方を使用して他方を使用しない場合)の両方に興味があります。 関連: ドキュメント間の距離を計算する標準的な方法は何ですか?-DataScience.SE

3
文書全体に単語の埋め込みを適用して、特徴ベクトルを取得します
ワード埋め込みを使用して、教師あり学習での使用に適した特徴ベクトルにドキュメントをマッピングするにはどうすればよいですか? ワード埋め込みは各ワードをマップベクターにここで、一部ではない余りに多数(例えば、500)です。人気のある単語の埋め込みには、word2vecとGloveが含まれます。V ∈ Rの Dの DwwwV ∈Rdv∈Rdv \in \mathbb{R}^dddd 教師あり学習を適用してドキュメントを分類したい。現在、bag-of-words表現を使用して各ドキュメントを特徴ベクトルにマッピングし、市販の分類器を適用しています。単語の埋め込みに含まれるセマンティック知識を活用するために、単語の特徴ベクトルを既存の事前学習済みの単語の埋め込みに基づくものに置き換えたいと思います。それを行う標準的な方法はありますか? いくつかの可能性を想像できますが、最も意味のあるものがあるかどうかはわかりません。私が検討した候補アプローチ: ドキュメント内の各単語のベクトルを計算し、それらすべてを平均化することができました。ただし、これは多くの情報を失う可能性があるようです。たとえば、word-of-words表現では、分類タスクに非常に関連性のある単語がいくつかあり、ほとんどの単語が無関係である場合、分類子はそれを簡単に学習できます。文書内のすべての単語のベクトルを平均すると、分類子にはチャンスがありません。 すべての単語のベクトルを連結しても機能しません。これは、固定サイズの特徴ベクトルにならないためです。また、単語の特定の配置に過度に敏感になるため、悪い考えのように思えます。 単語の埋め込みを使用して、すべての単語の語彙をクラスタの固定セット、たとえば1000個のクラスタにクラスタ化できます。この場合、ベクトルのコサイン類似度を単語の類似度の尺度として使用します。次に、バッグオブワードの代わりに、バッグオブクラスターを使用することができます。分類器に提供する特徴ベクトルは、1000 番目のベクトルにすることができ、番目のコンポーネントはドキュメント内の単語の数をカウントしますクラスター一部です。私私私i私私i 単語与えられると、これらの単語の埋め込みにより、上位20個の最も類似した単語とそれらの類似度スコアセットを計算できます。これを使用して、単語のような特徴ベクトルを適応させることができました。私は単語を見たとき、単語に対応する要素インクリメントに加えて、により、Iはまた、単語に対応する要素増分ができによって、単語に対応する要素増分により、というように。w 1、… 、w 20 s 1、… 、s 20 w w 1 w 1 s 1 w 2 s 2wwww1、… 、w20w1、…、w20w_1,\dots,w_{20}s1、… 、s20s1、…、s20s_1,\dots,s_{20}wwwwww111w1w1w_1s1s1s_1w2w2w_2s2s2s_2 文書の分類に適した特定のアプローチはありますか? パラグラフ2vecまたはdoc2vecを探していません。それらは大規模なデータコーパスのトレーニングを必要とし、私は大規模なデータコーパスを持っていません。代わりに、既存の単語埋め込みを使用したいと思います。


3
R:データセットにNaNがないにもかかわらず、「Forest function call」エラーでNaN / Infをスローするランダムフォレスト[非公開]
キャレットを使用して、データセットに対してクロス検証されたランダムフォレストを実行しています。Y変数は要因です。データセットにNaN、Inf、またはNAはありません。ただし、ランダムフォレストを実行すると、 Error in randomForest.default(m, y, ...) : NA/NaN/Inf in foreign function call (arg 1) In addition: There were 28 warnings (use warnings() to see them) Warning messages: 1: In data.matrix(x) : NAs introduced by coercion 2: In data.matrix(x) : NAs introduced by coercion 3: In data.matrix(x) : NAs introduced by …

1
word2vecでネガティブサンプリングはどのように機能しますか?
私はword2vecのコンテキストでネガティブサンプリングの概念を理解しようと懸命に努力しています。[ネガティブ]サンプリングのアイデアを消化できません。たとえば、ミコロフの論文では、負のサンプリング期待値は次のように定式化されています。 ログσ(⟨ W 、C ⟩ )+ K ⋅ EcN〜PD[ ログσ(- ⟨ W 、CN⟩ )] 。ログ⁡σ(⟨w、c⟩)+k⋅EcN〜PD[ログ⁡σ(−⟨w、cN⟩)]。\log \sigma(\langle w,c\rangle ) + k \cdot \mathbb E_{c_N\sim PD}[\log\sigma(−\langle w,c_N\rangle)]. 私は左の用語理解していますが、ネガティブな単語とコンテキストのペアをサンプリングするアイデアを理解できません。ログσ(⟨ W 、C ⟩ )ログ⁡σ(⟨w、c⟩)\log \sigma(\langle w,c\rangle)


4
負の余弦の類似性の解釈
私の質問はばかげているかもしれません。あらかじめお詫び申し上げます。 私はスタンフォードNLPグループ(リンク)によって事前トレーニングされたGLOVEモデルを使用しようとしていました。しかし、私の類似性の結果がいくつかの負の数を示していることに気づきました。 すぐに、単語ベクトルデータファイルを確認するように求められました。どうやら、単語ベクトルの値は負になることが許されていました。これが、コサインの負の類似性を見た理由です。 [0、1]で値が制限されている周波数ベクトルのコサイン類似度の概念に慣れています。ベクトル間の角度に応じて、内積と余弦関数が正または負になる場合があることを知っています。しかし、私はこの否定的な余弦の類似性を理解して解釈するのに本当に苦労しています。 たとえば、類似性が-0.1の単語のペアがある場合、類似性が0.05の別のペアよりも類似性が低いですか?-0.9と0.8の類似度を比較してみませんか? または私はちょうどからの最低限の角度差の絶対値になります?スコアの絶対値は?nはπnπn\pi とても感謝しています。

2
SpaCyの.similarityメソッドはどのように計算されますか?
これが正しいスタックサイトかどうかはわかりませんが、ここに行きます。 .similiarityメソッドはどのように機能しますか? うわー、spaCyは素晴らしい!tfidfモデルの方が簡単かもしれませんが、w2vのコードは1行だけですか?! spaCy andrazhribernikショーに関する彼の 10行のチュートリアルでは、トークン、送信、ワードチャンク、およびドキュメントで実行できる.similarityメソッドを示しています。 その後nlp = spacy.load('en')、doc = nlp(raw_text) トークンとチャンク間で.similarityクエリを実行できます。しかし、この.similarity方法では、背後で何が計算されていますか? SpaCyにはすでに.vector、GloVeモデルからトレーニングされたw2vベクトルを計算する非常に単純ながあります(a .tfidfまたは.fasttextmethod はどれくらいクールでしょうか?)。 モデルは、これら2つのw2v、.vector、vectors間のコサイン類似度を単純に計算するのですか、それとも他のマトリックスを比較するのですか?詳細はドキュメントでは明確ではありません。助けていただければ幸いです!

3
頻度の低い単語に対しては階層的なソフトマックスが優れているのに対し、頻度の高い単語に対してはネガティブサンプリングが優れているのはなぜですか?
word2vecのCBOWモデルとskip-gramモデルで、階層的なソフトマックスが頻度の低い単語に対して優れているのに対し、ネガティブサンプリングが頻繁な単語に対して優れているのはなぜかと思います。https://code.google.com/p/word2vec/で申し立てを読みました。

3
Word2Vecのスキップグラムモデルはどのように出力ベクトルを生成しますか?
Word2Vecアルゴリズムのスキップグラムモデルを理解できません。 連続する単語のバッグでは、基本的にワンホットエンコーディング表現と入力行列Wを乗算した後にそれらを平均化するため、ニューラルネットワークでコンテキストワードがどのように「適合する」かを簡単に確認できます。 ただし、スキップグラムの場合、ワンホットエンコーディングと入力行列を乗算して入力ワードベクトルを取得するだけで、コンテキストワードのC(=ウィンドウサイズ)ベクトル表現を乗算して、出力行列W 'を使用した入力ベクトル表現。 つまり、サイズボキャブラリとサイズエンコーディング、入力行列、およびエンコーディングがあります。出力行列として。ワード所与ワンホットエンコーディングとコンテキスト言葉ではと(ワンホット担当者が有する及びあなたが乗算場合)、入力行列によってあなたが得る、これからスコアベクトルをどのように生成しますか?VVVNNNW∈RV×NW∈RV×NW \in \mathbb{R}^{V\times N}W′∈RN×VW′∈RN×VW' \in \mathbb{R}^{N\times V}wiwiw_ixixix_iwjwjw_jwhwhw_hxjxjx_jxhxhx_hxixix_iWWWh:=xTiW=W(i,⋅)∈RNh:=xiTW=W(i,⋅)∈RN{\bf h} := x_i^TW = W_{(i,\cdot)} \in \mathbb{R}^NCCC

1
パフォーマンスの観点からの単語埋め込みアルゴリズム
約6000万のフレーズをベクトル空間に埋め込み、それらの間のコサイン類似度を計算しようとしています。CountVectorizerユニグラムとバイグラムを生成するカスタムビルドのトークナイザー関数でsklearnを使用してきました。意味のある表現を得るには、行数に比例した膨大な数の列を許可する必要があることがわかります。これは、非常にまばらな行列につながり、パフォーマンスを低下させます。約10,000列しかなかったとしてもそれほど悪くはありません。これは、単語の埋め込みにはかなり妥当だと思います。 私はword2vecそれがはるかに低次元でより高密度の埋め込みを生成すると確信しているので、Googleを使用しようと考えています。しかしその前に、最初に見ておくべき他の埋め込みがありますか?重要な要件は、約6,000万のフレーズ(行)をスケーリングできることです。 私は単語埋め込みの分野にかなり慣れていないので、アドバイスがあれば助かります。 また、パフォーマンスを向上させるために、特異値分解をすでに使用していることも付け加えておきます。

2
次元を削減するためのt-SNEのパラメーターを決定する方法は?
私は単語の埋め込みに非常に慣れていません。学習後のドキュメントの様子を視覚化したい。私はt-SNEがそれを行うためのアプローチであると読みました。埋め込みサイズとして250次元の100Kドキュメントがあります。同様に利用可能ないくつかのパッケージがあります。 ただし、t-SNEの場合、何回反復するか、アルファの値または永続性の値をよく学習するために維持する必要があるかわかりません。 これらのハイパーパラメータはありますか、それともいくつかの属性によって決定できますか?

2
LSTMを使用した言語モデリングタスクでの未知の単語の処理
自然言語処理(NLP)タスクでは、word2vecベクトルを単語の埋め込みとして使用することがよくあります。ただし、単純にこれらの単語がトレーニングデータで十分に見られないために、word2vecベクトルによってキャプチャされない未知の単語が多数ある場合があります(多くの実装では、単語を語彙に追加する前に最小カウントを使用します)。これは特に、単語がつづりが間違っているTwitterなどのテキストに当てはまります。 長期短期(LSTM)ネットワークを使用した感情予測などのNLPタスクをモデル化する場合、このような未知の単語をどのように処理する必要がありますか?2つのオプションが表示されます。 「未知の単語」トークンをword2vec辞書に追加します。 これらの未知の単語を削除して、LSTMがその単語が文の中にあることさえ知らないようにします。 これらの単語を処理する好ましい方法は何ですか?

1
word2vecのクロスエントロピー損失の導関数
私はcs224dオンラインスタンフォードクラスのコース教材の最初の問題セットを処理しようとしていますが、問題3Aでいくつかの問題があります。ソフトマックス予測関数とクロスエントロピー損失関数でスキップグラムword2vecモデルを使用すると、予測された単語ベクトルに関して勾配を計算したい。したがって、softmax関数が与えられます: wi^=Pr(wordi∣r^,w)=exp(wTir^)∑|V|jexp(wTjr^)wi^=Pr(wordi∣r^,w)=exp⁡(wiTr^)∑j|V|exp(wjTr^) \hat{w_i} = \Pr(word_i\mid\hat{r}, w) = \frac{\exp(w_i^T \hat{r})}{\sum_{j}^{|V|}exp(w_j^T\hat{r})} そしてクロスエントロピー関数: CE(w,w^)=−∑kwklog(wk^)CE(w,w^)=−∑kwklog(wk^)CE(w, \hat{w}) = -\sum\nolimits_{k} w_klog(\hat{w_k}) \ frac {\ partial {CE}} {\ partial {\ hat {r}}}を計算する必要があり∂CE∂r^∂CE∂r^\frac{\partial{CE}}{\partial{\hat{r}}} 私の手順は次のとおりです。 CE(w,w^)=−∑|V|kwklog(exp(wTkr^)∑|V|jexp(wTjr^))CE(w,w^)=−∑k|V|wklog(exp⁡(wkTr^)∑j|V|exp(wjTr^))CE(w, \hat{w}) = -\sum_{k}^{|V|} w_klog(\frac{\exp(w_k^T \hat{r})}{\sum_{j}^{|V|}exp(w_j^T\hat{r})}) =−∑|V|kwklog(exp(wTkr^)−wklog(∑|V|jexp(wTjr^))=−∑k|V|wklog(exp⁡(wkTr^)−wklog(∑j|V|exp(wjTr^))= -\sum_{k}^{|V|} w_klog(\exp(w_k^T \hat{r}) - w_klog(\sum_{j}^{|V|}exp(w_j^T\hat{r})) ここでwkwkw_kは1つのホットベクトルで、iは正しいクラスです。 CE(w,w^)=−wTir^+log(∑|V|jexp(wTjr^))CE(w,w^)=−wiTr^+log(∑j|V|exp(wjTr^))CE(w, \hat{w}) = - w_i^T\hat{r} + log(\sum_{j}^{|V|}exp(w_j^T\hat{r})) ∂CE∂r^=−wi+1∑|V|jexp(wTjr^)∑|V|jexp(wTjr^)wj∂CE∂r^=−wi+1∑j|V|exp(wjTr^)∑j|V|exp(wjTr^)wj\frac{\partial{CE}}{\partial{\hat{r}}} = -w_i + …

1
スキップグラムword2vecのグラデーション
スタンフォード大学NLPディープラーニングクラスの課題の問題http://cs224d.stanford.edu/assignment1/assignment1_soln 私は3aの答えを理解しようとしています。ここで、彼らは中心語のベクトルの派生物を探しています。 あなたが予測単語ベクトル与えられていると仮定し、中心ワードに対応するC skipgramのために、と単語予測がword2vecモデルで見つかったソフトマックス関数で作られています。vcvcv_{c} y^o=p(o|c)=exp(uTovc)∑Ww=1exp(uTwvc)y^o=p(o|c)=exp(uoTvc)∑w=1Wexp(uwTvc)\hat{y}^{o} = p(o | c) = \frac {exp(u_{o}^{T} v_{c})}{\sum_{w=1}^{W}exp(u_{w}^{T} v_{c})} ここで、wはw番目の単語を表し、(w = 1、。。、W)は語彙内のすべての単語の「出力」単語ベクトルです。クロスエントロピーコストがこの予測に適用され、単語oが期待される単語であると仮定します。uwuwu_w ここで、すべての出力ベクトルの行列であり、およびlet yは単語のソフトマックス予測の列ベクトルであり、そしてyはワンホットラベルでいますも列ベクトルです。U=[u1,u2,⋅⋅⋅,uW]U=[u1,u2,···,uW]U = [u_1,u_2, · · · ,u_W ]y^y^\hat{y} クロスエントロピーでありCE(y,y^)=−∑iyilog(y^i)CE(y,y^)=−∑iyilog⁡(y^i)CE(y, \hat{y}) = − \sum_iy_i\log(\hat{y}_i) だから、中心ベクトルのための勾配のための答えがある∂J∂vc=UT(y^−y).∂J∂vc=UT(y^−y).\frac{∂J}{∂v_c}= U^T(\hat{y} − y). UT(y^−y).UT(y^−y).U^T(\hat{y} − y).

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.