LPA算法简介

1. 背景

      标签传播算法(Label Propagation Algorithm)是一种基于图的半监督学习方法,其基本思路是用已标记节点的标签信息去预测未标记节点的标签信息。

2. 算法流程

1. 为每个节点随机的指定一个自己特有的标签;

2. 逐轮刷新所有节点的标签,直到所有节点的标签不再发生变化为止。

对于每一轮刷新,节点标签的刷新规则如下:

        对于某一个节点,考察其所有邻居节点的标签,并进行统计,将出现个数最多的那个标签赋值给当前节点。当个数最多的标签不唯一时,随机选择一个标签赋值给当前节点。

        在LPA中,节点的标签更新通常有同步更新和异步更新两种方法。

1. 同步更新:节点x在t时刻的更新是基于邻接节点在t-1时刻的标签;

2. 异步更新:节点x在t时刻更新时,其部分邻接节点是t时刻更新的标签,还有部分的邻接节点是t-1时刻更新的标签。

        LPA算法在标签传播过程中采用的是同步更新,但同步更新应用在二分结构网络中,容易出现标签震荡的现象。因此,之后大多采用异步更新策略来避免这种现象的出现。

3. 算法原理

3.1 相似矩阵构建

       令( x1,y1) … ( xl,yl) 是已标注数据,YL={ y1…yl} ∈{ 1…C} 是类别标签,类别数 C 已知,且均存在于标签数据中。令( xl + 1,yl + 1) …( xl + u,yl + u) 为未标注数据,YU={ yl + 1 … yl + u} 不可观测,l << u,n=l+u。令数据集 X = { x1…xl + u} ∈R。问题转换为: 从数据集 X 中,利用YL的学习,为未标注数据集YU的每个数据找到对应的标签。将所有数据作为节点(包括已标注和未标注数据),创建一个图,这个图的构建方法有很多,这里我们假设这个图是全连接的,节点i和节点j的边权重为:\omega _{ij}=exp(-\frac{\left \| x_{i}-x_{j} \right \|^{2}}{\alpha ^{2}}),这里α是超参。

        还有个非常常用的图构建方法是knn图,也就是只保留每个节点的k近邻权重,其他的为0,也就是不存在边,因此是稀疏的相似矩阵。

 2.2 LPA算法

       通过节点之间的边传播 label。边的权重越大,表示两个节点越相似,那么label越容易传播过去。定义一个N x N的概率转移矩阵P:

P_{ij}=P(i \rightarrow j) = \frac{\omega _{ij}}{\sum_{k=1}^{n}\omega _{ik}}   ,   P_{ij} 表示从节点 i 转移到节点 j 的概率。

        将 YL 和 YU 合并,得到一个N x C的 soft label 矩阵 F=[YL; YU]。

        soft label的意思是,保留样本 i 属于每个类别的概率,而不是互斥性的,这个样本以一个概率属于一个类。最后确定这个样本 i 类别时,取概率最大的那个类作为它的类别。

        F 里面有个YU,一开始是不知道的,最开始随便设置一个值就可以了。

  简单的LP算法如下:

1. 执行传播:F=PF;

2. 重置F中样本的标签:FL=YL;

3. 重复步骤(1)和(2)直到F收敛。

        步骤(1)就是将矩阵 P 和矩阵 F 相乘,这一步,每个节点都将自己的 label 以 P 确定的概率传播给其他节点。如果两个节点越相似(在欧式空间中距离越近),那么对方的 label 就越容易被自己的 label 赋予。步骤(2)非常关键,因为 labeled 数据的 label 是事先确定的,它不能被带跑,所以每次传播完,它都得回归它本来的 label。

2.3 变身的LPA算法

       每次迭代都是计算一个 soft label 矩阵 F=[YL; YU],但是 YL 是已知的,计算它没有什么用,在步骤(2)的时候,还得把它弄回来。我们关心的只是 YU,那能不能只计算 YU 呢?将矩阵P做以下划分:

P=\begin{bmatrix} P_{LL} & P_{LU} \\ P_{UL} & P_{UU} \end{bmatrix}

令   f=\binom{f_{L}}{f_{U}}   

这时算法就一个运算:

f_{U}\leftarrow P_{UU}f_{U} + P_{UL}Y_{L}

        迭代上面这个步骤直到收敛就ok了。可以看到 f_{U} 不但取决于 labeled 数据的标签及其转移概率,还取决了 unlabeled 数据的当前 label 和转移概率。因此 LP 算法能额外运用 unlabeled 数据的分布特点。

2.4 收敛性证明

当n趋近于无穷大是,有

因此

4. 优缺点

4.1 优点

