关于 live-meme-radar

B 站 V 圈直播弹幕梗扩散观测站。每 5 分钟拉热门直播间弹幕,语义聚类 + Hawkes 级联模型。 近期 (≤30 min) 分辨率,非真实时——见下方 数据延迟

这是什么

live-meme-radar 是一个开源的 B 站 V 圈直播弹幕梗扩散观测站。它每 5 分钟拉取热门直播间的弹幕, 每 10 分钟做语义聚类,每 1 分钟重排热榜 + 拟合 Hawkes 级联模型, 并显示哪些梗正在跨房间扩散、哪些主播是直播圈最快的"梗放大器"。

"现在 (Now)" 面板是 近期 (≤30 min) 分辨率的同步事件流,不是真实时—— 详见下方 数据延迟 章节。

双时间尺度 + 辅助视图
同一组聚类数据,不同的时间尺度回答不同的问题。

现在 (Now) 看近期 (≤30 min) 同步事件 —— ≥5 个房间在秒级窗内同时打出同一个 cluster (检测器看的是窗内 send_ts 紧密度,所以"齐发"是数据事实; 但 embed lag 让 dashboard 看到的事件比真实发生晚 ~18 min, 见下方"数据延迟")。今晚 (Tonight) 看长梗扩散 —— 1-4 小时尺度上跨房间累积起来的候选梗。两个面板看的是同一组弹幕在不同时间分辨率下的快照。

  • 现在 (Now) —— 同步事件流。 N+ 房间秒级齐发(数据层事实),embed lag 后约 18 min 才显示。看 V 圈"近期 (≤30 min) 在反应什么"。
  • 今晚 (Tonight) —— 长梗候选 Top 20。 严过滤,宁缺毋滥。剔除已降权簇 + 持续 ≥5 天的背景 + 所有已分类的 ambient 类别。 Top 20 偶尔很短或者空着是正常的
  • 正在涨 (Rising) —— slope 主导。 不过滤 quality_mult,因为"长期背景词突然加速"本身也是信号。
  • 日常底色 (Ambient Pulse) —— V 圈日常聊天底色。反应词 / 礼貌话 / 持续背景词专门频道。
本站观测的是什么(很重要)

本站观测的是直播弹幕生态层的扩散。许多梗实际起源于视频投稿、二创、微博、抖音、贴吧或同人圈; 我们追踪的"起源"仅指它在直播间扩散的最早可观测点,不是该梗的真实源头。

这跟 Twitter Trending 的逻辑是一样的 —— Twitter 不告诉你 hashtag 谁第一个发明, 它告诉你它现在正在 Twitter 上传播。我们在直播圈做同样的事。

数据来源
  • 上游公开存档:danmakus.com / ukamnads.icu 提供的弹幕回放 API,以及他们维护者的辛勤工作。
  • 双源策略:chatterbox userscript 用户(opt-in)上报的本地观察,降低单一上游依赖。
  • 所有 uid 在入库前一律 SHA-256 哈希;原文弹幕永不通过 API 暴露
数据延迟(诚实声明)
"现在"不是真实时——本站从源到屏幕的真实延迟分布。

弹幕从 B 站发出 → 上游 (danmakus.com / ukamnads.icu) 归档 → 本站每 5 min 一次 ingest cron 拉取 → embed 队列 (GPU 算力受限) → 写入 cluster_id。 实测在 embedded_at - send_ts 上的延迟分布: 中位 ~18 min,p95 ~75 min,长尾可达数小时。

所以 "现在"面板上你看到的"刚刚发生的同步事件",其实是约 18 min 前真实发生的。 检测器内部用 send_ts 锚定窗口紧密度 (所以"≥5 房间在 5 min 内同发"是数据事实),但 dashboard 看到的事件本身有 lag。

如果你需要分钟级真实时(切片师的"刚刚"),当前架构不够——需要直连 Bilibili WebSocket(独立工程决策,待定)。

数据保留期
  • 原始消息(radar_messages): 30 天滑动窗口,过期 GC。
  • 聚合统计(时间序列、Live Amplifier 评分):永久保留。
  • 不存任何观众的可关联个人信息。
方法论

弹幕用 Qwen3-Embedding-0.6B (1024 维) 做语义向量化,流式增量聚类(中心点匹配 + cosine 阈值 0.85)。 EMBED_CACHE 实测命中率 45-47%。Workers Paid + ambient pre-filter 配合,能稳定跟踪 ~100 个热门房间。

趋势打分:现行 ranking 用 eventness_score(2026-05-06 从 shadow 升 default)—— 0.30·log1p(surprise) + 0.20·slope + 0.10·memeness + 0.15·log1p(rooms_24h) + 0.10·log1p(msgs_24h) + 0.10·recency + 0.05·novelty − 0.5·(soft tier),其中 surprise = current_rooms_24h ÷ 历史 7 天 baseline。

级联模型:每个上榜簇拟合 Hawkes 自激发过程 (μ/α/β 通过 Adam + log-space MLE,~600 秒 throttle/簇),暴露 branching ratio 在 /clusters/:id。 BOCPD 变点 + horseshoe outlier 混合用于变点检测。

Live Amplifier 排行的伦理

Amplifier 排行衡量的是"主播多快把外部梗带进自己直播间",我们用 "反应快 / 早期采用者" 这种中性措辞,不评价"创造"或"跟风"。 该指标只用公开主播频道 uid + 公开弹幕数据,只考虑跨 ≥2 房间扩散的簇 (单房间"first use"在伦理上不构成 amplification)。

如果你是被列出的主播,希望从排行里下架,请提 GitHub issue 或邮件联系 maintainer。

Ingest 健康
上游 (danmakus.com) 拉取每 5 分钟跑一次。 数字来自 radar_ingest_state 实时快照,max-age=30s 缓存。
近 10 分钟
加载中
近 1 小时
加载中
近 24 小时
加载中
近 24h 入库消息数
加载中
开源 / 联系

代码 AGPL-3.0-or-later 协议开源,见 GitHub。反馈 / bug 请提 issue。