Persahabatan adalah salah satu mekanisme terpenting dari jejaring sosial mana pun. Sebagian besar interaksi terjadi di antara pengguna yang menjadi teman: kami melihat dan mengomentari postingan satu sama lain di feed, membuka daftar teman untuk mencari kenalan, dan menulis pesan. Inilah mengapa pertumbuhan grafik sosial sangat penting.
Nama saya Zhenya Zamyatin, saya bekerja di tim Core ML di VKontakte. Saya ingin memberi tahu Anda bagaimana rekomendasi disusun yang mendekatkan pengguna ke jejaring sosial terbesar di Internet Rusia.
Gambaran
, . β ( ). . β . . , β , . β .
, : k , . , , β recall@k. : , .
, , . β . . .
β Adamic/Adar. , : «» . , .
EGOML
Adamic/Adar. E(u, v)
, , u
v
. β : ez_c(u, v)
.
«» ez_c(u, v)
. , c
: Β« , , u
v
, ?Β» , . , c
, : Β« , , Β». u
v
( c
) 1/log(n)
, n
β . Adamic/Adar. c
?
, , ez_c(u, v)
c
. , . , . , E(u, v)
. E(u, v)
MapReduce:
.
c
, . , Adamic/Adar .
Map. «»
c
, . ,ez_c(u, v)
(u, v) β ez_c(u, v)
u, v in N(c)
. Adamic/Adar:(u, v) β 1/log|N(c)|
.
Reduce.
(u, v)
. ,u
v
.
E(u, v)
. : , E(u, v) > 0
, β u
v
.
c
ez_c
, . -. , - x
β , x
x
, β . - .
ez_c
, . c
, - u
, v
, :
u
v
-c
;
u
c
;
v
c
;
,
u
- -c
;
-
c
;
.
. . T
. , T
, T + β³T
. β , , . : , , T
, , .
:
u
v
,c
, -c
;
u
v
, ;
T
;
u
v
βT
.
ez_c
. pairwise , u
.
, ez_c(u, v)
. : pairwise- . , ez_c(u, v)
«» , , E(u, v)
, . β , E(u, v)
. :
. , . : - β . . , , : u
, v
. : A
, u
, B
β v
. :
, - . A
B
, . , - n
O(n^2)
O(n)
. , ? :
A
B
, : u
, β v
. , B
«» A
. . ez_c(u, v)
E(u, v)
:
E
, E(u, v)
:
β , , β . u
β .
. key-value . E(u, v)
. E(u, v)
.
EGOML :
.
O(|E|)
,|E|
β . 250 .
E(u, v)
.O(|N(u)| + |N(v)|)
.
, ( , , ) . , , , , .
Adamic/Adar EGOML E(u, v)
. .
Core ML , Core ML β .