Advertisement

PyTorch中的word embedding基于负采样策略的skip-gram模型

阅读量:

本研究重点实现的是word2vec框架下采用negative sampling技术的skip-gram模型,原始文献为《Distributed Representations of Words and Phrases and their Compositionality》。word2vec原理部分请戳这里(虽然很长,但是真的干货满满,强推!)
所谓word_embedding,本质上是通过一个向量形式对词语进行表征。
举个例子,若当前存在10个词语,我们希望用数字来表达这些词语,使得在看到这些数字时能够准确识别对应的词语。最直接的方式是采用one-hot编码方法。然而,当词汇数量达到1000或10000时,使用one-hot编码将导致维度急剧膨胀,并且无法体现词语之间的关联性。
若改用word-embedding技术,并将embedding-size设定为3,则每个词语将被表示为由三个数字构成的向量。此时可以认为这10个词语分布在三维空间中,这三个数值分别对应x、y、z轴坐标。只要观察到这些数值,就能在三维空间中确定该词语的位置;同时通过比较两个词向量的坐标值,还可以进一步评估它们之间的相似程度。

复制代码
    import torch
    import torch.nn as nn
    import torch.nn.functional 

全部评论 (0)

还没有任何评论哟~