Introduction

#Introduction

Family Pagerank là một thuật toán giúp ta có thể detect được những người bạn "family-related" đối với user. Sau khi bắn một thời gian, đây chính là lúc ta sẽ review lại và phân tích kỹ hơn về kết quả để có thể cải thiện thêm về sau.

Chiến lược sẽ là bốc mẫu 2000 uids và cho chạy lại family pagerank và phân tích. Một số câu hỏi cần phân tích:

  • Top candidates và family of family liên quan với nhau như thế nào ?
  • Density của family ảnh hưởng đến kết quả ra sao ?
  • Hiện tại family detection của user đang có vấn đề gì ?
  • Score của family pagerank có thể hiện độ quan trọng của từng family không ?

Prepare Data

#Prepare-Data

Ta sẽ random uids và chạy suggestion

Run this command in server:

1
2
3
cd /data/chiennd/projects/zfs-graph-db

java -server -Djava.library.path=/data/chiennd/include -Dzappname=run-sample-family -Dzappprof=development -Dconfdir=conf -Dzconffiles=config.ini -Djzcommonx.version=LATEST -Dzicachex.version=LATEST -Djava.net.preferIPv4Stack=true -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -XX:+AlwaysPreTouch -XX:-UseBiasedLocking -XX:+UseTLAB -XX:+ResizeTLAB -XX:+PerfDisableSharedMem -Xms1G -Xmx2G -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=3 -XX:MaxTenuringThreshold=10 -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSWaitDuration=10000 -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -cp build/libs/zfs-graph-db-1.0.jar com.zalo.service.runner.FamilyPagerankSampleRunner --inputFile /data/notebook/chiennd/family_pagerank/test_ids.txt --outputFile /data/notebook/chiennd/family_pagerank/test_ids.txt.output_family

Kết quả sẽ được lưu tại file /data/notebook/chiennd/family_pagerank/test_ids.txt.output_family

Prepare Metrics

#Prepare-Metrics

Read Data

#Read-Data

Build some visualize function

#Build-some-visualize-function

Question 1. Top 10 Candidates vs Family Of Family

#Question-1.-Top-10-Candidates-vs-Family-Of-Family

Về lý thuyết, nếu family detection làm đúng, thì tỉ lệ trùng top 10 candidates với family of family sẽ cao. Ví dụ:

A là tất cả family of family của user B là top candidates của user

Nếu B thực sự là family của user, có 2 trường hợp:

  • B là họ hàng gần trực tiếp (family)
  • B là họ hàng xa (family of family)

Ta sẽ xem tỉ lệ trùng của candidate và family of family ra sao:

Số lượng trùng của top 10 candidates và family of family

#Số-lượng-trùng-của-top-10-candidates-và-family-of-family

Notes: Nhìn vào đây có thể thấy các kết quả ở num_dup_candidate_fmfm = 0 là các kết quả đáng nghi ngờ, có thể không tin tưởng được. Số lượng các mẫu này cũng rất lớn.Ta sẽ đào sâu hơn ở các mẫu này và cố gắng giải thích tại sao.

Bốc mẫu

#Bốc-mẫu

Ta sẽ thử bốc các mẫu có num_dup_candidate_fmfm = 0, và sort theo số lượng family of family. Lý do là khi số lượng family of family càng nhiều mà không hề trùng thì tức là có vấn đề xảy rao cao

Use case 1:

Use case 2

Qua hai ví dụ trên có thể thấy được một số giả thiết :

  • Gia đình của các family chưa thực sự liên kết với nhau hoặc liên kết còn yếu, chính vì vậy family pagerank gợi ý những candidate có xu hướng gần và đồng nhất với tất cả family member + user, trong khi đó family of family không đảm bảo điều này.

Chính vì vậy ta sẽ đào sâu thêm 2 metrics:

  • Density của family
  • Số lượng family member

Density của family

#Density-của-family

Ta so sánh density của family giữa 2 thái cực sau:

  • Good DF Density là những mẫu có số lượng candidate trùng với family of family = 10
  • Bad DF Density là những mẫu có số lượng candidate trùng với family of family = 0

Bad Density

Good Density

Có thể thấy rằng rõ ràng density của tập bad df rất kém, cụ thể hơn đa số là 0. Đa số là 0 này có thể là do số lượng family member quá ít (1 member) dẫn tới việc này.

Family Member Size

#Family-Member-Size

Family member size distribution của toàn bộ data

Question 2: Số lượng candidate là bạn với family như thế nào ?

#Question-2:-Số-lượng-candidate-là-bạn-với-family-như-thế-nào-?

Question 3: Score của family hiện tại có ý nghĩa không ?

#Question-3:-Score-của-family-hiện-tại-có-ý-nghĩa-không-?

Question 4: Coworker

#Question-4:-Coworker