论文解读:Hierarchical Topic Mining via Joint Spherical Tree and Text Embedding(通过联合球面树和文本进行的层次主题挖掘)

本文是知识发现与数据挖掘大作业,主要是对论文《Hierarchical Topic Mining via Joint Spherical Tree and Text Embedding》进行分析解读。全文字数:5300+。

image-20210929165915703

1. 算法的计算任务

1.1 算法功能

本论文提出的任务为层次主题挖掘(Hierarchical Topic Mining),其目的是基于用户提供的类别层次结构,在语料库中为每个类别检索一组连贯的、有代表性的术语,来帮助用户理解其感兴趣的主题。如图1所示,左侧是用户提供的感兴趣概念的层次结构和语料库(Text Corpus),依靠层次主题挖掘任务,从文本语料库中检索一组代表性的术语(即每个节点的一般描述)。这里的代表性指的是对该类别节点提供了清晰的解释。

image-20210929163104207

图1 层次主题挖掘的示例

1.2 输入数据的物理意义与数学表达

在该算法中,需要输入的数据主要有两个:语料库和类别层次结构。

本论文用到的语料库主要是arXiv(arXiv网站归档的论文摘要及全文数据集)和NYT(纽约时报所有文章数据集)。在存储上,要求每一行都是一个完整的句子或者段落。论文提供了arXiv数据集的mini版本,其存储在TXT格式的文件中,共23万条数据,如图2所示。

image-20210929163147200

图2 arXiv数据集(部分)

本论文输入数据的类别层次结构,在数据结构上是“树”结构,在存储结构上,由两个TXT文件存储,共同构成这棵“树”。一个文件包含所有类别名及其ID,并以空格间隔,如图3(左)所示;另一个文件存储了类别之间的上下级关系,每行包含两个由空格分隔的类别ID,前一个类别是后一个类别的父类别,如图3(右)所示。根据后一个文件,可以将类别名及其上下级关系,整合成树形结构,如图4所示。

image-20210929163210466

图3 左:类别文本文件(部分) 右:类别分类文本文件(部分)

image-20210929163304360

图4 “树”结构

在数学表达上,这个“树”结构,最终以一个N×N的二维矩阵表示。比如上图示例,有33个节点,则以一个33×33的二维矩阵表示,如图5所示。矩阵的列号和行号均对应树中的类别ID,行号和列号从0开始计数。矩阵中的数字0表示这两个节点没有直接关系,数字1表示这两个节点是兄弟关系,数字2表示列号ID是行号ID的父类。

图5 示例输入数据的数学表达

1.3 计算结果的物理意义与数学表达

本项目的计算结果是为每个类别提供一组具有代表性的术语,在项目运行过程中,可以设置运行的epochs,每个epochs运行结束后,运行结果已经在控制台中输出,故其没有实际的数学表达。

当最后一个epochs结束后,其运行结果以TXT格式的文件输出保存。图6是以上述示例为输入的计算输出结果的TXT文件的部分内容截图。

image-20210929163352530

图6 运行结果示例

分析图6的输出结果。截图中的第一行,是Category为physics(物理学)的类别,通过本算法的挖掘后,其代表性术语有:dark_matter(暗物质)、particle_physics(粒子物理学)、colliders(对撞机)等。再如截图中的第三行,是Category为computer(计算机)的类别,通过本算法的挖掘后,其代表性的术语有:open_source(开源)、programming(编程)、library(库)、java、package(包)等。

最终的计算结果,可以整合到图4的“树”结构中。由于输出的结果太多,绘制后的树结构太庞大,图7只给出了physics子树的部分结果。

image-20210929163413338

图7 “physics”子树的部分结果示例

2. 算法的具体应用

该算法的主要任务是根据用户提供的类别层次结构,从语料库中挖掘一组代表性术语,解释每个类别。在具体应用方面,主要应用在主题挖掘、政治文本分析、实体消歧和关系抽取等领域。

(1)自动主题发现(Automatic Topic Discovery)

即根据用户选择的几个主题,挖掘与该主题相关的、隶属于该主题的其他主题,帮助用户理解其感兴趣的主题。比如用户选择了“sport”主题,则可以给该用户推荐“tennis”、“soccer”等相关的主题。

(2)政治文本分析(Political Text Analysis)

即从政治行为者的声明、新闻等文件中,根据一定的层次结构,挖掘该文件的优先事项,帮助更好地理解政治文件的主题和主旨。比如在立法中,在投稿和新闻文件中使用此模型,有助于立法者抓住比如经济、教育等主题领域的重点,从而更好地与民众进行沟通。

(3)实体消歧(Entity Disambiguation)

