推薦理由設計實踐:讓推薦系統變得會「說話

文/張健 (達觀數據架構師)

前言

推薦系統對於處於信息爆炸時代的我們來說並不陌生。在日常生活中,我們使用到推薦系統提供的各種服務,在社交工具上認識志同道合的朋友,到音樂網站中欣賞自己感興趣的音樂作品,從一大堆企業崗位信息中挑選出一份稱心如意的工作等等。一個優秀的推薦系統能像朋友一樣理解用戶的需求,提供給用戶有價值的信息,並且幫助用戶做出正確合理的決策。而推薦系統要向人性化的方向發展,除了要深入分析用戶喜好制定合理的推薦策略,能夠對推薦的結果提供合理的解釋也相當重要。推薦理由在推薦系統中隨處可見,舉一些典型例子譬如,「你可能認識小李,你們有16個共同好友」,「你收藏的《哈利波特》主演丹尼爾·雷德克里夫最新力作」等。作為推薦系統與用戶的直接交流方式,推薦理由在推薦系統中發揮著重要的作用。本文將就達觀數據在推薦理由應用於推薦系統中的心得體會,與大家進行分享。

圖1:推薦系統與推薦理由

一、推薦理由的設計目標

有人覺得推薦理由的設計是一件很簡單的事情,拼湊一些描述推薦物品優點的句子,通過這樣的方式就可以產生物品的推薦理由。但是如此機械生硬的做法很容易讓用戶產生消極厭倦的情緒,難以獲得用戶對推薦系統的信賴。怎樣的推薦理由才是「好」的推薦理由,才能提供良好的用戶體驗呢?在設計推薦理由時需要考慮到的七個設計目標我們一一列舉:

1. 透明性:

使推薦系統更加透明,是推薦理由的主要作用之一,也是評價推薦理由是否有效的重要標準。推薦理由能讓用戶理解生成推薦結果的計算過程,同時也可以解釋一個物品比另一個物品更受歡迎的原因。

2. 用戶信任度:

用戶對推薦系統的信任程度通常是與透明性聯繫在一起的。用戶通過推薦理由了解到當前推薦結果的產生原理,可以增強用戶對系統推薦結果的信心,並且在推薦失誤的情況下對錯誤結果更加寬容。建立起用戶對推薦系統的信心後,用戶會更傾向於繼續使用這個系統;相反,在透明性不好的系統,用戶的信任程度偏低,使用次數也會隨之下降。

3. 可理解性:

可理解性是緊密關聯透明性的另一指標。用戶總是希望自己有最後的決定權,如果系統推薦的商品不滿意,得有辦法讓用戶改進它。對於這類需求,需要簡潔地告訴用戶系統的推薦邏輯,比如「因為你喜歡A所以給你推薦了B」,用戶可以依此來修改興趣列表,調整推薦結果。

4. 正確性:

基於推薦理由,用戶可以比較自己的需求和實際提供的物品特性,從而確認推薦物品的質量,驗證推薦結果的準確性。一個表達準確的推薦理由能夠幫助用戶使用戶做出更明智更準確的決策。

5. 高效性:

高效性是指讓用戶快速地判斷推薦結果是不是真的符合自己的興趣。在實際應用中,我們通過計算用戶與推薦系統的交互次數,或者用戶使用推薦理由找到心儀物品的耗費時長,作為衡量推薦理由高效性的量化標準。

6. 說服力:

給出推薦物品的正面信息以打動用戶,改變和強化用戶對此物品的正面觀點,使其接受推薦結果並進行點擊、收藏或者購買等行為。說服力通常是從推薦系統或者銷售方的角度出發,目的是獲取更多利益。不過說服力和用戶信任度是推薦系統需要權衡的兩方面因素,過分追求說服力有可能會削弱用戶的信任程度。

7. 滿意度

滿意度是推薦理由設計的一個綜合性指標,是針對整個推薦流程而言的。推薦理由使推薦結果看上去更加友好,提供更多的參考信息,極大的改善了用戶體驗。?

二、推薦理由的設計維度

圖2:推薦理由的設計維度

