Graph Embedding算法背景引入
先回顾下图的概念:
图(graph)由节点(vertex)和点之间连线(edge)所组成;其中,点通常被成为“顶点(vertex)”,而点与点之间的连线则被成为“边”(edge)。通常记为,G=(V,E)。常见分为无向图和有向图。
示例如下:
无向图:
有向图:
在互联网场景下,数据对象之间更多呈现的是图结构。示例如下:
用户行为数据生成的和物品全局关系图:
由属性、实体、各类知识组成的知识图谱:
在Graph 图中相关概念有BFS和DFS,示例如下:
广度优先搜索算法(Breadth-First-Search, BFS),利用队列实现。类似“湖面丢进一块石头激起层层涟漪,如下:
深度优先搜索算法(Depth-First-Search,DFS),利用递归实现。类似“不撞南墙不回头” 。
接着再回顾下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: 根据中心词预测上下文
Word2vec: Negative Sampling
Word2vec整体架构:
Graph Embedding 介绍:
由以上回忆可知,序列(sequence)是一种一维的关系,而图(graph)是一种二维的关系,那如何类比呢?
先看下,Graph Embedding图游走示例:
以及Graph Embedding示例:
所以Word2vec -->图嵌入领域的问题可类比生成;
通常,图中的节点会受其邻居的影响。如下所示:
此外Graph Embedding 能够生成一些“不存在”的序列。如图中
B->E->F;
D->E->C。
Graph Embedding算法之Deep Walk:
将 NLP 领域的思想运用到图(网络)嵌入领域。
Deep Walk 游走方式:RandomWalk
Deep Walk 整体架构:
节点示意图
流程示意图
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信息求均值。即:
整体架构图如下:
下节预告:
Graph Embedding算法之Node2vec和相关案例(二)