1. 算法逻辑简单,时间复杂度低,接近线性复杂度,在超大规模网络下会有优异的性能,适合做社区发现的baseline;
2. 无须定义优化函数,无须事先指定社区个数,算法会利用自身的网络结构来指导标签传播。

4.2 缺点

1. 雪崩效应:社区结果不稳定,随机性强。由于当邻居节点的社区标签权重相同时,会随机取一个。导致传播初期一个小的错误被不断放大,最终没有得到合适的结果。尤其是异步更新时,更新顺序的不同也会导致最终社区划分结果不同。

        上图中展示了一次 LPA 的流程:初始化阶段,每个节点都以自己作为社区标签。比如a的社区就是a,c的社区就是c。当进入传播阶段,节点c的邻居节点共4个:a,b,c,d。而社区标签也是4个:a,b,c,d,假设随机取了一个a。如果是异步更新,此时b,d,e三个节点的邻居节点中社区标签均存在2个a,所以他们都会立马更新成a。如果c当时随机选择的是b,那么d,e就会更新成b,从而导致b社区标签占优,而最终的社区划分也就成b了。

2. 震荡效应:社区结果来回震荡,不收敛,当传播方式处于同步更新的时候,尤其对于二分图或子图存在二分图的结构而言,极易发生。

        上图中展示了一次二分图中 LPA 的流程,在同步更新的时候,每个节点依赖的都是上一轮迭代的社区标签。当二分图左边都是a,右边都是b时,a社区的节点此时邻居节点都是b,b社区的节点此时邻居节点都是a,根据更新规则,此时a社区的节点将全部更新为b,b社区的节点将全部更新为a。此时算法无法收敛,使得整个网络处于震荡中。

参考:【知识图谱】两种 Python 方法实现社区发现之标签传播算法(LPA)_标签传播算法 python-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前沿论文 | LLM推理性能优化最佳实践

原文&#xff1a;安全验证 - 知乎​ 来源 题目&#xff1a;LLM Inference Performance Engineering: Best Practices 地址&#xff1a;https://www.databricks.com/blog/llm-inference-performance-engineering-best-practices 在这篇博文中&#xff0c;MosaicML工程团队分析了…

2024-4-22 群讨论:微服务启动预热相关

以下来自本人拉的一个关于 Java 技术的讨论群。关注公众号&#xff1a;hashcon&#xff0c;私信进群拉你 Hotspot JVM 进程启动后&#xff0c;流量到来的时候 JIT 吃掉很多 CPU&#xff0c;如何观察到&#xff1f; 很多途径都能观察到&#xff1a; top -Hp&#xff1a;这个需…

ApiHug 的初心-ApiHug101

视频 秒懂 ApiHug -019 HOPE &#x1f525; H.O.P.E.: Help other people excellent &#x1f49d; 是这个项目最初的初心 &#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ &#x1f3e0; gitee github search ApiHug ApiHug &#x1f917; ApiHug {Post…

云架构(五)BBF模式

BFF模式&#xff08;Backends for Frontends pattern&#xff09;- https://learn.microsoft.com/en-us/azure/architecture/patterns/backends-for-frontends。 创建单独的后台服务用以提供给特定的前端或者接口。当你希望避免为多个接口定制单独的后台时&#xff0c;此模…

7天录用!录用→检索仅21天!CCF推荐毕业神刊

本周投稿推荐 SSCI • 2/4区经管类&#xff0c;2.5-3.0&#xff08;录用率99%&#xff09; SCIE&#xff08;CCF推荐&#xff09; • 计算机类&#xff0c;2.0-3.0&#xff08;最快18天录用&#xff09; SCIE&#xff08;CCF-C类&#xff09; • IEEE旗下&#xff0c;1/2…

限时疯抢!阿里云服务器十大优惠活动合集,手慢无

限时疯抢&#xff01;阿里云服务器十大优惠活动合集&#xff0c;手慢无阿里云服务器优惠活动&#xff08;2024年最新整理&#xff09;&#xff0c;阿里云服务器优惠活动大全、2024阿里云优惠政策整理&#xff0c;包括官方优惠活动主会场、2024年4月优惠活动分为&#xff1a;免费…

服务器(Linux、AIX)监控软件【nmon】使用

目录 1.安装 2.使用 3.使用 4.采集数据 5.查看log&#xff08;根据结果&#xff0c;生成报表&#xff09; 6.分析结果 1.安装 apt-get install nmon 2.使用 输入nmon进入下面的界面 x Use these keys to toggle statistics on/off: …

牛客网刷题 | BC60 判断是不是字母

描述 KiKi想判断输入的字符是不是字母&#xff0c;请帮他编程实现。 输入描述&#xff1a; 多组输入&#xff0c;每一行输入一个字符。 输出描述&#xff1a; 针对每组输入&#xff0c;输出单独占一行&#xff0c;判断输入字符是否为字母&#xff0c;输出内容详见输出样例…

