從0開始作互聯網推薦【產品+算法+實現】算法
1、58轉轉簡介微信
58旗下真實我的閒置物品交易平臺架構
2、從0開始設計推薦產品框架框架
(1)首頁推薦:提取用戶畫像,根據線下提取出的用戶年齡、性別、品類偏好等在首頁綜合推薦寶貝ui
(2)寶貝詳情頁推薦:買了還買,看了還看類的關聯寶貝推薦設計
(3)附近推薦:和首頁推薦的差別在於,提升了地理位置的權重,地理位置不只要包含當前地理位置,還須要包含常見活躍區域,例如家裏、公司等日誌
(4)搜索推薦:除了關鍵詞全匹配,要考慮同義詞、近義詞、易錯詞、拼音等推薦,產品層面,提示「你是否是想找xxoo寶貝」排序
(5)召回推薦:在用戶退出系統後,經過RFM模型作優惠券推送或者消息推送作客戶挽留與召回數學
TIPS:什麼是RFM模型?產品
RFM模型:根據用戶最近一次購買時間Recency,最近一段時間的購買頻度Frequency,最近一段時間的購買金額Monetary,加權獲得的一個表明用戶成交意願的一個分值。
3、從0開始進行推薦策略實現
【用戶畫像】
根據用戶填寫的資料、用戶歷史行爲(購買、收藏、喜歡、分享、評論、瀏覽等行爲)、微信背後的用戶畫像,獲得用戶的特性畫像:
年齡段 -> 推薦母嬰、3C用品?
性別 -> 推薦母嬰、美容保健用品?
手機型號 -> 推薦手機
活躍時間 -> 在這個時間段推送消息
品類偏好 -> 相關品類推薦
地域 -> 附近推薦
…
【如何構建畫像】
(1)讀取用戶安裝的應用程序列表構建畫像
裝有滴滴用戶端 -> 沒有車
裝有滴滴司機端 -> 有車
裝有CSDN -> 男性
裝有美柚、美顏APP -> 女性
…
(2)用戶行爲日誌
啓動日誌 -> 獲取活躍時段
經緯度 -> 獲取活躍地域
購買、收藏、喜歡、分享、評論、瀏覽-> 獲取品類偏好
第三方數據 -> 完善用戶畫像
【寶貝畫像】
58轉轉的寶貝都是非結構化的數據,比較難作統一的寶貝畫像,只能細分品類的作寶貝畫像,例如手機畫像等。
【如何構建寶貝畫像】
對於58轉轉來講,要作寶貝畫像必須細分類別,能夠分詞詞頻統計配合人工review的方式畫像,以鞋爲例,畫像可能爲
單鞋
純牛皮
尺碼
適合春秋穿
女鞋
價格及變更
包郵
【標籤化與個性化推薦】
畫像完成以後,如何對用戶進行寶貝推薦呢?
(1)給用戶和寶貝畫像完畢以後,要將每個用戶和每個寶貝打上標籤TAG
(2)統計用戶uid全部購買、收藏、喜歡、分享、評論、瀏覽的全部寶貝ID集合set<bb-id>
(3)統計這些寶貝ID全部對應的TAG,使用加權打分的方式,能夠根據頻次統計出對各TAG的喜愛程度
(4)對於全部寶貝,根據uid對各TAG的喜愛程度,使用加權打分的方式,能夠統計出對各寶貝的喜愛程度
(5)排除已經購買、收藏、喜歡、分享、評論、瀏覽過的寶貝,其餘寶貝按照打分高低推薦便可
(6)搜索推薦須要加上「搜索條件」,附件推薦須要增強「附近權重」
須要注意的是,個性化推薦的準確性,必定程度上依賴於歷史行爲數據的收集,對於新用戶,在缺少歷史行爲積累時,能夠推薦「熱度最高」的寶貝,將來再根據其歷史行爲,不斷加強推薦的準確率。
【分類預測推薦】
一個用戶對一個寶貝是否進行購買,能夠抽象成一個0和1的分類問題,也能夠抽象成一個購買機率的數學問題,能夠構造分類模型來計算用戶對每一個寶貝的購買機率,將機率最高的做爲推薦的寶貝。
爲了實現分類預測推薦,須要:
(1)準備訓練數據集,包含用戶、寶貝、用戶是否購買了寶貝等歷史數據,須要注意的是,數據集應當覆蓋儘量多的用戶(要包含全部TAG)和寶貝(要包含全部分類及TAG)
(2)構造訓練分類模型
(3)根據模型訓練的結果,計算每個用戶對每個寶貝某買的機率
(4)按照機率排序,對寶貝進行推薦
【協同過濾推薦】
協同過濾,用過的人都知道,不必定效果最好,但幾乎適用於全部的業務場景:當向用戶A作協同過濾推薦時,能夠先找到和他興趣類似的用戶羣體G,而後把G喜歡的、而且A沒有點擊過的寶貝推薦給A,這就是基於用戶的協同過濾。
爲了實現系統過濾推薦,須要:
(1)準備訓練數據集,根據每一個用戶對每一個寶貝的喜愛,構建喜愛矩陣(這是一個很是稀疏的矩陣),根據用戶對寶貝購買、收藏、喜歡、分享、評論、瀏覽的行爲量化這個喜愛
(2)構造系統過濾訓練模型
(3)針對每個用戶,根據模型給出其喜愛寶貝列表
在作協調過濾推薦時須要注意,較新的寶貝,因爲大部分人都沒有相關喜愛數據,因此使用協同過濾推薦時,新寶貝比較難被推薦上去,這是協同過濾的缺點,須要綜合其餘推薦策略來解決。
以上內容均來自微信公衆號「架構師之路」胡劍老師的文章,歡迎關注。