Word2Vec中词向量的特征

数据挖掘 机器学习 词嵌入 word2vec nlp 情绪分析
2021-09-22 05:35:14

我正在尝试进行情绪分析。为了将单词转换为单词向量,我使用的是 Word2Vec 模型。假设我有一个名为“句子”的列表中的所有句子,并且我将这些句子传递给 word2vec,如下所示:

model = word2vec.Word2Vec(sentences, workers=4 , min_count=40, size=300,   window=5, sample=1e-3)

由于我对词向量不熟悉,因此我有两个疑问:

1-将特征数设置为 300 定义了词向量的特征。但这些特征意味着什么?如果这个模型中的每个词都由一个 1x300 的 numpy 数组表示,那么这 300 个特征对那个词意味着什么?

2- 上述模型中由“sample”参数表示的下采样实际上有什么作用?

2个回答

1-特征数量:就神经网络模型而言,它表示投影(隐藏)层中的神经元数量。由于投影层是建立在分布假设之上的,每个单词的数字向量表示它与上下文单词的关系。

这些特征是由神经网络学习的,因为这是无监督的方法。每个向量都有几组语义特征。例如,让我们以经典示例为例,V(King) -V(man) + V(Women) ~ V(Queen)每个单词由 300 维向量表示。V(King)将在向量中按一定顺序具有Royality、 Kingdom、 masculinity、human 的语义特征。V(man)会有阳刚之气,人性化,按一定的顺序工作。因此,当V(King)-V(Man)完成时,男性特征,人类特征将被取消,并且当添加V(Women)具有女性特征时,人类特征将被添加,从而导致向量非常类似于V(Queen). 有趣的是,这些特征以一定的顺序编码在向量中,因此加法、减法等数值计算可以完美地工作。这是由于神经网络中无监督学习方法的性质。

2-有两种近似算法。Hierarchical softmaxnegative sampling给定样本参数时,采用负采样。在分层 softmax 的情况下,对于每个词向量,其上下文词被赋予正输出,而词汇表中的所有其他词被赋予负输出。时间复杂度问题通过负采样解决。与负采样一样,而不是整个词汇表,只有词汇表的采样部分给出负输出,并且训练向量,这比以前的方法快得多。

  1. 根据分布假设,单词向量中的单个维度对现实世界中的单词没有多大意义。您需要担心各个维度。如果你的问题是我应该如何选择维度的数量,它完全基于你的数据的实验,它可以从 100 到 1000。对于许多在 wiki 文本上进行训练的实验,300 维度主要给出最好的结果。
  2. 样本参数是用于修剪高频词的参数。例如,“the”、“is”、“was”,这些停用词在预测内部词时不考虑在窗口中,默认值可以很好地识别这些频率较高的停用词。