CN103578007A - 用于智能设备的混合推荐***及其方法 - Google Patents
用于智能设备的混合推荐***及其方法 Download PDFInfo
- Publication number
- CN103578007A CN103578007A CN201210253651.2A CN201210253651A CN103578007A CN 103578007 A CN103578007 A CN 103578007A CN 201210253651 A CN201210253651 A CN 201210253651A CN 103578007 A CN103578007 A CN 103578007A
- Authority
- CN
- China
- Prior art keywords
- user
- application program
- candidate
- recommending data
- mixing
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种为智能设备推荐应用程序的混合推荐***和方法。所述混合推荐***基于云平台的分布式架构,包括:日志导入和解析器,从数据库导入应用程序访问日志,并且对导入的应用程序访问日志进行解析,提取关于应用程序使用状况的信息;用户建模器,用于创建包括多个应用程序项的应用程序表,并且用于使用日志导入和解析器提取的信息,基于MapReduce编程模型分布式地为各用户进行用户建模;混合推荐器,分别为每个用户生成基于项目的协同过滤算法的第一候选推荐数据、Top-N推荐的第二候选推荐数据以及基于内容的协同过滤算法的第三候选推荐数据,然后按照预定的推荐条目总数以及第一、第二和第三比例,生成混合推荐数据。
Description
技术领域
本申请涉及一种为智能设备提供应用程序推荐的推荐***和方法,尤其涉及一种在基于云平台的分布式***架构中,使用应用程序访问日志的信息分别生成基于项目的协同过滤推荐数据、基于内容的推荐数据以及基于用户国别的Top-N推荐数据,并且按照预定比例将生成的所述推荐数据进行融合,从而生成混合推荐数据的技术。
背景技术
随着科技的发展,具有操作***、用户可以自由安装和卸载应用程序的智能设备越来越多,比如智能手机、智能电视、平板电脑等。以电视为例,现在的电视机已经不只具有放电视的功能了,智能电视可像电脑一样具有开放的平台并搭载操作***。用户可通过智能电视上网、玩游戏、自由安装和卸载软件或游戏等第三方服务商提供的程序。由于智能设备用户的选择越来越多,用户有效确定自己感兴趣的应用程序越来越困难,需要花费大量的时间和精力。然而,智能设备记录了用户几乎所有的使用日志。我们可以通过对日志的分析和模式挖掘来发现各个用户感兴趣的应用程序,然后将一组用户最可能感兴趣的应用程序推荐给用户,以有效解决信息过载和信息迷失的问题,节省用户的时间。
推荐的概念可被定义为:任何能够产生个性化推荐作为输出或在可能选项很大的空间中能够以个性化的方式有效引导用户到感兴趣或有用的对象的***。在电子商务中,推荐***就是了解和学习客户的需求与爱好,为用户提供商品信息和建议,推荐其可能感兴趣的商品,实现信息服务的个性化。
目前,常用的推荐技术有协同过滤的推荐、基于内容的推荐、基于效用的推荐、基于知识的推荐和基于规则的推荐等。上述每种推荐技术有其各自的优点和缺点。例如,协同过滤的推荐能够处理复杂的非结构化对象、提供个性化推荐数据、推荐质量可随时间提高、有助发现用户的潜在兴趣等优点,但同时,协同过滤的推荐在应付数据稀疏问题方面、扩展性方面、新用户冷启动问题方面以及新项目冷启动问题方面等都不理想。又例如,基于内容的推荐技术能够提供直观、易解释的推荐结果,不存在新项目的冷启动问题,也不需要以来用户评价数据等,但是却不能有效地解决新用户的冷启动问题,不能够很好地解决属性复杂的项目,而且需要依赖大量的历史数据等等。
当涉及推荐智能设备的应用程序时,还需要考虑以下几点:
1.智能设备对许多用户都是新事物,当前使用智能电视的用户中使用应用程序的用户占少数,而且用户评价的项目数只占项目总数很小的一部分,所以需要考虑数据稀疏问题。
2.在世界范围内,每天都会增加大量的新用户,虽然他们没有历史使用记录,但是有必要为他们产生推荐,即新用户的冷启动问题。
3.现在有第三方参与智能设备应用程序的开发。当新应用程序推出以后,必须能够将它们推荐给用户,即新项目的冷启动问题。
4.智能设备的应用程序的规模相对于智能设备的用户来说小很多。为了推荐***的效率,必须考虑数据规模和可扩展性。
5.个性化的推荐,以增强用户的体验。
因此,需要一种为各种用户提供有用的、个性化推荐的推荐***。
发明内容
本发明的目的在于提供一种分布式地进行智能设备的应用程序的推荐处理,并且生成融合了多种推荐技术的优点的混合推荐数据,从而能够针对不同类型的用户以及新推出/已使用过的应用程序都能够生成相关性较强的推荐数据。
根据本发明的一方面,提供一种为智能设备推荐应用程序的混合推荐***,所述混合推荐***基于云平台的分布式架构,包括:日志导入和解析器,从数据库导入应用程序访问日志,并且基于MapReduce编程模型对导入的应用程序访问日志进行解析,提取关于应用程序使用状况的信息;用户建模器,用于创建包括多个应用程序项的应用程序表,每个应用程序项包括应用程序标识以及多个属性,所述属性包括应用程序类型、付费类型以及至少一个关键词,并且用于使用日志导入和解析器提取的信息,基于MapReduce编程模型分布式地为各用户进行用户建模,为每个用户构建包括用户对应用程序的至少一个属性的偏好数据的用户模型;混合推荐器,用于使用日志导入和解析器提取的信息以及用户建模器创建的应用程序表和每个用户的用户模型,分别为每个用户生成基于项目的协同过滤算法的第一候选推荐数据、包括在用户所属国家使用频率高的应用程序的第二候选推荐数据以及基于内容的协同过滤算法的第三候选推荐数据,然后按照预定的推荐条目总数以及第一、第二和第三比例,分别从每个用户生成的第一候选推荐数据、第二候选推荐数据和第三候选推荐数据选取符合相应比例的数量的推荐数据条目,并且将分别选取的推荐数据条目合并作为所述用户的混合推荐数据。
混合推荐器可包括:第一推荐器,用于基于MapReduce从日志导入和解析器提取的信息取得各用户对各应用程序的使用频率作为项目输入,根据预定的基于项目的协同过滤算法为每个用户生成第一候选推荐数据;第二推荐器,用于使用日志导入和解析器提取的信息,生成包括在各个国家各应用程序使用次数的国家应用程序列表,取得每个用户所属国家的信息,统计每个用户使用应用程序的历史数据,并且基于上述信息为每个用户生成第二候选推荐数据;第三推荐器,用于根据混合推荐器创建的应用程序表,为未使用过的应用程序生成特征向量,基于生成的特征向量和各用户的用户模型计算各应用程序的相似度,并且为每个用户生成第三候选推荐数据。
所述基于项目的协同过滤算法可以是Apache Mahout机器学习库中实现的基于项目的协同过滤算法。
所述第一、第二和第三比例可分别是60%、20%和20%。
所述混合推荐***可还包括:用户应用程序接口,用于根据智能设备的鉴权请求执行用户鉴权,建立与智能设备的安全会话,在安全会话期间将为智能设备的用户生成的混合推荐数据发送给所述智能设备。
根据本发明的另一方面,提供一种为智能设备推荐应用程序的混合推荐方法,所述混合推荐方法包括,在基于云平台的分布式***架构中:从数据库导入应用程序访问日志,并且对导入的应用程序访问日志进行解析,提取关于应用程序使用状况的信息;创建包括多个应用程序项的应用程序表,每个应用程序项包括应用程序标识以及多个属性,所述属性包括应用程序类型、付费类型以及至少一个关键词;使用从应用程序访问日志提取的信息,基于MapReduce编程模型分布式地为各用户进行用户建模,为每个用户构建包括用户对应用程序的至少一个属性的偏好数据的用户模型;用于使用从应用程序访问日志提取的信息、创建的应用程序表以及为每个用户构建的用户模型,分别为每个用户生成基于项目的协同过滤算法的第一候选推荐数据、包括在用户所属国家使用频率高的应用程序的第二候选推荐数据以及基于内容的协同过滤算法的第三候选推荐数据;按照预定的推荐条目总数以及第一、第二和第三比例,分别从为每个用户生成的第一候选推荐数据、第二候选推荐数据和第三候选推荐数据选取符合相应比例的数量的推荐数据条目,并且将分别选取的推荐数据条目合并作为所述每个用户的混合推荐数据。
可通过并行地执行以下处理,为每个用户生成第一候选推荐数据、第二候选推荐数据和第三候选推荐数据:基于MapReduce从应用程序访问日志提取的信息取得各用户对各应用程序的使用频率作为项目输入,根据预定的基于项目的协同过滤算法为每个用户生成第一候选推荐数据;使用从应用程序访问日志提取的信息,生成包括在各个国家各应用程序使用次数的国家应用程序列表,取得每个用户所属国家的信息,统计每个用户使用应用程序的历史数据,并且基于上述信息为每个用户生成第二候选推荐数据;根据混合推荐器创建的应用程序表,为未使用过的应用程序生成特征向量,基于生成的特征向量和各用户的用户模型计算各应用程序的相似度,并且为每个用户生成第三候选推荐数据。
所述基于项目的协同过滤算法可以是Apache Mahout机器学习库中实现的基于项目的协同过滤算法。
所述第一、第二和第三比例可分别是60%、20%和20%。
所述混合推荐方法可还包括:根据智能设备的鉴权请求,执行用户鉴权,建立与智能设备的安全会话,在安全会话期间将为智能设备的用户生成的混合推荐数据发送给所述智能设备。
附图说明
通过下面结合附图进行的描述,本发明的上述和其他目的和特点将会变得更加清楚,其中:
图1是示出根据本发明的混合推荐***的结构框图;
图2是示出根据本发明的混合推荐方法的总体操作的流程图;
图3是示出根据本发明的混合推荐***执行用户建模的流程图;
图4是示出根据本发明的混合推荐***根据基于项目的协同过滤推荐算法生成第一候选推荐数据的流程图;
图5是示出根据本发明的混合推荐***根据Top-N算法生成第二候选推荐数据的流程图;
图6是示出根据本发明的混合推荐***使用基于内容的推荐算法生成第三候选推荐数据的流程图;
图7是示出根据本发明的混合推荐***基于用户鉴权处理用户请求的流程图。
具体实施方式
以下,参照附图来详细说明本发明的实施例。
本发明的为智能设备推荐应用程序的混合推荐***基于云平台的分布式架构,分布式地执行本发明涉及的各种推荐计算和处理,从而提高大量数据的处理速度和效率。
图1是示出根据本发明的混合推荐***的结构框图。参照图1,根据本发明的为智能设备推荐应用程序的混合推荐***包括:日志导入和解析器110、用户建模器130、混合推荐器140以及用户API服务器150。
日志导入和解析器110从(例如日志服务器存储的)数据库导入应用程序访问日志,并且基于MapReduce编程模型对导入的应用程序访问日志进行解析,提取关于应用程序使用状况的的信息。
根据本发明的示例性实施例,日志导入和解析器110可使用提取的信息创建包括用户标识(userId)、应用程序标识(AppID)、用户所属国家(CountryID)和时间(time)等字段的Hive表cnt_log。
根据本发明的示例性实施例,日志导入和解析器110在导入应用程序访问日志时,将相关的日志文件复制到临时文件夹中。日志导入和解析器110在解析应用程序访问日志时,将所述提取的信息或者Hive表cnt_log存入指定的文件夹下。
用户建模器130创建包括多个应用程序项的应用程序表,每个应用程序项包括应用程序标识以及多个属性,所述属性包括应用程序类型、付费类型以及至少一个关键词。用户建模器130还使用日志导入和解析器110提取的信息,基于MapReduce编程模型分布式地为各用户进行用户建模,为每个用户生成包括用户对应用程序的至少一个属性的偏好数据的用户模型,所述属性包括应用程序类型、付费类型以及至少一个关键词。稍后将参照图3详细描述根据本发明示例性实施例进行用户建模的具体操作。
混合推荐器140用于使用日志导入和解析器110提取的信息以及用户建模器130创建的应用程序表和构建的用户模型分别生成基于项目的协同过滤的候选推荐数据(第一候选推荐数据)、Top-N候选推荐数据(第二候选推荐数据)以及基于内容的候选推荐数据(第三候选推荐数据)。之后,混合推荐器140按照预定的推荐条目总数以及第一、第二和第三比例,分别从生成的第一候选推荐数据、第二候选推荐数据和第三候选推荐数据选取符合相应比例的数量的推荐数据条目,并且将分别选取的推荐数据条目合并作为所述用户的混合推荐数据。根据本发明的优选实施例,所述第一、第二和第三比例分别为60%、20%和20%,但是所述比例可根据需要进行调整。此外,可将所述预定的推荐条目总数以及第一、第二和第三比例作为***配置信息的一部分存储在***配置文件中。
根据本发明的示例性实施例,混合推荐器140包括第一推荐器141、第二推荐器142和第三推荐器143,其分别用于生成第一候选推荐数据、第二候选推荐数据和第三候选推荐数据。
第一推荐器141用于基于MapReduce从日志导入和解析器110提取的信息取得各用户对各应用程序的使用频率作为项目输入,根据预定的基于项目的协同过滤算法为每个用户生成第一候选推荐数据。
第二推荐器142用于使用日志导入和解析器110提取的信息,生成包括在各个国家各应用程序使用次数的国家应用程序列表,取得每个用户所属国家的信息,统计每个用户使用应用程序的历史数据,并且基于上述信息为每个用户生成第二候选推荐数据。
第三推荐器143用于根据创建的应用程序表,为未使用过的应用程序生成特征向量,基于生成的特征向量和各用户的用户模型计算各应用程序的相似度,并且为每个用户生成第三候选推荐数据。
用户API服务器150用于根据智能设备的鉴权请求执行用户鉴权,建立与智能设备的安全会话,在安全会话期间将为智能设备的用户生成的混合推荐数据发送给所述智能设备。图7示出用户API服务器150根据客户机的请求进行用户鉴权以及通过用户接口提供推荐数据的处理,在此不再给予具体的描述。
图2是示出根据本发明的混合推荐方法的总体操作的流程图。
参照图2,在步骤S210,混合推荐***的日志导入和解析器110从数据库导入应用程序访问日志,并且对导入的应用程序访问日志进行解析,提取关于应用程序使用状况的信息。在步骤S220,混合推荐***的用户建模器130创建包括多个应用程序项的应用程序表,每个应用程序项包括应用程序标识以及多个属性,所述属性包括应用程序类型、付费类型以及至少一个关键词。
根据本发明的示例性实施例,所述应用程序表被创建为Hive表APP_INFO,该表可包含应用程序的标识、名称、应用程序类型(Category)、付费类型(Free/Paid),关键字列表等。
虽然根据本发明的示例性实施例,由用户建模器130创建应用程序表,但是可由其他模块,如混合推荐器140或单独的模块执行创建应用程序表的操作。
在步骤S230,混合推荐***的用户建模器130使用从应用程序访问日志提取的信息,基于MapReduce编程模型分布式地为各用户进行用户建模,为每个用户构建包括用户对应用程序的至少一个属性的偏好数据的用户模型。
在步骤240,混合推荐***的混合推荐器140通过第一推荐器141、第二推荐器142和第三推荐器143分别为每个用户生成第一候选推荐数据、第二候选推荐数据和第三候选推荐数据。
在步骤S250,混合推荐***的混合推荐器140按照预定的推荐条目总数以及第一、第二和第三比例,分别从为每个用户生成的第一候选推荐数据、第二候选推荐数据和第三候选推荐数据选取符合相应比例的数量的推荐数据条目,并且将分别选取的推荐数据条目合并作为所述每个用户的混合推荐数据。所述第一、第二和第三比例可以分别是60%、20%和20%。
根据本发明的有选实施例,所述基于项目的协同过滤算法采用ApacheMahout机器学习库中实现的基于项目的协同过滤算法。
以下将参照图3描述根据本发明的混合推荐***中的用户建模器130的建模操作。图3是示出根据本发明的混合推荐***执行用户建模的流程图。本发明的混合推荐***以从应用程序访问日志提取的信息(“以下简称为日志信息”)作为输入,采用统计的方法,基于MapReduce实现分布式用户建模。
参照图3,在步骤S242,对各用户的应用程序使用进行统计。具体为:从日志信息提取事件为应用程序的记录,输出“userID,appID,count”(分别为用户标识、应用程序标识、使用次数)形式的结果。例如:Map函数输出的key为userID,输出的value为appID;Reduce函数的输出key为“userID,appID”,输出value为统计次数“count”(计数),分隔符可以为空格或其他特定字符。然后,基于上述输出结果创建Hive表USER_APP_STA,该表可包含三个字段,分别是userID、appID和count。
此后,在步骤S244,用户建模器统计各用户对应用程序的付费类型的偏好。例如,通过关联Hive表APP_INFO和USER_APP_STA得到应用程序付费类型的统计,“userID,Free/Paid count”(用户标识、免费/付费计数);然后统计各用户对Free(免费)与Paid(付费)类型的应用程序的偏好,例如,Map函数输出的key为userID,输出的value为“Free count”或“Paid count”,而Reduce函数的输出key为userID,输出value为概率“Free prob”和“Paidprob”,分隔符可为空格。
在步骤S246,用户建模器统计各用户对应用程序类型(Category)的偏好。具体地讲,通过关联Hive表APP_INFO和USER_APP_STA得到应用程序类型的统计,结果表中的字段为“userID,category,count”(用户标识、应用程序类型、计数);然后,统计用户对各类型应用程序的偏好,例如,Map函数的输出key为userID,输出value为“category,count”;Reduce函数的输出key为userID,输出value为“category,prob”,分隔符可为空格。
然后,在步骤S248,用户建模器统计各用户对应用程序关键字的偏好。具体地,首先关联Hive表APP_INFO和USER_APP_STA得到应用程序关键字的统计,结果表中字段为“userID,keywords,count”(用户标识、关键词、计数);然后统计用户对各关键词(keyword)的偏好情况。比如:Map函数输出key为userID,输出value为“keyword,count”;Reduce函数的输出key为userID,输出value为“keyword prob”(关键词、概率)。
最后,在步骤S249,用户建模器使用从前述步骤得到的各个用户的信息构造用户模型,即合并各个用户对应用程序特征的偏好。具体为,通过Hive表APP_INFO统计keyword列表,通过Hive表APP_INFO统计category(应用程序类型)列表,然后为每个用户提取包含Free/Paid、keyword、category的信息,并且根据日志信息构造用户模型。
图4是示出根据本发明的混合推荐***根据基于项目的协同过滤推荐算法生成第一候选推荐数据的流程图。
本发明示例性实施例的第一推荐器采用Apache Mahout库实现的算法(Itembased Collaborative Filtering)进行基于项目的协同过滤推荐,但是本发明的设计构思不限于此,可以采用任何其他基于项目的协同过滤算法来生成第一候选推荐数据,在此仅描述使用Apache Mahout库的实施方式。
由于在Apache Mahout库的协同过滤推荐算法中,用户(user)和项目(item)都表示为长整形,因此在解析应用程序访问日志并提取用户、项目信息时需要将它们转换成长整形;通过该算法生成推荐后,又需要将其表示长整形的数据转换成通常格式(如字符串)。以下本示例性实施例的具体步骤,其中用到的表名、字段名、字段类型、数据形式等都是本实施例中采用的形式,不是必须如此:
在步骤S2511,第一推荐器执行运行所述推荐算法的输入准备,也就是从应用程序访问日志提取各用户对各应用程序的使用频率(用户对应用程序的使用情况),并将其中的用户字符串转换成长整形。输入形如:“userIndexItemID pref”,其中,userIndex为转换后的长整型的用户标识,ItemID为应用程序的标识,本身就是长整型。Pref为该用户对该项目的偏好值,为浮点型数据。
在步骤S2512,第一推荐器运行Mahout库中的基于项目的协同过滤推荐算法,产生形如:“userIndex,appList”的推荐结果,其中appList中包含了推荐的项目和预测的偏好值。
在步骤S2513,第一推荐器使用日志信息统计使用应用程序的用户,并生成形如:“userIndex,userID,null”数据,其中userIndex为key的值,userID,null为value的值。
在步骤S2515,第一推荐器将所述推荐结果转换成需要的形式,在本实施例中会将它转换成“userID,appList”的形式。具体地,首先,将推荐结果转换成形如:“userIndex,null,appList”的形式,其中null,appList为value的值,userIndex为key的值。然后,合并上述步骤和步骤S2513生成的数据,生成形如“userID,appList”作为第一候选推荐数据,其中,userID为key的值,appList为value的值。
图5是示出根据本发明的混合推荐***根据Top-N算法生成第二候选推荐数据的流程图。
本发明的第二推荐器按照国家统计该国用户使用应用程序的情况,生成包括在各个国家各应用程序的使用次数的国家应用程序列表,取得每个用户所属国家的信息,统计每个用户使用应用程序的历史数据,并且基于上述信息为每个用户生成第二候选推荐数据。以下是根据本发明示例性实施例的生成第二候选推荐数据的具体实施步骤,其中的表名、字段名、字段类型、数据形式等都是本实施例中采用的形式,不是必须如此:
参照图5,在步骤S2521,第二推荐器统计日志中各国各应用程序的使用次数,生成每条的形式为“country,appID,count”的数据,将生成的数据合并并排序,得到各国使用应用程序列表,并按使用次数高低排序,创建国家应用程序列表,如包括country STRING和apps STRING字段的Hive表topn_country_apps。
在步骤S2523,使用日志信息,取得每个用户所属国家的信息。具体为,创建包括userId STRING、country STRING等字段的Hive表topn_up_log,基于topn_up_log抽取不同用户所属的国家信息,并创建Hive表topn_user_country。该表包含两个字段:user STRING,country STRING。
在步骤S2525,基于步骤S2521和S2523生成的国家应用程序列表和用户所属国家信息生成用户候选推荐数据。具体为,关联Hive表topn_country_apps与topn_user_country,以创建新的包括字段user STRING,apps STRING的Hive表topn_user_apps。
在步骤S2527,使用日志信息统计各用户的应用程序使用历史数据,得到形如“userId,usedAppList”的数据,其中“usedAppList”可以是“appID1^appID2^…”的形式。
此后,在步骤S2528,从在步骤S2525生成的用户候选推荐数据去除在步骤S2527生成的各用户的应用程序使用历史数据,然后从剩余的应用程序列表中选取前面的若干个应用程序作为第二候选推荐数据。
图6是示出根据本发明的混合推荐***使用基于内容的推荐算法生成第三候选推荐数据的流程图。
基于内容的推荐方法通过计算项目的内容描述和用户模型(profile)之间的相似度来生成包括预定数量的最相似的项目作为推荐数据。在上文中已描述了用户建模器创建包括多个应用程序项的应用程序表,并且构建为每个用户构建用户模型的处理。
以下是根据本发明的示例性实施例生成第二候选推荐数据的具体实施步骤,其中使用的表名、字段名、字段类型、数据形式等都是本实施例中采用的形式,而不是必须如此:
参照图6,在步骤S2531,第三推荐器通过关联Hive表App_Info和cnt_log获取关于各用户未使用过的应用程序的信息,例如可构建包括所述信息的Hive表cnt_unused_apps。
在步骤S2533,第三推荐器为所述每个用户未使用过的应用程序的各个属性生成特征向量。也就是说,生成以例如应用程序类型、付费类型、关键词的属性为变量的特征向量。
在步骤S2535,第三推荐器基于未使用应用程序的特征向量和用户模型计算两者之间的相似度。
例如,可使用向量余弦方法计算所述相似度:
计算所得的夹角越小,表示所述应用程序与用户偏好越相似。使用计算的结果构建包括“userId,appID,similarity”(用户标识、应用程序ID以及相似度)的HIVE表app_sim_list。
然后,在步骤S2538,第三推荐器合并由步骤S2535得到的结果,从而为每个用户生成表示与用户偏好最相似的项目的第三候选推荐数据。
以上参照图1至图6描述了根据本发明的混合推荐***以及混合推荐方法使用三种具有不同优点的推荐方法生成候选推荐数据并且按照预定比例对生成的三种候选推荐数据进行融合,从而为每个用户生成混合推荐数据。所述混合推荐***以及混合推荐方法综合三种不同类型的推荐算法的优点,生成针对不同的用户、应用程序的不同阶段的推荐数据,从而解决新用户的冷启动问题、新项目的冷启动问题,并且同时提供对用户相关性强的推荐数据。
尽管已参照优选实施例表示和描述了本发明,但本领域技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以对这些实施例进行各种修改和变换。
Claims (10)
1.一种为智能设备推荐应用程序的混合推荐***,所述混合推荐***基于云平台的分布式架构,包括:
日志导入和解析器,从数据库导入应用程序访问日志,并且基于MapReduce编程模型对导入的应用程序访问日志进行解析,提取关于应用程序使用状况的信息;
用户建模器,用于创建包括多个应用程序项的应用程序表,每个应用程序项包括应用程序标识以及多个属性,所述属性包括应用程序类型、付费类型以及至少一个关键词,并且用于使用日志导入和解析器提取的信息,基于MapReduce编程模型分布式地为各用户进行用户建模,为每个用户构建包括用户对应用程序的至少一个属性的偏好数据的用户模型;
混合推荐器,用于使用日志导入和解析器提取的信息以及用户建模器创建的应用程序表和每个用户的用户模型,分别为每个用户生成基于项目的协同过滤算法的第一候选推荐数据、包括在用户所属国家使用频率高的应用程序的第二候选推荐数据以及基于内容的协同过滤算法的第三候选推荐数据,然后按照预定的推荐条目总数以及第一、第二和第三比例,分别从每个用户生成的第一候选推荐数据、第二候选推荐数据和第三候选推荐数据选取符合相应比例的数量的推荐数据条目,并且将分别选取的推荐数据条目合并作为所述用户的混合推荐数据。
2.权利要求1所述的混合推荐***,其中,混合推荐器包括:
第一推荐器,用于基于MapReduce从日志导入和解析器提取的信息取得各用户对各应用程序的使用频率作为项目输入,根据预定的基于项目的协同过滤算法为每个用户生成第一候选推荐数据;
第二推荐器,用于使用日志导入和解析器提取的信息,生成包括在各个国家各应用程序使用次数的国家应用程序列表,取得每个用户所属国家的信息,统计每个用户使用应用程序的历史数据,并且基于上述信息为每个用户生成第二候选推荐数据;
第三推荐器,用于根据混合推荐器创建的应用程序表,为未使用过的应用程序生成特征向量,基于生成的特征向量和各用户的用户模型计算各应用程序的相似度,并且为每个用户生成第三候选推荐数据。
3.如权利要求2所述的混合推荐***,其中,所述基于项目的协同过滤算法是Apache Mahout机器学习库中实现的基于项目的协同过滤算法。
4.如权利要求1所述的混合推荐***,其中,所述第一、第二和第三比例分别是60%、20%和20%。
5.如权利要求1所述的混合推荐***,还包括:
用户应用程序接口,用于根据智能设备的鉴权请求执行用户鉴权,建立与智能设备的安全会话,在安全会话期间将为智能设备的用户生成的混合推荐数据发送给所述智能设备。
6.一种为智能设备推荐应用程序的混合推荐方法,所述混合推荐方法包括,在基于云平台的分布式***架构中:
从数据库导入应用程序访问日志,并且对导入的应用程序访问日志进行解析,提取关于应用程序使用状况的信息;
创建包括多个应用程序项的应用程序表,每个应用程序项包括应用程序标识以及多个属性,所述属性包括应用程序类型、付费类型以及至少一个关键词;
使用从应用程序访问日志提取的信息,基于MapReduce编程模型分布式地为各用户进行用户建模,为每个用户构建包括用户对应用程序的至少一个属性的偏好数据的用户模型;
用于使用从应用程序访问日志提取的信息、创建的应用程序表以及为每个用户构建的用户模型,分别为每个用户生成基于项目的协同过滤算法的第一候选推荐数据、包括在用户所属国家使用频率高的应用程序的第二候选推荐数据以及基于内容的协同过滤算法的第三候选推荐数据;
按照预定的推荐条目总数以及第一、第二和第三比例,分别从为每个用户生成的第一候选推荐数据、第二候选推荐数据和第三候选推荐数据选取符合相应比例的数量的推荐数据条目,并且将分别选取的推荐数据条目合并作为所述每个用户的混合推荐数据。
7.如权利要求6所述的混合推荐方法,其中,通过并行地执行以下处理,为每个用户生成第一候选推荐数据、第二候选推荐数据和第三候选推荐数据:
基于MapReduce从应用程序访问日志提取的信息取得各用户对各应用程序的使用频率作为项目输入,根据预定的基于项目的协同过滤算法为每个用户生成第一候选推荐数据;
使用从应用程序访问日志提取的信息,生成包括在各个国家各应用程序使用次数的国家应用程序列表,取得每个用户所属国家的信息,统计每个用户使用应用程序的历史数据,并且基于上述信息为每个用户生成第二候选推荐数据;
根据混合推荐器创建的应用程序表,为未使用过的应用程序生成特征向量,基于生成的特征向量和各用户的用户模型计算各应用程序的相似度,并且为每个用户生成第三候选推荐数据。
8.如权利要求7所述的混合推荐方法,所述基于项目的协同过滤算法是Apache Mahout机器学习库中实现的基于项目的协同过滤算法。
9.如权利要求6所述的混合推荐方法,其中,所述第一、第二和第三比例分别是60%、20%和20%。
10.如权利要求6所述的混合推荐方法,还包括:根据智能设备的鉴权请求,执行用户鉴权,建立与智能设备的安全会话,在安全会话期间将为智能设备的用户生成的混合推荐数据发送给所述智能设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210253651.2A CN103578007A (zh) | 2012-07-20 | 2012-07-20 | 用于智能设备的混合推荐***及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210253651.2A CN103578007A (zh) | 2012-07-20 | 2012-07-20 | 用于智能设备的混合推荐***及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103578007A true CN103578007A (zh) | 2014-02-12 |
Family
ID=50049742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210253651.2A Pending CN103578007A (zh) | 2012-07-20 | 2012-07-20 | 用于智能设备的混合推荐***及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103578007A (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104104729A (zh) * | 2014-07-24 | 2014-10-15 | 福州瑞芯微电子有限公司 | 移动设备通用设置方法和*** |
CN104486648A (zh) * | 2014-12-15 | 2015-04-01 | 四川长虹电器股份有限公司 | 一种推荐的方法和服务器 |
CN105204356A (zh) * | 2015-09-17 | 2015-12-30 | 小米科技有限责任公司 | 应用的显示方法、装置及终端 |
CN105472460A (zh) * | 2015-11-27 | 2016-04-06 | 广东长虹电子有限公司 | 一种电视应用程序的智能排序方法及*** |
CN106503025A (zh) * | 2015-09-08 | 2017-03-15 | 北京搜狗科技发展有限公司 | 一种应用推荐方法和*** |
CN106503224A (zh) * | 2016-11-04 | 2017-03-15 | 维沃移动通信有限公司 | 一种根据关键词推荐应用的方法及装置 |
CN106610970A (zh) * | 2015-10-21 | 2017-05-03 | 上海文广互动电视有限公司 | 基于协同过滤的内容推荐***与方法 |
CN107169572A (zh) * | 2016-12-23 | 2017-09-15 | 福州大学 | 一种基于Mahout的机器学习服务组装方法 |
CN107391687A (zh) * | 2017-07-24 | 2017-11-24 | 华中师范大学 | 一种面向地方志网站的混合推荐*** |
CN107506488A (zh) * | 2017-09-21 | 2017-12-22 | 程丹秋 | 一种智能音乐推荐*** |
WO2018036307A1 (zh) * | 2016-08-23 | 2018-03-01 | 腾讯科技(深圳)有限公司 | 推送信息订单的信息处理方法、分配方法、装置及存储介质 |
CN108011941A (zh) * | 2017-11-29 | 2018-05-08 | 广东欧珀移动通信有限公司 | 内容推送方法、装置、服务器以及存储介质 |
CN108520017A (zh) * | 2018-03-21 | 2018-09-11 | 广东欧珀移动通信有限公司 | 应用程序推荐方法、装置、服务器以及存储介质 |
CN108960986A (zh) * | 2018-06-26 | 2018-12-07 | 西安交通大学 | 一种基于网络爬虫的供应商推荐方法 |
CN109299349A (zh) * | 2018-09-11 | 2019-02-01 | 广州视源电子科技股份有限公司 | 应用推荐方法和装置、设备、计算机可读存储介质 |
CN109324955A (zh) * | 2018-09-14 | 2019-02-12 | 科大国创软件股份有限公司 | 一种具有智能推荐功能的it运维***界面生成方法 |
CN109688458A (zh) * | 2019-01-14 | 2019-04-26 | 四川长虹电器股份有限公司 | 基于大数据算法的智能电视云桌面运营***的实现方法 |
CN109903107A (zh) * | 2017-12-08 | 2019-06-18 | 北京京东尚科信息技术有限公司 | 用于生成信息的方法和装置 |
CN109977316A (zh) * | 2019-03-29 | 2019-07-05 | 厦门铠甲网络股份有限公司 | 一种并行式文章推荐方法、装置、设备及存储介质 |
CN110209931A (zh) * | 2019-05-17 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 媒体内容的推送方法和装置、存储介质、电子装置 |
CN111460271A (zh) * | 2019-01-19 | 2020-07-28 | 上海易慕网络科技有限公司 | 一种网络资讯的智能个性化推荐算法 |
WO2021012790A1 (zh) * | 2019-07-22 | 2021-01-28 | 平安科技(深圳)有限公司 | 页面数据生成方法、装置、计算机设备及存储介质 |
CN113744021A (zh) * | 2021-02-08 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种推荐方法、装置、计算机存储介质及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859425A (zh) * | 2010-06-02 | 2010-10-13 | 中兴通讯股份有限公司 | 一种提供应用列表的方法及装置 |
US20110131077A1 (en) * | 2009-12-01 | 2011-06-02 | Microsoft Corporation | Context-Aware Recommendation Module Using Multiple Models |
CN102236669A (zh) * | 2010-04-30 | 2011-11-09 | 腾讯科技(深圳)有限公司 | 推荐列表的生成方法和装置、媒体服务器、客户端及方法 |
CN102360364A (zh) * | 2011-09-30 | 2012-02-22 | 奇智软件(北京)有限公司 | 一种应用自动推荐的方法及装置 |
-
2012
- 2012-07-20 CN CN201210253651.2A patent/CN103578007A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110131077A1 (en) * | 2009-12-01 | 2011-06-02 | Microsoft Corporation | Context-Aware Recommendation Module Using Multiple Models |
CN102236669A (zh) * | 2010-04-30 | 2011-11-09 | 腾讯科技(深圳)有限公司 | 推荐列表的生成方法和装置、媒体服务器、客户端及方法 |
CN101859425A (zh) * | 2010-06-02 | 2010-10-13 | 中兴通讯股份有限公司 | 一种提供应用列表的方法及装置 |
CN102360364A (zh) * | 2011-09-30 | 2012-02-22 | 奇智软件(北京)有限公司 | 一种应用自动推荐的方法及装置 |
Non-Patent Citations (4)
Title |
---|
公丽萍: "个性化书籍推荐***研究与设计", 《中国优秀硕士学位论文全文数据库信息科技辑》, vol. 2012, no. 05, 15 May 2012 (2012-05-15), pages 138 - 1637 * |
林立宇等: "基于云计算的电子商务推荐平台的构建分析", 《广东通信技术》, vol. 30, no. 11, 30 November 2010 (2010-11-30), pages 7 - 10 * |
马丽丽: "MapReduce编程模型在日志分析方面的应用", 《HTTP://WWW.IBM.COM/DEVELOPERWORKS/CN/JAVA/JAVA-LO-MAPREDUCE/》, 5 May 2011 (2011-05-05) * |
马春娥等: "基于Apache Mahout构建社会化推荐引擎", 《HTTP://WWW.IBM.COM/DEVELOPERWORKS/CN/JAVA/J-LO-MAHOUT/》, 21 January 2010 (2010-01-21) * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104104729B (zh) * | 2014-07-24 | 2017-10-27 | 福州瑞芯微电子股份有限公司 | 移动设备通用设置方法和*** |
CN104104729A (zh) * | 2014-07-24 | 2014-10-15 | 福州瑞芯微电子有限公司 | 移动设备通用设置方法和*** |
CN104486648A (zh) * | 2014-12-15 | 2015-04-01 | 四川长虹电器股份有限公司 | 一种推荐的方法和服务器 |
CN106503025A (zh) * | 2015-09-08 | 2017-03-15 | 北京搜狗科技发展有限公司 | 一种应用推荐方法和*** |
CN105204356A (zh) * | 2015-09-17 | 2015-12-30 | 小米科技有限责任公司 | 应用的显示方法、装置及终端 |
CN105204356B (zh) * | 2015-09-17 | 2018-09-04 | 小米科技有限责任公司 | 应用的显示方法、装置及终端 |
CN106610970A (zh) * | 2015-10-21 | 2017-05-03 | 上海文广互动电视有限公司 | 基于协同过滤的内容推荐***与方法 |
CN105472460A (zh) * | 2015-11-27 | 2016-04-06 | 广东长虹电子有限公司 | 一种电视应用程序的智能排序方法及*** |
WO2018036307A1 (zh) * | 2016-08-23 | 2018-03-01 | 腾讯科技(深圳)有限公司 | 推送信息订单的信息处理方法、分配方法、装置及存储介质 |
CN106503224A (zh) * | 2016-11-04 | 2017-03-15 | 维沃移动通信有限公司 | 一种根据关键词推荐应用的方法及装置 |
CN106503224B (zh) * | 2016-11-04 | 2019-09-27 | 维沃移动通信有限公司 | 一种根据关键词推荐应用的方法及装置 |
CN107169572A (zh) * | 2016-12-23 | 2017-09-15 | 福州大学 | 一种基于Mahout的机器学习服务组装方法 |
CN107391687A (zh) * | 2017-07-24 | 2017-11-24 | 华中师范大学 | 一种面向地方志网站的混合推荐*** |
CN107391687B (zh) * | 2017-07-24 | 2020-04-03 | 华中师范大学 | 一种面向地方志网站的混合推荐*** |
CN107506488A (zh) * | 2017-09-21 | 2017-12-22 | 程丹秋 | 一种智能音乐推荐*** |
CN108011941A (zh) * | 2017-11-29 | 2018-05-08 | 广东欧珀移动通信有限公司 | 内容推送方法、装置、服务器以及存储介质 |
CN109903107A (zh) * | 2017-12-08 | 2019-06-18 | 北京京东尚科信息技术有限公司 | 用于生成信息的方法和装置 |
CN108520017A (zh) * | 2018-03-21 | 2018-09-11 | 广东欧珀移动通信有限公司 | 应用程序推荐方法、装置、服务器以及存储介质 |
CN108960986A (zh) * | 2018-06-26 | 2018-12-07 | 西安交通大学 | 一种基于网络爬虫的供应商推荐方法 |
CN109299349A (zh) * | 2018-09-11 | 2019-02-01 | 广州视源电子科技股份有限公司 | 应用推荐方法和装置、设备、计算机可读存储介质 |
CN109324955A (zh) * | 2018-09-14 | 2019-02-12 | 科大国创软件股份有限公司 | 一种具有智能推荐功能的it运维***界面生成方法 |
CN109688458A (zh) * | 2019-01-14 | 2019-04-26 | 四川长虹电器股份有限公司 | 基于大数据算法的智能电视云桌面运营***的实现方法 |
CN111460271A (zh) * | 2019-01-19 | 2020-07-28 | 上海易慕网络科技有限公司 | 一种网络资讯的智能个性化推荐算法 |
CN109977316A (zh) * | 2019-03-29 | 2019-07-05 | 厦门铠甲网络股份有限公司 | 一种并行式文章推荐方法、装置、设备及存储介质 |
CN110209931A (zh) * | 2019-05-17 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 媒体内容的推送方法和装置、存储介质、电子装置 |
CN110209931B (zh) * | 2019-05-17 | 2023-08-25 | 腾讯科技(深圳)有限公司 | 媒体内容的推送方法和装置、存储介质、电子装置 |
WO2021012790A1 (zh) * | 2019-07-22 | 2021-01-28 | 平安科技(深圳)有限公司 | 页面数据生成方法、装置、计算机设备及存储介质 |
CN113744021A (zh) * | 2021-02-08 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种推荐方法、装置、计算机存储介质及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103578007A (zh) | 用于智能设备的混合推荐***及其方法 | |
CN106296059B (zh) | 派送网点确定方法及设备 | |
CN103488678B (zh) | 一种基于用户签到相似度的好友推荐*** | |
CN102567511B (zh) | 一种应用自动推荐的方法及装置 | |
CN102075851B (zh) | 一种移动网络中用户偏好的获取方法及*** | |
CN110705683B (zh) | 随机森林模型的构造方法、装置、电子设备及存储介质 | |
CN110688476B (zh) | 一种基于人工智能的文本推荐方法及装置 | |
JP2020509449A (ja) | 警告するための方法と装置 | |
CN102999586B (zh) | 一种网站推荐的方法和装置 | |
CN104063801A (zh) | 一种基于聚类的移动广告推荐方法 | |
Chen | Personalized recommendation system of e-commerce based on big data analysis | |
CN106294787A (zh) | 一种推送信息的方法、装置及电子设备 | |
CN103106285A (zh) | 一种基于信息安全专业社交网络平台的推荐算法 | |
US20210209176A1 (en) | Automated method and system for clustering enriched company seeds into a cluster and selecting best values for each attribute within the cluster to generate a company profile | |
CN103544623A (zh) | 一种基于用户偏好特征建模的Web 服务推荐方法 | |
CN105677780A (zh) | 可拓展的用户意图挖掘方法及其*** | |
CN105989074A (zh) | 一种通过移动设备信息进行推荐冷启动的方法和装置 | |
Sohrabi et al. | A predictive model of tourist destinations based on tourists' comments and interests using text analytics | |
CN104424302A (zh) | 一种同类数据对象的匹配方法和装置 | |
CN102541853A (zh) | 一种利用浏览器地址栏获取应用信息的方法和装置 | |
CN102939774A (zh) | 用于上下文索引的网络资源分段的方法和装置 | |
WO2012102761A1 (en) | Method and system for providing detailed information in an interactive manner in a short message service (sms) environment | |
CN104751354A (zh) | 一种广告人群筛选方法 | |
CN102959539B (zh) | 一种业务交叉时的项目推荐方法及*** | |
CN104484435A (zh) | 交叉分析用户行为的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140212 |