幾乎所有推薦系統的推薦理由模塊在設計時,都要涉及到這三個基本的維度:產生方式,採用信息和推薦演算法。其中,產生方式包括黑盒和白盒模式,區別在於是否公開推薦過程使用的演算法;採用信息,表示生成推薦理由使用了哪些輸入信息;推薦演算法,顧名思義,即是推薦過程中使用的計算方法。(達觀數據 張健)

1. 產生方式:

a) 白盒模式:透明性是推薦理由設計的重要指標。在白盒模式中,推薦理由能夠直接反映推薦系統生成推薦結果所使用的具體方法,具有良好的用戶體驗。

b) 黑盒模式:黑盒模式隱藏了推薦過程的實現原理,會使用戶體驗有一定影響。採用黑盒模式的原因,主要包括基於保密原因不願公開實現細節,或者是計算方式過於繁瑣複雜,缺乏簡潔直觀的推薦理由使用戶能夠一目了然。

2. 採用信息

a) 用戶畫像:生成推薦理由時考慮到用戶的個體特性,譬如說基於用戶的人口學特徵、用戶偏好以及用戶的行為特徵。

b) 物品信息:推薦理由的生成依賴於物品的特定信息。

c) 替代商品:推薦理由中包含了對替代商品的評價意見。

3. 推薦演算法

推薦系統的主流演算法包括基於內容的推薦,協同過濾,和基於知識的推薦,對於不同的演算法推薦理由有相對應的展現形式。下面介紹了推薦理由在各種推薦演算法中的一些基本模板。

a) 基於內容:

圖3:基於內容的推薦理由示例

最樸素簡單的推薦理由生成方法,直接將匹配用戶請求的物品的特徵(分類、標籤等)作為推薦理由。進一步說,基於內容還可以基於用戶生成內容直接生成推薦理由,譬如說,專家知識類型的推薦理由一般都由人工生成然後錄入系統,挑選物品相關的高質量用戶評論作為推薦理由。

b) 熱門推薦:

圖4:熱門推薦的推薦理由示例

基本模板是「【熱門指標】排名前【名次】名的【熱門物品】」。

通常的生成方式是基於全體用戶的歷史行為,結合物品信息(如分類、標籤等)和時間維度(月、日、小時等)進行統計分析,離線定期生成榜單結果。

c) 協同過濾

圖5:協同過濾的推薦理由示例

基於用戶的協同過濾,基本模板是「和你口味相似的用戶都買了【某物品】」。演算法的原理是認為相似的用戶對新物品的喜好是相似的。

基於物品的協同過濾,基本模板是「買了【某物品】的用戶還買了【某某物品】」。演算法的原理是認為相似的物品對同一用戶的喜好是相似的。

d) 基於知識

基本模板是「由於你【用戶的需求或偏好】,所以你可能選擇【某物品】」。基於知識的推薦的原理是對知識庫進行分析處理,形成用戶需求和物品之間的強規則,進而形成推薦體系。

三、推薦理由模塊的效果評估

上文提到了推薦理由的設計優化的七個指標,這七個指標是單純在評估推薦理由時使用的。在實際應用考察推薦理由模塊的效果時,我們更傾向於把推薦理由模塊所在的系統作為一個整體來進行評估。在這種情況下,我們會使用如下一些標準:

1. 用戶滿意度:描述用戶對推薦結果的滿意程度,這是推薦系統最重要的指標。測量用戶滿意度,可以通過調查問卷方式了解用戶對推薦理由的體驗感受,或者可以監測用戶線上行為數據,進行AB測試來對比不同推薦理由策略的優劣。

2. 預測準確度:描述推薦系統預測用戶行為的能力。一般通過離線數據集上演算法給出的推薦列表和用戶行為的重合率來計算。重合率越大則準確率越高。

3. 覆蓋率:描述推薦系統對物品長尾的發掘能力。一般通過所有推薦物品佔總物品的比例和所有物品被推薦的概率分布來計算。比例越大,概率分布越均勻則覆蓋率越大。

4. 多樣性:描述推薦系統中推薦結果能否覆蓋用戶不同的興趣領域。一般通過推薦列表中物品兩兩之間不相似性來計算,物品之間越不相似則多樣性越好。

