一种汉语新闻推荐系统的制作方法

文档序号:10624828阅读:283来源:国知局
一种汉语新闻推荐系统的制作方法
【专利摘要】本发明提供了一种汉语新闻推荐系统,所述系统包括用于收集数据、记录用户偏好并更新推荐模块的学习层、用于存储系统数据的数据层及用于生成新闻推荐列表的推荐层;所述推荐层包括根据用户请求返回推荐新闻列表的候选生成器及调用偏好模块对所述推荐新闻列表进行排序的聚集器。该系统可行的融合了基于内容、基于记忆和基于模型三类推荐方法的汉语新闻推荐系统,在避免了上述三种模型的缺陷的基础上,发扬了各自的优点,且并没有增加系统负担。
【专利说明】
一种汉语新闻推荐系统
技术领域
[0001]本发明涉及一种互联网领域的系统,具体讲涉及一种汉语新闻推荐系统。
【背景技术】
[0002]互联网及移动互联网的普及,信息量的爆炸式增长和人们在获取有用的和感兴趣的信息上的及时性和准确性间的矛盾,需要构建一种个性化的内容(新闻)推荐系统来满足人们有针对性地获取日常需求的信息。个性化的内容推荐系统目前主要分为两类:基于内容的推荐(content-based recommendat1n,或称为信息过滤,informat1n filter)方法,协同推荐(或称为协同过滤,collaborative filter)方法,而协同推荐方法又包括基于记忆(memory based)的和基于模型(model based)的两类方法。
[0003]基于内容的推荐:主要针对信息过滤,以用户的阅读/未阅读历史为语料,训练文本分类器,并使用训练所得到的分类器来预测用户对新的文档(新闻)的喜好程度,并据此做出是否将该文档推荐给用户的决策。
[0004]基于记忆的推荐:记录用户的偏好信息(某个用户阅读了某篇新闻),用这些偏好来刻画用户,即一个用户被表示为其所阅读过的新闻所构成的向量(u =[wl, w2,..., wi,..., wn], i为文档的编号,wi为用户对每篇文档的偏好值-如看过为1,没看过为0),对一篇新的文档d (并未向当前用户推荐过),使用最近邻方法预测该文档是否应该推荐给当前用户(具有与当前用户的向量最接近的向量的其他用户,用他们对文档d的偏好程度来预测当前用户对文档d的偏好程度)。
[0005]基于模型的推荐:同基于记忆的推荐方法不同的是,根据偏好,将所有用户划分到若干个组中,用户对新的文档的偏好程度是通过其所在的用户组对该文档的偏好程度来计算得到的。
[0006]协同推荐广泛应用于电子商务领域。由于新闻的更新速度和数量都很大,使用协同推荐方法会造成大量存储空间消耗,且每天都有大量新数据引入,按偏好计算文档间的相关度或对用户的偏好建模都需要大量的计算,通常的系统很难提供如此大的计算和存储资源,因此,针对新闻类内容的个性化推荐被广泛使用的是基于内容的推荐方法。大数据平台的广泛应用使得利用协同推荐来完成新闻的个性化推送成为可能,但此类系统因适用范围较广(除新闻外,如视频、音频推荐等)而通常完全忽略了新闻的内容。
[0007]基于内容的推荐的实现难度最小,对每个用户仅使用一个训练好的分类模型即可刻画其偏好,因此所占用的存储空间也较少。但其缺点也很明显,对用户偏好的把握完全依赖于用户历史阅读文章的内容,而用户的偏好,尤其是短时期内的兴趣偏好,往往具有很强的不确定性,因此基于内容的推荐很容易让用户有千篇一律的感觉,也容易漏掉与用户历史并不相似但却可能令用户感兴趣的文档。
[0008]基于记忆的推荐因需要记录每条用户偏好信息,因此对存储空间的消耗比较大,所以通常会只保留最邻近的数据(如使用阈值来控制),这会导致该方法仅对用户的短期兴趣具有较好的刻画效果,但对于用户长期的兴趣偏好却不能给出很好的反映,从而影响推荐效果。
[0009]与基于记忆的推荐相反,基于模型的推荐由于用户的偏好是以用户过去行为的模型来刻画,所以通常可以较好的反映用户的长期兴趣偏好,但由于模型对数据的反应具有一定的滞后性,对用户短期兴趣的把握效果不好,也影响最终推荐的效果。
[0010]同时,协同推荐方法的共同缺点首选是:
[0011]对于用户量很少的应用而言,尚无任何用户对其进行评价/阅读的新文档无法得到正确推荐;
[0012]其次是,针对新闻一类的文本类信息,根本不使用可以被方便处理的内容信息,对于用户兴趣偏好的把握而言,是一个不小的损失。
[0013]因此,需要提供一种搜索更高效、结果更准确的汉语新闻推荐系统。

