• 沒有找到結果。

3.5 3.5 計算所有標籤 計算所有標籤 計算所有標籤 計算所有標籤之 之 之間的相似度 之 間的相似度 間的相似度 間的相似度

在文檔中 部落格分群 (頁 33-47)

3.5 3.5 計算所有標籤 計算所有標籤 計算所有標籤 計算所有標籤之 之 之間的相似度 之 間的相似度 間的相似度 間的相似度

每當在搜尋引擎輸入一個關鍵字之後,搜尋引擎就會找到含有這個關鍵字的 網頁並回傳給使用者,這就是搜尋引擎的基本運作原理。本論文使用搜尋引擎 Altavista[7]來幫助計算相似度,假設要計算「標籤 1」與「標籤 2」之相似度

標籤 1 NEAR 標籤 2

則搜尋引擎會搜尋所有符合以下條件的網頁:

1.網頁同時包含「標籤 1」與「標籤 2」。

2.「標籤 1」與「標籤 2」在網頁上出現的位置相差在 10 個句子以內。

在 Peter D. Turney[8]的論文中,他使用 NEAR 運算子來計算 PMI。同時,搜尋 引擎也會回傳符合以上條件之網頁的數目,將搜尋引擎搜尋到的網頁數目標記 為:

hits(標籤 1,標籤 2) 得到 hit 數之後,兩個標籤之相似度就定義為:

Similarity(標籤 1,標籤 2) = log(hits(標籤 1,標籤 2))

相似度不直接使用 hit 數而要取 log 的原因是因為目前網際網路上的網頁數 量實在過於龐大,取 log 可以讓這個值縮小,方便之後的計算。

這樣的相似度計算方式可以將它理解成「若兩個標籤一起出現的次數越頻繁,

則它們的相似度越高」;這樣的相似度非常適合用在這裡,因為在描述一個主題 時,一定會有常用於該主題的詞彙,只要撰寫該主題的文章時,這些詞彙就會常 常一起出現。舉例來說,可以試著計算「王建民」與 「伸卡球」和「王建民」

與「籃網」之間的相似度,分別為:

Similarity(王建民, 伸卡球) = 4.99 Similarity(王建民, 籃網) = 2.46

從這個例子中可以看到,如果有一個部落格 A 包含「王建民」這個標籤,而另外 兩個部落格 B 與 C 分別包含「伸卡球」與「籃網」這兩個標籤,則系統會因為標

籤之間的相似度認為部落格 A 與 B 較相似,事實上,因為「王建民」與 「伸卡 球」常常在「棒球」這個主題下出現,所以它們計算出來的相似度也較高。

3.6 3.6 3.6

3.6 將部落格以向量表示 將部落格以向量表示 將部落格以向量表示 將部落格以向量表示

要將部落格表示成向量,首先就是要決定向量的維度,其中最簡單的方式就 是每一個標籤都代表一個維度。假設所有的標籤總共有 n 個,則每一個部落格就 可以表示為一個 n 維的向量。若一個部落格中包含某個標籤,則其向量表示法中 代表該標籤之維度的值就是 1,否則就是 0。這個方式雖然非常的簡單也非常的 直覺,但是並不適合用在這裡,原因就如前述,標籤是由人工自由產生,且重複 率非常的低。舉例來說:假設所有標籤的集合為{action, animation, comedy, fantasy, airlines, hotels},且有三個部落格 A、B 與 C,A 與 B 所描述的主題 都是電影而 C 所描述的主題是旅遊,其中,部落格 A 包含標籤{action,

animation},部落格 B 包含標籤{comedy, fantasy},部落格 C 包含標籤{airlines, hotels},則部落格 A,B 與 C 可以用此向量表示法表示如下:

A = (1, 1, 0, 0, 0, 0) B = (0, 0, 1, 1, 0, 0) C = (0, 0, 0, 0, 1, 1)

若使用上述表示法,不管使用 distance 或是使用 cosine similarity 來計 算部落格之間的相似度時,部落格 A 跟 B 的相似度與部落格 A 跟 C 的相似度都是 一樣的,所以在這種表示法下,沒有辦法顯示出部落格 A 與 B 是比較相近的。所 以必須用另一種能顯示部落格之間相似度的表示法。以上述例子來說,首先計算 每兩個標籤之間的相似度並將結果紀錄在表 3-1:

action animation

animation comedy fantasy airline 7.89 7.9 7.48 5.92

之後可以發現前四個標籤{action, animation, comedy, fantasy}

較高而後兩個標籤{airlines, hotels}之間的相似度也較高

