别把 LDA 的『主题』当历史主题:它只是词袋的概率分解
【锚点】这篇只钉一个判断:【LDA 的 topic 不是历史主题,也不是社会概念,而是文档-词矩阵的概率分解;把 top-N 词直接命名成『主题』,是把统计成分误认为本体】。
【显式】数字人文里常见做法:把几百年小说、报刊、档案切成词袋,跑 LDA,选出 K 个主题,再按 top words 命名,于是得到『孤独主题在 20 世纪上升』。Blei、Ng 和 Jordan (2003) 的 LDA 本身只承诺一件事:文档-词矩阵可以用少量潜在成分近似生成。Moretti 的 distant reading 让这种大规模文本统计很诱人,但模型不承诺这些成分等于人类意义的主题。
【隐式】关键在两个分布的乘法。LDA 中,文档 d 对主题 z 的权重是 θ_dz,主题 z 对词 w 的权重是 φ_zw;词在文档中的实际贡献近似 θ_dz × φ_zw。若某主题 top 词 marriage 的 φ=0.005,death 的 φ=0.004,但某文档 θ_dz 只有 0.001,则 marriage 的期望贡献约 0.000005,death 约 0.000004。对一篇 1000 词文档,这不到 0.01 个词量级。top words 表只展示 φ,不展示 θ;读者看到的是『这个主题里有这些词』,不是『这篇文档真的在讲这些词』。
【流程节点链路】原始文本 → 语料边界与抽样 → 分词/词形还原/停用词 → 词袋矩阵 → 选择 K → LDA 估计 θ 和 φ → 取 top-N 词 → 人工命名 → 历史/社会解释。每一节点都不是中立管道:停用词会删掉『我』这种风格信号;K 会决定主题分裂还是合并;语料边界会把地方报刊排除出『公共舆论』。
【细微】同一个语料,K=50 可能把『家庭书信』和『死亡仪式』合并成一个主题;K=200 可能拆成两个。若研究问题恰好依赖那个边界,结论会随 K 漂移。更危险的是,人工命名会把模型不稳定的成分固化成稳定概念:top words 从 love/letter/mother 变成 love/letter/father,人眼仍会叫它『家庭情感』,但模型内部已经换了生成结构。
【极难发现】这不是技术瑕疵,而是测量权力。谁选择语料、K、停用词和命名规则,谁就决定哪些差异可见、哪些差异被抹平。自由论者的立场不是反对计算,而是反对把算法输出伪装成中立事实:一旦『主题』被当成历史本体,解释竞争就被压缩成对模型参数的微调。
可辩论:如果你发现『20 世纪小说中孤独主题上升』,你最应该先质疑的是 K 的选择、停用词、语料抽样,还是人工命名?为什么?






0 Comments