一种基于二分图的题目推荐方法、装置、设备及存储介质与流程

文档序号:19155939发布日期:2019-11-16 00:46阅读:150来源:国知局
一种基于二分图的题目推荐方法、装置、设备及存储介质与流程

本发明涉及推荐学习领域,特别涉及一种基于二分图的题目推荐方法、装置、设备及计算机可读存储介质。



背景技术:

近年来,随着在线教育支持技术的发展,越来越多的人通过网络在线评测练习的方式实现在线学习。在在线学习中,用户通过学习平台提供的题目进行练习,即用户对题目产生行为的方式进行学习。但是,题目的多样性以及用户人群的多样性很容易导致信息过载的问题,使得用户不得不花很多时间去查找符合他本人的题目。对此,现有技术提供了一种题目推荐方法,通过根据用户与题目的关系设置出二分图,然后基于二分图计算出各题目之间的相关度并对目标用户进行题目推荐。但是,现有技术中的方法只考虑到题目与题目之间的相关度,使得推荐的题目与目标用户的匹配程度不高,导致用户体验差。

因此,如何提高为目标用户推荐的题目与目标用户的匹配程度,以提高用户的使用体验,是本领域技术人员目前需要解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于二分图的题目推荐方法,能够提高为目标用户推荐的题目与目标用户的匹配程度,以提高用户的使用体验;本发明的另一目的是提供一种基于二分图的题目推荐装置、设备及计算机可读存储介质,均具有上述有益效果。

为解决上述技术问题,本发明提供一种基于二分图的题目推荐方法,包括:

根据用户是否对题目产生行为的情况,生成所述用户与所述题目关系的二分图;

依据所述二分图和各所述题目与目标用户的相关度权重计算出各所述题目与目标用户的相关度;

按照预设规则从各所述相关度中选择出目标相关度,并根据所述目标相关度确定出与目标用户对应的目标题目;

将所述目标题目推荐给所述目标用户。

优选地,所述依据所述二分图和各所述题目与目标用户的相关度权重计算出各所述题目与目标用户的相关度的过程,具体包括:

根据所述二分图和所述目标用户对各所述题目发生行为的正确率计算所述目标用户与各所述题目的相关度权重;

根据随机游走personalrank算法结合所述相关度权重计算各所述题目与所述目标用户的所述相关度。

优选地,进一步包括:

计算所述目标用户对所述题目发生行为的行为时间与当前时间的时间比;

对应的,所述根据所述二分图和所述目标用户对各所述题目发生行为的正确率计算所述目标用户与各所述题目的相关度权重具体为:

根据所述目标用户对所述题目发生行为的正确率和所述时间比计算所述目标用户与各所述题目的相关度权重。

优选地,当所述题目具体为编程类题目时,所述根据所述目标用户对所述题目发生行为的正确率和所述时间比计算所述目标用户与各所述题目的相关度权重的过程,具体包括:

判断所述用户对所述题目产生行为得出的程序是否编译通过;

若编译通过,则进一步判断所述程序的运行结果与所述题目的答案是否一致;

若运行正确且答案正确,则进一步根据运行时间、运行内存以及所述时间比计算出所述相关度权重;

若运行正确但答案错误,则进一步利用所述答案和测试样例计算出所述题目的准确度,根据所述准确度计算所述目标用户与各所述用户和各所述题目的相关度权重;

若运行错误,则按照预设要求设置错误程度值,并利用所述错误程度值和所述时间比计算所述目标用户与所述题目的相关度权重。

优选地,进一步包括:

累计所述目标用户产生行为的题目数量;

当所述题目数量达到预设数量阈值时,从各所述相关度中选择相关度小的题目推荐给所述目标用户。

为解决上述技术问题,本发明还提供一种基于二分图的题目推荐装置,包括:

设置模块,用于根据用户是否对题目产生行为的情况,生成所述用户与所述题目关系的二分图;

计算模块,用于依据所述二分图和各所述题目与目标用户的相关度权重计算出各所述题目与目标用户的相关度;

确定模块,用于按照预设规则从各所述相关度中选择出目标相关度,并根据所述目标相关度确定出与目标用户对应的目标题目;