【发明内容】

[0014]为克服上述现有技术的不足,本发明提供一种轻量级图片搜索方法。
[0015]实现上述目的所采用的解决方案为:
[0016]—种汉语新闻推荐系统,其改进之处在于:所述系统包括用于收集数据、记录用户偏好并更新推荐模块的学习层、用于存储系统数据的数据层及用于生成新闻推荐列表的推荐层;
[0017]所述推荐层包括根据用户请求返回推荐新闻列表的候选生成器及调用偏好模块对所述推荐新闻列表进行排序的聚集器。
[0018]进一步的,所述学习层包括记录器、注册器、更新器和学习器。
[0019]进一步的,所述记录器用于在数据层中写入新闻信息;所述注册器用于在数据层中维护用户信息;
[0020]所述更新器用于获取用户偏好数据,将所述用户偏好数据存入所述数据层的用户偏好及根据获取的用户偏好数据计算出新闻间的物品相关度;
[0021]用于训练偏好模型的学习器包括用于训练基于模型的推荐模型的聚类器和用于训练基于内容的推荐模型的分类器。
[0022]进一步的,所述聚类器读取所述用户偏好和所述用户信息,根据所述用户偏好周期性的对用户进行聚类学习,将聚类结果和每个类对各文章的偏好信息分别更新到用户组和组偏好;
[0023]所述分类器,周期性读取用户信息和推荐历史,学习形成分类模型,并将所述分类模型更新到用户属性。
[0024]进一步的,所述数据层包括存储所述推荐系统的数据的分布式数据库;
[0025]所述分布式数据库的字段包括物品信息、用户信息、用户偏好信息、物品相关度信息、用户组、组偏好、用户属性和推荐历史。
[0026]进一步的,所述物品信息,用于记录每篇新闻的包括编号、分类、来源、时间、重复次数和内容的信息;
[0027]所述用户信息,用于记录用户的包括编号的信息;
[0028]所述用户偏好,用于记录每个用户对每篇文章的偏好信息;
[0029]所述物品相关度,用于存放根据用户偏好计算出来的新闻两两之间的相关度值;
[0030]所述用户组和所述组偏好,分别用于存放聚类算法处理用户偏好数据后得到的用户分组信息和每个组对各篇文章的偏好程度;
[0031]所述用户属性,用于存放基于内容的每个用户的推荐模型;
[0032]所述推荐历史,用于记录推荐给每个用户的文档历史。
[0033]进一步的,收到所述聚集器的请求后,所述候选生成器从系统的新闻中选取一个区分新闻质量的候选新闻列表;
[0034]收到所述候选新闻列表后,所述聚集器通过调用基于记忆的协同过滤器、基于模型的协同过滤器和基于内容的信息过滤器分别对所述候选新闻列表进行用户偏好分值预测,综合后获得用户偏好分值预测值,将按所述用户偏好分值预测值排序后的所述候选新闻列表输出给前端展示;
[0035]进一步的,所述基于记忆的协同过滤器用于捕获用户的短期兴趣,根据用户偏好数据和所述新闻间的相关度预测用户对每篇候选文章的偏好。
[0036]进一步的,所述基于模型的协同过滤器用于捕获用户的长期兴趣,根据所述用户组和组偏好对候选文章的偏好来预测用户对候选文章的偏好。
[0037]进一步的,所述基于内容的信息过滤器根据分类器所学到的分类模型和新闻内容,将候选新闻分类为用户偏好新闻和非用户偏好新闻。
[0038]与现有技术相比,本发明具有以下有益效果:
[0039]1、本发明的系统可行的融合了基于内容、基于记忆和基于模型等3类推荐方法的汉语新闻推荐系统,在避免了上述三种模型的缺陷的基础上,发扬了各自的优点,且并没有增加系统负担。
[0040]2、本发明的系统既保证对用户短期兴趣和长期兴趣的准确刻画,也要能够充分利用新闻的内容来提高推荐的准确性并减小新文档不能被准确推荐的风险,且保证在用户量较小的情况下,能够有效地完成新闻的个性化推荐。
[0041]3、与仅使用基于内容的新闻推荐系统相比,本发明的系统可以有效地把握用户的短期兴趣,且使得推荐的内容更为丰富多样。
[0042]4、与仅使用协同推荐方法的新闻推荐系统相比,本发明的系统可有效解决因用户量较少导致推荐不准确以及新文档不能被有效推荐的问题,同时还很好地利用了新闻本身的信息,让推荐结果具有更好的可解释性。
[0043]5、本发明的系统可同时把握了用户的长、短期兴趣;且能很好地解决在用户量较小情况下的个性化推荐问题和新文档的准确推荐问题。
[0044]6、本发明的系统具有很高的可扩展性,可通过增加机器的方法应对用户量及数据量激增的情况。
[0045]7、本发明的系统具有很强的通用性,可以方便得应用于其他内容(如博文、小说等)的个性化推荐。
【附图说明】
[0046]图1为本实施例中新闻推荐基本流程图;
[0047]图2为本实施例中学习器的数据处理流程图;
[0048]图3为本实施例中聚集器的数据处理流程图
[0049]图4为本实施中基于记忆、模型、内容推荐模块的推荐系统结构示意图。
【具体实施方式】
[0050]下面结合附图对本发明的【具体实施方式】做进一步的详细说明。
[0051]本发明提供一种基于内容、基于记忆和基于模型三种推荐方法的汉语新闻内容推荐系统。该系统主要包括聚集器和学习器。
[0052]如图1所示,图1为本实施例中新闻推荐基本流程图;该汉语新闻推荐系统主要包括聚集器和学习器。
[0053]聚集器,用于处理用户发送的请求。
[0054]聚集器根据用户的兴趣模型从候选新闻列表中筛选出一个考虑用户偏好的新闻列表,将其推荐给用户。
[0055]学习器,用于生成用户的兴趣模型。
[0056]学习器从用户的阅读记录中提取出相应的能够预测用户对新文档的喜好程度的模型,即用户偏好模型。
[0057]学习器根据用户偏好数据,即用户在新闻阅读过程中产生的一条或多条点击事件的记录,训练生成新的偏好模型,偏好模型的训练周期性进行。
[0058]上述用户偏好数据,具体包括评分或点击的数据;系统对用户偏好的评分包括以下情况:
[0059]①、显式评分:若有评分系统,可根据实际情况给用户评分,如根据各情况给定的分值分别为I?5 ;
[0060]②、隐式评分:若没有评分系统,则可以把用户点击/访问作为I分,用户未点击/访问作为O分。上述评分具体分值可根据各系统设定。
[0061 ] 如图2所示,图2为本实施例中学习器的数据处理流程图;学习器包括聚类器和分类器。
[0062]聚类器,读取用户偏好信息和用户信息,周期性发起按用户偏好对用户进行聚类分组的学习过程,并用聚类结果和每个类对各文章的偏好信息分别更新用户组和组偏好。
[0063]为处理大规模的用户偏好信息,聚类算法采用分布式编程模型(如MapReduce)来实现,可直接使用hadoop生态圈中已有的基于MapReduce的机器学习包Mahout来完成。
[0064]分类器,周期性地读取每个用户的用户信息和阅读历史,阅读历史包括用户偏好、推荐历史及文档信息,启动学习分类器的过程,将学习好的分类器更新到用户属性。
[0065]与聚类类似,也使用分布式模型(如基于MapReduce的机器学习包Mahout)来实现。
[0066]学习过程包括:
[0067](I)、前端获取用户每次阅读事件,即点击的新闻,作为新的用户偏好数据发送给更新t吴块。
[0068](2)、更新模块将新的用户点击的新闻(一条或多条点击事件记录,即为偏好数据)填入数据库中的用户偏好;
[0069]存入用户偏好后,根据更新的数据计算出基于记忆的推荐模型存入数据库的物品相关度中,该模型形式为文档与文档间相关性的矩阵,该模型用于捕获用户的短期兴趣。
[0070]本实施例中,提供一种最简单的模型计算方法,该方法包括:
[0071]假设用户A阅读了新闻B,则将用户A阅读的所有新闻Cl,C2,...,Cn,与B分别组成对(Cl,B),(C2,B),...,(Cn,B),然后在模型(该模型为所有新闻与新闻构成的一个矩阵)中将这些对所对应的位置处的权重加I。
[0072]根据系统需求,可有其他策略,包括减小矩阵规模,按时间对权值进行衰减等。
[0073](3)、学习器定期获取用户偏好数据,训练生成新的偏好模型,分别为:
[0074]学习器的聚类器,用于训练基于模型的推荐模型;
[0075]学习器的分类器,用于训练基于内容的推荐模型,该推荐模型为一个分类模型。
[0076]聚类器运用聚类算法,如k-means、图聚类、谱聚类、fuzzy k_means、层次聚类、主题模型聚类等,将一堆数据按照数据间的距离分成若干堆。
[0077]分类器运用分类算法,如最近邻、朴素贝叶斯、svm、决策树等,根据事先准备好的数据学习出分类模型(这一步应该属于学习层),然后使用分类模型对新的数据进行分类(这一步应该属于推荐层),即分类器负责学习出分类模型,推荐层中的基于内容的信息过滤器使用分类模型对新数据进行分类。
[0078](4)、学习器将新训练好的偏好模型,即基于模型的推荐模型和基于内容的推荐模型,存入对应的数据库,基于模型的推荐模型存入用户组和组偏好,基于内容的推荐模型存入用户属性。
[0079]如图3所示,图3本实施例中聚集器的数据处理流程图,推荐过程主要包括:
[0080](I)、前端接收到用户请求后,将其发从给聚集器。
[0081](2)、聚集器将请求发送给候选生成器。
[0082](3)、候选生成器根据用户信息(如用户id)及其他信息(如新闻质量、网站权重等)为该用户生成一个候选新闻的列表。
[0083](4)、聚集器分别调用基于记忆的协同过滤器、基于模型的协同过滤器和基于内容的信息过滤器,预测用户对候选新闻列表中新闻的偏好程度,聚集器对获得的三个偏好值进行综合后按降序排序候选新闻,将其发送给前端。
[0084]本实施例中还提供了融合协同推荐方法的推荐系统。融合协同推荐方法提高系统的可扩展性,实例系统采用分布式计算平台作为其基本的存储和计算平台。
[0085]如图4所示,图4为本实施中基于记忆、模型、内容的推荐模型的推荐系统结构示意图;该推荐系统具体包括:学习层、数据层和推荐层。
[0086]—、数据(data)层
[0087]数据层,用于存储推荐系统中所需的各类数据,通过分布式存储系统实现。数据存储的字段主要包括:
[0088]①、物品信息(item informat1n),用于记录每篇新闻的相关信息,包括新闻编号ID、分类、数据来源、时间、重复次数、内容等。
[0089]②、用户信息(user informat1n),用于记录用户的相关信息,包括用户编号UID等。
[0090]③、用户偏好(user preference),用于记录每个用户对每篇文章的偏好(评分或点击)信息,包括点击时间、评价时间等,实现上可采用稀疏矩阵。
[0091]④、物品相关度(item similarity),作为支持基于记忆的协同过滤器的核心数据,该字段用于存放根据用户偏好计算出来的新闻两两之间的相关度值。
[0092]⑤、用户组(user group),用于存储存放聚类算法处理用户偏好数据后得到的用户分组信息,包括组编号GID等;
[0093]⑥、组偏好(group preference),用于存放聚类算法处理用户偏好数据后得到的用户分组信息和每个组对各篇文章的偏好程度;
[0094]上述用户组和组偏好是支持基于模型的协同过滤器的核心数据。
[0095]⑦、用户属性(user profile),作为支持基于内容的信息过滤器的核心数据,用于存放基于内容的每个用户的推荐模型(通常为文本分类器)。
[0096]⑧、推荐历史(recommend history),用于记录推荐给每个用户的文档的历史,具体包括用户喜欢/点击的、不喜欢/未点击的新闻。
[0097]二、学习(Iearn)层
[0098]学习层,用于收集各类数据、记录用户偏好及更新推荐模块,通过采用分布式存储系统及MapReduce程序实现。学习层主要包括以下模块:
[0099]①、记录器(recorder),将每篇新闻的相关信息写入物品信息中。
[0100]②、注册器(register),负责维护(增删等)用户信息,将其存入用户信息。
[0101]③、更新器(updater),负责数据层获取用户偏好信息,并将偏好信息存入用户偏好,同时要负责按照新的用户偏好计算并更新(实时或半实时)新闻间的物品相关度。
[0102]④、聚类器(clusterer),周期性(如按半天或天为间隔)发起按偏好对用户进行聚类(分组)的学习过程,并用聚类结果和每个类对各文章的偏好信息分别更新用户组和组偏好,需要读取用户偏好信息和用户信息。
[0103]为处理大规模的用户偏好信息,聚类算法应采用分布式编程模型(如MapReduce)来实现,这里可直接使用hadoop生态圈中已有的基于MapReduce的机器学习包Mahout来完成。
[0104]⑤、分类器(classifier),周期性地读取每个用户的阅读历史(需读取用户偏好、推荐历史、用户信息以及文档信息),启动学习分类器的过程,并用学习好的分类器更新用户属性。
[0105]与聚类类似,也应使用分布式模型(MapReduce)实现(利用Mahout包)。
[0106]三、推荐(reco_end)层
[0107]推荐层,用于根据用于请求为每个用户的每次阅读请求输出最符合其偏好的质量最好的新闻。推荐层通过采用分布式存储系统的客户端构建。推荐层主要包括模块:
[0108]①、候选生成器(candidates generator),负责在接收到聚集器发出的请求后,从系统的新闻中选取一个候选列表。该候选列表不具有个性化特点,主要的目的是区分新闻的质量(按时间、来源、长度、重复次数、网站权重等)。
[0109]②、聚集器(ensembler),负责响应用户的请求。在收到用户阅读新闻的请求后,从候选生成器获得候选新闻列表,然后使用基于记忆的协同过滤器、基于模型的协同过滤器和基于内容的信息过滤器分别对推荐列表中的每篇文章进行用户偏好分值预测,将获得的三个分值进行加权求和后作为每篇文章最终的偏好预测值,并将按预测值排序后的候选新闻列表输出给前端,由前端展示个性化推荐结果。
[0110]聚集器还负责将推荐列表记录到推荐历史,以便分类器学习基于内容的推荐模型。
[0111]聚集器所调用的三个推荐模块均以分布式数据库客户端程序的形式建立,分别为:
[0112]基于记忆的协同过滤器(memory-based cf):根据用户偏好数据和新闻间的相关度预测用户对每篇候选文章的偏好。
[0113]该过滤器主要用于捕获用户的短期兴趣,实时性要求较高,因此可对新闻间相关度进行缓存,缓存实现方案可采用redis等内存数据库。
[0114]基于模型的协同过滤器(model-based cf):根据用户的分组信息和分组对候选文章的偏好来预测用户对候选文章的偏好,该推荐模块用于捕获用户的长期兴趣。
[0115]基于内容的信息过滤器(content-based if):根据分类器所学到的该用户的兴趣分类模型和新闻的内容,对候选新闻进行分类,是否为用户偏好的新闻。
[0116]最后应当说明的是:以上实施例仅用于说明本申请的技术方案而非对其保护范围的限制,尽管参照上述实施例对本申请进行了详细的说明,所属领域的普通技术人员应当理解:本领域技术人员阅读本申请后依然可对申请的【具体实施方式】进行种种变更、修改或者等同替换,但这些变更、修改或者等同替换,均在申请待批的权利要求保护范围之内。
【主权项】
1.一种汉语新闻推荐系统,其特征在于:所述系统包括用于收集数据、记录用户偏好并更新推荐模块的学习层、用于存储系统数据的数据层及用于生成新闻推荐列表的推荐层; 所述推荐层包括根据用户请求返回推荐新闻列表的候选生成器及调用偏好模块对所述推荐新闻列表进行排序的聚集器。2.如权利要求1所述的一种汉语新闻推荐系统,其特征在于:所述学习层包括记录器、注册器、更新器和学习器。3.如权利要求1所述的一种汉语新闻推荐系统,其特征在于:所述记录器用于在数据层中写入新闻信息;所述注册器用于在数据层中维护用户信息; 所述更新器用于获取用户偏好数据,将所述用户偏好数据存入所述数据层的用户偏好及根据获取的用户偏好数据计算出新闻间的物品相关度; 用于训练偏好模型的学习器包括用于训练基于模型的推荐模型的聚类器和用于训练基于内容的推荐模型的分类器。4.如权利要求3所述的一种汉语新闻推荐系统,其特征在于:所述聚类器读取所述用户偏好和所述用户信息,根据所述用户偏好周期性的对用户进行聚类学习,将聚类结果和每个类对各文章的偏好信息分别更新到用户组和组偏好; 所述分类器,周期性读取用户信息和推荐历史,学习形成分类模型,并将所述分类模型更新到用户属性。5.如权利要求1所述的一种汉语新闻推荐系统,其特征在于:所述数据层包括存储所述推荐系统的数据的分布式数据库; 所述分布式数据库的字段包括物品信息、用户信息、用户偏好信息、物品相关度信息、用户组、组偏好、用户属性和推荐历史。6.如权利要求5所述的一种汉语新闻推荐系统,其特征在于:所述物品信息,用于记录每篇新闻的包括编号、分类、来源、时间、重复次数和内容的信息; 所述用户信息,用于记录用户的包括编号的信息; 所述用户偏好,用于记录每个用户对每篇文章的偏好信息; 所述物品相关度,用于存放根据用户偏好计算出来的新闻两两之间的相关度值; 所述用户组和所述组偏好,分别用于存放聚类算法处理用户偏好数据后得到的用户分组信息和每个组对各篇文章的偏好程度; 所述用户属性,用于存放基于内容的每个用户的推荐模型; 所述推荐历史,用于记录推荐给每个用户的文档历史。7.如权利要求1所述的一种汉语新闻推荐系统,其特征在于:收到所述聚集器的请求后,所述候选生成器从系统的新闻中选取一个区分新闻质量的候选新闻列表; 收到所述候选新闻列表后,所述聚集器通过调用基于记忆的协同过滤器、基于模型的协同过滤器和基于内容的信息过滤器分别对所述候选新闻列表进行用户偏好分值预测,综合后获得用户偏好分值预测值,将按所述用户偏好分值预测值排序后的所述候选新闻列表输出给前端展示。8.如权利要求7所述的一种汉语新闻推荐系统,其特征在于:所述基于记忆的协同过滤器用于捕获用户的短期兴趣,根据用户偏好数据和所述新闻间的相关度预测用户对每篇候选文章的偏好。9.如权利要求7所述的一种汉语新闻推荐系统,其特征在于:所述基于模型的协同过滤器用于捕获用户的长期兴趣,根据所述用户组和组偏好对候选文章的偏好来预测用户对候选文章的偏好。10.如权利要求7所述的一种汉语新闻推荐系统,其特征在于:所述基于内容的信息过滤器根据分类器所学到的分类模型和新闻内容,将候选新闻分类为用户偏好新闻和非用户偏好新闻。
【文档编号】G06F17/30GK105989056SQ201510063902
【公开日】2016年10月5日
【申请日】2015年2月6日
【发明人】赵毅强, 许欢庆, 郭永福, 陈沛
【申请人】北京中搜网络技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1