1. 程式人生 > >商品搜索引擎---推薦系統設計

商品搜索引擎---推薦系統設計

oop 不同的 開始 是否 單獨 形式 歷史 頁面 嵌入

版權聲明:本文為博主原創文章,轉載註明出處 https://blog.csdn.net/u013142781/article/details/51119242

一、前言

結合目前已存在的商品推薦設計(如淘寶、京東等),推薦系統主要包含系統推薦和個性化推薦兩個模塊。

系統推薦: 根據大眾行為的推薦引擎,對每個用戶都給出同樣的推薦,這些推薦可以是靜態的由系統管理員人工設定的,或者基於系統所有用戶的反饋統計計算出的當下比較流行的物品。

個性化推薦:對不同的用戶,根據他們的口味和喜好給出更加精確的推薦,這時,系統需要了解需推薦內容和用戶的特質,或者基於社會化網絡,通過找到與當前用戶相同喜好的用戶,實現推薦。

下面具體介紹系統推薦和個性化推薦的設計方案。

二、系統推薦

2.1、系統推薦目的

針對所有用戶推薦,當前比較流行的商品(必選) 或 促銷實惠商品(可選) 或 新上市商品(可選),以促進商品的銷售量。
PS:根據我們的應用情況考慮是否 選擇推薦 促銷實惠商品 和 新上市商品。(TODO1)

2.2、實現方式

實現方式包含:系統自動化推薦 和 人工設置推薦。

(1)系統自動化推薦考慮因素有:商品發布時間、商品分類、庫存余量、歷史被購買數量、歷史被加入購物車數量、歷史被瀏覽數量、降價幅度等。根據我們當前可用數據,再進一步確定(TODO2)

(2)人工設置:提供運營頁面供運營人員設置,設置包含排行位置、開始時間和結束時間、推薦介紹等等。

由於系統推薦實現相對簡單,因此不作過多的文字說明,下面詳細介紹個性化推薦的設計。

三、個性化推薦

3.1、個性化推薦目的

對不同的用戶,根據他們的口味和喜好給出更加精確的推薦,系統需要了解需推薦內容和用戶的特質,或者基於社會化網絡,通過找到與當前用戶相同喜好的用戶,實現推薦,以促進商品的銷售量。

3.2、三種推薦模式的介紹

據推薦引擎的數據源有三種模式:基於人口統計學的推薦、基於內容的推薦、基於協同過濾的推薦。

(1)基於人口統計學的推薦:針對用戶的“性別、年齡範圍、收入情況、學歷、專業、職業”進行推薦。

(2)基於內容的推薦:如下圖,這裏沒有考慮人對物品的態度,僅僅是因為電影A月電影C相似,因此將電影C推薦給用戶A。這是與後面講到的協同過濾推薦最大的不同。

技術分享圖片

(3)基於協同過濾的推薦:如下圖,這裏我們並不知道物品A和物品D是否相似,僅僅考慮人對物品的喜好進行推薦。

技術分享圖片

模式采用:這三種模式可以單獨使用,也可結合使用。結合我們實際情況,采用基於協同過濾的推薦更加合適,看後期情況是否結合另外兩種模式實現推薦。但基於協同過濾的推薦這種模式,會引發“冷啟動”問題。關於,冷啟動問題,後續會討論解決方案。

3.4、Mahout介紹

目前選擇采用協同過濾框架Mahout進行實現。

Mahout 是一個很強大的數據挖掘工具,是一個分布式機器學習算法的集合,包括:被稱為Taste的分布式協同過濾的實現、分類、聚類等。Mahout最大的優點就是基於hadoop實現,把很多以前運行於單機上的算法,轉化為了MapReduce模式,這樣大大提升了算法可處理的數據量和處理性能。

Mahout 是一個布式機器學習算法的集合,但是這裏我們只使用到它的推薦/協同過濾算法。

3.5、Mahout實現協同過濾實例

協同過濾在mahout裏是由一個叫taste的引擎提供的, 它提供兩種模式,一種是以jar包形式嵌入到程序裏在進程內運行,另外一種是MapReduce Job形式在hadoop上運行。這兩種方式使用的算法是一樣的,配置也類似。

這裏我們采用第一種引入jar包的單機模式。

3.5.1、依賴

商品搜索引擎---推薦系統設計