對社交標籤系統提出有效率的 Top-k 近似查詢處理方法之研究
79
0
0
全文
(2) 摘要 對社交標籤系統提出有效率的 Top-k 近似查詢處理方法 之研究 施柏先. 本論文研究目的為針對社交標籤網站提供一個有效率的標籤集近似查詢處理 系統,我們使用一個多階層的標籤集索引結構來對系統中資料物件的標籤集建立 索引,此索引結構內記錄的資訊能夠估算一群資料物件與使用者所給的查詢標籤 集合距離的上限及下限值,能夠篩除掉多個和查詢標籤集距離較大的標籤集,使 查詢更有效率。本論文根據此索引結構設計了傑卡德距離與重疊距離兩個標籤集 距離的計算方法,並提出考量語義的修正計算方法及對應的距離上下限值估算方 法,實驗評估結果可顯示這些距離計算方法對近似查詢結果的有效性。本論文亦 針對此索引結構提出一個有效率的 Top-k 近似查詢演算法,使用者僅需設定資料 結果筆數 ( k ),可找出標籤集和給定查詢標籤集合最相似的前 k 筆資料物件。實 驗結果顯示本研究提出的 Top-k 搜尋處理方法和基本方法比較,在多數情況下可 有效提昇處理效率。. 關鍵字:社交標籤系統、近似距離公式評估、Top-k 近似查詢處理方法.
(3) Abstract The Efficient Top-k Similar Processing Method for Similar Search on Social Tagging System By Po-Hsien Shih This thesis mainly aims to provide an efficient similar search system for tag sets on the social tagging system. We use a multi-level index structure to construct an index on the tag sets of the objects. We can estimate the upper/lower bound of the distance value between a given query tag set and the tag sets of a group of objects according to the information maintained in the index structure, which can be used to improve the efficiency of searching by applying the pruning strategies. According to the property of this index structure, we design the Jaccard distance and Overlap distance measure function for evaluating the similarity distance betwen two tag sets. Then the modified distance measure functions and the upper/lower bound estimating methods corresponding to the specific distance measure functions are proposed. The experimental results show that the effectiveness on similarity searches of the proposed distance measure functions. We also proposes an efficient top-k similar search algorithm based on the index structure. Users only need to give the number of required search results, k, the system could find the top-k most similar objects with the query tag set. The experimental results show that, in most test cases, the proposed algorithm performs better in efficiency than the baseline method. Keywords: Social tagging system, Distance measure evaluation, Top-k similar search algorithm.
(4) 致謝 本論文得以順利完成,首要感謝的就是我的指導教授-柯佳伶老師。在我研 究所的求學過程中,在專業學術領域上老師不厭其煩細心的指導,並對於我前往 瑞典烏普薩拉大學交換學生也給予支持。其中在我人生感到迷惘困惑時,老師給 予的關懷、建議讓我倍感溫暖,能夠由老師指導真的是非常幸運。同時也感謝吳 宜鴻教授和徐嘉連教授,在百忙之中抽空擔任口試委員,並給予許多寶貴的建議 與指教,使本論文內容得以完備。 感謝毓雯學姊、聿成學長、Shongwe 學姊、倚禎學姊和馨蘭學姊的指導照 顧。謝謝光庭、昇宏在我們共同修業時,任何方面所給予的指教與協助,兩位都 是非常優秀的同學,能夠與你們相識是我的榮幸。與奕智、俊嘉、爾剛一同為了 論文打拚的革命情感是最難以抹滅的,很高興在最艱困的時刻我們能夠互相扶持 走過,祝福我們都能夠朝自己的夢想邁進。謝謝實驗室的學弟妹楨喻、舜宸、懿 萱、張崴平日對生活瑣事、以及口試實驗的協助,也祝福你們未來一年順利。同 時也感謝系排學弟妹方瑋、邵淮、盧緯對實驗的協助,很高興認識你們這群溫馨 又有趣的人。另外謝謝友人依婷對於我的耐心支持與犧牲,在你身上我學習到太 多太多,由衷希望你未來的日子能夠過的充實美滿、開心愉快且沒有遺憾。 最後要感謝的是我家人對我一直以來的支持與信賴,求學過程中父母提供我 不虞匱乏的生活,除了讓我能夠全心投入在學業之外,實習、工作、交換學生等 抉擇,亦給予支持與肯定。 在瑞典 Kiruna 雪地仰望星空的畫面至今仍深映在我腦海,眾生若繁星點點, 眾多流星劃過的瞬間,唯有特別的剎那才會銘記於心。就讀師大期間有著太多的 回憶,不論酸甜苦辣、喜怒哀樂,再一次的感謝這七年來參與我這部分生命的大 家,謝謝你們。 施柏先. 謹識於. 國立台灣師範大學資訊工程研究所 中華民國 102 年 8 月.
(5) 目錄 附表目錄 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. i. 附圖目錄 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. ii. 第一章. 緒論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1. 1.1. 研究動機 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1. 1.2. 研究目的與範圍限制 . . . . . . . . . . . . . . . . . . . . . . . . . .. 2. 1.3. 論文方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 4. 1.4. 論文架構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5. 第二章. 相關文獻探討 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6. 2.1. 社交標籤系統概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 6. 2.2. 標籤資料物件查詢方式 . . . . . . . . . . . . . . . . . . . . . . . . .. 7. 2.2.1. 包含查詢 (Contain Search) . . . . . . . . . . . . . . . . . . .. 7. 2.2.2. 近似查詢 (Similarity Search) . . . . . . . . . . . . . . . . . .. 8. 2.2.3. 範例查詢 (Query-by-Example Search) . . . . . . . . . . . . .. 8. 標籤系統資料結構 . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 10. 2.3.1. 反向索引 (inverted index) . . . . . . . . . . . . . . . . . . . .. 10. 2.3.2. 以分類架構建立索引結構 . . . . . . . . . . . . . . . . . . .. 11. 2.3.3. 多階層群集之索引結構 . . . . . . . . . . . . . . . . . . . . .. 11. 第三章. 系統架構與資料前處理 . . . . . . . . . . . . . . . . . . . . . . . . . . .. 13. 3.1. 系統架構與流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 13. 3.2. 資料前處理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 15. 3.3. 標籤物件集索引結構 . . . . . . . . . . . . . . . . . . . . . . . . . .. 16. 索引結構介紹 . . . . . . . . . . . . . . . . . . . . . . . . . .. 16. 2.3. 3.3.1. 4.
(6) 建立索引結構群集門檻值之定義 . . . . . . . . . . . . . . .. 18. 第四章. 索引結構下之距離評估方法 . . . . . . . . . . . . . . . . . . . . . . . .. 20. 4.1. 多階層索引結構之查詢方法 . . . . . . . . . . . . . . . . . . . . . .. 20. 4.1.1. 雙層邊界近似查詢方法 . . . . . . . . . . . . . . . . . . . . .. 20. 4.1.2. 修正漢明距離式 (Hamming Distance Measure) . . . . . . . .. 23. 4.1.3. 查詢範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 26. 4.1.4. 標籤相關程度值計算方式 . . . . . . . . . . . . . . . . . . .. 28. 傑卡德距離 (Jaccard Distance Measure) . . . . . . . . . . . . . . . . .. 29. 4.2.1. 修正傑卡德距離定義 . . . . . . . . . . . . . . . . . . . . . .. 29. 4.2.2. 採用傑卡德距離在兩層機制搜尋邊界估算方法推導 . . . . .. 30. 重疊距離 (Overlap Distance) . . . . . . . . . . . . . . . . . . . . . . .. 33. 4.3.1. 修正重疊距離計算方式之定義 . . . . . . . . . . . . . . . . .. 33. 4.3.2. 採用修正重疊距離在兩層機制搜尋邊界算法推導 . . . . . .. 34. 第五章. Top-k 近似查詢處理方法 . . . . . . . . . . . . . . . . . . . . . . . . . .. 37. 5.1. 基本處理概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 37. 5.2. 流程步驟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 44. 第六章. 實驗評估. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 51. 6.1. 實驗資料來源及環境設定 . . . . . . . . . . . . . . . . . . . . . . . .. 51. 6.2. 評估不同距離估算方式對查詢結果的效能 . . . . . . . . . . . . . .. 52. 6.2.1. 測試資料說明 . . . . . . . . . . . . . . . . . . . . . . . . . .. 52. 6.2.2. 實驗評估方法 . . . . . . . . . . . . . . . . . . . . . . . . . .. 52. 6.2.3. 實驗結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 56. 評估 Top-k 近似查詢處理方法之效率 . . . . . . . . . . . . . . . . .. 59. 測試資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 60. 3.3.2. 4.2. 4.3. 6.3. 6.3.1. 5.
(7) 6.3.2. 實驗評估方法 . . . . . . . . . . . . . . . . . . . . . . . . . .. 61. 6.3.3. 實驗結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 61. 第七章. 結論與未來展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 67. 7.1. 結論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 67. 7.2. 未來展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 68. 參考文獻 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 69.
(8) 附表目錄 3.1. 標籤資源範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 13. 3.2. 相關名詞符號定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 19. 4.1. 群集邊界距離檢查結果之對應處理 . . . . . . . . . . . . . . . . . .. 22. 4.2. 批次集邊界距離檢查結果之對應處理 . . . . . . . . . . . . . . . . .. 23. 4.3. 標籤物件範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 24. 5.1. 距離估算值之符號定義 . . . . . . . . . . . . . . . . . . . . . . . . .. 38. 6.1. 實驗所用之查詢標籤集合內容 . . . . . . . . . . . . . . . . . . . . .. 53. 6.2. Top-30 查詢結果各項距離公式之 NDCG 值 . . . . . . . . . . . . . .. 56. 6.3. 使用模擬資料不同距離評估方法之查詢執行時間關係圖 (單位:ms) .. 63. 6.4. 使用實際資料不同距離評估方法之查詢執行時間關係圖 (單位:s) . .. 63. 6.5. 查詢標籤集 Td 在實際資料庫中 Top-k 近似查詢方法結果資料筆數 .. 65. i.
(9) 附圖目錄 3.1. 系統流程圖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 14. 3.2. 多階層索引結構 [7] . . . . . . . . . . . . . . . . . . . . . . . . . . .. 17. 4.1. 多階層索引結構 [7] . . . . . . . . . . . . . . . . . . . . . . . . . . .. 26. 5.1. 群集(或批次集)和查詢標籤集的距離區間線段圖 . . . . . . . . .. 38. 5.2. 查詢距離門檻值處理示意圖 . . . . . . . . . . . . . . . . . . . . . .. 39. 5.3. 候選串列排序示意圖 . . . . . . . . . . . . . . . . . . . . . . . . . .. 40. 5.4. 門檻值設定示意圖 . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 42. 5.5. 範例索引結構根節點群集示意圖 . . . . . . . . . . . . . . . . . . . .. 47. 5.6. 範例索引結構項目線段示意圖 . . . . . . . . . . . . . . . . . . . . .. 48. 5.7. 範例索引結構項目線段示意圖 . . . . . . . . . . . . . . . . . . . . .. 49. 6.1. 查詢評分介面範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 54. 6.2. Top-30 查詢結果 NDCG 值之長條圖 . . . . . . . . . . . . . . . . . .. 57. 6.3. 使用模擬資料不同標籤種類個數與查詢執行時間關係圖 . . . . . .. 62. 6.4. 使用模擬資料在不同 k 值、查詢標籤集大小與查詢執行時間關係圖. 64. 6.5. 使用實際資料分別改變 k 值及查詢標籤集大小之查詢執行時間 . .. 66. ii.
(10) 第一章. 1.1. 緒論. 研究動機 Web 2.0 『讓使用者互動、參與、分享』的概念,改變了使用者與網際網路. 互動的方式。不同於從前網路資訊來源皆為服務網頁單向提供,使用者開始可 以由一些社群網站作為平台來發佈、分享自己的文章或是多媒體資訊(如照片、 音樂、相片、部落格、書籤等),使得網路社群相關應用平台 ( 如部落格、維基、 社交標籤網站等) 蓬勃發展,其中有 del.icio.us, Flickr, CiteULike 等平台。這些平 台上所有的資料皆是由使用者上傳分享而來,並可由上傳的人或其他使用者為其 標記上文字標籤 ( Tags ) 來做為描述這些資源的方式,此種標註標籤的形態被稱 為協同式標籤 ( Collaborative tagging ) 或是社交標籤 ( Social tagging )。對於一個 網路上的資源物件,其標籤使用者可以自由使用相關或是有特殊意義的字詞去標 註,由此我們認為標籤本身具備的語意,接近使用者對資源物件所聯想的相關字 詞,故標籤資訊時常被使用者使用來搜尋資料 [4]。近來有許多研究探討如何利 用這些標籤資訊,從資料量龐大的社群網站資料有效率地找到使用者認為所需相 關資源;與社交標籤相關的研究有索引結構建立 ( Index structure construction) [1] [7] 、查詢推薦 ( Search recommandation) [16] 、查詢標籤擴展 ( Query expansion) [14] 等。 社交標籤網站中的資料物件都具有對應的標籤集合,採用標籤搜尋物件有不 1.
(11) 同的方式,近似查詢為其中一種常用的方法。一般來說,若兩個資料物件擁有相 似的標籤集合,我們會認為這兩個資料物件很可能具有接近的語意,所以藉由給 定一個標籤集合為查詢(本論文通稱為查詢標籤集 ),或是指定一個物件取其對 應的標籤集合為查詢,當計算資料物件和查詢標籤集的相似度後,然後從中取出 對應的標籤集和使用者輸入的查詢標籤集相似度高的物件做為查詢結果。由於現 今網路資料量成長迅速,社交標籤網站擁有龐大的標籤資料集合,因此如何提供 社交標籤系統更有效率的近似查詢方法為值得研究的課題。. 1.2. 研究目的與範圍限制 本論文目的是對社交標籤網站提供一個標籤集近似搜尋系統,所要解決的問. 題包含以下兩部分:. (I) 論文 [7] 曾提出一個多階層式索引結構來儲存標籤資料物件,此索引結構 會將標籤物件集具有的各個標籤集合聚集成一些群集 ( Cluster ) ,並以一 個雙層邊界機制的搜尋方式,由一個群集所記錄的特徵來估算整個群集內 資料之標籤集與使用者所給的查詢標籤集距離的上限值和下限值,判斷 是否整個群集中的標籤和查詢標籤集的距離皆符合給定門檻值,以加速 相似標籤集的搜尋。除了漢明距離,[7] 提出一個修正漢明距離 ( Modified Hamming Distance ) 來對兩物件標籤集合進行相似程度的計算。但該論文並 未探討以這兩個距離計算方法得到的近似搜尋結果,是否能夠符合使用者. 2.
(12) 的搜尋意圖。因此本論文將對計算標籤集間距離之不同算法進行實驗評估, 希望找到近似搜尋效果最佳的距離估算方法。. (II) 論文 [7] 中提供的標籤集近似查詢方法,使用者除了要給定一組查詢標籤 集,還需給定一個距離程度門檻值。如果兩個標籤集合計算得到的距離值 高於此門檻值,表示兩標籤集合意義上不相似;反之如果計算得到的距離 值低於門檻值,則表示兩標籤集合意義上相似,可加入搜尋結果。然而, 對使用者來說相似程度門檻值的設定並不容易,若是門檻值設定過大則回 傳結果數可能會太多,過小則回傳結果數太少。所以本論文對此索引結構 提出一個 Top-k 近似查詢處理方法,使用者只要輸入一個常數 k 值,系統 必須有效率地篩選出與使用者查詢標籤集距離最小的前 k 的標籤資料物件。. 本論文針對具有被使用者標記標籤的資料物件為研究對象,實驗資料蒐集來 源為網路上現有的社交標籤網站。本論文研究重點可分成兩部分:. (I) 探討如何將不同標籤集近似距離估算方法用於此多階層式標籤集索引結構, 進行標籤集合的近似查詢,並評估其近似查詢效果。. (II) 探討如何根據此多階層式標籤集索引結構,提出一個有效率的 Top-k 近似 查詢處理方法。. 3.
(13) 1.3. 論文方法. 本論文方法包含兩個部分:根據 [7] 的多階層式標籤集索引結構,推導不同的距 離估算方法,以及提出有效率的 Top-k 近似查詢處理方法。. (一) 本論文提出了修正傑卡德距離 ( Modified Jaccard Distance ) 及修正重疊距離 ( Modified Overlap Distance ) 來做為標籤集距離評估方式,並根據 [7] 索引 結構標籤集聚落的特徵,推導採用不同距離評估方式時和查詢標籤集合之 距離上下限值的的估算方法,並在實驗中比較各個距離評估方式在近似搜 尋結果上的效果。. (二) 本論文方法在處理 Top-k 近似查詢的過程中,使用一個動態調整的門檻值 δd 來對索引結構內的資料物件進行篩選。系統會將索引結構內的群集根 據它們和查詢標籤集的距離估算下限值由小到大排序,放在候選串列中 ( Candtdate List )。門檻值 δd 根據群集與查詢標籤集的距離估算值動態設定 後,即從和查詢標籤集的距離估算下限值最小的群集開始從中找出和查詢 標籤集距離小於 δd 的物件為查詢結果。若查詢結果的物件個數尚未達到 k 個,會依照候選串列中索引結構項目和查詢標籤集的距離估算下限值來調 整 δd 的值,並繼續對候選串列的項目進行篩選,直到查詢結果中的物件個 數達到 k 。. 4.
(14) 1.4. 論文架構 本論文以下章節內容簡述如下:第二章為相關文獻探討。第三章介紹本論文. 系統的架構及處理流程。第四章說明在多階層索引結構中,採用不同計算標籤集 合近似距離的方法。第五章為本論文所提出之 Top-k 近似查詢處理方法的介紹。 第六章為實驗評估與分析。第七章為本論文的結論與未來展望。. 5.
(15) 第二章. 相關文獻探討. 本章將依序介紹和本論文研究相關的文獻,可分為社交標籤系統概念、標籤 查詢方式以及補助標籤系統搜尋技術的資料結構三個部分。. 2.1. 社交標籤系統概念 一般使用者對於網際網路上的資料物件如影像、書籤、文章等,會希望能夠. 以足夠的資訊去描述表示它,便於日後搜尋或是檢視。論文 [4] 提到,傳統人工 建立的資料常以專家分類法 ( Taxonomy ) [3] 來描述資料物件。專家分類法是由 專家去制定資源分類的項目,使用者可以用這些項目作為資料物件的分類依據, 如同圖書館館員制定圖書館藏書的索引標籤。但隨著資訊的種類越來越多以及資 訊量的快速成長,專家分類的認知可能無法應付不同種類的資訊型態,亦難以代 表多數使用者的認知觀點。對於標籤資料物件來說,其所擁有的標籤皆為一般使 用者所標記,而藉由群眾分類法 ( Folksonomy ) [12] ,能夠讓使用者可以看到分 享資料物件上其他使用者所標示的標籤,能依自身或是群眾集體的觀點想法自由 地去對資料物件做標記標籤的動作,而此行為稱之為協同式標籤 ( Collaborative tagging )。由此可知,以群眾分類法為主的社交標籤系統廣為多數一般使用者使 用,故標籤系統相關的研究也越來越多:如標籤推薦查詢系統 [16]、索引結構的 研究 [5][7][8]、標籤查詢擴展 [14],以及針對協同式標籤環境下標籤語意相似度. 6.
(16) 的評估 [11] 等研究。. 標籤資料物件查詢方式. 2.2. 隨著網路資源數量的上升以及種類的多元,社交標籤網站上存有的網路資源 也日益漸增。為了針對社交標籤的資料物件做查詢功能,開始有不同於傳統關 鍵字搜尋 [9] 的查詢方式被使用,主要是藉由資料物件本身擁有的標籤來幫助查 詢。標籤查詢方式也會因為標籤資料物件所儲存的資料結構而有所不同。在此我 們討論對標籤集合的三種不同的查詢方式:包含查詢、近似查詢以及範例查詢三 種查詢方式。. 2.2.1. 包含查詢 (Contain Search). 舉例來說:今使用者下一個標籤集合做為查詢,只要資料物件的標籤集有包 含查詢集合內的所有文字標籤,系統會回傳其為搜尋結果。藉由包含查詢的特 性,論文 [6] 提出了一個標籤推薦查詢的系統,以面相概念來呈現推薦標籤,系 統根據使用者選定的特定推薦標籤,幫助使用者逐步縮小查詢結果的涵蓋範圍。 此外使用其提出的一個雙層邊界索引結構儲存系統內部的標籤資料集,並提出一 個雙層邊界機制的包含查詢方法來加速對標籤集的查詢處理,同時使用 Jaccard Containment 評估方式提供對標籤集包含查詢的容錯處理。. 7.
(17) 2.2.2. 近似查詢 (Similarity Search). 近似查詢的概念為找出和使用者下的查詢標籤集相似的資料物件。為了評估 查詢標籤集與資料物件是否相似,會使用一個相似程度的評估方法來計算兩者的 相似程度值,經由計算後,我們認為擁有較高相似度程度值的資料物件和使用者 查詢標籤集較為相似,或是使用一個門檻值來界定相似的程度。近似查詢可以被 應用於很多地方,如對交易資料庫中相似的項目分群 [10] 或是重複文件的偵測 [13] 等。論文 [1] 對於動態更新的商品交易資料庫提出一個雙層式的索引結構並 以支援的雙層邊界機制搜尋方法來加速相似的交易資料搜尋,而對交易商品資料 項目則使用漢明距離公式 ( Hamming Distance) 來評估兩筆交易資料項目的相似 度。論文 [7] 針對網路上的標籤資料物件做一個查詢系統,並以標籤資料物件所 擁有的標籤集來做為搜尋的依據。由於資料物件擁有的標籤集內容為眾多網路使 用者所標記,本論文認為標籤之間可能也具有語意關聯,故提出一個具語意關係 的修正漢明距離計算式,做為與查詢標籤集之間的距離評估方法。查詢方法亦使 用一個其提出索引結構所支援的邊界搜尋方法來加速查詢處理效率。. 2.2.3. 範例查詢 (Query-by-Example Search). 範例查詢以數個標籤資料物件的標籤集來做為查詢標籤集合。範例查詢 的 精 神 在 於 找 出 和 查 詢 標 籤 集 相 似 的 資 料 物 件。舉 例 來 說,假 設 原 始 資 料 集的物件有 { "Beijing", "Sydney",... },這些物件有些會被標記下列文字標籤:. 8.
(18) " City ", " Summer Olympic ", " Capital " 等,今有一查詢物件集合為 {"Beijing", "Washington"},預期的輸出結果會是接近有標籤 {"City"}、{"Summer Olympic"} 的資料物件。關於此類方式 [5] 提出會有下列兩種問題:第一,由於標籤為人為 所標記的,難免有些會有遺漏而造成標籤遺失 ( Missing tag ) 的情形,使得系統 在計算上造成使用者查詢意圖的誤判;第二,假使有一個資源物件被標記了很 多不同的標籤,若同樣當做是查詢物件集合的話會在處理上有較多的貢獻,會 導致使用者意圖偏向於這個特別多標籤的資料物件上,造成標籤重要性偏差 ( Popularity bias ) 。故 [5] 提出兩個模型:公平投票模型與機率模型試圖解決這兩 個問題。但標籤漏失的個數事前無法知道漏失多少,只能以假設機率值估算一個 資料物件會漏失其應該有的標籤來進行實驗評估。 上述包含查詢與近似查詢兩種對標籤集合的搜尋方式,皆提出一個資料結構 來儲存系統標籤資料庫內的標籤物件,以加速線上處理的搜尋速度。對於標籤集 合依照系統目的與功能取向而有不同的查詢方式,資料結構本身具備的特性能夠 提出一個特別的搜尋方式來增進查詢效率。[5] 的範例查詢並未著重於索引結構 的建立以及使用與否,此查詢方式也是針對數個標籤物件擁有的標籤組成查詢標 籤集來進行查詢,也許能夠以現有的資料結構來支援此查詢方式。. 9.
(19) 標籤系統資料結構. 2.3. 社交標籤網站、資料庫系統與搜尋引擎針對內部儲存的資訊(如使用者、資 料物件、標籤等)會使用適當的資料結構(如建立索引結構)來加速查詢的效 率。為了快速且效果良好的搜尋功能,社交標籤系統搭配使用合適的資料結構儲 存標籤資料物件為一可行作法。隨著不同的查詢方式,搭配的資料結構亦有所不 同,以下將簡述不同社交標籤索引結構的建立方法。. 2.3.1. 反向索引 (inverted index). 反向索引 [17] 是目前對大規模資料集檢索效率最高的資料結構,被許多資 訊檢索研究廣為使用。其作法為針對系統資料集內所有的標籤,建立每個標籤可 對映到的資料物件列表。雖然此資料結構對於資料物件能夠達到快速的檢索,其 缺點為建立過程過於繁瑣,需要大量的儲存空間。論文 [8] 提出一個為標籤、資 料物件及標記者建立一個三元關係的社交反轉索引結構,藉由預先記錄三者之間 的資訊(如使用者 A 標記了標籤 B 在物件 C 上),使其能特別支援以三者內容資 訊基礎的條件查詢,如搜尋條件為:(1) 擁有標籤 apple 、(2) 在 2010 年上傳、(3) 上傳地點為 Paris 。. 10.
(20) 2.3.2. 以分類架構建立索引結構. 由於標籤與標籤間可能有概念包含的關係,索引結構若能事先儲存標籤彼 此間語意概念包含的關係,就能夠減少在查詢過程中對語意概念所需的計算時 間。論文 [2] 提出一個以分類架構建立的索引結構,其資料結構為一樹狀結構: 每個節點都表示一個標籤,而節點間的父子關係表示上下標籤之間有概念包含 的關係,且對各個標籤儲存對應的標籤物件列表。此結構採用貪婪方法 ( Greedy method ) 或是動態規劃 ( Dynamic programming ) 來預先算好部分節點包含的反向 列表資訊。藉由一個具有標籤概念包含分類的索引結構來加快查詢過程處理語意 計算的效率。. 2.3.3. 多階層群集之索引結構. 論文 [1] 針對交易資料集提出一個單層式邊界機制的兩層索引結構,能夠對 交易資料集進行有效率的近似查詢,找出相似的交易資料內容。論文 [7] 的資料 處理對象為擁有標籤集合的網路資料物件,將 [1] 單階層的結構改為多階層的索 引結構,並針對內部各個層級標籤集合的種類個數控制在一定值內,超過則以均 分的方式,控制各層級標籤集之間的相似品質。在進行近似查詢時能夠依照門檻 值將一定相似程度的物件同時篩除掉,是一個良好的索引結構,故本論文採用 [7] 提出的索引結構作為研究使用,後面章節會詳細介紹此索引結構與其支援的 查詢方法。. 11.
(21) 反向索引結構是最常見且最有效率的索引結構,它使用大量的空間儲存來有 效縮減處理時間。分類架構的建立為離線處理時計算語意概念所包含的資訊,並 技巧性選擇預先計算部分結果,空間使用較傳統反向索引來的少。而 [7] 的多階 層索引結構為利用相似資料物件後聚合的群集,以聚合的標籤聯集與交集的特徵 來支援其特定的查詢方法,其中在相似資料物件聚合過程的相似度計算方式對效 率與資料結構來說,仍是個可以研究的領域。如論文 [6] 修改此索引結構,應用 於一個支援包含查詢的推薦系統,其中作者認為索引結構的層級若達到二層以 上,在查詢上會造成走訪群集的深度過深,令時間成本上升,故採取建立雙階層 的索引結構。索引結構的建立目的是為了能夠讓系統或是使用者取得資料物件的 速率更快,針對不同的系統功能或是不同型態的資料物件,使用適當的索引結構 必定能有效提高效率。. 12.
(22) 第三章. 3.1. 系統架構與資料前處理. 系統架構與流程 本論文將具有標籤資訊的物件稱為標籤物件,例如表 3.1 所示範例,以社交. 標籤網站上的標籤物件形成一個標籤資料庫作為查詢答案來源,實作一個 Top-K 近似查詢處理系統。 表 3.1: 標籤資源範例 物件編號. 標籤集合. [9099643337]. deer scotland. [9100994465]. Bee bumblebee flower macro. [9100941069]. Animal Addiction Japan deer animal. [8950500547]. fulmar bird orkney island. 本系統架構可以分為:資料前處理 ( Data Processing )、索引結構建立 ( Index Structure Construction )、標籤集合距離程度評估 ( Distance Measure Evaluation) 與 Top-K 查詢處理方法 ( Top-K Query Processing ) 等主要處理模組,如圖 3.1 所示。. 13.
(23) 圖 3.1: 系統流程圖. 以下將針對整個系統流程分成離線處理及線上處理二個部分來說明:. 離線處理: 系統先對標籤物件集進行資料前處理,篩除不必要的標籤,再使用 [7] 提出的多階層索引結構對標籤資料集中物件的標籤集建立索引。. 線上處理: 使用者輸入數個標籤字為查詢標籤集並給定一個常數 k 來進行 Top-k 近似查詢。系統根據所建立之多階層索引結構,可採用不同的標籤集距離 程度計算方式。以本論文提出的 Top-k 近似查詢處理方法有效率的找出前 k 個和查詢標籤集相似的資料物件。. 14.
(24) 3.2. 資料前處理 我們對標籤資料庫中各物件所具有的標籤會先進行字詞原形化 ( Stemming ). 及停用詞移除 ( Remove Stop Words ) 等前處理,並以該標籤在物件對應標籤集的 出現次數來作為篩除標籤的依據。 我們使用 Porter 原型處理演算法 ( Porter Stemming Algorithm ) 來進行字詞原 形化,希望能夠藉由還原標籤字的原型詞態,避免計算次數分散的問題;停用 詞移除則是以 MySQL 提供的停用字清單 ( http://dev.mysql.com/doc/refman/5.5/en/ fulltext-stopwords.html ) 來過濾掉不具實際意義的標籤。 停用字移除與字詞原型化雖然能有效使標籤物件集內的標籤品質上升,但是 仍然有些例外標籤會影響系統查詢的效果,故我們設定一個頻率門檻值,先計算 各標籤在標籤資料庫中的出現次數,若標籤出現次數低於此門檻值,則從所有標 籤物件中刪除。. 15.
(25) 標籤物件集索引結構. 3.3. 本論文使用 [7] 提出的多階層索引結構對資料物件的標籤集建立索引,其目 的在於加速搜尋具相似標籤集物件的效率。以下先介紹此索引結構的特性。. 3.3.1. 索引結構介紹. 此索引結構建立的基本概念為,將各標籤資料庫的標籤集合聚集成一些標籤 集群集 ( Tag Cluster ) ,本論文中一個標籤集群集以 C 來表示。經由標籤集合和 標籤集群集的距離計算,將相似的標籤集合聚集成一個群集。此索引結構為一個 樹狀結構圖,群集可以擁有子群集形成多階層的樹狀結構。葉節點群集(沒有子 群集的群集)中的標籤集合分別存在數個批次集 ( Batch ) 中,本論文一個批次集 以 B 來表示,而批次集中的各標籤集合會記錄具有對應到擁有此標籤集合物件 的標號列表。以圖 3.2 為例:C1 為一個根節點群集,C2 、C3 為其子群集,且為 葉節點群集。葉節點群集 C2 中有 B1 、B2 兩個批次集。我們以 O 來表示一個標 籤資料物件,O.tagset 表示 O 所擁有的標籤集合。如圖 3.2 顯示 B3 中有兩個標 籤集合為 { a, d, e } 及 { c, d, e } ,其中 { c, d, e } 可以對應到 O5 、O6 兩個物件, 表示 O5 .tagset 、O6 .tagset 皆為 { c, d, e }。. 16.
(26) 圖 3.2: 多階層索引結構 [7]. 每個群集 C (或批次集 B ) 記錄兩個特徵:C.Co ( 或 B.Bo ) 表示 C ( 或 B ) 中 所有標籤集合的聯集;C.Ci ( 或 B.Bi ) 表示 C ( 或 B ) 中所有標籤集合的交集。 在決定是否可加入一個新的標籤集合 Ti 到群集 C 中時,藉由 Ti 加入 C 後新的 C.Co 和 C.Ci 的差集大小,也就是 | C.Co − C.Ci | 來判斷。此值越大表示群集 C 中所包含的標籤集合之間的相似度越低,越小表示群集 C 中所包含的標籤集合 之間的相似度越高。舉例來說,有一個物件 Oi ,它的標籤集合 Oi .tagset 尚未存 於此索引結構,因此需要將 Oi .tagset 加入其索引結構。從根節點開始檢查,若 將 Oi .tagset 加入根節點 C1 ,系統會計算加入 Oi .tagset 後的 C1 .Ci 與 C1 .Co 之差 集大小是否違反一個設定門檻值 M axd_root ,若符合則加入此群集,違反則不 加入。若同時有多個根節點群集皆可加入 Oi .tagset ,則選擇 | Ck .Co − Ck .Ci | 值 最小的群集 Ck 做為加入 Oi .tagset 的群集,以此來控制每個群集內標籤集合的相 似度。若 Ck 具有子群集,則以相同方式找到適當的子群集節點加入 Oi .tagset ,. 17.
(27) 直到加入葉節點群集的批次集。如果找不到可加入的群集,則會建立一個新的群 集來儲存 Oi .tagset。 每個葉節點群集中包含相同標籤數目的標籤集合,會形成一個批次集。一個 批次集 B 中的標籤集與上層葉節點 C 的 C0 之差集大小為固定,以 dvo 表示。而 一個批次集 B 中的標籤集與上層葉節點 C 的 Ci 之差集大小也為固定,以 dvi 表 示。因此每個批次集會記錄一組和上層葉節點 C 的邊界差集數組 (dvo, dvi) 。以 圖 3.2 來說,B2 中的標籤集合 { a, b, c, d } 、{ b, c, d, e} 和 C2 .Co ( 此例中為 { a, b, c, d, e } ) 以及和 C2 .Ci (此例中為 { b, c, d} ) 的差集大小皆為 1 ,因此 B2 的差 集數組為 ( 1, 1 )。. 3.3.2. 建立索引結構群集門檻值之定義. 系統將標籤資料庫中的物件逐一加入至索引結構的過程中會使用三個門檻 值,來控制索引結構中各階層(如群集或批次集)標籤集合的相似程度。各個門 檻值的名稱及對應意義如下所述:. (I) M axd_root :為控制根節點群集的門檻值。索引結構下所有根節點群集 C 的外邊界 C.Co 和內邊界 C.Ci 之差集大小不能大於此值。M axd_root 值越 大,則根節點群集內標籤集合間的差集大小越大,反之越小。. (II) M axd_leaf :為控制葉節點群集的門檻值。索引結構下所有葉節點群集 C 的外邊界 C.Co 和內邊界 C.Ci 之差集大小不能大於此值。M axd_leaf 值越. 18.
(28) 大,則葉節點群集內的標籤集合間差集大小越大,反之越小。. (III) M axd_batch :為控制批次集的門檻值。索引結構下所有批次集 B 的外邊 界 B.Co 和內邊界 B.Ci 之差集大小不會大於此值。M axd_batch 值越大,則 批次集內的標籤集合間差異越大,反之越小。. 上述定義之名詞符號可整理如表 3.2 所示。 表 3.2: 相關名詞符號定義 符號 C. 定義 一個群集 (cluster). C.Co. 外邊界 (outer border) ,所有 C 包含的標籤集合之聯集. C.Ci. 內邊界 (inner border),所有 C 包含的標籤集合之交集. B. 一個批次集 (Batch). B.Bo. 批次集外邊界,所有 B 底下標籤集合的聯集. B.Bi. 批次集內邊界,所有 B 底下標籤集合的交集. dvo. 批次集 B 和上層的群集 C 各自標籤集合聯集的差集個數. dvi. 批次集 B 和上層的群集 C 各自標籤集合交集的差集個數. Oi. 具有標籤集合的資料物件, i 為物件之編號. Oi .tagset. 資料物件 Oi 的標籤集合. 19.
(29) 第四章. 索引結構下之距離評估方法. 近似查詢必須選定一個計算方法,來評估標籤資料物件與使用者查詢的相似 程度值。本論文採用標籤集間的距離值,作為判斷兩標籤資料物件是否相似。若 計算出來的距離值越高,表示兩物件越不相似;反之計算得到的距離值越小,表 示兩物件越相似,最小距離值為零表示兩個標籤集內容完全相等。本論文使用 [7] 提出的多階層索引結構來儲存資料物件,以此結構來支援近似查詢方法,並 探討在此索引結構上採用不同的距離計算方式對搜尋結果的效能。以下將在 4.1 介紹 [7] 在多階層索引結構中使用的近似查詢處理方法、距離評估方式,以及標 籤間語意相關程度之計算方法,並在 4.2 及 4.3 介紹由本論文根據不同的距離評 估方法,分別提出兩個配合索引結構 [7] 的雙層邊界距離估算方法。. 4.1. 多階層索引結構之查詢方法. 4.1.1. 雙層邊界近似查詢方法. 當使用者輸入一個標籤查詢集合 Tq 以及查詢距離門檻值 δ,目的是要求找 到所有其標籤集合與查詢標籤集的距離評估方法都小於等於門檻值 δ 的物件。[7] 在其索引結構上,採用一種雙層邊界查詢方法來對標籤資料物件進行近似查詢, 此方法能夠估算出一個群集 C (或是一個批次集 B )中各個標籤集和查詢標籤 集間距離的上限值 ( Upper Bound ) 以及下限值 ( Lower Bound ) ,其中上限值與 20.
(30) 下限值的意義分別為 C (或 B )內所包含的標籤物件與 Tq 的最大可能距離值與 最小可能距離值,系統可利用此性質來篩選整個群集的標籤資料物件,得到查詢 結果,以下將介紹如何使用雙層邊界查詢方法由此索引結構來對標籤資料庫進行 近似查詢,雙層邊界查詢方式可分為群集邊界距離檢查以及批次集邊界距離檢 查:. (一) 群集邊界距離檢查: 對 於 一 個 群 集 C ,本 檢 查 使 用 群 集 C 的 兩 個 特 徵 C.Ci 及 C.Co 來估算出群集 C 中標籤集與查詢標籤集合 Tq 距離的上限值 C_U B(Tq , C) 與下限值 C_LB(Tq , C),並和距離門檻值 δ 進行比較。根據 比較結果共有以下三種可能:. (1) 若 C_LB(Tq , C) 大於 δ ,則表示此群集 C 內所有的標籤集合的距離值 都大於門檻值 δ ,故此群集 C 內所有的標籤集合都不加入查詢結果。 (2) 若 C_U B(Tq , C) 小於等於 δ ,則此群集 C 內所有的標籤集合的距離值 都小於門檻值 δ ,故此群集 C 內所有的標籤集合皆加入查詢結果。 (3) 若上述兩種狀況都不符合而此群集 C 含有子群集,則會取出下層所有 子群集逐一進行群集邊界距離估算檢查。若群集 C 不含有子群集,則 表示群集 C 為葉節點群集且具有批次集,則必須對 C 擁有的所有批次 集逐一進行批次集邊界距離檢查。. 以上這三種比較情況及處理方法整理如表 4.1 所示。. 21.
(31) 表 4.1: 群集邊界距離檢查結果之對應處理 案例. 敘述. C_LB(Tq , C) > δ. 所有在群集 C 的標籤集合都大於門檻值,皆不為查 詢結果。. C_U B(Tq , C) ≤ δ. 所有在群集 C 的標籤集合所含的標籤物件皆小於等 於門檻值,全部加入查詢結果。. C_LB(Tq , C) ≤ C_U B(Tq , C) > δ. δ. 取群集 C 下一層的所有子群集(或是批次集)進行 群集(批次集)邊界距離檢查。. (二) 批次集邊界距離檢查: 對於一個批次集 B ,本檢查使用批次集 B 的兩個特 徵:B.dvo 、B.dvi ,以及其上層葉節點群集 C 的 C.Ci 與 C.Co 共四個特 徵,用來估算批次集 B 中標籤集與查詢標籤集合 Tq 距離的上限值與下限 值,檢查是否小於等於門檻值 δ 。根據此估算檢查方法共有以下三種可能:. (1) 若 B_LB(Tq , C, B) 大於 δ ,表示此群集 B 內所有的標籤集合都不加入 查詢結果。 (2) 若 B_U B(Tq , C, B) 小於等於 δ ,此群集 B 內所有的標籤集合的距離值 都小於門檻值 δ ,故此群集 B 內所有的標籤集合皆加入查詢結果。 (3) 若上述兩種狀況都不符合,必須個別檢查 B 中所有的標籤集合和查詢 標籤集的相似度是否小於等於 δ 。. 這三種比較情況及處理方法整理如表 4.2 所示:. 22.
(32) 表 4.2: 批次集邊界距離檢查結果之對應處理 案例. 敘述. B_LB(Tq , C, B) > δ. 所有在批次集 B 的標籤集合都大於門檻值,皆不為 查詢結果。. B_U B(Tq , C, B) ≤ δ. 所有在批次集 B 的標籤集合所含的標籤物件皆小於 等於門檻值,全部加入到查詢結果。. B_LB(Tq , C, B) ≤ δ B_U B(Tq , C, B) > δ. 取 B 中所有標籤集合計算找出和查詢標籤集的距離 值小於等於 δ 為查詢結果。. 4.1.2. 修正漢明距離式 (Hamming Distance Measure). [7] 對 標 籤 資 料 集 合 距 離 估 算 提 出 修 正 漢 明 距 離 式 ( modified Hamming Distance Measure) ,其公式原型為漢明距離式 ( Hamming Distance Measure)。 以下我們將介紹採用修正漢明距離式在 [7] 的索引結構下,如何估算查詢標籤集 合 Tq 與一個群集 C (或是批次集 B )中各標籤集的距離上限值與距離下限值。 給定兩個標籤集合 T1 及 T2 ,兩者的漢明距離值計算公式如下:. HD(T1 , T2 ) = dif f (T1 , T2 ) + dif f (T2 , T1 ) = |T1 | + |T2 | − 2 |T1 ∩ T2 |. (4.1). 如果距離值計算結果為 0,表示 T1 和 T2 兩標籤集合內容相同;而計算結果 數值越大,則表示 T1 、T2 兩標籤集合越不相似。 然而對於標籤集合的交集計算方式存在一個問題:今假使有三個物件 O1 、 O2 、O3 ,他們的標籤集合如表 4.3 所示,則我們可以由公式 4.1 算出知道這些標 23.
(33) 表 4.3: 標籤物件範例 物件. 標籤集合. O1. cat animal canon. O2. lion africa canon. O3. buzzlightyear toy canon. 籤物件之間的漢明距離都是 4。但就標籤集合的語意來看,O3 中的 lion 和 O1 的 animal 有著高度語意相關,O3 的標籤集合內容和 O1 、O2 的標籤內容除了 Canon 幾乎都沒有語意關聯,但計算結果卻顯示 O2 和 O1 的距離值和 O3 和 O1 的距離 值是相同的。因此進行標籤集的交集運算若只考慮文字內容是否相同而沒有考慮 它們的語意關係,會導致同義字或是高語意相關字被視為完全不同的標籤,而影 響近似程度判斷結果。故 [7] 考慮標籤間的語意關係分數,修改了原來漢明距離 的計算方式,如下:. mHD(T1 , T2 ) = |T1 | + |T2 | + 2(|T1 ∩ T2 | + SR(T1 , T2 )). (4.2). 其 中 SR(T1 , T2 ) 代 表 T1 與 T2 間 不 同 標 籤 之 語 意 相 關 分 數。[7] 以 統 計 方 法 取 兩 個 標 籤 在 標 籤 資 料 庫 中 的 關 聯 程 度 值,來 估 算 兩 個 標 籤 間 的 語 意 相關程度值。再計算出 SR(T1 , T2 ) ,我們將在 4.1.4 詳細介紹在 [7] 中如何計 算 SR(T1 , T2 ) 。以 前 述 例 子 來 說:O1 與 O2 之 間 沒 有 對 應 到 的 標 籤 集 合 為 ( { cat , animal } , { lion africa} ),假 設 這 些 標 籤 可 以 找 出 對 應 語 意 關 聯 配 對 算 24.
(34) 出 其 語 意 相 關 程 度 值,則 SR(O1 .tagset, O2 .tagset) = 1 。根 據 修 正 漢 明 距 離 式可以得 mHD(O1 .tagset, O2 .tagset) = 3 + 3 − 2 ∗ (1 + (1)) = 2,而 O1 和 O3 間在交集沒對應到的標籤集合為 {cat, animal} 及 {buzzlightyear, toy },其標籤 配對 之語意相 關程 度 皆 為 0,即 SR(O1 .tagset, O2 .tagset) = 0,故 所得距離值 mHD(O1 .tagset, O3 .tagset) 仍為 4。採用修正漢明距離式之計算結果,O2 比 O3 還像 O1 。兩個標籤的關聯程度值最大為 1。 由 [7] 中的推導,修正漢明距離式會滿足下列不等式:. (4.3) |T1 | + |T2 | − 2(|T1 ∩ T2 | + SR(T1 , T2 )) ≤ HD(T1 , T2 ). 由這個不等式,[7] 提出在多階層索引結構下,對於查詢標籤集合與群集 (或是批次集)的雙層邊界距離上下限值估算方法如下:. (一) 群集與查詢標籤集合邊界距離檢查之估算 `. C_LB(Tq , C) =dif f (Tq , C.Co ) + dif f (C.Ci , Tq )− min(|Tq − C.Ci | , |C.Co − Tq |) × 2 C_U B(Tq , C) =dif f (Tq , C.Ci ) + dif f (C.Co , Tq ). 25. (4.4) (4.5).
(35) (一) 批次集與查詢標籤集合邊界距離檢查之估算. B_LB(Tq , C, B) =dif f (Tq , C.Co ) + |dif f (C.Co , Tq ) − dvo(C, B)| − min(|Tq − C.Ci | , |C.Co − Tq |) × 2 B_U B(Tq , C, B) =HD(Tq , C.Ci ) + dvi(C, B). 4.1.3. (4.6) (4.7). 查詢範例. 圖 4.1 表 示 由 標 籤 資 料 庫 所 建 立 的 索 引 結 構,假 設 查 詢 標 籤 集 Tq = {a, b, c, d},門檻值 δ = 2 ,並使用修正漢明距離式來評估兩標籤集合的距離。為 了便於說明,在此例假設所有標籤互相沒有任何語意關聯,即兩兩標籤之間的語 意關聯程度值為 0 。透過此索引結構查詢和 Tq 的距離小於 δd 的資料物件,其檢 查過程如下。. 圖 4.1: 多階層索引結構 [7]. 26.
(36) (1) 檢 查 群 集 C1 :計 算 C_LB(Tq , C1 ) = 0,C1 中 的 標 籤 集 合 與 Tq 的 距 離 下 限 值 為 0 ,小 於 δ,表 示 C1 內 有 標 籤 集 合 可 加 入 查 詢 結 果。再 計 算 C_U B(Tq , C1 ) = 4,C1 中的標籤集合與 Tq 的距離上限值為 4,大於 δ,表 示 C1 內並非所有標籤集合皆可加入查詢結果。因 C1 有子群集,故我們將 往下層分別檢查其子群集 C2 及 C3 。。. (2) 檢 查 群 集 C2 :計 算 C_LB(Tq , C2 ) = 1,C2 中 的 標 籤 集 合 與 Tq 的 距 離 下 限 值 為 0 ,小 於 δ,表 示 C1 內 有 標 籤 集 合 可 加 入 查 詢 結 果。再 計 算 C_U B(Tq , C2 ) = 2,C2 中的標籤集合與 Tq 的距離上限值為 2 ,等於 δ,表 示 C2 內所有標籤集合對應的標籤物件皆可加入查詢結果。. (3) 檢 查 群 集 C3 :計 算 C_LB(Tq , C3 ) = 0,C3 中 的 標 籤 集 合 與 Tq 的 距 離 下 限 值 為 0 ,小 於 2,表 示 C3 內 有 標 籤 物 件 可 加 入 查 詢 結 果。再 計 算 C_U B(Tq , C3 ) = 4,C3 中的標籤集合與 Tq 的距離上限值為 4 ,大於 δ,表 示 C3 內並非所有標籤集合皆可加入查詢結果。因 C3 為葉節點群集,含有 批次集,我們往 C3 下層檢查其批次集 B3 。. (4) 檢查批次集 B3 :計算 B_LB(Tq , C3 , B3 ) = 0,B3 中的標籤集合與 Tq 的距 離下限值為 0,小於 δ,表示 B3 內有標籤物件可加入查詢結果。再計算 B_U B(Tq , C3 , B3 ) = 4,B3 中的標籤集合與 Tq 的距離上限值為 4,大於 δ, 表示 B3 內並非所有標籤集合皆可加入查詢結果。我們必須往 B3 下層將其 所有標籤集合與查詢標籤集合 Tq 以修正漢明距離式來計算其距離值。 27.
(37) (5) 計算 mHD(Tq , O4 .tagset) = 3 ,mHD(Tq , O5 .tagset) = 3,由於 O4 .tagset 及 O5 .tagset 與 Tq 的距離下限值皆為 3,大於 δ,表示 O4 、O5 、O6 和 Tq 皆 不相似,於是得到查詢結果:{ O1 , O2 , O3 }。. 4.1.4. 標籤相關程度值計算方式. [7] 使用皮爾森相關係數 ( Pearson's Correlation ) 來計算兩個標籤之間的相 關程度。此關聯程度值是根據一種統計方法,分析一組標籤在標籤資料庫中的相 依程度。 若兩個標籤算出的皮爾森相關係數值為負表示其出現關聯為負相關,因此相 關程度值設為 0 。當有一標籤集合 T1 ,要計算和另一標籤集合 T2 的 SR(T1 , T2 ), 以 s 表示為 (T1 − T2 ) 和 (T2 − T1 ) 兩集合間的最多可能的一對一標籤配對個數, 也就是 min(|T − Tq |, |T − Tq | ),SR(T1 , T2 ) 則為 s 個一對一標籤配對的相關程度 值總和。為了避免列舉出所有可能 s 個一對一標籤配對造成計算成本過高,[7] 使用一個貪婪方式 ( Greedy Method ) 去估算 SR(T1 , T2 ) 的最大可能值。其想法為 每次從 (T1 − T2 ) 及 (T2 − T1 ) 的標籤配對中找出相關程度值最大的配對 ( ta , tb ), 把其他含有 ta 與 tb 的配對刪去,再重新選擇下一組相關程度最大的標籤配對, 直到找出 s 組為止。最後加總這 s 組標籤配對的相關程度值得到 SR(T1 , T2 )。 以 下 舉 例 說 明,假 設 T1 = {a, b, c},T2 = { a, d, e },|T1 − T2 | = { b, c }、 |T2 − T1 | = { d, e },除了相同的標籤 a 以外,其他可進行配對的標籤組合有 (b, d)、(b, e)、(c, d)、(c, e),其中相關程度值分別為 0.2、0.3、0.4、0.5。因此依序選 28.
(38) 出之配對為 ( c, e ) 及 ( b, d ),則 SR(T1 , T2 ) = SR({b, c}, {d, e}),分數為 0.5 + 0.2 = 0.7。. 4.2. 傑卡德距離 (Jaccard Distance Measure). 4.2.1. 修正傑卡德距離定義. 計算兩個集合間的相似程度,可以考慮兩個集合的交集大小除以其聯集大 小,也就是傑卡德相似度 ( Jaccard Similarity Measure)。給定兩標籤集合 T1 與 T2 ,其傑卡德相似度計算式子如下:. JS(T1 , T2 ) =. |T1 ∩ T2 | |T1 ∪ T2 |. (4.8). 傑卡德相似度計算結果的值域為 [0, 1] ,我們以常數 1 減去傑卡德相似度值 得到一個介於 0 到 1 之間的距離值,我們稱之為傑卡德距離值 ( Jaccard Distance Measure) ,式子可寫成:. JD(T1 , T2 ) = 1 −. |T1 ∩ T2 | |T1 ∪ T2 |. =. |T1 ∪ T2 | − |T1 ∩ T2 | |T1 ∪ T2 |. =. |T1 | + |T2 | − 2 |T1 ∩ T2 | |T1 ∪ T2 |. 29. (4.9).
(39) 為了在計算 T1 和 T2 的交集時考慮標籤語意關聯程度,使用 SR(T1 , T2 ) 表示 T1 與 T2 的語意相關程度值。本論文認為以 [7] 關聯程度計算方法未必能反應標 籤的語義相關程度,因此本論文利用 [15] 在 Java 上開發的 WordNet API 去使用 外部知識庫 WordNet 來得到標籤間的語意相關程度值。輸入 T1 和 T2 可以得到 其 SR(T1 , T2 ) ,其值域為 [0, 1]。 因此我們定義一個修正傑卡德距離計算方法如公式 4.10,並針對此修正傑卡 德距離式,定義其在多階層的索引結構 [7] 下的雙層邊界距離估算方法。. mJD(T1 , T2 ) =. 4.2.2. |T1 | + |T2 | − 2 × (|T1 ∩ T2 | + SR(T1 , T2 )) |T1 ∪ T2 |. (4.10). 採用傑卡德距離在兩層機制搜尋邊界估算方法推導. (一) 群集與查詢標籤集合距離邊界估算方法 對於群集 C ,若使用原傑卡德距離計算其中的標籤集合 T 和查詢標籤 集合 Tq 的距離值 JD(Tq , T ) ,會滿足下列兩個不等式:. |Tq | + |C.Ci | − (|Tq ∩ C.Ci | + |Tq ∩ C.Co |) ≤ JD(Tq , T ) |Tq ∪ C.Co |. (4.11). |Tq | + |C.Co | − (|Tq ∩ C.Ci | + |Tq ∩ C.Co |) |Tq ∪ C.Ci |. (4.12). JD(Tq , T ) ≤. 30.
(40) 修正傑卡德距離 mJD(Tq , T ) 可以被寫成 JD(Tq , T )−2×(SR(T, Tq )/ |T ∪ Tq |), 因此採用修正傑卡德距離算式去算 C 中標籤集 T 和 Tq 的距離值,會滿足 下列不等式:. |Tq | + |C.Ci | − (|Tq ∩ C.Ci | + |Tq ∩ C.Co | + 2SR(T, Tq )) ≤ mJD(Tq , T ) |Tq ∪ C.Co | (4.13) mJD(Tq , T ) ≥. |Tq | + |C.Co | − (|Tq ∩ C.Ci | + |Tq ∩ C.Co | + 2SR(T, Tq )) |Tq ∪ C.Ci | (4.14). 根據 SR(Tq , T ) 的範圍,可定出 C 對 Tq 的雙層邊界距離上下限值估算 式,如公式 4.15 及公式 4.16 所示:. C_LB(Tq , C) = (|Tq | + |C.Ci | − (|Tq ∩ C.Ci | + |Tq ∩ C.Co |) + min(|Tq − C.Ci | , |C.Co − Tq |) × 2) |Tq ∪ C.Co | (4.15) C_U B(Tq , C) =. |Tq | + |C.Co | − (|Tq ∩ C.Ci | + |Tq ∩ C.Co |) |Tq ∪ C.Ci |. (4.16). (二) 批次集與查詢標籤集合距離邊界估算方法 對於批次集 B ,使用原傑卡德距離來計算其中的標籤集 T 與查詢標籤 集合 Tq 的距離值,會滿足下列不等式: 31.
(41) (dif f (Tq , C.Co ) + |dif f (C.Co , Tq ) − dvo(C, B)|) ≤ JD(Tq , T ) |Tq ∪ B.Bo |. (4.17). |Tq | + |C.Co | − 2 |Tq ∩ C.Co | + dvi(C, B) |Tq ∪ B.Bi |. (4.18). JD(Tq , T ) ≤. 採用修正傑卡德距離算式去算 B 中的標籤集 T 和 Tq 的距離值,會滿 足下列不等式:. JD(Tq , T ) ≥ (dif f (Tq , C.Co ) + |dif f (C.Co , Tq ) − dvo(C, B)|) − 2 × SR(T, Tq ) |Tq ∪ B.Bo | (4.19) JD(Tq , T ) ≤. |Tq | + |C.Co | − 2 |Tq ∩ C.Co + SR(T, Tq )| + dvi(C, B) (4.20) |Tq ∪ B.Bi |. 根據 SR(Tq , T ) 的範圍,可訂出 B 對 Tq 的雙層邊界距離上下限值估算 式如公式 4.21 及公式 4.22 所示:. B_LB(Tq , C, B) =. dif f (Tq , C.Co ) + |dif f (C.Co , Tq ) − dvo(C, B)| |Tq ∪ B.Bo | min(|Tq − C.Ci | , |C.Co − Tq |) × 2 |Tq ∪ B.Bo |. (4.21). |Tq | + |C.Co | − 2 |Tq ∩ C.Co | + dvi(C, B) |Tq ∪ B.Bi |. (4.22). − B_U B(Tq , C, B) =. 32.
(42) 4.3. 重疊距離 (Overlap Distance). 4.3.1. 修正重疊距離計算方式之定義. 一般計算兩個標籤集 T1 和 T2 的重疊程度值 ( Overlap Coefficient ) 的公式如 下: Overlap(T1 , T2 ) =. |T1 ∩ T2 | min(|T1 | , |T2 |). (4.23). 如果 T1 是 T2 的子集合(或是相反),則所得的重疊程度值則為 1,其意義 為兩集合中較小者被包含於較大者的包含程度值。為了要讓算式符合本系統所考 慮標籤集近似查詢的意義,我們將式子分母的部分,改取兩標籤集合中較大的 集合大小,則當其重疊程度值為 1 時,表示 T1 相等於 T2 ,因而得到下列式子: nOverlap(T1 , T2 ) = |T1 ∩ T2 | /max(|T1 | , |T2 |)。我們再以一個常數 1 減去原重疊程 度值,得到一個介於 0 到 1 之間的距離計算式,其公式如下:. OD(T1 , T2 ) = 1 −. |T1 ∩ T2 | max(|T1 | , |T2 |). (4.24). 在進行 T1 和 T2 的交集計算時,考慮標籤語意關係,則可得一個修正重疊距 離計算方式,如公式 4.25 所示,這裡的 SR(T1 , T2 ) 與章節 4.2 使用相同的方法:. mOD(T1 , T2 ) = 1 −. |T1 ∩ T2 | + SR(T1 , T2 ) max(|T1 | , |T2 |) 33. (4.25).
(43) 4.3.2. 採用修正重疊距離在兩層機制搜尋邊界算法推導. (一) 群集與查詢標籤集合距離邊界估算方法 對於群集 C 中的每個標籤集 T ,若採用我們定義的原重疊距離去計算 其和查詢標籤集 Tq 的距離值 OD(Tq , T ) ,會滿足下列不等式:. 1−. |Tq ∩ C.Ci | ≤ OD(Tq , T ) max(|Tq | , |C.Co |). (4.26). |Tq ∩ C.Co | max(|Tq | , |C.Ci |. (4.27). OD(Tq , T ) ≥ 1 −. 修正重疊距離 mOD(Tq , T ) 可被寫成 OD(Tq , T )−SR(T, Tq )/max(|T | , |Tq |), 故使用修正重疊距離計算式算 C 中的標籤集 T 和 Tq 的距離值,會滿足下 列不等式:. 1−. |Tq ∩ C.Ci | + SR(T, Tq ) ≤ mOD(Tq , T ) max(|Tq | , |C.Ci |). (4.28). |Tq ∩ C.Ci | + SR(T, Tq ) max(|Tq | , |C.Co |. (4.29). mOD(Tq , T ) ≥ 1 −. 根據 SR(Tq , T ) 的範圍,我們定義 C 對 Tq 的雙層邊界距離估算方法 中,群集邊界距離估算式為:. 34.
(44) C_LB(Tq , C) = 1 −. (|Tq ∩ C.Co | + min(|Tq − C.Ci | , |C.Co − Tq |)) max(|Tq | , |C.Ci |). (4.30). C_U B(Tq , C) = 1 −. |Tq ∩ C.Ci | max(|Tq | , |C.Co |). (4.31). (二) 批次集與查詢標籤集合距離邊界估算方法 對於一個批次集 B ,使用原重疊距離計算式來計算 B 與查詢標籤集 Tq 的距離值,會滿足下列兩個不等式:. 1−. ||Tq ∩ C.Co | − dvo| ≤ OD(Tq , T ) max(|Tq | , |B.Bi |). (4.32). |Tq ∩ C.Co | − dvi max(|Tq | , |B.Bo |). (4.33). OD(Tq , T ) ≤ 1 −. 而採用修正重疊距離式去算 B 中的標籤集 T 和 Tq 的距離值,會滿足 下列兩個不等式:. 1−. ||Tq ∩ C.Ci | − dvo(C, B)| + SR(T, Tq ) ≤ OD(Tq , T ) max(|Tq | , |B.Bi |). (4.34). |Tq ∩ C.Co | + dvi(C, B) + SR(T, Tq ) max(|Tq | , |B.Bo |). (4.35). OD(Tq , T ) ≤ 1 −. 根據 SR(Tq , T ) 的範圍,可訂出 B 對 Tq 的雙層邊界距離上下限值估算 式如公式 4.36 及公式 4.37 所示: 35.
(45) B_LB(Tq , C, B) = 1 −. ||Tq ∩ C.Ci | − dvo(C, B)| + min(|Tq − C.Ci | , |C.Co − Tq |) max(|Tq | , |B.Bi |) (4.36). B_U B(Tq , C, B) = 1 −. |Tq ∩ C.Co | − dvi(C, B) max(|Tq | , |B.B0 |). (4.37). 本論文實驗將對上述三種考慮語意的修正距離相似度算法: 修正漢明距離、 修正傑卡德距離以及修正重疊距離,進行評估對於近似查詢效果的影響。. 36.
(46) 第五章. Top-k 近似查詢處理方法. 本論文針對 [7] 的多階層索引結構,提出一個 Top-k 的近似查詢處理方式。 當給定一個常數 k 值,可有效率的取出其標籤集與查詢標籤集最相似的前 k 名資 料物件。以下兩個小節將介紹本論文所提出 Top-k 近似查詢處理的方法概念以及 完整流程步驟和虛擬碼。. 5.1. 基本處理概念 第四章所述索引結構中的群集、批次集與標籤集,皆屬於索引結構的層級. 項目 ( 簡稱索引結構項目),對於一個查詢標籤集 Tq ,標籤集可由距離公式計 算出與 Tq 的絕對距離值,而對於一個群集 C ( 或批次集 B ) ,我們利用雙層邊 界機制的估算方法,可算出其擁有之標籤集與 Tq 的距離上限值 U B(Tq , C) ( 或 U B(Tq , B) ) 與下限值 LB(Tq , C) ( 或 LB(Tq , B) ) 。根據這兩個值畫出一個線段 圖對應數值區間 [ LB(Tq , C) , U B(Tq , C) ],表示 C ( 或 B ) 中標籤集與 Tq 距離程 度的可能範圍。如圖 5.1 所示範例,索引結構中有一個標籤集,與群集 C ,C 的 下層有兩個批次集合 B1 、B2 。當定查詢標籤集 Tq = { a, b, c } ,根據計算出的 LB(Tq , C) 和 U B(Tq , C) 畫出 C 中標籤集和 Tq 的距離區間線段,以 Range(Tq , C) 表示。由於 B1 和 B2 中的標籤集必在群集 C ,故 Range(Tq , B1 ) 和 Range(Tq , B2 ) 的聯集必包含於 Range(Tq , C) 中。我們在範例圖中將標籤集以形狀圖案表示,. 37.
(47) 依各標籤集與 Tq 的距離值為座標位置,來繪製出其在距離區間圖中的位置。. 表 5.1: 距離估算值之符號定義 符號. 定義. LB(Tq , C). 查詢標籤集合 Tq 與群集 C 中標籤集的距離估算下限值。. U B(Tq , C). 查詢標籤集合 Tq 與群集 C 中標籤集的距離估算上限值。. LB(Tq , B). 查詢標籤集合 Tq 與批次集 B 中標籤集的距離估算下限值。. U B(Tq , B). 查詢標籤集合 Tq 與批次集 B 中標籤集的距離估算上限值。. 圖 5.1: 群集(或批次集)和查詢標籤集的距離區間線段圖. 38.
(48) 一般近似查詢藉由使用者輸入的距離門檻值 δ ,將所有與 Tq 距離值小於等 於 δ 的標籤集對應的資料物件加入查詢結果。在找 Top-k 近似標籤集時,使用者 不需輸入距離門檻值,我們利用群集 ( 或批次集) 與查詢標籤集合計算得到的距 離下限值和上限值、群集 ( 或批次集) 中資料物件的個數以及標籤集與 Tq 的距離 值,來做為動態設定查詢距離門檻值的參考。圖 5.2 所示為 C1 和 C2 與 Tq 的距 離區間線段圖,並將群集內的標籤集與 Tq 的實際距離表示於線段圖上。先根據 LB(Tq , C1 ) 及 LB(Tq , C2 ) 的計算結果由小到大對群集排序,由於 LB(Tq , C1 ) 較 LB(Tq , C2 ) 小,因此將查詢距離門檻值 δd 設為 LB(Tq , C2 ) ,並對 C1 篩選查詢結 果。C1 中深灰色區間中的標籤集合和查詢標籤集距離值小於等於 δd 的部份,表 示此範圍的標籤資料物件皆可加入查詢結果,故將標籤資料 T1 對應的資料物件 加入查詢結果。. 圖 5.2: 查詢距離門檻值處理示意圖. 由於我們目前只知道 δd 值落在群集 C1 的範圍中,無法確認 C1 內部的標籤 集 T1 與 T2 各自與 Tq 的距離值是否小於等於 δd ,所以必須再對這個群集分解為. 39.
(49) 批次集 ( 或標籤集合),使用批次集與 Tq 的距離上限值與距離下限值 ( 或標籤集 與 Tq 的距離值) 來判斷標籤集 T 是否小於等於 δd 。. 圖 5.3: 候選串列排序示意圖. 將此概念擴展到有多個群集的情況:先將索引結構中各個根節點群集 C 根據 LB(Tq , C) 及 U B(Tq , C) 排序:依 LB(Tq , C) 由小到大排序群集,若遇到 LB(Tq , C) 相同者,則再依 U B(Tq , C) 由小到大排序,並將排序結果存於候選串 列 ( Candidate List ,以 CL 表示) ( 如圖 5.3 (a) ) 。此候選串列的特性除了能夠 儲存所有的索引結構項目:群集、批次集以及標籤集,並且可隨著索引結構項 目的加入或刪除自動依據其所包含標籤集與查詢標籤集的距離上限值與下限值 來重新排序。批次集 B 和 Tq 的距離上下限值是根據 LB(Tq , B) 與 U B(Tq , B) 來 計算,而標籤集 T 其和查詢標籤距離值 dist(Tq , T ) 我們可以視為 T 與 Tq 的上 下限值 LB(Tq , T ) 與 U B(Tq , T ) 值。圖 5.3 (b) 所示,我們將在 CL 中的所有索引 結構項目 x 來做排序,依照各個索引結構項目的 LB(Tq , x) 及 U B(Tq , x) 由小到 40.
(50) 大排列:LB(Tq , B1 ) < LB(Tq , C2 ) = LB(Tq , C1 ) < LB(Tq , T1 ) ,由於 LB(Tq , C1 ) = LB(Tq , C2 ),但 U B(Tq , C2 ) < U B(Tq , C1 ) ,故最後排列順序為:B1 、C2 、C1 、 T1 。 依照上述方法對索引結構中儲存的索引結構項目檢查排序後,假設目前候選 串列 CL 中包含有 < x1 , x2 , ..., xi , ... , xj > 等索引結構項目,1 ≤ i ≤ j ,其中 i 為 排序後的順序編號、j 表示為索引結構項目總個數。從 CL 中依序取出一個項目 xi 來篩選和 Tq 相似的標籤集合,我們把正在被檢查的索引結構項目 xi 稱為檢查 項目 ( Check Item ) ,δd 是一個動態的查詢距離門檻值,會隨著處理過程而調整。 假設我們從 CL 取出第一個索引結構項目為 xi ,δd 調整方式有下列三種情形。. (一) 若 LB(Tq , xi+1 ) > LB(Tq , xi ),系統會將 δd 設定為 LB(Tq , xi+1 ),並對 xi 進行 查詢結果的篩選。如圖 5.4 (a) 所示範例,檢查項目為群集 x1 ,且 LB(Tq , x1 ) 為 0 ,小於 LB(Tq , x2 ),故 δd 設定為 1。. (二) 若 LB(Tq , xi ) = LB(Tq , xi+1 ) , 系 統 會 對 所 有 i < k ≤ j 且 LB(Tq , xk ) = LB(Tq , xi ) 的檢查項目 xk 進行查詢結果的篩選,我們將這些檢查項目 xk 的集合稱為 檢查項目串列 ( Check Item List ) (所以我們也可以將檢查項 目視為只有一個元素的檢查項目集),並將 δd 設定為 LB(Tq , xi+n+1 )。如 圖 5.4 (b) 所示範例,LB(Tq , x1 ) 、LB(Tq , x2 ) 、LB(Tq , x3 ) 三者相等,但與 LB(Tq , x4 ) 不相等。故 δd 設為 LB(Tq , x4 )。. 41.
(51) (三) 若目前加入查詢結果的資料物件個數等於或是超過 k 個,則會把 δd 的值設 定為目前查詢結果中第 k 個物件與 Tq 的距離值,並以此值將所有距離值小 於等於 δd 的標籤集對應之資料物件加入到查詢結果,在檢查過程中此值不 會再做更動,檢查完畢後完成查詢。. 圖 5.4: 門檻值設定示意圖. 42.
(52) 再來介紹如何檢查一個索引結構的層級項目(可為群集、批次集或是標籤 集),來篩選出與 Tq 的距離值小於等於 δd 的標籤集合,並取出其對應的標籤資 料物件加入到查詢結果。其虛擬碼如演算法 1 : checkCandidateItem。令 xk 為目 前檢查項目,根據 U B(Tq , xk ) 和 δd 大小比較結果,可分成下列兩種情況:. (一) U B(Tq , xk ) ≤ δd ,則 xk 中的資料物件皆可加入查詢結果。(第 2 行). (二) LB(Tq , xk ) ≤ δd 但 U B(Tq , xk ) > δd ,表示 xk 中只有部分標籤集和 Tq 小於 δd ,我們會將 xk 分解至其下一層更小單元的檢查項目來做篩選,能夠確保 檢查項目的標籤集和查詢標籤集的距離皆小於 δd 而能夠加入查詢結果,即 U B(Tq , xk ) ≤ δd 。令 x′k 表示 xk 分解出來的一個更小單元,若為子群集或是 批次集,同樣估算 x′k 與 Tq 的距離下限值與上限值,並和 δd 比較,再決定 是否加入到查詢結果或是需要分解到更小單元。大於 δd 的部份可能為一子 群集、批次集或是標籤集,我們將這些索引結構項目存至 CL 中(如圖 5.2 中 C1 的淺灰色區域,可為群集、批次集或是標籤集合),等待下次動態調 整 δd 後進行篩選。(第 4-16 行). 若目前查詢結果內的標籤資料物件個數已達 k 個以上,δd 的值會設定為查詢 結果中第 k 個資料物件 rk 之標籤集與 Tq 的距離值 dist(Tq , rk ),用於往後其他項 目的檢查。(第 17-18 行). 43.
(53) Algorithm 1: checkCandidateItem Input: checkItem: xi ; Threshold: δd 1 2 3 4 5 6 7. if UpperBound( Tq , xi ) ≤ δd then Add all TagSets in xi to R; else if cItem is a Cluster then if cItem has subCluster then foreach subCluster C in cItem do checkCandidateItem( C ) ; else foreach batch B in cItem do checkCandidateItem( B ) ;. 8 9 10. else if cItem is a Batch then foreach tagset T in cItem do if dist ( Tq , T ) ≤ δd then Add the objects corresponding to the tagset T to R ; else Add T with distance value to CL ;. 11 12 13 14 15 16. 17 18. if R.size() ≥ k then δd = dist(Tq , ok ) ; // ok is the kth object in R. 5.2. 流程步驟 當使用者下了一個查詢標籤集合 Tq 和一個常數 k ,以下是本論文提出. 之 Top-K 近似查詢處理方法的流程步驟與虛擬碼,如演算法 2: Top-K Answer Selection Method 所示。. 44.
(54) Algorithm 2: Top-K Answer Selection Method Input: A query set, Tq ; Index structure, I; The number of objects in the result, l; Output: The search result, R; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16. Sort all C at root level from I by LB( Tq , C ) & UB( Tq , C ) and sorted in CL ; overkK = false; repeat checkItem = First Item in CL ; foreach cItem in CL do if LowerBound( Tq , cItem ) ≤ LowerBound( Tq , checkItem ) then checkList.add(cItem) ; else δd = LowerBound( Tq , cItem ); break; Remove elements in check List from CL; foreach cItem in checkList do checkCandidateItem( cItem) ; until CL is Empty or R.size() ≥ k; Select k objects from R; Return R; 步驟一: 對 索 引 結 構 中 所 有 根 節 點 群 集 xi ,i 為 根 節 點 群 集 的 編 號,計 算 LB(Tq , xi ),依 LB(Tq , xi ) 的值由小到大排序,若有兩個群集 x、x′ ,且 LB(Tq , x) = LB(Tq , x′ ) ,會再計算 U B(Tq , x) 及 U B(Tq , x′ ) ,取較小值者排 在前面,最後將結果存於候選串列 CL 中。 (第 1 行). 步驟二: 將 CL 第一個項目設為檢查項目 checkItem。檢查項目表示本輪被檢 查的項目,可為群集、批次集或是標籤集。 (第 4 行). 步驟三: 將 CL 中所有與 Tq 之距離下限值小於等於 LB(Tq , checkItem) 的項目 存放在一個檢查串列,用符號 checkList 表示,直到找到項目 xi ,其和 Tq 的距離下限值 LB(Tq , xi ) 大於 LB(Tq , checkItem) ,再將查詢距離門檻值 δd 設為 LB(Tq , ci ) 。(第 5 - 10 行). 45.
(55) 步驟四: 呼叫演算法 1 逐一檢查 checkList 內的所有索引結構項目 xi (可為群 集、批次集或標籤集合),找出其中符合 δd 距離門檻值要求的查詢結果, 否則將 xi 放回 CL。若查詢結果資料物件個數大於 k 則重設 δd 的值為 dist( Tq , xk .tagset)。(第 11 - 13 行). 步驟五: 若查詢結果物件數未滿 k 個,則回到步驟二繼續執行步驟二到步驟五, 直到查詢結果的標籤資料物件個數達到 k 為止;若查詢結果物件數超過 k 個,會將每個標籤資料物件對 Tq 做距離值的計算,由小到大選出 k 個作為 最後的查詢結果。(第 15 行). 46.
(56) 以下我們展示一個查詢範例,來表示 Top-K 近似查詢處理方法實際尋找相似 標籤資料物件的過程: [ 範例]. 圖 5.5: 範例索引結構根節點群集示意圖. 針對圖 5.5 所示,給定一個查詢標籤集 Tq = { a, b, c },k 值設為 5,距離程 度計算方法採用漢明距離算法,假設每個標籤集合只有一個對應的標籤資源物 件。則 Top-k 近似查詢處理方法步驟如下:. 1.. 先對根節點群集 Ca 、Cb 、Cc 依照 LB(Tq , Ca ) 、LB(Tq , Cb ) 、LB(Tq , Cc ) 排 序,其距離區間線段圖如圖 5.6 (a) 所示。. 2.. 選定 Ca 為檢查群集,由於 LB( Tq , Ca ) 小於 LB( Tq , Cb ) ,所以設 δd 為 LB( Tq , Cb ) = 1,對 Ca 進行篩選。. 3.. 由於 Ca 下層有批次集,所以我們將 Ca 分解為 B1 、B2 來做篩選,如圖 5.6 (b) 。分解後因為 LB( Tq , B1 ) 大於 δd ,所以將 B1 放回 CL ,留待下一輪. 47.
(57) 圖 5.6: 範例索引結構項目線段示意圖. δd 調整後檢查;因為 LB( Tq , B2 ) 小於 δd 、UB( Tq , Ca , B2 ) 大於 δd ,所以 要往 B2 下層檢查其擁有的標籤集合是否與 Tq 的距離小於等於 δd 。. 4.. B2 中的標籤集合 { a, b, c, d } 與 Tq 距離值為 1,小於 δd ,故加入查詢結果。 標籤集合 { b, c, d, e } 與 Tq 的距離值為 3 ,大於 δd ,所以將 { b, c, d, e } 置 於 CL ,留待之後 δd 調整後檢查,如圖 5.6 (c) 。因為 LB( Tq , T2 ) > δd ,故 本輪檢查結束。. 5.. 選定 Cb 為檢查項目,由於 LB( Tq , Cb ) < LB( Tq , B1 ) ,所以我們設 δd 為 LB( Tq , Cc ) = 3,但因為 UB( Tq , Cb ) > LB( Tq , B1 ),所以必須檢查 Cb 下 層來篩選。. 6.. 由於 Cb 下層有批次集,所以我們將 Ca 分解為 B3 、B4 來做篩選,如圖 5.7 (d) ,因為 UB( Tq , B3 ) = δd ,所以我們可以加入 B3 內所有標籤集對應的資. 48.
(58) 圖 5.7: 範例索引結構項目線段示意圖. 料物件到查詢結果。因為 LB( Tq , B4 ) < δd ,且 UB( Tq , B4 ) > δd ,故 B4 必 須再往下分解成標籤集再檢查其擁有的標籤集合是否與 Tq 的距離小於等於 δd 。. 7.. B4 底下的標籤集只有一個 T5 : {a, b} ,因為 LB ( Tq , T5 ) = 1 ≤ δd ,所以將 T4 對應到的資料物件加入到查詢結果。因為 LB( Tq , T2 ) > δd ,故本輪檢查結 束。. 8.. 選定 B1 為檢查群集,δd = dist( Tq , T2 ) = 3:因為 LB( Tq , B1 ) < δd ,且 UB( Tq , B1 ) > δd ,故 B1 必須再往下分解成標籤集再檢查其擁有的標籤集合是 否與 Tq 的距離小於等於 δd 。. 9.. B1 底下的標籤集只有一個 T1 : {a, b, c, d, e } ,因為 dist( Tq , T1 ) < δd ,所以 將 T1 對應到的資料物件加入到查詢結果。 49.
(59) 10.. T2 底下的標籤集只有一個 T1 : {a, b, c, d, e } ,因為 dist( Tq , T2 ) = δd ,所以 將 T2 對應到的資料物件加入到查詢結果。目前搜尋結果已達 k 個,所以停 止處理查詢動作:Top-5 近似查詢處理的結果為 { a, b, c, d, e } 、{ a, b, c, d }、{ b, c, d, e }、{ a }、{ a, b} 對應的標籤資料物件。. 50.
(60) 第六章. 實驗評估. 本論文實驗主要分為兩個部分進行。第一部分為評估不同距離估算方法對查 詢結果的效果。第二部分為評估在 [7] 的多階層索引結構下使用 Top-k 近似查詢 處理方法的執行效率。以下介紹實驗資料來源、環境設定、實驗方法以及結果。. 6.1. 實驗資料來源及環境設定 本論文標籤資料庫中的標籤資料物件皆來自 Flickr 相簿網站,我們使用. Flickr 提供的開發程式介面(API , Application Programming Interface)來蒐集標籤 資料物件的資訊(識別碼 ( Identifier ) 與標籤資料集)。蒐集的範圍為一個相簿群 組,名稱為 Animals ( All Kinds ) ,且此群組中大約有 6000 名使用者,我們從此 群組分享的照片中擷取 53232 筆照片的標籤資訊,平均每個標籤資料物件擁有 9 個標籤。以此為我們標籤資料庫的資料來源。 本論文實驗的個人電腦採用 Windows 8 作業系統環境,硬體配備為 Intel Core i7-3770 之處理器和 8 G 的 DDR3 記憶體,系統程式實作使用 Java 程式設計 語言於 NetBeans 開發環境中進行編譯。我們並以 Apache Http Server 架設網頁伺 服器,系統前端查詢與評分介面則是使用 php 撰寫。. 51.
(61) 評估不同距離估算方式對查詢結果的效能. 6.2. 第一部分的實驗為評估不同距離估算方法的近似查詢效果。我們針對 [7] 提 出的修正漢明距離公式、本論文提出的修正傑卡德距離公式與修正重疊距離公式 來評估哪個距離公式可得到較好的查詢結果。以下會先介紹實驗測試資料的使用 與實驗評估方法,再對實驗結果進行分析討論。. 6.2.1. 測試資料說明. 本論文使用章節 6.1 介紹之實際資料,當做本論文系統標籤資料庫的來源。 在此評估不同長度的查詢標籤集對於各個距離估算方法的查詢效果。我們從標籤 資料庫中隨機選出數個標籤字組成不同長度的查詢標籤集,且該查詢標籤集必須 為實際存在於標籤資料庫中的標籤集,且對應的資料物件僅有一個。本實驗會取 標籤個數為 3 、5 、9 的標籤集合來進行實驗。如表 6.1。. 6.2.2. 實驗評估方法. 參與本實驗的受試者總共有 5 位,受試者皆為大專以上學生,並且了解近似 查詢方式的概念與意義。本實驗共取 6 個查詢標籤集合,其中標籤個數為 3、5 及 9 的查詢標籤集合各兩組,如表 6.1。我們請各受試者分別對系統所搜尋出來 的結果以圖 6.1 所示介面進行人工評分,評分列為四個等級如下:. 52.
(62) 表 6.1: 實驗所用之查詢標籤集合內容 符號. 標籤集合內容. Ta. { argentina, emperor, penguin}. Tb. { rabbit, grass, animal}. Tc. { kitten, cat, pet, cute, animal}. Td. { dolphin, water, aquatic, pacific, ocean}. Te. { chobe, botswana, wild, hide, elephant, wildlife, baby, africa, animal}. Tf. { banana, zoo, beauval, fat, gorilla, big, monkey, black, eye}. 完全相關 ( High Relevance) : 查詢標籤物件的標籤集與標籤資料物件的標籤集 完全相關,對應分數值為 3。. 中度相關 ( Midium Relevance ) : 查詢標籤物件的標籤集與標籤資料物件的標 籤集大部分相關,對應分數值為 2。. 低度相關 ( Low Relevance ) : 查詢標籤物件的標籤集與標籤資料物件的標籤集 僅有少許關聯,對應分數值為 1。. 完全無關 ( UnRelated ) : 查詢標籤物件的標籤集與標籤資料物件的標籤集完全 無關,對應分數值為 0。. 我們將每位受試者對於各個查詢標籤集合的評分分數由高到低排序,作為 查詢結果排序的標準答案,用來評估本系統使用的距離計算公式的查詢效果。. 53.
相關文件
Registry Server 是建構於第三方具有公信力的一個組織,而 Registry Server 在 Web Service 的架構中,主要的功能類似於提供服務查詢(Yellow
由於醫療業導入 ISO 9000 品保系統的「資歷」相當資淺,僅有 三年多的年資 11 ,因此,對於 ISO 9000 品保系統應用於醫療業之相關 研究實在少之又少,本研究嘗試以通過
因此若將效率應用在教育機構方面,陳云愷【 45】認為教育
近年來,國內外已經有很多學術單位投入 3D 模型搜尋的研究,而且在網路 上也有好幾個系統提供人使用,例如台灣大學的 3D Model Retrieval
– 第一百八十四條之一規定:雇主使勞工使用 危險物從事作業前,應確認所使用物質之危
近年來國內外許多學者也紛紛投入 RFID 安全性的研究,2003 年首先由 Weis 等 學者提出了 RFID 認證協定之論文,開啟了 RFID
本研究於 2017 年 2 月至屏東縣 10 所校園採集使用水源及經淨水處理
本研究是以景觀指數進行對 1993 年、2008 年與擴大土地使用三個時期之評 估,其評估結果做比較討論。而目前研究提供研究方法的應用-GIS 與 FRAGSTATS 之使用方法。從 1993 年至