探索BERTopic:神经主题建模的新时代
BERTopic是一种新颖的主题建模技术,它在保持主题描述中重要词汇的同时,允许易于解释的主题。
在我们穿越数字信息的浩瀚海洋时,从未像现在这样迫切需要工具从非结构化文本数据中提取有意义的见解。BERTopic站在这个变革时代的前沿,采用基于神经网络的技术,以前所未有的准确性和深度揭示大型文本语料库中的主题和模式。
在这篇博客中,我们将探讨BERTopic主题建模技术的复杂性,从它对变换器模型的依赖到其在聚类和降维方面的创新方法。
什么是主题建模?
在我们深入BERTopic之前,我们应该了解主题建模。
主题建模是一种在文档集合中挖掘潜在主题或“主题”的方法。它涉及检查这些文档中的文本,以检测表明这些主题存在的模式和关系。例如,专注于人工智能的文档可能会包含“大型语言模型”和“ChatGPT”等术语,而以烤面包为中心的文档则不会。
主题建模自1990年以来就存在,一些流行的技术包括潜在语义分析(LSA)、潜在狄利克雷分配(LDA)和非负矩阵分解(NMF)。然而,这些传统技术要么不呈现单词之间的语义关系,要么难以提取给定文档组的最有代表性的主题。
什么是BERTopic?
BERTopic是一种新颖的主题建模技术,简化了主题建模过程。它使用各种嵌入技术和基于类的TF-IDF(c-TF-IDF)创建密集的聚类,允许在保持主题描述中重要词汇的同时,易于解释的主题。它可以分析不同密度聚类中的潜在主题,并提取具有最相关关键词的主题。BERTopic扩展了现有的基于文档嵌入的主题建模方法,但灵活性和鲁棒性使其与现有解决方案区分开来。
BERTopic在高层次上通过四个步骤进行主题建模:
文档嵌入:使用预训练的变换器语言模型(如双向编码器表示从变换器(BERT))将文档转换为称为嵌入的数值表示。
降维:将嵌入压缩到低维空间。
聚类:将这些嵌组合并,将相似的文档归为一类。
主题提取:使用基于类的TF-IDF变体提取主题名称。
文档嵌入
BERTopic从将输入文档转换为称为嵌入的数值表示开始。BERTopic允许您选择任何能够捕捉文本语义本质的最先进的嵌入模型。在原始的BERTopic论文中,由于其在各种句子嵌入任务中的稳健表现,句子BERT(SBERT)被用作嵌入模型。这个模型,特别是all-MiniLM-L6-v2模型,可以通过HuggingFace Hub访问。另外,来自OpenAI的专有模型,如text-embedding-ada-002、text-embedding-small或text-embedding-large,是生成嵌入的其他选择,尽管这些通常是订阅制的。
降维
嵌入是高维的,这可能会减慢后续聚类的步骤。此外,降维可以帮助我们在评估数据是否可以聚类时可视化我们的数据。因此,在构建嵌入后,BERTopic将它们压缩到低维空间。
在这一步中,嵌入的文档向量被投影到更小的嵌入空间,允许聚类算法创建连贯的聚类。有许多解决方案可用于降维,如主成分分析(PCA)或t-SNE(t-分布随机邻域嵌入)。然而,论文的作者建议使用UMAP(均匀流形近似和投影),因为它在将矩阵投影到较低维度时保持了局部和全局信息。
聚类
在降低输入嵌入的维度后,我们可以应用聚类算法创建文档聚类。这个过程很重要,因为我们的聚类技术越有效,我们的主题表示就越准确。
这里最推荐使用基于密度的聚类方法(DBSCAN),因为它允许创建具有不同密度的聚类,这更适合主题建模。在BERTopic论文中,作者建议使用分层基于密度的聚类方法(HDBSCAN),这是原始DBSCAN算法的一个变体。HDBSCAN比DBSCAN更适合,因为它:
不需要事先指定主题数量。
有效处理异常值。
然而,没有完美的聚类模型;您可能希望根据您的用例使用完全不同的东西。
主题提取
BERTopic的最后一步是为我们的每个聚类提取主题。为此,BERTopic使用一种称为基于类的TF-IDF的修改版本的TF-IDF,也称为c-TF-IDF。
TF-IDF代表词频-逆文档频率,是一种用于量化一个词对文档相关性的算法。在TF-IDF的基于类的变体中,一个聚类中的所有文档被连接并表示为一个文档。与识别一个词对文档的相关性不同,cTF-IDF反映了一个词对聚类的相关性。
其他可选步骤
除了上述四个关键步骤外,BERTopic方法还涉及可选步骤,如基于用户特定要求的标记化和表示微调。
27-1.png
BERTopic库概览;图片来源:https://maartengr.github.io/BERTopic/algorithm/algorithm.html
BERTopic的实际用例和应用
近年来,BERTopic在不同行业和领域中得到了广泛应用,包括像Meta、Microsoft、CISCO、NVIDIA和Amazon这样的财富500强公司。开发者和组织在各种用例和领域中使用BERTopic,从癌症研究和声音感知研究到分析员工调查和社交媒体内容。
BERTopic的一些实际应用包括:
跨国电信公司Telefonica采用BERTopic进行主题建模和客户评论的分类,以改善用户体验(UX)并揭示有用的客户信息。
在美国国土安全部,BERTopic通过识别讨论的关键主题和评估情感来分析员工调查。
麦克马斯特大学在一项研究项目中使用BERTopic,通过分析参与者听取人们说“Hi”的录音描述,对基于声音感知的第一印象进行分类。
Iodine Software使用BERTopic分析医院的医生创建的文档。他们利用它来识别文本中的主题,并确保对医疗文件进行清晰的解释。
挑战和考虑因素
使用BERTopic进行主题建模可能会带来挑战,如正确的嵌入模型选择、多语言支持、离线运行、慢速推理等。让我们来探讨一些常见问题及其解决方案:
内存:BERTopic在对大型数据集建模主题时往往会遇到内存不足的问题。这通常主要是由于UMAP,它可以用较低的内存占用来执行。其次,我们可以跳过主题提取阶段中大量文档主题分布的计算,并将概率矩阵限制为相关的前K个主题。第三,我们可以通过将一个词被考虑为潜在主题的最小频率设置为一个较大的数字,来减少TF-IDF矩阵的大小。
速度:由于嵌入阶段,BERTopic在处理大量文档集合时运行缓慢。为了加快算法速度,你可以事先并行异步执行。另一个解决方案是使用GPU(如果你可以访问一个),或者你可以利用Google Colab或Kaggle的免费层。
主题数量:BERTopic通常会生成大量主题,这并不总是有帮助的。减少主题数量的一个简单方法是设置最小主题大小。在另一个场景中,当生成的文档数量非常少时,可以增加数据集中的文档数量及其多样性,或减少最小主题大小。
开始使用BERTopic
BERTopic是一个托管在GitHub上的开源项目。该软件包拥有超过5000颗星,并为开始使用该框架提供了广泛的文档。BERTopic提供了一种模块化方法,允许您为每个步骤使用不同的算法,从而构建您自己的主题模型。
27-2.png
BERTopic基本上允许您构建自己的主题模型。
图片来源:https://maartengr.github.io/BERTopic/algorithm/algorithm.html
每个步骤都是一个构建块,该库为每个阶段提供了多种选项。例如,如果我们选择spaCy进行文档嵌入,使用PCA进行降维,K-means进行聚类,使用CountVectorizer组合文档,最后使用c-TF-IDF进行主题提取,我们就拥有了一个端到端的定制BERTopic模型。
要开始使用BERTopic,首先使用以下命令安装此软件包:
27-3.png
接下来,为您想要建模主题的数据集设置。我在这里使用的是包含英文文档的20newsgroup数据集。
27-4.png
初始化BERTopic模型并找到主题。
27-5.png
显示提取的顶级主题,并仔细检查一个主题的顶级词汇,以了解主题与其相关文档之间的关系。
27-6.png
27-7.png
27-8.png
使用BERTopic中支持的许多可视化工具来可视化主题。让我们可视化聚类的密度分布:
27-9.png
27-10.png
最后,我们还可以查看聚类或主题中的顶级词汇:
27-11.png
27-12.png
如果你想构建更复杂的主题建模解决方案并拥有更多的控制权,请查看这些资源:
BERTopic建模:你从未见过的方式
官方BERTopic文档
关于BERTopic的总结
BERTopic是一个惊人的框架,允许快速现成的主题建模,帮助理解大量文档集合。BERTopic有许多优点,包括:
无需数据预处理。
灵活性,可以尝试来自Gensim、Flair、Spacy,甚至是来自OpenAI或HuggingFace的最先进LLM的不同文档嵌入。
出色的可视化范围,用于检查和分析建模的主题。
BERTopic的广泛适用性,从癌症和声音感知的学术研究到企业环境中的实际分析,如员工反馈和社交媒体监控,突显了它在不同领域的重要性和潜在影响。Meta、Microsoft和Amazon等公司已经利用BERTopic的力量来改进他们的运营和策略。
随着我们继续生成并依赖大量文本数据,像BERTopic这样的工具在我们的数据分析和知识发现工具包中变得不可或缺。它为更广泛的受众民主化了高级主题建模的力量,并在该领域树立了新的标准,承诺持续的演变和增强,以满足数据驱动行业的动态需求。
技术干货
LLMs 记忆体全新升级:六大新功能全面出击,用户体验值拉满!
本次,我们新增了价格计算器、取消存储配额限制、自动暂停不活跃数据库等功能,用户体验感再上新台阶。通过阅读本文,用户可以快速、详尽地了解 Zilliz Cloud 的六大新功能!
2023-5-5技术干货
向量数据库发展迎里程碑时刻!Zilliz Cloud 全新升级:超高性价比,向量数据库唾手可得
升级后的 Zilliz Cloud 不仅新增了诸如支持 JSON 数据类型、动态 Schema 、Partition key 等新特性,而且在价格上给出了史无前例的优惠,例如推出人人可免费使用的 Serverless cluster 版本、上线经济型 CU 等。这意味着,更多的开发者可以在不考虑预算限制的情况下畅用云原生向量数据库。
2023-6-15技术干货
LLM 快人一步的秘籍 —— Zilliz Cloud,热门功能详解来啦!
此次我们在进行版本更新的同时,也增加了多项新功能。其中,数据迁移(Migration from Milvus)、数据的备份和恢复(Backup and Restore)得到了很多用户的关注。本文将从操作和设计思路的层面出发,带你逐一拆解 Zilliz Cloud 的【热门功能】。
2023-4-10