加密、解密、签名、验签、数字证书、CA浅析

一、加密和解密 加密和解密应用的很广&#xff0c;主要作用就是防止数据或者明文被泄露。 加解密算法主要有两大类&#xff0c;对称加密和非对称加密。对称加密就是加密和解密的密钥都是一个&#xff0c;典型的有AES算法。非对称加密就是有公钥和私钥&#xff0c;公钥可以发布…

【Web】DASCTF X GFCTF 2024|四月开启第一局 题解(全)

目录 EasySignin cool_index SuiteCRM web1234 法一、条件竞争(没成功) 法二、session反序列化 EasySignin 先随便注册个账号登录&#xff0c;然后拿bp抓包改密码(username改成admin) 然后admin / 1234567登录 康好康的图片功能可以打SSRF&#xff0c;不能直接读本地文…

最详细步骤解决:Apps targeting Android12 and higher are required to specify...

问题原因&#xff1a; 当targetSdkVersion>31时&#xff0c;需要在AndroidManifest.xml中配置android:exported的值&#xff0c;该值为boolean类型。 android:exported解释&#xff1a; activity 是否可由其他应用的组件启动&#xff1a; 如果设为 "true"&#…

持续更新。。。

1、JAVA面试指南 https://javaguide.cn/ 简历优化&#xff1a;突出与应聘职位相关的项目经验、技术栈、技能证书和专业成就。确保简历中的技术关键词与JD&#xff08;Job Description&#xff09;相符。 自我评估&#xff1a;对照目标职位要求&#xff0c;梳理自身Java技能树&…

【磁盘根目录扩容】

目的 给磁盘的根目录扩容&#xff0c;每个人在服务器上在根目录操作的可能性更大&#xff0c;如果单独指定一个目录扩容&#xff0c;很有可能使用不当 步骤 未扩容时&#xff0c;查看到sda下有两个分区&#xff0c;目前要扩展追加一个分区 使用fdisk -l查看到sda有4.9T&…

AI写作助手:一键智能改写文章质量高

无论是自媒体人写作文章、还是企业撰写宣传资料&#xff0c;文字都是表达思想和传递信息的重要介质。然而&#xff0c;有时候我们在工作中可能会遇到写作困难&#xff0c;或者想要对文章进行一定程度的改写以增加独特性和质量。而在这样的背景下&#xff0c;智能改写文章成为了…

VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt

原文链接&#xff1a;VS2019编译OSG3.7.0OSGEarth3.3OSGQt-CSDN博客 工具与环境 这里使用的 cmake-3.18.3 、 VS2019 和 Qt5.15.2 进行编译。 一、编译OSG3.7.0 1、下载 下载不多赘述&#xff0c;在github上下master版本就是3.7.0版本。 另外还需要 3rdParty_VS2017_v141_…

Maxwell安装使用和简单案例

一、解压 cd /opt/software/ ​ tar -zxvf maxwell-1.29.2.tar.gz -C /opt/module/ ​ cd /opt/module/ 二、MySQL 环境准备 1、修改 mysql 的配置文件 修改 mysql 的配置文件&#xff0c;开启 MySQL Binlog 设置 vi /etc/my.cnf 添加以下内容 server_id1 log-binmysql-…

基于WOA优化的CNN-GRU-Attention的时间序列回归预测matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1卷积神经网络&#xff08;CNN&#xff09;在时间序列中的应用 4.2 GRU网络 4.3 注意力机制&#xff08;Attention&#xff09; 4.4 WOA优化算法 5.算法完整程序工程 1.算法运行效果图…

把 WordPress 变成 BaaS 服务:API 调用指南

有了前面两篇内容的铺垫&#xff0c;我们来聊聊 WordPress 作为 CMS / BaaS 服务使用时绕不开的问题&#xff0c;API 调用。 这篇内容同样的&#xff0c;会尽量少贴代码&#xff0c;简单的讲清楚一件事&#xff0c;降低阅读负担。 写在前面 首先&#xff0c;我们需要进行清晰…

Docker Compose 的安装和使用详解

Docker Compose 是 Docker 官方开源的容器编排(Orchestration)项目之一,用于快速部署分布式应用。本文将介绍 Docker Compose 的基本概念、安装流程及使用方法。 简介 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。从功能上看,Docker C…

卡车卫星定位系统 user/create 未授权密码重置漏洞复现

0x01 产品简介 卡车卫星定位系统是一种基于卫星通信和导航技术的系统,用于对卡车的位置进行精确测定。该系统主要由一组卫星、地面控制站和接收器组成。通过测量卫星信号的传播时间,可以确定接收器(即卡车上的定位设备)所在的位置。具有高精度、高可靠性、全球覆盖等特点,…