You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Andrew Ray (JIRA)" <ji...@apache.org> on 2017/06/14 14:10:01 UTC
[jira] [Commented] (SPARK-20839) Incorrect Dynamic PageRank
calculation
[ https://issues.apache.org/jira/browse/SPARK-20839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16049214#comment-16049214 ]
Andrew Ray commented on SPARK-20839:
------------------------------------
1 & 2 work together to do the algorithm properly with an active set, this is by design.
3 although it may look wrong, the deltas (and thus messages) will always be positive so this is not a problem.
> Incorrect Dynamic PageRank calculation
> --------------------------------------
>
> Key: SPARK-20839
> URL: https://issues.apache.org/jira/browse/SPARK-20839
> Project: Spark
> Issue Type: Bug
> Components: GraphX
> Affects Versions: 2.1.1
> Reporter: BahaaEddin AlAila
>
> Correct me if I am wrong
> I think there are three places where the pagerank calculation is incorrect
> 1st) in the VertexProgram (line 318 of PageRank.scala in spark 2.1.1)
> val newPR = oldPR + (1.0 - resetProb) * msgSum
> it should be
> val newPR = resetProb + (1.0 - resetProb) * msgSum
> 2nd) in the message sending part (line 336 of the same file)
> Iterator((edge.dstId, edge.srcAttr._2 * edge.attr))
> should be
> Iterator((edge.dstId, edge.srcAttr._1 * edge.attr))
> as we should be sending the edge weight multiplied by the current pagerank of the source vertex (not the vertex's delta)
> 3rd) the tol check against the abs of the delta (line 335)
> if (edge.srcAttr._2 > tol) {
> should be
> if (Math.abs(edge.srcAttr._2) > tol) {
>
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org