目前配對機制

- 符合篩選條件
- 當天有上線
- 隨機
改良–基於個人特質的聊天活絡程度預測
Google Colab

正確率
train accuracy: 0.78
test accuracy: 0.62
可能原因:
- 模型太過簡單
- 人格特質不適合作為聊天活絡程度的評斷標準
- ???
人格特質或許跟交友有關,但沒有辦法確定是“很像的人”還是“不像的人”容易成為朋友,甚至是情侶(大多數人用交友軟體的目的)
比起個性或興趣,我認為成為朋友的契機更注重於一些當下的因素,心情、場域、機緣等,因此決定使用社群網路來做推薦系統,並進行分析
會回訊息

聊得很熱絡

真命天子/女、一生的好朋友

軟體宗旨是找到真命天子/女,但得知後續發展可能要做調查,在訓練上會難以做標記,所以退一步到找到很會聊的人
rule base
依據當下的平均聊天量由高至低做推薦
\[
平均聊天量 = \frac{\sum_{聊天室}聊天字數}{聊天室數量}
\]
期望結果
- 會聊天的人優先,會“被”配對到很多人
- 不會聊天的人比較不會被主動配對到
- 在時間內配對到一定程度會讓聊天量下降,後面順位的人往上排名
解決的問題
- 配對到的人最近一定有在玩,而且很活躍
- 雙方至少有一人有一定的社交程度,造成尷尬開場的機率較低(難聊的人不會互相遇到)
- 聊天室數量增加會降低平均聊天量,因此過度配對會降低排名,不會有某個人一直配對到超多人的情況
- 與比較會聊的人配對,增加社交能力較低的人的自信
pseudo code
- get G
- get user_list
- remove random edge, get G’
- get rec_list by G’
- validation
GNN
用 GCN 得到 node embedding ,並使用 similarity 做 user user 的 Collaborative Filtering
- GCN 學習 node embedding
- 做 user user 的 CF
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

分別為 2020, 2019 年 11/01~11/15 的資料
其實很多點“沒有往外的邊”,也就是很多使用者沒有在使用,可能只是下載來看一看就再也沒有登入了,因此在加入 user feature 之後,我將不活躍的使用者移除,並按照性別改變顏色,圖形變成如下
- 在移除不活躍的使用者之後,rule base 的 Recall 提升至約 0.1 ~ 0.2

- rule base 的 Recall 提升至約 0.1 ~ 0.5
- GNN 約為 0.4 ~ 0.5(較穩定
問題點
- 需要每個時間點資料庫的 snapshot,ex: 更新時間、今日登入、交友狀況
- 移除不活躍的使用者之後資料不足(需要一段時間內的資料
- 沒有標記的資料
- 利用圖形來視覺化呈現資料並分析使用者習性
- 使用時間區段內的使用者資料來做配對
future work
- 利用網路圖來呈現目前使用者的狀況
- 定期備份資料庫狀態以拿來做訓練
- 改善軟體配對機制,取得標記資料
基於社群網路分析的交友軟體推薦系統 tags: MLG 簡報網址: hackmd.io/@kuouu/MLG_final 提案簡報: hackmd.io/@kuouu/MLG_final_proposal
{"metaMigratedAt":"2023-06-16T02:54:15.446Z","metaMigratedFrom":"Content","title":"基於社群網路分析的交友軟體推薦系統","breaks":true,"contributors":"[{\"id\":\"35cea605-1599-4b9b-a7f8-610e7a3b3107\",\"add\":3855,\"del\":381}]"}