本申请涉及人工智能领域,尤其涉及一种课程预测模型的更新方法、课程预测模型的更新装置、计算机设备以及计算机可读存储介质。
背景技术:
线上教育技术随着信息化的发展不断革新,目前市面主流的在线教育系统可以规划固定的学习路径,但是无法提供自主学习的功能。在一个新学习流程中,若学生仍然需要重新学习已掌握的知识点,必然会浪费学生的学习时间,以及造成在线教育资源的浪费。
然而,由于线上教育通常在不同的平台之间进行,且不同的线上教育平台之间存在数据壁垒,互相之间无法就学生的学习数据达成合作,或是出于保护隐私的考量,彼此之间难以共享学生的学习数据,这样一来就难以掌握学生全面的学习数据,也就难以准确向学生推送其所需的学习课程。
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
技术实现要素:
本申请的主要目的在于提供一种课程预测模型的更新方法、课程预测模型的更新装置、计算机设备以及计算机可读存储介质,旨在解决如何在避免泄露学生隐私的同时,能得到全面的训练数据训练课程预测模型,以提高对学生进行课程推荐的准确率的问题。
为实现上述目的,本申请提供一种课程预测模型的更新方法,包括以下步骤:
第一客户端获取训练样本,其中,所述训练样本包括本地学生的学习信息和所述本地学生对目标课程的学习意向信息,所述学习信息包括受教育程度、学习专业、学习历史、学习偏好和课程掌握程度中的至少一个;
将所述训练样本转换为支持向量,并基于所述支持向量输入至对课程预测模型进行训练,得到第一模型参数,其中,所述课程预测模型基于支持向量机构建,所述第一模型参数包括第一参数和第二参数,所述第一参数用于计算所述课程预测模型的模型梯度,所述第二参数用于计算所述课程预测模型的模型损失;
将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数,其中,所述第二模型参数的生成方式与所述第一模型参数的生成方式相同;
根据所述第一模型参数和所述第二模型参数生成第三模型参数;
将所述第三模型参数上传至服务端,其中,所述第二客户端根据所述第一模型参数和所述第二模型参数生成第四模型参数,并上传所述第四模型参数至所述服务端;所述服务端用于根据所述第三模型参数和所述第四模型参数生成第五模型参数,并将所述第五模型参数反馈至所述第一客户端和所述第二客户端;
接收到所述服务端发送的所述第五模型参数时,根据所述第五模型参数更新所述课程预测模型。
进一步地,所述将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数的步骤包括:
利用所述服务端的公钥加密所述第一模型参数,并将加密后的所述第一模型参数发送至第二客户端,以及接收所述第二客户端发送的第二模型参数;
其中,所述第二客户端利用所述服务端的公钥加密所述第二模型参数后,将加密后的所述第二模型参数发送至所述第一客户端;所述服务端利用paillier算法产生秘钥对,以得到所述公钥后,并将所述公钥发送至所述第一客户端和所述第二客户端。
进一步地,所述接收到所述服务端发送的所述第五模型参数时,根据所述第五模型参数更新所述课程预测模型的步骤之后,还包括:
检测到更新后的所述课程预测模型训练完成时,将所述课程预测模型存储至区块链网络。
进一步地,所述接收到所述服务端发送的所述第五模型参数时,根据所述第五模型参数更新所述课程预测模型的步骤之后,还包括:
获取到目标学生的学习信息时,将所述目标学生的学习信息输入至所述课程预测模型中进行分析,以得到所述目标学生对所述目标课程的学习意向信息。
进一步地,所述将所述目标学生的学习信息输入至所述课程预测模型中进行分析,以得到所述目标学生对所述目标课程的学习意向信息的步骤之后,还包括:
将所述学习意向信息为有意向学习的所述目标课程作为推荐课程;
向所述目标学生推荐所述推荐课程。
进一步地,所述向所述目标学生推荐所述推荐课程的步骤之后,还包括:
检测到所述目标学生报读所述推荐课程时,根据所述目标学生的学习信息和所述推荐课程生成所述训练样本,并基于所述训练样本更新所述课程预测模型。
进一步地,所述基于所述训练样本更新所述课程预测模型的步骤之后,还包括:
获取基于所述训练样本更新后的所述课程预测模型对应的第一模型参数,并基于获取到的所述第一模型参数,返回执行所述将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数的步骤。
为实现上述目的,本申请还提供一种课程预测模型的更新装置,所述课程预测模型的更新装置包括:
获取模块,用于第一客户端获取训练样本,其中,所述训练样本包括本地学生的学习信息和所述本地学生对目标课程的学习意向信息,所述学习信息包括受教育程度、学习专业、学习历史、学习偏好和课程掌握程度中的至少一个;
训练模块,用于将所述训练样本转换为支持向量,并基于所述支持向量输入至对课程预测模型进行训练,得到第一模型参数,其中,所述课程预测模型基于支持向量机构建,所述第一模型参数包括第一参数和第二参数,所述第一参数用于计算所述课程预测模型的模型梯度,所述第二参数用于计算所述课程预测模型的模型损失;
发送模块,用于将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数,其中,所述第二模型参数的生成方式与所述第一模型参数的生成方式相同;
生成模块,用于根据所述第一模型参数和所述第二模型参数生成第三模型参数;
上传模块,用于将所述第三模型参数上传至服务端,其中,所述服务端用于根据所述第一客户端发送的第三模型参数和所述第二客户端发送的第四模型参数,生成第五模型参数;所述第四模型参数为所述第二客户端根据所述第一模型参数和所述第二模型参数生成的;
更新模块,用于接收到所述服务端发送的所述第五模型参数时,根据所述第五模型参数更新所述课程预测模型。
为实现上述目的,本申请还提供一种计算机设备,所述计算机设备包括:
所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述课程预测模型的更新方法的步骤。
为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述课程预测模型的更新方法的步骤。
本申请提供的课程预测模型的更新方法、课程预测模型的更新装置、计算机设备以及计算机可读存储介质,在客户端各自训练课程预测模型的过程中,基于服务端构建的联邦学习体系,实现客户端彼此之间只需交换相关模型参数,无需直接交换学生的相关信息,从而可以利用全面的训练数据训练并更新课程预测模型,在避免泄露学生隐私的同时,得到了预测学生喜好的课程时准确率高的课程预测模型。
附图说明
图1为本申请一实施例中课程预测模型的更新方法步骤示意图;
图2为本申请一实施例的课程预测模型的更新装置示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,在一实施例中,所述课程预测模型的更新方法包括:
步骤s10、第一客户端获取训练样本,其中,所述训练样本包括本地学生的学习信息和所述本地学生对目标课程的学习意向信息,所述学习信息包括受教育程度、学习专业、学习历史、学习偏好和课程掌握程度中的至少一个;
步骤s20、将所述训练样本转换为支持向量,并基于所述支持向量输入至对课程预测模型进行训练,得到第一模型参数,其中,所述课程预测模型基于支持向量机构建,所述第一模型参数包括第一参数和第二参数,所述第一参数用于计算所述课程预测模型的模型梯度,所述第二参数用于计算所述课程预测模型的模型损失;
步骤s30、将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数,其中,所述第二模型参数的生成方式与所述第一模型参数的生成方式相同;
步骤s40、根据所述第一模型参数和所述第二模型参数生成第三模型参数;
步骤s50、将所述第三模型参数上传至服务端,其中,所述第二客户端根据所述第一模型参数和所述第二模型参数生成第四模型参数,并上传所述第四模型参数至所述服务端;所述服务端用于根据所述第三模型参数和所述第四模型参数生成第五模型参数,并将所述第五模型参数反馈至所述第一客户端和所述第二客户端;
步骤s60、接收到所述服务端发送的所述第五模型参数时,根据所述第五模型参数更新所述课程预测模型。
本实施例中,客户端可以是计算机设备,也可以是一种课程预测模型的更新装置。其中,将实施例终端记为第一客户端,将除第一客户端之外的其他客户端作为第二客户端。应当理解的是,每个客户端都可以作为第一客户端,而相对于第一客户端而言,其他客户端即为第二客户端,因此第二客户端的数量为至少一个。
可选的,客户端可以是教育机构的系统设备,教育机构可以是学校、在线教育机构、课外辅导机构等,且每个客户端对应的教育机构都具有一定数量的学生资源,而且不同教育机构之间的学生资源也可以存在一定交集(即同一学生可同时在不同教育机构接受教育)。
如步骤s10所述:每个客户端对应的教育机构,均可以向在教育机构本地接受教育的学生(即本地学生)发放调查问卷,由学生在调查问卷上填报相关信息,从而获取学生的学习信息和学生对目标课程的学习意向。
可选的,所述学习信息包括学生的受教育程度、学习专业、学习历史、学习偏好和课程掌握程度中的至少一个。其中,所述受教育程度,可以是学生的学历信息;所述学习专业,指的是学生在高等或/或中等专业教育接受教育时所报读的学业门类(当然,若学生未曾报读高等或/或中等专业教育,则无需填报);所述学习历史,可以是包括学生所学习过的课程、课程的学习时长等;所述学习偏好,可以是学生偏好学习的课程类别;所述课程掌握程度,可以是包括学生对各课程的学习进度、对课程中各知识点掌握程度(可使用相关试题测试得到)。
可选的,所述目标课程为各教育机构所提供的至少一个学习课程;所述学习意向信息用于描述学生是否有意向学习目标课程,例如学生有意向学习目标课程,则在学习意向信息中填“是”,若无意向学习目标课程则在学习意向信息中填“否”。
可选的,第一客户端可以是向第一客户端对应的教育机构的多个本地学生的关联设备,发送电子调查问卷,并在学生通过关联设备填报并提交电子调查问卷后,读取电子调查问卷中填报的信息,从而得到各个本地学生的学习信息和本地学生对目标课程的学习意向信息。
进一步地,第一客户端基于多个本地学生的学习信息和对目标课程的学习意向信息,建立学习信息与目标课程的学习意向信息之间的关联关系,并基于此生成多个训练样本,这样第一客户端即可获取得到多个训练样本。
如步骤s20所述:每个客户端预先基于支持向量机(supportvectormachine,svm)构建有课程预测模型,其中,所述课程预测模型的输入层具有向量转换功能。需要说明的是,支持向量机在机器学习中,是一类按监督学习(supervisedlearning)方式对数据进行二元分类的分类器。
可选的,终端在获取到多个训练样本后,则将多个训练样本输入到课程预测模型中,然后课程预测模型的输入层会将每个训练样本分别转换为对应的支持向量。其中,支持向量即为课程预测模型可以读懂(即可对之进行处理)的向量。
进一步地,课程预测模型在得到每个训练样本对应的支持向量后,则基于所述支持向量进行训练,并从支持向量中学习并训练学生的学习信息对应的第一数据特征,以及学生对目标课程的学习意向信息对应的第二数据特征,然后进一步学习并训练第一数据特征与第二数据特征之间的映射关系。
可选的,对于所有训练样本对应的学生i=1,2,…,n,课程预测模型基于第一数据特征可以得到特征向量捕获
可选的,构建课程预测模型所采用的支持向量机可以是任一种非线性支持向量机。
可选的,本实施例所采用的支持向量机(即svm分类器)优选为:
其中,β∈rd,β0∈实数r;τ和ρ是相应的罚分系数(或称惩罚因子,可由模型训练得到,或由工程师根据相关经验值预先设定),用于避免系统轻易放弃一些重要的数据,减小系统损失;hi()表示为核函数,核函数用于计算支持向量机进行非线性变换的内积。
可选的,课程预测模型在基于一定数量的训练样本进行训练的过程中,随着训练所使用的训练样本数及迭代次数的增加,会逐步优化模型参数,直到模型达到收敛,完成本地训练的过程。在此过程中,在课程预测模型于本地训练得到的模型参数中,包括第一参数和第二参数;其中,所述第一参数为用于计算所述课程预测模型的模型梯度的相关参数;所述第二参数为用于计算所述课程预测模型的模型损失的相关参数。
进一步地,针对每一个训练样本的训练,第一客户端可以是获取课程预测模型在本地利用该训练样本进行训练时得到的第一参数和第二参数,作为第一模型参数。
如步骤s30所述:第一客户端与第二客户端和服务端之间均建立有通信连接,而基于人工智能和联邦学习技术,第一客户端、第二客户端和服务端共同组成了纵向联邦学习系统,且由服务端作为协助组,第一客户端和第二客户端作为参与组。
可选的,服务端预先将服务端的公钥发送至第一客户端和第二客户端。
可选的,第一客户端利用接收到的服务端的公钥,可分别对第一模型参数中的第一参数和第二参数进行加密处理,得到加密后的第一模型参数,然后再将加密后的第一模型参数发送至第二客户端。
而且,每个第二客户端同样基于支持向量机构建有课程预测模型,并基于第二客户端对应的教育机构本地的学生的学习信息和对目标课程的学习意向信息,生成有训练样本训练建课程预测模型,因此第二客户端作为执行终端时,同样可作为第一客户端执行步骤s10-s50,因此第二客户端生成第二模型参数的方式,与第一客户端生成第一模型参数的方式相同。
因此,在第一客户端向第二客户端发送第一模型参数时,第二客户端同样可获取课程预测模型在第二客户端本地训练得到的第一参数和第二参数作为第二模型参数,然后利用服务端的公钥对第二模型参数进行加密后,再将第二模型参数发送至第一客户端,这样第一客户端即可接收得到第二客户端发送的第二模型参数。
可选的,当第二客户端的数量有多个时,则第一客户端会分别向每个第二客户端均发送第一模型参数,并接收每个第二客户端所发送的第二模型参数;而每个第二客户端,除了将本端的第二模型参数发送至第一客户端时,也会将本端的第二模型参数发送至其他第二客户端。
如步骤s40所述:可选的,当第一客户端接收到第二模型参数后,则根据第一模型参数中的加密的第一参数,以及第二模型参数中的加密的第一参数,生成加密的模型梯度,并将加密的模型梯度作为第三模型参数。
可选的,第二客户端接收到第一模型参数(或者除第一模型参数外,还接收到其他第二客户端发送的第二模型参数)后,则根据第一模型参数中的加密的第一参数,以及第二模型参数中的加密的第一参数,生成加密的模型梯度,并将加密的模型梯度作为第四模型参数。
可选的,在第一客户端和所有第二客户端中,还可以预先设定任一个客户端作为预设客户端(即预设客户端可以是第一客户端,也可以是任一个第二客户端),预设客户端在生成第三模型参数或第四模型参数时,还根据第一模型参数中的加密的第二参数,以及第二模型参数中的加密的第二参数,计算加密的模型总损失,然后将加密的模型总损失和加密的模型梯度,一同作为第三模型参数或第四模型参数,即第三模型参数包括加密的模型总损失,或者第四模型参数包括加密的模型总损失。
如步骤s50所述:在第一客户端得到第三模型参数后,则将第三模型参数发送至服务端,同时,第二客户端也会将其本端生成的第四模型参数发送至服务端。
可选的,服务端同样基于支持向量机构建有课程预测模型,服务端在接收到第一客户端发送的第三模型参数和第二客户端发送的第四模型参数后,即可得到多个加密后的模型梯度。服务端计算多个加密后的模型梯度的总和,得到加密后的模型总梯度后,再利用服务端私钥对模型总梯度进行解密,即可得到解密后的模型总梯度。
而且,由于第一客户端和第二客户端之间存在一个预设客户端,因此,服务端利用私钥解密预设客户端所发送的第三模型参数或第四模型参数时,除了得到解密后的模型梯度,还会得到解密后的模型总损失。
可选的,对于处于同一纵向联邦学习系统中的每个学生,都具有其对应的唯一id(identitydocument)值,服务端使用加密的id对齐技术来得到第一客户端和第二客户端共同的学生id集,同时不会暴露各客户端各自的学生的相关数据。在这个过程中,服务端不会暴露不重叠的id,在得到共同的学生id后,可以用这些id交集的部分数据来联合训练全局模型。
可选的,服务端在得到解密后的模型总梯度和解密后的模型总损失后,则基于此生成第五模型参数,并基于第五模型参数进行全局模型的更新,将第五模型参数反馈至第一客户端和第二客户端。
如步骤s60所述:第一客户端在接收到服务端发送的第五模型参数后,则提取其中的模型总梯度和模型总损失,并基于此更新第一客户端本地的课程预测模型。同理,第二客户端在接收到服务端发送的第五模型参数后,也会提取其中的模型总梯度和模型总损失,并基于此更新第二客户端本地的课程预测模型。
可选的,每个客户端在利用第五模型参数更新本地的课程预测模型之后,会检测课程预测模型是否达到收敛。若是,则得到训练完成的课程预测模型;若否,则获取下一个训练样本,返回执行步骤s10-s50,直到课程预测模型达到收敛。
这样,每个客户端即可得到利用全面的训练数据进行训练的课程预测模型,这样客户端在利用课程预测模型预测学生喜好的课程时,即可提高对课程预测的准确率;而且在模型训练的过程中,不同客户端彼此之间无需直接交换学生的相关信息,只需交互相应的模型参数即可,从而达到避免学生隐私遭到泄露的目的。
在一实施例中,在客户端各自训练课程预测模型的过程中,基于服务端构建的联邦学习体系,实现客户端彼此之间只需交换相关模型参数,无需直接交换学生的相关信息,从而可以利用全面的训练数据训练并更新课程预测模型,在避免泄露学生隐私的同时,得到了预测学生喜好的课程时准确率高的课程预测模型。
在一实施例中,在上述实施例基础上,所述将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数的步骤包括:
步骤s31、利用所述服务端的公钥加密所述第一模型参数,并将加密后的所述第一模型参数发送至第二客户端,以及接收所述第二客户端发送的第二模型参数;其中,所述第二客户端利用所述服务端的公钥加密所述第二模型参数后,将加密后的所述第二模型参数发送至所述第一客户端;所述服务端利用paillier算法产生秘钥对,以得到所述公钥后,并将所述公钥发送至所述第一客户端和所述第二客户端。
本实施例中,服务端利用paillier算法产生秘钥对,并基于此得到服务端公钥和私钥。其中,paillier算法为同态加密算法(homomorphicencryption),是一种特殊的加密方法,允许对密文进行处理得到仍然是加密的结果,即对明文先加密后再对得到的密文进行处理,以及对明文进行处理后再对处理结果加密,两种方式所得到的结果是相同的。
可选的,服务端在生成服务端的公钥后,会预先将公钥发送至第一客户端和第二客户端。
可选的,第一客户端利用接收到的服务端的公钥,可分别对第一模型参数中的第一参数和第二参数进行加密处理,得到加密后的第一模型参数,然后再将加密后的第一模型参数发送至第二客户端。而且第二客户端获取课程预测模型在第二客户端本地训练得到的第一参数和第二参数作为第二模型参数后,也会利用服务端的公钥对第二模型参数进行加密,然后再将第二模型参数发送至第一客户端,这样第一客户端即可接收得到第二客户端发送的第二模型参数。
可选的,在每个客户端本地的课程预测模型所采用的损失函数,可以是基于逻辑回归的非线性函数,因此课程预测模型也属于逻辑回归模型,因此需要采用梯度下降法来训练课程预测模型。而由于paillier算法不适于用于非线性函数,因此当终端需要计算模型损失时(如当终端为预设客户端时),可以采用二阶泰勒展开式对损失函数进行转换,利用二阶泰勒展开式近似表示原损失函数,通过多项式逼近原损失函数的方法,就可以利用paillier算法对原损失函数进行加密计算。
可选的,对于逻辑回归,若标签y∈{-1,1},则课程预测模型共用的损失函数ls可以是:
其中,n为样本数;θ为待估参数;t表示为矩阵转置;x为特征因子。需要说明的是,当损失函数计算的是第一客户端的模型损失la时,则特征因子则为第一客户端本地的第二参数;当损失函数计算的是第二客户端的模型损失lb时,则特征因子则为第二客户端本地的第二参数;当损失函数计算的是第一客户端与第二客户端之间的模型损失的交集lab时(若两者有交集时),则特征因子则为第一客户端和第二客户端本地的第二参数之间的交集。而预设客户端在计算加密后的模型总损失l时,所采用的公式示例如下:l=[[la]] [[lb]] [[lab]],其中“[[]]”表示为经paillier算法进行的加密处理。
可选的,对于逻辑回归,若标签y∈{-1,1},则课程预测模型共用的损失函数ls也可以是非线性函数,具体表示为:
其中,n为样本数;θ为待估参数;t表示为矩阵转置;x为特征因子;i为常量,根据实际需要设置;
基于此,即可利用paillier算法对该损失函数进行加密计算。
可选的,当第一客户端基于利用paillier算法加密后的第一模型参数和第二模型参数计算加密后的模型梯度[[a]]时,具体计算公式如下:
[[a]]=[[l′]]xa
其中,[[l′]]通过计算加密后的第一模型参数中的第一参数,以及加密后的第二模型参数中的第一参数,这两者总值得到(当然,根据实际情况不同,该总值也可以减去标签y);xa为第一客户端的数据集,且d1=c1*xa,c1为第一客户端的初始模型参数,d1为第一客户端本地的未加密的第一参数。
同理,当第二客户端基于利用paillier算法加密后的第一模型参数和第二模型参数计算加密后的模型梯度[[b]]时,具体计算公式如下:
[[b]]=[[l′]]xb
其中,[[l′]]通过计算加密后的第一模型参数中的第一参数,以及加密后的第二模型参数中的第一参数,这两者总值得到(当然,根据实际情况不同,该总值也可以减去标签y);xb为第二客户端的数据集,且d2=c2*xb,c2为第二客户端的初始模型参数,d2为第二客户端本地的未加密的第一参数。
这样,实现基于paillier算法进行模型相关参数的交换,进一步地提高了模型参数交换时的安全性。
在一实施例中,在上述实施例基础上,所述接收到所述服务端发送的所述第五模型参数时,根据所述第五模型参数更新所述课程预测模型的步骤之后,还包括:
步骤s70、检测到更新后的所述课程预测模型训练完成时,将所述课程预测模型存储至区块链网络。
本实施例中,每个客户端均与区块链网络建立有通信连接。区块链网络是通过共识的方式将新区块纳入区块链的一系列的节点的集合。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
可选的,第一客户端在利用第五模型参数更新本地的课程预测模型之后,会检测课程预测模型是否达到收敛。若是,则判定课程预测模型完成;若否,则获取下一个训练样本,返回执行步骤s10-s50,直到课程预测模型达到收敛。
可选的,当第一客户端检测到本地的课程预测模型训练完成时,则将课程预测模型上传至区块链网络进行存储,以提高课程预测模型存储的安全性,进而避免课程预测模型中的学生相关信息遭到泄露。
当然,当第二客户端检测到本地的课程预测模型训练完成时,也可以将第二客户端本地的课程预测模型上传至区块链网络进行存储,以提高课程预测模型存储的安全性,进而避免课程预测模型中的学生相关信息遭到泄露。
在一实施例中,在上述实施例基础上,所述接收到所述服务端发送的所述第五模型参数时,根据所述第五模型参数更新所述课程预测模型的步骤之后,还包括:
步骤s80、获取到目标学生的学习信息时,将所述目标学生的学习信息输入至所述课程预测模型中进行分析,以得到所述目标学生对所述目标课程的学习意向信息。
本实施例中,在终端(即第一客户端)本地的课程预测模型训练完成后,当终端所属的教育机构需要预测目标学生所喜好的课程时,则可以将目标学生的相关学习信息输入至终端,以使终端获取目标学生的学习信息。
或者,由终端向目标学生的关联设备发送电子调查问卷,并在目标学生填报电子调查问卷后,终端从回收的电子调查问卷读取目标学习填报的学习信息。
可选的,终端获取到目标学生的学习信息后,则将该学习信息输入到本地训练完成的课程预测模型中进行分析,由课程预测模型读取学习信息中的特征信息,然后基于预先建立的学习信息与目标课程的学习意向信息之间的映射关系,分析当前输入的学习信息的特征信息与各目标课程的学习意向信息之间的关联关系,从而得到与该特征信息对应的目标课程的学习意向信息。
应当理解的是,当课程预测模型接收到学习信息时,也会先将学习信息转换为相应的支持向量(即课程预测模型所能读懂的向量),再对其进行分析。
进一步地,终端获取课程预测模型输出的每个目标课程的学习意向信息,即可得到目标学生对每个目标课程的学习意向信息。其中,学习意向信息分为有意向学习(即有意向学习目标课程)和无意向学习(即无意向学习目标课程)。
这样,利用基于全面的训练数据训练得到课程预测模型,预测学生喜好的课程,即可提高预测学生喜好的课程的准确率。
在一实施例中,在上述实施例基础上,所述将所述目标学生的学习信息输入至所述课程预测模型中进行分析,以得到所述目标学生对所述目标课程的学习意向信息的步骤之后,还包括:
步骤s90、将所述学习意向信息为有意向学习的所述目标课程作为推荐课程;
步骤s91、向所述目标学生推荐所述推荐课程。
本实施例中,终端在得到目标学生对每个目标课程的学习意向信息后,则根据学习意向信息,获取所有目标课程中,对应的学习意向信息为有意向学习的目标课程,作为推荐课程。
可选的,终端根据推荐课程生成课程推荐信息,然后将课程推荐信息发送至目标学生的关联设备,以向目标学生推荐所述推荐课程。
其中,若推荐课程具有多个时,则终端在生成课程推荐信息时,可以根据各推荐课程的学习难易程度,对推荐课程进行排序,然后基于排序结果生成课程推荐信息,从而向目标学生优先推荐易学习(或易掌握)的课程。
这样,提高了向学生个性化推荐课程的准确率,并有效提高在线教学质量与学生的学习热情。
在一实施例中,在上述实施例基础上,所述向所述目标学生推荐所述推荐课程的步骤之后,还包括:
步骤s100、检测到所述目标学生报读所述推荐课程时,根据所述目标学生的学习信息和所述推荐课程生成所述训练样本,并基于所述训练样本更新所述课程预测模型。
本实施例中,当终端向目标学生推荐或推送推荐课程后,则可以继续追踪目标学生是否有报读推荐课程。其中,当推荐课程为付费课程时,则当学生有购买推荐课程,则判定学生有报读推荐课程。
可选的,当终端检测到目标学生有报读推荐课程时,则根据该目标学生的学习信息和目标学生所报读的推荐课程生成新的训练样本,并将该训练样本中,目标学生所报读的推荐课程的学习意向信息标注为有意向学习,而将除推荐课程之外的其他目标课程的学习意向信息标注为无意向学习。
进一步地,终端基于新生成的训练样本,对课程预测模型进行训练更新,从而进一步提高课程预测模型预测学生喜好的课程的准确率。
在一实施例中,在上述实施例基础上,所述基于所述训练样本更新所述课程预测模型的步骤之后,还包括:
步骤s110、获取基于所述训练样本更新后的所述课程预测模型对应的第一模型参数,并基于获取到的所述第一模型参数,返回执行所述将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数的步骤。
本实施例中,当终端基于新生成的训练样本更新本地的课程预测模型后,则从基于此更新后的课程预测模型中获取第一模型参数,并基于新获取到的第一模型参数,返回执行所述将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数的步骤,以通过执行步骤s30-s60,利用联邦学习体系(即基于服务端、第一客户端和第二客户端构建的联邦学习系统),对课程预测模型进行全局模型参数的更新。
可选的,终端可以是检测到课程预测模型基于训练样本进行更新的更新次数大于预设次数时,则返回执行所述将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数的步骤,并更新次数。其中,所述预设次数可以根据实际情况需要设置,本实施例对此不作限定。
可选的,终端也可以是每隔预设时长,则返回执行所述将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数的步骤。其中,所述预设时长可以根据实际情况需要设置,本实施例对此不作限定。例如设置预设时长为1天,并在每天20:00时(空闲时间)返回执行所述将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数的步骤。
这样,可以基于新增训练样本对课程预测模型进行常规性的全局更新,从而进一步提高课程预测模型预测学生喜好的课程的准确率。
参照图2,本申请实施例中还提供一种课程预测模型的更新装置10,包括:
获取模块11,用于第一客户端获取多个训练样本,其中,所述训练样本包括本地学生的学习信息和所述本地学生对目标课程的学习意向信息,所述学习信息包括受教育程度、学习专业、学习历史、学习偏好和课程掌握程度中的至少一个;
训练模块12,用于将所述训练样本转换为支持向量,并基于所述支持向量输入至对课程预测模型进行训练,得到第一模型参数,其中,所述课程预测模型基于支持向量机构建,所述第一模型参数包括第一参数和第二参数,所述第一参数用于计算所述课程预测模型的模型梯度,所述第二参数用于计算所述课程预测模型的模型损失;
发送模块13,用于将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数,其中,所述第二模型参数的生成方式与所述第一模型参数的生成方式相同;
生成模块14,用于根据所述第一模型参数和所述第二模型参数生成第三模型参数;
上传模块15,用于将所述第三模型参数上传至服务端,其中,所述第二客户端根据所述第一模型参数和所述第二模型参数生成第四模型参数,并上传所述第四模型参数至所述服务端;所述服务端用于根据所述第三模型参数和所述第四模型参数生成第五模型参数,并将所述第五模型参数反馈至所述第一客户端和所述第二客户端;
更新模块16,用于接收到所述服务端发送的所述第五模型参数时,根据所述第五模型参数更新所述课程预测模型。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储课程预测模型的更新方法的相关数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种课程预测模型的更新方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
此外,本申请还提出一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的课程预测模型的更新方法的步骤。可以理解的是,本实施例中的计算机可读存储介质可以是易失性可读存储介质,也可以为非易失性可读存储介质。
综上所述,为本申请实施例中提供的课程预测模型的更新方法、课程预测模型的更新装置、计算机设备和存储介质,在客户端各自训练课程预测模型的过程中,基于服务端构建的联邦学习体系,实现客户端彼此之间只需交换相关模型参数,无需直接交换学生的相关信息,从而可以利用全面的训练数据训练并更新课程预测模型,在避免泄露学生隐私的同时,得到了预测学生喜好的课程时准确率高的课程预测模型。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram通过多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。
1.一种课程预测模型的更新方法,其特征在于,包括:
第一客户端获取训练样本,其中,所述训练样本包括本地学生的学习信息和所述本地学生对目标课程的学习意向信息,所述学习信息包括受教育程度、学习专业、学习历史、学习偏好和课程掌握程度中的至少一个;
将所述训练样本转换为支持向量,并基于所述支持向量对课程预测模型进行训练,得到第一模型参数,其中,所述课程预测模型基于支持向量机构建,所述第一模型参数包括第一参数和第二参数,所述第一参数用于计算所述课程预测模型的模型梯度,所述第二参数用于计算所述课程预测模型的模型损失;
将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数,其中,所述第二模型参数的生成方式与所述第一模型参数的生成方式相同;
根据所述第一模型参数和所述第二模型参数生成第三模型参数;
将所述第三模型参数上传至服务端,其中,所述第二客户端根据所述第一模型参数和所述第二模型参数生成第四模型参数,并上传所述第四模型参数至所述服务端;所述服务端用于根据所述第三模型参数和所述第四模型参数生成第五模型参数,并将所述第五模型参数反馈至所述第一客户端和所述第二客户端;
接收到所述服务端发送的所述第五模型参数时,根据所述第五模型参数更新所述课程预测模型。
2.如权利要求1所述的课程预测模型的更新方法,其特征在于,所述将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数的步骤包括:
利用所述服务端的公钥加密所述第一模型参数,并将加密后的所述第一模型参数发送至第二客户端,以及接收所述第二客户端发送的第二模型参数;
其中,所述第二客户端利用所述服务端的公钥加密所述第二模型参数后,将加密后的所述第二模型参数发送至所述第一客户端;所述服务端利用paillier算法产生秘钥对,以得到所述公钥后,并将所述公钥发送至所述第一客户端和所述第二客户端。
3.如权利要求2所述的课程预测模型的更新方法,其特征在于,所述接收到所述服务端发送的所述第五模型参数时,根据所述第五模型参数更新所述课程预测模型的步骤之后,还包括:
检测到更新后的所述课程预测模型训练完成时,将所述课程预测模型存储至区块链网络。
4.如权利要求1-3中任一项所述的课程预测模型的更新方法,其特征在于,所述接收到所述服务端发送的所述第五模型参数时,根据所述第五模型参数更新所述课程预测模型的步骤之后,还包括:
获取到目标学生的学习信息时,将所述目标学生的学习信息输入至所述课程预测模型中进行分析,以得到所述目标学生对所述目标课程的学习意向信息。
5.如权利要求4所述的课程预测模型的更新方法,其特征在于,所述将所述目标学生的学习信息输入至所述课程预测模型中进行分析,以得到所述目标学生对所述目标课程的学习意向信息的步骤之后,还包括:
将所述学习意向信息为有意向学习的所述目标课程作为推荐课程;
向所述目标学生推荐所述推荐课程。
6.如权利要求5所述的课程预测模型的更新方法,其特征在于,所述向所述目标学生推荐所述推荐课程的步骤之后,还包括:
检测到所述目标学生报读所述推荐课程时,根据所述目标学生的学习信息和所述推荐课程生成所述训练样本,并基于所述训练样本更新所述课程预测模型。
7.如权利要求6所述的课程预测模型的更新方法,其特征在于,所述基于所述训练样本更新所述课程预测模型的步骤之后,还包括:
获取基于所述训练样本更新后的所述课程预测模型对应的第一模型参数,并基于获取到的所述第一模型参数,返回执行所述将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数的步骤。
8.一种课程预测模型的更新装置,其特征在于,包括:
获取模块,用于第一客户端获取训练样本,其中,所述训练样本包括本地学生的学习信息和所述本地学生对目标课程的学习意向信息,所述学习信息包括受教育程度、学习专业、学习历史、学习偏好和课程掌握程度中的至少一个;
训练模块,用于将所述训练样本转换为支持向量,并基所述支持向量对课程预测模型进行训练,得到第一模型参数,其中,所述课程预测模型基于支持向量机构建,所述第一模型参数包括第一参数和第二参数,所述第一参数用于计算所述课程预测模型的模型梯度,所述第二参数用于计算所述课程预测模型的模型损失;
发送模块,用于将所述第一模型参数发送至第二客户端,并接收所述第二客户端发送的第二模型参数,其中,所述第二模型参数的生成方式与所述第一模型参数的生成方式相同;
生成模块,用于根据所述第一模型参数和所述第二模型参数生成第三模型参数;
上传模块,用于将所述第三模型参数上传至服务端,其中,所述第二客户端根据所述第一模型参数和所述第二模型参数生成第四模型参数,并上传所述第四模型参数至所述服务端;所述服务端用于根据所述第三模型参数和所述第四模型参数生成第五模型参数,并将所述第五模型参数反馈至所述第一客户端和所述第二客户端;
更新模块,用于接收到所述服务端发送的所述第五模型参数时,根据所述第五模型参数更新所述课程预测模型。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的课程预测模型的更新方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的课程预测模型的更新方法的步骤。
技术总结