信息推送方法、装置及存储介质
技术领域
本申请实施例涉及软件技术领域,尤其涉及一种信息推送方法、装置及存储介质。
背景技术
在电子设备,例如手机、电脑等中内置有软件管理模块,该软件管理模块用于将软件分门别类,当用户点击某个类别时,展现给用户该类软件排序的软件列表,向用户推荐软件。
目前传统软件列表的排序方法通常是,将其自身产品或者与其有投资关系的软件产品置前,将竞争对手的软件产品置后。或者,将给了推广费用的商家的软件产品置前。
在实现本申请过程中,发明人发现现有技术中至少存在如下问题,目前的软件列表的排序方法会导致展现给各用户的软件列表基本相同,无法满足用户需求。
发明内容
本申请实施例提供一种信息推送方法、装置及存储介质,以向用户推送用户需要的软件信息。
第一方面,本申请实施例提供一种信息推送方法,包括:
基于预设时间段内访问软件管理模块的M个用户的用户信息,确定K个第一用户中每个第一用户的至少一个相似用户,K个第一用户为M个用户中的部分用户或全部用户,软件管理模块用于维护N个软件的软件信息,M、N、K均为大于1的整数;
针对每个第一用户,根据第一用户的每个相似用户对N个软件中第一用户未评分软件的评分,估计第一用户对未评分软件的第一评分;
根据每个第一用户对N个软件的评分,向目标用户推送未安装软件的软件信息,第一用户对N个软件的评分包括第一用户对N个软件中已评分软件的评分和未评分软件的第一评分。
本申请的实施例提供的技术方案可以包括以下有益效果:通过基于预设时间段内访问软件管理模块的M个用户的用户信息,确定K个第一用户中每个第一用户的至少一个相似用户;针对每个第一用户,根据该第一用户的每个相似用户对N个软件中该第一用户未评分软件的评分,估计该第一用户对未评分软件的第一评分,这样可以获得K个第一用户中每个第一用户对N个软件中每个软件的评分;接着,根据每个第一用户对N个软件的评分,向目标用户推送未安装软件的软件信息,可以实现向目标用户推荐高评分的软件,以满足目标用户的需求。另外,本申请实施例通过第一用户的相似用户对该第一用户未评分软件的评分,准确地估计出该第一用户对未评分软件的评分,基于这些准确的软件评分来向目标用户推荐软件时,可以提高软件推荐的准确性。
在第一方面的一种可能的实现方式中,上述根据每个第一用户对N个软件的评分,向目标用户推送未安装软件的软件信息,包括:根据每个第一用户对N个软件的评分,估计目标用户对每个未安装软件的第二评分;根据目标用户对每个未安装软件的第二评分,向目标用户推送未安装软件的软件信息。
本申请的实施例提供的技术方案可以包括以下有益效果:通过每个第一用户对N个软件的评分,来估计目标用户对每个未安装软件的第二评分,并根据第二评分,向目标用户推送未安装软件的软件信息,实现向目标用户推送所需的软件,进而提高软件推送的准确性和有用性。
在第一方面的一种可能的实现方式中,上述根据每个第一用户对N个软件的评分,估计目标用户对每个未安装软件的第二评分,包括:根据每个第一用户对N个软件的评分,使用协同过滤方法,估计目标用户对每个未安装软件的第二评分。
在第一方面的一种可能的实现方式中,上述根据目标用户对每个未安装软件的第二评分,向目标用户推送未安装软件的软件信息,包括:获取目标用户未安装的各软件中每两个软件之间的相似度;根据每两个软件之间的相似度,对目标用户未安装的各软件进行分类;据同一类中目标用户未安装的各软件的第二评分,对同一类中各软件进行排序,并将排序后的软件信息推送给用户。这样通过分类向目标用户推荐软件,便于目标用户根据自己需要的软件类型,从对应的软件分类中下载软件。
在第一方面的一种可能的实现方式中,上述目标用户未安装的各软件中每两个软件之间的相似度,包括:获取目标用户未安装的各软件的属性信息;根据未安装的各软件的属性信息,确定目标用户未安装的各软件中每两个软件之间的相似度。
在第一方面的一种可能的实现方式中,上述根据用户的每个相似用户对N个软件中第一用户未评分软件的评分,估计第一用户对未评分软件的第一评分,包括:根据第一用户的软件评分均值、第一用户与每个相似用户的相似度、每个相似用户的软件评分均值,以及每个相似用户对第一用户未评分软件的评分,确定第一用户对未评分软件的第一评分;其中,第一用户的软件评分均值为第一用户对N个软件中第一用户对应的已评分软件的评分均值,相似用户的软件评分均值为相似用户对N个软件中相似用户对应的已评分软件的均值。
在第一方面的一种可能的实现方式中,上述基于预设时间段内访问软件管理模块的M个用户的用户信息,从M个用户中,确定K个第一用户中每个用户的至少一个相似用户,包括:针对K个第一用户中的每个第一用户,根据M个用户的用户信息,确定第一用户与M个用户中的每个用户之间的相似度;根据第一用户与M个用户中的每个用户之间的相似度,从M个用户中确定第一用户的至少一个相似用户。
其中,根据第一用户与M个用户中的每个用户之间的相似度,从M个用户中确定第一用户的至少一个相似用户包括但不限于如下几种方式:
方式一,根据第一用户与M个用户中的每个用户之间的相似度,将M个用户中与第一用户的相似度大于预设值的用户,确定为第一用户的至少一个相似用户。
方式二,对第一用户与M个用户中的每个用户之间的相似度从大到小进行排序,将前预设数量个相似度对应的用户,确定为第一用户的至少一个相似用户。
通过上述方式一或方式二,可以准确且快速地确定出第一用户的至少一个相似用户。
可选的,上述K个第一用户中包括目标用户。
可选的,软件的属性信息包括:软件的安装时间、软件的使用频率、软件的类型、软件的下载频率以及软件的安装位置中的至少一个。
可选的,用户信息包括:年龄、性别、职业、教育背景中的至少一个。
第二方面,本申请实施例提供一种信息推送装置,包括:
处理模块,用于基于预设时间段内访问软件管理模块的M个用户的用户信息,确定K个第一用户中每个第一用户的至少一个相似用户,K个第一用户为M个用户中的部分用户或全部用户,软件管理模块用于维护N个软件的软件信息,M、N、K均为大于1的整数;
估计模块,用于针对每个第一用户,根据第一用户的每个相似用户对N个软件中第一用户未评分软件的评分,估计第一用户对未评分软件的第一评分;
推送模块,用于根据每个第一用户对N个软件的评分,向目标用户推送未安装软件的软件信息,第一用户对N个软件的评分包括第一用户对N个软件中已评分软件的评分和未评分软件的第一评分。
在第二方面的一种可能的实现方式中,估计模块,还用于根据每个第一用户对N个软件的评分,估计目标用户对每个未安装软件的第二评分;
推送模块,具体用于根据目标用户对每个未安装软件的第二评分,向目标用户推送未安装软件的软件信息。
在第二方面的一种可能的实现方式中,估计模块,具体用于根据每个第一用户对N个软件的评分,使用协同过滤方法,获得目标用户对每个未安装软件的第二评分。
在第二方面的一种可能的实现方式中,处理模块,还用于获取目标用户未安装的各软件中每两个软件之间的相似度;根据每两个软件之间的相似度,对目标用户未安装的各软件进行分类;
推送模块,具体用于根据同一类中目标用户未安装的各软件的第二评分,对同一类中各软件进行排序,并将排序后的软件信息推送给用户。
在第二方面的一种可能的实现方式中,处理模块,具体用于获取目标用户未安装的各软件的属性信息;根据未安装的各软件的属性信息,确定目标用户未安装的各软件中每两个软件之间的相似度。
在第二方面的一种可能的实现方式中,估计模块,具体用于根据第一用户的软件评分均值、第一用户与每个相似用户的相似度、每个相似用户的软件评分均值,以及每个相似用户对第一用户未评分软件的评分,确定第一用户对未评分软件的第一评分;
其中,第一用户的软件评分均值为第一用户对N个软件中第一用户对应的已评分软件的评分均值,相似用户的软件评分均值为相似用户对N个软件中相似用户对应的已评分软件的均值。
在第二方面的一种可能的实现方式中,处理模块,具体用于针对K个第一用户中的每个第一用户,根据M个用户的用户信息,确定第一用户与M个用户中的每个用户之间的相似度;根据第一用户与M个用户中的每个用户之间的相似度,从M个用户中确定第一用户的至少一个相似用户。
在第二方面的一种可能的实现方式中,处理模块,具体用于根据第一用户与M个用户中的每个用户之间的相似度,将M个用户中与第一用户的相似度大于预设值的用户,确定为第一用户的至少一个相似用户。
在第二方面的一种可能的实现方式中,处理模块,具体用于对第一用户与M个用户中的每个用户之间的相似度从大到小进行排序,将前预设数量个相似度对应的用户,确定为第一用户的至少一个相似用户。
可选的,K个第一用户中包括目标用户。
可选的,软件的属性信息包括:软件的安装时间、软件的使用频率、软件的类型、软件的下载频率以及软件的安装位置中的至少一个。
可选的,用户信息包括:年龄、性别、职业、教育背景中的至少一个。
第三方面,本申请实施例提供一种电子设备,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现上述第一方面任一项所述的信息推送方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质包括计算机指令,当所述指令被计算机执行时,使得所述计算机实现如第一方面任一项所述的信息推送方法。
第五方面,本申请实施例提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,计算机的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得计算机实施第一方面任一所述的信息推送方法。
本申请实施例提供的信息推送方法、装置及存储介质,通过预设时间段内访问软件管理模块的M个用户的用户信息,确定K个第一用户中每个第一用户的至少一个相似用户,其中,K个第一用户为M个用户中的部分用户或全部用户。接着,针对每个第一用户,根据该第一用户的每个相似用户对N个软件中该第一用户未评分软件的评分,估计该第一用户对未评分软件的第一评分,这样可以获得K个第一用户中每个第一用户对N个软件中每个软件的评分。然后,根据每个第一用户对N个软件的评分,向目标用户推送未安装软件的软件信息,可以实现向目标用户推荐高评分的软件,以满足目标用户的需求。另外,本申请实施例通过第一用户的相似用户对该第一用户未评分软件的评分,准确地确定出该第一用户对未评分软件的评分,基于这些准确的软件评分来向目标用户推荐软件时,可以提高软件推荐的准确性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例涉及的一种应用场景图;
图2为本申请实施例涉及的一种用户界面图;
图3为本申请实施例涉及的另一种用户界面图;
图4为本申请实施例涉及的信息推送方法的一种流程示意图;
图5为本申请实施例提供的信息推送方法的另一流程示意图;
图6为本申请实施例涉及的软件推送界面示意图;
图7为本申请实施例提供的信息推送方法的又一流程示意图;
图8为本申请实施例涉及的软件分类界面示意图;
图9为本申请实施例涉及的软件推送界面示意图;
图10为本申请实施例提供的信息推送装置的一种结构示意图;
图11为本申请实施例涉及的电子设备的框图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1为本申请实施例涉及的一种应用场景图,包括:至少一个终端设备、网络和服务器,其中,终端设备可以通过网络1004与服务器1005进行通信。
终端设备:可以是无线终端设备也可以是有线终端设备,无线终端设备可以是指一种具有无线收发功能的设备,可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上(如轮船等);还可以部署在空中(例如飞机、气球和卫星上等)。如图1所示,终端设备可以是手机(mobile phone)1001、平板电脑(Pad)1002、电脑1003、以及虚拟现实(Virtual Reality,VR)终端设备、增强现实(Augmented Reality,AR)终端设备、工业控制(industrial control)中的无线终端设备、无人驾驶(self driving)中的无线终端设备、远程医疗(remote medical)中的无线终端设备、智能电网(smart grid)中的无线终端设备、运输安全(transportation safety)中的无线终端设备、智慧城市(smart city)中的无线终端设备、智慧家庭(smart home)中的无线终端设备等等,在此不作限定。
上述各终端设备上安装有软件管理模块,该软件管理模块用于维护N个软件,用户可以访问终端设备上的软件管理模块,以实现软件安装。
上述软件管理模块可以软件商城、应用商城等。
下面结合图1、图2和图3,对软件下载过程进行简要介绍:
如图2所示,用户点击用户界面上的软件管理模块的图标,打开软件管理模块,跳转至图3。如图3所示,软件管理模块包括多个软件的软件图标,用户通过选择软件图标,来下载对应的软件。例如,用户点击软件1的图标,终端设备检查到用户点击软件1的图标后,通过网络1004向服务器1005发送软件下载请求,该软件下载请求中包括软件1的标识。服务器1005接收到终端设备发送的软件下载请求后,将软件1的安装包发送给终端设备。终端设备接收到软件1的压缩包后,在终端设备上安装该软件1。
如图3所示,在软件管理模块中,各软件在软件列表中排序。目前,软件列表的排序方法通常是,将商家将自己的软件产品排在前面,例如,软件管理模块为商家A,这样在软件列表排序时,将商家A的软件产品排列在前面或者将与商家A具有关系的软件产品排列在前面,将竞争对手的软件产品置后。
由此可知,目前软件列表的排序方法会导致展现给各用户的软件列表基本相同,且无法将真正评分高的软件推荐给用户,不能满足用户的需求。
为了解决上述技术问题,本申请实施例提供的信息推送方法,基于预设时间段内访问软件管理模块的M个用户的用户信息,确定K个第一用户中每个第一用户的至少一个相似用户,接着,针对每个第一用户,根据该第一用户的每个相似用户对N个软件中该第一用户未评分软件的评分,估计该第一用户对未评分软件的第一评分,这样可以每个第一用户对N个软件中每个软件的评分。然后,根据每个第一用户对N个软件的评分,向目标用户推送未安装软件的软件信息,可以实现向用户推荐高评分的软件,以满足用户需要。
另外,本申请实施例通过第一用户的相似用户对该第一用户未评分软件的评分,准确地估计出该第一用户对未评分软件的评分,基于这些准确的软件评分来向目标用户推荐软件时,可以提高软件推荐的准确性。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图4为本申请实施例涉及的信息推送方法的一种流程示意图。如图2所示,本申请实施例的方法包括:
S10、基于预设时间段内访问软件管理模块的M个用户的用户信息,确定K个第一用户中每个第一用户的至少一个相似用户。
其中,由上述描述可知,软件管理模块用于维护N个软件的软件信息。
K个第一用户为M个用户中的部分用户或全部用户,上述M、N、K均为大于1的整数。
本申请实施例的执行主体为具有信息推送功能的装置,例如信息推送装置,该信息推送装置可以为单独的电子设备,也可以为电子设备中的一部分,例如为电子设备中的处理器。
可选的,上述电子设备为图1所示的服务器。
本申请实施例中预设时间段为历史时间段,例如获取前6个月内访问管理模块的M个用户的用户信息。
上述M可以根据实际需要进行配置,例如在6个月内访问软件管理模块的用户有10万个,这样可以从这10万个用户中选择5万个用户,并获取这5万个用户的用户信息,用于后续的软件评分过程。
获取预设时间段内M个用户的用户信息的过程为:用户在手机或电脑上,在使用别的软件如交友、婚恋、贷款等应用程序的过程中,会留下自己的用户信息,这样可以从这些应用程序中获取M个用户的用户信息。
可选的,用户信息可以包括如下的至少一个:用户的年龄、性别、收入、职业、教育背景、公积金等。
根据上述步骤,获得预设时间段内访问软件管理模块的M个用户的用户信息后,从这M个用户中选择K个用户作为第一用户。接着,根据M个用户的用户信息,确定这K个第一用户中每一个第一用户的至少一个相似用户。
以K个第一用户中的一个第一用户X为例,对确定第一用户X的至少一个相似用户的过程进行说明。
具体的,将第一用户X的用户信息与M个用户中每一个用户的用户信息进行对比,从这M个用户中确定至少一个用户作为第一用户X的相似用户。例如,将M个用户中教育背景与第一用户X相似的用户作为第一用户X的相似用户,或者,将M个用户中职业与第一用户X相似的用户作为第一用户X的相似用户。
在一些实施例中,上述S10中确定第一用户的至少一个相似用户的过程可以包括如下步骤A和步骤B。
步骤A、针对每个第一用户,根据M个用户的用户信息,确定第一用户与M个用户中的每个用户之间的相似度。
在一种示例中,可以根据如下公式(1),确定第一用户与M个用户中每一个用户的相似度,
其中,w(Ai)是用户信息中的各个信息在相似度计算中所占的权重,例如用户信息中的职业信息在相似度计算中所占的权重为0.1,例如用户信息中的教育背景信息在相似度计算中所占的权重为0.2,需要说明的是上述0.1和0.2只是一种示例,各信息在相似度计算中所占的权重根据实际需要确定,本申请实施例对此不做限制。
q代表用户信息所包括的信息个数,例如用户信息包括:用户的年龄、性别、收入、职业和教育背景,则q为5。
a_sim(AXi,AYi)代表第一用户X和M个用户中的用户Y在第i个属性上地相似度。
s(X,Y)代表第一用户X和M个用户中的用户Y之间的相似度。
参照上述公式(1)可以确定出K个第一用户中的每个第一用户与M个用户中的每个用户两两之间的相似度。
步骤B、根据该第一用户与M个用户中的每个用户之间的相似度,从M个用户中确定该第一用户的至少一个相似用户。
其中,根据该第一用户与M个用户中的每个用户之间的相似度,确定该第一用户的至少一个相似用户的方式包括但不限于如下几种:
方式一,根据该第一用户与M个用户中的每个用户之间的相似度,将M个用户中与该第一用户的相似度大于预设值的用户,确定为该第一用户的至少一个相似用户。
以上述第一用户X为例,参照上述公式(1)确定出第一用户X与M个用户中每一个用户之间的相似度,从这些相似度中选择相似度大于预设值的相似度,将大于预设值的相似度对应的用户确定为第一用户X的相似用户。例如,M个用户中的用户A3、用户A8和用户A100这3个用户与第一用户X之间的相似度大于预设值,则将用户A3、用户A8和用户A100确定为第一用户X的相似用户。
在该方式下,若第一用户X与M个用户中的每个用户之间的相似度均小于预设值时,则从第一用户X与M个用户中的每个用户之间的相似度中选择L个最大的相似度,将这L个最大的相似度对应的用户确定为第一用户X的相似用户,其中L为大于1等于的正整数。
方式二,对该第一用户与M个用户中的每个用户之间的相似度从大到小进行排序,将前预设数量个相似度对应的用户,确定为第一用户的至少一个相似用户。
对第一用户X与M个用户中的每个用户之间的相似度从大到小进行排序,如表1所示:
表1
(第一用户X,其他用户) |
相似度 |
(X,A3) |
s(X,A3) |
(X,A8) |
s(X,A8) |
… |
… |
(X,Aj) |
s(X,Aj) |
… |
… |
(X,AM) |
s(X,AM) |
表1中,Aj表示M个用户中的第j个用户,s(X,Aj)表示第一用户X与M个用户中的第j个用户Aj之间的相似度。
将表1中前预设数量个(例如前2个)相似度对应的用户确定为第一用户X的相似用户,例如确定M个用户中的用户A3和用户A8为第一用户X的相似用户。
参照上述方式一或方式二的方法,可以从M个用户中,确定出K个第一用户中每个第一用户的至少一个相似用户。
需要说明的是,若K等于M,则可以根据上述方式一或方式二,可以确定出M个用户两两之间的相似度。
可选的,上述K个第一用户包括目标用户,目标用户为本申请实施例的研究对象,也就是说通过根据本申请实施所述的信息推送方法,为目标用户推送未安装软件的软件信息。
S11、针对每个第一用户,根据该第一用户的每个相似用户对N个软件中该第一用户未评分软件的评分,估计该第一用户对未评分软件的第一评分。
在软件使用过程中,K个第一用户中的每个第一用户可以对安装的软件进行评分,这样可以从以往第一用户对软件的评分中,获得K个第一用户中每个第一用户对N个软件中已评分软件的评分,如表2所示,其中已评分软件为第一用户已经评过分的软件。
表2
U |
l1 |
l2 |
… |
li |
… |
lN |
U1 |
R11 |
null |
… |
null |
… |
RlN |
U2 |
null |
R22 |
… |
R2i |
… |
null |
… |
… |
… |
… |
… |
… |
… |
UX |
null |
RX2 |
… |
RXi |
… |
null |
… |
… |
… |
… |
… |
… |
… |
UK |
R1K |
null |
… |
RKi |
… |
RKN |
其中,UX代表第一用户X,K代表第一用户个数,N代表软件个数,li代表软件i,RXi表示第一用户X对软件i的评分,可以将软件i记为第一用户X的已评分软件,null表示第一用户还没有评分的软件,一般初始化为0。
以第一用户X为例,根据上述表2可以获得第一用户X对N个软件中的未评分软件,即评分为null的软件,例如软件l1、lN等。根据第一用户X的每个相似用户对第一用户X未评分软件的评分,来确定第一用户X对未评分软件的第一评分。例如,根据第一用户X的每个相似用户对软件l1、lN的评分,来确定第一用户X对软件l1、lN的第一评分。
在一些实施例中,可以将第一用户的每个相似用户对第一用户未评分软件的评分均值,作为第一用户对该未评分软件的第一评分。例如,将第一用户X的每个相似用户对软件l1的评分均值,作为第一用户X对软件l1的第一评分。
在一些实施例中,上述S11包括如下S111:
S111、根据该第一用户的软件评分均值、该第一用户与每个相似用户的相似度、每个相似用户的软件评分均值,以及每个相似用户对该第一用户未评分软件的评分,确定该第一用户对未评分软件的第一评分;
其中,该第一用户的软件评分均值为该第一用户对N个软件中该第一用户对应的已评分软件的评分均值。例如,第一用户X对N个软件中的10个软件进行了评分,这样可以将第一用户X对这10软件的评分均值,作为第一用户X的软件评分均值。
其中,相似用户的软件评分均值为相似用户对N个软件中相似用户对应的已评分软件的均值。例如,第一用户X的相似用户Z为例,相似用户Z对N个软件中的20个软件进行了评分,这样可以将相似用户Z对这20软件的评分均值,作为相似用户Z的软件评分均值。
其中,参照上述表1,可以获得该第一用户与每个相似用户的相似度。
其中,参照上述表2,可以获得该第一用户的每个相似用户对该第一用户未评分软件的评分。
在一些实施例中,根据如下公式(2)来确定该第一用户对未评分软件的第一评分。
其中,RX代表第一用户X的软件评分均值;s(X,Y)代表第一用户X和用户Y之间的相似度;RY,i代表用户Y对软件i的评分;RY代表用户Y的软件评分均值;NBS-u代表第一用户X的相似用户的集合。
根据上述公式(2)可以确定出K个第一用户中每一个第一用户对其未评分软件的第一评分。
需要说明的是,若该第一用户的相似用户中有一个或多个相似用户,对该第一用户未评分软件也没有评分,此时,获得该第一用户的每个相似用户对该第一用户未评分软件的评分的方式包括但不限于如下两种:
方式一,在第一用户的各相似用户中,若一个或多个相似用户对第一用户未评分软件也没有评分时,将这一个或多个相似用户对第一用户未评分软件的评分记为0。
方式二,在第一用户的各相似用户中,若一个或多个相似用户对第一用户未评分软件也没有评分时,则根据上述S10的方法,确定这一个或多个相似用户中每一个相似用户对应的相似用户,为例便于阐述,将第一用户的相似用户记为第一相似用户,将第一相似用户的相似用户记为第二相似用户。根据第二相似用户对第一相似用户未评分的软件的评分,确定第一相似用户的软件评分。
举例说明,假设第一用户对软件1没有评分,经查表2,发现第一用户的第一相似用户2对软件1也没有评分,则根据上述S10的方法,确定第一相似用户2的至少一个相似用户,记为第二相似用户,根据至少一个第二相似用户对软件1的评分来确定第一相似用户2对软件1的评分,以此类推。
在一种可能的实现方式中,可以将第一用户对其未评分软件的第一评分填充至表2中,获得表3,该新的表3中包括了每一个第一用户对N个软件中每一个软件的评分。
表3
U |
l1 |
l2 |
… |
li |
… |
lN |
U1 |
R11 |
R’12 |
… |
R’1i |
… |
RlN |
U2 |
R’21 |
R22 |
… |
R2i |
… |
R’2N |
… |
… |
… |
… |
… |
… |
… |
UX |
R’X1 |
RX2 |
… |
RXi |
… |
R’XN |
… |
… |
… |
… |
… |
… |
… |
UK |
RK1 |
R’K2 |
… |
RKi |
… |
RKN |
其中,R’XN代表第一用户对未评分的软件N的第一评分,RXi表示第一用户X对已评分软件i的评分。
S12、根据每个第一用户对N个软件的评分,向目标用户推送未安装软件的软件信息。
其中,第一用户对N个软件的评分包括第一用户对N个软件中已评分软件的评分和未评分软件的第一评分。
参照上述表3所示,表3中记录了K个第一用户中每一个第一用户对N个软件中的每一个软件的评分,这些评分中包括第一用户对已评分软件的评分,例如RXi,还包括第一用户对未评分软件的第一评分,例如R’XN、R’2N。
接着,根据每个第一用户对N个软件的评分,向目标用户推送未安装软件的软件信息。例如,根据每个第一用户对N个软件的评分,获得N个软件中每一个软件的总评分(或平均值),根据软件的总评分(或平均值)对N个软件进行排序,并从中剔除掉目标用户已安装的软件,获得目标用户未安装的软件信息列表,将该软件信息列表推送给目标用户。
本申请实施例提供的信息推送方法,通过预设时间段内访问软件管理模块的M个用户的用户信息,确定K个第一用户中每个第一用户的至少一个相似用户,其中,K个第一用户为M个用户中的部分用户或全部用户。接着,针对每个第一用户,根据该第一用户的每个相似用户对N个软件中该第一用户未评分软件的评分,估计该第一用户对未评分软件的第一评分,这样可以获得K个第一用户中每个第一用户对N个软件中每个软件的评分。然后,根据每个第一用户对N个软件的评分,向目标用户推送未安装软件的软件信息,可以实现向目标用户推荐高评分的软件,以满足目标用户的需求。另外,本申请实施例通过第一用户的相似用户对该第一用户未评分软件的评分,准确地确定出该第一用户对未评分软件的评分,基于这些准确的软件评分来向目标用户推荐软件时,可以提高软件推荐的准确性。
在上述实施例的基础上,下面结合图5对上述S12根据K个第一用户中每个第一用户对N个软件的评分,向目标用户推送未安装软件的软件信息的过程进行详细描述。
图5为本申请实施例提供的信息推送方法的另一流程示意图。如图5所示,上述S12包括:
S121、根据每个第一用户对N个软件的评分,估计目标用户对每个未安装软件的第二评分。
其中,根据每个第一用户对N个软件的评分,估计目标用户对每个未安装软件的第二评分的方式包括但不限于如下几种:
方式一,从N个软件中剔除目标用户已安装的软件,获得目标用户未安装的软件。将K个第一用户对目标用户未安装的软件的评分均值,作为目标用户对未安装软件的第二评分。
方式二,根据每个第一用户对N个软件的评分,使用协同过滤方法,估计目标用户对每个未安装软件的第二评分。
可选的,上述协同过滤方法(Collaborative Filtering,CF)可以为User-BasedCF算法。
其中,User-Based CF算法主要依据用户的历史行为数据产生推荐,如果一个用户不存在任何历史行为数据,那么该算法将不能计算出该用户地相似近邻用户,也就不能实现对该用户进行软件推荐,这种缺陷称为新用户的冷启动现象。如果一个用户存在历史行为数据,那么就可以利用相似度的计算公式得到与该用户历史行为相似的最近邻,依据最近邻对软件地评分数据来给目标用户未评分的软件进行预评分,按照预评分为目标用户产生Top-N推荐。User-Based CF算法实现比较简单,可分为三步进行描述:构建稀疏评分矩阵模型、计算得到最近邻、估计评分并且产生Top-N推荐。
也就说是,本申请实施例,可以将表3作为User-Based CF算法中的稀疏评分矩阵模型,来计算目标用户的至少一个相似用户,目标用户的至少一个相似用户构成目标用户的最近邻集合。根据目标用户的相似用户对目标用户未安装的软件的评分,来估计目标用户对未安装软件的第二评分。
本申请实施例,不仅将用户自身固有的属性,如用户的年龄、性别、职业,作为计算相似用户的因素,以此来排除干扰邻用户,提高用户间相似度地准确度。基于准确的相似用户对软件的评分,来向目标用户推荐软件时,提高软件推荐的准确性。
S122、根据目标用户对每个未安装软件的第二评分,向目标用户推送未安装软件的软件信息。
在一些实施例中,根据上述S121估计出目标用户对每个未安装软件的第二评分,对第二评分进行排序,例如从大到小排序,选择排列在前面的预设数量个第二评分对应的未安装软件,将这些未安装软件的软件信息推送给目标用户。例如图6所示,图6为推送给目标用户未安装软件的软件信息。
其中,软件信息包括:软件名称和软件图标,可选的,如图6所示,软件信息还包括对软件类型的说明,例如,软件1为影音编辑类软件,软件2为商城类软件。可选的,如图6所示,为了便于安装软件,在软件名称后面还包括安装选项,用户选择该安装选项,可以实现在终端设备上安装对应的软件。
在一些实施例中,如图7所示,上述S122根据目标用户对每个未安装软件的第二评分,向目标用户推送未安装软件的软件信息,可以包括:
S1221、获取目标用户未安装的各软件中每两个软件之间的相似度。
在实际应用过程中,目标用户安装软件后,会将该软件的相关信息备份到云端与该目标用户ID(即用户标识)对应的软件列表中。该软件的相关信息包括软件名称、软件的安装时间、软件的安装位置等信息。这样可以通过目标用户备份到云端(即服务器端)的软件列表获取目标用户已安装软件名称。
例如,目标用户的软件列表在服务器端的存储形式为:(userID,软件列表)。软件列表包括目标用户机器上安装的所有软件的名称,各个软件名称之间用逗号隔开。例如,用户1的软件列表为:(userID_1,软件a,软件b,软件c,.......),表示ID为userID_1的目标用户安装了软件a,软件b,软件c。
这样,可以通过目标用户的软件列表,获取目标用户已安装软件名称,再将目标用户已安装软件名称与软件管理模块维护的N个软件的软件名称进行对比,从这N个软件中获得目标用户未安装的软件名称。接着,获取目标用户未安装的各软件中每两个软件之间的相似度。
其中,获取目标用户未安装的各软件中每两个软件之间的相似度的方式包括但不限于如下几种:
方式一,软件管理模块维护的N个软件中,预先确定有每两个软件之间的相似度,这样,可以直接从软件管理模块预先确定的软件之间的相似度,来获得目标用户未安装的各软件中每两个软件之间的相似度。
方式二,上述获取目标用户未安装的各软件中每两个软件之间的相似度的过程可以包括步骤C和步骤D。
步骤C、获取目标用户未安装的各软件的属性信息。
其中,软件的属性信息包括:软件的安装时间、安装位置、软件类型、使用频率、下载频率中的至少一个。
用户的终端设备上的软件管理模块中保存有该用户已安装的各软件的属性信息,这样可以从各用户对应的软件管理模块中获得软件的属性信息。
以目标用户未安装的软件d为例,软件d的安装时间可以理解为用户安装软件d的时间的平均值。或者,软件d的安装时间为用户安装软件d的安装时间的峰值,例如,M个用户中多数用户在时间段1内安装了软件d,则将时间段1作为软件d的安装时间。
软件d的安装位置可以理解为多数用户对软件d的安装位置,例如,M个用户中多数用户将软件d安装在e盘,则将e盘作为软件d的安装位置。
步骤D、根据未安装的各软件的属性信息,确定目标用户未安装的各软件中每两个软件之间的相似度。
在一种可能的实现方式中,根据如下公式(3),确定目标用户未安装的各软件中每两个软件之间的相似度。
其中,p表示软件的属性个数,例如,软件的属性信息包括:软件的安装时间、安装位置、软件类型、使用频率和下载频率,则p为5。
其中,aiUj表示软件iU的第j个属性值。aiVj表示软件iV的第j个属性值。
根据上述公式(3)可以确定出目标用户未安装的各软件中每两个软件之间的相似度。
S1222、根据每两个软件之间的相似度,对目标用户未安装的各软件进行分类。
根据上述步骤确定出的目标用户未安装的各软件中每两个软件之间的相似度后,对目标用户未安装的各软件进行分类,将相似或相同的软件聚为同一类,例如,按照预设阈值β,相似度大于预设阈值β的软件聚为同一类。
S1223、根据同一类中目标用户未安装的各软件的第二评分,对同一类中各软件进行排序,并将排序后的软件信息推送给用户。
根据上述步骤,对目标用户未安装的各软件进行分类后,针对每一个分类,根据该同一类中目标用户未安装的各软件的第二评分,对该同一类中各软件进行排序。举例说明,假设根据上述步骤,将目标用户未安装的各软件分成3类,第一类(例如为影像编辑)包括3个软件,分别为软件a、软件b和软件c,第二类(例如为商城)包括两个软件,分别为软件d和软件e,第三类(例如为美食)包括3个软件,分别为软件f、软件g和软件h。其中,第一类中的3个软件,按照第二评分从大到小排序为:软件c、软件b和软件a;第二类中的2个软件,按照第二评分从大到小排序为:软件e、软件d;第三类中的3个软件,按照第二评分从大到小排序为:软件g、软件f和软件h。
根据上述步骤,对同一类中各软件进行排序后,将排序后的软件信息推送给目标用户,如图8和图9所示,具体的,图8为目标用户未安装的各软件分类示意图,用户点击对应的类别,可以展示该类中软件的排序,例如,用户点击图8中的第一类(例如为影像编辑),则调整至图9,展示第一类中软件的排序,用户可以点击对应的安装选择来安装软件,已达到向目标用户推送所需的软件的目的。
本申请实施例,根据每个第一用户对N个软件的评分,估计目标用户对每个未安装软件的第二评分,根据目标用户对每个未安装软件的第二评分,向目标用户推送未安装软件的软件信息,实现向目标用户推送所需的软件,进而提高软件推送的准确性和有用性。在一种示例中,目标用户推送未安装软件的软件信息可以是:获取目标用户未安装的各软件中每两个软件之间的相似度,根据每两个软件之间的相似度,对目标用户未安装的各软件进行分类,根据同一类中目标用户未安装的各软件的第二评分,对同一类中各软件进行排序,并将排序后的软件信息推送给用户。这样通过分类向目标用户推荐软件,便于目标用户根据自己需要的软件类型,从对应的软件分类中下载软件。
图10为本申请实施例提供的信息推送装置的一种结构示意图。该信息推送装置可以是电子设备,也可以是电子设备的部件(例如,集成电路,芯片等等),该电子设备可以为图1所示的服务器。如图10所示,该信息推送装置100可以包括:处理模块110、估计模块120和推送模块130。
处理模块110,用于基于预设时间段内访问软件管理模块的M个用户的用户信息,确定K个第一用户中每个第一用户的至少一个相似用户,K个第一用户为M个用户中的部分用户或全部用户,软件管理模块用于维护N个软件的软件信息,M、N、K均为大于1的整数;
估计模块120,用于针对每个第一用户,根据第一用户的每个相似用户对N个软件中第一用户未评分软件的评分,估计第一用户对未评分软件的第一评分;
推送模块130,用于根据每个第一用户对N个软件的评分,向目标用户推送未安装软件的软件信息,第一用户对N个软件的评分包括第一用户对N个软件中已评分软件的评分和未评分软件的第一评分。
在一种可能的实现方式中,上述估计模块120,还用于根据每个第一用户对N个软件的评分,估计目标用户对每个未安装软件的第二评分;
推送模块130,具体用于根据目标用户对每个未安装软件的第二评分,向目标用户推送未安装软件的软件信息。
在一种可能的实现方式中,估计模块120,具体用于根据每个第一用户对N个软件的评分,使用协同过滤方法,获得目标用户对每个未安装软件的第二评分。
在一种可能的实现方式中,处理模块110,还用于获取目标用户未安装的各软件中每两个软件之间的相似度;根据每两个软件之间的相似度,对目标用户未安装的各软件进行分类;
推送模块130,具体用于根据同一类中目标用户未安装的各软件的第二评分,对同一类中各软件进行排序,并将排序后的软件信息推送给用户。
在一种可能的实现方式中,处理模块110,具体用于获取目标用户未安装的各软件的属性信息;根据未安装的各软件的属性信息,确定目标用户未安装的各软件中每两个软件之间的相似度。
在一种可能的实现方式中,估计模块120,具体用于根据第一用户的软件评分均值、第一用户与每个相似用户的相似度、每个相似用户的软件评分均值,以及每个相似用户对第一用户未评分软件的评分,确定第一用户对未评分软件的第一评分;
其中,第一用户的软件评分均值为第一用户对N个软件中第一用户对应的已评分软件的评分均值,相似用户的软件评分均值为相似用户对N个软件中相似用户对应的已评分软件的均值。
在一种可能的实现方式中,处理模块110,具体用于针对K个第一用户中的每个第一用户,根据M个用户的用户信息,确定第一用户与M个用户中的每个用户之间的相似度;根据第一用户与M个用户中的每个用户之间的相似度,从M个用户中确定第一用户的至少一个相似用户。
在一种可能的实现方式中,处理模块110,具体用于根据第一用户与M个用户中的每个用户之间的相似度,将M个用户中与第一用户的相似度大于预设值的用户,确定为第一用户的至少一个相似用户。
在一种可能的实现方式中,处理模块110,具体用于对第一用户与M个用户中的每个用户之间的相似度从大到小进行排序,将前预设数量个相似度对应的用户,确定为第一用户的至少一个相似用户。
可选的,K个第一用户中包括目标用户。
可选的,软件的属性信息包括:软件的安装时间、软件的使用频率、软件的类型、软件的下载频率以及软件的安装位置中的至少一个。
可选的,用户信息包括:年龄、性别、职业、教育背景中的至少一个。
本申请实施例的信息推送装置,可以用于执行上述各方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本申请实施例涉及的电子设备的框图,该设备可以是图1所示的服务器,用于执行上述实施例的信息推送方法,具体参见上述方法实施例中的说明。
参照图11,电子设备1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述信息推送方法实施例。
电子设备1900还可以包括一个电源组件1926被配置为执行电子设备1900的电源管理,一个有线或无线网络接口1950被配置为将电子设备1900连接到网络,和一个输入输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1932,上述指令可由电子设备1900的处理组件1922执行以完成上述信息推送方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。