編輯導語:智能推薦算法的目的就在于實現個性化推薦,根據用戶興趣和行為特點,向用戶推薦所需的信息或商品,幫助用戶在過載信息中快速發現真正所需的商品,提高用戶黏性;本文作者分享了關于智慧推薦算法的分析,我們一起來了解一下。
最近接到一個任務,是一個教育類App上的智慧推薦版塊,要針對用戶的購買習慣推薦相應的可購買內容,千人千面的滿足客戶的個性化需求,提高商品的點擊量和購買量。
一、業務邏輯及適用機制
客戶需求具體如下:
- 展覽服務:結合以用戶的年齡、興趣、過往觀展記錄生成的用戶畫像,以及展方主推內容,為用戶智能推薦展出內容,加強用戶體驗。
- 比賽服務:根據用戶以往參賽、訂閱記錄,以及系統中的參賽選手檔案信息,智能推薦比賽內容。
- 演出服務:根據用戶購票、退票、觀演歷史和用戶演出評價記錄,智能推送用戶可能感興趣的演出。
可以看出,此處智慧推薦的用戶個性化需求十分強烈,預設了用戶比較傾心于他以前購買過的相同類型的物品。
目前,市面上商用的主流推薦算法大致可分為如下幾類:
- 基于內容相似度的推薦;
- 基于用戶相似度的協同過濾;
- 基于物品相似度的協同過濾;
- 基于流行度的推薦算法;
- 基于模型的推薦(輸入一些用戶特征建立模型,進而產生推薦結果);
- 人工推薦(人工運營添加推薦條目)。
本項目非常符合基于物品相似度的協同過濾算法的使用場景。
二、算法的特點
基于物品相似度的協同過濾算法的適用場景有如下特征:
長尾物品豐富,用戶個性化需求強烈的領域;長尾效應很好理解,舉個例子,最主流、最熱門的書籍總是占據書店最顯眼的位置,而相同類型的冷門書籍擺上貨架的可能性就小得多,哪怕這些冷門書確實還是有市場需求的。那用戶購買過某熱門書籍,那我把相同類型但賣的不那么好的書推薦給老用戶,這是非常合理的吧?而每個人所看的書籍類型千差萬別,我告訴你有某個你不認識的人也愛看某本書,你恐怕也不一定愿意買吧。
物品數遠小于用戶數的場合;物品數據相對用戶數據本身就更為穩定,再者物品數據的樣本量小,此時計算物品的相似度不但計算量較小,也不必頻繁更新,程序壓力小。
因此該算法往往應用在圖書、電子商務、教育及電影網站,這些領域均符合以上兩點特征。
基于物品相似度的協同過濾算法,其關注點在于維系用戶的歷史興趣,而其交互特點在于推薦結果的實時變化。其優缺點如下:
- 缺點:存在App冷啟動的問題,即App剛開始使用時用戶數少,內容也少,未形成用戶喜好池;對于本項目來說,也即是在缺少用戶的歷史記錄,無法據此推薦內容的情況下,適用范圍受限。
- 優點:推薦結果解釋性強;隨著用戶的瀏覽記錄數據的增加,推薦一般也會越來越準確。
三、算法的實現
在本次項目中,基于物品相似度的協同過濾算法的實現大致如下所示:
計算物品(課程/活動/演出/展覽/比賽等)的相似度。
步驟如下:
利用物品的內容屬性計算相似度。內容屬性類似于一種標簽,能體現出物品的共性。
物品可以是實體的物件,也可以是虛擬的娛樂服務。比如某演出的類型,是話劇、舞蹈還是歌唱?演出的適宜人群是10-18歲的青少年,還是二十來歲的大學生,還是工作穩定家庭圓滿的中年人?演出的地點在茶館、體育館還是歌劇廳?
一個物品可以有多個標簽,而兩個物品相同的標簽越多,兩者的相似度也就越高。
分析用戶的行為記錄計算相似度。用戶的行為記錄包括曾經觀看過的演出、展覽,參加過的比賽,購買過的商品等。確認了用戶的行為偏好,就“投其所好”。
為用戶生成推薦列表。將物品和用戶的行為關聯起來,和用戶歷史上感興趣的物品越相似的物品,越有可能在用戶的推薦列表中獲得更高的排名。需要考慮以下幾個方面:
業務場景:共可分為冷啟動、非冷啟動新用戶、非冷啟動老用戶、匿名用戶四種。不同的業務場景適用的算法不同,對于本項目,基于物品協同過濾推薦算法適用于非冷啟動老用戶。
不同業務場景適用的算法不同
推薦位置:需考慮前端推薦列表的入口(首頁或某個模塊),以及其內部的界面層級。
結果評測:推薦列表上線后,收集數據用于算法的優化。需對比算法使用前后商品銷售量和銷售額的增長情況,以此衡量算法的有效性并及時調整推薦機制。
- 商品的數量層面的相關數據:點擊量、點擊率、收藏量(若允許收藏)、加購量、加購率、提交訂單量、提交訂單率、訂單付款率、占比等等。
- 商品的金額層面的相關數據:點擊量、收藏金額、加購金額、提交訂單金額、付款額、占比等等。
本次項目中,前端給定了一個智能推薦主入口,提供展覽服務、比賽服務、演出服務三個次級入口。
需要注意的是,這三個次級入口所導入的內容,均是已經維護好的,只是處于同種物品的長尾列表內,曝光率可能較低。智慧推薦要做的就是提升這些內容的曝光率。
考慮的物品內容屬性及權重系數有所區別:
展覽服務(展覽):
- 展覽位置:考慮到不同場館給用戶帶來的體驗不同,用戶可能偏向于在某個展館內觀展,因此會對相同展館內舉辦的展覽進行推薦。權重系數低。
- 展覽時間:用于相近時間段的推薦。如某展覽舉辦期間還有其他展覽也在舉辦;或者用戶在觀賞某演出的當天,也有某個展覽正在舉行,希望用戶可以“順便”參加某展覽。權重系數低。
- 展覽類型:展覽可分為書法展、繪畫展、科技展等不同類型,每種類型又可細分為多個小類,如繪畫展可細分為中國畫展、油畫展、 版畫展等等。實際上,在維護展覽的相關信息時,已經為不同展覽設定了標簽。權重系數高。
- 適宜人群:不同年齡段的人所愛好的東西有其相似性,因此要對展覽的受眾進行區分,如10歲以下的幼童、10~18歲的青少年、18歲以上等等。
比賽服務(比賽):比賽類型(書法、繪畫、朗誦、小發明等標簽)。
演出服務(演出):演出位置、演出類型(朗誦、歌唱、舞蹈、小品等標簽)、演出時間(近期推薦)等,類似展覽。
后臺給定了算法的模板配置頁面,推薦位配置頁面以及結果評測頁面。
本文由 @Smile 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自 Unsplash ,基于 CC0 協議