基于 Amazon SageMaker 的时空感知社交媒体文本话题识别

自动化
0
0
> 文章作者:罗志飞、李琳、胡威 > > 武汉理工大学计算机与人工智能学院 > > 武汉科技大学工程训练中心 > > 武汉科技大学计算机科学与技术学院 # 引言 随着社交媒体的普及和用户数量的迅速增长,社交媒体已经成为人们获取信息、分享观点和表达情感的重要平台。从日常生活琐事到重大事件,社交媒体上涌现出大量与灾害相关的文本。这些文本包括灾害事件的报道、目击者的实时描述、求助信息和援助呼吁等。社交媒体文本作为灾害信息的来源,具有独特的实时性、广泛性和多样性。它们反映了灾害发生地的现场情况、民众的反应和需求,成为灾害管理和紧急响应的重要参考。 社交媒体文本的海量特点给准确的分类和分析带来了巨大挑战。每天数以亿计的社交媒体用户在平台上发布各种与灾害相关的内容,使得手动处理和分析变得困难。因此,迫切需要运用自动化方法来有效地处理和利用这一海量的信息资源。 面向社交媒体灾害事件的文本分类研究具有重要的实践和理论意义。在实践层面,通过对社交媒体文本进行准确的灾害话题识别,可以更好地了解文本与灾害之间的关系程度。这有助于确定哪些文本是与灾害紧密相关的,从而提供更精确的信息和指导,支持灾害管理、应急响应和援助决策。最终帮助减少灾害带来的损失和伤害,保护人们的生命财产安全,提高社会的抗灾能力。在理论层面,对社交媒体灾害文本进行分类,可以为灾害研究提供更多的数据资源。研究人员可以分析文本所包含的灾害信息,深入研究灾害事件的影响、传播机制和社会动态。这将为灾害研究领域的进一步发展和理论建构提供有益的支持。 # 方法 ## 1 框架 本文所构建的模型使用社交媒体博文的时空信息,即博文发布的时间和博文发布时用户的地理位置,为博文分类提供时空方面的语境信息。灾害相关博文往往与灾害事件相关联,时间和空间信息是灾害事件的重要属性。本文利用博文信息和时空信息构建图结构,并在其上使用关系图卷积网络进行博文特征学习。时空模型框架如图1所示。 ![image.png](https://dev-media.amazoncloud.cn/c3f5f3bdd7564c5e813094fc716266a2_image.png "image.png") 图1  时空感知社交媒体文本灾害话题识别框架 时空模型框架图中的 B0 表示编号为 0 的博文,T0L0 表示编号为 0 的时间和编号为0的空间的组合。 ## 2 节点编码模块 节点编码模块包括博文节点编码器和时空节点编码器两部分。博文节点编码器以文本作为输入,通过微调好的 BERT 模型,提取“\[CLS]”标记对应的隐藏表示,即一个长度为 768 的句子级别的编码表示作为输出。时空节点编码器则将每个时空节点统一表示为长度与博文节点编码器输出长度相同的全零特征向量。 ## 3 关系图卷积模块 关系图卷积模块的时空图包含 2 类节点,博文节点和时空节点。博文节点是将单条博文整体作为时空图中的一个节点。时空节点是由时空信息抽象出的节点,时间信息以天为单位,在确定时间范围内产生时间信息点,空间信息以省为单位,基于行政区划产生空间信息点,对时间信息点和空间信息点进行笛卡尔积操作,生成时空节点。 时空图有 4 类边,分别是时间边、空间边、博文到时空边以及时空到博文边。 ##### **1、时间边** 时间边是连接空间属性相同时间属性不同的时空节点,这些节点由时间边按照时间顺序连接起来,组成一条链状结构。例如存在三个时空节点,按照时间顺序由近到远排列,分别是“时间 1-空间 A”、“时间 2-空间 A”和“时间 3-空间 A”,那么“时间 1-空间 A”节点和“时间 2-空间 A”节点之间由一条时间边连接(双向),“时间 2-空间 A”节点和“时间 3-空间 A”节点之间由一条时间边连接(双向)。 在图中,时间边能够沟通邻近时间范围内的博文信息,考虑博文在不同时间点的演变,从而获取更准确和全面的时间语境信息,捕捉一个时间段内的灾害事件。时间边允许模型考虑时间的连续性,从而更好地理解社交媒体文本与灾害事件之间的联系,提升模型在社交媒体灾害事件文本分类任务上的性能。下面一段内容摘录自国家减灾网,作为灾害的时间连续性的一个示例。 “10月2日–6日,我国出现今年下半年首次寒潮天气过程,自北向南影响大部分地区,中东部地区出现剧烈降温,山西、河南等地发生低温冷冻灾害,造成马铃薯、玉米等部分作物遭受冻害减产或绝收,农作物受灾面积 17.4 千公顷,直接经济损失 4.2 亿元。” ##### **2、空间边** 空间边是连接时间属性相同空间属性不同的时空节点,这些节点由空间边基于省份之间的邻接关系连接起来,组成一个网状结构。以湖北省为例,存在三个时空节点,分别是“时间 1-湖北省”、“时间 1-安徽省”和“时间 1-重庆市“,根据湖北省与其他省份的邻接信息,“时间 1-湖北省”节点和“时间 1-安徽省”节点之间由一条空间边连接(双向),“时间 1-湖北省”节点和“时间 1-重庆市”节点之间由一条空间边连接(双向)。 利用空间边连接相邻空间节点,能够沟通邻近空间范围内的博文信息,捕捉一个地理范围内的灾害事件。空间边的引入使得模型能够考虑博文在地理空间上的分布和关联,进一步增强对社交媒体文本与灾害事件之间关联性的理解,捕捉灾害事件在地理维度上的传播和影响,为社交媒体灾害事件文本分类任务提供更有区分度的特征表示。下面一段内容摘录自国家减灾网,作为灾害的空间连续性的一个示例。 “火灾起数总量下降,较近五年同期均值下降 1200 余起;分布区域集中,受南方持续高温少雨影响,湖南、广西、江西、湖北、重庆等南方省份是森林火灾多发区域。” ##### **3、博文到时空的边** 每条博文都包含时间和空间信息,同时在时空节点集合中也存在与之唯一对应的时空节点,依据此关系,从一博文节点指向其对应时空节点的边即为博文到时空边。利用博文到时空边,时空节点可以汇聚其所对应的所有博文的信息,这意味着时空节点能够综合考虑该时空上的多个博文的特征,从而提供了更加全面和丰富的语境信息。 ##### **4、时空到博文的边** 时空到博文边是博文到时空边的逆向边,即由时空节点指向一与其对应的博文节点。时空节点到博文节点的边连接实现了时空信息对博文节点的传递,使博文节点能够获取其所在时空的信息,对自身特征进行更新。通过时空到博文边,模型能够更好地理解博文与灾害事件之间的关联性,捕捉到博文在特定时空范围内的语义,进一步提升模型的性能。 本文使用 R-GCN 在上述异构图上学习博文特征。R-GCN(Relational Graph Convolutional Network)是一种基于图神经网络的模型,用于处理包含多种关系类型的图数据。由于 R-GCN 在图结构中考虑关系类型,它能够更好地捕捉节点之间的关联信息。传统的图神经网络通常假设所有节点之间的关系相同,R-GCN 引入了关系特定的权重参数,使得每种关系类型都有不同的影响力。这样,R-GCN 能够在学习节点特征时,根据具体的关系类型调整节点之间的信息传递。通过多层的图卷积操作,R-GCN 能够逐步聚集节点的邻居信息,生成更丰富的节点特征。传播函数如(1)所示。 (1)  ![image.png](https://dev-media.amazoncloud.cn/0d2c659851dc47bdabacceffde31ed4b_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/5e06d9a54c044905a22ec74ff06db6e6_image.png "image.png") ## 4 分类模块及训练算法 分类模块首先对关系图卷积模块输出的博文特征部分进行线性变换,将长度为 768 的特征向量变换为长度为 3 的向量,之后将线性变换结果经过非线性激活函数 ReLU,增加分类器的非线性能力,最后对经过 ReLU 激活后的结果应用 Softmax 函数得到标签的概率分布,选取最大概率的标签作为最后的分类结果。 本文使用全批量梯度下降技术对时空模型进行训练,训练算法见算法 1。 ![image.png](https://dev-media.amazoncloud.cn/5236d59c4efc4d3c8640aa5d3e272402_image.png "image.png") # 实验 ## 1 实验平台介绍 SageMaker 平台是亚马逊提供的一项全托管的机器学习平台,SageMaker 提供了自动化构建和维护的计算基础设施、丰富强大的机器学习工具以及清晰的工作流程,使开发者能够轻松地构建、训练和部署各种类型的机器学习模型。 本文可基于 SageMaker 平台完成社交媒体灾害话题文本分类任务。任务采用关系图卷积 R-GCN(Relational Graph Convolutional Network)模型进行特征学习,选择使用 DGL(Deep Graph Library)库处理图数据,Amazon SageMaker 提供了对 DGL 的支持(https\://docs.aws.amazon.com/sagemaker/latest/dg/deep-graph-library.html?trk=cndc-detail ) 。其中 1. R-GCN 是一种基于图神经网络的模型,用于处理包含多种关系类型的图数据; 2. DGL 是一个专为图神经网络设计的高性能库,它提供了丰富的图操作和算法,能够帮助我们在大规模图数据上进行高效的计算和训练。 ## 2 实验步骤 1. **上传数据集:** 创建 Notebook 实例(SageMaker支持的云端完全托管式 Jupyter Notebook),生成 SageMaker 会话(Session)和角色(get_execution_role),创建 S3 存储桶,使用 SageMaker 封装好的 upload_data 接口将本地文本数据集上传至 S3 的对应位置; 2. **上传模型文件和训练脚本:** 上传定义了基于 PyTorch 的文本分类模型的模型文件(model.py),以及定义了训练过程的脚本文件(train.py); 3. **定义 Estimator 对象:** 生成一个 Estimator 对象(Estimator 是 Amazon SageMaker 提供的一个高级抽象概念,用于简化机器学习模型的训练和部署过程),设置训练参数,例如训练入口,即 train.py 的路径、训练实例类型 train_instance_type、PyTorch 框架版本和 python 版本(指定这两个参数可以直接使用 Amazon SageMaker 提供的 DL Container 来训练 DGL 模型)等; 4. **训练模型:** 利用 SageMaker 提供的 IntegerParameter 等模块设置模型的超参数调整范围,定义一个 HyperparameterTuner 对象(HyperparameterTuner 是 SageMaker 提供的一个工具,用于自动调整机器学习模型的超参数),传入 Estimator 对象、超参数调整范围等参数,调用 HyperparameterTuner 对象的 fit 接口进行模型训练; 5. **部署模型:** 在训练好的 Estimator 对象的基础上创建一个 PyTorchModel(PyTorchModel 是 SageMaker 中用于部署和执行 PyTorch 模型的对象),调用 PyTorchModel 的 deploy 接口即可部署模型,返回一个预测器,调用其 predict 接口完成对模型的评估。 ## 3 实验数据及参数设置 本文将数据集按照 8:1:1 的比例划分为训练集、验证集和测试集。训练集有 14858 条博文,验证集有 1857 条博文,测试集有 1858 条博文。 ##### **1、文本长度分布** 训练集共有 14858 条博文,每条博文平均字数 39 个,最短句子长度为 3,最长句子长度为 197,其中 75% 以下的数据长度在 51 以内,50% 以下的数据长度在 28 以内,25% 以下的数据长度在 17 以内。测试集共有 1858 条博文,每条博文平均字数 39 个,最短句子长度为 3,最长句子长度为 206,其中 75% 以下的数据长度在 51 以内,50% 以下的数据长度在 28 以内,25% 以下的数据长度在 17 以内。从数据描述的角度来说,训练集和测试集的指标很接近。文本长度分布频率直方图如图 2 所示。 ![image.png](https://dev-media.amazoncloud.cn/ac1343127ee9415cac54c08f298e1056_image.png "image.png") 图2  文本长度分布频率直方图 从分布频率直方图上看,训练集和测试集近似同分布。使用 scipy 模块的 stats.ks\_2samp 函数计算 P-value,结果为 0.97,大于指定的显著性水平 0.05。因此,得出结论,训练集和测试集在文本长度方面是同分布的,它们可以被认为是从相同的数据分布中抽样而来。 ##### **2、文本灾害话题标签分布** 训练集共有 14858 条博文,其中高相关性文本有 7935 条,占训练集总数的 53.4%,中相关性文本有 734 条,占训练集总数的 4.9%,中相关性文本有 6189 条,占训练集总数的 41.7%。测试集共有 1858 条博文,其中高相关性文本有 996 条,占测试集总数的 53.6%,中相关性文本有 106 条,占测试集总数的 5.7%,中相关性文本有 756 条,占测试集总数的 40.7%。从数据描述的角度来说,训练集和测试集的指标很接近。 使用 scipy 模块的 stats.ks\_2samp 函数计算 P-value,结果为 0.99,大于指定的显著性水平 0.05。因此,得出结论,训练集和测试集在文本标签方面是同分布的,它们可以被认为是从相同的数据分布中抽样而来。 对于时空模型,本文使用 Adam 优化器,设置初始学习率为 5e-5,设置训练轮数为 40,采用全批量梯度下降。本文构建了 3 个 R-GCN 层数不同的模型,分别是 2 层、4 层以及 6 层。隐藏层大小按指数方式递减,以 2 层模型为例,输入特征大小为 768,第 1 层隐藏层大小为 384,第 2 层隐藏层大小为 192。 本文使用 BERT 作为基线模型,同样将优化器设置为 Adam,设置初始学习率为 1e-6,设置训练轮数为 20,批处理大小为 4。 ## 4 实验结果与分析 实验结果如表 1 所示。 ![image.png](https://dev-media.amazoncloud.cn/5688f9f31daa4ea29bdeb114ab847674_image.png "image.png") BERT 模型首先将输入的文本进行分词,并添加特殊的标记来表示句子的开始、结束和间隔,接着,经过嵌入层将每个词转换为对应的词向量,随后,词向量会经过多层的 Transformer 编码器,最后,从 Transformer 的最后一层输出中提取特征向量,将其输入到分类器中进行分类,实验表明,BERT 在测试集上的准确率为 86.3%,运行时间为 6.8e-4s。时空模型中,4 层模型取得了最高的准确率,运行时间为 5.7e-2s。 和基线模型进行比较,4 层时空模型在测试集上的准确率有 2.2% 的提升,准确率较低的 2 层和 6 层模型相比基线模型仍有所提升。这表明,时空信息为社交媒体灾害事件文本分类提供了帮助。一方面,通过博文与时空属性的联系,博文可以获取到其所在时空的上下文信息;另一方面,通过时空属性与时空属性之间的联系,模型可以捕捉到一个时空范围内灾害信息。总的来说,引入时空信息的时空模型对社交媒体灾害信息文本的特征有更好的把握。 从运行时间上看,时空模型的运行时间随着 R-GCN 层数的增加而变长,整体上来说,时空模型的运行时间要远远长于 BERT 模型,二者时间的差值即为时空模型为了融合时空信息而进行关系图卷积操作所花费的时间。虽然时空模型和基线模型的运行时间存在着数量级上的差距,但是综合考虑时空模型运行时间的绝对值和测试集大小,进行关系图卷积操作所花费的时间仍然是在可接受范围之内。 模型准确率折线图如图3所示。 ![image.png](https://dev-media.amazoncloud.cn/f0f0690fb72143bd8784cd066fcab77d_image.png "image.png") 图3  模型准确率折线图 基线模型和 0 层时空模型等价。从折线图上看,2 层模型相比 0 层在准确率上有 1.3% 的提升,这是得益于 2 层模型可以捕捉一条博文所在时空的上下文信息。4 层模型相比 2 层在准确率上有 0.9% 的提升,这是由于在 2 层模型的基础上,4 层模型可以捕捉一条博文相邻时空的特征,为其提供更完整的语境信息。6 层模型相比 4 层在准确率上有 0.7% 的下降,这是因为 6 层模型比 4 层模型融入了更大范围的相邻时空特征,但由于范围过大,较远的时空特征反而成为了上下文信息中的噪音,使得语境信息的质量有所下降。 # **总结与展望** 本文旨在解决社交媒体灾害事件文本分类的挑战,通过构建异构时空图和采用 R-GCN 模型实现了准确分类,时空模型相对于基线模型在测试集上取得了 2.2% 的准确率提升。这表明通过引入时空信息能够更准确地把握社交媒体灾害事件文本的特征,提高分类性能。 本文挖掘博文的时空属性作为额外信息帮助进行文本分类任务,博文作为社交媒体平台上的文本,还拥有其他属性,例如博文下的评论、博文被转发的情况、参与博文的用户的信息等,将这些属性融入图中,为博文提供更全面的上下文信息,是否会给模型的性能带来提升,也是可以进一步探索的方向。 请持续关注 User Group 微信公众号,了解更多面向开发者的技术分享和社区动态! ![640.gif](https://dev-media.amazoncloud.cn/82ad800e98b94e62a132d3548e15ff89_640.gif "640.gif")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