发明名称 一种基于训练集优化的推荐系统的动态推荐方法
摘要 本发明公开了一种基于训练集优化的推荐系统的动态推荐方法,该方法具体为:步骤(1)建立初步推荐模型部分:根据原始的用户评分数据生成最初的推荐模型;步骤(2)AdaBoost训练:通过多次迭代学训练数据,利用最初的推荐模型作为分类判定的依据并进行数据的分类和调整样本的学次数;步骤(3)筛选错误样本:把经过多轮的AdaBoost训练之后被选定为难样本的数据当作错误样本去除从而构建出新训练数据集合;步骤(4)重构推荐模型:以新的训练数据为基础,结合训练结果重新生成推荐模型;步骤(5)产生推荐结果:利用新的推荐模型产生推荐结果。本发明能够利用原始训练数据集在内容上很大的相关性,排除一些在推荐服务中没有参考意义的数据,提高训练数据的有效性和最终推荐模型的精度。
申请公布号 CN102508907B 申请公布日期 2013.11.20
申请号 CN201110356894.4 申请日期 2011.11.11
申请人 北京航空航天大学 发明人 欧阳元新;蒋祥涛;罗建辉;熊璋
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京科迪生专利代理有限责任公司 11251 代理人 李新华;贾玉忠
主权项 1.一种基于训练集优化的推荐系统的动态推荐方法,其特征在于:该方法具体步骤如下: 步骤(1)、建立初步推荐模型:根据原始的用户评分数据,利用基于正规化矩阵因式分解推荐模型中的建模方法生成初步推荐模型; 步骤(2)、AdaBoost训练:利用步骤(1)中生成的推荐模型作为最初分类判定的依据构建分类器,根据推荐模型计算出的推荐值和原始数据值之间的差异情况判定数据的分类,利用AdaBoost算法学习原始训练样本,并在每一轮结束后生成新的分类器; 其中,所述步骤(2)中对原始数据集的AdaBoost聚类训练,具体如下: 步骤①、修改正规化矩阵因式分解推荐模型,不再将原始评分数据集合T分割成两个子集T<sub>1</sub>、T<sub>2</sub>,其中,数据集T<sub>1</sub>用于进行学习,数据集T<sub>2</sub>用于判定学习停止,而是对数据集T中的所有数据均进行学习,设定AdaBoost训练的迭代轮数I、每轮学习的次数R、允许的错误范围errPermission,并初始化特征向量集; 步骤②、在第一轮的迭代中利用正规化矩阵因式分解推荐模型学习训练数据R次,在训练得到的特征向量集之上计算训练数据中对应用户对项目的评分的估计值<img file="FDA00003100222900014.GIF" wi="67" he="70" />并求出其与真实值r<sub>u,i</sub>的绝对误差,即绝对误差<img file="FDA00003100222900011.GIF" wi="372" he="70" />步骤③、当步骤②中计算出的AbsE值大于errPermission时判定此数据为难样本,遍历全部的训练数据获得难样本的总数errCount<sup>n</sup>并由下式计算出样本的错误率ε<sup>n</sup>,其中|T|表示训练集中的样本个数; <img file="FDA00003100222900012.GIF" wi="517" he="141" />式;式中:ε<sup>n</sup>表示样本错误率,|T|表示训练集中的样本个数,errCount<sup>n</sup>表示遍历全部的训练数据获得难样本的总数; 步骤④、根据步骤③中计算出来的错误率ε<sup>n</sup>调整训练样本在下一轮迭代中的学习次数,具体为:当训练样本数据的AbsE值小于errPermission时,该样本在下一轮迭代中的学习次数为trainTime<sup>n+1</sup>=trainTime<sup>n</sup>*ε<sup>n</sup>其中若trainTime<sup>n+1</sup>&lt;1则取1,当训练样本数据的AbsE值大于errPermission时即(2)式中判定其为难样本时,该样本在下一轮迭代中的学习次数为<img file="FDA00003100222900013.GIF" wi="571" he="119" />可用如下式表示:<img file="FDA00003100222900021.GIF" wi="1344" he="234" />式;式中:trainTime<sup>n</sup>表示样本在第n次轮迭代中的学习次数,trainTime<sup>n+1</sup>表示样本在第n+1次轮迭代中的学习次数,ε<sup>n</sup>表示步骤③中计算出来的错误率,AbsE值表示步骤(2)的子步骤②计算出来的绝对误差,errPermission表示允许的错误范围; 步骤⑤、将errPermission以固定比例declineRate缩减之后,开始新一轮的迭代,并且在该轮的迭代中每个样本的学习次数按照步骤④中计算出的进行; 步骤(3)、筛选错误样本:在利用AdaBoost算法的训练过程中每一轮训练都需要筛选出难样本,难样本的划分可以采用预测值与真实值之间的差异性来判断,即当这种差异大于某一阈值时即判定为难样本;经过多轮的AdaBoost训练之后,多次被选定为难样本的数据可以当作错误样本去除,从而构建出用于下一次迭代所需的训练数据集合; 步骤(4)、重构推荐模型:以步骤(3)中获得的训练数据集合为基础,结合AdaBoost算法进行训练,重新生成推荐模型; 步骤(5)、产生推荐结果:以用户特征向量作为输入,利用步骤(4)获得的推荐模型计算出推荐结果并返回给用户。 
地址 100191 北京市海淀区学院路37号