±à¼ÍƼö: |
±¾ÎÄÖØµã½éÉÜÁËAdamic-AdarËã·¨¡¢Common
Neighbors¡¢Preferential AttachmentµÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×Ô¼òÊ飬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£
|
|
Á´½ÓÔ¤²âÊÇͼÊý¾ÝÍÚ¾òÖеÄÒ»¸öÖØÒªÎÊÌâ¡£Á´½ÓÔ¤²âÖ¼ÔÚÔ¤²âͼÖжªÊ§µÄ±ß,
»òÕßδÀ´¿ÉÄÜ»á³öÏֵıߡ£ÕâЩËã·¨Ö÷ÒªÓÃÓÚÅжÏÏàÁÚµÄÁ½¸ö½ÚµãÖ®¼äµÄÇ×Ã̶ܳȡ£Í¨³£Ç×ÃܶÈÔ½´óµÄ½ÚµãÖ®¼äµÄÇ×ÃÜ·ÖÖµÔ½¸ß¡£
The Adamic Adar algorithm (algo.linkprediction
.adamicAdar)
Adamic AdarÊÇÒ»ÖÖ»ùÓÚ½ÚµãÖ®¼ä¹²Í¬ÁÚ¾ÓµÄÇ×ÃܶȲâËã·½·¨¡£2003ÄêÓÉ Lada Adamic
ºÍ Eytan Adar tÔÚ predict links in a social networkÖÐÌá³öµÄ£¬¼ÆËãÇ×ÃܶȵĹ«Ê½ÈçÏ£º

ÆäÖÐN(u)ÊÇÓë½ÚµãuÏàÁڵĽڵ㼯ºÏ¡£A(x,y)Ϊ0±íÃ÷½ÚµãxºÍy²»½Ó½ü£¬¸ÃÖµÔ½¸ß±íÃ÷Á½¸ö½Úµã¼äµÄÇ×ÃܶÈÔ½´ó¡£Neo4j-algo°üÌṩÁ˸ÃËã·¨µÄ¾ßÌåʵÏÖ£¬ÏÂÃæÎÒÃÇ¿ÉÒÔ¿´Ò»¸öÀý×Ó¡£
´´½¨½ÚµãºÍ±ß£º
MERGE (zhen:Person
{name: "Zhen"})
MERGE (praveena:Person {name: "Praveena"})
MERGE (michael:Person {name: "Michael"})
MERGE (arya:Person {name: "Arya"})
MERGE (karin:Person {name: "Karin"})
MERGE (zhen)-[:FRIENDS]-(arya)
MERGE (zhen)-[:FRIENDS]-(praveena)
MERGE (praveena)-[:WORKS_WITH]-(karin)
MERGE (praveena)-[:FRIENDS]-(michael)
MERGE (michael)-[:WORKS_WITH]-(karin)
MERGE (arya)-[:FRIENDS]-(karin) |
´´½¨Íê³ÉÖ®ºóµÄͼ½á¹¹ÈçÏ£º

graph
¼ÆËãÁ½¸öÖ¸¶¨½ÚµãÖ®¼äµÄÇ×Ãܶȣº
MATCH (p1:Person
{name: 'Michael'})
MATCH (p2:Person {name: 'Karin'})
RETURN algo.linkprediction.adamicAdar (p1, p2)
AS score |
¼ÆËã½á¹ûÈçÏÂËùʾ£º

score
ÁíÍ⣬ÎÒÃÇ»¹¿ÉÒÔ»ùÓÚÌØ¶¨µÄ¹ØÏµÀàÐͺ͹ØÏµÖ¸Ïò£¬¼ÆËãÒ»¶Ô½ÚµãÖ®¼äµÄÇ×Ãܶȡ£
MATCH (p1:Person
{name: 'Michael'})
MATCH (p2:Person {name: 'Karin'})
RETURN algo.linkprediction.adamicAdar(p1, p2,
{relationshipQuery: " FRIENDS",
direction: "BOTH"}) AS score |
¼ÆËã½á¹ûÈçÏ£º

score
Common Neighbors (algo.linkprediction
.commonNeighbors)
ÏàͬÁÚ¾Ó£¬¹ËÃû˼Ò壬ָµÄÊÇÁ½¸ö½Úµãͬʱ¹ØÁªµÄ½Úµã¡¢ÊýÁ¿¡£
¼ÆË㹫ʽÈçÏ£º

