分叉它:在计算笔记本中支持有状态的替代方案
原型设计与用户测试计算方法在HCI中的应用软件工程师与开发者数据科学家与分析师
文献标题
Fork It: Supporting Stateful Alternatives in Computational Notebooks
文献信息
- 主题领域: 数据科学工具与人机交互
- 关键词: 数据科学, 计算笔记本, 状态分支, 探索性编程, 程序历史记录, 决策点
研究背景与问题
- 作者发现的问题或挑战:
- 当前计算笔记本(如 Jupyter Notebook)虽然受到数据科学家的欢迎,但其功能和设计局限使得用户难以处理探索性任务中的多状态问题。
- 笔记本提供单一的执行状态,变量更新可能导致不可逆的数据丢失,只能靠重新执行代码恢复。
- 探索不同决策点时往往需要重复、复杂的代码组织,而线性布局往往不适用于对不同算法、参数或数据变换的对比。
- 为什么这个问题重要:
- 数据科学是探索性任务的核心,但计算笔记本的现状阻碍了快速尝试替代路径和实现决策点的清晰表达。这种限制影响了数据分析的效率和结果沟通。
- 研究动机与相关工作:
- 现有研究重点在于笔记本的历史版本控制或内容清理,但对执行状态的管理尚未深入探讨。
- 通过一系列采访,作者发现数据科学家迫切需要能够表达不同路径的工具,以简化探索和对比。
- 作者受启于非线性代码展示工具(如 Juxtapose、Code Bubbles)并结合数据科学工作流提出了改进方向。
解决方案
- 提出的方法或解决方案:
- 分支(Forking):从当前或任意过去执行状态创建新的解释器会话(分支),以探索不同的路径。
- 回溯(Backtracking):浏览并跳回之前的执行状态,创建新的分支以处理“后悔”或不可恢复的状态修改问题。
- 可视化方式:通过在笔记本中采用多路径(侧边排列)的布局,用户可以并排对比不同的分支路径及其结果。
- 创新之处:
- 提供管理多个执行状态的核心功能,使得用户能自然地探索多种替代方案。
- 打破计算笔记本的线性模型限制,为探索性编程提供直观的工具。
- 实施步骤与关键技术:
- 构建 Jupyter Notebook 扩展,利用 Python 的序列化库(
dill)来保存和加载执行状态。 - 引入导航按钮及侧边布局,将代码上下文与变量状态可视化,增加用户界面对路径的直观操作性。
- 限制每次只能创建一个分支,但允许路径无限添加以优化简单性。
- 支持 "Restart & Run All",确保分支状态一致且结果可重复。
- 构建 Jupyter Notebook 扩展,利用 Python 的序列化库(
研究成果
- 具体成果:
- 原型工具有效地支持了数据科学家对探索性任务的路径表达与对比方式。
- 用户能够利用分支清晰管理不同假设路径,并在不污染主代码的前提下尝试复杂数据转换。
- 回溯功能帮助部分参与者有效复原错误状态,而无需繁琐地手动恢复。
- 与现有解决方案相比的优势:
- 分支功能比现有的线性笔记本更适合捕捉探索过程中的决策点。
- 提供对多执行状态的支持,而不只是基于静态代码修改的版本控制。
- 提升了用户对复杂工作流的操作清晰度和代码组织效率。
- 实验或评估结果:
- 通过11位专业数据科学家的用户测试,参与者认为工具在探索、结果对比和可表达性上尤其有效。
- 分支支持多种使用场景,包括模型比较、特征选择和调试“临时”代码片段。
- 回溯的使用受到时间和引导的限制,但参与者认可其潜力。
- 局限性与未来方向:
- 当前工具对大规模数据的性能优化有限(例如保存整个执行状态可能导致内存问题),需要进一步研究压缩或增量存储技术。
- 多级分支或嵌套路径功能未实现,限制了复杂任务的组织能力。
- 视图宽度较窄影响用户体验,可改进为全屏模式或增强路径隐藏/切换功能。
- 为不同路径的变量状态提供直观展示,或支持自动链接多路径间的公共代码,改善表达效率。
结论
本文提出的分支与回溯工具有效扩展了计算笔记本的线性模型,满足了数据科学工作流中探索性任务的实际需求。研究结果表明,这种工具在支持多决策点表达、调试和跨路径对比方面具有显著优势。这为未来探索更复杂的非线性编程支持工具提供了有益的启发和设计指南。
研究问题 / 现实痛点
这篇论文在当前问题库中对应的问题线索。
help
研究问题
3- 在数据科学的探索性任务中,如何支持在计算笔记本中创建和管理多条分支路径?分类: 文本、文档与笔记本可视化同类问题arrow_forward
- 现有线性计算笔记本的模型在多状态管理上存在哪些局限,如何克服?分类: 文本、文档与笔记本可视化同类问题arrow_forward
- 可视化多条程序分支路径能否提升用户对决策点的清晰度与效率?分类: 文本、文档与笔记本可视化同类问题arrow_forward
lightbulb
现实痛点
1- 数据科学家难以在计算笔记本中快速尝试和比较不同算法和参数。分类: 文本、文档与笔记本可视化同类问题arrow_forward
- 67%
Bespoke:通过演示从命令行应用程序交互式合成自定义 GUI
UIST '19· 原型设计与用户测试 +1
- 60%
用户如何解释触发动作编程中的错误
CHI '19· 原型设计与用户测试 +1
- 60%
TRACTUS:理解并支持假设驱动数据科学中的源代码实验
CHI '20· 交互式数据可视化 +1
- 60%
NBSearch:计算笔记本的语义搜索和可视化探索
CHI '21· 交互式数据可视化 +1
- 60%
Varv:作为声明性数据结构的可重新编程交互软件
CHI '22· 原型设计与用户测试 +1
- 60%
学习去噪原始移动UI布局以大规模改进数据集
CHI '22· 原型设计与用户测试 +1
- 60%
Xavier:在编写表格数据处理脚本时寻求更好的编码辅助
CHI '25· 交互式数据可视化 +1
- 60%
如何绘制命令?一项关于电子表格草图的诱发研究
CHI '25· 原型设计与用户测试 +1
- 60%
不确定性下的原型设计:数据、算法与设计研究
DIS '25· 原型设计与用户测试 +1
- 60%
从具有多模态和位置属性的异构网络学习用户界面语义
IUI '22· 原型设计与用户测试 +1
基于研究子主题与职业分类的 Jaccard 相似度(≥60%)
快捷操作
广告推荐
学习 AI 编程到 CodeNow
open_in_new打开DOI链接
DOI: https://doi.org/10.1145/3411764.3445527
一眼看懂
fact_check论文快照
dataset
来源
CHI
calendar_month
年份
2021
emoji_events
奖项
未标记奖项
group
作者
4 位作者
sell
研究子方向
原型设计与用户测试、计算方法在HCI中的应用
work
职业/产业
软件工程师与开发者、数据科学家与分析师
article
内容状态
已索引正文
hub
相关论文
10 篇相关论文