• 沒有找到結果。

讀者興趣向量計算公式

第六章 結論與未來研究方向

方程式 9 讀者興趣向量計算公式

(within

) (within ) (within

) (within ) (within

) (within ) reader books

第三節 結合協力式過濾和內容導向的推薦方法

利用第一節提到的協力式過濾方法,每位讀者可以得到一份推薦清單,然而因為這 份清單是參考同好的借閱歷史所得到的,所以不一定都符合讀者的興趣。對第二節的內 容導向過濾推薦方法而言,雖然有辦法幫每個讀者計算他的興趣與書籍間的符合度,但 是如果要把所有圖書館館藏都計算過符合度再來做推薦,將相當沒有效率。所以如果能 結合第一節所得到的推薦清單和第二節的書和讀者的表示式,剛好可以互補解決各自的 問題。

首先用協力式過濾的方式得到讀者的推薦清單和每一件館藏的推薦度,然後再用內 容導向過濾的方法計算這份清單內所包含的館藏和讀者間的符合度。結合協力式過濾所 得到的推薦度 Rec 和內容導向過濾得到的符合度 Like,我們可以得到新的推薦度 New_Rec,其計算公式如下:

) , ( )

1 ( ) , ( )

,

(j i Rec j i Like j i

New_Rec =β× + −β ×

方程式 11 新的推薦分數計算公式

其中 j 代表某一讀者,i 代表某一館藏, β 為可調整的參數,其值介於 0-1 之間,

代表要取 Rec 和 Like 的權重,可以視需要增減。如果 β 的值取 0.5,代表協力式過濾和 內容導向過濾的影響各半。

得到新的推薦分數後,再把從協力式過濾得到的推薦清單,依照新的推薦分數排 序,最後把重新排序過的結果推薦給讀者,完成整個推薦流程。

第四章 系統實作

在這一章中,會介紹本論文提出的圖書館個人化館藏推薦系統於交通大學浩然圖書 館中實作的細節,並說明系統運作的流程。

第一節為圖書館個人化館藏推薦系統的整體系統概述。第二節裡說明資料的來源和 一些必要的資料前置處理,使其成為符合系統需要的資料型態。第三節為建立內容導向 過濾需要的系統模型和內部物件屬性表示式的步驟。第四節介紹實際上產生推薦清單的 流程。第五節中展示了推薦系統於交通大學浩然圖書館 myLibrary 上呈現的形式。

第一節 系統架構

圖 11 為圖書館個人化館藏推薦系統的架構圖,主要分成關聯規則探勘 (Association Mining)、協力式過濾推薦 (Collaborative Recommend) 和內容導向過濾推薦 (Content- Based Recommend) 這三個部分:

u 關聯規則探勘:這個部分主要將借閱歷史資料庫依照需求先經過前置處理以產 生適合的交易集,再分別經過乏析式資料探勘和 H-mine 產生讀者與讀者間的 關聯規則和書與書間的關聯規則,以供之後協力式過濾推薦和內容導向過濾之 用。

u 協力式過濾推薦:這部分依照讀者與讀者間的關聯規則從借閱歷史資料庫中找 出同好間推薦適合的館藏推薦清單。

u 內容導向過濾推薦:這部分包含建立書籍的屬性向量表示式資料庫和讀者的個 人興趣向量表示式 (Profile) 資料庫,並依照讀者的個人興趣將之前從協力式 過濾推薦得到的館藏推薦清單重新排序,最後產生具有個人化的館藏推薦清 單。

圖 11 圖書館個人化館藏推薦系統架構圖

Borrowing History Database

Data Preprocessing

Transaction Set of Readers Transaction

Set of Books

H-mine Fuzzy Data Mining Reader-to-Reader

Correlation Book-to-Book

Correlation

Book

Taxonomy Build Books’

Representation

Collaborative Filtering

Books’ Representation Database

Readers’ Profile Database Build Readers’

Representation Readers’

Interests

Recommendations List

Content-Based Filtering

Personal Recommendations

List Content-Based

Recommend

Collaborative Recommend Association

Mining

在圖 11 中有陰影部分的圖示代表其為離線(Offline)處理程序,例如關聯規則探勘中 探勘讀者間和書籍間的關聯規則及內容導向過濾推薦中建立書籍的屬性向量表示式,這 些因為都需要大量時間和空間運算,所以皆採取離線處理的方式,在系統上線前先準備 好。而系統中其他部分則皆為線上作業,例如得到讀者的興趣類別以建立讀者的個人興 趣向量表示式和產生館藏推薦清單等,都是直接在網頁上和讀者互動。

第二節 前置處理

本系統目前實作所採用的資料來源是國立交通大學浩然圖書館 2001 年 5 月到 2003 年 4 月這兩年間的讀者借閱歷史檔,每一筆資料代表一個讀者借閱一本書的記錄。在 2001 年 5 月到 2003 年 4 月這段期間中有 643,557 筆借閱資料,7,682 個讀者曾借閱過館 藏 。 在 關 聯 規 則 探 勘 前 , 必 須 先 將 此 借 閱 歷 史 檔 經 過 資 料 前 置 處 理 (Data Preprocessing),以分別產生協力式過濾和內容導向過濾所需的交易集。

協力式過濾需要的交易集是以一個類別為一筆交易,在本論文中是以中國圖書分類 法的類別為分類基準,每本書所在的類別以其索書號上的分類號為準。交易中的每一個 項目代表一位曾借閱過該類別書籍的讀者和此讀者借閱過該類別書的次數。

目前我們僅做總類 (General) 和語文類 (Language and Literature) 書籍的推薦,經 過前置處理過後產生的交易集中有 836 筆交易。圖 12 是部分的交易內容,其中每一行 為一筆交易,交易中的項目間以符號 “,” 隔開,每個項目在符號 “:” 之前為項目名稱(讀 者編號),之後為該項目出現的次數(讀者於此類別借閱過的館藏數量)。

內容導向過濾需要的交易集是以一個讀者在某段時間內的借閱書籍為一筆交易,在 實作上取某一讀者在 120 天內借閱過的書籍當做一筆交易。因為內容導向過濾需要對分 類樹的每一層分類作相關規則探勘,所以每一層都需要自己的交易集。各層的交易集如

圖 13,第一層、第二層和第三層的交易集中的數量分別有 24,079 筆、25,112 筆和 42,060 筆交易。

圖 12 協力式過濾需要的交易集

(a) (b) (c)

圖 13 內容導向過濾需要的交易集

(a) 為第一層的交易集 ;(b) 為第二層的交易集 ;(c) 為第三層的交易集

第三節 找出相關讀者群和建立館藏與讀者的表示法

在產生給讀者的推薦清單前,必須先找出協力式過濾所需要的相關讀者群及內容導 向過濾需要的館藏與讀者的表示法。

相關讀者群是用乏析式資料探勘來尋找,而在實作乏析式資料探勘時則參考了[3]

提出以先序樹實作 Apriori 的程式,加以改寫成可處理量化資料的乏析式資料探勘。當 最小支持度為 0.7 時,可? 將近三千名讀者找到所屬的相關讀者群,部份結果節錄如圖 14。在圖 14 中每行代表一個相關讀者群,裡面的項目代表讀者,在同一讀者群中的讀 者會被視為有相同興趣,在每一行最後在括號 “()” 中間的數字代表這個讀者群的支持 度。

圖 14 相關讀者群的頻繁項目集

在內容導向過濾中也需要用關聯規則探勘找出分類樹中各層的關聯規則,在此用的 相關規則探勘演算法是 H- mine。分別對每一層的交易集執行一次 H-mine,在各層應不 同的資料數量分別採取不同的最小支持度 (Min. Support)、最小確信值 (Min. Confidence) 和找出來的關聯規則,如表 20 所列。各階層的關聯規則格式和其確信值如表 21 所列 舉。

階層 最小支持度 (Min. Support)

最小確信值 (Min. Confidence)

關聯規則數量 (Rules Number)

第一層 0.1 0.8 18

0.823094 0.826161 0.805466

0.769517 0.758092 0.80084

… 0.818182 0.824561

為分類樹第三層中共有 1000 個分類,而這 1000 個分類各有各自的表示式,所以整個系 統共有 1000 個不同的表示式來表示所有圖書館的館藏。圖 15 是分類 312 下館藏的屬性 向量分布圖,其中圈起來的部份為類別 312 所在的地方,因為館藏屬於分類 312,所以 其值為 1。

圖 15 類別 312 的屬性向量表示式

把書的表示式 Booki建好後,根據 3.2 節中的方程式 9,可以利用讀者的借閱歷史檔 來產生讀者本身的興趣表示式 Readerj。但是在這裡除了利用借閱歷史檔來產生讀者的表 示式外,讀者還可以藉由調整自己的興趣來改變其興趣表示式。系統中設計了一個介面 讓讀者選擇自己真正喜歡的館藏類別,如圖 19。但因為一般讀者對中國圖書分類法不 是很熟悉,所以系統只提供第一層和第二層涵蓋範圍比較大的分類給讀者選擇,而且在 每一分類名稱之後也加注讀者在這一類中所借閱過的書數。如果讀者選擇了他有興趣的 類別,系統便會在原本讀者的表示式 Readerj 中對這些讀者選定的類別增加一定比例的 權重,而且這增加的比例會因為分類在分類樹上的層數而不同。如果讀者是選擇層數比 較高,範圍較廣泛 (General) 的分類,則增加的權重比例較低,如果是層數比較低,範

圍較小 (Specific) 的分類,則增加的權重比例較高。其理由在於若讀者能指定比較底 reader by chosen

class reader by chosen

class Reader'

jk

第四節 產生推薦清單

前述產生相同興趣讀者群和館藏與讀者的表示式都是離線 (Offline) 作業,在系統 作業之前就必須準備好,其主因為關聯規則探勘的工作通常需要花費冗長的時間。之後 產生推薦清單的工作就是直接在線上 (Online) 作業。

產生推薦清單的工作主要分成如下幾個步驟:

1. 找出跟讀者具有相同興趣的同好

首先從先前以乏析式資料探勘所得之相同興趣讀者群中,找出包含目標讀 者的頻繁項目集,在這些頻繁項目集中的其他讀者就是和目標讀者具有相同借 閱興趣的同好群。以表 22 為例,若想找出讀者 3 的同好,則必須先找出包含讀 者 3 的頻繁項目集,將這些頻繁項目集聯集,則可以得到讀者 3 的同好群 {1, 2, 5, 7, 8, 9} = ({1, 2, 3, 5}∪{2, 3, 8, 9}∪{3, 7, 9}∪{1, 3, 7, 8}∪{2, 3, 7, 9})-{3}。

# 頻繁項目集

S001 {1, 2, 3, 5}

S002 {2, 3, 8, 9}

S003 {3, 7, 8}

S004 {1, 3, 7, 8}

S005 {2, 3, 7, 9}

表 22 包含讀者 3 的頻繁項目集

2. 找出同好的借閱歷史

找出目標讀者的同好群之後,開始檢索這些同好的借閱歷史檔。假設讀者 3 和其同好群{1, 2, 5, 7, 8, 9}曾借閱過的書如表 23,則從表 23 中可以找出讀者 3

的同好群借過但是讀者 3 沒借閱過的書籍,並且可以算出每本書的推薦度。協 力式過濾推薦度的算法為同好借閱次數除以同好數,參考方程式 6,如書 G 曾 被四個同好借過,而讀者 3 的同好共有六人,所以書 G 的推薦程度為 4/6=0.66。

表 24 即為讀者 3 所得到的推薦書目和每本書的推薦度,表中的書目以推薦度排 序。

讀者 借閱書籍

1 A, B, C, E, G, H, I 2 A, B, D, G

3 A, B, E, H, J 5 B, E, I, J 7 B, C, D, F, G, I 8 A, D, E, H 9 C, F, G, H, J

表 23 讀者借閱歷史

推薦書目 同好借閱次數 推薦度 G 4 4/6 = 0.66 C 3 3/6 = 0.50 D 3 3/6 = 0.50 I 3 3/6 = 0.50 F 2 2/6 = 0.33

表 24 讀者 3 在協力式過濾推薦裡得到的推薦數目

3. 計算推薦清單與讀者興趣的符合度

因為同好的推薦清單並不一定完全符合讀者的興趣,所以必須修正推薦清

因為同好的推薦清單並不一定完全符合讀者的興趣,所以必須修正推薦清