Heterogeneous Network Embedding via Deep Architectures
论文使用深度网络建模,学习异构信息网络中的节点的向量表达。
中心思想
将异构信息网络中的不同类型的顶点映射到相同维度的空间,embedding到相同维度的向量表达。
顶点有了向量表示之后可以进行分类,聚类,检索,推荐等其他的工作。
方法
- 对不同类型的顶点使用向量表示(此时不一定在一个空间)
- 使用矩阵变换将所有的向量转换到一个维度。
- 利用有边的邻居节点相似来构造目标函数。
论文假设了两类顶点:Image & Text
1. text和image的表达
image的表达
比较简单的是使用RGB通道的像素值进行stacking,此时是线性。
加入非线性,就是使用CNN卷积,向量表达就是最后的全连接层。
text的表达
使用TF-IDF,其实实质就是一个全连接层。
2. 映射到相同的空间
对image x给一个U矩阵,text z给一个V矩阵,将两者全部映射到r维空间。
这样i-i,t-t,i-t之间的相似度可以写成:
3. 目标函数
首先是d,也就是相似度s加上一个偏差t
之后是L,这个函数最小化,也就是Ad最大化。A是邻接矩阵,两个顶点有边就是1,无边是-1。 最大化的时候,A是1的时候,d要大,A是-1的时候d要小。也就是两个顶点有边,相似度要大。
目标函数;
NII表示image-image这样关系对的个数,入是加权。
一共四部分,一部分是i-i的L值,一部分是i-t的L值,一部分是i-t的L值,一部分是正则项,防止过拟合。这里正则的是未知矩阵U和V。
学习
在学习loss的时候,学习v的时候,fixing U;学习U的时候fixing V。
整体网络
下图是对text表示到r维空间的网络
下图是整体图
其实就是:
- 第一层: image使用cnn,text使用nn
- 第二层:V和U其实就是nn
- 最后一层:loss操作
总结
其实就是使用带非线性函数的网络对顶点进行向量变换,投射到一个空间后利用邻居节点的相似性设置loss