weidagang2046的專欄

          物格而后知致
          隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
          數(shù)據(jù)加載中……

          Similarity Flooding

          算法大致思路:
          ??????? 把要匹配的模型轉(zhuǎn)換為帶標記的有向圖(directed labeled graphs。由節(jié)點和弧組成的圖,允許對象用自身的屬性及其和其他對象的關(guān)系來定義,類似于ER圖)。這些圖要用來做迭代的不動點計算,計算結(jié)果將告訴我們一張圖里的哪些節(jié)點和第二張圖的節(jié)點相似。
          ??????? 為了計算相似度,我們利用了這樣一個直覺:兩個不同的節(jié)點是相似的,當它們鄰接元素是相似的。換句話說,兩個元素相似性的一部分傳播給了它們各自的鄰居,這種傳播方式類似于IP廣播,這也是SF這個名字的由來。我們把算法的結(jié)果叫做一個?mapping,然后根據(jù)匹配目標,選擇特定的過濾器來過濾出一個原始結(jié)果的子集。我們希望能夠人工對結(jié)果進行修正,需要修正的成員數(shù)目就反映了算法的準確性。

          概述:

          ??????? 假設(shè)有2個schema,S1和S2。我們要為S1里每一個元素在S2中找到匹配的元素。
          ??????過程如下:
          ??????1. G1 = SQL2Graph(S1); G2 = SQL2Graph(S2);? 把schema變成圖,圖采用了Open Information Model (OIM)規(guī)格,圖中node采用矩形和卵形,矩形是文字描述,卵形是標識符

          ??????2. initialMap = StringMatch(G1, G2);??????用字符串匹配做為初始匹配,主要是比較通常的前綴和后綴,這樣的結(jié)果通常是不準確的

          ??????3. product = SFJoin(G1, G2, initialMap);??????用SF算法生成結(jié)果。假設(shè)兩個不同的節(jié)點是相似的,則它們鄰接元素的相似度增加。經(jīng)過一系列的迭代,這種相似度會傳遍整個圖

          ??????4. result = SelectThreshold(product);???結(jié)果篩選


          SF算法

          ??????圖中的每條邊,用一個三元組表示(s,p,o),分別是 源點,邊名,目的點。

          δ2.JPG
          ??????相似度傳播圖:首先定義pairwise connectivity graph(PCG) : ((x; y); p; (x'; y')) 屬于 PCG(A;B)<==>(x; p; x')?€ A and (y; p; y')?€ B。 關(guān)鍵是p要相同,也就是邊的名字一樣。式子從右向左推導,就可以A、B從兩個模型建立起它們的PCG。圖中的每個節(jié)點,都是A和B中的元素構(gòu)成的2元組,叫做map pairs。
          ??????induced propagation graph。從PCG推導而來,加上了反向的邊,邊上注明了[傳播系數(shù)],值為 1/n,n為相應的邊的數(shù)目。
          ??????不動點計算:
          ????????????設(shè)ó(x; y)?> 0 代表了節(jié)點x € A?和 y € B 的相似度,是在整個?A?X B的范圍上定義的。我們把 ó 叫做 mapping。相似度的計算就是基于ó-values的迭代計算。設(shè) ói 代表了第 i 次迭代后的結(jié)果,ó0 是初始相似度(可以用字符串相似度的辦法的得出,在我們的例子里,沒有 ó0 ,即讓 ó0 =1)。
          ????????????每次迭代中,ó-values 都會根據(jù)其鄰居paris的 ó-values? 乘以[傳播系數(shù)] 來增加。例如,在第一次迭代 ó1(a1; b1) = ó0(a1; b1) + ó0(a; b)?*?0.5 = 1.5。類似的,ó1(a, b) = ó0(a, b) + ó0(a1; b1) * 1.0 + ó0(a2, b1) *1.0 = 3.0。接下來,所有 ó 值進行正規(guī)化,比如除以當前迭代的 ó的最大值,保證所有 ó 都不大于1。所以在正規(guī)化以后,ó1(a; b) = 1.0, ó1(a1, b1) = 1.5/3.0 = 0.5。一般情況下,迭代如下進行:

          未命名4.JPG

          δ3.JPG
          ??????上面的計算進行迭代,直到 ón 和 ón-1之間的差別小于一個閾值,如果計算沒有聚合,我們就在迭代超過一定次數(shù)后停止。上圖3的第三副圖,就是5次迭代后的結(jié)果。表3時一些計算方法,后面的實驗表明,C比較好。A叫做 sparce,B叫做 excepted,C叫做verbose


          過濾

          ??????迭代出的結(jié)果是一種[多匹配],可能包含有用的匹配子集。
          ??????三個步驟:
          ????????????1。用程序定義的[限制條件]進行過濾。
          ????????????2。用雙向圖中的匹配上下文技術(shù)進行過濾
          ????????????3。比較各種技術(shù)的有效性(滿足用戶需求的能力)
          ??????限制:主要有兩種,一個是[類型]限制,比如只考慮[列]的匹配(匹配雙方都是列)。第二個是 cardinality 限制,即模式S1中的所有元素都要在S2中有一個映射。

          stable marriage問題:n女和n男配對,不存在這樣的兩對 (x; y)和(x0; y0),其中x喜歡 y0 勝過 y,而且 y0 喜歡 x 勝過 x0。具有stable marriage的匹配結(jié)果的total satisfaction可能會比不具有stable marriage的匹配結(jié)果還低!

          匹配質(zhì)量的評估

          ???基本的評估思想,就是? 用戶對匹配結(jié)果做的修改越少,匹配質(zhì)量就越高(修改結(jié)果包括去掉錯誤的pair,加上正確的pair)
          未命名1.JPG? n是找到的匹配數(shù),m是理想的匹配數(shù),c是用戶作出修正的數(shù)目。

          from: http://www.cnblogs.com/anf/archive/2006/08/15/477700.html

          posted on 2006-11-17 18:25 weidagang2046 閱讀(1363) 評論(2)  編輯  收藏 所屬分類: AlgorithmSearch Engine

          評論

          # re: Similarity Flooding [未登錄]  回復  更多評論   

          你那個傳播系數(shù) 是怎么弄出來的?
          2011-02-02 00:48 | yy

          # re: Similarity Flooding [未登錄]  回復  更多評論   

          值為 1/n,n為相應的邊的數(shù)目。
          這個是怎么解釋?為什么有的是1 有的是2
          這點不明白
          2011-02-02 00:50 | yy
          主站蜘蛛池模板: 威海市| 镇沅| 绿春县| 福贡县| 乌拉特中旗| 同仁县| 枝江市| 扬州市| 黔西县| 陵水| 成武县| 丘北县| 五台县| 昌乐县| 开江县| 沁源县| 郎溪县| 宁国市| 开化县| 盖州市| 孟津县| 漠河县| 苏州市| 车致| 九龙城区| 宜君县| 金阳县| 嘉祥县| 郴州市| 东阳市| 娄烦县| 宜川县| 太原市| 隆昌县| 赤城县| 台州市| 荆州市| 隆子县| 巴林右旗| 无棣县| 开远市|