flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-2310) Add an Adamic-Adar Similarity example
Date Sat, 08 Aug 2015 00:17:45 GMT

    [ https://issues.apache.org/jira/browse/FLINK-2310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14662689#comment-14662689

ASF GitHub Bot commented on FLINK-2310:

Github user shghatge commented on the pull request:

    I made some of the changes mentioned. But there was a problem in replacing the getTriplets()
and flatMap. When I use this method
    private static final class ReduceN implements NeighborsFunctionWithVertexValue<Long,Tuple2<Double,
HashSet<Long>> ,Double,
    									Tuple3<Long, Long, Double>> {
    		public void iterateNeighbors(
    				Vertex<Long, Tuple2<Double, HashSet<Long>>> vertex,
    				Iterable<Tuple2<Edge<Long, Double>, Vertex<Long, Tuple2<Double,
HashSet<Long>>>>> neighbors,
    				Collector<Tuple3<Long, Long, Double>> out) throws Exception {
    			for(Tuple2<Edge<Long, Double>, Vertex<Long, Tuple2<Double, HashSet<Long>>>>
neighbor : neighbors) {
    				HashSet<Long> intersection = vertex.getValue().f1;
    				for(long l : intersection) {
    					System.out.println(neighbor.f1.getId()+" "+l);
    						out.collect(new Tuple3<Long, Long, Double>(neighbor.f1.getId(), l, vertex.getValue().f0));
    For some reason the 

> Add an Adamic-Adar Similarity example
> -------------------------------------
>                 Key: FLINK-2310
>                 URL: https://issues.apache.org/jira/browse/FLINK-2310
>             Project: Flink
>          Issue Type: Task
>          Components: Gelly
>            Reporter: Andra Lungu
>            Assignee: Shivani Ghatge
>            Priority: Minor
> Just as Jaccard, the Adamic-Adar algorithm measures the similarity between a set of nodes.
However, instead of counting the common neighbors and dividing them by the total number of
neighbors, the similarity is weighted according to the vertex degrees. In particular, it's
equal to log(1/numberOfEdges).
> The Adamic-Adar algorithm can be broken into three steps: 
> 1). For each vertex, compute the log of its inverse degrees (with the formula above)
and set it as the vertex value. 
> 2). Each vertex will then send this new computed value along with a list of neighbors
to the targets of its out-edges
> 3). Weigh the edges with the Adamic-Adar index: Sum over n from CN of log(1/k_n)(CN is
the set of all common neighbors of two vertices x, y. k_n is the degree of node n). See [2]
> Prerequisites: 
> - Full understanding of the Jaccard Similarity Measure algorithm
> - Reading the associated literature: 
> [1] http://social.cs.uiuc.edu/class/cs591kgk/friendsadamic.pdf
> [2] http://stackoverflow.com/questions/22565620/fast-algorithm-to-compute-adamic-adar

This message was sent by Atlassian JIRA

View raw message