SuperAPI AI 工具集

taxonomic-shift-detection

数据与分析

查看项目

更新于 10-15 10:47

技能介绍

用途

Taxonomic Shift Detection 用于分析纵向内容数据中的兴趣迁移模式,检测某个用户或实体随时间从一个类别子组迁移到另一个子组。其核心观点是:兴趣迁移是类别分布形状的可测量变化,而不仅仅是最频繁类别的变化——一个用户逐渐分散到三个新领域,与突然更换主要兴趣同样具有意义。

主要能力

  • 验证时间语料是否满足纵向分析的最低要求(时间跨度、条目数量、类别分布、时间间隔、时间密度)。
  • 构建自适应时间窗口,确保每个窗口包含足够条目以形成稳定的类别分布。
  • 计算每个窗口的类别概率分布,并对缺失类别进行零填充以保证可比性。
  • 计算相邻窗口之间的 Jensen-Shannon 散度(JSD)序列,以及相对于首个窗口的累积 JSD。
  • 使用变点检测识别分布发生显著变化的位置,支持两种互补方法:PELT(检测突变)和滑动窗口 JSD 阈值(检测渐变漂移)。
  • 将时间线按变点分割为不同时期(era),并标记过短的时期为“短暂探索”。
  • 对每个时期计算类别分布、主导类别、香农熵和归一化熵等多样性指标。
  • 验证每个变点是永久迁移还是短暂探索,依据持续时间、幅度、是否回归以及类别变化等标准。
  • 识别“当前声音”时期,即最能代表用户当前兴趣的最近时期。

使用方式

该技能以工作流清单形式组织,共 10 个步骤:

  1. 验证时间语料要求
  2. 构建自适应时间窗口
  3. 计算每窗口类别分布
  4. 计算窗口间散度序列(JSD)
  5. 在散度序列中检测变点
  6. 将时间线分割为时期
  7. 描述每个时期的特征
  8. 验证迁移(永久 vs. 短暂)
  9. 识别当前声音时期
  10. 将发现写入 docs/analysis/13-taxonomic-shift-detection.md

使用前必须满足前置条件:语料中的每个条目需带有时间戳,并已通过 taxonomic-interest-classification 分配类别。该技能操作的是类别分布的时间演化,而非原始文本。

关键参数与阈值:

  • 最短时间线:3 个月活动
  • 最少条目:50+ 已分类条目,100+ 更佳
  • 窗口大小:自适应,每窗口至少 15 个条目
  • 散度指标:Jensen-Shannon 散度(JSD),使用 base-2 对数时范围为 [0, 1]
  • 变点检测:ruptures 库(Python),PELT 或 Binseg,自定义基于 JSD 的成本
  • 迁移阈值:相邻窗口 JSD > 0.15 表示有意义的迁移(需按语料验证)
  • 漂移阈值:累积 JSD 在 3+ 个窗口上单调递增表示渐变漂移
  • 当前声音窗口:最后一个检测到的变点之后的最新时期
  • 最小时期长度:3+ 个窗口才可视为稳定时期

适用场景

  • 已分类内容语料跨越有意义的时间段(数月至数年),需要检测兴趣迁移。
  • 需要识别“当前声音”时期——时间线上哪个时代最能代表用户当前兴趣。
  • 调查观察到的类别变化是真实迁移还是暂时探索。
  • 将按时期分割的画像输入下游的原型分配或声音建模。
  • 从行为数据模式中检测人生转折、职业转向或主题漂移。

限制

不适用于以下情况:

  • 单时间点兴趣画像(应使用 taxonomic-interest-classification)
  • 检测随时间变化的情感(应使用 vader-sentiment-analysis)
  • 单个时间段内的主题发现(应使用 nmf-topic-modeling)
  • 没有时间戳或时间排序的语料
  • 完全集中在单一类别的语料(没有可迁移的对象)

其他限制:

  • 时间线短于 3 个月时只能报告单时期画像。
  • 条目少于 50 时无法进行窗口分析。
  • 时间间隔超过总跨度 25% 时需标记,并考虑在间隔处分割时间线独立分析。
  • 时间密度低于每月 2 条时窗口会很大,可能平滑掉过渡。
  • 时期少于 3 个窗口或少于 15 个条目时应标记为“短暂”,考虑与相邻时期合并。
  • 短暂迁移应单独报告,不应与确认的迁移同等加权。