SimRank--基于结构的相似度度量方法学习笔记

来源:本网整理

基于乘积项的可编程copy逻辑结构?GAL、CPLD之类都是基于乘积项的可编程结构;即包含有可编程与阵列和固定的或阵百列的PAL(可编程阵列逻辑)器件构度成。基于查找表知的可编程逻辑结构?FPGA(现场可编程门阵列)是基于查找表的可编程逻辑结构。FPGA(Cyclone/Cyclone II)系列器件主要由逻辑阵列块LAB、嵌入式存储器块(EAB)、I/O单元、嵌入式硬件乘法器道和PLL等模块构成;www.zgxue.com防采集请勿采集本网。

详见: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)的乘积,出度的倒数的乘积。———sigma(概率*步数)= 两节点间步数的平均值。

    这里写图片描述

    图二

  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(可编程阵列逻辑)器件构成。基于查找表的问可编程逻答辑结构?FPGA(现场可编程门阵列)是基于查找表的可编程逻辑结构。FPGA(Cyclone/Cyclone II)系列器件主要由逻辑阵列块LAB、嵌回入式答存储器块(EAB)、I/O单元、嵌入式硬件乘法器和PLL等模块构成;内容来自www.zgxue.com请勿采集。

免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
Copyright © 2017 www.zgxue.com All Rights Reserved