使用LLM(Large Language Model)进行主题建模

news2025/1/21 2:57:21

随着互联网技术的快速发展,自然语言处理(NLP)领域取得了显著的进步。其中,大型语言模型(LLM)在文本生成任务中表现尤为抢眼。本文旨在探讨LLM在主题建模方面的优势,以及如何将其应用于文本生成任务,从而提高文本生成效率。
 
LLM在主题建模中的应用

 1. 文章生成:LLM利用其对主题建模的能力,根据特定主题生成具有逻辑性和连贯性的文章。以智能写作助手为例,LLM可以对用户输入的主题、内容等信息进行建模,然后生成符合主题要求的文章,从而提高写作效率。
 
 2. 文本摘要提取:LLM可以在不丢失文章主旨的前提下,对大量文本进行摘要提取。通过这种方式,用户可以快速了解文本的主要内容,为文章的进一步处理提供便利。
 
 3. 智能对话系统:LLM可以构建智能对话系统,使得用户可以更便捷地获取信息。例如,在智能客服中,LLM可以利用自然语言处理技术对用户的提问进行理解,并生成相应的回复,从而提供更加贴心的服务。
 
 4. 机器翻译:LLM可以利用其对多种语言文本进行建模的能力,对源语言文本进行机器翻译。这有助于用户更好地理解和沟通跨文化信息,提高国际交流的效率。
 
 5. 文本纠错:LLM可以对文本进行实时纠错,以消除拼写、语法等低级错误,提高写作质量。
 
 6. 情感分析:LLM可以对文本进行情感分析,以判断文本的情绪倾向。这有助于用户更好地把握文章的立意,为文章的修改提供依据。
 
 7. 实体识别:LLM可以对文本进行实体识别,以挖掘文本中的关键信息。这有助于用户更好地把握文章的主题,为文章的生成提供依据。
 
 8. 文本生成概述:LLM可以利用其对主题建模的能力,根据特定主题生成具有逻辑性和连贯性的文章。以智能写作助手为例,LLM可以对用户输入的主题、内容等信息进行建模,然后生成符合主题要求的文章,从而提高写作效率。
 
 9. 文本摘要提取:LLM可以在不丢失文章主旨的前提下,对大量文本进行摘要提取。通过这种方式,用户可以快速了解文本的主要内容,为文章的进一步处理提供便利。
 
 10. 智能对话系统:LLM可以构建智能对话系统,使得用户可以更便捷地获取信息。例如,在智能客服中,LLM可以利用自然语言处理技术对用户的提问进行理解,并生成相应的回复,从而提供更加贴心的服务。
 
 11. 机器翻译:LLM可以利用其对多种语言文本进行建模的能力,对源语言文本进行机器翻译。这有助于用户更好地理解和沟通跨文化信息,提高国际交流的效率。
 
 12. 文本纠错:LLM可以对文本进行实时纠错,以消除拼写、语法等低级错误,提高写作质量。
 
 13. 情感分析:LLM可以对文本进行情感分析,以判断文本的情绪倾向。这有助于用户更好地把握文章的立意,为文章的修改提供依据。
 
 14. 实体识别:LLM可以对文本进行实体识别,以挖掘文本中的关键信息。这有助于用户更好地把握文章的主题,为文章的生成提供依据。

主题建模是在大量文本文档集合中发现潜在主题结构的常用技术。我们今天来谈谈这个话题。

传统的主题模型,如潜在Dirichlet分配(LDA),将文档表示为主题的混合体,其中每个主题都是单词的分布。主题通常用最可能的单词表示,但这种表示可能包含不连贯或不相关的单词,使用户难以解释主题。

虽然有些模型能让用户根据需求和领域知识交互式地引导主题,但它们的可用性受到词袋主题格式的限制。

为了解决这些局限性,TopicGPT依靠提示大型语言模型来执行上下文话题生成和分配。