即对实体进行注释,来消除实体引用的歧义。比如,当我们知道用户正在检索关于篮球运动员Michael Jordan的页面,那么我们只向该用户展示与运动员Michael Jordan相关的附加文章,而不显示与机器学习研究员Michael Jordan的附加文章。实体消歧的主要任务是确定各项子内容与当前的哪个主题相关联。

(4)关系抽取(Relation Extraction)

关系抽取是信息抽取领域中的重要任务之一,即抽取文本之间的实体对,以及识别实体之间的语义关系。其反应的是事物与事物之间的联系。

3. 与算法相关的现有算法

与本文算法相关的现有算法诸多,大致可以将其分为三类:第一类是分层主题模型,即通过捕获主题之间的相关性来扩展其平面对应主题;第二类是文本嵌入模型,即通过单词、短语、句子等的分布式表示学习,有效地捕获文本的语义相似度;第三类是树嵌入模型,其基于双曲嵌入空间的研究,通过模拟树的结构来进行层次主题挖掘。每个分类下的现有代表性算法如下。

1、分层主题模型

(1)hLDA(hierarchical Latent Dirichlet Allocation)

hLDA用一个非参数概率模型,即嵌套中国餐馆过程(Chinese Restaurant Process,CRP)来推广隐含狄利克雷分布(Latent Dirichlet Allocation,LDA),该模型归纳了一条从根主题到叶主题的路径,并通过从沿着这条路径的主题中抽取单词来生成文档。

(2)hPAM(hierarchical Pachinko Allocation Model)

hPAM是建立在弹珠机分布模型(Pachinko Allocation Model,PAM)上的,该模型将文档建模为一组主题层面的分布混合,通过有向无环图来表示主题的共同出现。hPAM通过狄利克雷(Dirichlet)多项式参数的内部节点分布来表示主题层次结构。

(3)HSLDA(Hierarchically Supervised Latent Dirichlet Allocation)

在文档生成期间,HSLDA通过在标签空间中引入广度优先遍历来扩展sLDA(supervised LDA)。

(4)SSHLDA(Semi-Supervised Hierarchical Latent Dirichlet Allocation)

SSHLDA是一个半监督的层次主题模型,它不仅可以挖掘标签中的新的潜在主题,而且可以利用观察到的标签层次结构中的信息。

(5)CorEx(Correlation Explanation)

种子引导的主题模型框架CorEx的任务是学习最大化总相关性的信息主题。其通过保存种子相关信息来合并种子词,能够通过潜在的因素依赖关系生成主题层次结构。

2、文本嵌入模型

(1)Poincaré GloVe

GloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计的词表征工具。Poincaré GloVe采用GloVe模型,在Poincaré空间中训练单词嵌入,自然地捕获单词之间潜在的层次语义关系。

(2)CatE

文本嵌入模型CatE提出了一种判别性文本嵌入方法,在给出了一组类别名称作为用户指南的情况下,用于类别代表词检索。这种方法与本文的方法类似,但是CatE对范畴语义进行了互斥假设,当范畴呈现层次化结构时,这一假设就不成立。

3、树嵌入模型

(1)Poincaré Embedded

Poincaré Embedded的任务是对Poincaré球中的层次结构进行建模。由于嵌入距离直接对应于树的距离,所以Poincaré Embedding可以通过嵌入WordNet的树结构来推断词汇蕴涵关系,或者通过嵌入网络来进行链接预测。

(2)Lorentz

Lorentz模型在双曲空间中引入了一种更有原则的优化方法来学习树的结构:提出了双曲锥模型来建模层次关系,并以封闭的形式表达出最优形状。然而,这种双曲树嵌入方法并不适用于将类别数嵌入到与词联合的空间中,因为双曲嵌入保留了树的绝对距离,即相似的嵌入距离意味着相似的树距离。在一个类别树中,尽管树距离相同,但低级别的兄弟类别通常比高级别的同类类别在语义上更相似。

4. 算法解决的问题

通过第三节对现有相关算法的分析,可以得出本文算法主要从两个方面解决了现有算法中的不足之处。

(1)与以往无监督和有监督的主题模型不同,本文的框架仅采用由类别名称描述的类别层次作为指导,并通过联合球形文本和树嵌入来建立类别与词的语义关联模型,在球形空间中进行训练,使用方向相似性来表征单词、文档和类别之间的语义相关性,能够挖掘高质量的主题,具有很高的效率。

(2)以往的文本嵌入模型都不能对嵌入空间中给定的层次类别结构进行建模并指导文本的嵌入学习。此外,类别嵌入距离不能仅由树的距离决定。所以在本文的模型中,文本和类别树被联合嵌入,使得树结构更好地反映类别的文本语义。

5. 算法的计算步骤

5.1 问题定义

