基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx

上传人:b****5 文档编号:8561428 上传时间:2023-05-11 格式:DOCX 页数:42 大小:2.30MB
下载 相关 举报
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第1页
第1页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第2页
第2页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第3页
第3页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第4页
第4页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第5页
第5页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第6页
第6页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第7页
第7页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第8页
第8页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第9页
第9页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第10页
第10页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第11页
第11页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第12页
第12页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第13页
第13页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第14页
第14页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第15页
第15页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第16页
第16页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第17页
第17页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第18页
第18页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第19页
第19页 / 共42页
基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx_第20页
第20页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx

《基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx(42页珍藏版)》请在冰点文库上搜索。

基于OJ数据的习题个性化推荐系统毕业设计论文Word文档下载推荐.docx

1研究目的

智能在线学习系统[1]是个性化推荐的一种应用,本文介绍的是基于OJ数据的习题个性化推荐系统,本章简要介绍个性化推荐的概念、背景与国内外研究现状,并且针对目前流行的推荐方法予以介绍。

1.1研究背景及意义

近年来,随着互联网、移动设备等信息技术的迅猛发展,除了企业业务运营中不断积累的交易等业务数据之外,遍布全球的传感器无时无刻不在探测和收集物理世界的各种信息,移动互联网则在不断收集用户的地理位置信息,各种社会媒体中的数以亿计的用户也在随时随地地产生交互信息,这些数据不仅是数量巨大(以TB甚至PB为单位),而且形式繁多,除了企业业务运营信息系统中的结构化数据之外,各种文本、声音、图片、视频、地理位置等各种不同类型的数据决定了数据的多样性。

同时,这些时刻变化的来自各种数据源的数据有充满了噪音,对这些数据的管理和分析已经超出了传统的数据管理技术的能力,因此,人们称其为大数据[2]。

在教育领域,智能教学系统(IntellectualTutoringSystem)利用人工智能和计算机技术来模拟现实教学过程,使得该系统具备了人力教学所不具备的高效率、高存储、个性化等特点。

其广阔的发展前景使得越来越多的专家开始投入到对ITS的研究中,希望可以凭借计算机对知识的有效处理,由计算机代替老师来提高学生学习效率,并最终实现人类对其自身认知过程的终极解码。

智能教学系统作为一种辅助教学手段,其中运用传统的个性化推荐方法有其局限性,对于基于用户的协同过滤,推荐的原则必须要求用户会喜欢那些和他有相同喜好的用户喜欢的东西;

对于基于内容的协同过滤则有个前提,就是用户会喜欢和他以前喜欢的东西相似的东西,那么我们可以计算一个用户喜欢的物品的自相似度。

一个用户喜欢物品的自相似度大,就说明他喜欢的东西都是比较相似的,只有在这种情况下,该方法才会具有较高的推荐效率。

为了能够提高个性化推荐系统的准确率,本论文摒弃单一的协同过滤方法,提出新的推荐方法思路并将其理论应用智能在线学习系统中,更大的发挥在线学习系统个性化推荐的作用,为学生提供更优质的服务。

1.2推荐系统现状

目前对于个性化推荐系统的研究正处于高速发展期,相关的推荐算法也已在电子商务领域、个性化搜索等领域得到一定程度的发展和应用。

传统的个性化推荐算法包括基于内容的推荐、基于行为的推荐、以及混合推荐算法,其中基于行为的个性化推荐算法凭借其出色的行为分析和兴趣建模,得到了业内专家学者的广泛研究。

但具体到在线学习系统领域,系统本身包含的知识评测系统、以及知识表示系统决定了ITS中的个性化推荐模块对知识的依赖多余对用户学习行为的依赖。

相比于利益驱动的电子商务领域个性化推荐算法的蓬勃发展,主要应用于教育领域的个性化推荐算法的研究则相对疲软。

由于教育领域内知识本身具有很强的语义关系,软件对用户的辅导更多地是强调用户在认知学习中对知识语义间联系的掌握。

而应用较为广泛基于行为的个性化推荐算法,其原理则是通过构建邻居矩阵来判断用户的兴趣来为用户进行资源推荐,对于智能教辅而言,单一的基于用户的协同过滤和基于内容的协同过滤算法推荐结果忽略了用户在进行知识学习时表现出的认知特点,其准确度势必降低。

因此,本文将在前人的基础上,研究基于记忆的个性化推荐算法,在本系统中,包含两个纬度:

其一,基于用户(学生)的协同过滤[4],其二,基于内容(习题)的协同过滤,两者都是利用学生用户过去使用在线学习系统的历史提交记录,从而对学生进行习题个性化推荐。