推荐模块,用于将所述目标题目推荐给所述目标用户。

为解决上述技术问题,本发明还提供一种基于二分图的题目推荐设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任一种基于二分图的题目推荐方法的步骤。

为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种基于二分图的题目推荐方法的步骤。

本发明提供的一种基于二分图的题目推荐方法,通过根据用户是否对题目产生行为的情况,生成用户与题目关系的二分图;然后依据二分图和各题目与目标用户的相关度权重计算出各题目与目标用户的相关度;相较于现有技术中仅考虑题目之间的相关度为目标用户推荐目标题目的方式,本方法进一步考虑用户对题目产生行为的情况,根据二分图和用户与题目的相关度权重,计算出用户与题目的相关度,进而按照预设规则从各相关度中选择出目标相关度,并根据目标相关度确定出与目标用户对应的目标题目,为目标用户推荐对应的目标题目,因此使得为目标用户推荐的题目能够更加符合目标用户,提高用户的使用体验。

为解决上述技术问题,本发明还提供了一种基于二分图的题目推荐装置、设备及计算机可读存储介质,均具有上述有益效果。

附图说明

为了更清楚地说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种基于二分图的题目推荐方法的流程图;

图2为本发明实施例提供的一种用户-题目二分图;

图3为本发明实施例提供的一种基于二分图的题目推荐装置的结构图;

图4为本发明实施例提供的一种基于二分图的题目推荐设备的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例的核心是提供一种基于二分图的题目推荐方法,能够提高为目标用户推荐的题目与目标用户的匹配程度,以提高用户的使用体验;本发明的另一核心是提供一种基于二分图的题目推荐装置、设备及计算机可读存储介质,均具有上述有益效果。

为了使本领域技术人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

图1为本发明实施例提供的一种基于二分图的题目推荐方法的流程图。如图1所示,一种基于二分图的题目推荐方法包括:

s10:根据用户是否对题目产生行为的情况,生成用户与题目关系的二分图。

具体的,首先根据用户是否对题目产生行为的情况,将用户的行为数据表示成用户与题目的二分图的形式。可以理解的是,用户的行为数据是由一系列二元组组成的,每个二元组(u,i)表示用户u对题目i产生过行为,这种数据集可以用一个二分图来表示,也就是说,根据各不同的用户对各题目是否产生过行为,即,用户与题目是否有直接的对应关系,生成用户与题目关系的二分图。

具体的,一般用g(v,e)表示用户与题目关系的二分图。其中,v表示节点集合,具体由用户节点集合vu和题目节点集合vi组成,即,v=vu∪vi;e表示用户节点与题目节点之间的边的集合。对于数据集中的每一个二元组(u,i),在二分图中都有一套对应的边e(vu,vi),其中,vu∈vu是用户u对应的节点,vi∈vi是题目i对应的节点。如图2所示,为本实施例提供的一种用户-题目二分图,图中,圆形节点代表用户,方形节点代表题目,圆形节点和方形节点之间的边代表用户对题目的行为,如,用户a和题目a、c相连,说明用户a对题目a、c产生过行为。

s20:依据二分图和各题目与目标用户的相关度权重计算出各题目与目标用户的相关度。

具体的,在构建完成用户与题目的二分图之后,则依据二分图和各题目与目标用户的相关度权重计算各题目与目标用户的相关度。

需要说明的是,当两个题目节点之间存在越多的路径相连,表示这两个题目节点的相关度越高,同时表示这些题目节点与对应相连的用户节点的相关度高。并且,在具体实施中,一般是通过计算用户节点与题目节点之间的欧氏距离,并根据欧氏距离的长度确定两个节点之间的相关度。另外,在具体实施中,在计算题目与目标用户的相关度时,考虑到可能存在某个用户对很多题目都感兴趣,或者有道题目有很多用户喜欢的情况,那么这两种出度大的节点的参考价值没什么意义,可以通过避免两节点之间经过出度大的节点,从而能够进一步提高计算出的两个节点之间的相关度的准确度。