(1)分层主题挖掘(Hierarchical Topic Mining)

给定文本语料库D和树形层次结构T(如图1所示),其中每个节点 c i ∈ T c_i∈T ciT由类别的名称表示,定义:

分层主题挖掘旨在从文本语料库D中,为每个属于树形层次结构T的节点 c i c_i ci检索一组术语 C i = w 1 , w 2 , ⋯ , w m C_i={w_1,w_2,⋯,w_m } Ci=w1,w2,,wm,这样基于文本语料库D C i C_i Ci为每个类别 c i c_i ci提供了清晰的描述。

(2)局部树(Local Tree)

以节点 c r ∈ T c_r∈T crT为根的局部树 T r T_r Tr由节点 c r c_r cr及其所有直接子节点组成。

如图8中的树结构,均为图1类别树的局部树。

image-20210929164031856

图8 两个局部树示例

5.2 算法实现

(1)基本情况(平面情况)的计算

最开始的时候,所有的类别都是并行的,没有显示层次结构。这时的目标是联合嵌入类别及其代表性术语,这要保证每个类别所选择的代表性术语在语义上是一致的,并且类别之间有明显的区别,从而实现清晰的类别解释。

为了实现此目标,要保证两条重要的因素:类内相关性和类间区别性。

所谓类内相关性,即保证相同类别的代表性术语之间应该具有高度的语义相关性,在球面空间中体现为高度的方向相似性。为了实现这一点,我们需要将代表性术语的嵌入放置在一个局部区域的类别中心方向附近,这需要最大化:

image-20210929164425429

image-20210929164443554

(2)局部树递归嵌入

接下来将平面情况下的思想推广到层次情况,并递归嵌入类别树的局部结构,以保持相对的类别关系。关于局部树的定义,已在前文讲述。

在没有层次结构的情况下,成对的类别距离由公式(1.3)执行计算。对于局部树结构,嵌入空间中的类别距离应该以比较的方式反映树的距离。具体来说,由于两个子节点之间的树距离大于子节点和父节点之间的树距离,所以类别在嵌入空间中应该更接近其父类别,而不是靠近其兄弟类别。对于局部树 ,采用如下公式表示如上含义:

image-20210929164507889

针对每个局部树,应用局部树递归嵌入的思想,采用自顶向下的方式,可以将其嵌入到整个类别树中。其主要流程是:首先嵌入以根节点为根的局部树,然后再向下一层嵌入当前层每个节点的局部树。重复这个过程,直至到达叶节点。图10说明了递归嵌入的过程。

image-20210929164530016

图10 左:嵌入第一层局部树 右:嵌入第二层局部树

该嵌入过程,可以通过整合每个局部树来实现嵌入整个类别树的目的。其可以用如下公式表示:

image-20210929164552057

(3)基于条件语料库建模的球形文本嵌入

image-20210929164617626

6. 算法的创新与贡献

挖掘一组组织成层次结构的、有意义的主题,在直观上是很吸引人的,因为主题相关性在大规模文本语料库中是普遍存在的。

在以往完全的无监督情况下,学习的主题层次结构往往会偏离用户的特定需求或兴趣。为了在最少的用户监督情况下指导分层主题发现过程,本文提出的新任务为:分层主题挖掘(Hierarchical Topic Mining)。

本文算法的创新与贡献,主要有以下两点:

(1)采用类似于半监督学习的方法,只需要用户提供一个类别树结果,即可从文本语料库中为每个类别挖掘一组有代表性的术语。

(2)设计了一种新的联合树和文本的嵌入方法,以及一种原则性的优化过程,将以往的树结构嵌入到球形空间中,使用方向余弦表示类别之间的相似度,同时运行在球形空间中同时对类别树结构和语料库生成过程进行建模,提高挖掘代表词的有效性和准确性。

综合实验表明,本文的模型JoSH,能够高质量地挖掘出层次化主题集合,实现高效率、高效益的弱监督层次化文本分类任务。

7. 实验截图

1、实验环境

  • Ubuntu 18.04,4核8线程,8G内存
  • Python 3.6
  • GCC 7.5.0

2、运行过程

(1)将代码上传至服务器,解压源码文件。如下图所示。

(2)解压数据集,如下图所示。

image-20210929164706628

(3)运行脚本,执行此项目进行主题挖掘。如下图所示。

image-20210929164712084

(4)运行过程中输出的截图如下图所示。

image-20210929164718278

(5)运行结果,最后一次的运行结果保证至res.txt文件中。

(6)将文件从虚拟机下载至本机,查看结果,如下图所示。

image-20210929164729325

以上便是此文项目的运行全过程。

其中关于运行的输入和输出结果的详细解释,均在此文第一节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拾年之璐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值