Re: [問題] 推薦系統除了預先準備結果有更好的方法嗎

看板DataScience作者 (初心を忘れるべからず)時間6年前 (2018/04/13 01:47), 6年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《del680202 (HANA)》之銘言: : 不確定這個版適不適合問這問題 : 想了下應該還算跟機器學習相關就決定PO這裡了 : 最近在研究怎麼作個人化的推薦系統 : 目前看到的流程大致分成 : 蒐集user/item清單 -> 建模 -> 打分 -> 排序 -> 儲存到某個DB給人呼叫 : 也就是預先作好推薦清單然後給人使用 : 之後就是一個建立一個batch定期更新這個清單 : 建模方法目前常看到的就相似度計算/MF/FM等等 : 當user/item清單非常龐大的時候這是一個很重的作業 : 產出的結果檔案也很龐大 : 想問問推薦系統的結果交付除了像這樣預先做出推薦清單之外 : 其他還有什麼好的交付方式嗎 分享個人淺見 1. MF的optimization不只有SGD這個選項 還有Alternating Least Square(ALS) 這招有理論保證每次update後training error會下降 (詳細可以看田神的機器學習技法第15講) 當你在update user matrix的時候要先固定item matrix 這時候對每個user vector來說都是彼此之間independent的linear regression問題 因此這部份很適合做平行化 (當然在update item matrix的時候也是一樣) 2. MF在打分和排序這部份 MSR在RecSys 2014發表過一篇paper idea主要是先offline把item vector透過PCA Tree做indexing online的時候把使用者的user vector拿去traverse這顆PCA Tree (詳細:https://goo.gl/n3aWLc) 這個方法是speed和accuracy的trade-off 看你願意犧牲多少accuracy來換speed up 3. 至於推薦清單的部份 個人覺得使用者應該比較在意排名top k個推薦而不是整個推薦清單 這部份可以透過partial sorting的演算法加速 生成的檔案也會比較小 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.165.101 ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1523555272.A.4CE.html ※ 編輯: DreamRecord (180.217.165.101), 04/13/2018 01:49:39
文章代碼(AID): #1Qpvl8JE (DataScience)
文章代碼(AID): #1Qpvl8JE (DataScience)