由圖 3-2 可知,第一群為{action, animation, comedy, fantasy}且第二群 為{airlines, hotels},我們將向量表示法稍微做一點修改,改成以每一個群集 代表一個維度,也就是每一個主題代表一個維度,則部落格 A、B 與 C 的向量表 示法就變成:

A = (2,0) B = (2,0) C = (0,2)

如此一來,若以此向量表示法來計算部落格之間的相似度,可以得到部落格 A 與 B 較像而部落格 A 與 C 較不像的結果,這樣就能正確的表達出部落格 A 與部落 格 B 有可能在描述較相似的主題,而部落格 C 是在描述另一個主題。3.6.1 節將 描述標籤分群的詳細步驟。

3.6.1 3.6.1 3.6.1

3.6.1 標籤分群 標籤分群 標籤分群 標籤分群

為了找出哪些標籤可能是代表相同的主題,本論文使用 Hierarchical clustering[9]來建立標籤的階層關係。一開始每一個標籤都是一個獨立的群,

之後開始每次合併相似度最高的兩個群,一直到剩下一個群為止。

在計算群與群之間的相似度時,主要有三種方法,分別是 Single linkage、

Complete linkage 與 Average linkage。本論文使用的是 Average linkage,

Average linkage 的優點是較其他方法精確,缺點是計算起來較費時。但是在實 際分群的過程中,很容易碰到群與群的數目不平均的情況,考慮圖 3-3 之情況:

圖 3-3 不同的分群結果

如圖 3-3 左邊的分群結果,因為有一個標籤與其他所有標籤的相似度都很低,

所以很容易造成該標籤自成一群而其他所有的標籤形成一個大群,這並不是執行 分群演算法時想要看到的結果。較理想的分群結果應該是如圖 3-3 右邊的分群結 果,每一個群中的標籤數量較平均,也較符合分群的目的。為了解決這個問題,

必須在合併兩個群時考慮是否會造成標籤數目過多之情形,所以要將合併之後的 群之標籤數量當成一個參數去調整群與群間的相似度,基本的想法是根據兩個群 合併之後的標籤數量來降低這兩個群之間的相似度,若兩個群合併之後的標籤數 目越多,則這兩個群的相似度降低越多,此時系統就會選擇其他兩個群來合併。

因此將計算相似度的公式稍微調整為:

