一篇初学者的论文阅读笔记。尽量通俗易懂,尽量不加公式。
写在前面的例子
首先,是一个分析词之间共现概率的例子:
考虑词i和词j是某个特定领域(如:热力学)的词,比如i=
词k和ice有关,和steam无关,如k=
solid 。那么\( ratio \)的值会很大。词k和steam有关,和ice无关,如k=
gas 。那么\( ratio \)的值会很小。词k和ice, steam均相关/均不相关,如k=
water/fashion 。那么\( ratio \)的值会趋于1。
这个例子想说明什么呢? 下面是论文中的原话:
Compared to the raw probabilities, the ratio is better able to distinguish relevant words (solid and gas) from irrelevant words (water and fashion) and it is also better able to discriminate between the two relevant words.
翻译一下,大概是,和原始概率值相比,ratio可以更好的区分相关词(solid, gas)和不相关词(water和fashion)。
比起单纯分析两个词共现概率的值大小,共现概率的比更能说明词与词之间的相关程度。打个不恰当的比方,没有对比就没有伤害。
关于模型
这也就因此引出了本文的正题。
作为一个标杆性质的模型,word2vec可谓是集万千宠爱于一身。embedding的思想也被用于机器学习能涉及的各个领域。
Word2Vec呢,通过滑动窗口,利用词之间的共现,训练词的向量表示。而glove捕捉的是全局信息,所谓全局,就是例子中ratio的引入。
模型的核心, 即
$$ J = \sum_{i,j=1}^V f(X_{ij}) (w_i^T \tilde{w_j} + b_i + \tilde{b_j} - logX_{ij})^2 $$
看上去,与矩阵分解的损失函数有些类似。关于推导过程,这里就不做过多赘述(可阅读论文相关段落)。以笔者的理解,简单的概况如下:
从一个未知的F函数(即ratio)入手,
$$ F(w_i,w_j, \tilde{w_k}) = \frac{P_{ik}}{P_{jk}} $$
发现函数F在一些限制条件(向量线性关系的保持,对称性)下,可以被定义成一种唯一的形式。
$$ F(w_i^T\tilde{w_k}) = \frac{X_{ik}}{X_{i}} $$
其中F = exp, 可以推导出:\( w_i^T\tilde{w_k} + b_i + \tilde{b_k} = log(X_{ik}) \)
加入权重因子的考虑,这也就如愿得到了上面的损失函数。
$$ f(x)=\begin {cases} (x/x_{max})^\alpha, & x<x_{max} \\ 1, & x\geq{x_{max}} \end {cases} $$