将算法研究重点放到对知识结构与习题资源本身的信息的利用和处理上,以解决在ITS系统中为学生从海量资源中进行个性化资源推荐的问题,并将通过实验证明该算法和系统的理论价值与应用价值。

1.3论文内容与章节安排

对于介绍基于OJ数据的习题个性化推荐系统论文以下内容安排如下:

第二部分侧重介绍本系统数据处理过程中依据的理论知识背景及技术应用;

第三部分讲述了习题推荐系统实现过程中遇到的难题及整个系统的设计思路;

第四部分描述系统实现的详细步骤;

第五部分总结了本系统设计与实现过程中的心得与体会。

2理论支持与相关技术的应用与背景

习题个性化推荐系统所运用的理论来源于集体智慧,本系统中实现该理论的具体方法是基于记忆的协同过滤和基于规则的协同过滤。

鉴于开源软件Weka的强大功能和对Java应用程序的支持,我们采用Java作为开发语言,调用Weka程序返回的数据。

下面对这些方法的数学原理和工具或平台做具体介绍。

2.1相应的推荐算法及数学原理

2.1.1集体智慧与协同过滤

集体智慧(CollectiveIntelligence)[7]并不是Web2.0时代特有的,只是在Web2.0时代,大家在Web应用中利用集体智慧构建更加有趣的应用或者得到更好的用户体验。

集体智慧是指在大量的人群的行为和数据中收集答案,帮助你对整个人群得到统计意义上的结论,这些结论是我们在单个个体上无法得到的,它往往是某种趋势或者人群中共性的部分。

协同过滤是利用集体智慧的一个典型方法。

要理解什么是协同过滤(CollaborativeFiltering,简称CF)[5],首先想一个简单的问题,如果你现在想看个电影,但你不知道具体看哪部,你会怎么做?

大部分的人会问问周围的朋友,看看最近有什么好看的电影推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。

这就是协同过滤的核心思想。

协同过滤一般是在海量的用户中发掘出一小部分和你品位比较类似的,在协同过滤中,这些用户成为邻居,然后根据他们喜欢的其他东西组织成一个排序的目录作为推荐给你。

当然其中有一个核心的问题:

①如何确定一个用户是不是和你有相似的品位?

②如何将邻居们的喜好组织成一个排序的目录?

协同过滤相对于集体智慧而言,它从一定程度上保留了个体的特征,就是你的品位偏好,所以它更多可以作为个性化推荐的算法思想。

可以想象,这种推荐策略在Web2.0的长尾中是很重要的,将大众流行的东西推荐给长尾中的人怎么可能得到好的效果,这也回到推荐系统的一个核心问题:

了解你的用户,然后才能给出更好的推荐

2.2.2基于记忆的过滤

(1)基于用户的协同过滤

首先,要实现协同过滤,需要以下3个核心步骤:

①收集用户偏好:

从用户的行为和偏好中发现规律,并基于此给予推荐,如何收集用户的偏好信息成为系统推荐效果最基础的决定因素。

用户有很多方式向系统提供自己的偏好信息,而且不同的应用也可能大不相同。

收集了用户行为数据,我们还需要对数据进行一定的预处理,其中最核心的工作就是:

减噪和归一化[2]。

减噪:

用户行为数据是用户在使用应用过程中产生的,它可能存在大量的噪音和用户的误操作,我们可以通过经典的数据挖掘算法过滤掉行为数据中的噪音,这样可以是我们的分析更加精确。

归一化:

如前面讲到的,在计算用户对物品的喜好程度时,可能需要对不同的行为数据进行加权。

但可以想象,不同行为的数据取值可能相差很大,比如,用户的查看数据必然比购买数据大的多,如何将各个行为的数据统一在一个相同的取值范围中,从而使得加权求和得到的总体喜好更加精确,就需要我们进行归一化处理。

最简单的归一化处理,就是将各类数据除以此类中的最大值,以保证归一化后的数据取值在[0,1]范中。

进行的预处理后,根据不同应用的行为分析方法,可以选择分组或者加权处理,之后我们可以得到一个用户偏好的二维矩阵,一维是用户列表,另一维是物品列表,值是用户对物品的偏好,一般是[0,1]或者[-1,1]的浮点数值。

②找到相似的用户(通过相似度找到相似用户):

1、相似度的计算

关于相似度的计算,现有的几种基本方法都是基于向量(Vector)的,其实也就是计算两个向量的距离,距离越近相似度越大。

