回憶昨天的介紹,推薦系統分為兩個階段:candidate generation 和 candidate selection,以下按照這兩個步驟依序介紹。
基本概念是利用每則貼文的特徵 x(it),計算出預測行為的分數 Y(ijt),再加權平均得到貼文的最終分數 V(ijt)。最後,利用 V(ijt) 將所有貼文排序。
在多台機器平行運算的方式,確保能夠及時得到所有貼文的分數。
Pass 0
選擇和用戶最相關的五百則貼文。
Pass 1
每則貼文獨立地計算,再依照此分數排序。
主要的客製化發生在這個步驟,將所有 Y(ijt) 利用線性組合結合成 V(ijt)。
V(ijt) = w(ijt1)Y(ijt1) + w(ijt2)Y(ijt2) + ... + w(ijtk)Y(ijtk)。
有些人比較喜歡按讚而非留言,那他的留言權重(w)就會降低,以確保比較不重要的預測值的影響力較小。
Pass 2
確保用戶不會連續看到多則相同型態的貼文(例如一直看到影片,都沒有其他內容出現)。
這樣說明可能還是有一點模糊,讓我們以 Skylar 昨天看到的貼文為例,再更具體地說明吧!
昨天 Skylar 看到的內容為:
編號 | 發文者類型 | 發文者 | 貼文類型 | 發文內容 |
---|---|---|---|---|
x(it) | x(it1) | x(it2) | x(it3) | x(it4) |
#1 | 朋友 | Toby | 影片 | 衝浪影片 |
#2 | 朋友 | Wade | 照片 | 和狗狗的合照 |
#3 | 社團 | 攝影社團中的網友 | 照片 | 攝影作品 |
#4 | 粉專 | 新聞粉絲專頁 | 貼文 | 轉貼的新聞 |
以上的發文者類型、發文者、貼文類型、發文內容都是貼文本身的特徵 X(it)。
而 Skylar 能夠做的反應如下:
按讚 | 留言 | 分享 |
---|---|---|
Y(ijt1) | Y(ijt2) | Y(ijt3) |
對於每一則貼文而言,都可以個別預測三個行為分數 Y(itj)。
最後,每一則貼文再依照線性權重,計算 V(ijt)。
例如 Skylar 比較喜歡幫社團的照片按讚,則貼文編號 #3 的 Y(ijt1) 權重較高。而遇到朋友時,他喜歡留言,因此 #1 Toby 和 #2 Wade 的貼文之 Y(ijt2) 權重會較高。
根據這樣複雜的計算,最終四則貼文可以得到各自的 V(ijt),Facebook 再依照此分數排序貼文。
以上就是 Facebook 如何利用機器學習以產生貼文排序的做法。
是不是看得頭昏眼花了呢?
趕快去滑滑 Facebook 壓壓驚,歡迎明天回來,讓我們一起來看 Meta 另一個令人愛不釋手的產品 Instagram 的推薦系統,又跟 Facebook 有什麼不一樣呢?
謝謝讀到最後的你,如果喜歡這系列,別忘了按下訂閱,才不會錯過最新更新,也可以按讚給我鼓勵唷!
並歡迎到我的 medium 逛逛!
Reference: