作者yzugsr (miaout17)
看板Soft_Job
標題Re: [請益] 外商面試題目
時間Sun Apr 28 17:39:57 2013
小弟是做web application的
之前稍徵看了一些data mining的東西,但不是很專精
看到這篇討論有些問題想要請教
※ 引述《chucheng (時間太少事情太多)》之銘言:
: ※ 引述《pologuy (購物慾好強)》之銘言:
: : ex:
: : 甲買商品A 同時會購買BC
: : 乙買商品A 同時會購買CD
: : 因此A和C的關聯性較高
: : 那麼要如何將A商品的關聯性商品記錄下來,並且將較高關聯性的商品(如上述C)推薦給
: : 消費者?
: : 這是小弟之前面試的題目,想不到好的方法,想請教各位!
: 並假設ABC與時間無關(想成賣永久,不會下架)
: 這樣問題可以簡化成frequent itemset/ Association rule learning 的問題
: 看這裡:http://en.wikipedia.org/wiki/Association_rule_learning
: 其中最簡單的解法是aprior: http://en.wikipedia.org/wiki/Apriori_algorithm
不知道我的理解是否有誤
Associative rule mining應該不用假設user是同一個人?
例如有10000筆便利商店的交易,但沒有記錄客人的身份及特徵(如性別、年齡等)
如果「香煙->打火機」的support和confidence夠高
還是可以在顧客購買香煙時推薦打火機,或將打火機放在香煙旁增加購買率?
當然,如果可以考慮其他因素,可能有更精準的mining結果
但我想就算沒有額外因素,並不一定要假設user的身份
將大量的transaction做associative rule mining也是有參考價值的?
: 相關的面試問題還有很多,基本上這是在考
: Recommendation System Design或是Collaborative Filtering
: 有時候還會被加問如果資料很大(超大,大到放不到一台電腦如何解決)
: 正解是map-reduce over hadoop,配上Apache Mahout
: 裡面有現成的Collaborative Filtering 函式庫可以使用
我之前剛好也思考這個問題,假設以下情境:
* 我有一個資料庫,只記錄了顧客購買過哪些物品,但沒有任何額外資訊。
* 這些商品顧客通常只會購買一次 (如書、CD)
* 基於這個前提,要推薦顧客之前未購買,但可能會有興趣的商品。
同樣考量資料量可能很大的情況
我之前曾經survey過C大提到的Apache Mahout
Ex.
https://cwiki.apache.org/MAHOUT/recommender-documentation.html
我的認知是Mahout的collaborative filtering似乎都是針對preference(rating)資料
使用者對商品必需有一個評價(Ex. 1~5分),或者尚未評價
或者在"boolean model"中,使用者對一個商品可以是:喜歡、不喜歡、未評價
但是,基本上只能知道顧客「有購買」或「未購買」
無法使用Mahout現成的recommendation機制
一開始原PO的例子也一樣,只能知道「哪些東西一起被購買」
無法知道「顧客對商品的評價」
像Mahout現成recommendation engine的機制
似乎比較適合Google Play, Netflix這種容易蒐集rating的應用
不知道我是否有什麼疏漏或誤會的地方
或者C大是指使用Mahout底層的矩陣map reduce運算,自行建構推薦演算法?
附帶一提,針對我提到的情境
我構思的解法是把每個顧客的購買視為一個transaction
簡單用apriroi做associative rule mining推薦
若在資料量太大的情境下,則考慮將apriroi的每個step拆分到map-reduce做運算
不知道以上有沒有更好的方法呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 27.241.48.208
推 del680202:這個年代 比apriori強的algorithm很多了 04/28 18:29
→ del680202:不需要什麼都丟map-reduce 04/28 18:30
推 jlhc:而且你資料量沒大到一定程度 根本用不到map reduce.... 04/28 20:12
→ realbout:心裡在想....有沒有雲端的....這樣就輕鬆多了~ 04/29 11:30