HIV+Network embedding
最近读一篇论文,内容涉及到HIV、Network Embedding,了解了一波,今天简单做一下总结。
HIV相关
IN—信息网络(Information Network)
G = (V, E)
V代表 Object,E代表 Edge;
object类型集合A,边的类型集合R;
ϕ : V → A 来表示每一个object v ∈ V 属于object类型集合A: ϕ(v) ∈ A
ψ : E → R.表示每条边 e ∈ E 属于边的类型集合R: ψ(e) ∈ R
很多很多节点,很多很多边;将节点分类别、边分类别;如果两条边连接的起始节点和终止节点的type都相同,则这两条边是同一种类型。
异构/同构信息网络(Heterogeneous/homogeneous information Network)
如果|A| > 1 或者 |R| > 1 ,则该信息网络为异构信息网络,或简称为异构网络,否则为同构网络。
也就是说,如果节点的类型或者边的类型多于1,即为异构网络。
网络模式(Network schema)
异构信息网络的network schema TG = (A, R),要指定objects和links的类型约束,就是这种约束使得异构网络变为半结构化。
约束哪些类型的节点之间可以有连接。
网络实例
following 某种 network schema的信息网络可以称为这种网络模式的网络实例
元路径(Meta path)
元路径P是定义在网络模式TG = (A, R)上的,如A1→R1A2→R2A3…→RlAl+1表示了从A1A1 到Al+1的复杂的关系,R=R1∘R2∘R3∘RI。元路径P的长度即为关系R的个数。
元图(Meta graph)
网络模式(Network schema)的子图
其他理解
Heterogeneous information network (HIN) .
A HIN is defined as a graph G = (V, E) with an entity type mapping ϕ: V → A and a relation type mapping ψ: E → R, where V denotes the entity set and E is the relation set, A denotes the entity type set and R is the relation type set, and the number of entity types |A| > 1 or the number of relation types |R| > 1. The network schema [28] for a HIN G, denoted as TG = (A, R), is a graph with nodes as entity types from A and edges as relation types from R.
meta-graph
A meta-graph M is a directed acyclic graph with a single source node ns and a single target node nt , defined on a HIN G = (V, E) with schema TG = (A, R). Formally, a meta-graph is defined as M = (VM , EM , AM , RM ,ns ,nt ), where VM ⊆ V, EM ⊆ E constrained by AM ⊆ A and RM ⊆ R, respectively.
Network Embedding
网络表示学习(DeepWalk,LINE,node2vec,SDNE)
网络表示学习综述:一文理解Network Embedding
word2vec与skipgram
一文详解 Word2vec 之 Skip-Gram 模型(结构篇)
1.什么是Skip-gram算法
Skip-gram算法就是在给出目标单词(中心单词)的情况下,预测它的上下文单词.
图中的love是目标单词,其他是上下文单词,那么我们就是求 、 、 、 。
2.目标是什么
我们的目标是计算在给定单词的条件下,其他单词出现的概率!
3. 定义表示法
one-hot向量
one-hot向量就是利用一个 向量来表示单词。
|V|是词汇表中单词的数量。
一个单词在英文词汇表中的索引位置是多少,那么相对应的那一行元素就是1,其他元素都是0。
还是以我们的例句"Do you love deep learning"为例。love的one-hot向量就是:
由于我们只有5个单词,因此,ong-hot向量的行数是5,love是第3个单词,因此索引3位置的数是1。
我们用 来表示目标单词的one-hot向量。
词向量(word vector)
词向量就是用一组d维的向量代表单词,如下:
注意这是个d维的向量。
这里我们用 表示目标单词的词向量
单词矩阵(word matrix)
单词矩阵是所有单词的词向量的集合。
注意,我们这里要用到两个单词矩阵,一个是目标单词的词向量组成的矩阵,用 表示。
W的尺寸是 。
另外一个矩阵是由除目标单词外的其他单词的词向量的转置组成的矩阵,用 表示,尺寸是 ,注意这里与上一个W的尺寸相反,至于为什么我们后面解释。
另外需要说明的是,由于每一个单词都有可能作为目标单词或其他单词,因此,实际上这两个矩阵是分别包含所有单词的词向量的。
单词相似度
我们先考虑这个问题:怎么表示两个单词之间的相似度?
一个简单方法就是:两个单词间的词向量求内积!
这里,我们用 代表目标单词的词向量,代表除目标单词外窗口内第x个单词的词向量。
那么求内积: 就是两个单词的相似度。
因为两个单词的内积越大,说明两个单词的相似程度越高。
softmax函数
我们需要知道的是softmax函数就是能够把输入转换为概率分布,也就是说使输入的实数变成分数。除此之外的内容我们暂不讨论。
softmax函数的公式如下:
这里面的z就是我们的相似度
我的理解是:
word2vec =
skip-gram algorithm +
multi-view algorithm
w_c 表示目标单词的one-hot向量。
v_c 表示目标单词的词向量
u_x 表示除目标单词外第x个单词的词向量
W 表示目标单词矩阵
W' 表示其他单词矩阵
词向量的维度是d
词汇表的维度是V
4. 理解算法过程
求相似度 总共分几步?
第一步:求
,这里W是 的矩阵, 是 的矩阵,因此 是 的向量。
直观理解:矩阵与one-hot向量的内积,相当于把one-hot向量中索引为1在向量矩阵中对应的那一列提取出来。
第二步:求 组成的向量
这个向量就是 ,这里的 是 的矩阵, 是 的向量。因此 是 的向量。
直观理解:下面要说的很重要!用 与 相乘,相当于 和词汇表中的所有词向量的转置都分别求内积,得到的结果组成了一个向量!
第三步:求softmax
这步比较简单,把得到的相似度矩阵代入softmax公式,就得到了一个满足概率分布的矩阵。//结束
至此,我们的目标已经实现:得到了一个向量。
向量中的数值代表在给定单词的条件下,其他单词出现的概率!
我的理解:
虽然我不知道为什么相似度就变成了单词一起出现的概率,但是这个方法应该可以很好的表示在给定目标对象的条件下,其他对象与之相似的概率。
metapath2vec
基于meta-path的异质网络Embedding-metapath2vec
metapath2vec https://dl.acm.org/citation.cfm?id=3098036是17年发表的,使用基于meta-path的随机游走重构节点的异质邻居,并用异质的skip-gram模型求解节点的网络表示。
我的理解是:
metapath2vec =
random walking guided by metapath +
skip-gram algorithm +
multi-view algorithm
metagraph2vec
我的理解是:
metagraph2vec =
random walking guided by metagraph +
skip-gram algorithm +
multi-view algorithm
Random walking
随机游走,旨在生成一些序列
deepwalk
deepwalk = randoming walking + constrains