YeeKal
recsys

推荐系统中的向量检索03-图嵌入

YeeKal
"#recsys"
  • line(Lareg-scale information network embedding MSRA 2015)
  • eges(Enhanced Graph Embedding with Side Information): 2018 Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba
  • SDNE (Structural deep network embedding)
  • graphsage(2017)

graph embedding VS sequence embedding

index

  • graph pooling
  • GAE(graph auto encoder)
  • [2018 KDD PinSAGE]
  • [2017 NIPS GraphSAGE]
  • 2016 KDD node2vec
  • [2014-deep walk]

2018 KDD PinSAGE

2017 NIPS GraphSAGE

transductive learning vs inductive learning

  • transductive learning: 直推学习,只能对出现的节点生成表示向量
  • inductive learning: 归纳学习,能通过连接馆学学习未见过节点的表示信息

graphsage method

根据连接关系生成当前节点的表示信息。

graphsage_method.png

graphsage_alg.png

  • Weisfeiler-Lehman Isomorphism Test: The GraphSAGE algorithm is conceptually inspired by a classic algorithm for testing graph isomorphism
  • aggregator architecture

    • mean aggregator:

    • LSTM aggregator
    • pooling aggregator:

2016 KDD node2vec

优化目标:最大化当前节点的隐向量预测周围节点的概率

根据条件独立假设(Conditional independence): 在给定当前节点下,临近点的概率与其余顶点无关

特征空间对称假设(Symmetry in feature space): 一个节点作为源节点与作为邻近节点时的隐向量是一致的

最终优化目标转化为:

其中$Z_{u}=\sum_{v \in V} \exp (f(u) \cdot f(v))$, 但在实际应用中采用负采样以降低$Z_{u}$的计算复杂度。

经典搜索策略

  • BFS: 广度优先搜索
    • homophilic equivalence(同质等价): 相连接的节点在隐向量空间更为接近
  • DFS: 深度优先搜索
    • structural equivalence(结构等价):

node2vec_bfs_dfs.png

有偏随机游走(biased random walk)

针对当前节点$v$访问下一节点$x$的概率为:

其中:

$$$$ - $d_{tx}$: - 0代表下一个节点为$t$,即当前节点的上一个节点,即还原 - 1代表该点与$t,v$相距皆为1,即$v,x$都环绕在节点$t$周围,类似BFS搜索 - 2代表远离节点$t$,即类似DFS搜索 - return parameter, p: 表示下一个节点与上一个节点相同的概率 - in-out parameter, q: 控制游走向外还是向内。 若$q>1$, 则倾向于访问与上一个节点更近的节点,偏向BFS;反之则偏向DFS。

node2vec_pq.png

2015 LINE

2014 Deep Walk

random walks:

deep_walk01.png

two stages:

  • random walk generator
    • 通过随机游走产生$k$个长度为$l$的节点序列作为候选节点集合
    • 根据假设"Adjacent nodes are similar and should have similar embeddings",每一个节点序列应该有相近的向量表达
    • 方便并行化
  • skipgram algorithm
    • 对于给定的语料,skipgram假设在一定大小窗口内的词应该有更相近的向量表达,这一窗口也叫做上下文
    • 对应到deepwalk,在第一步生成的节点序列可以认为是一个上下文窗口,因此可以用同样的方法来训练,即用当前节点预测上下文窗口内的节点
  • optimization
    • Hierarchical Softmax
    • Parallelizability with asynchronous version of stochastic gradient descent (ASGD)
  • variants
    • srtreaming
    • non-random walks

ref

  • blog
  • personal code
  • paper
  • project