# 基於社群網路分析的交友軟體推薦系統 ###### tags: `MLG` 簡報網址:hackmd.io/@kuouu/MLG_final 提案簡報:hackmd.io/@kuouu/MLG_final_proposal --- ## Introduction ---- ### AInimal 人工智慧社群養成 ![](https://i.imgur.com/6SWft3N.jpg) 網頁版 👉 ainimal.io ---- #### 目前配對機制 ![](https://i.imgur.com/5yy1tik.png =200x) 1. 符合篩選條件 2. 當天有上線 3. 隨機 ---- #### 改良--基於個人特質的聊天活絡程度預測 [Google Colab](https://colab.research.google.com/drive/1V33OHXKVuFGInMpeTwKCzmjxGJMZwjyt?usp=sharing) ![](https://i.imgur.com/J21NA2j.png) ---- #### 正確率 ``` train accuracy: 0.78 test accuracy: 0.62 ``` 可能原因: - 模型太過簡單 - 人格特質不適合作為聊天活絡程度的評斷標準 - ??? ---- 人格特質或許跟交友有關,但沒有辦法確定是“很像的人”還是“不像的人”容易成為朋友,甚至是情侶(大多數人用交友軟體的目的) ---- 比起個性或興趣,我認為成為朋友的契機更注重於一些當下的因素,心情、場域、機緣等,因此決定使用社群網路來做推薦系統,並進行分析 ---- ### 配對成功? ---- #### 會回訊息 ![](https://i.imgur.com/gAQkE1e.png =400x) ---- #### 聊得很熱絡 ![](https://i.imgur.com/HEfmSi4.png =400x) ---- #### 真命天子/女、一生的好朋友 ![](https://i.imgur.com/SRDt2JG.png =400x) ---- 軟體宗旨是找到真命天子/女,但得知後續發展可能要做調查,在訓練上會難以做標記,所以退一步到**找到很會聊的人** --- ## Relative Work ---- - [Recommender System for Online Dating Service](https://arxiv.org/pdf/cs/0703042.pdf) 2007 / 162 cites - [RECON: A reciprocal recommender for online dating](https://www.researchgate.net/publication/221140972_RECON_A_reciprocal_recommender_for_online_dating) 2010 / 184 cites - [Recommender Systems for Online Dating](https://core.ac.uk/download/pdf/33736431.pdf) 2015 / 6 cites - [Design of Reciprocal Recommendation Systems for Online Dating](http://web.cs.ucla.edu/~yzsun/papers/snam2016.pdf) 2016 / 24 cites - [Shedding More Light on How Instagram Works](https://about.instagram.com/blog/announcements/shedding-more-light-on-how-instagram-works?fbclid=IwAR0L5kk9JEu3dEmz1VqIETTOevSWoc0IcZceaGTS9Vj_m0LccUGuJGsu_T0) --- ## Algorithm 程式碼 👉 github.com/erickuo5124/MLG_final ---- ### rule base ---- #### rule base 依據當下的==平均聊天量==由高至低做推薦 $$ 平均聊天量 = \frac{\sum_{聊天室}聊天字數}{聊天室數量} $$ ---- #### 期望結果 - 會聊天的人優先,會“被”配對到很多人 - 不會聊天的人比較不會被主動配對到 - 在時間內配對到一定程度會讓聊天量下降,後面順位的人往上排名 ---- #### 解決的問題 - 配對到的人最近一定有在玩,而且很活躍 - 雙方至少有一人有一定的社交程度,造成尷尬開場的機率較低(難聊的人不會互相遇到) - 聊天室數量增加會降低平均聊天量,因此過度配對會降低排名,不會有某個人一直配對到超多人的情況 - 與比較會聊的人配對,增加社交能力較低的人的自信 ---- #### pseudo code 1. get G 2. get user_list 3. remove random edge, get G’ 4. get rec_list by G’ 5. validation ---- ### GNN ---- #### GNN 用 GCN 得到 node embedding ,並使用 similarity 做 user user 的 Collaborative Filtering ---- 1. GCN 學習 node embedding 2. 做 user user 的 CF --- ## Experiment ---- ### Evaluation: recall $$ Recall(pred, label) = \frac{pred 出現在 label\_list 出現次數}{label\_list 的長度} $$ ---- ### Data set | 資料名稱 | 數量 | | -------- | -------- | | user | 5043 | | chat | 290559 | | friend | 22683 | ---- - gid - gender - animal - heart - type - personality - bgm - active_time ---- ![](https://i.imgur.com/RZDZmru.jpg =450x) ![](https://i.imgur.com/GWaqJiI.jpg =450x) 分別為 2020, 2019 年 11/01~11/15 的資料 - rule base: < 0.1 ---- 其實很多點“沒有往外的邊”,也就是很多使用者沒有在使用,可能只是下載來看一看就再也沒有登入了,因此在加入 user feature 之後,我將不活躍的使用者移除,並按照性別改變顏色,圖形變成如下 - 在移除不活躍的使用者之後,rule base 的 Recall 提升至約 0.1 ~ 0.2 ---- ![](https://i.imgur.com/y3oCvyg.jpg =600x) - rule base 的 Recall 提升至約 0.1 ~ 0.5 - GNN 約為 0.4 ~ 0.5(較穩定 ---- ### 問題點 - 需要每個時間點資料庫的 snapshot,ex: 更新時間、今日登入、交友狀況 - 移除不活躍的使用者之後資料不足(需要一段時間內的資料 - 沒有標記的資料 --- ## Conclusion ---- - 利用圖形來視覺化呈現資料並分析使用者習性 - 聊天狀況 - 配對偏好 - 平均聊天量 - 使用時間區段內的使用者資料來做配對 ---- ### future work - 利用網路圖來呈現目前使用者的狀況 - 定期備份資料庫狀態以拿來做訓練 - 改善軟體配對機制,取得標記資料 --- ## END
{"metaMigratedAt":"2023-06-16T02:54:15.446Z","metaMigratedFrom":"Content","title":"基於社群網路分析的交友軟體推薦系統","breaks":true,"contributors":"[{\"id\":\"35cea605-1599-4b9b-a7f8-610e7a3b3107\",\"add\":3855,\"del\":381}]"}
    69 views