Word2vec原理笔记

580 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

在进行自然语言处理任务之前,我们首先需要将句子中一个个词语转变为数值型的输入,因为我们所用的模型比如说SVM只接受数值型的输入,我们需要先把词语转换为one-hot编码,再将One-Hot Vector经过Word2vec模型降维,也叫做词嵌入(将高维词向量嵌入一个低维空间),而Word2vec,就是词嵌入的一种。经过这样一个降维操作后,我们会比较容易分析词之间的关系。 在这里插入图片描述


一、Word2vec详解。

word2vec的模型结构如下在这里插入图片描述 词向量: 模型输入的是One-Hot Vector,隐藏层并没有激活函数,只是线性的单元,输入层维度和输出层维度是一样的,使用的是Softmax回归,模型训练完成后,我们需要的是这个模型通过训练数据所学到的参数。而这些参数,就是输入x的向量化表示,这个向量便是词向量。

Word2vec主要分为两种模型:Skip-gram模型和CBOW模型。 Skip-gram模型是用一个词语作为输入,来预测它周围的上下文。其中设置的参数window-size主要决定了目标词会与多远距离的上下文产生关系,CBOW同理。 在这里插入图片描述

CBOW模型是拿一个词语的上下文作为输入,来预测这个词语本身。 在这里插入图片描述

二、CBOW 和 Skip-Gram详解。

2-1、CBOW模型:(已知周围词预测中心词)

在这里插入图片描述 流程:输入为上下文单词的one-hot编码,之后乘以共享的输入权重矩阵W,所得到的向量相加求平均作为隐层向量,乘以输出权重矩阵W',得到的向量经过激活函数的处理得到一个V维的概率分布,其中每一维代表的是一个单词,概率最大的是预测出来的中间词。 使用梯度下降来更新W和W'。训练完毕后,输入层的每个单词与矩阵W相乘得到的向量就是word embedding。

2-1、Skip-Gram模型(已知中心词预测周围词)

周围词y只有一个(最简单情况):x是word2vec的输入one-hot编码,y是在这V个词输出的概率。 在这里插入图片描述

周围词y有多个(一般情况):即单个x对应多个y。 在这里插入图片描述