Mahout學習筆記-推薦演算法

來源:互聯網
上載者:User

  Mahout中的推薦演算法主要有:User-based Recommender, Item-based Recommender和Slope-One Recommender。

  1. User-based Recommender

    該演算法的主要思想是:與使用者u最相似的使用者喜歡的商品有很大可能也是使用者u喜歡的商品。

1 對於使用者u的每一個沒有preference的商品i2    對於每一個對商品i有preference的使用者v3      計算使用者u與v的相似性s//實際上無需線上計算,可以事先計算好儲存起來4      將使用者v對於商品i的preference,乘以s,加到使用者u對商品i的預測preference的平均值5  返回使用者u的平均值最高的幾個商品作為推薦商品。

 

  上述演算法需要窮舉每個商品i,導致計算非常非常慢。可以實現計算好某個使用者u的所有的鄰居(記為集合n),然後,再為使用者u做推薦時,只需要考慮使用者u的鄰居的所有有preference的商品即可,而無需考慮所有商品,演算法如下:

1 對於每個其他的使用者w2   計算使用者u與使用者w之間的相似性s3 返回使用者u的相似性最高的幾個使用者,記為使用者u的鄰居n4 //上述步驟可以離線完成,類似於索引5 對於使用者u的每個u本身沒有preference,但是u的鄰居n中某個使用者有preference的商品i6   對於每個對商品i有preference的使用者u的鄰居v7     計算使用者u與v的相似性//其實無需線上計算,可以提前計算好,儲存起來8       將使用者v對於商品i的preference,乘以s,加到使用者u對商品i的預測preference的平均值

  2. Item-based Recommender

    該演算法的主要思想是:喜歡商品i的使用者u,有很大可能性會喜歡和商品i很相似的其他商品

1 對於使用者u的每個沒有preference的商品i2   對於每個使用者u有preference的商品j3     計算商品i與j的相似性s4     把使用者u對商品j的preference,乘以s,加到使用者u對商品i的preference的平均值5 返回使用者u的平均值最高的幾個商品作為推薦商品

  3. Slope-One Recommender

    首先計算每兩個商品之間preference差值的平均值

1 對於某個商品i2   對於某個商品j3     對於每個對商品i和j都有preference的使用者u4       將使用者u對商品i和商品j的preference的差值加到所有使用者對商品i和商品j的差值的平均值當中去  

    推薦

1 對於使用者u的每個沒有preference的商品i2   對於使用者u的每個有preference的商品j3     取得商品i和商品j的preference差值的平均值diff4     將diff加上u對商品j的preference的和加入使用者u對商品i的preference的平均值當中去5     返回使用者u的預測preference最高的幾個商品作為推薦

 

  [1] Mahout in Action

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.