def sdne_run(): Graph = read_graph('wiki/Wiki_edgelist.txt') sden_model = sdne( Graph=Graph, dimension_size=128, per_vertex=100, walk_length=10, window_size=5, work=1, beta=5, alpha=1e-6, verbose=1, epochs=1000, batch_size=512, log_dir='logs/0/', hidden_size_list=[256, 128], l1=1e-5, l2=1e-4 ) sden_model.train() embeddings = sden_model.get_embeddings() from evaluate import evaluate_tools eval_tool = evaluate_tools(embeddings,label_path='wiki/Wiki_labels.txt') eval_tool.plot_embeddings()
def deep_walk_run(): Graph = read_graph('wiki/Wiki_edgelist.txt') deepwalk = DeepWalk(Graph=Graph, per_vertex=80, walk_length=10, window_size=5, dimension_size=128, work=4) embeddings = deepwalk.transform() eval = evaluate_tools(embeddings=embeddings, label_path='wiki/Wiki_labels.txt') eval.plot_embeddings()
def node2vec_run(): Graph = read_graph('wiki/Wiki_edgelist.txt') node_vec = node2vec(Graph=Graph, per_vertex=80, walk_length=10, window_size=5, dimension_size=128, work=1, p=0.25, q=4) embeddings = node_vec.transform() eval_tool = evaluate_tools(embeddings, label_path='wiki/Wiki_labels.txt') eval_tool.plot_embeddings()
def line_run(): Graph = read_graph('wiki/Wiki_edgelist.txt') line = Line( Graph=Graph, dimension_size=128, per_vertex=100, walk_length=10, window_size=5, work=1, negative_ratio=1, batch_size=128, log_dir='logs/0/', epoch=100, ) embeddings = line.transform() tool = evaluate_tools(embeddings, label_path='wiki/Wiki_labels.txt') tool.plot_embeddings()
sentence_list = [] all_node = self.all_nodes for step in range(self.walk_epoch): random.shuffle(all_node) for node in all_node: sentence = self.bias_random_walk(node) sentence_list.append(sentence) return sentence_list def train(self): sentence_list = self.struct_walk() embeddings = self.embdding_train(sentence_list) evaluate_tools(embeddings).plot_embeddings() plt.show() if __name__ == '__main__': path = '../wiki/Wiki_edgelist.txt' from util_tool import read_graph G = read_graph(edgelist_path=path) model = struct2vec(Graph=G, walk_length=10, k=8, window_size=5, dimension_size=128, per_vertex=10, work=4) model.train()
return self.model def get_embeddings(self): embeddings = {} pred_embeddings = self.embedding_model.predict( self.W, batch_size=self.batch_size) rank = 0 for embedding in pred_embeddings: embeddings[self.idx2node[rank]] = embedding rank += 1 return embeddings if __name__ == '__main__': Graph = read_graph() sden_model = sdne(Graph=Graph, dimension_size=128, per_vertex=100, walk_length=10, window_size=5, work=1, beta=5, alpha=1e-6, verbose=1, epochs=1000, batch_size=512, log_dir='logs/0/', hidden_size_list=[256, 128], l1=1e-5, l2=1e-4)
self.embedding_dict['second'].get_weights()[0])) idx2node = self.idx2node for i, embedding in enumerate(embeddings): self.embeddings[idx2node[i]] = embedding return self.embeddings def transform(self): self.train() self.get_embedding() return self.embeddings if __name__ == '__main__': from util_tool import read_graph Graph = read_graph('model/embedding/wiki/Wiki_edgelist.txt') line = Line( Graph=Graph, dimension_size=128, per_vertex=100, walk_length=10, window_size=5, work=1, negative_ratio=1, batch_size=128, log_dir='model/embedding/setence_model/logs/0/', epoch=100, ) embeddings = line.transform() from evaluate import evaluate_tools tool = evaluate_tools(embeddings)
for num in range(self.walk_epoch): random.shuffle(self.all_nodes) for node in self.all_nodes: sentence = self.random_walk(node, is_edge_sampling=True) sentence_list.append(sentence) return sentence_list def transform(self): sentence_list = self.Learn_Feature() embeddings = self.embdding_train(sentence_list) return embeddings if __name__ == '__main__': Graph = read_graph('../wiki/Wiki_edgelist.txt') node_vec = node2vec(Graph=Graph, per_vertex=80, walk_length=10, window_size=5, dimension_size=128, work=1, p=0.25, q=4) embeddings = node_vec.transform() eval_tool = evaluate_tools(embeddings) eval_tool.plot_embeddings()