需要说明的是,用户节点与题目节点之间的边权重表示用户对该题目的喜好程度/掌握程度或者该题目对用户的重要程度。例如,一个用户节点的3条出度边连接3个代表题目的节点,即,当该用户节点的出度为3时,该用户对这3条出度边的权重可能是不一样的。现有技术没有考虑到不同的用户对不同的题目的喜好程度/掌握程度或者该题目对用户的重要程度,即,用户对各题目的权重是相等的,即3条边每条边的权重都为。本实施例通过给这些用户节点与题目节点之间的边的权重设置值,即,依据二分图和题目与目标用户的相关度权重计算出各题目与目标用户的相关度,以给用户节点与题目节点相连的边赋权值。

s30:按照预设规则从各相关度中选择出目标相关度,并根据目标相关度确定出与目标用户对应的目标题目;

s40:将目标题目推荐给目标用户。

具体的,在计算出各题目与目标用户的相关度之后,则可以进一步按照预设规则从各相关度中选择出满足预设规则的目标相关度。并且,由于相关度与题目之间存在对应关系,因此将与目标相关度相对应的题目作为与目标用户对应的目标题目,然后将确定出的目标题目推荐给目标用户。

具体的,选择出目标相关度的方法可以是将超过预设阈值的相关度设置为目标相关度;或者将相关度按照从大到小的顺序排列,将排名前k个相关度设置为目标相关度,本实施例对从各相关度中选择出目标相关度的预设规则不做限定,只要能实现从多个相关度中挑选出满足预设要求的相关度即可,进而根据相关度与题目的对应关系,确定出目标题目。

另外需要说明的是,本实施例中是计算出除了目标用户发生行为的题目之外的题目与目标用户的相关度,也就是说,后续从没有被目标用户产生行为的题目中筛选出目标题目推荐给目标用户。

本实施例提供的一种基于二分图的题目推荐方法,通过根据用户是否对题目产生行为的情况,生成用户与题目关系的二分图;然后依据二分图和各题目与目标用户的相关度权重计算出各题目与目标用户的相关度;相较于现有技术中仅考虑题目之间的相关度为目标用户推荐目标题目的方式,本方法进一步考虑用户对题目产生行为的情况,根据二分图和用户与题目的相关度权重,计算出用户与题目的相关度,进而按照预设规则从各相关度中选择出目标相关度,并根据目标相关度确定出与目标用户对应的目标题目,为目标用户推荐对应的目标题目,因此使得为目标用户推荐的题目能够更加符合目标用户,提高用户的使用体验。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,在本实施例中,依据二分图和各题目与目标用户的相关度权重计算出各题目与目标用户的相关度的过程,具体包括:

根据二分图和目标用户对各题目发生行为的正确率计算目标用户与各题目的相关度权重;

根据随机游走personalrank算法结合相关度权重计算各题目与目标用户的相关度。

具体的,本实施例中的正确率指的是用户做该题目结果为正确的次数和总次数的比值。通过先计算目标用户对题目发生行为的正确率,然后利用该正确率计算目标用户与题目的相关度权重;再根据随机游走personalrank算法结合相关度权重计算各题目与目标用户的相关度。

在一种具体实施中,假设目标用户u与各题目i的相关度权重为wui,对目标用户u进行个性化推荐题目,则从目标用户u对应的用户节点vu开始在二分图模型上进行随机游走;游走到任何一个节点的时候,可以按α的概率沿着边继续游走到下一节点,或者以1-α的概率回到目标用户u对应的节点vu进行重新开始游走。若以α的概率继续沿边游走的话,那么就从当前节点的出度边中按照相关度权重选择一条边进行游走到下个节点。这种二分图模型满足马尔科夫链的性质,因此,重复上述过程,多次随机游走之后,每个节点被访问的概率值都会趋于稳定,从而得出用户节点与各题目节点之间的相关度。

例如,参考图2所示的一种用户-题目二分图,该二分图表示用户a对题目a、c感兴趣,用户b对题目a、b、c、d感兴趣,用户c对题目c、d感兴趣。根据本实施例提供的计算相关度权重的方法,为目标用户a推荐编程题目,根据随机游走personalrank算法计算出a、b、c、a、b、c、d所有节点对a的重要程度的得分,即相关度pr,具体过程如下:

步骤1:首先设置pr(a)=1,pr(b)=pr(c)=pr(a)=pr(b)=pr(c)=pr(d)=0;

