基于meta-path的异质网络Embedding-metapath2vec

基于meta-path的异质网络Embedding-metapath2vec

转载自:https://blog.csdn.net/hy_jz/article/details/78877483

metapath2vec https://dl.acm.org/citation.cfm?id=3098036是17年发表的,使用基于meta-path的随机游走重构节点的异质邻居,并用异质的skip-gram模型求解节点的网络表示。DeepWalk 是同质网络中的表示学习方法,并不能直接应用到异质网络。比如:并不能解决多种类型节点的“word-context”对的问题,异质网络中的random walk问题。

本文提出了两种模型,metapath2vec 和 metapath2vec++。模型框架如下图所示:

这里写图片描述

  • Heterogeneous Skip-Gram
    对于一个|TV|>1|TV|>1

条件概率p(ct|v;θ)p(ct|v;θ)

metapath2vec在构建P(u)分布的时候,忽略了节点的类别信息。

  • Meta-path-based Random Walks
    跟deep walk是类似的,本文也是通过随机游走的方式保留网络结构。但是在异质网络中,决定游走下一步的条件概率 p(vi+1|vi)p(vi+1|vi)的所有邻居上做标准化(Normalized Probability)。如果这样做忽略了节点的type信息。yizhou su etc.在论文PathSim http://web.engr.illinois.edu/~hanj/pdf/vldb11_ysun.pdf中指出:异质网络上的随机游走生成的路径,偏向(biased)于高度可见的节点类型(具有优势/主导数量的路径的节点)和 集中(concentrated)的节点(即:具有指向一小组节点路径的 大部分百分比)。因而,本文提出了基于元路径的随机游走,捕获不同类型节点之间的语义和结构相关性。

给定一个异质网络 G=(V,E,T) 和meta-path :V11V22VttVt+1l1VlP:V1⟶R1V2⟶R2⋯Vt⟶RtVt+1⋯⟶Rl−1Vl

部分源代码
meta-path-based Random Walk的源代码连接https://www.dropbox.com/s/0ss9p4dh91i3zcq/py4genMetaPaths.py?dl=0
这里写图片描述

作者在论文中用的meta-path是”APVPA”。

  • metapath2vec++
    metapath2vec在计算softmax时,忽略了节点类型。换句话说,在采集负样本时,没有考虑样本是否与正样本属于同一个节点类型。因而本文提出,异质的负采样 (Heterogeneous negative sampling)。也就说条件概率p(ct|v;θ)p(ct|v;θ)

  • 实验
    在实验方面,本文主要做了multi-class分类,节点聚类,相似性搜索,可视化。
    本文将AMiner数据集按照论文发表的会议分为八大类,对于每个作者节点的标签,则是选择作者曾经发表的论文中,占比例较大的标签;如果是相等的,那么从中随机选择一个标签。
    在聚类任务上,作者使用的是K-Means的方法,NMI指标。
    从代码实现来看,本文主要研究的是作者-会议之间的一种关系,这种关系并不能直接观察到,而是通过作者-论文-会议这样一种路径构建的。因而,最终学到的只是作者、会议节点的embedding向量表示。在分类等任务上也是针对的作者,会议节点。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Word2vec-BiLSTM-CRF是一种用于命名实体识别(NER)的神经网络模型。它结合了三个不同的层:Word2vec嵌入层、双向长短时记忆网络(BiLSTM)层和条件随机场(CRF)层。Word2vec嵌入层将每个单词转换为向量表示,BiLSTM层将这些向量作为输入并学习上下文信息,最后CRF层将BiLSTM层的输出作为输入并进行标记预测。 以下是Word2vec-BiLSTM-CRF模型的基本步骤: 1. 将每个单词转换为向量表示,这可以使用预训练的Word2vec模型来完成。 2. 将这些向量作为输入传递给BiLSTM层,该层将学习上下文信息并生成相应的输出。 3. 将BiLSTM层的输出作为输入传递给CRF层,该层将对每个标记进行预测,并使用Viterbi算法来找到最佳标记序列。 以下是一个使用Python和Keras实现Word2vec-BiLSTM-CRF模型的示例: ```python from keras.models import Model, Input from keras.layers import LSTM, Embedding, Dense, TimeDistributed, Dropout, Bidirectional from keras_contrib.layers import CRF import numpy as np # 定义模型输入 input = Input(shape=(MAX_LEN,)) # 添加Word2vec嵌入层 model = Embedding(input_dim=len(word2idx), output_dim=EMBEDDING_DIM, input_length=MAX_LEN, weights=[embedding_matrix], trainable=False)(input) # 添加双向LSTM层 model = Bidirectional(LSTM(units=HIDDEN_UNITS, return_sequences=True, recurrent_dropout=0.1))(model) # 添加Dropout层 model = Dropout(0.1)(model) # 添加全连接层 model = TimeDistributed(Dense(units=NUM_TAGS, activation="relu"))(model) # 添加CRF层 crf = CRF(NUM_TAGS) out = crf(model) # 定义模型 model = Model(input, out) # 编译模型 model.compile(optimizer="rmsprop", loss=crf.loss_function, metrics=[crf.accuracy]) # 训练模型 model.fit(X_train, np.array(y_train), batch_size=BATCH_SIZE, epochs=EPOCHS, validation_split=0.1, verbose=1) # 预测标记 y_pred = model.predict(X_test) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值