Word2vec、Bert、Transformer
Word2vec
- 模型分类
-
跳字模型
在跳字模型中,我们用一个词来预测它在样本序列周围的词。例如,给定文本序列 the、man、hit、this和son,跳字模型所关心的是,给定它的邻近词the、man、this 和 son 的概率。在这个例子中,hit叫中心词,the、man、his、son叫做背景词。
假设词典大小为,使用独热向量表示词典中的每个词,当窗口大小为m时,跳字模型需要最大化给定任意中心词生成背景词的概率:
上式的最大似然估计与最小化以下损失函数等价:
估计概率的方法:
其中 代表代表第i个词的词向量表示,表示的词向量表示 -
连续词袋模型
连续词袋模型与跳字模型类似,不同的是,连续词袋模型使用背景词生成中心词,其表达式如下:
上式的最大似然估计与最小化以下损失函数等价:估计概率的方法:
-
处理方法
上述模型训练过程中,计算量与词典的大小成正相关关系,造成计算开销非常大,因此出现了层序Softmax与负例采样算法:
-
层序Softmax算法
实例
正例:
负例:
计算过程:
第一次:
第二次:
第三次:
第二次: -
负例采样
表示当上下文为Context(w)时预测中心词为w的概率
表示当上下文为Context(w)时预测中心词为u的概率
给合适的语料库C,则目标函数为:任何采样算法都应该保证频次越高的样本容易被采样出来。基本的思路式对于长度为1的线段,根据词频将其平均第分配给每个词语:
于是我们将该线段公平地分配了,接下来我们随机生成0-1间的随机数,看落到那个区域内,就能采样到该区对应的单词了,很公平
Bert
- 解决的问题