在推荐的场景中,在用户-物品偏好的二维矩阵中,我们可以将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度。

下面我们详细介绍几种常用的相似度计算方法:

a欧几里德距离(EuclideanDistance)[6]

最初用于计算欧几里德空间中两个点的距离,假设x,y是n维空间的两个点,它们之间的欧几里德距离是:

可以看出,当n=2时,欧几里德距离就是平面上两个点的距离。

当用欧几里德距离表示相似度,一般采用以下公式进行转换:

距离越小,相似度越大。

b皮尔逊相关系数(PearsonCorrelationCoefficient)

皮尔逊相关系数一般用于计算两个定距变量间联系的紧密程度,它的取值在[-1,+1]之间。

sx,sy是x和y的样品标准偏差。

2、相似邻居的计算

介绍完相似度的计算方法,下面我们看看如何根据相似度找到用户-物品的邻居,常用的挑选邻居的原则可以分为两类:

图2.1给出了二维平面空间上点集的示意图。

固定数量的邻居:

K-neighborhoods或者Fix-sizeneighborhoods

不论邻居的“远近”,只取最近的K个,作为其邻居。

如图2.1中的A,假设要计算点1的5个邻居,那么根据点之间的距离,我们取最近的5个点,分别是点2,点3,点4,点7和点5。

但很明显我们可以看出,这种方法对于孤立点的计算效果不好,因为要取固定个数的邻居,当它附近没有足够多比较相似的点,就被迫取一些不太相似的点作为邻居,这样就影响了邻居相似的程度,比如图1中,点1和点5其实并不是很相似。

基于相似度门槛的邻居:

Threshold-basedneighborhoods

与计算固定数量的邻居的原则不同,基于相似度门槛的邻居计算是对邻居的远近进行最大值的限制,落在以当前点为中心,距离为K的区域中的所有点都作为当前点的邻居,这种方法计算得到的邻居个数不确定,但相似度不会出现较大的误差。

如图1中的B,从点1出发,计算相似度在K内的邻居,得到点2,点3,点4和点7,这种方法计算出的邻居的相似度程度比前一种优,尤其是对孤立点的处理。

图2.1相似邻居计算示意图

固定聚类数的邻居:

K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。

该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。

对应的元素同样可以找到自己的邻居,本系统采用EM聚类分析算法,以下对K-Means聚类分析与EM聚类分析比较:

在聚类问题中,给我们的训练样本是

,每个

,没有了y。

K-means算法是将样本聚类成k个簇(cluster),具体算法描述如下:

1、随机选取k个聚类质心点(clustercentroids)为

2、重复下面过程直到收敛{

对于每一个样例i,计算其应该属于的类

对于每一个类j,重新计算该类的质心

}

图2.2K-means聚类分析示意图

如上图所示,K是我们事先给定的聚类数,

代表样例i与k个类中距离最近的那个类,

的值是1到k中的一个。

质心

代表我们对属于同一个类的样本中心点的猜测,拿星团模型来解释就是要将所有的星星聚成k个星团,首先随机选取k个宇宙中的点(或者k个星星)作为k个星团的质心,然后第一步对于每一个星星计算其到k个质心中每一个的距离,然后选取距离最近的那个星团作为

,这样经过第一步每一个星星都有了所属的星团;

第二步对于每一个星团,重新计算它的质心

(对里面所有的星星坐标求平均)。

重复迭代第一步和第二步直到质心不变或者变化很小。

K-means面对的第一个问题是如何保证收敛,前面的算法中强调结束条件就是收敛,可以证明的是K-means完全可以保证收敛性。

下面我们定性的描述一下收敛性,我们定义畸变函数(distortionfunction)如下:

J函数表示每个样本点到其质心的距离平方和。

K-means是要将J调整到最小。

假设当前J没有达到最小值,那么首先可以固定每个类的质心

,调整每个样例的所属的类别

来让J函数减少,同样,固定

,调整每个类的质心

也可以使J减小。

这两个过程就是内循环中使J单调递减的过程。

当J递减到最小时,

和c也同时收敛。

(在理论上,可以有多组不同的

和c值能够使得J取得最小值,但这种现象实际上很少见)。

由于畸变函数J是非凸函数,意味着我们不能保证取得的最小值是全局最小值,也就是说k-means对质心初始位置的选取比较感冒,但一般情况下k-means达到的局部最优已经满足需求。

但如果你怕陷入局部最优,那么可以选取不同的初始值跑多遍k-means,然后取其中最小的J对应的

和c输出。

