Scratch 社区数据分析 与 智能系统
前言
近期,受疫情影响,远程办公。
前几天给 @liuqing 发了封邮件,同步一下接下来我准备做的一些事情, 关注 CodeLab 的朋友可能对此也有兴趣,我把邮件的内容也放到这儿,掐去开头简短寒暄。
Scratch 社区数据分析 与 智能系统
使用爬虫,抓取 Scratch 社区的所有数据。我准备用整个社区的数据(用户、项目、用户的动态、用户喜欢的项目、用户彼此的关系、项目彼此的 remix 的关系…)抓取下来。
目前 Scratch 官方社区有接近 5170 万用户,4955 万已分享项目,里头的用户基本都是自发地在创作(不是像国内大多数编程产品,采用外部压力和激励去刺激他们),考虑到这点,觉得它近乎奇迹。
《蒙台梭利早期教育法》里头,对外部奖励的攻击,读来真痛快。(注1,见文末)
更多官方统计数据看这里。我已经写完获取所有用户信息(以 griffpatch 用户为例)和用户关系(griffpatch followers、griffpatch following)的爬虫了。
我准备拿这些数据干嘛呢?
得从 AI 说起,假期里我上完了两门课 course.elementsofai.com 和 ai-for-everyone, 让我对数据和 AI 重新燃起兴趣。(也推荐你这两门课,我们接下里可能涉足 AI 教育)
我想做 2 件事。
数据分析
其一是“数据分析”,从大规模数据中提取出某些见解和洞见,并将其用作实施建议。
由于接下来线上社区会提上日程,我想看看目前这个领域最好的社区是怎样的全景:
- 里边的人是如何连接的(followers、following);
- 他们日常在干嘛(以 griffpatch 用户为例);
- 那些热情的创造者是如何找到感兴趣的人与项目的(我将 favorites 视为用户兴趣的一个度量,而将 followers 和 following 视为他们的 peers)。
- 那些最受欢迎的项目是如何在社区里传播开的(从 remix 的链条中可以看出来)
- …
我想当一个蒙台梭利那样的观察者,Scratch 社区为我提供了非常多自发且真实的数据。
机器学习
我想做的另一件事是“机器学习”,利用机器学习将这些数据转化为一些模型。利用这些模型来为 Scratch 社区用户提供某些服务。
- 诸如通过“聚类”算法找找到不同类型的人群,这些不同的人群,有不同维度的相似性,从中我们可能发现许多有意思的东西,诸如我们可能发现一群喜欢音乐的孩子,从中我们又可以跟踪到许多这个人群喜欢的项目,这些信息,我们之后可以拿来推荐给类似的孩子,让他们能找到这个群体。
- 利用“协同过滤”,构建起推荐系统。背后的想法很简单,如果用户 A 与用户 B 相似。当我们在活动日志中发现用户 A 喜欢项目 C,那么我们可以猜测说用户 B 也喜欢,便可以给他推荐这个项目。
这类的智能系统可能能回答这个问题: 在一个自由而宽阔的社区里,如何找到自己感兴趣的人和项目。
Scratch 官方在这块的工作很少,我想从这些群体数据中,提取一些价值。
我自己日常在 Github 社区,Github 的推荐数据流时常让我找到许多感兴趣的人和项目,我非常喜欢这个社区,许多技能也从中习得。
如果你对前头提到的这些感兴趣,我也想听听你的想法,我们如果拿到社区的所有数据:用户彼此的关系、用户的喜好、用户的近期活动、项目之间的 remix 关系。那么我们可以做哪些有意思的事情呢,可以为 Scratcher 提供什么有价值的服务? 对我们之后构建国内社区是否有帮助?
此外, 我已经读完《蒙台梭利早期教育法》,深受冲击,我几乎认同蒙台梭利做的所有事情,她在书中表现出来的情感,真让我热泪盈眶。
附
注1
假期里读完《蒙台梭利早期教育法》(The Montessori Method), @liuqing 推荐我读这本书。
里头对奖励
的攻击十分精彩,摘录如下
在一般的教室里,老师们必须向学生的脑子里灌输事先预备好的材料。他们发现,为了顺利完成这项枯燥的任务,有必要约束学生,让他们一动不动,被迫集中精力。对于被迫做听众的人,老师必须迫使他们的身体和精神达到要求的那种状态,奖励和惩罚就是现成、有效的辅助手段。
这样的奖惩,如果我可以这么说的话,就是心灵的坐凳,精神奴役的工具。
人类的所有胜利,所有进步,都是以内在的力量为基石的。
外在奖励的确存在。例如,当演说家见到听众的表情随着他所唤起的情绪情感而发生变化时,他体验到了美妙无比的滋味,那种滋味只有在一个人发现自己被人爱时由衷的喜悦,才可与之相提并论。我们的喜悦是去触摸、征服灵魂,那才是能带给我们真正报偿的“奖励”
有那么一刻,我们会因自己是万物之灵中的一员而喜不自胜。能够继续安稳地生活,也是令人幸福的时刻。这可能是得到真爱时,收到孩子的礼物时,有了伟大的发现,抑或是书籍出版之时;在这样的时刻,我们感到,自己是超凡绝伦的。如果此刻,某权威人士前来授予我们一枚勋章或是一个奖品,他反而会成为我们的真正奖赏的最大破坏者——“你算是什么人?”我们那消失的幻觉立刻会叫道,“你凭什么把我唤回现实,明白我不是高高在上的?谁地位比我高这么多,居然有资格给我颁奖?”
今天我们把学生扣留在学校,用课桌,还有奖励和惩罚这些损害身心健康的工具来约束他们。我们的唯一目标就是让他们变得一动不动、一言不发,便于管束。管束是为了什么?却往往漫无目的。
对孩子的教育,通常就是向他们的脑子里灌输学校的课程知识。通常,这些课程由教育行政部门编撰成册,通过法律明文规定,强迫教师和学生使用。 这样愚钝、顽固地忽视孩子正在成长的内在生命,我们应该羞愧地低下头,内疚地用双手捂住脸!
说得痛快淋漓,《终生幼儿园》中关于这个话题也有很多精彩讨论。
Scratch社区是难能可贵的少儿编程社区,不以奖励
手段来灌输知识,而坚持鼓励孩子去寻找自己的热情、同伴,去寻找有趣的项目,并动手去创建那些激动人心的东西。
追随热情而不是奖章。