我们三个人密切参与了Birdbrain的创建和改进,Duolingo最近推出了它的第二个版本。我们认为我们在多邻国的工作是在推进公司的整体使命,即“发展世界上最好的教育,让它无处不在”。我们不断完善的人工智能系统对于扩展学习体验是必要的,目前有5000多万活跃学习者每天在该平台上完成约10亿次练习。
虽然Duolingo是一款语言学习应用,但该公司的野心还不止于此。我们最近发布了应用儿童识字而且三年级数学这些扩张只是一个开始。我们希望,任何想要在学术学习方面得到帮助的人,有一天都能求助于口袋里友好的绿色猫头鹰,它会对着他们大喊:“准备好每天的课程了吗?”
多邻国的起源
早在1984年,教育心理学家本杰明·布鲁姆(Benjamin Bloom)就发现了后来被称为布鲁姆的2 σ问题。布鲁姆发现,接受个别辅导的普通学生比在课堂上的表现好两个标准差。这足以将一个人的考试成绩从第50百分位提高到第98百分位。
当“多邻国”在2012年推出时路易斯·冯·安而且雪华铃黑客卡耐基梅隆大学的一个研究项目,目标是制作一个易于使用的在线语言导师,可以接近这种超级增压效应。开国元勋们并没有试图取代优秀的教师。但作为移民(分别来自危地马拉和瑞士),他们意识到并不是每个人都有机会接触到优秀的教师。在接下来的几年里,不断成长的Duolingo团队继续思考如何自动化好导师的三个关键属性:他们非常了解材料,他们让学生参与其中,他们跟踪每个学生目前知道的内容,所以他们可以提供既不太容易也不太难的材料。
“多邻国”使用机器学习和其他尖端技术来模仿好家教的这三个品质。首先,为了确保专业知识,我们使用自然语言处理工具来帮助我们的内容开发人员审核和改进我们以40多种不同语言编写的100多种课程。这些工具分析课程的词汇和语法内容,并帮助创建一系列可能的翻译(因此,当有多种正确的表达方式时,应用程序将接受学习者的回答)。其次,为了保持学习者的参与,我们将体验游戏化,设置了分数和等级,使用文本转语音技术为Duolingo世界中的每个角色创建自定义声音,并微调了我们的通知系统。至于进入学习者的大脑并给他们正确的课程,这就是Birdbrain的用武之地。
鸟脑是至关重要的,因为学习者的参与度和课程难度是相关的。当给学生的材料太难时,他们通常会感到沮丧并放弃。感觉简单的材料可能会让他们沉浸其中,但对他们来说并没有多大挑战。Duolingo使用人工智能让学习者保持专注,但仍在学习能力的边缘。
我们中的一员(落定)在多邻国成立6个月后就加入了该公司,帮助建立了各种研究功能,然后领导多邻国的人工智能和机器学习工作,直到今年早些时候。在早期,做大规模在线互动学习的机构并不多。与“多邻国”(Duolingo)尝试做的事情最相似的是那些需要花费“掌握学习的方法,尤其是在数学辅导方面。这些程序围绕一个类似的概念(通常被称为“知识组件”)提出问题,直到学习者在进入下一个单元、部分或概念之前表现出足够的掌握。但这种方法并不一定最适合语言,在语言中,单一的练习可能涉及许多不同的概念,这些概念以复杂的方式相互作用(如词汇、时态和语法性别),学习者可以通过不同的方式做出反应(如翻译句子、抄录音频片段和填充缺失的单词)。
Duolingo的早期机器学习工作解决的是相当简单的问题,比如多久回到一个特定的词汇或概念(这借鉴了教育研究)记忆).我们还分析了学习者的错误,以找出课程中的痛点,然后重新安排了我们展示材料的顺序。
然后,Duolingo在构建个性化系统方面加大了投入。2017年左右,该公司开始在机器学习方面进行更集中的投资,也就是在那时,合著者布鲁斯特和比克内尔加入了团队。2020年,我们推出了鸟脑的第一版.
我们是如何创造《Birdbrain》的
在Birdbrain之前,Duolingo已经做了一些非人工智能的尝试,让学习者保持在正确的水平,包括基于启发式(如句子中单词或字符的数量)估计练习的难度。但该公司经常发现,它需要在人们实际学习的数量和他们的参与度之间进行权衡。《Birdbrain》的目标是达到正确的平衡。
我们一开始的问题是:对于任何学习者和任何给定的练习,我们能否预测学习者正确完成练习的可能性有多大?要做出这样的预测,Birdbrain需要评估练习的难度和学习者目前的熟练程度。每当学习者完成一个练习,系统就会更新这两个估计值。Duolingo在其会话生成算法中使用结果预测,为下一课动态选择新的练习。
埃迪的家伙
当我们构建第一个版本的Birdbrain时,我们知道它需要简单和可扩展,因为我们将把它应用到数亿个练习中。它需要速度快,需要很少的计算。我们决定用一种逻辑回归灵感来自于项目反应理论来自心理测量学文献。这种方法将一个人给出正确答案的概率建模为两个变量的函数,这两个变量可以解释为练习的难度和学习者的能力。我们通过总结每个练习的组成特征(如练习类型、词汇等)的难度来估计每个练习的难度。
《Birdbrain》最初版本的第二个要素是能够对这些难度和能力参数进行简单的计算更新。我们通过执行的一个步骤来实现这一点随机梯度下降在学习者每次完成练习的相关参数上。这是对Elo评级系统它被用来在国际象棋和其他游戏中对玩家进行排名。在国际象棋中,当玩家赢得一场比赛时,他们的能力估计会上升,而对手的则会下降。在“多邻国”中,当学习者做错练习时,这个系统会降低对他们能力的估计,并提高对练习难度的估计。就像在国际象棋中一样,这些变化的大小取决于配对:如果一个新手棋手战胜了一个老手棋手,老手的Elo分数将大幅降低,而他们对手的分数将大幅提高。类似地,在这里,如果一个初学者正确地完成了一个困难的练习,能力和难度参数可能会发生巨大变化,但如果模型已经预期学习者是正确的,两个参数都不会发生太大变化。
为了测试Birdbrain的性能,我们首先在“阴影模式”下运行它,这意味着它所做的预测只是记录下来进行分析,还没有被会话生成器用于个性化课程。随着时间的推移,当学习者完成练习并得到正确或错误的答案时,我们看看伯德布莱恩对他们成功的预测是否与现实相符——如果不相符,我们就进行改进。
每天处理大约十亿次的练习需要大量的创新工程。
一旦我们对Birdbrain的表现感到满意,我们就开始进行对照测试:我们对一小部分学习者(实验组)启用了基于Birdbrain的个性化,并将他们的学习结果与那些仍然使用旧的启发式系统的学习者(对照组)进行了比较。我们想看看Birdbrain会如何影响学习者的投入(通过花在应用程序任务上的时间来衡量),以及学习(通过学习者学习更难的材料的速度来衡量)。我们想知道我们是否会看到权衡,就像我们以前经常尝试使用更传统的产品开发或软件工程技术进行改进一样。令我们高兴的是,《Birdbrain》持续提高了用户粘性和学习指标。
扩大Duolingo的人工智能系统
从一开始,我们就面临着需要处理的庞大数据的挑战。每天处理大约十亿次的练习需要大量的创新工程。
第一版Birdbrain的一个早期问题是如何将模型放入内存中。在夜间训练中,我们需要访问每个学习者的几个变量,包括他们当前的能力估计。因为每天都有新的学习者注册,而且因为我们不想对不活跃的学习者进行评估,以防他们回来,所以内存的数量每晚都在增长。几个月后,这种情况变得不可持续:我们无法将所有变量放入内存中。我们需要每天晚上更新参数,而不是一次将所有内容装入内存。
我们的解决方案是改变每天课程数据和模型的存储方式。最初,我们将给定课程模型的所有参数存储在一个文件中,将该文件加载到内存中,并按顺序处理当天的数据以更新课程参数。我们的新策略是分解模型:一块代表所有的练习难度参数(它不会变得很大),而几个块代表学习者能力估计。我们还根据学习者参与的情况将当天的学习数据分块到单独的文件中,并关键地对课程模型和学习者数据在学习者之间使用了相同的分块功能。这允许我们在处理关于这些学习者的相应数据时,只加载与给定学习者块相关的课程参数。
第一版Birdbrain的一个缺点是,应用程序要等到学习者完成一节课,才会向我们的服务器报告用户做对了哪些练习,犯了哪些错误。这种方法的问题是,在Duolingo上开始的课程中,大约有20%的课程没有完成,可能是因为人们放下手机或切换到另一个应用程序。每次发生这种情况,Birdbrain都会丢失相关数据,这可能是非常有趣的数据!我们非常确定,人们不是随机放弃的——在许多情况下,他们可能会在遇到对他们来说特别有挑战性或令人生畏的材料时放弃。所以当我们升级到Birdbrain版本2时,我们也开始在整个课程中以块的方式传输数据。这给了我们关于哪些概念或练习类型有问题的关键信息。
第一代《Birdbrain》的另一个问题是,它每24小时才更新一次模型(在全球应用使用率的低谷时期)在匹兹堡的Duolingo总部过夜)。有了Birdbrain V2,我们想要实时处理所有的练习。这种改变是可取的,因为学习有短期和长期两种尺度;如果你现在学习某个概念,你可能会在5分钟后记住它,如果幸运的话,你下周还能记住其中的一些。为了使体验个性化,我们需要为每个学习者快速更新我们的模型。因此,在学习者完成练习的几分钟内,Birdbrain V2将更新其知识状态的“心智模型”。
除了几乎实时发生外,这些更新的工作方式也有所不同,因为Birdbrain V2具有不同的架构,并以不同的方式表示学习者的知识状态。以前,该属性简单地表示为a标量因为我们需要让《Birdbrain》的第一个版本尽可能简单。有了Birdbrain V2,我们得到了公司的支持,可以使用更多的计算资源,这意味着我们可以为每个学习者所知道的内容构建一个更丰富的模型。特别地,Birdbrain V2是由一个复发性神经网络模型(具体来说,是a长短期记忆,简称LSTM它学会了将学习者与Duolingo练习的互动历史压缩成一组40个数字,或者用数学家的行话来说,就是一个40维向量。每当学习者完成另一个练习时,Birdbrain就会根据之前的状态、学习者完成的练习以及他们是否正确来更新这个向量。正是这个向量,而不是一个单一的值,现在代表了学习者的能力,模型用它来预测他们在未来练习中的表现。
这种表示法的丰富性使系统能够捕捉到,例如,一个给定的学习者在过去时练习方面很好,但在将来时练习方面很困难。V2可以开始识别每个人的学习轨迹,这可能与典型的轨迹有很大的不同,允许在Duolingo为每个人准备的课程中更加个性化。
一旦我们确信Birdbrain V2是准确和稳定的,我们就进行了对照测试,将其个性化学习体验与原始的Birdbrain进行比较。我们希望确保我们不仅拥有更好的机器学习模型,而且我们的软件能够提供更好的用户体验。令人高兴的是,这些测试表明,Birdbrain V2始终能够进一步提高用户粘性和学习指标。在2022年5月,我们关闭了第一个版本的Birdbrain,并完全切换到新的和改进的系统。
多邻国的人工智能下一步会是什么
我们用Birdbrain和相关技术所做的大部分工作都适用于语言学习之外的领域。原则上,该模型的核心是非常通用的,也可以应用到我们公司新的数学和识字应用程序中——或者是Duolingo接下来推出的任何应用程序。
Birdbrain在优化学习和使课程更具适应性和效率方面给了我们一个很好的开始。我们能在个性化方面走多远是一个悬而未决的问题。我们希望创建一个适应性系统,不仅基于学习者的知识,而且基于最适合他们的教学方法来对他们做出反应。学习者真正注意的练习类型是什么?什么样的练习能让他们产生共鸣?
这些都是优秀的老师在考虑课堂上各种努力学习的学生时可能会遇到的问题。我们不相信你可以用一个应用程序来取代一个好老师,但我们确实希望在模仿他们的一些品质方面做得更好,并通过技术来接触世界各地更多的潜在学习者。