寻找相似集的最大匹配方法-SILKMOTH

论文题目:An efficient method for finding related sets with maximum matching constraints

论文作者:Dong Deng   Albert Kim   

论文单位:MIT

概要

分析集合间的相似性是一个重要的研究领域,主要用于数据清洗,数据挖掘,搜索引擎(如页面去重)等领域。

一般的方法是使用最大二分图匹配,分析两个集合间的相似度,这种方法鲁棒性高,但是时间复杂度高达O(n3)。

这篇文章开发出一个通用系统SILKMOTH,系统原理包括一种签名方法和两种过滤器(检查过滤器+最近邻过滤器),用来剪枝搜索空间,并对最大二分匹配进行了优化,有效提高了寻找相似集合的时间。

实现思路

SILKMOTH使用

该系统选用了两种衡量相似度的标准:set-similarity  set-constraint

两种相似度函数:edit similarity 、 Jaccard similarity

两种寻找模式:discovery mode、search mode(以下分析以该种模式为例,即已知一个集合R,在集合容器S中寻找到与集合R相似的集合)

SILKMOTH框架

签名方法实现分析

对于已知集合R,构造该集合的签名K,通过K与集合容器S中的集合进行匹配,在S中找到与R相似的集合。如何构造有效的签名,是本文研究的重点。以下图为例:

相关参数:

 两种签名方法:

1.非权重签名方法

实现步骤:

step1:假设R和S中某个集合有c个分词相同,就判定为相似;

step2:在R中移除c-1个分词,剩下分词构成一个签名K;

step3:如果K∩S=Ø,则将S中的这个集合移出,不作为候选集合。

缺点:在S中过滤掉的集合较少,效率不高。

2.基于权重的签名方法

kiri一一对应,|ki|/|ri|需满足一定比例. 更有效代表集合R,同时可以过滤掉更多集合。

剪枝步骤

第一步筛选:签名筛选。根据选定的签名K,如果S中的某集合中的分词与K的交集为空,则将该集合移出候选集;

第二步筛选:过滤器筛选。先通过check filter,再通过nearest neighbor filter筛选;

第三步筛选:最大二分匹配。通过优化的最大二分图匹配进行最后的匹配,得出最终结果。

方法评价

通用、效率更高

猜你喜欢

转载自www.cnblogs.com/NeverGiveUp0/p/11108679.html