在大数据与内容推荐场景中,面对海量非结构化的资讯数据(例如每日抓取的数十万篇 RSS 订阅文章),如何自动发现高价值的热点主题,并在此基础上进行热度监测和趋势预测,是一个极具挑战性的工业级任务。

传统的 LDA(隐含狄利克雷分布)由于缺少语义上下文理解,对于短文本和跨领域异质文本的聚类效果往往差强人意。而近年来崛起的 BERTopic,凭借预训练 Transformer 语义嵌入、UMAP 降维以及 HDBSCAN 层次聚类的深度结合,成为了当前主题建模(Topic Modeling)领域最前沿的利器。

本文将结合 lite_agent 项目中实际落地的一套 RSS 热点发现系统,分享如何通过 “先分类、后聚类” 的两层架构增量嵌入缓存优化 以及 LLM 协同主题命名,将 BERTopic 的聚类离群率(Outliers)从原生的 52% 骤降至 16%,并实现低延迟的生产级每日调度。


1. 什么是 BERTopic?核心四阶段解析

BERTopic 的底层架构并非单一算法,而是流水线式的算法组合。其核心思想是通过以下 四个阶段,一步步将零散的文本映射并聚合成直观的主题:

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  1. 向量化坐标   ├────>│    2. 降维      ├────>│ 3. 亲近关系聚类 ├────>│ 4. 分组与大模型 
│ (Embedding 转换)│     │   (UMAP 降维)   │     │ (HDBSCAN 分组)  │     │ (c-TF-IDF / LLM)│
└─────────────────┘     └─────────────────┘     └─────────────────┘     └─────────────────┘
  1. 向量化多维坐标 (Embedding):利用预训练语言模型(如 SentenceTransformer)将文本转化为高维空间中的稠密向量(例如 384 维坐标),将语义相似性转化为数学空间中的余弦距离。
  2. 多维空间降维 (UMAP):高维向量中存在维度灾难,直接计算距离效果极差。BERTopic 引入 UMAP(统一流形逼近与投影),在保留数据全局和局部流形结构的前提下,将特征压缩到较低的维度(如 5 维),使得后续的邻近计算更加高效精准。
  3. 计算亲近关系与汇总分组 (HDBSCAN):HDBSCAN 基于密度的聚类算法会自动计算低维坐标下向量之间的临近关系。它不需要预先指定聚类数量(如 K-Means 那样),而是自动识别出任意形状和密度的簇,并允许将孤立的噪声点划分为 “-1” 离群组,从而生成干净、高内聚的话题组。
  4. 主题表示与分组命名 (c-TF-IDF & LLM):通过基于类别的 TF-IDF(c-TF-IDF)算法,从每个分组中抽取最具有区分度的 Top 关键词。在工业落地中,我们更进一步,将分组中随机抽样的标题样本提供给 LLM(大语言模型),自动提炼出极具表意能力的人类可读中文主题标签(如“大模型推理加速”)。

2. 核心业务挑战

在我们的场景中,我们需要处理来自不同平台(如小红书、哔哩哔哩、arXiv、V2EX、GitHub、IT之家、雪球和知乎等)的 290,000+ 篇异质资讯文本。这带来了三大技术痛点:

  1. 极端异质性与文本嘈杂:技术贴、学术论文、短视频小作文、财经短讯混杂在一起。如果直接进行全局单层聚类,模型很难在杂乱无章的特征空间里找到清晰的边界,导致海量文章被划分到 “-1” 离群类别,全局离群率一度高达 52%
  2. 计算开销与延迟瓶颈:在海量文本上计算 BERT 稠密向量并做 UMAP / HDBSCAN 迭代的开销极其巨大,无法适应每日(daily)近实时的热度监测要求。
  3. 原生关键词表意能力差:BERTopic 原生提取的代表词通常是零散的词语或中文乱码连写,无法直接作为 Dashboard 上的分类标签展示给用户。

3. 解决方案:两阶段“先分类,后聚类”架构

为了打破单层全局聚类的瓶颈,我们设计了 Layer 1 分类映射 + Layer 2 局部聚类 的多层混合模式。

