Questions tagged «word2vec»

Word2vec是一个神经网络,可将单词表示为高维空间中的向量。

5
LDA与Word2Vec
我试图了解潜在Dirichlet分配和word2vec之间的相似度,用于计算单词相似度。 据我了解,LDA将单词映射到潜在主题的概率向量,而word2vec 将单词映射到实数的向量(与逐点互信息的奇异值分解有关,请参阅O. Levy,Y。Goldberg,“神经词嵌入作为隐式矩阵分解”;另请参见word2vec如何工作?)。 我对理论关系(可以被认为是一种概括或另一种变化)和实践(当使用一种而不是另一种)都感兴趣。 有关: 计算文档之间距离的一些标准方法是什么?-DataScience.SE

3
将单词嵌入应用于整个文档,以获得特征向量
如何使用词嵌入将文档映射到适合于监督学习的特征向量? 甲字嵌入每个单词映射到一个向量,其中是一些不太大数目(例如,500)。流行的词嵌入包括word2vec和Glove。v ∈ [R d dwwwv∈Rdv∈Rdv \in \mathbb{R}^dddd 我想应用监督学习对文档进行分类。我目前正在使用单词袋表示法将每个文档映射到特征向量,然后应用现成的分类器。我想用一个基于现有的预训练词嵌入的词替换词袋特征向量,以利用词嵌入中包含的语义知识。有标准的方法吗? 我可以想象出一些可能性,但是我不知道是否有最有意义的东西。我考虑过的候选方法: 我可以计算文档中每个单词的向量,然后将它们平均。但是,这似乎可能会丢失很多信息。例如,使用词袋表示法,如果有几个词与分类任务高度相关,而大多数词都不相关,则分类器可以轻松地学习到;如果我将文档中所有单词的向量平均,分类器就没有机会了。 将所有单词的向量连接起来是行不通的,因为这不会导致固定大小的特征向量。同样,这似乎是一个坏主意,因为它将对单词的特定位置过于敏感。 我可以使用单词嵌入将所有单词的词汇聚类为一组固定的聚类,例如1000个聚类,其中我在向量上使用余弦相似度作为单词相似度的度量。然后,我可以有一个词包,而不是词包:我提供给分类器的特征向量可以是1000个向量,其中第个分量计算文档中的词数是集群一部分。我iiiiii 给定单词,这些单词嵌入使我能够计算出前20个最相似的单词及其相似度得分的集合。我可以使用它来适应类似词袋的特征向量。当我看到这个词,除了增加相应字元素由,我还可以增加对应的字元素通过,增加对应的字元素通过,等等。w 1,… ,w 20 s 1,… ,s 20 w 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 是否有任何特定的方法可能对文档分类有效? 我不是在寻找para2vec或doc2vec;这些需要在大型数据语料库上进行培训,而我没有大型数据语料库。相反,我想使用现有的单词嵌入。


3
R:尽管数据集中没有NaN,随机森林仍在“外部函数调用”错误中抛出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中否定采样的概念。我无法消化[负]采样的想法。例如,在米科洛夫(Mikolov)的论文中,负采样期望被表示为 logσ(⟨w,c⟩)+k⋅EcN∼PD[logσ(−⟨w,cN⟩)].log⁡σ(⟨w,c⟩)+k⋅EcN∼PD[log⁡σ(−⟨w,cN⟩)].\log \sigma(\langle w,c\rangle ) + k \cdot \mathbb E_{c_N\sim PD}[\log\sigma(−\langle w,c_N\rangle)]. 我了解左边的,但是我无法理解对否定的词-语境对采样的想法。logσ(⟨w,c⟩)log⁡σ(⟨w,c⟩)\log \sigma(\langle w,c\rangle)


4
解释余弦负相似度
我的问题可能很愚蠢。所以我会提前道歉。 我正在尝试使用由Stanford NLP组预训练的GLOVE模型(链接)。但是,我注意到我的相似性结果显示为负数。 那立刻促使我看了字向量数据文件。显然,字向量中的值可以为负。这就解释了为什么我看到负余弦相似度。 我习惯了频率向量的余弦相似度的概念,其值以[0,1]为界。我知道一个事实,根据向量之间的夹角,点积和余弦函数可以为正也可以为负。但是,我确实很难理解和解释这种负余弦相似性。 例如,如果我有一对相似度为-0.1的单词,它们是否比另一对相似度为0.05的单词少?如何比较-0.9与0.8的相似性? 还是我应该看看的最小角度差的绝对值?分数的绝对值?nπnπn\pi 非常感谢。

2
SpaCy中的.similarity方法如何计算?
如果这是正确的堆栈站点,则不能确定,但​​是可以。 .similiarity方法如何工作? 哇,太棒了!它的tfidf模型可能更容易,但是只有一行代码的w2v? 在他的 关于spaCy和 razhribernik的10行教程中,向我们展示了可以在令牌,发送,词块和文档上运行的.similarity方法。 之后nlp = spacy.load('en'),doc = nlp(raw_text) 我们可以在令牌和块之间进行.likeness查询。但是,此.similarity方法在后台计算了什么? SpaCy已经非常简单.vector,可以根据GloVe模型的训练来计算w2v向量(a .tfidf或.fasttextmethod会有多酷?)。 模型是简单地计算这两个w2v,.vector,向量之间的余弦相似度还是比较其他矩阵?具体细节在文档中不清楚; 任何帮助表示赞赏!


3
Word2Vec的跳过语法模型如何生成输出向量?
我在理解Word2Vec算法的跳过语法模型时遇到问题。 在连续词袋中,很容易看到上下文词如何在神经网络中“拟合”,因为您基本上是在将每个一次性编码表示形式与输入矩阵W相乘后对它们进行平均。 但是,在skip-gram的情况下,您只能通过将一热点编码与输入矩阵相乘来获得输入词向量,然后假设通过将上下文词乘以C(=窗口大小)来表示上下文词输入矢量表示,输出矩阵为W'。 我的意思是说,词汇量为,编码为,输入矩阵,作为输出矩阵。给定单词具有一词热编码和上下文单词和(具有热代表和),如果将乘以输入矩阵,则得到,现在如何从中生成得分矢量?Ñ w ^ ∈ [R V × Ñ W¯¯ ' ∈ [R Ñ × V瓦特我X 我瓦特Ĵ 瓦特ħ X Ĵ X ħ X 我 W¯¯ ħ:= X Ť 我 W¯¯ = w ^ (我,⋅ ) ∈ [R Ñ Ç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 …

1
从性能上考虑词嵌入算法
我试图将大约6000万个短语嵌入向量空间,然后计算它们之间的余弦相似度。我一直在使用sklearn's CountVectorizer和一个自定义的生成标记器的函数,该函数会产生字母和二字组。事实证明,要获得有意义的表示,我必须允许大量列,行数成线性。这会导致矩阵稀疏,从而导致性能下降。如果只有大约10,000列,那还不错,我认为这对于单词嵌入来说是相当合理的。 我正在考虑尝试使用Google,word2vec因为我敢肯定它会产生低得多的尺寸和更密集的嵌入。但是在此之前,还有其他嵌入值得一看吗?关键要求是能够扩展大约6000万个短语(行)。 我对词嵌入领域还很陌生,因此任何建议都将对您有所帮助。 我还应该补充一点,我已经在使用奇异值分解来提高性能。


2
使用LSTM处理语言建模任务中的未知单词
对于自然语言处理(NLP)任务,通常使用word2vec向量作为单词的嵌入。但是,可能有很多未知单词未被word2vec向量捕获,这仅仅是因为这些单词在训练数据中的出现频率不够高(许多实现在将单词添加到词汇表之前使用最少的计数)。尤其是来自Twitter的文本,尤其是单词拼写错误的情况。 在对NLP任务进行建模(例如使用长短期(LSTM)网络进行情感预测)时,如何处理这些未知单词?我看到两个选择: 在word2vec词典中添加“未知单词”标记。 删除这些未知单词,以使LSTM甚至不知道单词在句子中。 处理这些单词的首选方式是什么?

1
word2vec中的交叉熵损失的导数
我正在尝试通过CS224D斯坦福大学在线课程材料的第一个问题集解决问题,而我对问题3A遇到一些问题:当使用带有softmax预测函数和交叉熵损失函数的跳过语法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}) 我们需要计算∂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 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 + \frac{1}{\sum_{j}^{|V|}exp(w_j^T\hat{r})}\sum_{j}^{|V|}exp(w_j^T\hat{r})w_j 这是正确的还是可以进一步简化?我想尝试确保自己走在正确的轨道上,因为问题集解决方案未在线发布。另外,正确完成书面作业对正确完成编程作业很重要。

1
skipgram word2vec的渐变
我正在研究斯坦福大学NLP深度学习班的书面作业问题,网址为http://cs224d.stanford.edu/assignment1/assignment1_soln 我试图了解3a的答案,他们正在寻找中心词向量的导数。 假设你被给予预测的字向量对应于中心字Ç为skipgram,和字预测与在word2vec模型中发现的功能SOFTMAX制成。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 其中是所有的输出向量的矩阵,并让ÿ是词的SOFTMAX预测的列向量,并且ÿ是独热标签,该标签也是列向量。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). 有人可以告诉我实现此目标的步骤吗?我一直用这个问题作为参考在word2vec交叉熵损失的衍生,但我特别想知道表示。UT(y^−y).UT(y^−y).U^T(\hat{y} − y).
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.