某在线教育平台项目总结(三):自适应难度策略设计

项目背景

笔者曾在2019-2021年供职于某在线教育平台研发项目组,担任产品经理,负责课程内容产品的全流程开发和用户体验优化工作。在上两篇文章中,从转化情况和使用体验两方面对产品优化空间进行了挖掘,得出两个结论:

  1. 渠道、运营的优化确实可以提升一部分数据表现,但产品的健康成长和可持续发展主要还是靠稳定的活跃用户。为了在留住这批用户的同时还能拉新,应该不断优化核心用户体验。
  2. 在解决了普遍的可用性问题之后,我们将面临的问题是【标准化的内容V.S差异化的用户】。如何为不同的用户匹配最适合他们的内容(此处主要指课程难度),需要策略化的解决方案。

解决方案

  • 阶段一:搭建题库系统。(题库系统是一切相关功能的载体,有了容器才能往里面添加内容和数据)
  • 阶段二:为题库中的题目建立一套自适应难度调整策略,同时也可以用同样的方法为用户建立一套自适应级别调整策略。通过不断增加的用户答题数据,让题目难度和用户级别能够自动回归至无限趋近真值。
  • 阶段三:基于回归后的题目难度和用户级别数据,开发测评功能。

其中,笔者独立负责了自适应难度调整策略的设计。以下将从问题背景、设计思路和设计验证3个方面逐一展开。

问题背景

当教研人员设计出一道题目并录入题库时,需要给题目标上难度等级。于是问题来了,要如何确定一道题目的难度等级呢?如果我们仅按照级别L1~L5来给题目标难度,这种颗粒度显然是不能满足实际使用的。而且随着题库里的题目数量增加,由经验判断人工标注的难度等级还可能会越来越不可信。
而用户级别的准确判定,依赖于答题的结果。如果题目的难度无法被准确标定,用户的水平也无法被准确定级。
换言之,这两个问题是需要被同时解决的。

设计思路

既然人工标注不靠谱,那么能不能让题目自己移动到合适的难度等级上去呢?
首先想到的是一种类似排行榜的概念。假设有一道题(尚未标注难度等级),由10个L5(初步定级)的用户答题的结果是10个人全对,那么我们基本可以判断这道题的难度不会超过L5。如果再让10个L4用户答题,也是10人全对,那么这道题还需要从排行榜上往下移,移到L4以下的位置。再让10个L3用户答题……一直到让10个L1用户答题时,出现了10个人全部答错的情况,于是我们推断这道题的难度应该在L1靠近L2的区域。也就是L1级别里相对较难的题目。
这里出现了3个问题:
①“L1靠近L2的区域”是一个非常模糊的描述,在实际应用中几乎毫无意义。
②实际不太可能出现10个人全部答对、或者全部答错的情况,更有可能出现的是N人答对M人答错(N+M=10)的情况,并且他们的答题结果受到【实际水平】和【随机概率】两方面的影响。
③从上例中来看,一道题需要获得50个人的答题结果才能得出一个难度级别结果(并且还是模糊的),效率实在太低。

那么可不可以设计一种算法,它既可以让题目通过答题数据在难度等级刻度尺上自行移动,而且满足以下特点呢?

  • 每次都能移动到一个具体而颗粒度较小的难度等级位置上
  • 前期只需要少量的答题数据就可以快速定位

此处想到的做法用一个三位数的数字【难度值】来表示一个具体的难度等级,并且开头的数字是对应的级别数字。例如【450】就代表这道题的难度属于L4级别中等难度,而【460】是L4级别中中等稍偏难一点的题目,【455】的难度又介于它们之间。这样一来,颗粒度不够细、难度定位不够精确的问题就解决了。以级别数字开头的好处是可以一目了然地看出这道题属于哪个级别。
基于此,我们也可以用一种比较讨巧的方式来解决前期无法快速定位的问题了。教研人员在录入题目时,可以根据教学大纲先给每道题标注一个【初始难度值】例如【400】,表示只知道这道题的难度属于L4级别,更具体的难度不知(当然,也可以是其他4开头的三位数例如489)。那么这道题就会优先被拿去让L4级别的用户来做。当该级别用户答题数据积累到某个样本size(例如10)时,可以根据这个样本size内的答题情况来对【初始难度值】进行一次修正,获得一个新的【迭代后难度值】。之后只要又增加了新的用户答题数据,都可以用最新的10次答题数据来继续对【迭代后难度值】进行修正。那么可以预见的是,随着答题人数越来越多,题目难度等级的波动会越来越平稳。而且答题人数的增加还有一个好处,就是前面提到的,答题结果受到【随机概率】的影响可以被逐渐抵消掉。

以上,就是算法设计的基本思路了。具体设计如图所示:


难度等级自动调整

而类似的算法也可以应用于学生定级的操作,此处不再赘述。

设计验证

算法设计完成后,为了看看是否行得通,简单验证如下:


难度等级算法验证

补充说明一下,为什么当题目的正确率在50%时,此时【迭代后难度值】最接近真值。这是因为:

  • 被试能力值高于习题难度值时,被试有较大概率答对该题,极端情况正确率为100%
  • 被试能力值低于习题难度值时,被试有较小概率答对该题,极端情况正确率为0%
  • 当被试的能力值与习题的难度值大致相等时,被试答对该项目的概率为50%左右

至此,可以看到该算法基本能够满足需求,具有一定的可行性。由于笔者并非专业的开发人员,此处仅进行最基本的算法验证以证实可行性,具体的功能设计还需要配合开发人员完成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容