为了解决这些问题,《TopicGPT: A Prompt-based Topic Modeling Framework》(https://arxiv.org/abs/2311.01449)引入了TopicGPT,使用LLM来发现所提供文本集合中的潜在主题。与其他方法相比,TopicGPT生成的主题更符合人类的分类。

本文对该工作进行介绍,供大家一起参考。

一、实现思路

在具体实现上如下图所示:

首先,根据输入数据集中的文档样本和之前生成的主题列表,反复提示LLM生成新主题。

然后进一步完善生成的主题集,以整合冗余主题并消除不常见的主题。

最后,给定一个新文档,LLM会将其分配给一个或多个已生成的主题,并提供该文档的引文以支持其分配。 这些引文使该方法易于验证,解决了困扰传统主题模型的一些有效性问题。

与其他方法相比,TopicGPT生成的主题质量更高。在维基百科文章和国会法案两个数据集上,与LDA和BERTopic相比,TopicGPT的主题和赋值与人类标注的基本真实主题的一致性要高得多。

在三个外部聚类指标(单值平均纯度、归一化互信息和调整后的兰德指数)来衡量主题对齐度,发现Top-icGPT比基线有提高;

此外,它的主题与人类标记的主题在语义上更加对齐。进一步的分析表明,TopicGPT的主题质量在各种提示和数据设置下都很稳健。

二、具体实现方案

TopicGPT包括两个主要阶段:主题生成(§3.1)和主题分配。

1、主题生成

主题生成阶段根据输入数据集提示LLM生成一组主题,然后进一步完善这些主题,删除不常用的主题并合并重复的主题。

这一步的输出可以选择性地输入到TopicGPT的分层扩展中,促使模型生成更精细的子主题。 

首先,生成新的主题:在第一阶段,反复提示大语言模型(LLM)生成描述性主题。

给定语料库中的一个文档d和一组种子主题S,该模型会被指示要么将d分配给S中的一个现有主题,要么生成一个能更好地描述d的新主题并将其添加到S中。

例如,具体的种子主题示例如下:

贸易:提及资本、商品和服务的交换 其中"贸易"是主题标签。

最初的种子集由少量人工撰写的主题组成(实验使用了两个种子主题),不需要特定于数据集。

其次,完善生成的主题:首先使用句子嵌入来识别余弦相似度≥0.5的主题对。然后,用五个这样的主题对提示LLM,指示它酌情合并相关或接近重复的主题对。

这一合并步骤可合并多余的主题,并调整各主题之间的特异性,从而返回一个连贯的最终列表。

为了解决上一步可能忽略的次要主题,剔除出现频率较低的主题。为此,跟踪每个主题的生成频率。如果某个话题的出现频率低于"剔除"阈值,就认为该话题是次要的,并将其从最终列表中剔除。

然后,生成话题层次结构:进一步利用TopicGPT来构建多层次的话题层次结构。

具体地,将细化阶段后生成的顶级话题视为顶级话题,并提示LLM在后续级别上生成更具体的子话题。

然后,向模型提供一个包含顶级主题t、种子子主题S′和与顶级主题t相关的文档dt的主题分支。

为了确保子主题是基于文档而不是幻觉,模型还必须返回支持每个子主题的具体文档。

如果文档无法在单个提示中找到,就会将它们划分到不同的提示中,并在随后的提示中包含由较早的提示生成的副标题。

2、主题分配

在分配阶段,目标是在生成的主题列表和数据集中的文档之间建立有效且可解释的关联。

首先,需要向LLM提供了生成的主题列表、2-3个示例和一份文档(有兴趣获取其中的主题)。然后,指示模型为给定的文档分配一个或多个主题。最终输出包括分配的主题标签、特定于文档的主题描述以及从文档中提取的引文,以支持这一分配。

引用文本提高了TopicGPT所做标记的可验证性,而这一直是LDA等传统方法所关注的问题。

主题任务示例如下:

农业:提及农产品出口要求的变化("......农产品出口要求的提高......")。其中"农业"是指定的主题标签,其后是主题描述和括号内的文件引文。 

其次,为了解决格式不正确或质量不高的主题分配问题,加入了自我修正步骤。具体地,使用一个解析器来识别幻觉主题分配或无效回复(如"无"/"错误")。随后,向LLM提供被识别的文档和错误类型,打乱主题列表以增加随机性,并提示模型重新分配有效的主题。

三、实验步骤及结论

在实验对比环节,使用两个有标签的英语数据集将TopicGPT与两个流行的话题模型进行了比较。目标是评估TopicGPT的输出是否与人类编码的基本真实主题一致,并测试其在各种设置下的鲁棒性。

1、数据集

使用了两个英文数据集进行评估:Wiki和Bills。对这两个数据集采用了Hoyle等人的处理流程。

Wiki数据集包含15个高级标签、45个中级标签和279个低级标签,均由人工标注。

Bills包含第110-114届美国国会的32661份法案摘要。该数据集带有21个高级和114个低级人工注释标签。

考虑了两种流行的主题模型,它们遵循不同的范式:LDA和BERTopic。

LDA使用带有Gibbs采样的LDA的MALLET实现。为了公平比较,将主题数k控制为等于TopicGPT生成的主题数。

BERTopic通过对文档的句子转换器嵌入进行聚类来获得主题,主题数k等于TopicGPT生成的主题数。

2、实验结果

先看主题聚类的情况,在Bills和Wiki语料库中处理的文档所产生的主题数量。灰线表示预期主题数,是根据数据集的真实主题的经验分布模拟得出的。

对于这两个数据集,看到了类似的模式:在红线虚线标示的"话题荒"时期过后,最初生成的话题数量(橙色线)不断增加。尽管处理了更多的文档,最终完善的主题(蓝线)和预期的主题数量(灰线)却趋于平稳。

又如下图,显示了维基数据集生成的主题层次结构,最终的效果。

如表2所示,与基线模型相比,Top-icGPT识别的主题与人类标注的标签更加一致,而且这种改进在所有数据集、设置和评估指标中都是成立的。

在两个基线模型中,LDA在所有指标上都普遍优于BERTopic,这表明LDA仍然是一个强大的基线模型。

为了充分理解TopicGPT和人类标签之间的分歧,仔细研究了五个默认设置下基本事实主题和TopicGPT不一致的分配,发现每个抽样文档都可以合理地作为多个主题。如下所示:

总结

本文介绍了《TopicGPT: A Prompt-based Topic Modeling Framework》(https://arxiv.org/abs/2311.01449)这一工作,该工作引入了TopicGPT,使用LLM来发现所提供文本集合中的潜在主题。与其他方法相比,TopicGPT生成的主题更符合人类的分类。

不过,该工作也存在不足,例如:

其效果依赖于一个较好的大模型,此外上下文限制。

长文本限制,该方法需要截断文档以适应TopicGPT的上下文长度限制。如果只提供部分文档,就会失去潜在的有价值的上下文,并有可能误导完整文档的内容。虽然在这些初步实验中截断是必要的,但认识到这并不是一个理想的解决方案。

其对非英语种的效果问题。其尚未在非英语数据集上对TopicGPT进行评估。这块需要我们进行实验,具体的,可以参考其项目地址https://github.com/chtmp223/topicGPT。

参考文献

1、https://github.com/chtmp223/topicGPT

2、https://arxiv.org/abs/2311.01449

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

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

相关文章

深度图进行运算检测物体表面粗糙度

文章目录 应用场景算法原理核心代码应用场景 不同程度凹凸的零件表面粗糙度对零件的磨损产生影响,很大程度上关系到产品性能和使用寿命。不同于单独使用的产品,零件需要在装配中与其他零件相连,密封性和磨损量是厂商需要考虑的一大加工要素;其次,产品外观和触感也会影响到…

数据结构链表2(常考习题1)(C语言)

移除链表元素: . - 力扣(LeetCode) 题目: 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 解题思路: 情况1: 情…

【vluhub】skywalking

SkyWalking是一个开源监控平台,用于从服务和云原生基础设施收集、分析、聚合和可视化数据 低版本存在sql注入漏洞 访问地址 http://192.168.203.12:8080/graphql burpsuite抓数据包 替换 {"query":"query queryLogs($condition: LogQueryConditi…

安装STM32开发工具:STM32CubeMX、STM32CubeIDE、STM32CubeCLT

ST官网地址:https://www.st.com/content/st_com/en.html ST官网因为链接原因下载会比较慢,推荐使用STMCU中文官网,下载很通畅:STMCU中文官网 安装Java 在安装STM32开发软件STM32CubeMX和STM32CubeIDE、STM32CubeCTL之前&#x…

浏览器事件循环详解

1. 浏览器的进程模型 1.1. 何为进程? 程序运行需要有它自己的专属内存空间,可以把这块内存空间简单的理解为进程。 每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。 1.2. 何为线程&#xff1f…

【Linux】进程间通信(3):共享内存

目录 一、共享内存概述 二、共享内存相关函数 1、shmget函数 2、ftok函数 3、shmctl函数 4、 shmat函数 5、 shdt函数 三、使用共享内存相关函数管理共享内存的一般过程 1. 生成唯一的键值 2. 创建或获取共享内存段 3. 连接到共享内存段 4. 操作共享内存 5. 断开…

2024 NVIDIA开发者社区夏令营环境配置指南(Win Mac)

2024 NVIDIA开发者社区夏令营环境配置指南(Win & Mac) 1 创建Python环境 首先需要安装Miniconda: 大家可以根据自己的网络情况从下面的地址下载: miniconda官网地址:https://docs.conda.io/en/latest/miniconda.html 清华大学镜像地…

对提高数据和指令缓存命中率方法的验证

对于如何写出让CPU跑得更快的代码这一问题,我看到了两种方法,分别是:1、提高数据缓存命中率;2、提高指令缓存命中率。 本文对这两种方法进行了简单的验证,并提供了示例代码。 本文基于2.3 如何写出让 CPU 跑得更快的代…

大规模深度学习推理引擎是什么?

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 首先,我们来理解 “深度学习”:它是人工智能的一个重要分支,模仿人脑的神经网络结构,运用多层神经网络来学习和解析数据。这些神经网络能够从庞大的数据集…

二、版本更新与插件安装

版本更新 点击版本管理 点击刷新列表后点击一键更新,即可完成更新(注意完成更新必须要关闭正在运行的服务) 更新拓展(更新插件) 点击拓展-刷新列表-一键更新 即可 注意:操作完成以后必须重新启动方可生效…

(六)activiti-modeler 设计器属性编辑弹窗bug修复

BUG重现 在使用流程设计器时,经常碰到弹窗不小心关闭,比如不小心点击了灰色背景上,此时BUG就出现了。弹窗被关闭了,分配用户属性被置空了,以前有数据也被清空了,还无法再次点击弹窗编辑。 不仅仅是分配用…

deque和优先级队列

咱学完栈和队列之后,又了解到了vector和list,更深入的了解到了它们各自的优势,那么有没有可能结合它们的优点摒弃弱点呢,其实是有人这么试过的,不过咱还在学vector和list就证明他可能没成功,不过并不影响我…

python中类class的魔法方法

开始介绍之前,我们先看下之前文章我们介绍过的内置类merryview的一些方法,如下图所示: 有很多双下划线开始和结束的method,这么多method是做啥子用的呢? 其实这些方法就是我们常说的魔法方法,也是python中的…

【代码随想录】二分查找

文章为代码随想录的学习笔记,链接: 代码随想录 只要看到面试题中给出的数组是有序数组,都可以想一想是否可以使用二分法。 基本概念 二分查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。‘ 查找过程&…

2024年华数杯数学建模竞赛——赛题浅析

本次华数杯与国赛同频【第一天下午六点发题,第四天下午八点收卷】,一共74小时。难度约为国赛的0.8,题量约为国赛的0.8-0.9.非常适合作为国赛前的练手赛。下面为大家带来本次华数杯的选题建议,希望对大家有所帮助。 一图流 选题人…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 卢小姐的字符串解压缩(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题…

36-38 关系数据库入门

关系数据库入门 关系数据库概述 数据持久化 - 将数据保存到能够长久保存数据的存储介质中,在掉电的情况下数据也不会丢失。 数据库发展史 - 网状数据库、层次数据库、关系数据库、NoSQL数据库。 1970年,IBM的研究员E.F.Codd在Communication of the ACM…

【Material-UI】Autocomplete中的禁用选项:Disabled options

文章目录 一、简介二、基本用法三、进阶用法1. 动态禁用2. 提示禁用原因3. 复杂的禁用条件 四、最佳实践1. 一致性2. 提供反馈3. 优化性能 五、总结 Material-UI的Autocomplete组件提供了丰富的功能,包括禁用特定选项的能力。这一特性对于限制用户选择、提供更好的用…

长短期记忆网络LSTM

目录 一、LSTM提出的背景:1.RNN存在的问题:2.LSTM的思想:2.1回顾GRU的提出:2.2LSTM在GRU上的改进: 二、遗忘门、输入门、输出门:三、LSTM网络架构:1.候选记忆单元C~t:2.遗忘门、输入…

顶刊TPAMI 2024!无需全标注,仅用少量涂鸦标注即可获得确定和一致的语义分割预测结果...

本文介绍了山东大学,北京大学和纽约州立大学石溪分校合作开展的一项工作。该工作面向图像涂鸦弱标注语义分割任务,重点关注采用涂鸦弱标注时语义分割网络的不确定性和不一致性问题。 作者提出最小化熵损失函数和网络嵌入的随机游走过程来分别改善分割网络…