步骤2:除了pr(a)=1之外,其他节点pr值均为0,表示只有从节点a随机游走才会分配相关度,所以利用personalrank算法在二分图上游走,先从节点a先以α的概率决定继续游走,再根据相关度权重走到了a和c,这样a和c就分得了a的部分相关度,另外所有的节点都会以1-α的概率回到目标用户节点a,故第一轮游走后,得出:

步骤3:重复步骤2,通过反复迭代游走,当各节点趋于收敛时,将最终的值作为各题目与目标用户的相关度。

可见,本实施例提供的基于二分图的题目推荐方法,能够更加准确地计算出各题目与目标用户的相关度,使得后续从各相关度中确定出目标相关度的过程能够更加准确。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,在本实施例进一步包括:

计算目标用户对题目发生行为的行为时间与当前时间的时间比;

对应的,根据目标用户对题目发生行为的正确率计算目标用户与题目的相关度权重具体为:

根据目标用户对题目发生行为的正确率计算目标用户与题目的相关度权重和时间比计算目标用户与题目的相关度权重。

具体的,本实施例中,进一步获取当前时间tc和目标用户对题目发生行为的行为时间ti,并计算目标用户对题目发生行为的行为时间ti与当前时间tc的时间比,即若当前时间tc和目标用户对题目发生行为的行为时间相差比较近,表示该目标用户最近对该题目的偏好较多,即,值越大,该题目的相关度权重较高。

可见,本实施例进一步考虑到目标用户对题目发生行为的行为时间对题目的相关度权重的影响,因此本实施例计算出的目标用户与题目的相关度更加准确。

需要说明的是,随着当前在线学习编程的浪潮越来越强,给用户推荐符合他本人能力的编程题目的需求越来越大。由于编程类题目相较于其他题目而言,有编译和运行的步骤,并且在运行过程中,存在利用多种答案进行验证得出准确度以及判断运行时间和运行内存是否满足要求的情况。因此,在本实施例中,当题目具体为编程类题目时,根据目标用户对题目发生行为的正确率计算目标用户与题目的相关度权重和时间比计算目标用户与题目的相关度权重的过程,具体包括:

判断用户对题目产生行为得出的程序是否编译通过;

若编译通过,则进一步判断程序的运行结果与题目的答案是否一致;

若运行正确且答案正确,则进一步根据运行时间、运行内存以及时间比计算出相关度权重;

若运行正确但答案错误,则进一步利用答案和测试样例计算出题目的准确度,根据准确度计算目标用户与各用户和各题目的相关度权重;

若运行错误,则按照预设要求设置错误程度值,并利用错误程度值和时间比计算目标用户与题目的相关度权重。

可以理解的是,当题目具体为编程类题目时,在计算题目与用户的相关度权重时,需要先判断用户提交的答案的结果状态,即,判断用户对题目产生行为得出的程序是否编译通过。若程序编译没有通过,则表示提交的源代码出现语法错误等情况,因此表示该题目错误;若程序编译通过,则分为三种情况:运行正确且答案正确、运行正确答案错误和运行错误。

根据第一种情况:运行正确且答案正确,即用户编写的程序输出结果和题目所有测试样例的正确输出结果一模一样,这种情况下考虑三种情况:

①运行时间超过程序所要求的运行时间:通过来计算超时程度,其中,编程题目i运行的时间为,编程题目i要求的运行时间为t(i)值越大,则说明超时程度越轻微,值越小,则说明超时程度越严重;

②运行过程中使用的内存大小超过编程题目所要求的运行内存大小:通过来计算超运行内存程度,其中,设编程题目i使用的内存大小为编程题目i要求的使用内存大小为n(i)值越大,则说明超运行内存程度越轻微,值越小,则说明超内存程度越严重;

③运行条件满足题目要求:用1表示,说明用户完全做对该题目。

根据第二种情况:运行正确答案错误,即在编程题目i的所有测试样例中,目标用户编写的程序在所有样例中的输出结果和编程题目i的所有测试样例的正确输出相比,有1个或1个以上不一样,此时可以通过计算目标用户做该编程题目i的正确率其中,表示目标用户编写的程序在编程题目i的测试样例中的输出与这些测试样例的正确输出相同的数目,表示该编程题目i的测试样例的总数目。可以理解的是,正确率值越大,运行结果就越趋向于答案正确;正确率值越小,运行结果就越趋于完全错误。

