智能教育深度学习推荐系统---1.2.合成推荐算法CKE解读和算法实现1

在推荐系统构建中,人们最常用的方法当属协同过滤推荐算法。协同过滤推荐算法仅需要考虑用户和待推荐条目的交互关系,算法可以处理毫不费力地同时应用于电影推荐、图书推荐、音乐推荐等,而无需研究待推荐具体的内容。但是协同过滤算法在实际应用也存在很多问题,例如对新条目,由于没有与用户的交互数据,所以就无法推荐,并且很多时候,由于某个意外事件会使某个条目遭到爆炒,使热度爆表,但是实际质量并不好,依据这些信息的推荐自然效果不会太好。除了这些小问题之外,协同过滤推荐算法还有一个致命的缺陷,就是如果用户与待推荐条目交互非常稀疏的话,协同过滤推荐算法的性能将急剧恶化,推荐效果非常不理想。
以我们智能教育自适应题库系统为例,我们通常会有数百万道题目,而系统中真实有效地学生,不过就是几万人,而每个学生做的题目也就是几百道题而已,我们假设题库中有100万道题目,我们有10万学生,每个学生做1万道题,这时我们题目与学生的表格为100万行10万列,共有1000亿单元格,学生做过相应题目的单元格数为10亿,从这里可以看出,该表格中仅有1%的表格有数据,这里会遇到严重的数据稀疏的问题。如果直接采用协同过滤推荐算法的话,推荐效果肯定不会很理想。
怎样来解决这一问题呢?我们自然需要求助基于内容的推荐算法。在我们的题库系统中,一道题目通常由三部分组成,首先是题目的文本信息,其次是题目的图像信息,例如数学中的几何题中的图形,最后也是最重要的是我们对每道题目通过人工建立的知识图谱,将该题所涉及的知识点、解题技巧、易错点等,按照知识图谱三元组形式组合起来。如果我们能够有效地利用这些信息,结合学生做题情况,那么就有可能做出一个比协同过滤推荐算法更好的推荐系统。这就是我要向大家介绍的Collaborative Knowledge Base Embedding for Recommender Systems (CKE)算法。
在CKE算法体系下,系统架构如下所示:
这里写图片描述
如图所示,整个系统架构由数据集层,知识库嵌信层和协同过滤层构成。
在数据集层,包括用户与题目交互数据,以及题目内容相关的知识图谱数据。每道题目的知识图谱包括该题目对应的知识点,以知识图谱有向图形式表示,题目本身的文本信息,还可能包括题目对应的图。
在我知识库嵌入层,首先采用TransR算法将知识图谱中的实体和关系表示为图谱向量,对于题目的文本信息,采用基于贝叶斯的堆叠去噪自动编码机(SDAE)生成文本向量,对于图像信息采用堆叠卷积自动编码机(SCAE)生成图像向量,结合题目自身向量,将这四个向量组合成统一的题目向量,随机确定学生向量,然后根据学生与题目的交互数据,采用协同过滤算法,求出最终的学生向量和题目向量,从而最终产生符合我们要求的推荐结果。
在下一节中,我们将具体向大家分别介绍图谱嵌入、文本嵌入和图像嵌入技术,最后将向大家展示如何通过TensorFlow来实现这些算法。

猜你喜欢

转载自blog.csdn.net/Yt7589/article/details/82082575
今日推荐