https://www.bilibili.com/video/av26923188?p=2
n=1的情况举例
词典的大小是指单词的个数
之前一直执着于一个词怎么样,其实nlp是关注整个上下文,也就是概率空间分布,联系到了数据挖掘、机器学习的本质,都是概率分布。如下图,英文中1,2,3,4,5和西班牙语的概率一致,这也是机器同翻的基础
输入层的词向量可以随机初始化,在模型训练过程中不断调节优化,这点和传统的神经网络模型不同。
最后的目的:每个词的词向量
下面是对上述神经网络的实现改进
一、Hierarchical Softmax:两种实现方式
CBOW:NN的输入是词的上下文,输出是词出现的概率
Skip-gram则相反
下面介绍CBOW
哈夫曼树:权重越高(在nlp中是出现频率越高)离树根越近
比如我们要训练的预料有10000个词,那在NN的输出softmax时去输出1万个概率值。于是把最常用的词放在离根据近的节点。
每次执行一个二分类,从根到叶子节点,一步步分层判断,这就是层次softmax的思想了。这里会用到sigmoid函数,广泛应用于二分类,比如逻辑回归。将负无穷到正无穷映射到0到1(概率),把它的导数推导一遍,做到烂熟于心
,
注意下图把传统的NN中的hidden layer去掉了
在上图中,比较重要的是哈夫曼树的设计和哈夫曼树中一次次该怎么分类
目标函数:最大似然函数
求解目标函数:求极大值,梯度上升方向,训练过程中,调节theta和x两个变量
二、Negative sample
对于语料库特别大的情况,哈夫曼树也会很复杂,所以希望减少负样本的规模
目标函数
求解
V(w)即为想要的词向量