SimRank--基于結構的相似度度量方法學習筆記

來源:本網整理

基于乘積項的可編程copy邏輯結構?GAL、CPLD之類都是基于乘積項的可編程結構;即包含有可編程與陣列和固定的或陣百列的PAL(可編程陣列邏輯)器件構度成;诓檎冶碇目删幊踢壿嫿Y構?FPGA(現場可編程門陣列)是基于查找表的可編程邏輯結構。FPGA(Cyclone/Cyclone II)系列器件主要由邏輯陣列塊LAB、嵌入式存儲器塊(EAB)、I/O單元、嵌入式硬件乘法器道和PLL等模塊構成;www.anxorj.tw防采集請勿采集本網。

詳見:Glen Jeh 和 Jennifer Widom 的論文SimRank: A Measure of Structural-Context Similarity?

一、簡介

  1. 目前主要有兩大類相似性度量方法:

    基于體系結構的開發模型是以軟件體系結構為核心,以基于構件的開發方法為基礎。然后采用迭代增量方式進行分析和設計,將功能設計空間映射到結構設計空間,再由結構設計空間映射到系統設計空間的

    (1) 基于內容(content-based)的特定領域(domain-specific)度量方法,如匹配文本相似度,計算項集合的重疊區域等;

    循環隊列和棧都是線性結構,是邏輯結構的一種。而存儲結構是數據在計算機中的表示,循環隊列在計算機內是順序存儲結構,棧在計算機內可是以順序也可以是鏈式。所以循環隊列和棧都是線性邏輯結構

    (2) 基于鏈接(對象間的關系)的方法,如PageRank、SimRank和PageSim等。最近的研究表明,第二類方法度量出的對象間相似性更加符合人的直覺判斷。

  2. Simrank的基本思想是:如果兩個實體相似,那么跟它們相關的實體應該也相似。比如在圖一中如果a和c相似,那么A和B應該也相似。
  3. SimRank的特點:完全基于結構信息,且可以計算圖中任意兩個節點間的相似度。

    SimRank 是一種基于圖的拓撲結構信息來來衡量任意兩個對象間相自似程度的模型,該模百型的核心思想為:如果兩個對象被其相似的度對象所引用(即若兩個知對象有相似的入鄰邊結構),那么這兩個

    這里寫圖片描述

    圖一

二、基本公式

  • 在普通的同構網絡中:

    因而,數據庫技術相應地進入了“后關系數據庫時代”,發展進入基于網絡應用的非結構化數據庫時代。所謂非結構化數據庫,是指數據庫的變長紀錄由若干不可重復和可重復的字段組成,而每個字段又可由若干不可

    這里寫圖片描述

    其中,s(a,b)是節點a和b的相似度Ii(a)Ii(a)表示a的第i個in-neighbor。參數c是個阻尼系數,它的含義可以這么理解:假如I(a)=I(b)={A},按照上式計算出sim(a,b)=c*sim(A,A)=c,很明顯,c應該大于0小于1,所以c∈(0,1),論文中c都設為了0.8。還有一種理解是說,兩個節點間相隔的節點越多,相似度衰減的越厲害。

  • 結構化程序設計是進行以模塊功能和處理過程設計為主的詳細設計的基本原則。結構化程序設計是過程式程序設計的一個子集,它對寫入的程序使用邏輯結構,使得理解和修改更有效更容易。其概念最早由E

    在二分網絡中,如圖一所示:

    這里寫圖片描述

    理解:

    • A和B之間的相似度等于A,B出度間相似度的平均值。

      a和b之間的相似度等于a,b入度間相似度的平均值。

    • 如果A,B分別代表顧客A和顧客B,a,b,c代表三件商品的話。買家A和B的相似度等于他們購買的物品之間相似度的平均值,物品a和b的相似度是購買它們的買家之間相似度的平均值。

三、樸素計算方法(矩陣計算)

這里寫圖片描述

利用上面的公式即可進行simrank的編碼實現,編程實現部分本文不考慮,如果讀者感興趣可以參考博客http://www.cnblogs.com/zhangchaoyang/articles/4575809.html

四、理解simrank的物理意義(Random Surfer-Pairs Model)

  1. expected distance,即為兩節點間步數的平均值

    這里寫圖片描述

    u為出發點,v為終點且不為中間節點。引入圖二幫助理解,如圖中所示,從u節點到節點v有2條路徑,公式中t即代表路徑,例如t=w1–w2–w3–w4,為u到v的一條路徑,l(t)代表路徑t的長度,即為t中的步數,此處若t=w1–w2–w3–w4,則l(t)為3。p[t]為選擇路徑t的概率,它的值為1/o(wi)的乘積,出度的倒數的乘積!猻igma(概率*步數)= 兩節點間步數的平均值。

    這里寫圖片描述

    圖二

  2. Expected Meeting Distance(EMD)

    這里寫圖片描述

    Note:分別以相同的速度從a,b節點同時出發,x點為終點,即最后在x節點相遇。

    **存在路徑無限長問題

    圖三

    圖三

    如在圖三(a)中,任意的a,b兩點永遠不會相遇,路徑l(t)無限長,導致相似度無限大。

    針對上面的問題:

    1)參考pagerank方法,給它一個跳出循環的機會,給一個小概率可以跳到循環外某一隨機點上。

    2)本文中采用了函數映射的方法,將l(t)映射為指數函數這里寫圖片描述并且指數函數可以滿足題意。兩點相遇所需要的平均步數越大,兩點間相似度越小,最小為0;兩點間相遇需要的步數為0時,即兩點為同一點時,兩點間相似度最大,值為1。

    這里寫圖片描述

    ——所以函數映射以后,引出Expected-f Meeting Distance的概念

  3. Expected-f Meeting Distance

    define s’(a, b), the similarity between a and b in G based on expected-f meeting distance, as

    這里寫圖片描述

    其中,c是(0,1)間的常數。

    有了上面的概念以后,我們可以計算:

    這里寫圖片描述

  4. Equivalence to SimRank,有了上面這個概念,接下來推導相似迭代形式的s‘(a,b),最后得到實際上:s‘(a,b) = s(a,b),s(a,b)為上面提到的同構網絡中的基本公式。推導過程如下,最終可以得

    這里寫圖片描述

  5. Theorem. The SimRank score, with parameter C, between two nodes is their expected-f

    meeting distance traveling back-edges, for f(z) =這里寫圖片描述.

    兩節點間simrank相似度的值即為此兩節點間期望-f相遇距離,也就是(隨機漫步所有的

    可能性)從這兩個節點出發到相遇時所需要的步數的平均數。

五、回顧總結:

1)simrank的基本思想和主要特點

2)simrank的基本公式

3)理解Simrank的物理意義Theorem. $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

    ').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    本文轉載自u013527419博客,版權歸u013527419所有

    基于乘積項的可編程邏百輯結構?GAL、CPLD之類都是基于乘積項的可度編程結構;即包含有可編程與陣列和固定的或陣列的PAL(可編程陣列邏輯)器件構成;诓檎冶淼膯柨删幊踢壌疠嫿Y構?FPGA(現場可編程門陣列)是基于查找表的可編程邏輯結構。FPGA(Cyclone/Cyclone II)系列器件主要由邏輯陣列塊LAB、嵌回入式答存儲器塊(EAB)、I/O單元、嵌入式硬件乘法器和PLL等模塊構成;內容來自www.anxorj.tw請勿采集。

免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
Copyright © 2017 www.anxorj.tw All Rights Reserved
陕西快乐10分下载