文章連結:从0开始做互联网推荐-以58转转为例
本文以58轉轉為例,說明在該交易平台下推薦系統如何被實做。該平台以交易手中現有的二手物品為主要業務項目。
推薦頁面分為首页推荐、宝贝详情页推荐、附近推荐、搜索推荐、召回推荐。 其中首页推荐、宝贝详情页推荐頁面能預料到的就是爬取使用者在註冊時所填入的Feature,並對其做分析。而附近推荐是抓取使用者所在的地理位址(GPS座標,常見簡單的用HTML API就能實現)。搜索推薦就像是你打錯字時,Google會問你:「你是不是這個意思?」(這用Fuzzy就可達成)。召回推荐是指當用戶登出時,做出相對應的動作挽留客戶,像送出優惠卷之類的,讓用戶留下來繼續購買。文中採用RFM建模型,RFM是指最近一次用戶購買時間、成交金額、購買次數來跑出相對應用戶成交意願的一個分數。
抓取用戶資料時任何Feature都可作為一個分析來源的依據,分析方法可採用回歸模型等等,有很多種,有趣的是該網站有提供APP,透過APP可知道User裝過什麼APP並透過該用戶有裝過什麼APP來了解使用者特徵,如透過Uber裝的是司機端還是客戶端來知曉該用戶有沒有車。也可抓取該用戶手機瀏覽器資料看他觀看過網頁。 透過該使用者的資料和瀏覽過的商品網頁來建立人與商品間的關聯度,推薦商品給使用者。
個性化推薦: 為使用者的所有資料打上TAG,為每個TAG標上計算出來的加權分數,透過他的喜好推薦他有可能喜歡的商品。另外也需要為鄰近的字詞加上全重。不過這高度仰賴使用者的歷史資料,而新加入的使用者因為沒有他的歷史資料而無法做出較適合的推薦 ,替代方法為直接推薦最熱銷的商品。
分類推薦方法: 關於購買與否可簡單劃分為1(買)與0(不買)分類,輸入一樣為抓取到的使用者所有資料,透過歷史資料得知該使用者是否曾經購買過該商品,訓練模型,當一位使用者還沒買過(或買過)該商品時,為商品預測該使用者會不會買商品,並按機會高低與否,推薦該商品給使用者。以類神經網絡做模型預測為例,輸入端為每個使用者的Feature轉化為向量,輸出端可以SOFTMAX做輸出,來預測該使用者買該商品的機率為何?要注意的是,這裡會有Sparse Matrix的產生。
協同過濾推薦: 建立使用者的群體(Clustering),我們可以得知類似的用戶(興趣)會被歸類在一個群內,當一個在群內的使用者登入,我們便可推薦與該用戶相近的使用者擁有而登入的使用者所沒有的物品給使用者。這做法比較大的問題一樣如前述所提,若為較新的使用者無法做較精準的推薦。