From 73c96ed3abfc49bccde0d40af0f74f7ac171c3a1 Mon Sep 17 00:00:00 2001 From: paynie Date: Fri, 16 Aug 2019 15:42:52 +0800 Subject: [PATCH] optimize line doc --- docs/algo/sona/line_sona.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/algo/sona/line_sona.md b/docs/algo/sona/line_sona.md index f3a08a4c4..2aa67c268 100644 --- a/docs/algo/sona/line_sona.md +++ b/docs/algo/sona/line_sona.md @@ -20,13 +20,13 @@ LINE算法是一个网络表示学习算法,也可以认为是针对图数据 ## 2. 分布式实现 -LINE 目前有两个独立的实现版本LINE V1和LINE V2, 这两个版本各有优势和适用场景。一般情况下,建议适用LINE V2版本。 +LINE 目前有两个独立的实现版本LINE V1和LINE V2, 这两个版本各有优势和适用场景。**一般情况下,建议使用LINE V2版本**。 LINE V1的实现参考了Yahoo的论文[[2]](https://arxiv.org/abs/1606.08495), 将Embedding向量按维度拆分到多个PS上,节点之间的点积运算可以在每个PS内部进行局部运算,之后再拉取到spark端合并。Spark端计算每个节点的梯度,推送到每个PS去更新每个节点对应的向量维度。 它的优势在于避免了传输模型导致的大量网络IO,适用于节点编码向量维度较高的场景,如果节点向量维度较低,它就不合适了。因为LINE V1有如下限制:节点编码维度必须是模型分区个数的整数倍,这限制了模型分区的个数和计算并发度。 ![line_structure](../../img/line_structure.png) -LINE V2采用完全不同的实现方式:它使用节点id范围划分模型,没有分区个数限制,同时它需要将模型拉取回executor本地进行计算,因此会产生大量的网络通信开销,不适合节点编码维度高的场景。LINE V2中加入了许多容灾措施,因此更加的稳定。内部业务实测数据表明,在节点编码维度不是很高的情形下(例如128维),LINE V2性能是LINE V1性能的5倍以上。 +LINE V2采用完全不同的实现方式:它使用节点id范围划分模型,没有分区个数限制,同时它需要将模型拉取回executor本地进行计算,因此会产生大量的网络通信开销,不适合节点编码维度高的场景。LINE V2中加入了许多容灾措施,因此更加的稳定。内部业务实测数据表明,在节点编码维度不是很高的情形下(例如128维),LINE V2性能是LINE V1性能的**5倍以上**。 ## 3. 运行