1、word2vec
背景:
预测问题需要构建 f(x)->y 的映射,但这里的数学模型 f(比如神经网络、SVM)只接受数值型输入,而 NLP 里的词语,是人类的抽象总结,是符号形式的。
输入转换成数值形式,或者说——嵌入到一个数学空间里,这种嵌入方式,就叫词嵌入(word embedding),而 Word2vec,就是词嵌入( word embedding) 的一种。
在 NLP 中,把 x 看做一个句子里的一个词语,y 是这个词语的上下文词语,那么这里的 f,便是 NLP 中经常出现的『语言模型』(language model),这个模型的目的,就是判断 (x,y) 这个样本,是否符合自然语言的法则,更通俗点说就是:词语x和词语y放在一起,是不是人话。
Word2vec 正是来源于这个思想,但它的最终目的,不是要把 f 训练得多么完美,而是只关心模型训练完后的副产物——模型参数(这里特指神经网络的权重),并将这些参数,作为输入 x 的某种向量化的表示,这个向量便叫做——词向量。
上面我们提到了语言模型
如果是用一个词语作为输入,来预测它周围的上下文,那这个模型叫做『Skip-gram 模型』
而如果是拿一个词语的上下文作为输入,来预测这个词语本身,则是 『CBOW 模型』

2、line
graph embedding:在图中定义相似的点在低位嵌入空间中也相似,获得节点的embedding表达。
line定义相似度:一阶相似度、二阶相似度
一阶相似度:直连边,节点间的联合分布概率
二阶相似度:邻域的相似性,节点间的条件概率
优化目标:是预测分布和实际分布之间的差值,KL散度



line 两大缺点:
1)对于一些顶点由于其邻接点非常少会导致embedding向量的学习不充分,论文提到可以利用邻居的邻居构造样本进行学习,这里也暴露出LINE方法仅考虑一阶和二阶相似性,对高阶信息的利用不足。
2)新加入顶点
对于新加入图的顶点 ,若该顶点与图中顶点存在边相连,我们只需要固定模型的其他参数(固定其他节点的embeddingd的表示)

3、GCN
参考资料:
1、[NLP] 秒懂词向量Word2vec的本质 https://zhuanlan.zhihu.com/p/26306795
2、《word2vec Parameter Learning Explained》论文学习笔记 https://blog.csdn.net/lanyu_01/article/details/80097350
3、梯度下降法 梯度下降算法原理讲解——机器学习 https://blog.csdn.net/qq_41800366/article/details/86583789
4、【Graph Embedding】LINE:算法原理,实现和应用 https://zhuanlan.zhihu.com/p/56478167
5、如何通俗的解释交叉熵与相对熵? https://www.zhihu.com/question/41252833
网友评论