如何在 CBOW 中获取词嵌入?
数据挖掘
词嵌入
word2vec
2022-02-17 10:35:20
2个回答
Word2Vec
Word2Vec是一种用于从原始文本中学习词嵌入的预测模型。它将一个大型的词库作为输入,并生成一个向量空间,通常为几百维,语料库中的每个唯一词都被分配一个空间中的相应向量。
词向量被定位在向量空间中,使得在语料库中共享共同上下文的词在空间中彼此靠近。Gensim提供了一种使用和开始使用Word2Vec的好方法。
Word2vec实际上是两种不同方法的集合:
- 连续词袋(CBOW)
- 跳格
给定句子中的一个词,我们称其为(也称为中心词或目标词),CBOW使用周围词的上下文作为输入。例如,如果上下文窗口设置为,那么输入将是位置、、和 . 基本上是中心词之前和之后的两个词。给定这些信息,CBOW 然后尝试预测目标词。CBOW 的目标函数为:
word2vec CBOW 和 skip-gram 网络架构
跳格模型
- 从目标词预测源上下文词。
- Skip-gram将每个上下文-目标对视为一个新的观察结果,当我们拥有更大的数据集时,这往往会做得更好。
CBOW - 连续词袋模型
- 从源上下文词预测目标词。
- CBOW平滑了许多分布信息(通过将整个上下文视为一次观察)。在大多数情况下,这对于较小的数据集是有用的。
更具体地说,我们使用输入词的 one-hot 编码,并测量与目标词的 one-hot 编码相比的输出误差。在预测目标词的过程中,我们学习了目标词的向量表示。
训练时的 CBOW 尝试从上下文词中预测主词。
训练完成后,我们使用第一个隐藏层的权重矩阵来获得 Word2vec 嵌入。权重矩阵乘以一个热编码得到 word2vec 嵌入。
如果你将一个 1 x 10,000 的 one-hot 向量乘以一个 10,000 x 300 的矩阵,它实际上只会选择对应于“1”的矩阵行。这是一个小例子,可以给你一个视觉效果。:

这意味着该模型的隐藏层实际上只是作为查找表运行。隐藏层的输出只是输入词的“词向量”。
参考: http: //mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/
其它你可能感兴趣的问题
