1. 概念介绍
图:是一种非常常用的结构,包含边和节点;
Graph Embedding:图中的每个节点会对应一个词向量,某两个节点挨的越近(或者联系越紧密、或者共同的边越多),词向量在词向量空间里也就越近(想想单词的词向量的定义,和这差不多,就是把文字中的单词迁移到图的节点了)
2. deepwalk
想想单词的词向量训练的时候,是不是根据文本序列,生成中心词和上下文词列表分别作为输入输出训练skipgram模型的;那么对于图来说,怎么生成节点序列呢?有节点序列就可以生成中心节点和上下文节点列表,就可以训练skipgram模型了!并且这个节点序列一定要像文本序列一样的分布,即联系得紧密,就越能共现,deepwalk生成的节点序列就有这个特点!
那么deepwalk到底是什么呢?怎么生成节点序列呢?它真的是经典又简单。
顾名思义:随机游走,我从任意一个节点出发,随机选择和该节点有边的一个节点作为下一个节点,不断重复这个过程,就生成了一个节点序列啦!用我们的意念想一想!是不是采样的节点序列多了以后,联系得越紧密的节点,就越能共现。严谨的同分布证明在paper里有,感兴趣的可以看!