一种基于成熟度技术的文献推荐系统及方法转让专利
申请号 : CN202110438164.2
文献号 : CN113076481B
文献日 : 2022-05-13
发明人 : 贾希旺 , 贾宁
申请人 : 同济大学
摘要 :
权利要求 :
1.一种基于成熟度技术的文献推荐系统,其特征在于,基于成熟度推荐方法实现该系统,采用了基于内容的推荐算法的基本框架;首先通过机器学习的方法分析出每篇文献的主题类别,再根据用户的浏览记录找到用户感兴趣的主题,给用户推荐他所感兴趣的主题下的文献;再在这个基础上考虑到用户在他感兴趣的领域的学习程度,根据用户的学习程度为用户设定等级;再计算出每篇文献在它所属的领域属于什么程度的文献,通过计算机的方法对文献设定等级;最后结合用户的等级和文献本身的等级为用户推荐适合他等级的文献;
所述系统包括数据预处理模块、文献分类模块、计算文献等级模块、计算用户等级模块、生成各用户的推荐列表模块,其中:数据预处理模块得到的数据有三部分,分别是每个用户的文献阅读顺序、文献的详细内容、文献的发布时间和好评率,其中用户的文献阅读顺序提供给计算文献等级模块和计算用户等级模块;文献的详细内容提供给文献分类模块;
文献分类模块的输入是各种主题的技术文献详细内容,输出是所有文献和该文献的主题,将该输出提供给计算文献等级模块;在文献主题分类时使用了文本向量空间模型,这是一种词袋模式,不考虑词的先后顺序,然后使用TFIDF统计加权技术对文献内的各个词语求权重,并且使用word2vec方法来对所有的词语b进行分类;使用新的向量来表示词语;获得每篇文献的所有权重前K大的词语之后,文献之间两两求得相似度;使用K最邻近算法对文献进行聚类操作,把所有的文献一共分为K类,K的大小取决于文献库的体量,每个分类即一个主题;
计算文献等级模块的输入是各个文献及它们的主题以及用户的文献阅读顺序,输出是各个文献的等级信息,提供给计算用户等级模块;对每个主题的文献进行等级划分,参考的重要特征有以下三个:
(1)文献的发布时间,最新发布的文献是当前领域的前沿的研究;
(2)文献在所有用户阅读列表中的顺序;综合各个用户在某一个主题下的阅读顺序,符合用户的阅读和学习顺序由浅入深的过程;
(3)好评率作为参考标准;
综上,首先根据每个用户阅读该主题下的文献的顺序对文献进行评级,并规整为1 10~
级;确定等级之后,根据文献的下载量和发布时间对文献进行排序,优先推荐排名高的文献给用户;
计算用户等级模块的输入是用户的阅读列表和各文献的等级信息;每个用户阅读多个主题的文献,确定用户的等级时,考虑到了时间局部性的原则,使用用户在各个主题下最近阅读的文章来计算用户在该主题下的等级;找到用户最近阅读的各个主题下的三篇文献,使用这三篇文献的等级平均值作为用户在当前主题下的等级;
生成各用户的推荐列表模块,该模块的输入是用户感兴趣的主题、在该主题下用户的等级和不同主题下各个文献的等级,输出是给用户的推荐列表;给用户推荐一共十篇文献,其中五篇是和用户等级相同,另外五篇为等级高一些的文献。
2.如权利要求1所述的系统,其特征在于,在有新用户加入系统时,此时系统对用户的主题和等级划分为空,根据用户接下来阅读的几篇文献对用户进行主题和等级的划分;而对那些新加入的文献,在确定文献的等级时,本系统选择记录阅读该文献的用户的等级;将前N个阅读该文献的用户的等级取平均值,作为文献的等级。
说明书 :
一种基于成熟度技术的文献推荐系统及方法
技术领域
背景技术
推荐系统可以精确地找到用户的兴趣点并推荐用户喜欢的物品,大大增加了系统的点击率
和用户的满意度。目前在对物品进行推荐时,最常采用的方法为协同过滤的推荐方法和基
于内容的推荐方法,除此之外还有准确率比较高的矩阵分解的方法和一些基于图神经网络
的方法。
往只会用到其中的几种。
程度不同。如果仅仅给用户推荐某个主题下的所有文献,则容易造成给初学者推荐了难度
很大的前沿文献,或是给熟知该领域的专家用户推荐了过于浅显的文献的问题。
发明内容
献为各类以文字为载体的文本。
到用户感兴趣的主题,给用户推荐他所感兴趣的主题下的文献;再在这个基础上考虑到用
户在他感兴趣的领域的学习程度,根据用户的学习程度为用户设定等级;再计算出每篇文
献在它所属的领域属于什么程度的文献,通过计算机的方法对文献设定等级;最后结合用
户的等级和文献本身的等级为用户推荐适合他等级的文献。
列表模块,模块数据交互图见附图2,其中:
模块和计算用户等级模块;文献的详细内容提供给文献分类模块。
这是一种词袋模式,不考虑词的先后顺序,然后使用TFIDF统计加权技术对文献内的各个词
语求权重,并且使用word2vec方法来对所有的词语进行分类。使用新的向量来表示词语。获
得每篇文献的所有权重前K大的词语之后,文献之间可以两两求得相似度。使用KNN的方法
对文献进行聚类操作,把所有的文献一共分为K类,K的大小取决于文献库的体量,每个分类
即一个主题。
需要参考的重要特征有以下三个:
程,用户的阅读顺序是给文献评级的重要参考。
准。综上,本发明会首先根据每个用户阅读该主题下的文献的顺序对文献进行评级,并规整
为1~10级。确定等级之后,还会根据文献的下载量和发布时间对文献进行排序,优先推荐
排名高的文献给用户。
的文献就是用户目前最感兴趣的主题和用户当前的等级。找到用户最近阅读的各个主题下
的三篇文献,使用这三篇文献的等级平均值作为用户在当前主题下的等级。
推荐一共十篇文献,其中五篇是和用户等级相同。另外五篇为等级略高一些的文献。
进入系统的时间比较晚,所以它们在用户的阅读列表中居后,所以在使用阅读顺序给这些
文献划分等级会出现较大的误差。此时在确定文献的等级时,本系统选择记录阅读该文献
的用户的等级。将前N个阅读该文献的用户的等级取平均值,作为文献的等级。
深度即这篇文献的难度和适用人群的学习深度。根据用户的学习程度不同,向其推荐不同
深度的学习资源。除此之外,本发明系统还充分考虑到了技术资源的发布时间问题,考虑到
越是新发布的技术资源越是具有更大的参考价值和深度。最后,本发明还给出了解决冷启
动问题。冷启动问题是推荐系统必须解决的问题,冷启动问题即如何向用户推荐刚加入系
统的新物品并设置新物品的深度。
用户特征对应物品类别,给用户推荐符合特征的同一类别的其他物品。然而,文献有其特殊
的特点,用户在学习的过程中往往伴随着一个由浅入深的过程,从基础知识开始学习逐渐
深入到比较高深前沿的知识。原始的基于内容的推荐算法没有考虑到这个问题,本文在此
方面做了改进。致力于找到符合用户当前学习状态的其他文献进行推荐。
推荐的过程中会考虑文献发布的时间信息。在确定好级别之后,给最近发布的文献更大的
权重,以得到被推荐的机会。
向必不可少的。所以本发明考虑了文献的下载量,给下载量更高的文献以更大的权重。
个基础的知识记不清,或者误下载了过于深入的文献,和当前学习状态不匹配。所以本发明
中记录了用户在当前主题下下载过的最近三篇文献,除去最高值和最低值即用户目前的学
习深度。
荐是一个重要的问题。
附图说明
具体实施方式
重最高的前n个词作为这篇文献的标志词语。并且使用word2vec模型进行训练,求得所有文
献之间的相似度,采用KNN的方法对文献进行分类,分为K个主题的文献。在使用word2vec模
型时,需要构建一个语料库,因为本系统中包含大量的文献,所以可以根据硬件机器的数量
来决定一共将多少文献加入语料库进行训练。在进行文献的选取时要保证文献尽量覆盖到
各个主题,这样才能保证训练出的Word2vec模型的泛化性能优良。
每个用户的阅读列表进行清洗,根据不同的主题进行分类。得到每个用户在每个主题下的
阅读顺序表Pki,其中k为第k个用户,i为第i个主题。对每一个文献 其中i为第i个主题,j
为第j篇文献,找到所有读过它的用户,并找出该文献在第k个用户的阅读顺序表Pki中的排
名,将所有的排名相加求平均值即这篇文献的等级。一个文献在用户的当前主题下对该文
献的阅读顺序可以表明该文献在当前分类中的等级。将所有用户的排名相加求均值,即得
到文献的等级信息,公式如下:
级划分为1~10的整数。划分公式如下:
的等级信息,输出为用户的等级。用户在获取文献时一般是由浅入深的。然而因为用户在当
前主题下可能阅读的文献等级具有随机性,可能会有一些误差,比如用户之前的某个知识
点不熟悉又去下载了以前读过的等级比较低的文献,或者只是为了简单了解而下载了前沿
知识的文献,所以用户的列表中,每个主题保存三篇文献,分别是用户读过的该主题下的上
三篇文献,将平均值作为用户的等级。考虑到用户的兴趣和学习方向都会发生变化,所以对
用户的所有看过的主题都保留一个时间戳,为用户最后一次浏览当前主题的时间。当时间
超过阈值时,表示用户已经很长时间没有阅读过当前主题,可以从用户的信息中删除这个
主题。
读过的最后一篇文献的等级为x,则给用户推荐与x同等级文献5篇,x+1等级的文献5篇。这
五篇文献中,其中两篇为用户当前主题中适合用户等级的文献中下载量最多的两篇。其余
三篇需要计算权值后推荐权值最高的三篇文献。权值的计算方法为:
间,下载量的权值相加方法,可以兼顾两者的优点,同时可以把一些最近加入到系统中的文
献尽量推荐出去,防止造成一些文献从来没有被推荐过的现象,如果最新发布的文献比较
优质,则下载量和好评率都会上升,则在短时间内可以更多地被推荐出去。
率高的文献,其余三篇为计算权值后权值最高的文献。
这些文献的浏览是比较靠后的,导致文献等级偏高,如何确定这些文献的具体等级呢:在推
荐这些文献时,首先明确该文献的主题,并将该文献作为一个新的推荐部分即新品推荐给
该主题下的用户。如果用户点击并下载了该文献,则说明该文献符合用户的当前等级的需
求,为这篇文献记录下用户的等级,当这篇文献的记录数量达到一个阈值N时,将N个数值求
平均值,设置为该文献的具体等级。