推薦系統詳解——個性化推薦與非個性化推薦
原創【51CTO.com原創稿件】
1.導讀
隨著大數據資源的爆炸式增長和互聯網軟件技術的不斷更新,各類企業與數以億計的用戶之間隨時隨地都在進行著信息交流,從而產生海量的交互信息。這些交互信息不僅數量巨大,而且具有多種多樣形式的特點。所以就用戶而言,這些產生交互信息的用戶在享受網絡資源帶給自己極大便利的同時,也受到海量碎片化信息和超載數據信息的困擾。面對如此紛繁復雜的數據信息,這些用戶無法或者很難在其中找到滿足自己真正需要的內容或者對自己真正有益的信息,更多帶給客戶的只是無效信息轟炸。而對于企業而言,面對巨大的用戶信息數據,如何有效管理和分析這些數據,并且通過挖掘其中的有效信息來為企業服務的用戶提供他們可能感興趣的內容至關重要。因此,推薦系統應運而生,它是互聯網和電子商務發展的產物,也是建立在海量數據挖掘基礎上的一種智能商務服務平臺。常用語多種決策的過程,比如購買什么商品、聽什么音樂或者在網站上瀏覽什么網站和新聞等。
2.推薦關注點與分類:
“物品”是推薦的重要關注點,它是用來表示系統向用戶推薦的內容總稱。一個推薦系統通常專注于一個特定類型的物品(電子產品、書籍、化妝品等),從而其設計的核心就是為特定類型的物品提供有效的建議來定制的。
推薦系統分為個性化推薦和非個性化推薦兩大類,推薦系統性能的好壞主要取決于個性化推薦,其是推進系統的不斷優化的核心。個性化推薦可以為用戶推薦個性化服務及感興趣商品,不斷提升用戶的體驗,并且在這基礎上提高了企業平臺的吸引力和用戶粘性,加大企業產品的銷售和推廣,從而達到互利共贏。非個性化推薦在一般情況下則是將熱銷商品數據或者階段性榜單數據進行推送。通過結合兩種不同推薦方式來更好完成不同場景下不同用戶的推薦。下面我也會主要針對這兩種推薦進行闡述。因為非個性化推薦內容比較固定,推薦的數據不需要太多的算法內容,因此,我將先從非個性化推薦入手,來一步步引導至個性化推薦。
2.1非個性化推薦
非個性化推薦,顧名思義就是不會去考慮每個用戶特性,不會考慮用戶的歷史行為,比較簡單粗暴的推薦給用戶銷量可觀(銷售榜單前十名等)的商品數據。就這一推薦方法而言,比較適用于冷啟動模塊用戶推薦。我在之前一家互聯網公司也是采用這一推薦方法來完成冷啟動用戶(近一個月無行為近一年有行為用戶或者新注冊用戶)的推薦,都可以產生比較可觀的PV和UV點擊率以及購買率。下面我將結合自己在這一方面的工作經驗比較簡要的介紹下冷啟動用戶模塊推薦商品數據的來源及處理。
(1)公司前臺會形成商品購買榜單數據表,通過商品購買量形成對應的熱度評分表,通過商品購買成交額形成商品得分表;
(2)基于商品熱度評分表和得分表形成榜單數據表;
(3)對拿到的榜單數據表進行無效商品過濾、性別匹配過濾、四級商品組打亂等處理將固定數量的商品數據推送至Kafka用于實時刷新展示。
一個實際面臨的問題?
在這類的推薦過程中,很多企業可能會面臨一個問題就是冷啟動用戶數量過大,要想一次性推送商品數據給這些用戶可能會超出公司平臺的負載能力。經過考量,發現冷啟動用戶的活躍度是比較低的,在近一個月內活動的用戶量很少,也就是說為我們的推送任務積累了一定的推送時間。對于這一模塊用戶數據推送,我們完全沒必要一次性將所有用戶推薦完(當然如果你的公司平臺負載能力足夠大的話,也就不存在這一問題),我們可以根據自己公司平臺的負載能力將不同尾號的用戶數據隔一段時間推送,例如將用戶按尾號切成5等份(01、23、45、67、89),然后按日期除以5取得余數進行推送(余數為0推送尾號為0和1用戶、余數為1推送尾號2和3用戶.....)以此推送完全可以在滿足公司平臺負載能力的條件下,兼顧到用戶商品數據的實效性。因為完美的推薦系統效果永遠是個未知數,也是不斷優化的結果,只有同時兼顧到影響推薦系統的因素并且在不同場景下這些因素進行權衡才能找到適合自己需要的推薦效果。
2.2個性化推薦
個性化推薦,顧名思義就是根據用戶特有屬性(歷史行為、相關偏好等)來挖掘用戶可能感興趣的信息數據來完成實時性的推送。個性化推薦的效果基本也決定了整個推薦系統的推薦效果,我們在日常談到的推薦系統基本也都是個性化推薦系統,因此在下文我將一并成為推薦系統。因為介紹推薦系統也就是在介紹個性化推薦。
3.推薦系統的功能與效果評估
3.1推薦系統的功能
推薦系統的功能很多,主要分為以下幾類:
(1)增加物品的銷售數量,毋庸置疑,這個是任何一家企業都必須對推薦系統首要考量的因素??梢赃@么說,一個不能增加物品銷數量的推薦系統就不叫推薦系統了,因為它的存在已經沒有實質性的意義。雖然這樣說比較勢利,但是這也是基礎,因為企業的發展基本都是建立在盈利的基礎之上,這是任何一個推薦系統都不能忽視的因素;
(2)出售更多種類的物品,很多人會問,這個功能不是和上面功能是一樣的嗎?其實不然,仔細看下,你就會發現還是有些區別的。第一個功能四物品的銷售數量,第二個功能則更加關注銷售物品的種類。也就是說你的推薦系統不僅要提升某一類或者品牌的商品銷售額之外,你還需要推薦出更多種類或者品牌的商品。這也是為了解決推薦過程中的長尾效應(長尾效應我將會在后續講到)。舉個例子,你的推薦系統提升了格力空調的銷售數量和成交額,但是你不能一直推薦格力空調這一類商品,公司還需要你推薦格力品牌的其他電器(冰箱、風扇等等)?;蛘咝枰阃扑]其他品牌的空調(美的、海爾等等),這樣就會更加有利于公司平臺的運營,從而挖掘用戶的潛在興趣,不至于使用戶需求專一特有化。
(3)增加用戶滿意度,這個指標很難從一個確切數字去判斷,只能通過調查問卷或者推薦商品評價大致上去衡量下用戶滿意的程度。并且不同用戶之間體驗感受是感官上的,很難去用一個數字去定量表示出來,并且還存在惡意評價之類的用戶。所以基本這個增加用戶滿意度只能大致上考慮到。
(4)增加用戶忠誠度,這個功能基本上也反應了用戶滿意程度,但不能直接等于。用戶忠誠度就可以用戶買了又買、看了又看、買了又看之類的數據表來總結出。
3.2推薦系統效果評估
推薦系統就是把一個商品給一個喜歡這個商品的人或者說有意向買這個商品的人,所以可以將用戶分為兩部分,一個是有意向的,一個是無意向的,所以這樣的問題叫做分類問題。同時,在有意向的用戶群中,有的是很有意向的,有的是不太有意向的,對應于數字上的問題就是回歸問題。因此,推薦系統的運行過程可以看成一個分類或者回歸問題,也就是說可以通過分類/回歸的相關指標對推薦系統效果進行衡量,主要有以下幾個參數:
(3)準確率(Precision):(推薦的商品中使用的占比)
|
被推薦 |
未被推薦 |
使用 |
真陽性數(tp) |
假陰性數(fn) |
未被使用 |
假陽性數(fp) |
真陰性數(tn) |
真陽性數(tp):推薦的商品用戶使用了,即推薦有效;
假陰性數(fn):使用的商品是未推薦的,即推薦不足;
假陽性數(fp):推薦的商品用戶未使用,即推薦無效;
真陰性數(tn):沒有使用,也沒有推薦。
4. 總結
通過個性化推薦實時推送信息數據提供給用戶來滿足用戶的實時需求,這一類主要是針對于日?;钴S用戶完成推薦,通過活躍用戶的歷史偏好信息和行為來為用戶制定滿意的推薦數據;非個性化推薦則是對于個性化推薦的補充和延續,主要針對冷啟動用戶模塊,達到錦上添花的效果。因此任何一個推薦系統都必須將其結合起來,不斷優化推薦類型的占比,考慮不同的運用場景,從而設計出一個較為滿意且符合實際情況的推薦系統。
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】