Java 人工智能 - Apache Mahout - 推薦引擎
基于內(nèi)容的過濾
使用項目屬性尋找?guī)в邢嗨茖傩缘捻椖?/p>
基于協(xié)同過濾
根據(jù)用戶的評分或者其他用戶的行為
基于擁有類似行為的用戶喜好與購買的物品進行推薦
推薦引擎會觀察用戶的行為
推薦引擎4個輸入
項目的信息
用戶資料 年齡范圍 性別 位置 朋友
用戶交互 比如評級 瀏覽 標(biāo)記 比較 保存 電郵
項目的上下文 比如項目的分類 地理位置
推薦引擎組合回答
購買 觀看 瀏覽 收藏過這個項目的用戶還買了 看了 瀏覽了 收藏了……
與這個項目類似的項目
你可能認(rèn)識的其他用戶
和你類似的其他用戶
計算相似度
協(xié)同過濾
不依賴于項目內(nèi)容
它基于的假設(shè)是 人們過去認(rèn)可的將來也會認(rèn)可 他們喜歡與過去喜歡的項目以及相似的項目
缺點 冷啟動
也就是說 如果想創(chuàng)建一個精確的協(xié)同過濾系統(tǒng) 算法往往需要先有大量的用戶評分
初創(chuàng)的項目不會使用協(xié)同過濾
有了一定量的數(shù)據(jù)積累之后才會使用
內(nèi)容過濾
建立在項目的描述與用戶偏好資料之上
使用屬性描述項目并找出相似項目
需要使用一個距離測度
比如余弦距離或者皮爾遜相關(guān)系數(shù)
測量項目之間的距離
然后將用戶的資料輸入到方程式當(dāng)中
項目中的屬性重要程度按照權(quán)重排序
用戶可以反饋喜歡項目中的某一個屬性
比如一個電商項目 基于內(nèi)容過濾技術(shù) 使用了 400 多個屬性創(chuàng)建商品
一個用戶通過特定的屬性選中了一件商品
我們開發(fā)人員提供反饋功能
用戶通過反饋屬性可以突出這件商品的重要屬性
只需要很少的用戶反饋信息
能有效避免冷啟動問題
混合方法
Netflix 使用協(xié)同過濾 分析相似用戶的搜索與觀看模式
使用基于內(nèi)容的過濾向用戶推薦高評分影片
混合技術(shù)
加權(quán)混合 切換混合 分區(qū)混合 特征組合 特征擴充 級聯(lián)混合
分層混合
Mahout 是一個可擴展的機器學(xué)習(xí)庫
maven 依賴
<dependencies>
? ? ? ?<dependency>
? ? ? ? ? ?<groupId>org.apache.mahout</groupId>
? ? ? ? ? ?<artifactId>mahout-mr</artifactId>
? ? ? ? ? ?<version>0.10.0</version>
? ? ? ?</dependency>
? ?</dependencies>