CN105677846B - 推荐系统及其构建方法 - Google Patents
推荐系统及其构建方法 Download PDFInfo
- Publication number
- CN105677846B CN105677846B CN201610007304.XA CN201610007304A CN105677846B CN 105677846 B CN105677846 B CN 105677846B CN 201610007304 A CN201610007304 A CN 201610007304A CN 105677846 B CN105677846 B CN 105677846B
- Authority
- CN
- China
- Prior art keywords
- module
- recommendation
- configuration
- data
- parameters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Abstract
本申请提供了一种推荐系统及其构建方法。根据一个实施方式的推荐系统包括:算法模块,所述算法模块包括多个二级模块,所述二级模块的参数是可配置的;配置模块,所述配置模块包括多个参数配置模型,分别对所述多个二级模块的参数进行配置;服务模块,为用户或外部设备提供通过所述配置模块对所述算法模块进行配置的接口。通过本发明解决了相关技术中推荐系统的开发复杂度较高的问题,降低了推荐系统的搭建和使用难度。
Description
技术领域
本发明涉及一种推荐系统及其构建方法。
背景技术
个性化推荐系统和算法是根据用户的兴趣特点和购买、观看等反馈行为,向用户推荐用户感兴趣的信息和商品,从而在海量信息中筛选出有用的信息。
Mahout开源机器学习软件库是现有技术中常用的推荐系统,其对推荐算法模型做了很好的抽象和封装。针对协同过滤推荐,Mahout实现了常用的基于用户的协同过滤(User-based CF)、基于项目的协同过滤(Item-based CF)和Slope-One算法,为推荐系统开发人员提供了完善的API。
但是,Mahout针对基于内容的推荐所做的工作很少。由于基于内容的推荐算法需要与特定领域知识相结合,难以在代码级别规整为一个框架,因此Mahout并未对基于内容的推荐做太多的封装与抽象。并且,Mahout仅仅在代码级别提供了良好的封装,为开发人员提供了详尽的应用程序编程接口(Application Programming Interface,简称为API)。然而Mahout并未在功能模块级别提供太多帮助,对于想要搭建推荐系统而又不愿意亲自编程实现的人来说,需要更高层次的封装和扩展来提供傻瓜式的搭建方式,进一步降低推荐系统的开发复杂度。
针对相关技术中推荐系统的开发复杂度较高的问题,还未提出有效的解决方案。
发明内容
本发明提供了一种推荐系统及其构建方法,以至少解决相关技术中推荐系统的开发复杂度较高的问题。
根据本发明的一个方面,提供了一种推荐系统,包括:算法模块,所述算法模块包括多个二级模块,所述二级模块的参数是可配置的;配置模块,所述配置模块包括多个参数配置模型,分别对所述多个二级模块的参数进行配置;服务模块,为用户或外部设备提供通过所述配置模块对所述算法模块进行配置的接口。
可选地,所述多个二级模块包括:数据抽象模块,将输入数据源转换为包括用户ID、项目ID和偏好值的关系型表的格式;相似度度量模块,基于从数据抽象模块输出的数据计算用户之间的相似度和项目之间的相似度;算法处理模块,从存储的多个算法中选择一个或多个算法,基于从数据抽象模块和相似度度量模块输出的数据进行推荐处理;算法评估模块,对采用所选择的算法获得的推荐结果进行评估。
可选地,所述多个参数配置模型包括:输入数据源参数配置模型,对输入数据源的数据类型、类别、数据库参数、文件配置参数、特征数据相关参数和用户偏好相关参数中的至少之一进行配置;相似度度量参数配置模型,对用户之间的相似度度量和项目之间的相似度度量中的至少之一进行配置;算法处理参数配置模型,对选用的算法的处理流程、类型、权重、个数、以及用户邻域的类型、用户邻域包含的用户数量和用户邻域的阈值中的至少之一进行配置;算法评估参数配置模型,对是否计算协调过滤推荐中预测评分与实际评分的偏差、是否计算协调过滤推荐的查准率、是否计算协调过滤推荐的查全率、和是否计算推荐算法的运行时间中的至少之一进行配置。
可选地,所述配置模块包括Web配置模块或XML配置模块,在Web配置模块和XML配置模块中的一者或二者中设置所述多个参数配置模型。
可选地,所述服务模块包括Web服务模块和第三方库服务模块中的至少之一。
根据本发明的一个方面,提供了一种推荐系统的构建方法,包括:提供算法模块,所述算法模块包括多个二级模块,所述二级模块的参数是可配置的;提供配置模块,所述配置模块包括多个参数配置模型,分别对所述多个二级模块的参数进行配置;提供服务模块,为用户或外部设备提供通过所述配置模块对所述算法模块进行配置的接口。
可选地,所述多个二级模块包括:数据抽象模块,将输入数据源转换为包括用户ID、项目ID和偏好值的关系型表的格式;相似度度量模块,基于从数据抽象模块输出的数据计算用户之间的相似度和项目之间的相似度;算法处理模块,从存储的多个算法中选择一个或多个算法,基于从数据抽象模块和相似度度量模块输出的数据进行推荐处理;算法评估模块,对采用所选择的算法获得的推荐结果进行评估。
可选地,所述多个参数配置模型包括:输入数据源参数配置模型,对输入数据源的数据类型、类别、数据库参数、文件配置参数、特征数据相关参数和用户偏好相关参数中的至少之一进行配置;相似度度量参数配置模型,对用户之间的相似度度量和项目之间的相似度度量中的至少之一进行配置;算法处理参数配置模型,对选用的算法的处理流程、类型、权重、个数、以及用户邻域的类型、用户邻域包含的用户数量和用户邻域的阈值中的至少之一进行配置;算法评估参数配置模型,对是否计算协调过滤推荐中预测评分与实际评分的偏差、是否计算协调过滤推荐的查准率、是否计算协调过滤推荐的查全率、和是否计算推荐算法的运行时间中的至少之一进行配置。
可选地,所述配置模块包括Web配置模块或XML配置模块,在Web配置模块和XML配置模块中的一者或二者中设置所述多个参数配置模型。
可选地,所述服务模块包括Web服务模块和第三方库服务模块中的至少之一。
根据本发明的另一个方面,提供了一种推荐系统搭建方法,包括:获取互联网WEB配置页面;通过所述WEB配置页面获取用于搭建推荐系统的各项参数;根据所述各项参数搭建所述推荐系统;或者,按照指定格式规范编写可扩展标记语言XML配置文件;根据所述XML配置文件配置用于搭建推荐系统的各项参数;根据所述各项参数搭建所述推荐系统;其中,所述推荐系统用于向用户推荐所述用户感兴趣的信息;所述各项参数包括以下至少之一:与输入数据源对应的参数、与相似度度量对应的参数、与推荐算法处理流程对应的参数以及与推荐算法评估对应的参数。
可选地,与输入数据源对应的参数包括以下至少之一:dataType,用于表示所述输入数据源所包含的数据类型;其中,所述输入数据源所包含的数据类型包括:特征数据或者用户偏好数据;sourceType,用于表示所述输入数据源的类别;其中,所述输入数据源的类别包括:MySQL数据库或者文件;数据库配置参数,用于指示数据库的连接配置信息,取值包括以下至少之一:dbServerName、dbUser、dbPassword;文件配置参数,用于指示输入数据源文件的存储路径,取值包括:filePath;特征数据相关参数,用于指示以下至少之一的信息:指定用户及项目特征数据所在的数据库名称、表名称、字段名称以及字段之间的逻辑组成关系;用户偏好数据相关参数,用于指示以下至少之一的信息:指定用户偏好数据所在的数据库名称、表名称、指定用户ID字段名称、项目ID字段名称、偏好值字段名称、时间戳字段名称。
可选地,与相似度度量对应的参数包括以下至少之一:userSimilarity,用于表示用户之间的相似度,取值包括以下至少之一:pearsonCorrelationSimilarity、euclideanDistanceSimilarity、tanimotoCoefficientSimilarity、spearmanCorrelationSimilarity、logLikelihoodSimilarity、cityBlockSimilarity;以及itemSimilarity,用于表示项目之间的相似度,取值包括以下至少之一:pearsonCorrelationSimilarity、euclideanDistanceSimilarity、tanimotoCoefficientSimilarity、spearmanCorrelationSimilarity、logLikelihoodSimilarity、cityBlockSimilarity。除此之外,还可以自定义userSimilarity或itemSimilarity的实现类,达到定制化的用户/项目相似度度量的目的。
可选地,与推荐算法处理流程对应的参数包括以下至少之一:algorithmType,用于表示推荐算法具体选用的处理流程,取值包括以下至少之一:表示基本推荐算法的single、表示加权型混合推荐算法的weighted、瀑布型混合推荐算法的waterfall;algorithm,用于表示基本推荐算法类型,取值包括以下至少之一:表示基于内容的推荐的content-based、表示基于用户的协同过滤的user-based-cf、表示基于项目的协同过滤的item-based-cf;weight,用于表示单个基本推荐算法的权重,取值为浮点数;resultNum,用于表示单个基本推荐算法的结果个数,取值为正整数;userNeighborhood,用于表示用户邻域的类型,取值为表示固定大小的用户邻域的nearestN或表示基于阈值的用户邻域threshold;nUser,用于表示固定大小的用户邻域所包含的用户数量,取值为正整数;threshold,用于表示基于阈值的用户邻域的阈值。
可选地,与推荐算法评估对应的参数包括以下至少之一:deviation,用于表示是否计算协同过滤推荐中预测评分与实际评分的偏差,取值为true或false;precision,用于表示是否计算协同过滤推荐的查准率,取值为true或false;recall,用于表示是否计算协同过滤推荐的查全率,取值为true或false;runningTime,用于表示是否计算推荐算法的运行时间,取值为true或false。
根据本发明的另一个方面,还提供了一种推荐系统搭建装置,包括:第一获取模块,用于获取互联网WEB配置页面;第二获取模块,用于通过所述WEB配置页面获取用于搭建推荐系统的各项参数;第一搭建模块,用于根据所述各项参数搭建所述推荐系统;或者,编写模块,用于按照指定格式规范编写可扩展标记语言XML配置文件;配置模块,用于根据所述XML配置文件配置用于搭建推荐系统的各项参数;第二搭建模块,用于根据所述各项参数搭建所述推荐系统;其中,所述推荐系统用于向用户推荐所述用户感兴趣的信息;所述各项参数包括以下至少之一:与输入数据源对应的参数、与相似度度量对应的参数、与推荐算法处理流程对应的参数以及与推荐算法评估对应的参数。
可选地,与输入数据源对应的参数包括以下至少之一:dataType,用于表示所述输入数据源所包含的数据类型;其中,所述输入数据源所包含的数据类型包括:特征数据或者用户偏好数据;sourceType,用于表示所述输入数据源的类别;其中,所述输入数据源的类别包括:MySQL数据库或者文件;数据库配置参数,用于指示数据库的连接配置信息,取值包括以下至少之一:dbServerName、dbUser、dbPassword;文件配置参数,用于指示输入数据源文件的存储路径,取值包括:filePath;特征数据相关参数,用于指示以下至少之一的信息:指定用户及项目特征数据所在的数据库名称、表名称、字段名称以及字段之间的逻辑组成关系;用户偏好数据相关参数,用于指示以下至少之一的信息:指定用户偏好数据所在的数据库名称、表名称、指定用户ID字段名称、项目ID字段名称、偏好值字段名称、时间戳字段名称。
可选地,与相似度度量对应的参数包括以下至少之一:userSimilarity,用于表示用户之间的相似度,取值包括以下至少之一:pearsonCorrelationSimilarity、euclideanDistanceSimilarity、tanimotoCoefficientSimilarity、spearmanCorrelationSimilarity、logLikelihoodSimilarity、cityBlockSimilarity;itemSimilarity,用于表示项目之间的相似度,取值包括以下至少之一:pearsonCorrelationSimilarity、euclideanDistanceSimilarity、tanimotoCoefficientSimilarity、spearmanCorrelationSimilarity、logLikelihoodSimilarity、cityBlockSimilarity。除此之外,还可以自定义userSimilarity或itemSimilarity的实现类,达到定制化的用户/项目相似度度量的目的。
可选地,与推荐算法处理流程对应的参数包括以下至少之一:algorithmType,用于表示推荐算法具体选用的处理流程,取值包括以下至少之一:表示基本推荐算法的single、表示加权型混合推荐算法的weighted、瀑布型混合推荐算法的waterfall;algorithm,用于表示基本推荐算法类型,取值包括以下至少之一:表示基于内容的推荐的content-based、表示基于用户的协同过滤的user-based-cf、表示基于项目的协同过滤的item-based-cf;weight,用于表示单个基本推荐算法的权重,取值为浮点数;resultNum,用于表示单个基本推荐算法的结果个数,取值为正整数;userNeighborhood,用于表示用户邻域的类型,取值为表示固定大小的用户邻域的nearestN或表示基于阈值的用户邻域threshold;nUser,用于表示固定大小的用户邻域所包含的用户数量,取值为正整数;threshold,用于表示基于阈值的用户邻域的阈值。
可选地,与推荐算法评估对应的参数包括以下至少之一:deviation,用于表示是否计算协同过滤推荐中预测评分与实际评分的偏差,取值为true或false;precision,用于表示是否计算协同过滤推荐的查准率,取值为true或false;recall,用于表示是否计算协同过滤推荐的查全率,取值为true或false;runningTime,用于表示是否计算推荐算法的运行时间,取值为true或false。
通过本发明,采用获取互联网WEB配置页面;通过WEB配置页面获取用于搭建推荐系统的各项参数;根据该各项参数搭建推荐系统;或者,按照指定格式规范编写可扩展标记语言XML配置文件;根据XML配置文件配置用于搭建推荐系统的各项参数;根据该各项参数搭建推荐系统;其中,该推荐系统用于向用户推荐该用户感兴趣的信息;各项参数包括以下至少之一:与输入数据源对应的参数、与相似度度量对应的参数、与推荐算法处理流程对应的参数以及与推荐算法评估对应的参数。解决了相关技术中推荐系统的开发复杂度较高的问题,从而降低了推荐系统的搭建和使用难度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的推荐系统搭建方法的流程图;
图2是根据本发明实施例的推荐系统搭建方法的流程图(一);
图3是根据本发明实施例的推荐系统搭建装置的结构框图;
图4是根据本发明实施例的推荐系统搭建装置的结构框图(一);
图5是根据本发明实施例的推荐系统框架总体架构图;
图6是根据本发明实施例的算法模块设计图;
图7是根据本发明实施例的配置模块设计图;
图8是根据本发明实施例的服务模块设计图;
图9是根据本发明实施例的网站首页的推荐效果图;
图10是根据本发明实施例的输入数据源部分的参数配置模型示意图;
图11是根据本发明实施例的相似度度量方法部分的参数配置模型示意图;
图12是根据本发明实施例的算法处理流程部分的参数配置模型示意图;
图13是根据本发明实施例的算法评估部分的参数配置模型示意图;
图14是根据本发明实施例的推荐系统的参数配置模型示意图;
图15是根据本发明实施例的recommender.xsd文档的总体结构示意图;
图16是根据本发明实施例的描述输入数据源的XML配置格式示意图;
图17是根据本发明实施例的描述相似度度量的XML配置格式示意图;
图18是根据本发明实施例的描述算法处理流程的XML配置格式示意图;
图19是根据本发明实施例的描述算法评估部分的XML配置格式示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
根据本发明的一个方面,提供了一种推荐系统,包括:算法模块,所述算法模块包括多个二级模块,所述二级模块的参数是可配置的;配置模块,所述配置模块包括多个参数配置模型,分别对所述多个二级模块的参数进行配置;服务模块,为用户或外部设备提供通过所述配置模块对所述算法模块进行配置的接口。
可选地,所述多个二级模块包括:数据抽象模块,将输入数据源转换为包括用户ID、项目ID和偏好值的关系型表的格式;相似度度量模块,基于从数据抽象模块输出的数据计算用户之间的相似度和项目之间的相似度;算法处理模块,从存储的多个算法中选择一个或多个算法,基于从数据抽象模块和相似度度量模块输出的数据进行推荐处理;算法评估模块,对采用所选择的算法获得的推荐结果进行评估。
可选地,所述多个参数配置模型包括:输入数据源参数配置模型,对输入数据源的数据类型、类别、数据库参数、文件配置参数、特征数据相关参数和用户偏好相关参数中的至少之一进行配置;相似度度量参数配置模型,对用户之间的相似度度量和项目之间的相似度度量中的至少之一进行配置;算法处理参数配置模型,对选用的算法的处理流程、类型、权重、个数、以及用户邻域的类型、用户邻域包含的用户数量和用户邻域的阈值中的至少之一进行配置;算法评估参数配置模型,对是否计算协调过滤推荐中预测评分与实际评分的偏差、是否计算协调过滤推荐的查准率、是否计算协调过滤推荐的查全率、和是否计算推荐算法的运行时间中的至少之一进行配置。
可选地,所述配置模块包括Web配置模块或XML配置模块,在Web配置模块和XML配置模块中的一者或二者中设置所述多个参数配置模型。
可选地,所述服务模块包括Web服务模块和第三方库服务模块中的至少之一。
根据本发明的一个方面,提供了一种推荐系统的构建方法,包括:提供算法模块,所述算法模块包括多个二级模块,所述二级模块的参数是可配置的;提供配置模块,所述配置模块包括多个参数配置模型,分别对所述多个二级模块的参数进行配置;提供服务模块,为用户或外部设备提供通过所述配置模块对所述算法模块进行配置的接口。
可选地,所述多个二级模块包括:数据抽象模块,将输入数据源转换为包括用户ID、项目ID和偏好值的关系型表的格式;相似度度量模块,基于从数据抽象模块输出的数据计算用户之间的相似度和项目之间的相似度;算法处理模块,从存储的多个算法中选择一个或多个算法,基于从数据抽象模块和相似度度量模块输出的数据进行推荐处理;算法评估模块,对采用所选择的算法获得的推荐结果进行评估。
可选地,所述多个参数配置模型包括:输入数据源参数配置模型,对输入数据源的数据类型、类别、数据库参数、文件配置参数、特征数据相关参数和用户偏好相关参数中的至少之一进行配置;相似度度量参数配置模型,对用户之间的相似度度量和项目之间的相似度度量中的至少之一进行配置;算法处理参数配置模型,对选用的算法的处理流程、类型、权重、个数、以及用户邻域的类型、用户邻域包含的用户数量和用户邻域的阈值中的至少之一进行配置;算法评估参数配置模型,对是否计算协调过滤推荐中预测评分与实际评分的偏差、是否计算协调过滤推荐的查准率、是否计算协调过滤推荐的查全率、和是否计算推荐算法的运行时间中的至少之一进行配置。
可选地,所述配置模块包括Web配置模块或XML配置模块,在Web配置模块和XML配置模块中的一者或二者中设置所述多个参数配置模型。
可选地,所述服务模块包括Web服务模块和第三方库服务模块中的至少之一。
在本实施例中提供了一种推荐系统搭建方法,图1是根据本发明实施例的推荐系统搭建方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,获取互联网WEB配置页面;
步骤S104,通过WEB配置页面获取用于搭建推荐系统的各项参数;
步骤S106,根据该各项参数搭建推荐系统;其中,该推荐系统用于向用户推荐该用户感兴趣的信息;该各项参数包括以下至少之一:与输入数据源对应的参数、与相似度度量对应的参数、与推荐算法处理流程对应的参数以及与推荐算法评估对应的参数。
图2是根据本发明实施例的推荐系统搭建方法的流程图(一),如图2所示,该流程包括如下步骤:
步骤S202,按照指定格式规范编写可扩展标记语言XML配置文件;
步骤S204,根据XML配置文件配置用于搭建推荐系统的各项参数;
步骤S206,根据该各项参数搭建推荐系统;其中,该推荐系统用于向用户推荐该用户感兴趣的信息;该各项参数包括以下至少之一:与输入数据源对应的参数、与相似度度量对应的参数、与推荐算法处理流程对应的参数以及与推荐算法评估对应的参数。
通过上述步骤,通过在WEB配置页面上填写用于搭建推荐系统的各项参数或者通过按照指定格式规范编写的XML配置文件配置用于搭建推荐系统的各项参数,进而通过上述各项参数搭建推荐系统,相比于相关技术中,需要通过编写程序才能搭建推荐系统,上述步骤解决了相关技术中推荐系统的开发复杂度较高的问题,从而降低了推荐系统的搭建和使用难度。
与输入数据源对应的参数可以包括很多种,在一个可选实施例中,与输入数据源对应的参数包括以下至少之一:
dataType,用于表示输入数据源所包含的数据类型;其中,输入数据源所包含的数据类型包括:特征数据或者用户偏好数据;
sourceType,用于表示该输入数据源的类别;其中,该输入数据源的类别包括:MySQL数据库或者文件;
数据库配置参数,用于指示数据库的连接配置信息,取值包括以下至少之一:dbServerName、dbUser、dbPassword;
文件配置参数,用于指示输入数据源文件的存储路径,取值包括:filePath;
特征数据相关参数,用于指示以下至少之一的信息:指定用户及项目特征数据所在的数据库名称、表名称、字段名称以及字段之间的逻辑组成关系;
用户偏好数据相关参数,用于指示以下至少之一的信息:指定用户偏好数据所在的数据库名称、表名称、指定用户ID字段名称、项目ID字段名称、偏好值字段名称、时间戳字段名称。
与相似度度量对应的参数也可以包括很多种,在一个可选实施例中,与相似度度量对应的参数包括以下至少之一:userSimilarity,用于表示用户之间的相似度,取值包括以下至少之一:pearsonCorrelationSimilarity、euclideanDistanceSimilarity、tanimotoCoefficientSimilarity、spearmanCorrelationSimilarity、logLikelihoodSimilarity、cityBlockSimilarity;itemSimilarity,用于表示项目之间的相似度,取值包括以下至少之一:pearsonCorrelationSimilarity、euclideanDistanceSimilarity、tanimotoCoefficientSimilarity、spearmanCorrelationSimilarity、logLikelihoodSimilarity、cityBlockSimilarity。
与推荐算法处理流程对应的参数可以包括很多种,在一个可选实施例中,与推荐算法处理流程对应的参数包括以下至少之一:algorithmType,用于表示推荐算法具体选用的处理流程,取值包括以下至少之一:表示基本推荐算法的single、表示加权型混合推荐算法的weighted、瀑布型混合推荐算法的waterfall;algorithm,用于表示基本推荐算法类型,取值包括以下至少之一:表示基于内容的推荐的content-based、表示基于用户的协同过滤的user-based-cf、表示基于项目的协同过滤的item-based-cf;weight,用于表示单个基本推荐算法的权重,取值为浮点数;resultNum,用于表示单个基本推荐算法的结果个数,取值为正整数;userNeighborhood,用于表示用户邻域的类型,取值为表示固定大小的用户邻域的nearestN或表示基于阈值的用户邻域threshold;nUser,用于表示固定大小的用户邻域所包含的用户数量,取值为正整数;threshold,用于表示基于阈值的用户邻域的阈值。
与推荐算法评估对应的参数也可以包括很多种,在一个可选实施例中,与推荐算法评估对应的参数包括以下至少之一:deviation,用于表示是否计算协同过滤推荐中预测评分与实际评分的偏差,取值为true或false;precision,用于表示是否计算协同过滤推荐的查准率,取值为true或false;recall,用于表示是否计算协同过滤推荐的查全率,取值为true或false;runningTime,用于表示是否计算推荐算法的运行时间,取值为true或false。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种推荐系统搭建装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本发明实施例的推荐系统搭建装置的结构框图,如图3所示,该装置包括:第一获取模块32,用于获取互联网WEB配置页面;第二获取模块34,用于通过该WEB配置页面获取用于搭建推荐系统的各项参数;第一搭建模块36,用于根据该各项参数搭建该推荐系统;其中,该推荐系统用于向用户推荐该用户感兴趣的信息;该各项参数包括以下至少之一:与输入数据源对应的参数、与相似度度量对应的参数、与推荐算法处理流程对应的参数以及与推荐算法评估对应的参数。
图4是根据本发明实施例的推荐系统搭建装置的结构框图(一),如图4所示,该装置包括:编写模块42,用于按照指定格式规范编写可扩展标记语言XML配置文件;配置模块44,用于根据该XML配置文件配置用于搭建推荐系统的各项参数;第二搭建模块46,用于根据该各项参数搭建该推荐系统;其中,该推荐系统用于向用户推荐该用户感兴趣的信息;该各项参数包括以下至少之一:与输入数据源对应的参数、与相似度度量对应的参数、与推荐算法处理流程对应的参数以及与推荐算法评估对应的参数。
可选地,与输入数据源对应的参数包括以下至少之一:dataType,用于表示该输入数据源所包含的数据类型;其中,该输入数据源所包含的数据类型包括:特征数据或者用户偏好数据;sourceType,用于表示该输入数据源的类别;其中,该输入数据源的类别包括:MySQL数据库或者文件;数据库配置参数,用于指示数据库的连接配置信息,取值包括以下至少之一:dbServerName、dbUser、dbPassword;文件配置参数,用于指示输入数据源文件的存储路径,取值包括:filePath;特征数据相关参数,用于指示以下至少之一的信息:指定用户及项目特征数据所在的数据库名称、表名称、字段名称以及字段之间的逻辑组成关系;用户偏好数据相关参数,用于指示以下至少之一的信息:指定用户偏好数据所在的数据库名称、表名称、指定用户ID字段名称、项目ID字段名称、偏好值字段名称、时间戳字段名称。
可选地,与相似度度量对应的参数包括以下至少之一:userSimilarity,用于表示用户之间的相似度,取值包括以下至少之一:pearsonCorrelationSimilarity、euclideanDistanceSimilarity、tanimotoCoefficientSimilarity、spearmanCorrelationSimilarity、logLikelihoodSimilarity、cityBlockSimilarity;itemSimilarity,用于表示项目之间的相似度,取值包括以下至少之一:pearsonCorrelationSimilarity、euclideanDistanceSimilarity、tanimotoCoefficientSimilarity、spearmanCorrelationSimilarity、logLikelihoodSimilarity、cityBlockSimilarity。除此之外,还可以自定义userSimilarity或itemSimilarity的实现类,达到定制化的用户/项目相似度度量的目的。
可选地,与推荐算法处理流程对应的参数包括以下至少之一:algorithmType,用于表示推荐算法具体选用的处理流程,取值包括以下至少之一:表示基本推荐算法的single、表示加权型混合推荐算法的weighted、瀑布型混合推荐算法的waterfall;algorithm,用于表示基本推荐算法类型,取值包括以下至少之一:表示基于内容的推荐的content-based、表示基于用户的协同过滤的user-based-cf、表示基于项目的协同过滤的item-based-cf;weight,用于表示单个基本推荐算法的权重,取值为浮点数;resultNum,用于表示单个基本推荐算法的结果个数,取值为正整数;userNeighborhood,用于表示用户邻域的类型,取值为表示固定大小的用户邻域的nearestN或表示基于阈值的用户邻域threshold;nUser,用于表示固定大小的用户邻域所包含的用户数量,取值为正整数;threshold,用于表示基于阈值的用户邻域的阈值。
可选地,与推荐算法评估对应的参数包括以下至少之一:deviation,用于表示是否计算协同过滤推荐中预测评分与实际评分的偏差,取值为true或false;precision,用于表示是否计算协同过滤推荐的查准率,取值为true或false;recall,用于表示是否计算协同过滤推荐的查全率,取值为true或false;runningTime,用于表示是否计算推荐算法的运行时间,取值为true或false。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,获取互联网WEB配置页面;
S2,通过WEB配置页面获取用于搭建推荐系统的各项参数;
S3,根据该各项参数搭建推荐系统;其中,该推荐系统用于向用户推荐该用户感兴趣的信息;该各项参数包括以下至少之一:与输入数据源对应的参数、与相似度度量对应的参数、与推荐算法处理流程对应的参数以及与推荐算法评估对应的参数。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S4,按照指定格式规范编写可扩展标记语言XML配置文件;
S5,根据XML配置文件配置用于搭建推荐系统的各项参数;
S6,根据该各项参数搭建推荐系统;其中,该推荐系统用于向用户推荐该用户感兴趣的信息;该各项参数包括以下至少之一:与输入数据源对应的参数、与相似度度量对应的参数、与推荐算法处理流程对应的参数以及与推荐算法评估对应的参数。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述S1、S2以及S3。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述S4、S5以及S6。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
推荐算法通用处理框架的设计目的是帮助各类业务领域的网站开发者便捷地搭建推荐系统,使其在网站中嵌入个性化推荐服务。结合这一目的,在本可选实施例中,可以将框架划分为3个一级模块:算法模块、配置模块和服务模块。
(1)算法模块
框架最重要的功能是实现各类推荐算法,为使用者提供推荐服务,因此推荐算法的实现与封装是框架最核心的模块。结合前文关于推荐算法理论体系的介绍,可以知道一个完整的推荐算法程序应当包含以下几个部分:将原始的输入数据转换为标准格式;实现数据之间的相似度度量方法;采用某种特定的算法流程进行推荐,产生推荐结果;最后对推荐结果进行评估。对应于这几个部分,算法模块由以下4个二级模块组成。
①数据抽象模块
数据抽象模块用于对原始输入数据进行封装,供后续算法处理时使用。该模块支持文件和数据库两种形式的数据源,屏蔽其差异性,将它们统一格式。针对基于内容的推荐,该模块将输入数据转换为向量格式;针对协同过滤推荐,该模块将输入数据转换为包含用户ID、项目ID和偏好值的关系型表的格式。
②相似度度量模块
相似度度量在推荐系统中是一个很重要的元素:在基于内容的推荐中,需要计算用户与项目特征向量之间的相似度;在协同过滤推荐中,需要计算用户之间或项目之间的相似度。对此,相似度度量模块专门实现各种常用的相似度度量方法,例如皮尔逊相关系数、欧几里得距离、余弦相似度、谷本系数等。
③算法处理模块
在获得输入数据并确定相似度度量方法后,就可以选用某种特定的算法进行推荐了。算法处理模块封装了各种常用的推荐算法处理流程。此外,还允许使用者自定义推荐算法处理流程,保证灵活性和可扩展性。
④算法评估模块
获得推荐结果之后,需要对推荐效果进行评估。算法评估模块提供了相应的评估方法。
(2)配置模块
本框架旨在帮助网站开发者通过便捷的方式搭建推荐系统,这一点可以依靠完善的配置机制来实现——无需编写程序,仅仅通过指定若干个参数就能描述并构建一个推荐系统。为此,框架提供两种最常见的配置机制:Web配置页面和XML配置文件。对应地,配置模块由以下两个二级模块组成。
①Web配置模块
Web配置模块允许网站开发者通过浏览器访问配置页面,在配置页面上填写推荐系统的各项参数,包括输入数据源、相似度度量方法、推荐算法处理流程以及其他相关参数等等。框架的服务端程序根据配置页面上填写的参数来搭建推荐系统。
②XML配置模块
XML配置模块允许网站开发者按照特定的格式规范编写XML配置文件来配置推荐系统的各项参数,从而搭建推荐系统。
(3)服务模块
本框架通过简单易用的Web服务方式为一般的网站开发者提供服务,同时也允许有更深入需求的开发者将框架作为第三方库导入自己的项目中使用并进行扩展。因此,服务模块由以下两个二级模块组成。
①Web服务模块
该模块把推荐系统对外暴露为一个Web服务,使用者通过统一风格的REST URI访问此Web服务,获取推荐结果。
②第三方库服务模块
使用者将本框架导入项目后,自然就可以调用框架中任何公开的类和方法了;此外使用者还可以通过继承等方式进行扩展,实现自定义的功能。为了便于使用,该模块会提供详细的Javadoc API帮助手册供使用者参考。
图5是根据本发明实施例的推荐系统框架总体架构图,图5具体示出了推荐算法通用处理框架。
图6是根据本发明实施例的算法模块设计图,图6具体示出了算法模块的工作原理。
图7是根据本发明实施例的配置模块设计图,图7具体示出了配置模块的工作原理。
图8是根据本发明实施例的服务模块设计图,图8具体示出了服务模块的工作原理。
下面以搭建就业信息推荐系统为例进行说明。
为了缓解高校应届毕业生的求职压力,提高求职成功率,可以开发一个就业信息服务网站,为应届毕业生提供个性化的就业信息推荐服务,帮助其找到感兴趣的职位信息。网站使用本文设计的通用性推荐算法处理框架来快速搭建一个推荐系统,用来提供就业信息的个性化推荐服务。
推荐系统的搭建主要分为两步:首先是分析具体的业务场景,建立合适的系统模型,确定推荐系统的各项参数;然后使用框架提供的配置机制完成推荐系统的配置。
(1)分析并建立系统模型
在就业信息服务网站中,有三类数据可以在推荐系统中使用:毕业生简历数据、职位详情数据和投递记录数据。毕业生简历数据可以描述毕业生对职位的期望和喜好情况,属于用户特征数据,职位详情数据属于项目特征数据,这两类数据可以用于基于内容的推荐;投递记录数据属于布尔型的用户偏好数据(毕业生投递某个职位意味着对该职位表达了偏好,但是并无具体的偏好强度,因此属于布尔型偏好),可以用于协同过滤推荐。这些数据均存储于MySQL数据库中。
接下来,选择毕业生简历表和职位详情表中对推荐算法有用的字段,例如所学专业、期望的工作地点、期望的薪酬水平等,摒弃无用的字段,例如姓名、邮箱等。使用这些有用的字段构建查询条件。
然后,结合具体的业务场景制定算法策略。在就业信息推荐这一场景下,可以采取瀑布型混合推荐的方式:先使用基于内容的推荐,筛掉不满足用户工作地点和薪酬水平期望的职位,然后在结果集上使用基于项目的协同过滤推荐,找到与用户已投递职位类似的其他职位,作为最终的推荐结果。此外,由于用户偏好数据为布尔型,因此采用谷本系数作为项目间的相似度度量方法。
以上制定的算法策略仅仅是众多可行方案中的一种,实际的效果需要在生产环境中检验。如果这一方案的推荐效果不甚理想,可以反复尝试不同的策略,直至满足业务需求。
通过以上分析,建立了就业信息推荐系统的模型(该模型是否为最优需要实际应用来检验),确定了推荐系统的各项参数,如下表所示。
(2)配置推荐系统
这里使用Web配置机制来配置推荐系统。在配置页面上按步骤填好各项参数后,框架的服务端程序自动生成推荐系统的XML描述文件job-recommender.xml,如下所示。
至此,就业信息推荐系统搭建完毕,接下来就可以将该推荐系统与就业信息服务网站进行整合,提供推荐服务了。
在就业信息服务网站中,我们希望在首页呈现职位信息的推荐结果。这里通过访问REST服务来获取推荐结果。举例来说,当ID为1的用户登录网站并访问首页时,网页通过AJAX方式请求就业信息推荐服务的URI(http://127.0.0.1:80/sr/job-recommender?uid=1&num=30),获取当前用户的职位信息推荐列表,根据推荐列表中的职位ID从职位详情表中查询职位的名称等信息,渲染在网页上呈现给用户。网站首页的推荐效果如图9所示。
在另一个可选实施例中可以使用Mahout编程实现特定的推荐系统,但是过程较为复杂,对开发人员的技术能力要求较高。
1、推荐系统的参数配置模型
本发明可选实施例提出了推荐系统的参数配置模型,用来系统化地阐述推荐系统各项参数的意义以及彼此的关联。其示意图如以下若干图所示。
根据算法模块的子模块划分情况,可以知道创建一个推荐系统需要指定4个方面的信息:输入数据源的信息、相似度度量方法的信息、推荐算法处理流程的信息、算法评估相关的信息。相应地,推荐系统的参数配置模型应当包含4个部分,每个部分均包含若干具体的参数。下面根据算法模块各个子模块的设计方案与实现机制,列举这4个部分所包含的具体参数,从而建立起整个参数配置模型。
(1)输入数据源的参数配置模型
基于数据抽象表示模型,可以知道本类别包括如下若干参数:
①dataType:定义该参数来表示数据源所包含的数据类型,有两种取值:“content”或“preference”,分别表示输入数据是特征数据或用户偏好数据。当输入的既有特征数据又有用户偏好数据时,可以指定多个dataType参数来分别表示。dataType是首个需要指定的参数,在参数配置模型中位于顶端位置。
②sourceType:定义该参数来表示数据源的类别,有两种取值:“mysql”和“file”,分别表示数据源为MySQL数据库或文件。注意:当dataType参数取值为“content”时,sourceType只能取mysql(因为本框架仅支持从MySQL中导入特征数据)。
③数据库配置参数:包括dbServerName、dbUser、dbPassword,它们用于指定数据库的连接配置信息。这些参数在sourceType取值为“mysql”时才会用到。
④文件配置参数:包括filePath,用于指定数据源文件的存储路径。该参数在sourceType取值为“file”时才会用到。
⑤特征数据相关参数:包括dbDatabaseName、userTableName、itemTableName、userColumn、itemColumn、occur,它们依次用于指定用户及项目特征数据所处的数据库名称、表名称、字段名称、以及这些字段之间的逻辑组成关系。其中userColumn、itemColumn和occur这三个参数可以多次指定,来表示多个Lucene查询条件,框架通过解析这三个参数的取值来构建复杂查询语句。这些参数在dataType取值为“content”时才会用到。
⑥用户偏好数据相关参数:包括dbDatabaseName、preferenceTable、userIDColumn、itemIDColumn、preferenceColumn、timestampColumn,它们依次用于指定用户偏好数据所处的数据库名称、表名称,以及用户ID字段名称、项目ID字段名称、偏好值字段名称和时间戳字段名称。这些参数在dataType取值为“preference”时才会用到。
综上所述,可以得到输入数据源部分的参数配置模型,如图10所示。
(2)相似度度量方法的参数配置模型
基于相似度度量机制,可以建立这部分的参数配置模型。该模型包括如下2个参数:
①userSimilarity:定义该参数来表示用户之间的相似度度量机制,取值包括“pearsonCorrelationSimilarity”、“euclideanDistanceSimilarity”、
“tanimotoCoefficientSimilarity”、“spearmanCorrelationSimilarity”、“logLikelihoodSimilarity”、“cityBlockSimilarity”等,分别表示不同的相似度度量机制。此外,为了满足定制化的相似度度量方法,本系统还提供了针对扩展实现自定义userSimilarity的支持。
②itemSimilarity:定义该参数来表示项目之间的相似度度量机制,取值与参数userSimilarity的取值一样。此外,为了满足定制化的相似度度量方法,本系统还提供了针对扩展实现自定义itemSimilarity的支持。
需要注意的是,只有在存在取值为“preference”的dataType参数的情况下(说明输入数据中包含用户偏好数据),以上两个参数才有意义;否则说明输入数据中仅包含特征数据,则框架会忽略这两个参数,使用Lucene评分公式来计算特征数据的相似度。这部分模型示意图如图11所示。
(3)算法处理流程的参数配置模型
基于算法模型及实现机制,可以建立这部分的参数配置模型,其中包括如下参数:
①algorithmType:定义该参数表示推荐算法具体选用的处理流程,取值为“single”、“weighted”或“waterfall”,分别表示使用基本推荐算法、加权型混合推荐算法或瀑布型混合推荐算法。
②algorithm:定义该参数表示基本推荐算法类型,取值为“content-based”、“user-based-cf”或“item-based-cf”,分别表示基于内容的推荐、基于用户的协同过滤和基于项目的协同过滤。可以通过指定多个algorithm参数来实现混合推荐算法的配置。
③weight:定义该参数表示单个基本推荐算法的权重,取值为浮点数。该参数在algorithmType取值为“weighted”、也即加权型混合推荐时才会用到。
④resultNum:定义该参数表示单个基本推荐算法的结果个数,取值为正整数。该参数在algorithmType取值为“waterfall”、也即瀑布型混合推荐时才会用到。
⑤userNeighborhood:定义该参数表示用户邻域的类型,取值为“nearestN”或“threshold”,分别表示固定大小的用户邻域和基于阈值的用户邻域。该参数在algorithm取值为“user-based-cf”时才会用到。
⑥nUser:定义该参数表示固定大小的用户邻域所包含的用户数量,取值为正整数。该参数在userNeighborhood取值为“nearestN”时才会用到。
⑦threshold:定义该参数表示基于阈值的用户邻域的阈值,只要与当前用户相似度超过该阈值的用户都会被归入邻域。该参数在userNeighborhood取值为“threshold”时才会用到。
以上这些参数设置的最大优点在于统一了基本推荐算法和混合推荐算法的配置方式:当需要使用基本推荐算法时,令参数algorithmType取值为“single”并指定一个algorithm参数即可;当需要使用混合推荐算法时,令参数algorithmType取值为“weighted”或“waterfall”并指定多个algorithm参数即可。该参数配置模型将基本推荐算法看作是混合推荐算法的特殊情形。
综上所述,可以得到算法处理流程部分的参数配置模型,如图12所示。
(4)算法评估部分的参数配置模型
基于算法评估机制,可以建立这部分的参数配置模型,包括如下参数:
①deviation:定义该参数表示是否计算协同过滤推荐中预测评分与实际评分的偏差。取值为“true”或“false”,“true”表示要求推荐系统计算该值,“false”表示不需要计算,下同。
②precision:定义该参数表示是否计算协同过滤推荐的查准率。取值为“true”或“false”。
③recall:定义该参数表示是否计算协同过滤推荐的查全率。取值为“true”或“false”。
④runningTime:定义该参数表示是否计算推荐算法的运行时间。取值为“true”或“false”。
需要注意的是,若推荐系统采用的是基于内容的推荐算法或混合推荐算法,则参数deviation、precision和recall均无法计算,框架会忽略这些参数。这部分的参数配置模型如图13所示。
最终,将4个部分的参数配置模型进行整合,可以得到完整的推荐系统参数配置模型,如图14所示。
2、推荐系统的XML配置机制
本发明制定了一套完整的推荐系统XML配置文件的格式规范,开发者需要遵循规范设计自己的配置文件,就可以搭建一个推荐系统。XML配置文件的格式规范如以下若干图所示。
基于推荐系统参数配置模型,本框架制定了名为“recommender.xsd”的XSD文件,用来描述推荐系统的XML配置文件格式。recommender.xsd的总体结构如图15所示。
可以看出,recommender.xsd总共包含了4个部分,分别对应于参数配置模型的4个部分。这4部分的XSD文档片段如图16至图19所示。
按照recommender.xsd描述的格式规范,本框架的使用者可以创建自己的XML配置文件,用来描述自己的推荐系统各项参数。
为了弥补这些不足之处,本发明借助各种开源工具设计并实现一个通用性的推荐算法处理框架。在设计框架的过程中,针对现有技术的不足之处提出优化解决方案,建立通用化的推荐算法模型,并提供简单明了的使用方式,从而降低推荐系统的搭建和使用难度,并能够满足各类业务场景下的需求。本发明所设计的推荐算法通用处理框架的三大模块——算法模块、配置模块和服务模块相互配合,优化了推荐算法的实现机制,降低了推荐系统的搭建难度,简化了推荐系统的使用方式,为使用者提供了便利。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种推荐系统,包括:
算法模块,所述算法模块包括多个二级模块,所述二级模块的参数是可配置的;
所述多个二级模块包括:
数据抽象模块,该模块支持文件和数据库两种形式的数据源,针对基于内容的推荐,该模块将输入数据转换为向量格式;针对协同过滤推荐,该模块将输入数据源转换为包括用户ID、项目ID和偏好值的关系型表的格式;
相似度度量模块,基于从数据抽象模块输出的数据计算用户之间的相似度和项目之间的相似度,在基于内容的推荐中,需要计算用户与项目特征向量之间的相似度;在协同过滤推荐中,需要计算用户之间或项目之间的相似度;
算法处理模块,从存储的多个算法中选择一个或多个算法,基于从数据抽象模块和相似度度量模块输出的数据进行推荐处理;
算法评估模块,对采用所选择的算法获得的推荐结果进行评估;
配置模块,所述配置模块包括多个参数配置模型,分别对所述多个二级模块的参数进行配置,包括Web配置模块和XML配置模块,Web配置模块允许网站开发者通过浏览器访问配置页面,在配置页面上填写推荐系统的各项参数,XML配置模块允许网站开发者按照特定的格式规范编写XML配置文件来配置推荐系统的各项参数;
所述多个参数配置模型包括:
输入数据源参数配置模型,对输入数据源的数据类型、类别、数据库参数、文件配置参数、特征数据相关参数和用户偏好相关参数中的至少之一进行配置,包括:dataType:定义该参数来表示数据源所包含的数据类型,有两种取值:“content”或“preference”,分别表示输入数据是特征数据或用户偏好数据,当输入的既有特征数据又有用户偏好数据时,指定多个dataType参数来分别表示;sourceType:定义该参数来表示数据源的类别,有两种取值:“mysql”和“file”,分别表示数据源为MySQL数据库或文件,当dataType参数取值为“content”时,sourceType只能取mysql;数据库配置参数:包括dbServerName、dbUser、dbPassword,用于指定数据库的连接配置信息,在sourceType取值为“mysql”时才会用到;文件配置参数:包括filePath,用于指定数据源文件的存储路径,在sourceType取值为“file”时才会用到;特征数据相关参数:包括dbDatabaseName、userTableName、itemTableName、userColumn、itemColumn、occur,依次用于指定用户及项目特征数据所处的数据库名称、表名称、字段名称、以及这些字段之间的逻辑组成关系,其中,userColumn、itemColumn和occur这三个参数多次指定,来表示多个Lucene查询条件,框架通过解析这三个参数的取值来构建复杂查询语句,这些参数在dataType取值为“content”时才会用到;用户偏好数据相关参数:包括dbDatabaseName、preferenceTable、userIDColumn、itemIDColumn、preferenceColumn、timestampColumn,它们依次用于指定用户偏好数据所处的数据库名称、表名称,以及用户ID字段名称、项目ID字段名称、偏好值字段名称和时间戳字段名称,这些参数在dataType取值为“preference”时才会用到;
相似度度量参数配置模型,对用户之间的相似度度量和项目之间的相似度度量中的至少之一进行配置;
算法处理参数配置模型,对选用的算法的处理流程、类型、权重、个数、以及用户邻域的类型、用户邻域包含的用户数量和用户邻域的阈值中的至少之一进行配置;
算法评估参数配置模型,对是否计算协调过滤推荐中预测评分与实际评分的偏差、是否计算协调过滤推荐的查准率、是否计算协调过滤推荐的查全率、和是否计算推荐算法的运行时间中的至少之一进行配置;
还包括服务模块,为用户或外部设备提供通过所述配置模块对所述算法模块进行配置的接口。
2.如权利要求1所述的推荐系统,其中,所述服务模块包括Web服务模块和第三方库服务模块中的至少之一。
3.一种推荐系统的构建方法,包括:
提供算法模块,所述算法模块包括多个二级模块,所述二级模块的参数是可配置的;
其中,所述多个二级模块包括:
数据抽象模块,该模块支持文件和数据库两种形式的数据源,针对基于内容的推荐,该模块将输入数据转换为向量格式;针对协同过滤推荐,该模块将输入数据源转换为包括用户ID、项目ID和偏好值的关系型表的格式;
相似度度量模块,基于从数据抽象模块输出的数据计算用户之间的相似度和项目之间的相似度,在基于内容的推荐中,需要计算用户与项目特征向量之间的相似度;在协同过滤推荐中,需要计算用户之间或项目之间的相似度;
算法处理模块,从存储的多个算法中选择一个或多个算法,基于从数据抽象模块和相似度度量模块输出的数据进行推荐处理;
算法评估模块,对采用所选择的算法获得的推荐结果进行评估;
提供配置模块,所述配置模块包括多个参数配置模型,分别对所述多个二级模块的参数进行配置,包括Web配置模块和XML配置模块,Web配置模块允许网站开发者通过浏览器访问配置页面,在配置页面上填写推荐系统的各项参数,XML配置模块允许网站开发者按照特定的格式规范编写XML配置文件来配置推荐系统的各项参数;
其中,所述多个参数配置模型包括:
输入数据源参数配置模型,对输入数据源的数据类型、类别、数据库参数、文件配置参数、特征数据相关参数和用户偏好相关参数中的至少之一进行配置,包括:dataType:定义该参数来表示数据源所包含的数据类型,有两种取值:“content”或“preference”,分别表示输入数据是特征数据或用户偏好数据,当输入的既有特征数据又有用户偏好数据时,指定多个dataType参数来分别表示;sourceType:定义该参数来表示数据源的类别,有两种取值:“mysql”和“file”,分别表示数据源为MySQL数据库或文件,当dataType参数取值为“content”时,sourceType只能取mysql;数据库配置参数:包括dbServerName、dbUser、dbPassword,用于指定数据库的连接配置信息,在sourceType取值为“mysql”时才会用到;文件配置参数:包括filePath,用于指定数据源文件的存储路径,在sourceType取值为“file”时才会用到;特征数据相关参数:包括dbDatabaseName、userTableName、itemTableName、userColumn、itemColumn、occur,依次用于指定用户及项目特征数据所处的数据库名称、表名称、字段名称、以及这些字段之间的逻辑组成关系,其中,userColumn、itemColumn和occur这三个参数多次指定,来表示多个Lucene查询条件,框架通过解析这三个参数的取值来构建复杂查询语句,这些参数在dataType取值为“content”时才会用到;用户偏好数据相关参数:包括dbDatabaseName、preferenceTable、userIDColumn、itemIDColumn、preferenceColumn、timestampColumn,它们依次用于指定用户偏好数据所处的数据库名称、表名称,以及用户ID字段名称、项目ID字段名称、偏好值字段名称和时间戳字段名称,这些参数在dataType取值为“preference”时才会用到;
相似度度量参数配置模型,对用户之间的相似度度量和项目之间的相似度度量中的至少之一进行配置;
算法处理参数配置模型,对选用的算法的处理流程、类型、权重、个数、以及用户邻域的类型、用户邻域包含的用户数量和用户邻域的阈值中的至少之一进行配置;
算法评估参数配置模型,对是否计算协调过滤推荐中预测评分与实际评分的偏差、是否计算协调过滤推荐的查准率、是否计算协调过滤推荐的查全率、和是否计算推荐算法的运行时间中的至少之一进行配置;
提供服务模块,为用户或外部设备提供通过所述配置模块对所述算法模块进行配置的接口。
4.如权利要求3所述的构建方法,其中,所述服务模块包括Web服务模块和第三方库服务模块中的至少之一。
5.如权利要求3或4所述的构建方法,其中,包括构建用来提供就业信息的个性化推荐服务的推荐系统的步骤,所述步骤包括:
分析并建立系统模型,毕业生简历数据属于用户特征数据,职位详情数据属于项目特征数据,这两类数据用于基于内容的推荐;投递记录数据属于布尔型的用户偏好数据,用于协同过滤推荐;
选择毕业生简历表和职位详情表中对推荐算法有用的字段,所述有用的字段包括所学专业、期望的工作地点和期望的薪酬水平,摒弃无用的字段,所述无用的字段包括姓名和邮箱,使用这些有用的字段构建查询条件;
先使用基于内容的推荐,筛掉不满足用户工作地点和薪酬水平期望的职位,然后在结果集上使用基于项目的协同过滤推荐,找到与用户已投递职位类似的其他职位,作为最终的推荐结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610007304.XA CN105677846B (zh) | 2016-01-06 | 2016-01-06 | 推荐系统及其构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610007304.XA CN105677846B (zh) | 2016-01-06 | 2016-01-06 | 推荐系统及其构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105677846A CN105677846A (zh) | 2016-06-15 |
CN105677846B true CN105677846B (zh) | 2019-12-31 |
Family
ID=56299170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610007304.XA Active CN105677846B (zh) | 2016-01-06 | 2016-01-06 | 推荐系统及其构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677846B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106503095B (zh) * | 2016-10-13 | 2019-06-04 | 南京航空航天大学 | 一种基于投票方式的数据融合方法 |
CN107798030B (zh) * | 2017-02-17 | 2020-07-03 | 平安科技(深圳)有限公司 | 数据表的拆分方法和装置 |
CN107391692B (zh) * | 2017-07-26 | 2023-04-07 | 腾讯科技(北京)有限公司 | 一种推荐效果的评估方法及装置 |
CN107562461B (zh) * | 2017-09-08 | 2021-09-03 | 北京京东尚科信息技术有限公司 | 特征计算系统及方法、存储介质和电子设备 |
CN109711912A (zh) * | 2017-10-25 | 2019-05-03 | 贵州师范学院 | 一种融合FP-growth算法和Slope-One算法的混合推荐模型 |
CN109948016A (zh) * | 2017-10-31 | 2019-06-28 | 北京嘀嘀无限科技发展有限公司 | 应用信息推送方法、装置、服务器和计算机可读存储介质 |
CN108038500B (zh) * | 2017-12-07 | 2020-07-03 | 东软集团股份有限公司 | 聚类方法、装置、计算机设备、存储介质和程序产品 |
WO2021113741A1 (en) * | 2019-12-04 | 2021-06-10 | Dean Sarah Ankaret Anderson | Controlling reachability in a collaboratively filtered recommender |
CN114491265B (zh) * | 2022-01-28 | 2022-08-23 | 北京乐开科技有限责任公司 | 一种经营性空间平台运营服务系统的构建方法 |
CN114971817B (zh) * | 2022-07-29 | 2022-11-22 | 中国电子科技集团公司第十研究所 | 基于用户需求画像的产品自适应服务方法、介质及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169505A (zh) * | 2011-05-16 | 2011-08-31 | 苏州两江科技有限公司 | 基于云计算的推荐系统构建方法 |
CN103218407A (zh) * | 2013-03-22 | 2013-07-24 | 南京信通科技有限责任公司 | 一种基于兴趣图谱的推荐引擎 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8881209B2 (en) * | 2012-10-26 | 2014-11-04 | Mobitv, Inc. | Feedback loop content recommendation |
-
2016
- 2016-01-06 CN CN201610007304.XA patent/CN105677846B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169505A (zh) * | 2011-05-16 | 2011-08-31 | 苏州两江科技有限公司 | 基于云计算的推荐系统构建方法 |
CN103218407A (zh) * | 2013-03-22 | 2013-07-24 | 南京信通科技有限责任公司 | 一种基于兴趣图谱的推荐引擎 |
Non-Patent Citations (2)
Title |
---|
基于Mahout的个性化推荐系统架构;韩怀梅等;《北京信息科技大学学报(自然科学版)》;20140815;第29卷(第4期);正文第1-2章 * |
基于Mahout的推荐系统的分析与设计;朱倩等;《科技通报》;20130615;第29卷(第6期);第35-39页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105677846A (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105677846B (zh) | 推荐系统及其构建方法 | |
CN103544623B (zh) | 一种基于用户偏好特征建模的Web 服务推荐方法 | |
US10545976B2 (en) | Automated presentation of information using infographics | |
Preidel et al. | Data retrieval from building information models based on visual programming | |
CN110688343B (zh) | 一种转换数据格式的方法及装置 | |
Kourtesis et al. | Semantic-based QoS management in cloud systems: Current status and future challenges | |
US20130117668A1 (en) | Presentation of multiple sources of application guidance information | |
KR20030074647A (ko) | 제품 구성 방법 | |
EP2630592A2 (en) | Semantic analysis of information | |
CN110609906A (zh) | 知识图谱构建方法及装置、存储介质及电子终端 | |
US20140244784A1 (en) | Website Impersonation System and Method | |
US20140195463A1 (en) | System and methods for generating and displaying optimized solutions to complex problems | |
CN108121742A (zh) | 用户分类模型的生成方法及装置 | |
Leonelli | Enhancing a decision support tool with sensitivity analysis | |
CN105608065A (zh) | 一种图表生成方法和装置 | |
CN108885633A (zh) | 用于自动发现和连接到rest接口的技术 | |
CN110019207B (zh) | 数据处理方法和装置以及脚本显示方法和装置 | |
CN104834681A (zh) | 服务推荐方法及装置 | |
US20130191304A1 (en) | Tools and Methods for Creating Dynamic Feedback Forms | |
Brambilla et al. | Model-driven design of service-enabled web applications | |
Kritikos et al. | Towards semantic KPI measurement | |
CN103488477A (zh) | Java接口的可视化编辑系统和可视化编辑方法 | |
Iorshase et al. | A well-built hybrid recommender system for agricultural products in Benue State of Nigeria | |
Kritikos et al. | A flexible semantic kpi measurement system | |
Biehl | GraphQL API Design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |