Graph Embedding算法背景引入

先回顾下图的概念:

图(graph)由节点(vertex)和点之间连线(edge)所组成;其中,点通常被成为“顶点(vertex)”,而点与点之间的连线则被成为“边”(edge)。通常记为,G=(V,E)。常见分为无向图和有向图。

示例如下:

无向图:




bge embed_自然语言处理


有向图:


bge embed_自然语言处理_02


在互联网场景下,数据对象之间更多呈现的是图结构。示例如下:

用户行为数据生成的和物品全局关系图:


bge embed_算法_03


由属性、实体、各类知识组成的知识图谱:


bge embed_神经网络_04


在Graph 图中相关概念有BFS和DFS,示例如下:

广度优先搜索算法(Breadth-First-Search, BFS),利用队列实现。类似“湖面丢进一块石头激起层层涟漪,如下:


bge embed_自然语言处理_05


深度优先搜索算法(Depth-First-Search,DFS),利用递归实现。类似“不撞南墙不回头” 。


bge embed_tensorflow_06


接着再回顾下Embedding的概念:

数学定义Embedding: 数学上表示一个映射关系, F: X -> Y,即一个函数。

深度学习Embedding: 用一个低维度向量表示一个实体,或者一个词(Word2Vec),或者一个物品(Item2Vec)亦或者网络关系中的节点(Graph Embedding)。

Graph Embedding: 用低维、稠密、实值的向量表示网络中的节点。

那如何生成Graph Embedding 呢?

GraphEmbedding最开始参考的就是 NLP 领域中的Word2vec 模型,

再来回忆下Word2Vec模型。比如下段落:

苹果是蔷薇科苹果亚科苹果属植物,其树为落叶乔木。

苹果营养价值很高,富含矿物质和维生素。

苹果是一种低热量的食物,每100克产生大约60千卡左右的热量。

苹果中营养成分可溶性大,容易被人体吸收。

所有的水果里,我最爱吃苹果了。

词的语义由其上下文决定。

“A word is characterized by the company itkeeps” —— J. R. Firth

如果想要识别苹果语义,Word2vec中有如下两种方式:

Word2vec Skip Gram: 根据中心词预测上下文


bge embed_自然语言处理_07


Word2vec: Negative Sampling


bge embed_tensorflow_08


Word2vec整体架构:


bge embed_bge embed_09


Graph Embedding 介绍:

由以上回忆可知,序列(sequence)是一种一维的关系,而图(graph)是一种二维的关系,那如何类比呢?

先看下,Graph Embedding图游走示例:


bge embed_tensorflow_10


以及Graph Embedding示例:


bge embed_神经网络_11


所以Word2vec -->图嵌入领域的问题可类比生成;

通常,图中的节点会受其邻居的影响。如下所示:


bge embed_自然语言处理_12


此外Graph Embedding 能够生成一些“不存在”的序列。如图中

B->E->F;

D->E->C。


bge embed_神经网络_13


Graph Embedding算法之Deep Walk:

将 NLP 领域的思想运用到图(网络)嵌入领域。


bge embed_算法_14


Deep Walk 游走方式:RandomWalk


bge embed_算法_15


Deep Walk 整体架构:

节点示意图


bge embed_bge embed_16


流程示意图


bge embed_bge embed_17


Deep Walk 应用扩展之EGES算法:

Deep Walk 可以生成Item 的 Embedding 向量,从而从用户行为中捕捉高阶相似性。然而这只能针对已有的Item 而无法应对新的 Item,即无法解决冷启动问题。

对于新加入的物品或者长尾物品,无法在行为图中找到。那如何解决呢?

可以引入Side Information(补充信息),比如商品的类别、店铺、价格等。

Eg:优衣库(同店)的两件卫衣(同品类)可能会非常相似,喜欢尼康镜头的人可能也会对佳能相机感兴趣。

所以EGES的架构思想如下:

1、通过用户行为序列生成行为关系图。

2、通过”相同属性”,“相同类别”等信息建立物品之间的边,生成基于内容的知识图谱图。

其中item 和 sideinformation(例category, brand)的Embedding 是通过 Word2vec 算法一起训练得到的。

其中的item表示为:item Embedding, category Embedding,brand Embedding等 Embedding信息求均值。即:


bge embed_神经网络_18


整体架构图如下:


bge embed_自然语言处理_19