为什么两阶段架构是破局关键?

  • 降低特征干扰:通过预设的 SOURCE_MAP,先按数据源将资讯划分到 7 大基础分类(如“AI与学术”、“技术社区”、“科技资讯”、“财经商业”等)。这相当于在特征空间的源头做了一次清洗,让同一层级的文本在一个同质的特征分布中做更精准的细分。
  • 自适应聚类阈值:各基础分类数据量(n)差异极大。通过引入 min_topic_size = max(30, n // 600) 动态设置每个局域聚类器的尺度,避免小类别下的微型主题被噪声淹没,或大类别下的主题过于破碎。
  • 效果验证:应用此模式后,整体系统的离群率直接从 52% 降到了 16%

4. 生产级优化:Daily / Weekly 双模式与增量缓存

在生产部署中,频繁跑全量聚类(~35分钟)是不现实的。为此,我们建立了 Weekly(周重构)Daily(日预测) 双模式流水线。

4.1 增量嵌入缓存(Incremental Embedding Cache)

在 Weekly 模式下,为了节省 GPU/NPU 编码时间,我们在 Mac (Apple Silicon M4) 机器上利用 PyTorch MPS 设备加速,并实现了一套增量缓存机制:

  1. embeddings.npydoc_ids.json 中读取历史计算的特征向量与 ID 列表。
  2. 计算当前待聚类数据与缓存的差集,只对增量文章进行 SentenceTransformer 编码(选用 paraphrase-multilingual-MiniLM-L12-v2 多语言模型)。
  3. 按当前 ID 列表顺序,快速拼接历史嵌入向量与新特征行,更新对齐缓存并保存。这使得 Weekly 的非重嵌入阶段耗时控制在 3分钟内

4.2 每日 Transform 预测机制

  • Daily 模式只导入近 24 小时的全新文章。
  • 该模式下不重新拟合聚类模型,而是通过读取 Weekly 阶段序列化保存好的 7 个 Per-Category BERTopic 局域模型对新文章做 transform 归类预测。这不仅避免了 “主题漂移”(Topic Drift)风险,还让每日流水线的耗时压缩至 5 分钟以内

5. 发现新趋势的能力 (Discovering New Trends)

本系统不仅可以做存量归纳,还具备了发掘行业新趋势和突发热点的能力。

通过 topic_diff.py,系统在每周全量重构之后,会对比本周与上周的聚类特征:

  • 话题指纹识别:通过对聚类下的“中文名称 + 核心 c-TF-IDF 关键词”进行哈希指纹提取,判定两个主题是否属于延续关系。
  • 捕获新趋势:若某个主题的特征指纹在上一周中完全不存在,系统会将其标记为 新增 (New)。特别是在学术和技术社区中,新的前沿词汇或技术栈(如某新型推理框架的发布)通常会以一簇高内聚的新增主题呈现,从而捕捉到技术演进的新风向。
  • 趋势动态追踪:通过计数增减(如本周数量 vs 上周数量的百分比跃升),自动计算并排行 涨幅 Top 5 / 消亡 Topic,形成技术和资讯趋势的脉搏式记录。

6. 落地细节与避坑指南

6.1 Tokenization 序列化报错问题

在定义 BERTopic 的 Vectorizers 时,若使用 lambda 匿名函数包装分词器(例如 jieba),会导致模型在 pickle 序列化时崩溃。正确解法是必须将分词函数定义为全局层级的命名函数(Named Function):

def jieba_tokenizer(text):
    import jieba
    return jieba.lcut(text)

vectorizer_model = CountVectorizer(tokenizer=jieba_tokenizer, stop_words=STOP)

6.2 LLM 协同命名与缓存

我们随机抽取每个 Topic 聚类中具有代表性的 12 条标题样本作为 Prompt 上下文,喂给 DeepSeek API 提炼短标签(如 “大模型推理框架与加速”)。为了控制 API 成本,所有的命名结果都保存在 topic_names_cache.json 缓存中,Daily 预测时自动匹配,做到 “0 Token 消耗”。


7. 业务成果与后续计划 (Future Directions)

目前该 BERTopic 解决方案已经在生产环境平稳跑通,并实现了三级 Facet 过滤导航和精准热点预警。在接下来的迭代中,我们计划引入以下后续模块:

  1. 情感极性分析 (Sentiment Polarities)
    利用 LLM 对高热度的 Top-N 话题进行批量情感极性打分(正向/中性/负向),从而绘制特定行业/话题下的公众舆情和情绪走向图。
  2. AI 每日总结简报 (Daily Briefings)
    改变目前零散推送的热点模式,引入大语言模型(如 DeepSeek V3 或豆包 Lite)对今日 Top-5 爆点话题下的多篇代表文章进行内容提炼,每日定时生成一篇 300 字的精简“行业早报”。
  3. 可视化看板进阶
    在 Dashboard 端增加“今日简报”和“情感趋势图谱”专属入口,结合语义搜索(Qdrant),为用户提供一站式、更具交互性的热点情报体验。

image-1784333021704