根据第三种情况:运行错误,即目标用户编写的程序在运行时出现了错误,并且这个错误导致程序无法进行下一步处理,无法出现结果,此时,本实施例通过随机分配一个0~0.5的值来并表示该错误的错误程度。

本实施例中,假设目标用户u在对编程题目i总共提交了m次编写的程序,其中有m'次是编译通过的,对应的,目标用户u与该题目i的相关度权重为:

其中,i(·)为指示函数,若满足括号内条件,则i(·)=1,否则,i(·)=0。

对应的,计算目标用户与题目的相关度的方法为:

在计算出目标用户u所有出度边的权重,即,目标用户与各题目的相关度权重的过程中,目标用户的所有出度边的权重加和需等于1,因此,得出的相关度权重为进行归一化处理后的权重。并且,根据相关度权重计算出的目标用户与题目的相关度,若目标用户与编程题目的相关度越小,表示目标用户现在的水平可能不适合这道编程题目;反之,目标用户与编程题目的相关度越大,表示目标用户与该编程题目的匹配程度越高。

可见,本实施例提供的基于二分图的题目推荐方法,能够针对编程类型的题目的答案需要编译、运行以及答案正确率、运行时间以及运行内存等情况计算出相关度权重,能够提供与目标用户更加匹配的编程题目。

在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例进一步包括:

累计目标用户产生行为的题目数量;

当题目数量达到预设数量阈值时,从各相关度中选择相关度小的题目推荐给目标用户。

具体的,在本实施例中,进一步通过在目标用户与题目发生行为的时候,累计目标用户产生行为的题目数量,并且设置一个预设数量阈值α,判断产生行为的题目数量是否大于预设数量阈值α,若大于,则将之前计算出的相关度中相关度小对应的题目推荐给该目标用户,即将该目标用户之前做的不理想的题目重新推荐给目标用户。通过判断目标用户在经过一定量的练习之后,是否能够完成该题目;并且,在目标用户做了这道题目之后,能够更新目标对象与该题目之间的相关度。

可见,本实施例通过进一步在目标用户产生行为的题目数量达到预设数量阈值时,从各相关度中选择相关度小的题目推荐给目标用户,通过为目标用户推荐之间做得不理想的题目,检查目标用户的做题习惯,促进目标用户学习进步。

上文对于本发明提供的一种基于二分图的题目推荐方法的实施例进行了详细的描述,本发明还提供了一种与该方法对应的基于二分图的题目推荐装置、设备及计算机可读存储介质,由于装置、设备及计算机可读存储介质部分的实施例与方法部分的实施例相互照应,因此装置、设备及计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

图3为本发明实施例提供的一种基于二分图的题目推荐装置的结构图,如图3所示,一种基于二分图的题目推荐装置包括:

设置模块31,用于根据用户是否对题目产生行为的情况,生成用户与题目关系的二分图;

计算模块32,用于依据二分图和各题目与目标用户的相关度权重计算出各题目与目标用户的相关度;

确定模块33,用于按照预设规则从各相关度中选择出目标相关度,并根据目标相关度确定出与目标用户对应的目标题目;

推荐模块34,用于将目标题目推荐给目标用户。

本发明实施例提供的基于二分图的题目推荐装置,具有上述基于二分图的题目推荐方法的有益效果。

图4为本发明实施例提供的一种基于二分图的题目推荐设备的结构图,如图4所示,一种基于二分图的题目推荐设备包括:

存储器41,用于存储计算机程序;

处理器42,用于执行计算机程序时实现如上述基于二分图的题目推荐方法的步骤。

本发明实施例提供的基于二分图的题目推荐设备,具有上述基于二分图的题目推荐方法的有益效果。

为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述基于二分图的题目推荐方法的步骤。

本发明实施例提供的计算机可读存储介质,具有上述基于二分图的题目推荐方法的有益效果。

以上对本发明所提供的基于二分图的题目推荐方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1