formula
ÆäÖÐN(x)ÊÇÓë½ÚµãxÏàÁڵĽڵ㼯ºÏ£¬N(y)ÊÇÓë½ÚµãyÏàÁڵĽڵ㼯ºÏ£¬ÏàͬÁÚ¾ÓÖ¸µÄÊÇÁ½¸ö¼¯ºÏµÄ½»¼¯¡£¸ÃÖµÔ½¸ß±íÃ÷Á½¸ö½ÚµãÖ®¼äÇ×ÃܶÈÔ½¸ß¡£µ±½ÚµãxºÍ½Úµãy²»ÏàÁÚʱ£¬¸ÃֵΪ0¡£
»¹Ê¹ÓÃÉÏÃæµÄÊý¾Ý¼¯ºÏ£¬Ôò¼ÆËãÁ½¸ö½ÚµãµÄÏàͬÁھӵĴúÂëÈçÏ£º
MATCH (p1:Person
{name: 'Michael'})
MATCH (p2:Person {name: 'Karin'})
RETURN algo.linkprediction.commonNeighbors (p1,
p2) AS score |
½á¹ûÈçÏ£º

image.png
ͬÑùµÄ£¬¸Ã¶ÈÁ¿·½·¨Ò²¿ÉÒÔÖ¸¶¨¹ØÏµµÄÀàÐͺ͹ØÏµµÄ·½Ïò£¬ÕâÀï²»ÔÙ׸Êö¡£
Preferential Attachment (algo.linkprediction
.preferentialAttachment)
ÓÅÏÈÁ¬½ÓÒÀÀµÓÚÁ½¸ö½ÚµãµÄÁ¬½ÓÊý£¬Èç¹ûÁ½¸ö½ÚµãµÄÁ¬½ÓÊý¶¼ºÜ´ó£¬±êÇ©¸Ã½Úµã¶Ô±»Á¬½ÓµÄ¸ÅÂÊÔ½´ó¡£¼ÆË㹫ʽÈçÏ£º

ÆäÖÐN(u)ÊÇÓë½ÚµãuÏàÁڵĽڵ㼯ºÏ¡£¸ÃֵΪ0±íÃ÷½ÚµãxºÍy²»½Ó½ü£¬¸ÃÖµÔ½¸ß±íÃ÷Á½¸ö½Úµã¼äµÄÇ×ÃܶÈÔ½´ó¡£Ê¾ÀýÈçÏ£º
MATCH (p1:Person
{name: 'Michael'})
MATCH (p2:Person {name: 'Karin'})
RETURN algo.linkprediction.preferentialAttachment (p1,
p2) AS score |
Resource Allocation (algo.linkprediction
.resourceAllocation)
×ÊÔ´·ÖÅäËã·¨¹«Ê½ÈçÏ£º 
ÆäÖÐN(u)ÊÇÓë½ÚµãuÏàÁڵĽڵ㼯ºÏ¡£¸ÃֵΪ0±íÃ÷½ÚµãxºÍy²»½Ó½ü£¬¸ÃÖµÔ½¸ß±íÃ÷Á½¸ö½Úµã¼äµÄÇ×ÃܶÈÔ½´ó¡£Ê¾ÀýÈçÏ£º
MATCH (p1:Person
{name: 'Michael'})
MATCH (p2:Person {name: 'Karin'})
RETURN algo.linkprediction.resourceAllocation (p1,
p2) AS score |
Total Neighbors (algo.linkprediction.totalNeighbors)
×ÜÁÚ¾ÓÊýÖ¸µÄÊÇÁ½¸öÏàÁÚ½ÚµãÖ®¼äµÄ×ÜÁÚ¾ÓÊý£¬¼ÆË㹫ʽÈçÏ£º

ÆäÖÐN(u)ÊÇÓë½ÚµãuÏàÁڵĽڵ㼯ºÏ¡£¸ÃֵΪ0±íÃ÷½ÚµãxºÍy²»½Ó½ü£¬¸ÃÖµÔ½¸ß±íÃ÷Á½¸ö½Úµã¼äµÄÇ×ÃܶÈÔ½´ó¡£Ê¾ÀýÈçÏ£º
MATCH (p1:Person
{name: 'Michael'})
MATCH (p2:Person {name: 'Karin'})
RETURN algo.linkprediction.totalNeighbors (p1,
p2) AS score |
|