论文信息
- 论文原标题:Social Life of Code: Modeling Evolution through Code Embedding and Opinion Dynamics
- 主要作者:Yulong He, Nikita Verbina, Sergey Kovalchuk
- 研究机构:Yulong He(圣彼得堡国立大学,俄罗斯);Nikita Verbina、Sergey Kovalchuk(ITMO 大学,俄罗斯)
- 发表信息:arXiv:2602.15412v1 [cs.SE],2026 年 2 月 17 日
- APA 引文格式:He, Y., Verbina, N., & Kovalchuk, S. (2026). Social life of code: Modeling evolution through code embedding and opinion dynamics. arXiv preprint arXiv:2602.15412.
摘要
这篇由俄罗斯圣彼得堡国立大学与 ITMO 大学联合完成的研究,创新性地将软件工程的代码嵌入技术与计算社会科学的意见动力学理论结合,提出了量化分析开源代码库演化的全新框架:先通过 intfloat/e5-base-v2 模型将代码修改转化为捕捉语义与语法特征的高维向量,经 PCA 降维得到开发者的'技术意见值',再利用 EPO(表达 - 私人意见)模型构建开发者信任矩阵、追踪意见演化轨迹,最终以 GitHub 上 swiftlang/swift、ceph/ceph、pytorch/pytorch 三大高活跃度 C++ 开源仓库的 21 位核心开发者为样本展开实验,验证了该框架能有效揭示开发者间的影响力模式、共识形成机制与代码库演化的社交技术规律,同时发现不同开源仓库因语境差异呈现出截然不同的意见动力学特征,为开源项目的维护与协作分析提供了数据驱动的全新视角。

研究背景
- 传统代码库演化研究聚焦代码更新量、bug 频率、贡献模式等量化指标,虽取得一定成果,但忽略了软件开发的社会维度——开发者间的相互影响如何塑造技术决策与项目发展轨迹。
- 现有对开发者行为、社交互动的研究多为分析或仿真方法,对开发者个性、动机、社交互动的挖掘较为浅层。
- 研究动机为搭建**技术(代码演化)与社会(开发者互动)**融合的综合分析框架,填补现有研究空白。
研究方法
研究方法围绕GitHub 开发者意见表征展开,核心分为代码嵌入、降维处理、EPO 模型构建三步,关键步骤如下:
- 代码嵌入计算
- 定义核心集合:开发者集合 D、时间周期集合 T,开发者 d 在 t 时间的 PR 集合 P_d(t),PR p 的文件集合 F_p。
- 生成向量:对每个文件的原始/更新代码,用 intfloat/e5-base-v2 生成嵌入向量 σ_o、σ_n,计算语义差异向量 σ_f = σ_n - σ_o。
- 逐层聚合:PR 意见 σ_p = Σ_{f ∈ F_p} (σ_f / |F_p|),开发者时间窗意见 σ_d(t) = Σ_{p ∈ P_d(t)} (σ_p / |P_d(t)|)。
- 维度约简
- 对比 4 种降维技术:PCA(主成分分析)、UMAP、LLE(局部线性嵌入)、MDS(多维缩放),采用**可信度、连续性、MRRE(平均相对排名误差)**为评价指标。
- 核心结论:PCA 在局部结构保留上表现最稳定,连续性与 MRRE 指标最优,将高维数据降为1 维,定义开发者意见值 x_d(t) = PCA(σ_d(t)) ∈ [0,1]。
- EPO 模型构建与求解
- 模型公式:定义私有意见向量 X(t)、表达意见向量 X^e(t),核心演化公式为 X(t+1) = diag(W)X(t) + (W - diag(W))X^e(t)、X^e(t) = ΦX(t) + (I - Φ)AX^e(t-1)。