下面累述一下K-means与EM的关系,首先回到初始问题,我们目的是将样本分成k个类,其实说白了就是求每个样例x的隐含类别y,然后利用隐含类别将x归类。

由于我们事先不知道类别y,那么我们首先可以对每个样例假定一个y吧,但是怎么知道假定的对不对呢?

怎么评价假定的好不好呢?

我们使用样本的极大似然估计来度量,这里是就是x和y的联合分布P(x,y)了。

如果找到的y能够使P(x,y)最大,那么我们找到的y就是样例x的最佳类别了,x顺手就聚类了。

但是我们第一次指定的y不一定会让P(x,y)最大,而且P(x,y)还依赖于其他未知参数,当然在给定y的情况下,我们可以调整其他参数让P(x,y)最大。

但是调整完参数后,我们发现有更好的y可以指定,那么我们重新指定y,然后再计算P(x,y)最大时的参数,反复迭代直至没有更好的y可以指定。

这个过程有几个难点,第一怎么假定y?

是每个样例硬指派一个y还是不同的y有不同的概率,概率如何度量。

第二如何估计P(x,y),P(x,y)还可能依赖很多其他参数,如何调整里面的参数让P(x,y)最大。

这里只是指出EM的思想,E步就是估计隐含类别y的期望值,M步调整其他参数使得在给定类别y的情况下,极大似然估计P(x,y)能够达到极大值。

然后在其他参数确定的情况下,重新估计y,周而复始,直至收敛。

对应于K-means来说就是我们一开始不知道每个样例

对应隐含变量也就是最佳类别

最开始可以随便指定一个

给它,然后为了让P(x,y)最大(这里是要让J最小),我们求出在给定c情况下,J最小时的

(前面提到的其他未知参数),然而此时发现,可以有更好的

(质心与样例

距离最小的类别)指定给样例

,那么

得到重新调整,上述过程就开始重复了,直到没有更好的

指定。

这样从K-means里我们可以看出它其实就是EM的体现,E步是确定隐含类别变量

,M步更新其他参数

来使J最小化。

这里的隐含类别变量指定方法比较特殊,属于硬指定,从k个类别中硬选出一个给样例,而不是对每个类别赋予不同的概率。

总体思想还是一个迭代优化过程,有目标函数,也有参数变量,只是多了个隐含变量,确定其他参数估计隐含变量,再确定隐含变量估计其他参数,直至目标函数最优。

③计算推荐。

基于用户的CF的基本思想相当简单,基于用户对物品的偏好找到相邻邻居用户,然后将邻居用户喜欢的推荐给当前用户。

计算上,就是将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,找到K邻居后,根据邻居的相似度权重以及他们对物品的偏好,预测当前用户没有偏好的未涉及物品,计算得到一个排序的物品列表作为推荐。

图2给出了一个例子,对于用户A,根据用户的历史偏好,这里只计算得到一个邻居-用户C,然后将用户C喜欢的物品D推荐给用户A。

图2.3基于用户的CF的基本原理

(2)基于内容的协同过滤

基于内容(物品)的CF的原理和基于用户的CF类似,只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。

从计算的角度看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的物品,计算得到一个排序的物品列表作为推荐。

图3给出了一个例子,对于物品A,根据所有用户的历史偏好,喜欢物品A的用户都喜欢物品C,得出物品A和物品C比较相似,而用户C喜欢物品A那么可以推断出用户C可能也喜欢物品C。

图2.4基于内容的CF的基本原理

2.2.3基于规则的过滤

基于关联规则的推荐更常见于电子商务系统中,并且也被证明行之有效。

其实际的意义为购买了一些物品的用户更倾向于购买另一些物品。

基于关联规则的推荐系统的首要目标是挖掘出关联规则,也就是那些同时被很多用户购买的物品集合,这些集合内的物品可以相互进行推荐。

目前关联规则挖掘算法主要从Apriori[2]和FP-Growth两个算法发展演变而来。

Apriori算法思路实现简单,通过迭代不断通过K-1元频繁项目集生成K元频繁项目集,直到不能生成为止,最终可以得到最大频繁项目集。

Apriori算法存在的问题是每次迭代都要判断生成K元集合的K-1元子集是否都是频繁项目集,计算量巨大;

并且Apriori算法是一个挖掘最大频繁项目集的算法,无法得到全部频繁模式集合。

FP-Growth算法通过构建FP-Tree(频繁模式树),去发现频繁模式集。

相比于Apriori算法,计算量较少,并且可以得出几乎所有的频繁项目集;

但该算法实现起来要比Apriori复杂,并且FP-Gro

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2