参考代码:
https://github.com/keras-team/keras/blob/master/examples/pretrained_word_embeddings.py
转:https://blog.csdn.net/k284213498/article/details/83474972
keras.layers.embeddings.Embedding(input_dim, output_dim, embeddings_initializer='uniform', embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None)
嵌入层将正整数(下标)转换为具有固定大小的向量,如[[4],[20]]->[[0.25,0.1],[0.6,-0.2]]
Embedding层只能作为模型的第一层
参数
-
input_dim:大或等于0的整数,字典长度,即输入数据最大下标+1
-
output_dim:大于0的整数,代表全连接嵌入的维度
-
embeddings_initializer: 嵌入矩阵的初始化方法,为预定义初始化方法名的字符串,或用于初始化权重的初始化器。参考initializers
-
embeddings_regularizer: 嵌入矩阵的正则项,为Regularizer对象
-
embeddings_constraint: 嵌入矩阵的约束项,为Constraints对象
-
mask_zero:布尔值,确定是否将输入中的‘0’看作是应该被忽略的‘填充’(padding)值,该参数在使用递归层处理变长输入时有用。设置为
True
的话,模型中后续的层必须都支持masking,否则会抛出异常。如果该值为True,则下标0在字典中不可用,input_dim应设置为|vocabulary| + 1。 -
input_length:当输入序列的长度固定时,该值为其长度。如果要在该层后接
Flatten
层,然后接Dense
层,则必须指定该参数,否则Dense
层的输出维度无法自动推断。
输入shape
形如(samples,sequence_length)的2D张量
输出shape
形如(samples, sequence_length, output_dim)的3D张量
转处:https://blog.csdn.net/ckqsars/article/details/78184834
在图计算中,如何把图中的结点进行嵌入变成可计算的值或者向量一直是现在研究所关注的问题,初次学习,记录常用的embedding的方法。
主流方法主要有三大类:
1)factorization methods
2) random walk techniques
3) deep learning
本文主要介绍第一类和第二类中比较知名的算法,若有不足欢迎补充。
1)factorization methods
此类方法主要是通过用矩阵的方式去描述形成的网络,并通过矩阵分解来得到每个结点的嵌入。
1.1)
Locally Linear Embedding
假设:每个网络的结点的embedding的值是和其所连接结点的线性组合,则可以表达为式(1)
Yi≈∑jWijYj∀i∈V(1)(1)Yi≈∑jWijYj∀i∈V
因此我们可以通过(2)式得到我们想要的每个一个结点的embedding。
ϕ(Y)=∑i|Yi−∑jWijYj|(2)(2)ϕ(Y)=∑i|Yi−∑jWijYj|
为了防止退化的基可行解(degenerate solution)<并不知道这是个什么东西,知道的人可以在评论解释下>
进行了以下约束
s.t.1NYTY=I∑iYi=0s.t.1NYTY=I∑iYi=0
1.2)
Laplacian Eigenmaps
假设:如果两个结点它们之间的连边对应的权重越大,则表明这两个节点越相近,因此在embedding之后对应的值应该越相近。 因此可以得到一下最优化目标:
ϕ(Y)=12∑i,j(Yi−Yj)2Wij=YTLYϕ(Y)=12∑i,j(Yi−Yj)2Wij=YTLY
其中L是对应的网络的拉布拉斯矩阵。即L=D−AL=D−A。DD 是度矩阵,AA是邻接矩阵。这个解可以被看为特征向量对应于标准化的拉布拉斯矩阵的d最小的特征值,标准拉布拉斯矩阵如下:Lnorm=D−1/2LD−1/2Lnorm=D−1/2LD−1/2
1.3)
Graph Factorization
假设两个结点所代表的变量之积与两节点之间的变等价,因此构造目标函数如下:
ϕ(Y,λ)=12∑(i,j)∈E(Wij−<Yi,Yj>)2+λ2∑i||Yi||2ϕ(Y,λ)=12∑(i,j)∈E(Wij−<Yi,Yj>)2+λ2∑i||Yi||2
1.4)
GraRep
这个跟HOPE很相近所以直接介绍HOPE。
HOPE
目标函数:
|S−YsYTt||2F|S−YsYtT||F2
其中,S是相似度矩阵,具体见文章Asymmetric transitivity preserving graph embedding
2)random walk techniques
(未完待续)
参考文献Graph Embedding Techniques,Applications, and Performance: A Survey