引入概念的多文本标签分类:Concept-Based Label Embedding via Dynamic Routing for Hierarchical Text Classification

本文主要是介绍引入概念的多文本标签分类:Concept-Based Label Embedding via Dynamic Routing for Hierarchical Text Classification,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Zhang, Jiong, Wei-Cheng Chang, Hsiang-Fu Yu, and Inderjit Dhillon. “Fast Multi-Resolution Transformer Fine-Tuning for Extreme Multi-Label Text Classification.” In Advances in Neural Information Processing Systems, 34:7267–80. Curran Associates, Inc., 2021. Fast Multi-Resolution Transformer Fine-tuning for Extreme Multi-label Text Classification.

1 Motivation

        传统的层次多标签文本分类中,忽略了同一层次类之间的信息,比如图中,sport在第一层,是父类,surfing到college是第二层的子类。而在第二层中,surfing和swimming是跟water有关,其余两组类似。文章将water、ball、academy定义为相应子类共享的抽象概念,因而说本文方法是基于概念的标签文本嵌入。

        同理,在数据集wos中,也发现了类似的概念。

2 Methods

         本文提出了基于层次注意力的架构(Hierarchical Sttention-Based Framework,左),其中包含基于概念的分类器(CCM,右上),CCM包含概念共享模块(CSM,下)。下面分别介绍。

2.1 Hierarchical Sttention-Based Framework

Text Encoder

        对于文本,使用CNN进行n-gram特征的提取,然后用双向GRU提取上下文特征,最后得到:

作为文档的表征,|d|为token的个数。

Label Embedding Attention

        第i层的标签表示为:,首先计算余弦相似矩阵,其中。使用卷积核对每一个词p,提取其上下k个长度的特征:,然后使用最大池得到词p对第i层每一个标签的相关值:,用softmax将r标准化之后,计算标签和文本之间的注意力分数:

 2.2 Concept Sharing Module (CSM)

        上面是主体框架,文档的表征已经说明了来源,而CSM和CCM就是获得标签的表征C的。

Concepts Encoder

        首先对于每一个类c,将其语料库中的关键词拿出来,并将其中的top-n作为这个类的概念。对于关键词,wos中每个文档都有相应的关键词,可以直接使用。DBpeida中没有,本文使用卡方检验获得单词和类之间的依赖关系,并根据卡方值进行排序。

        两种方法编码概念:

        1) 直接使用top-n个关键词

        2) 将所有关键词进行聚类(GloVe 300-dimensional embeddings作为词嵌入的初始化),然后选取聚类的中心词

        这两种方法得到的结果都可以表示为:

 Concepts Sharing via Dynamic Routing

        对于HTC问题,子类和父类、不同类之间共享一些概念。不同概念从不同的角度描述一个类,而概念的共享体现了类间的语义联系。使用下述方法迭代更新标签表征:

 

 beta表示概念i和类j的耦合因子(couping coefficient),b的来源见上图

v为类的表征,类似于注意力机制

 然后将v压缩得到c(squashing)

对上述过程迭代r次得到最后的表示。

2.3 Classification

损失函数为每层的损失之和:

3   Experiments

3.1 datasets

 3.2 Ablation

3.3  Visualizations

感想

        本文乍一看比较复杂,但实际上还是与LightXML类似,都是将标签进行聚类。与之不同的是,本文使用的不是传统的聚类,而是采用语义。

这篇关于引入概念的多文本标签分类:Concept-Based Label Embedding via Dynamic Routing for Hierarchical Text Classification的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/795968

相关文章

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

一文教你Python引入其他文件夹下的.py文件

《一文教你Python引入其他文件夹下的.py文件》这篇文章主要为大家详细介绍了如何在Python中引入其他文件夹里的.py文件,并探讨几种常见的实现方式,有需要的小伙伴可以根据需求进行选择... 目录1. 使用sys.path动态添加路径2. 使用相对导入(适用于包结构)3. 使用pythonPATH环境

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

Python实现常用文本内容提取

《Python实现常用文本内容提取》在日常工作和学习中,我们经常需要从PDF、Word文档中提取文本,本文将介绍如何使用Python编写一个文本内容提取工具,有需要的小伙伴可以参考下... 目录一、引言二、文本内容提取的原理三、文本内容提取的设计四、文本内容提取的实现五、完整代码示例一、引言在日常工作和学

Java实现将Markdown转换为纯文本

《Java实现将Markdown转换为纯文本》这篇文章主要为大家详细介绍了两种在Java中实现Markdown转纯文本的主流方法,文中的示例代码讲解详细,大家可以根据需求选择适合的方案... 目录方法一:使用正则表达式(轻量级方案)方法二:使用 Flexmark-Java 库(专业方案)1. 添加依赖(Ma

SpringBoot利用dynamic-datasource-spring-boot-starter解决多数据源问题

《SpringBoot利用dynamic-datasource-spring-boot-starter解决多数据源问题》dynamic-datasource-spring-boot-starter是一... 目录概要整体架构构想操作步骤创建数据源切换数据源后续问题小结概要自己闲暇时间想实现一个多租户平台,

Maven pom.xml文件中build,plugin标签的使用小结

《Mavenpom.xml文件中build,plugin标签的使用小结》本文主要介绍了Mavenpom.xml文件中build,plugin标签的使用小结,文中通过示例代码介绍的非常详细,对大家的学... 目录<build> 标签Plugins插件<build> 标签<build> 标签是 pom.XML