Similarity[gP, gQ\ = Original Similarity:gP, gQ; × :N − :size:gP; + size:gQ;;

N ;À

其中,Original Similarity:gP, gQ;是原本使用 Average linkage 所計算出來的相似 度,N是所有標籤的數量,size:g;代表標記為 g 這個群中的標籤數量,而 f 為一 個參數,可以視最後的分群情況來調整,它代表兩個群合併之後的標籤數量對兩 個群之間的相似度的影響程度。圖 3-4 為用新的相似度來挑選最相似的兩個群合 併之情形:

圖 3-4 用新的相似度來挑選最相似的兩個群合併

圖 3-4 的(1)中有三個群,分別為 gC、g9 與 gD。如果使用 Average linkage 來計算群與群之間的相似度時,相似度分別為 sC9、sCD 與 s9D,其中sPQ代表 gP 與 gQ 之間的相似度且 sC9 > s9D> sCD,但是由於 gC 與 g9 合併之後的群包含八個標籤 而 g9 與 gD 合併之後只有五個標籤,假設合併後的標籤數量調整相似度之後造成 adjust:s9D; > ÂÃÄÅÆÇ:sC9;,其中,adjust:sPQ;就是 gP 與 gQ 經過調整之後的相似度,

所以系統最後選擇合併 g9 與 gD ,合併之後的結果如圖 3-4 的(2)。

為了證實新的相似度計算方式確實有用,我們以實際的資料分別使用舊的相 似度計算方式與新的相似度計算方式來比較:

首先,先觀察使用新的相似度計算方式將所有標籤分為 120 群時的分群狀況,

表 3-2 列出前五大的群所包含之標籤之內容。舉例來說:最大的群共有 775 個標 籤,其中 69 個標籤曾出現在電影類的部落格中,655 個標籤曾出現在旅遊類的 部落格中,67 個標籤曾出現在健康類的部落格中,6 個標籤同時出現在電影與旅 遊類,10 個標籤同時出現在旅遊與健康類。藉由表 3-2 可以發現,第一大的群 中有 84.5%都是旅遊類的標籤,第二大的群有 84.6%都是電影類的標籤,而第三 大的群則有 94.3%都是健康類的標籤。

g9 gC

gD

:1; :2;

標籤數

表 3-4、3-5 為分別使用這兩種相似度計算方法將所有標籤分為 250、500

圖 3-5 任意選擇想要的群數

在圖 3-5 中假設標籤的集合為{A, B, C, D, E},根據相似度建構完階層關 係之後,可以任意選擇分成 2 群:{{A, B, C, D}, {E, F}}、3 群:{{ A, B, C, D }, {E}, {F}}或 4 群:{{A, B}, {C, D}, {E}, {F}},甚至更多。

所以在決定群的數目 È 之後,就可以根據標籤分群所產生的階層關係將所 有的標籤分成 È 群,如此一來,同一個群內的標籤可以將它們視為都在描述相 同的主題,所以共有 È 個主題。

本論文將每一個部落格都表示成一個 È 維的向量,假設標籤有 n 個,由上 面的敘述可知, È 的值可以是 1 到 n 之間的任何一個值,也就是說,可以任意 決定向量的維度。本論文以一個群代表一個維度,每一個維度的值代表部落格的 標籤裡屬於代表該維度之群的個數。舉例來說:假設某一個部落格所包含的標籤 為{A, C, F},若採用圖 3-5 的分群結果,取È = 3的情況下,此部落格之向量 表示法為(2, 0, 1)。若取È = 4,則此部落格之向量表示法為(1, 1, 0, 1)。

在獲得每一個部落格的向量之後,最後一個步驟就是將向量正規化。要做正 規化的原因是因為每一個部落格的標籤數量都不相同,為了避免「標籤數量」這 個因素影響最後分群的結果,所以要將向量正規化成長度為 1。舉例來說:有兩 個相同主題的部落格 A 與 B,它們各包含 5 個標籤與 100 個標籤,分別為:

A B C D E F

2 群 3 群 4 群

saC, a9, … , aÉt 與

sbC, b9, … , bCÊÊt

且這些標籤都不相同,而另一個不同主題的部落格 C 包含 5 個標籤:

scC, c9, … , cÉt

假設在標籤分群的步驟中,系統將所有標籤分成三群分別為:

gC = s… , aC, a9, … , aÉ, … , bC, b9, … , bCÊÊ, … t g9 = s… , cC, c9, … , cÉ, … t

gD = s… … t

可以看到部落格 A 與 B 的 105 個標籤都很「正確」的被分到了第一個群中,而部 落格 C 的標籤被分到了第二個群中,所以部落格 A、B 與 C 的向量表示法分別為 A=(5, 0, 0)、B=(100, 0, 0)與 C=(0, 5, 0)。如果接下來在計算部落格之間的 相似度時是使用「距離」來代表部落格之間的相似度時,距離越近代表相似度越 高,距離越遠代表相似度越低,則部落格 A 與 B 的距離為 95,部落格 A 與 C 的 距離大約為 7,因此系統認為部落格 A 與 C 的主題較相近,這與事實不符。因此,

為了降低這種因為標籤數量而導致系統誤判的情況,所以需要加入正規化這個步 驟。以上述例子來說,經過正規化後 A=(1, 0, 0)、B=(1, 0, 0)、C=(0, 1, 0),

可以很清楚的看到,若同樣以距離來代表相似度時,部落格 A 與 B 為較相似的主 題。因此,這個正規化後的向量就是最終部落格的向量表示法。

3.7 3.7

3.7 3.7 以座標表示部落格 以座標表示部落格 以座標表示部落格 以座標表示部落格

另一個表示部落格的方法,就是為每一個部落格計算一個合適的座標。所謂 合適的座標代表座標之間的距離可以反映出部落格之間的相似程度。

3.7.1 3.7.1 3.7.1

3.7.1 使用 使用 使用 使用 Multidimensional scaling Multidimensional scaling Multidimensional scaling 產生 Multidimensional scaling 產生 產生 產生標籤 標籤 標籤 標籤之座標 之座標 之座標 之座標

在計算完所有標籤與標籤之間的相似度後,就可以使用 Multidimensional scaling 去賦予每一個標籤一個合適的座標。但是這裡有一點要特別注意,因為 在本論文所使用的相似度計算方法中,數值越小代表相似度越低,數值越大代表 相似度越高。但 Multidimensional scaling 對相似度的定義剛好是相反的,因

在計算完所有標籤與標籤之間的相似度後,就可以使用 Multidimensional scaling 去賦予每一個標籤一個合適的座標。但是這裡有一點要特別注意,因為 在本論文所使用的相似度計算方法中,數值越小代表相似度越低,數值越大代表 相似度越高。但 Multidimensional scaling 對相似度的定義剛好是相反的,因

在文檔中 部落格分群 (頁 33-47)

相關文件