应用程序的推荐方法、装置、计算机设备及存储介质与流程

文档序号:24644847发布日期:2021-04-13 14:44阅读:84来源:国知局
应用程序的推荐方法、装置、计算机设备及存储介质与流程

1.本发明涉及互联网技术领域,具体涉及一种应用程序的推荐方法、装置、计算机设备及存储介质。


背景技术:

2.随着互联网技术的高速发展,如何在大量应用程序(application,简称为app)中选择出适合自己的,用户需要一套有效的推荐技术方案。这里所述的应用程序可以是指电脑端的应用软件,也可以是指手机等移动终端上的应用软件。
3.随着全社会的信息化程度越来越高,人类要学会从大数据中解读他人,更要教会机器从大数据中理解人类,所以市场上出现了很多应用程序个性化推荐方案。目前,一般都直接对特征数据进行etl(是英文extract-transform-load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程)后直接处理,使用模型或者相关算法(mahout或spark mllib等开源算法库)来实现协同过滤,达到对app的个性化推荐。
4.然而发明人现有的这些推荐方案中,通常是基于全部的数据进行计算,当用户量比较大的时候,进行推荐计算的数据量巨大,用户在输入推荐请求之后,推荐结果的输出延时较大,用户体验比较差。


技术实现要素:

5.本发明要解决现有技术中由于需要基于全部数据进行推荐计算,导致开销大、延时高的问题,从而提供一种应用程序的推荐方法、装置、计算机设备及存储介质。
6.本发明的一方面,提供了一种应用程序的推荐方法,包括:接收目标用户发起的应用程序的推荐请求;确定所述目标用户所对应的目标簇,所述目标簇为通过对所有用户使用应用程序的情况进行聚类处理得到的;基于预先设置的协同过滤算法对所述目标用户与所述目标簇内其他用户进行协同过滤,确定出应用程序的推荐结果。
7.可选地,基于预先设置的协同过滤算法对所述目标用户与所述目标簇内其他用户进行协同过滤,确定出应用程序的推荐结果,包括:计算所述目标用户与所述目标簇内其他用户的相似度,所述相似度表示用户之间使用应用程序的相似性;基于所述相似度对所述推荐请求对应的应用程序进行排序,得到所述应用程序的推荐结果。
8.可选地,计算所述目标用户与所述目标簇内其他用户的相似度,包括:
9.确定所述目标簇内所有用户所安装的应用程序,构建用户与应用程序的矩阵,所述矩阵用于表示用户与安装的应用程序的对应关系;
10.计算所述目标用户的矩阵与所述目标簇内其他用户的矩阵的相似度,作为所述目标用户与所述目标簇内其他用户的相似度。
11.可选地,在接收目标用户发起的应用程序的推荐请求之后,还包括:
12.确定所述推荐请求对应的应用程序;
13.利用预先设置的强规则对确定出的应用程序中部分应用程序增加权重或者降低权重,其中,所述权重作用于所述应用程序的推荐排序。
14.可选地,所述强规则包括:基于用户更新或者安装应用程序的时间去干预应用程序的推荐结果,和/或,对超级应用程序进行降低权重处理,其中,所述超级应用程序是指安装量达到预设阈值的应用程序。
15.可选地,确定所述目标用户所对应的目标簇,包括:
16.将所述目标用户与预先聚类得到的用户簇进行匹配,得到与所述目标用户所在的目标簇。
17.可选地,确定所述目标用户所对应的目标簇,包括:
18.获取所有用户使用应用程序的用户数据;
19.利用预先设置的聚类算法基于所述用户数据对所有用户进行聚类,得到多个簇;
20.确定所述目标用户所在的簇,作为所述目标簇。
21.本发明的另一方面,提供了一种应用程序的推荐装置,包括:接收模块,用于接收目标用户发起的应用程序的推荐请求;确定模块,用于确定所述目标用户所对应的目标簇,所述目标簇为通过对所有用户使用应用程序的情况进行聚类处理得到的;推荐模块,用于基于预先设置的协同过滤算法对所述目标用户与所述目标簇内其他用户进行协同过滤,确定出应用程序的推荐结果。
22.可选地,推荐模块包括:计算单元,用于计算所述目标用户与所述目标簇内其他用户的相似度,所述相似度表示用户之间使用应用程序的相似性;排序单元,用于基于所述相似度对所述推荐请求对应的应用程序进行排序,得到所述应用程序的推荐结果。
23.可选地,所述计算单元包括:确定子单元,用于确定所述目标簇内所有用户所安装的应用程序,构建用户与应用程序的矩阵,所述矩阵用于表示用户与安装的应用程序的对应关系;计算子单元,用于计算所述目标用户的矩阵与所述目标簇内其他用户的矩阵的相似度,作为所述目标用户与所述目标簇内其他用户的相似度。
24.可选地,推荐装置还包括:程序确定模块,用于在接收目标用户发起的应用程序的推荐请求之后,确定所述推荐请求对应的应用程序;干预模块,用于利用预先设置的强规则对确定出的应用程序中部分应用程序增加权重或者降低权重,其中,所述权重作用于所述应用程序的推荐排序。
25.可选地,所述强规则包括:基于用户更新或者安装应用程序的时间去干预应用程序的推荐结果,和/或,对超级应用程序进行降低权重处理,其中,所述超级应用程序是指安装量达到预设阈值的应用程序。
26.可选地,确定模块具体用于将所述目标用户与预先聚类得到的用户簇进行匹配,得到与所述目标用户所在的目标簇。
27.可选地,确定模块包括:
28.获取单元,用于获取所有用户使用应用程序的用户数据;
29.聚类单元,用于利用预先设置的聚类算法基于所述用户数据对所有用户进行聚类,得到多个簇;
30.簇确定单元,用于确定所述目标用户所在的簇,作为所述目标簇。
31.本发明的另一方面,提供了一种计算机设备,包括存储器、处理器以及存储在存储
器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
32.本发明的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述方法的步骤。
33.根据本发明实施例,在接收到目标用户的推荐请求之后,通过确定目标用户经过聚类处理后对应的目标簇,然后基于目标簇内的用户与目标用户进行协同过滤,以确定出推荐结果。由于是对用户经过聚类之后的结果,将相似的用户聚类到簇内,针对该簇内的用户进行协同过滤,这样,无需对全部数据进行计算,在提高计算性能的同时,还能够保证查准率。
附图说明
34.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1为本发明实施例中应用程序的推荐方法的流程图;
36.图2为本发明实施例中应用程序的推荐装置的示意图;
37.图3为本发明实施例计算机设备的硬件结构示意图。
具体实施方式
38.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
40.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
41.本发明实施例提供了一种应用程序的推荐方法,本发明实施例的推荐方法可以应用于所有的应用程序推荐的软件或者网站,例如,应用商店等场景。如图1所示,该方法包括:
42.步骤s101,接收目标用户发起的应用程序的推荐请求。
43.目标用户即为查询应用程序的用户,可以通过目标用户登录的用户信息进行识别,例如,用户登录应用商店之后,通过在搜索栏输入相关信息,点击查询键,完成发送推荐请求的过程。应用商店后台可以通过识别用户登录时的用户信息确定出目标用户。上述推荐请求中携带有所要查询的应用程序的关键字和用户信息。例如,当用户需要安装浏览器时,可以在搜索栏输入“浏览器”等关键词。
44.步骤s102,确定所述目标用户所对应的目标簇,所述目标簇为通过对所有用户使用应用程序的情况进行聚类处理得到的。
45.本发明实施例中,先对用户进行聚类,得到多个簇,通过确定目标用户所对应的的
目标簇做后续的协同过滤处理。
46.可选地,作为一种可选的实施方式,本实施例中确定所述目标用户所对应的目标簇,包括:获取所有用户使用应用程序的用户数据;利用预先设置的聚类算法基于所述用户数据对所有用户进行聚类,得到多个簇;确定所述目标用户所在的簇,作为所述目标簇。
47.用户数据包括特征数据和历史行为数据,其中,特征数据可以包括用户的年龄,职业,学历,地区,性别,兴趣爱好等;历史行为数据可以包括:用户浏览的app、使用时长、使用时段等。在获取到用户数据之后,利用聚类算法对用户进行聚类处理,得到多个簇,并进行标签。由于聚类处理所划分的类是未知的,主要依据用户数据来决定,其结果更能体现出用户的类别。本发明实施例所用的聚类算法可以是ap聚类算法(affinity propagation clustering algorithm)。
48.通过获取用户数据来对用户进行聚类能够确定当前与目标用户最新的类别,能够提高推荐的准确性。
49.作为一种可选的实施方式,本发明实施例中,确定所述目标用户所对应的目标簇,包括:将所述目标用户与预先聚类得到的用户簇进行匹配,得到与所述目标用户所在的目标簇。
50.该实施例中,预先基于用户的特征数据对用户进行聚类,得到多个用户簇,该多个用户簇中每个用户簇对应一个类别的用户。在接收到推荐请求之后,可以基于请求中的用户信息来确定目标用户,然后从多个用户簇中查询该目标用户所处的用户簇,从而确定出目标簇。本发明实施例中,由于用户簇的聚类过程计算量大,而用户的特征数据是可以提前获取到的,因此,通过预先聚类的方式可以避免在实时推荐时,无需进行聚类处理,只需要查询到预先聚类的结果,然后确定出用户对应的目标簇,可以进一步降低性能开销,减少计算量。
51.步骤s103,基于预先设置的协同过滤算法对所述目标用户与所述目标簇内其他用户进行协同过滤,确定出应用程序的推荐结果。
52.协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。本发明实施例中,对于目标簇内的用户,通过协同过滤算法向目标用户进行个性化推荐。
53.根据本发明实施例,在接收到目标用户的推荐请求之后,通过确定目标用户经过聚类处理后对应的目标簇,然后基于目标簇内的用户与目标用户进行协同过滤,以确定出推荐结果。由于是对用户经过聚类之后的结果,将相似的用户聚类到簇内,针对该簇内的用户进行协同过滤,这样,无需对全部数据进行计算,在提高计算性能的同时,还能够保证查准率。
54.作为一种可选实施方式,对于上述步骤s103,基于预先设置的协同过滤算法对所述目标用户与所述目标簇内其他用户进行协同过滤,确定出应用程序的推荐结果,包括:计算所述目标用户与所述目标簇内其他用户的相似度,所述相似度表示用户之间使用应用程序的相似性;基于所述相似度对所述推荐请求对应的应用程序进行排序,得到所述应用程序的推荐结果。
55.本发明实施例中,对于同一簇内的用户,是经过聚类算法归类的,其用户之间本身就存在一定的相似性,但是由于聚类的时候所用的用户数据中包含有一些特征数据,并且
用户之间只是客观上存在相似性,并没有能够明确各用户之间的相似的度量。该实施例中,通过计算目标用户与其他同簇内的用户的相似度,该相似度主要表示用户在使用应用程序上的相似性。该相似度的计算基于用户使用的应用程序以及使用应用程序的时长、时段等参数,通过算法计算得到。
56.在计算得到相似度之后,对所有应用程序进行排序,将排序结果作为推荐结果。可以按照用户的相似度值大小对相应的应用程序进行排序,例如四个用户a、b、c、d,对应的应用程序为y1、y2、y3、y4,相似度的从大到小b、c、d、a,那么推荐结果就是y2、y3、y4、y1。如果存在相同应用程序,则进行合并。
57.另一种可选的实施方式中,当一个用户使用多个应用程序时,例如,四个用户a、b、c、d,所有应用程序为y1、y2、y3、y4、y5、y6(一个用户可以使用多个应用程序,其中,用户a对应y1和y2,用户b对应y3和y4,用户c对应y5,用户d对应y6)。计算每个应用程序的排序值,计算公式为:用户的相似度*应用程序的权重。例如,应用程序y1、y2、y3、y4、y5、y6分别对应的权重依次为y1、y2、y3、y4、y5、y6,四个用户a、b、c、d的相似度依次为a、b、c、d,6个应用程序的排序值依次为ay1、ay2、by3、by4、cy5、dy6,然后按照计算得到的排序值进行应用程序的排序。
58.进一步可选地,对于上述实施例中,计算所述目标用户与所述目标簇内其他用户的相似度,包括:确定所述目标簇内所有用户所安装的应用程序,构建用户与应用程序的矩阵,所述矩阵用于表示用户与安装的应用程序的对应关系;计算所述目标用户的矩阵与所述目标簇内其他用户的矩阵的相似度,作为所述目标用户与所述目标簇内其他用户的相似度。
59.本发明实施例中,通过判断应用程序是否安装,来对用户进行分类,构建用户-app矩阵,然后计算用户对应的举证相似度来确定用户的相似度,以基于用户的协同过滤进行个性化推荐。
60.由于用户安装或者更新应用程序的时间以及一些超级app等因素会明显影响推荐结果,本发明实施例中,在进行推荐的过程中,还设置有强规则干预的方式来对推荐结果进行优化调整,以提高推荐的准确率,降低误差,提升用户体验。
61.具体地,本发明实施例在接收目标用户发起的应用程序的推荐请求之后,还包括:确定所述推荐请求对应的应用程序;利用预先设置的强规则对确定出的应用程序中部分应用程序增加权重或者降低权重,其中,所述权重作用于所述应用程序的推荐排序。
62.其中,所述强规则包括:基于用户更新或者安装应用程序的时间去干预应用程序的推荐结果,和/或,对超级应用程序进行降低权重处理,其中,所述超级应用程序是指安装量达到预设阈值的应用程序。
63.本发明实施例中,对于分析出的影响推荐结果的因素进行干预,主要是通过对部分应用程序进行加权或者降权的处理,例如,对于一些超级app,其本身就会有巨大的用户量和安装量,这会使得一些新出的优秀app不具有任何优势,因此,通过识别判断出上述超级app,对其进行降权,从而降低其在推荐结果中的权重使得推荐结果更多地以应用程序本身的质量进行推荐,避免其他因素对结果的影响导致的用户体验差的问题。
64.综上,本发明实施例能够达到如下技术效果:
65.兴趣跟踪及时:考虑用户安装或者更新app的时间及超级app等因素,根据这些因
素作为强规则去干预推荐结果,会使得用户体验更好。
66.性能高:先对用户进行聚类,然后基于聚类后的结果进行用户相似性计算,可以大大减少计算量,提高用户体验。
67.查准率高:在计算用户相似度时,引入根据聚类结果再求解相似用户,提高了查准率,用户体验比较好。
68.本发明实施例还提供了一种应用程序的推荐装置,该装置可以用于执行本本发明上述实施例的推荐方法,如图2所示,该装置包括:接收模块100、确定模块200和推荐模块300。
69.接收模块100,用于接收目标用户发起的应用程序的推荐请求。
70.确定模块200,用于确定所述目标用户所对应的目标簇,所述目标簇为通过对所有用户使用应用程序的情况进行聚类处理得到的。
71.推荐模块300,用于基于预先设置的协同过滤算法对所述目标用户与所述目标簇内其他用户进行协同过滤,确定出应用程序的推荐结果。
72.根据本发明实施例,在接收到目标用户的推荐请求之后,通过确定目标用户经过聚类处理后对应的目标簇,然后基于目标簇内的用户与目标用户进行协同过滤,以确定出推荐结果。由于是对用户经过聚类之后的结果,将相似的用户聚类到簇内,针对该簇内的用户进行协同过滤,这样,无需对全部数据进行计算,在提高计算性能的同时,还能够保证查准率。
73.可选地,推荐模块300包括:计算单元,用于计算所述目标用户与所述目标簇内其他用户的相似度,所述相似度表示用户之间使用应用程序的相似性;排序单元,用于基于所述相似度对所述推荐请求对应的应用程序进行排序,得到所述应用程序的推荐结果。
74.可选地,所述计算单元包括:确定子单元,用于确定所述目标簇内所有用户所安装的应用程序,构建用户与应用程序的矩阵,所述矩阵用于表示用户与安装的应用程序的对应关系;计算子单元,用于计算所述目标用户的矩阵与所述目标簇内其他用户的矩阵的相似度,作为所述目标用户与所述目标簇内其他用户的相似度。
75.可选地,推荐装置还包括:程序确定模块,用于在接收目标用户发起的应用程序的推荐请求之后,确定所述推荐请求对应的应用程序;干预模块,用于利用预先设置的强规则对确定出的应用程序中部分应用程序增加权重或者降低权重,其中,所述权重作用于所述应用程序的推荐排序。
76.可选地,所述强规则包括:基于用户更新或者安装应用程序的时间去干预应用程序的推荐结果,和/或,对超级应用程序进行降低权重处理,其中,所述超级应用程序是指安装量达到预设阈值的应用程序。
77.可选地,确定模块200具体用于将所述目标用户与预先聚类得到的用户簇进行匹配,得到与所述目标用户所在的目标簇。
78.可选地,确定模块200包括:
79.获取单元,用于获取所有用户使用应用程序的用户数据;
80.聚类单元,用于利用预先设置的聚类算法基于所述用户数据对所有用户进行聚类,得到多个簇;
81.簇确定单元,用于确定所述目标用户所在的簇,作为所述目标簇。
82.具体描述参见上述方法实施例,这里不再赘述。
83.本实施例还提供一种计算机设备,如可以执行程序的台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图3所示。需要指出的是,图3仅示出了具有组件21-22的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
84.本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备20的内部存储单元,例如该计算机设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,存储器21还可以既包括计算机设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备20的操作系统和各类应用软件,例如实施例所述的应用程序的推荐装置的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
85.处理器22在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行应用程序的推荐装置,以实现实施例的应用程序的推荐方法。
86.本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储应用程序的推荐装置,被处理器执行时实现实施例的应用程序的推荐方法。
87.显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本申请的保护范围之中。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1