5. 學習速度:描述推薦系統是否能夠快速地獲取用戶的偏好信息,以及能否快速感知對用戶偏好的變化。推薦理由能夠通過暗示用戶的偏好發生變化,從而提升了用戶的滿意度。要獲取學習速度方面的效果,系統須允許用戶去修改自己的偏好信息,然後使用用戶線上行為數據進行AB測試來進行分析比較。

四、靜態和動態推薦理由自動結合的推薦系統

圖6:靜態和動態推薦理由自動結合的推薦系統架構圖

達觀數據針對實際應用場景開發了一套靜態和動態推薦理由自動結合的推薦系統,架構圖如圖。推薦系統的各個模塊包括:

1. 內容信息庫建立模組,用於對當前用戶正瀏覽的內容生成推薦結果並存儲;

2. 靜態推薦理由挖掘模塊,根據當前用戶正瀏覽的內容,為待推薦對象生成與推薦上下文無關的靜態推薦理由;

3. 動態推薦理由挖掘模塊,對每個待推薦對象根據傳入的推薦上下文自動進行運算,給出動態推薦理由;

4. 推薦理由組合模塊,對每個待推薦內容根據特定合併原則對待推薦對象的靜態和動態推薦理由進行合併,獲得待推薦對象最終的推薦理由;

5. 推薦結果顯示模塊,將待推薦對象及對應的推薦理由進行顯示,通過對生成靜態推薦理由和動態推薦理由進行合併,自動融合和展現,大大提高推薦系統的最終效果。

在推薦系統運行過程中,靜態推薦理由挖掘模塊可以通過分析數據統計系統內容,將每個待推薦對象各種統計數據生成用戶可直觀理解的推薦理由,這些統計數據包括,物品不同指標下的榜單信息構成理由,物品的用戶行為信息構成理由,和物品的用戶行為趨勢信息構成理由。

而動態推薦理由挖掘模塊,對每個待推薦內容根據傳入的推薦上下文自動進行運算,並給出相應的動態推薦理由。根據每次輸入的參數不同,給出的推薦理由也各不相同。在針對某次具體應用場景的實施應用中,動態推薦理由包括,按地域或時間生成的推薦理由,按傳入的用戶歷史的瀏覽行為生成的推薦理由,和按物品的關鍵詞、屬性、類別等生成的推薦理由。

然後,推薦理由組合模塊對每個待推薦內容根據特定合併原則,對待推薦內容對應的靜態推薦理由和動態推薦理由進行合併,獲得待推薦內容最終的推薦理由。在其中一個場景應用到的合併規則中,假設對於所有靜態理由和動態理由的集合為 。對於每一個動/靜態理由分配一個0到1之間的區間, ,而且滿足 , 以及 。在每次生成推薦理由的時候,隨機生成一個0到1之間的隨機數X,如果 ,即隨機數落在了 內,則選擇推薦理由 為最終的推薦理由。推薦結果顯示模塊則 用於將待推薦內容及其對應的最終的推薦理由進行顯示。為了讓推薦理由起到闡述推薦原因,並且吸引用戶的目的,推薦結果顯示模塊在頁面呈現時採用相對醒目的顏色,在待推薦內容附近展示推薦理由。

總結

本文從推薦系統中推薦理由的設計目標,設計維度,推薦理由效果評估,和靜態和動態推薦理由自動結合的推薦系統,全面介紹了達觀數據在推薦理由應用於推薦系統中的實踐經驗。

作者簡介:

張健,復旦大學計算機軟體與應用專業碩士,現任達觀數據聯合創始人,曾在盛大創新院智能推薦組負責數據挖掘和分析、智能推薦,在盛大文學數據中心負責大數據分散式處理、數據挖掘和分析、文本智能審核。對智能推薦、文本挖掘、數據挖掘和大數據技術有較深入的理解和實踐經驗。

本文版權歸 達觀數據(datagrand.com/) 所有,如若轉載,請註明出處。

推薦閱讀:

產品經理需要了解的推薦演算法之——個性化推薦演算法2(基於用戶)
論文引介 | Version-Aware Rating Prediction for Mobile App Recommendation
《推薦系統實踐》筆記
推薦系統中基於深度學習的混合協同過濾模型

TAG:推荐系统 | 个性化推荐 | 数据挖掘 |