[TOC]
部分图模型使用 邻居特征 加速模型训练,我们提供工具生成 邻居特征数据。
邻居特征平均
指的是对于 node_graph 中的一条样本 node adj_node1:weight1 adj_node2:weight2 ...
。
使用 adj_node1
、 adj_node2
等邻接节点的特征求平均,来表示节点 node
的邻居特征。
接下来将依次介绍 使用邻居特征平均功能的模型
、邻居特征平均工具的参数介绍
和 运行邻居特征平均
。
以下图模型需要使用 邻居特征平均
功能生成数据,任务的输出对应图模型数据参数介绍中的参数 --neighbor_feature
。
模型 |
---|
unsup_graphsage |
sup_graphsage |
unsup_bipartite_graphsage |
名称 | 含义 | 注 |
---|---|---|
node_graph | string , 节点关系数据目录 |
参考节点关系数据格式 |
node_feature | string , 节点特征的目录 |
参考节点特征数据格式 |
sample_num | int , 采样邻居进行特征平均 |
默认使用全量邻居,如果采样 10 个邻居,可设置 sample_num =10 |
dist | int , 单机或者分布式随机游走 |
1(分布式) 、 0(单机) |
gs_thread_num | int , 加载节点关系数据的线程数量 |
需要满足,gs_thread_num <= node_graph 文件数量 |
gs_addrs | string , graph server 的 ip port 地址 |
分布式运行,worker 通过 gs_addrs 连接 graph server 进行邻居特征平均 |
gs_worker_num | int , worker 数量 |
分布式运行,使用的 worker 数量,越多越快 |
gs_worker_id | int , worker id |
分布式运行时,每个 worker 对应的 index,从 0 开始连续编码 |
out | string , 存储邻居特征平均结果的目录 |
示例:out="output_neighbor_feature" |
- 注意,程序中使用的线程数取决于
node_graph
对应的文件数和gs_thread_num
中的 最小值
不要 只使用一个文件 存储
node_graph
数据,否则无论 gs_thread_num 设置多大,系统中始终都只有一个 cpu 运行gs_thread_num 设置为
10
,效率就很高了,当然在满足node_graph 文件数量 < gs_thread_num
时,越多越快预处理时将
node_graph
数据 划分成多个文件,越多越好, 一般可设置文件数为 100~500 个
- 参考编译文档编译
- 进入到
embedx/demo/single
目录 - 参考单机使用必读文档,运行
run_average_feature.sh
脚本,生成数据average_feature
- 进入到
embedx/demo/dist
目录 - 参考分布式使用必读文档,运行
run_average_feature.sh
脚本,生成数据average_feature