1、指導教授:魏世杰研究生:陳慶宇1+緒論+文獻探討+研究方法+實驗及評估+結論和未來目標2+圖書館擁有大量資料+搜尋模式單一,只能使用關鍵詞+若遇書名用詞或語言不同,搜尋結果可能遺漏使用者所需+使用推薦系統改善133常用技術7有:+協同過濾(Collabrative Filtering):社群力量+內容為本(Content-based):文字比對+知識為本(Knowledge-based):屬性篩選4+以淡江圖書借閱紀錄及分類號為協同及內容推薦基礎+考量個資問題 當無法取得借閱者身份提出物推薦物方法 當可取得借閱者身份提出物推薦物內嵌在人推薦物方法下之做法+結果與Mahout協同推薦法4互相比較
2、5+協同推薦(Collabrative Filtering)用戶為本(User-based)物品為本(Item-based)模型為本(Model-based)+內容為本(Content-based)+知識為本(Knowledge-based)6+採物品為本推薦,觀察購物車已有商品進行推薦+推薦過程依賴事先建好的相似物品表 相似物品表建立演算法如下2:7/計算型錄中每樣物品I1和其餘物品I2相似度For each item I1 in product catalog /分別統計所有物品和I1同時購買之次數 For each customer C who purchased I1For each
3、item I2 purchased by customer C Record that a customer purchased I1 and I2/利用和I1同時購買之次數高低計算所有物品和I1相似度For each item I2Compute the similarity between I1 and I2+杜威十進圖書分類法14 美國國會圖書館圖書分類法15例如:GV943.49.B5 1998 中國圖書分類法11例如:857.7/8326 8+Mahout 4為一JAVA寫成具有運算可分散能力(scalable)的機器學習套件,能和 Apache Hadoop 分散式架構相結合,有效
4、使用分散式系統來實現高性能計算。提供協同推薦、分類和分群演算法協同推薦包含用戶為本、物品為本和斜率1推薦法9/計算用戶u尚未評價過的所有物品i之可能評價,回傳前面名次物品for every item i that u has no preference for yet/計算其餘用戶v對物品i之評價,依照v,u相似度s加權,結合到u對i之評價for every other user v that has a preference for icompute a similarity s between u and vincorporate vs preference for i,weighted
5、by s,into running average return the top items,ranked by weighted averageGenericUserBasedRecommender類別410GenericItemBasedRecommender類別4/計算用戶u尚未評價過的所有物品i之可能評價,回傳前面名次物品for every item i that u has no preference for yet/計算用戶u對其餘物品j之評價,依照i,j相似度s加權,結合到u對i之評價for every item j that u has a preference forcomp
6、ute a similarity s between i and jadd us preference for j,weighted by s,to running average return the top items,ranked by weighted average11SlopeOneRecommender類別4/計算用戶u尚未評價過的所有物品j之可能評價,回傳前面名次物品for every item i the user u expresses no preference for/計算用戶u對其餘物品j之評價,依照i,j平均喜好差d,結合到u對i之評價 for every item
7、 j that user u expresses a preference forfind the average preference difference between j and iadd this diff to us preference value for jadd this to a running averagereturn the top items,ranked by these averages12+不可取得借閱者身份時 給定書代碼bid,推薦書本個數n,輸出是一群和bid相關的書集合bid_set=bid1,bid2,.,bidn。目標是找出一般使用者在借過bid之後
8、將來最可能借的書集合+可取得借閱者身份時 給定用戶代碼uid,推薦書本個數n,輸出是一群和uid相關的書集合bid_set=bid1,bid2,.,bidn。目標是找出該使用者將來最可能借的書集合13第一層是從給定的書bid,找到同樣有借過此書的使用者u u,第二層是從使用者u u找出過去所有借過的書b b,最後將所有書集合做成聯集bid_msetbid_mset,回傳重複次數最多的前n n名集合bid_setbid_set,當作推薦for every user u who has borrowed book bidfor every book b that user u has borrow
9、edadd book b into multiset bid_msetconvert multiset bid_mset into set book_setsort book_set by the occurrence count of each bid in decreasing orderbid_set=top n of sorted book_setreturn bid_set14+當聯集後的書集合bid_mset發生有書出現次數相同情形時,會造成許多書排名相同無法區別的缺點+引入分類號,計算兩書分類號的距離,讓比較靠近給定bid的圖書排名在前做仲裁 所有書分類號依字典字串順序由小排到大
10、,給予排序編號1到m,m為總書數 任一本書bid的排序編號表示為rank(bid)定義x及y兩書的距離為dist(x,y)=|rank(x)-rank(y)|出現次數相同的兩本書bid1、bid2,將依據dist(bid1,bid)及dist(bid2,bid)兩距離做仲裁,距離短者排名在前15當可以取得借閱者身分時,可以利用借閱者UserUser過去借過的書籍bid?bid?,再利用原來物推薦物方法,找出相關書籍集合bid?_bidsetbid?_bidset。最後將這些集合聯集起來,再依書籍出現次數多寡排序,若遇次數相同時再利用分類號方法做仲裁,產生最後推薦集合bidmsetbidmset
11、16u 淡江大學圖書館101年度整年份(2011.8.12012.7.31)的920172筆流通紀錄u 每筆紀錄有如下欄位:l TRANSACTION_DATE(借閱日期)l PATRON_ID(借閱者ID)l BIB_ID(書籍ID)l CALL_NUMBER(分類號)l TXN_TYPE(借閱情況)ckin(還入)、ckout(借出)、renewal(續借)u 本文只篩選留下373834筆借出記錄做為資料集l 借閱者18097人l 圖書(含CD)103306冊17為方便測試,本文將所有借出紀錄依不同月份時間點做分界線,分界線之前當訓練集,之後當測試集,共切割出11組訓練和測試集資料資料集集
12、訓練集訓練集測試集測試集訓練和訓練和測試集測試集並存借並存借書人數書人數起訖月份借閱筆數借閱人數借閱書數起訖月份借閱筆數借閱人數借閱書數M1810288188184419-7363546185261081991676M28-94828880463279910-7325606178051020307125M38-1087744112644982211-728609016881950269414M48-11131431133106291212-7242403158458716010424M58-1217250314641734011-7201331144817802010391M68-118703
13、714884768442-7186797141237454310276M78-221489015653828973-7158944133376816110259M88-326187316817918734-711196111457561239543M98-429435317541972305-7794819645455108455M108-5336012182331039716-7378225792273435294M118-63628351855710806171099920379064186318+假設可取得借閱者身份,故以人推薦物模式進行評估+對Mahout本身已有三種人推薦物方法進行評
14、估+針對人推薦物模式評估不同內嵌物推薦物方法的好壞 m2btop(人推薦物入圍名次門檻)參數範圍介於110和10100(間隔10)b2btop(物推薦物入圍名次門檻)參數範圍介於110和10100(間隔10)+因為屬布林資料,故Mahout用戶為本和物品為本皆使用LogLikelihoodSimilarity相似度方法+每組測試集計算平均精確率時皆以訓練測試集交集人數(介於167610424)當除數,再以平均精確率進行比較19對資料集(M1M11)進行評估,結果分別是m2btop介於110和m2btop介於20100間隔10。其精確率表現偏低,介於0.05%0.06%(SlopeOneReco
15、mmender)20橫軸表人推薦物入圍名次個數推薦結果,其精確率2%為三種Mahout方法中最好的。其中近鄰數量本文只固定取10來使用(GenericUserBasedRecommender+LogLikelihoodSimilarity)21橫軸表人推薦物入圍名次個數推薦結果,其精確率介於0.7%1%,在斜率1和用戶為本之間(GenericItemBasedRecommender+LogLikelihoodSimilarity)22橫軸表人推薦物入圍名次個數23橫軸表人推薦物入圍名次個數縱軸表平均精確率參數使用到m2btop(人推薦物入圍名次門檻)和b2btop(物推薦物入圍名次門檻),其精
16、確率介於2.5%7.9%之間24橫軸表人推薦物入圍名次個數縱軸表物推薦物入圍名次個數把人推薦物中間部分改成Mahout物推薦物方法,發現其精確率介於2.1%4.4%之間,不如內嵌兩層關聯式推薦法25橫軸表人推薦物入圍名次個數縱軸表物推薦物入圍名次個數計算分類號距離,找出最相近的來做推薦排名。其精確率結果介於2.6%8.1%間,整體而言比未結合分類號稍佳26橫軸表人推薦物入圍名次個數縱軸表物推薦物入圍名次個數兩層關聯式物推薦物方法會把給定物品本身也加入推薦,所以測試把本身排除的推薦結果,發現其精確率介於2.2%6.9%之間,不如包含本身優秀,顯示圖書借閱行為中,重複借閱的可能性高,所以最好推薦包含本身27橫軸表人推薦物入圍名次個數縱軸表物推薦物入圍名次個數28橫軸表人推薦物入圍名次個數縱軸表平均精確率29橫軸表人推薦物入圍名次個數縱軸表平均精確率+為了增加借閱者找書效率,本文提出兩層關聯式物推薦物方法,適用於借閱者身份開放與否之場合+兩層關聯式物推薦物方法優於Mahout三種方法,高出5%以上+兩層關聯式物推薦物方法在結合分類號時效果更好,可提升3%+利用兩層關聯式物推薦物方法推薦時宜包含給定物品本身,否則表現下降達14%+未來本推薦系統將做成網站服務(web service),內嵌在圖書查詢系統網頁上30謝謝大家31