一、前言
在论文“Real-time Event Detection on Social Data Streams”中,作者首先在每一个时间窗口(分钟级)内利用社区发现算法(Louvain method)得到一个聚类 ,然后采用带权二分图最大匹配(maximum weighted bipartite matching)对 和上一时间窗口的聚类 进行聚类链接(Cluster Linking)。
We filter out any edges whose weight falls below a threshold and perform maximum weighted bipartite matching to find cluster links.
论文将节点之前的权重定义为: 与 各节点间共有的实体数目。
The edge weight between them is a measure of how many entities these clusters share, similar to the cosine similarity described earlier.
背景交代完,接下来我们就开始补充二分图匹配问题、匈牙利算法和KM算法的相关知识。
二、二分图匹配问题
所谓二分图(Bipartite Graph)就是这样一个图:
简单地说,就是一张图里的所有点可以分为两组(如上图),并且每条边都跨越两组。这样的图就是二分图。
1. 二分图的定义
说的严谨一点:
二分图又称双分图、二部图、偶图,指顶点可以分成两个不相交的集U和V(U和V皆为独立集(Independent Sets)),使得在同一个集内的顶点不相邻(没有共同边)的图。
一个图为二分图仅当:
没有奇数圈;
点色数为2;
2. 相关的几个概念
我们定义匹配点、匹配边、未匹配点、非匹配边。如图3,1、4、5、7为匹配点,其他顶点为未匹配点;1-5、4-7为匹配边、其他边为非匹配边。
匹配(matching):二分图的一个“匹配”是指一些边的集合,任意两条边没有公共点。例如,图3、图4中红色的边就是图2的匹配。
最大匹配(maximum matching):二分图的“最大匹配”,值的是二分图的所有匹配中边数最多的匹配。图4是一个最大匹配。它包