图机器学习——2.2 节点嵌入:基于矩阵分解 及 节点嵌入的局限性

1. 节点嵌入——基于矩阵分解的方法

我们得到的所有节点嵌入全部排列到一起,就构成了我们的嵌入矩阵 Z \mathbf{Z} Z:

图机器学习——2.2 节点嵌入:基于矩阵分解 及 节点嵌入的局限性

每一列 z i \mathbf{z_i} zi​代表一个节点的嵌入,其为列向量。当 v v v与 u u u为邻居节点时,我们优化目标是最大化 z v T z u \mathbf{z}_{v}^{\mathrm{T}} \mathbf{z}_{u} zvT​zu​(也就是使余弦相似度尽可能大)。由于我们已经对嵌入进行归一化,因此 z v T z u \mathbf{z}_{v}^{\mathrm{T}} \mathbf{z}_{u} zvT​zu​最大值为1,我们要尽可能使得 z v T z u = A u , v \mathbf{z}_{v}^{\mathrm{T}} \mathbf{z}_{u}=A_{u, v} zvT​zu​=Au,v​,也就是 Z T Z = A \boldsymbol{Z}^{T} \boldsymbol{Z}=A ZTZ=A( A A A为邻接矩阵):

图机器学习——2.2 节点嵌入:基于矩阵分解 及 节点嵌入的局限性

但实际上 Z T Z = A \boldsymbol{Z}^{T} \boldsymbol{Z}=A ZTZ=A是几乎不可能达到的,因此我们的优化目标是:

min ⁡ Z ∥ A − Z T Z ∥ 2 \min _{\mathbf{Z}}\left\|A-Z^{T} \boldsymbol{Z}\right\|_{2} Zmin​∥∥​A−ZTZ∥∥​2​

前面的随机游走其实本质上就是使用 softmax 函数替代L2范数,但目标是一致的。此时,由边连通性定义节点相似度的内积解码器等价于

上一篇:关于CrossWOZ【转载以学习、回忆】


下一篇:Redis集群扩容导致的Jedis客户端报JedisMovedDataException异常