2018-11-13

基于Louvain算法的聚类分析及推荐

一、算法介绍:

Louvain算法是基于模块度的一个快速算法,用模块性对社区划分的质量进行衡量,如果模块性的值越大,说明社区划分的质量越高。并行化后的louvain算法在分布式环境下进行多次迭代,每次迭代需要同步更新多个节点的信息,即根据上一次迭代中邻居节点的信息来更新本次迭代中的信息,从而充分发挥高并发性的优势。

二、算法思想:

Louvain算法主要分为两个阶段,首先初始化每个节点为一个社团,不断便利网络中的所有节点,将其从原来的社团中取出,计算该点加入到各个社团产生的模块度增量,如果该模块度增量大于零,则从这些大于零的模块度增量所对应的社团中选出对应模块增量最大的社团,将该点与之合并。重复上述过程,直到网络中社团不再合并。其次利用划分得到的第一层社团构造新的网络,新节点之间的权值就是原社团之间的权值。重复上一阶段的过程,直到社团之间不能再合并为止。

三、评价模块:

1.模块度:

社团模块度指标Q是用于刻画社团性强弱 参数,定义如下:

模块度

式(1)中 ,ki 和 k j 是节点的度值 ;Ci 是节点 i所属社团 ;m 是网络总边数 ;A ij 代表了节点 i 与节点 j 之间的边的权值 ;δ(Ci ,Cj )函数表示节点 i 与 j 在同一个集群内 ,当 Ci = Cj 时 ,δ(Ci ,Cj ) = 1 ,否则为 0 。 Q 值在[0 ,1]之间 ,一般以 Q = 0 .3 作为网络有明显社团结构 Q 值越接近 1 ,说明发现的社团质量越高。

2、 模块度增量

首先进行社团初始化 ,网络中的每个节点都分配一个社团编号 ,初始时每个节点都看作一个社团 ,对应社团的模块度增量 ΔQ[7 ] :

2018-11-13_第1张图片
模块度增量

其中 ∑in 是社团内部边的权值之和 ;∑out 是所有与社团内部节点相连的边的权值之和 ;ki 是所有与点 i 相连的边的权值之和 ;K i ,in 是节点 i 与社团 C 相连的边的权值之和。

四、应用:

1、需求:

当今各大视频软件对分类搜索的功能广泛使用,视频推荐功能也逐渐完善,所推荐的视频基本可以投其所好,满足用户需求。但是当视频分类较多、种类较繁杂,用户便无法快速选择出自己最中意的分类,进而进行分类搜索,因此实现一个基于标签推荐的模块,即可以方便用户使用,又能间接的诱导用户搜索视频,进而提高用户粘度。

2、数据选择:

经过对比,选取了当前版权较为齐全、用户使用量较大、视频种类比较繁杂的“bilibili”作为研究的目标。我们从“bilibili”的视频信息中获取相关标签信息,通过数据清洗和整合,获取了以标签中的某些属性为点、以同一视频下几个标签的关联关系为边、关联数量为权值的图,根据社区算法将标签进行聚类分析。

3、处理过程:

(1) 由于bilibili中标签定数据量过大,使用louvain社区算法时,GC操作导致内存不足的问题;用连通图来解决社区归属问题。对数据进行精简,只对关注度和使用度超过一定数量的数据进行计算。最后提取出1095个有效标签进行聚类分析。

(2) 聚类时,计算次数过少拟合度低,计算次数过多过拟合。设置适中的计算次数进而得到拟合度较高的计算结果。经过对几次结果的对比分析,发现算法的第二次结果较为理想。

(3) 为了加快节点的遍历过程,添加辅助索引。

4、可视化:


2018-11-13_第2张图片
可视化结果

将计算结果可视化,如上图所示:图中可以看出明显的四大聚类,从左到右依次为:MAD、虚拟歌姬、动画和游戏。分布在正上方和右下方的,还有一些小型的聚类,如:明星、格斗。

五、结束语:

本文主要介绍了louvain算法的基本思想,和运算流程,并以实例演绎了louvain算法的用途。并说明louvain算法在处理不同数据和运行不同次数所带来的不同结果。

社交网络等一些复杂网络都是不停地在进行数据更新 ,对于这样的网络图应该提出怎样的动态聚类算法也是接下来应该讨论的问题。 另外如何选取最优的算法,对聚类结果进行相似性标签的推荐,也是之后需要考虑的。

【参考文献】

[1]金亮,于炯,杨兴耀, 等.基于聚类层次模型的视频推荐算法[J].计算机应用,2017,(10):2828-2833,2860. DOI:10.11772/j.issn.1001-9081.2017.10.2828.

[2]夏玮,杨鹤标.改进的Louvain算法及其在推荐领域的研究[J].信息技术,2017,(11):125-128. DOI:10.13274/j.cnki.hdzj.2017.11.032.

[1]金亮,于炯,杨兴耀, 等.基于聚类层次模型的视频推荐算法[J].计算机应用,2017,(10):2828-2833,2860. DOI:10.11772/j.issn.1001-9081.2017.10.2828.

[2]夏玮,杨鹤标.改进的Louvain算法及其在推荐领域的研究[J].信息技术,2017,(11):125-128. DOI:10.13274/j.cnki.hdzj.2017.11.032.

[3]吴卫江,李沐南,李国和.Louvain 算法的并行化处理[J].计算机与数字工程,2016,(8):1402-1406. DOI:10.3969/j.issn.1672-9722.2016.08.002.

[1]金亮,于炯,杨兴耀, 等.基于聚类层次模型的视频推荐算法[J].计算机应用,2017,(10):2828-2833,2进行860. DOI:10.11772/j.issn.1001-9081.2017.10.2828

作者:刘玉琪、卢轩、施亮、郑壮壮

你可能感兴趣的:(2018-11-13)