310 likes | 420 Views
圖書館推薦系統建置 - 以淡江圖書館資料為例. 指導教授:魏世杰 研究生:陳慶宇. 緒論 文獻探討 研究方法 實驗及評估 結論和未來目標. 緒論 : 研究動機. 圖書館擁有大量資料 搜尋模式單一,只能使用關鍵詞 若遇 書名用詞或語言不同 ,搜尋結果可能遺漏使用者所需 使用推薦系統改善 [13]. 緒論: 推薦系統. 常用技術 [7] 有: 協同過濾 (Collabrative Filtering) : 社群力量 內容為本 (Content-based) : 文字比對 知識為本 (Knowledge-based) :屬性篩選. 緒論: 本文推薦方法.
E N D
圖書館推薦系統建置-以淡江圖書館資料為例 指導教授:魏世杰 研究生:陳慶宇
緒論 • 文獻探討 • 研究方法 • 實驗及評估 • 結論和未來目標
緒論:研究動機 • 圖書館擁有大量資料 • 搜尋模式單一,只能使用關鍵詞 • 若遇書名用詞或語言不同,搜尋結果可能遺漏使用者所需 • 使用推薦系統改善[13]
緒論:推薦系統 常用技術[7]有: • 協同過濾(Collabrative Filtering):社群力量 • 內容為本(Content-based):文字比對 • 知識為本(Knowledge-based):屬性篩選
緒論:本文推薦方法 • 以淡江圖書借閱紀錄及分類號為協同及內容推薦基礎 • 考量個資問題 • 當無法取得借閱者身份 • 提出物推薦物方法 • 當可取得借閱者身份 • 提出物推薦物內嵌在人推薦物方法下之做法 • 結果與Mahout協同推薦法[4]互相比較
文獻探討:推薦系統[7] • 協同推薦(Collabrative Filtering) • 用戶為本(User-based) • 物品為本(Item-based) • 模型為本(Model-based) • 內容為本(Content-based) • 知識為本(Knowledge-based)
文獻探討:AmaZOn購物網站 • 採物品為本推薦,觀察購物車已有商品進行推薦 • 推薦過程依賴事先建好的相似物品表 • 相似物品表建立演算法如下[2]: //計算型錄中每樣物品I1和其餘物品I2相似度 For each item I1 in product catalog //分別統計所有物品和I1同時購買之次數 For each customer C who purchased I1 For each item I2 purchased by customer C Record that a customer purchased I1 and I2 //利用和I1同時購買之次數高低計算所有物品和I1相似度 For each item I2 Compute the similarity between I1 and I2
文獻探討:圖書分類法 • 杜威十進圖書分類法[14] • 美國國會圖書館圖書分類法[15] • 例如:「GV943.49 .B5 1998」 • 中國圖書分類法[11] • 例如:「 857.7 /8326 」
文獻探討:Mahout • Mahout [4]為一JAVA寫成具有運算可分散能力(scalable)的機器學習套件,能和Apache Hadoop 分散式架構相結合,有效使用分散式系統來實現高性能計算。 • 提供協同推薦、分類和分群演算法 • 協同推薦包含用戶為本、物品為本和斜率1推薦法
文獻探討:Mahout用戶為本推薦法(User-based) GenericUserBasedRecommender類別[4] //計算用戶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 i compute a similarity s between u and v incorporate v’s preference for i, weighted by s, into running average return the top items, ranked by weighted average
文獻探討:Mahout物品為本推薦法(Item-based) GenericItemBasedRecommender類別[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 for compute a similarity s between i and j add u’s preference for j, weighted by s, to running average return the top items, ranked by weighted average
文獻探討: Mahout斜率1推薦法(Slope-one) SlopeOneRecommender類別[4] //計算用戶u尚未評價過的所有物品j之可能評價,回傳前面名次物品 for every item i the user u expresses no preference for //計算用戶u對其餘物品j之評價,依照i,j平均喜好差d,結合到u對i之評價 for every item j that user u expresses a preference for find the average preference difference between j and i add this diff to u’s preference value for j add this to a running average return the top items, ranked by these averages
研究方法:問題定義 • 不可取得借閱者身份時 • 給定書代碼bid,推薦書本個數n,輸出是一群和bid相關的書集合bid_set={bid1,bid2,...,bidn}。目標是找出一般使用者在借過bid之後將來最可能借的書集合 • 可取得借閱者身份時 • 給定用戶代碼uid,推薦書本個數n,輸出是一群和uid相關的書集合bid_set={bid1,bid2,...,bidn}。目標是找出該使用者將來最可能借的書集合
研究方法:兩層關聯式物推薦物方法 第一層是從給定的書bid,找到同樣有借過此書的使用者u,第二層是從使用者u找出過去所有借過的書b,最後將所有書集合做成聯集bid_mset,回傳重複次數最多的前n名集合bid_set,當作推薦 for every user u who has borrowed book bid for every book b that user u has borrowed add book b into multiset bid_mset convert multiset bid_mset into set book_set sort book_set by the occurrence count of each bid in decreasing order bid_set = top n of sorted book_set return bid_set
研究方法:結合分類號的兩層關聯式物推薦物方法研究方法:結合分類號的兩層關聯式物推薦物方法 • 當聯集後的書集合bid_mset發生有書出現次數相同情形時,會造成許多書排名相同無法區別的缺點 • 引入分類號,計算兩書分類號的距離,讓比較靠近給定bid的圖書排名在前做仲裁 • 所有書分類號依字典字串順序由小排到大,給予排序編號1到m,m為總書數 • 任一本書bid的排序編號表示為rank(bid) • 定義x及y兩書的距離為dist(x,y)=|rank(x)-rank(y)| • 出現次數相同的兩本書bid1、bid2,將依據dist(bid1,bid)及dist(bid2,bid)兩距離做仲裁,距離短者排名在前
研究方法:人推薦物方法 當可以取得借閱者身分時,可以利用借閱者User過去借過的書籍bid?,再利用原來物推薦物方法,找出相關書籍集合bid?_bidset。最後將這些集合聯集起來,再依書籍出現次數多寡排序,若遇次數相同時再利用分類號方法做仲裁,產生最後推薦集合bidmset
實驗及評估:資料來源 • 淡江大學圖書館101年度整年份(2011.8.1~2012.7.31)的920172筆流通紀錄 • 每筆紀錄有如下欄位: • TRANSACTION_DATE(借閱日期) • PATRON_ID(借閱者ID) • BIB_ID(書籍ID) • CALL_NUMBER(分類號) • TXN_TYPE(借閱情況) • ckin(還入)、ckout(借出)、renewal(續借) • 本文只篩選留下373834筆借出記錄做為資料集 • 借閱者18097人 • 圖書(含CD)103306冊
實驗及評估:前處理 為方便測試,本文將所有借出紀錄依不同月份時間點做分界線,分界線之前當訓練集,之後當測試集,共切割出11組訓練和測試集
實驗及評估:實驗步驟 • 假設可取得借閱者身份,故以人推薦物模式進行評估 • 對Mahout本身已有三種人推薦物方法進行評估 • 針對人推薦物模式評估不同內嵌物推薦物方法的好壞 • m2btop(人推薦物入圍名次門檻)參數範圍介於1~10和10~100(間隔10) • b2btop(物推薦物入圍名次門檻)參數範圍介於1~10和10~100(間隔10) • 因為屬布林資料,故Mahout用戶為本和物品為本皆使用LogLikelihoodSimilarity相似度方法 • 每組測試集計算平均精確率時皆以訓練測試集交集人數(介於1676~10424)當除數,再以平均精確率進行比較
實驗及評估:Mahout斜率1方法 (SlopeOneRecommender) 對資料集(M1~M11)進行評估,結果分別是m2btop介於1~10和m2btop介於20~100間隔10。其精確率表現偏低,介於0.05%~0.06% 橫軸表 人推薦物入圍名次個數
實驗及評估:Mahout用戶為本方法 (GenericUserBasedRecommender+ LogLikelihoodSimilarity) 推薦結果,其精確率2%為三種Mahout方法中最好的。其中近鄰數量本文只固定取10來使用 橫軸表 人推薦物入圍名次個數
實驗及評估:Mahout物品為本方法 (GenericItemBasedRecommender+ LogLikelihoodSimilarity) 推薦結果,其精確率介於0.7%~1%,在斜率1和用戶為本之間 橫軸表 人推薦物入圍名次個數
實驗及評估:Mahout三種推薦方法精確率比較圖 橫軸表 人推薦物入圍名次個數 縱軸表 平均精確率
實驗及評估:兩層關聯式物推薦物方法未結合分類號實驗及評估:兩層關聯式物推薦物方法未結合分類號 參數使用到m2btop(人推薦物入圍名次門檻)和b2btop(物推薦物入圍名次門檻),其精確率介於2.5%~7.9%之間 橫軸表 人推薦物入圍名次個數 縱軸表 物推薦物入圍名次個數
實驗及評估:Mahout物推薦物方法 把人推薦物中間部分改成Mahout物推薦物方法,發現其精確率介於2.1%~4.4%之間,不如內嵌兩層關聯式推薦法 橫軸表 人推薦物入圍名次個數 縱軸表 物推薦物入圍名次個數
實驗及評估:兩層關聯式物推薦物方法結合分類號進行推薦實驗及評估:兩層關聯式物推薦物方法結合分類號進行推薦 計算分類號距離,找出最相近的來做推薦排名。其精確率結果介於2.6%~8.1%間,整體而言比未結合分類號稍佳 橫軸表 人推薦物入圍名次個數 縱軸表 物推薦物入圍名次個數
實驗及評估:使用不含本身兩層關聯式物推薦物結合分類號方法實驗及評估:使用不含本身兩層關聯式物推薦物結合分類號方法 兩層關聯式物推薦物方法會把給定物品本身也加入推薦,所以測試把本身排除的推薦結果,發現其精確率介於2.2%~6.9%之間,不如包含本身優秀,顯示圖書借閱行為中,重複借閱的可能性高,所以最好推薦包含本身 橫軸表 人推薦物入圍名次個數 縱軸表 物推薦物入圍名次個數
實驗及評估:本文幾種推薦方法精確率比較圖 橫軸表 人推薦物入圍名次個數 縱軸表 平均精確率
實驗及評估:七種推薦法精確率比較圖 橫軸表 人推薦物入圍名次個數 縱軸表 平均精確率
結論和未來目標 • 為了增加借閱者找書效率,本文提出兩層關聯式物推薦物方法,適用於借閱者身份開放與否之場合 • 兩層關聯式物推薦物方法優於Mahout三種方法,高出5%以上 • 兩層關聯式物推薦物方法在結合分類號時效果更好,可提升3% • 利用兩層關聯式物推薦物方法推薦時宜包含給定物品本身,否則表現下降達14% • 未來本推薦系統將做成網站服務(web service),內嵌在圖書查詢系統網頁上
END 謝謝大家