一、研究背景
二、算法细节
2.1结构信息输入
则全局优化函数定义如下:
其中M表示节点数量。Ni表示邻居集合。
这里值得注意的是传统的 计算方式都是直接计算两个嵌入向量的点乘,然而文献[ ]指出这种方式限制了模型的表示能力并且造成了排序损失(ranking loss)。
作者采用了一个深度模型为节点间的相似性建模:
这里将节点 的表示向量通过一个n层神经网络进行抽象后再与节点 作为邻居的表示向量相乘。
2.2属性信息输入
如图所示,我们对离散属性进行one-hot编码,对连续属性进行比如文档采用TF-IDF进行编码,得到初步表示向量
而后,记特征向量 (加粗向量)有K个特征, 加粗表示 矩阵中的第 列向量,则抽象的属性信息向量表示为: ,这里注意加粗 ,表示向量的线性累加求和。
这里对应到整体模型结构如何实现,我们进一步分析代码。。
从这里我们可以看出第一层抽象的实现:
对应于ID的one-hot编码,lookup查表的方式生成了一个低维的向量表示。
用embedding_lookup做id类特征embedding由google的deep&wide提出,但隐藏了具体实现细节。
参考网址:
https://www.zhihu.com/question/48107602
对于属性向量,这里直接和满足正态分布随机初始化矩阵相乘。
2.3模型框架描述
创新点1:初期的结构属性向量结合,使得训练过程中能够使得相互关系包含在其中。
创新点2:对初期的输入向量做了抽象表示
Embedding层:这一层主要实现了输入向量到嵌入向量的转化
分析源码发现这一部分的实现就简单的使用了单个神经元模型。
下面的代码给出了优化函数:
Hidden层:这里是一个多层感知机,实现嵌入向量的高层非线性抽象,这里为实现组成抽象低维化,每一层维数为前一层的一半。
Output层:这里将节点i的隐藏层输出向量转化为条件概率的拼接表示。
这里主要是通过前面定义的 计算如下:
算法的最终向量表示:
作者采用 的形式。
三、实验
3.1试验数据集
朋友关系数据集:身份、性别、主修、辅修、高中学校、入学年份
OKLAHOMA | UNC |
引文网络数据集:标题内容的抽取
DBLP | CITESEER |
|
|
3.2评测方法
网络表示学习算法的常用评测任务:节点分类和链路预测
使用10%测试集,10%做验证集训练超参数,80%用于训练
使用ROC曲线下方面积AUC指标作为评价指标
节点分类:反映表示向量是否有效保留可供下游应用充分利用的信息
使用LIBLINEAR工具进行有监督的节点分类实验,macf1/micf1指标
3.3实验结果
四、下一步研究
Ø 改进SNE算法使得其融合多模态数据:图像等
Ø 提出SNE的监督或者半监督的变体算法,使其适用于特定任务
Ø 研究动态网络的表示学习问题,利用时间感知的循环神经网络等
Ø 研究提高SNE算法效率的方式,使其适用于大规模产业应用,如使用哈希技术等
这是作者给的研究方向,我认为在2.3两点的研究价值更为可观。