应用于电子设备的功能推荐方法和装置与流程

文档序号:18986227发布日期:2019-10-29 04:26阅读:153来源:国知局
应用于电子设备的功能推荐方法和装置与流程

本公开涉及计算机技术领域,更具体地,涉及一种应用于电子设备的功能推荐方法和装置、以及一种电子设备和计算机可读存储介质。



背景技术:

随着电子技术的快速发展,应用于电子设备的各种应用程序应运而生,以便于向用户提供各种功能。为了通过应用程序向用户提供多种功能,可以在应用程序中集成多种服务入口。

在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:不同用户常用的功能分布往往是不同的,但总体来说符合幂律分布,即用户使用绝大多数功能的频率很低,而使用少数几个功能的频率相当高。采用通常使用的推荐方法(例如协同过滤推荐算法或关联规则推荐算法等),存在难以向新用户做个性化推荐(即用户冷启动)的问题,以及对于使用频率低的功能存在无法有效曝光的马太效应等。再者,为了提高推荐效果,若以每个用户为单位存储喜好信息,往往会由于用户喜好的不断变化导致无法准确推荐。该为每个用户设立存储空间的方案,还存在需要占用较大存储空间的缺陷。



技术实现要素:

有鉴于此,本公开提供了一种结合知识图谱,解决因数据缺失导致的用户冷启动问题应用于电子设备的功能推荐方法和装置。

本公开的一个方面提供了一种应用于电子设备的功能推荐方法。该方法包括:获取第一用户的第一用户信息,该第一用户信息包括第一用户特征信息;根据第一用户信息及知识图谱,生成第一特征向量;采用神经网络模型对第一特征向量进行处理,确定多个功能针对第一用户的得分;以及根据多个功能针对第一用户的得分,确定多个功能中要向第一用户推荐的功能。其中,知识图谱包括针对第一用户特征信息的节点和针对多个功能的节点,其中针对第一用户特征信息的节点指向针对第一用户特征信息的节点。

根据本公开的实施例,上述第一用户信息还包括第一用户使用多个功能中至少一个第一功能的记录。上述根据第一用户信息及知识图谱,生成第一特征向量包括:扩散知识图谱中针对至少一个第一功能的节点,得到至少一个扩散节点;以及根据第一用户信息、针对第一用户信息的节点的节点标识及针对至少一个扩散节点的节点标识,生成第一特征向量。其中,至少一个扩散节点包括在知识图谱中针对第一功能的节点指向的节点,节点标识用于唯一表征节点。针对第一用户信息的节点包括针对第一用户特征信息的节点和针对至少一个第一功能的节点。

根据本公开的实施例,上述应用于电子设备的功能推荐方法还包括:获取神经网络模型。该获取神经网络模型包括:根据第二用户的第二用户信息及知识图谱,生成第二特征向量,该第二用户信息包括第二用户使用多个功能中至少一个第二功能的记录;根据使用至少一个第二功能的记录,得到用于表征使用至少一个第二功能的数据集;根据数据集及第二特征向量,形成多个样本数据;以及以多个样本数据依次作为异构神经网络的训练样本,训练得到神经网络模型。其中,多个样本数据包括针对至少一个第二功能的样本数据。

根据本公开的实施例,上述得到用于表征使用至少一个第二功能的数据集包括:根据使用至少一个第二功能的记录,确定使用至少一个第二功能中每个第二功能的次数;将使用每个第二功能的次数组合,得到次数集;以及对次数集中取值大于1的次数进行对数运算,得到针对使用至少一个第二功能的次数的数据集。其中,多个样本数据中针对每个第二功能的样本数据的个数与数据集中针对使用每个第二功能的次数的数据相匹配。

根据本公开的实施例,上述根据数据集及第二特征向量,形成多个样本数据包括:根据数据集,获取多个标签信息,每个标签信息包括功能标识和功能标识指示的功能针对第二用户的得分;将多个标签信息分别与第二特征向量拼接,得到多个样本数据。其中,多个标签信息包括:针对至少一个第二功能的标签信息,以及针对多个功能中除至少一个第二功能外的至少一个其他功能的标签信息。

根据本公开的实施例,上述确定多个功能中向第一用户推荐的功能包括:将多个功能根据多个功能针对第一用户的得分从大到小排序;以及确定多个功能中排在预定位置的第三功能为向第一用户推荐的功能。

根据本公开的实施例,上述应用于电子设备的功能推荐方法还包括构建知识图谱。其中,构建知识图谱包括:获取多个第三用户的第三用户特征信息,得到多个第三用户特征信息;根据多个第三用户特征信息,得到针对多个第三用户特征信息的多个信息分类;以及针对多个信息分类及多个功能构建节点,以多个功能的关联关系构建针对多个功能的节点的边,形成知识图谱。其中,针对第一用户特征信息的节点包括针对第一用户特征信息所属的信息分类的节点。

本公开的另一方面提供了一种应用于电子设备的功能推荐装置。该装置包括:获取模块、特征向量生成模块、得分确定模块和功能确定模块。获取模块用于获取第一用户的第一用户信息,该第一用户信息包括第一用户特征信息;特征向量生成模块用于根据第一用户信息及知识图谱,生成第一特征向量;得分确定模块用于采用神经网络模型对第一特征向量进行处理,确定多个功能针对第一用户的得分;功能确定模块用于根据多个功能针对所述第一用户的得分,确定多个功能中要向第一用户推荐的功能。其中,知识图谱包括针对第一用户特征信息的节点和针对多个功能的节点,其中针对第一用户特征信息的节点指向针对第一用户特征信息的节点。

本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个指令,其中,当所述一个或多个指令被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的应用于电子设备的功能推荐方法。

本公开的另一方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现如上所述的应用于电子设备的功能推荐方法。

本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的应用于电子设备的功能推荐方法。

根据本公开的实施例,通过神经网络对结合知识图谱得到的特征向量进行处理,能够得到多个功能针对新用户的得分,并因此能有效地向新用户推荐功能。相较于相关技术中的推荐算法,可以解决相关技术中用户冷启动的问题。再者,知识图谱中通过构建指向自身的针对用户特征信息的节点,无需构建针对用户的节点,对于有大量用户的应用场景,可以有效节省存储空间。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了根据本公开实施例的应用于电子设备的功能推荐方法和装置的应用场景;

图2示意性示出了根据本公开实施例的应用于电子设备的功能推荐方法的流程图;

图3示意性示出了根据本公开实施例的根据第一用户信息及知识图谱生成第一特征向量的流程图;

图4示意性示出了根据本公开实施例的确定向第一用户推荐的功能的流程图;

图5示意性示出了根据本公开另一实施例的应用于电子设备的功能推荐方法的流程图;

图6示意性示出了根据本公开实施例的构建知识图谱的流程图;

图7示意性示出了构建得到的知识图谱的示意图;

图8示意性示出了根据本公开又一实施例的应用于电子设备的功能推荐方法的流程图;

图9示意性示出了根据本公开实施例的获取神经网络模型的流程图;

图10示意性示出了根据本公开实施例的得到用于表征使用至少一个第二功能的数据集的流程图;

图11示意性示出了根据本公开实施例的形成多个样本数据的流程图;

图12示意性示出了根据本公开实施例的应用于电子设备的功能推荐装置的结构框图;以及

图13示意性示出了根据本公开实施例的适于执行应用于电子设备的功能推荐方法的电子设备的结构框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。

本公开的实施例提供了一种应用于电子设备的功能推荐方法。该方法包括:获取第一用户的第一用户信息,该第一用户信息包括第一用户特征信息;根据第一用户信息及知识图谱,生成第一特征向量;采用神经网络模型对第一特征向量进行处理,确定多个功能针对第一用户的得分;以及根据多个功能针对第一用户的得分,确定多个功能中要向第一用户推荐的功能。其中,知识图谱包括针对第一用户特征信息的节点和针对多个功能的节点,其中针对第一用户特征信息的节点指向针对第一用户特征信息的节点。

图1示意性示出了根据本公开实施例的应用于电子设备的功能推荐方法和装置的应用场景100。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,根据本公开实施例的应用场景100包括终端设备110。

其中,该终端设备110例如可以是具有显示屏,并且/或者可以安装有各种客户端应用。该终端设备110例如可以包括但不限于台式计算机、膝上型便携计算机、平板电脑或智能手机等等。该终端设备110可以通过客户端应用向用户提供多种功能入口,以满足用户的多种需求。

根据本公开的实施例,该终端设备110还可以具有处理功能,以根据用户信息,处理得到要向用户推荐的功能。以在客户端应用的显示界面中优先展示与该些推荐的功能对应的功能入口。根据本公开的实施例,如图1所示,该些推荐的功能对应的功能入口包括但不限于:“我的账户”功能的入口111、“电子工资单”功能的入口112、“银行信使”功能的入口113、“账户申请”功能的入口114、“住房公积金”功能的入口115和“扫描取款”功能的入口116。

根据本公开的实施例,如图1所示,该应用场景例如还可以包括网络120和服务器130。网络120用于在终端设备110与服务器130之间提供通信链路的介质。网络120可以包括各种连接类型,例如有线和/或无线通信链路等等。

服务器130可以是提供各种服务的服务器。例如,该服务器130例如可以通过网络120与终端设备110交互,来获取终端设备110获取的用户信息。该服务器130还可以用于根据用户信息处理得到要向用户推荐的功能,并将该要向用户推荐的功能发送给终端设备110,以供终端设备110在运行的客户端应用中优先展示与该要向用户推荐的功能对应的功能入口。

需要说明的是,本公开实施例所提供的应用于电子设备的功能推荐方法可以由终端设备110或服务器130执行。相应地,本公开实施例所提供的应用于电子设备的功能推荐装置可以设置于终端设备110或服务器130中。

应该理解,图1中的终端设备110、网络120和服务器130的类型仅仅是示意性的。根据实现需要,可以具有任意类型的终端设备110、网络120和服务器130。

图2示意性示出了根据本公开实施例的应用于电子设备的功能推荐方法的流程图。

如图2所示,本公开实施例的功能推荐方法可以包括操作s210~操作s240。

在操作s210,获取第一用户的第一用户信息。

根据本公开的实施例,该第一用户信息例如可以包括第一用户特征信息,该第一用户特征信息例如可以包括年龄、性别、学历、职业和/或资产状况等一种或多种特征信息。第一用户例如可以是使用电子设备中安装的预定应用程序的任意一个用户。

根据本公开的实施例,该第一用户信息例如还可以包括第一用户使用多个功能中至少一个第一功能的记录。该多个功能例如可以是预定应用程序提供的功能。其中,多个功能例如可以包括“转账汇款”功能、“医疗健康”功能、“计算器”功能和/或“定期存款”功能等。根据本公开的实施例,在第一用户为预定应用程序的新用户的情况下,该第一用户信息例如可以不包括用户使用多个功能的记录。

在操作s220,根据第一用户信息及知识图谱,生成第一特征向量。

根据本公开的实施例,知识图谱可以包括有针对上述第一用户特征信息的节点和针对多个功能的节点。该操作s220例如可以包括:先根据第一用户信息,确定知识图谱中与第一用户信息对应的节点;然后根据该节点标识,生成第一特征向量。其中,与第一用户信息对应的节点可以包括针对第一用户特征信息的节点和针对至少一个第一功能的节点。

根据本公开的实施例,为了向第一用户推荐除了使用频率高的功能外的其他功能,上述操作s220在确定了知识图谱中与第一用户信息对应的节点后,还可以对该对应的节点根据与其他节点的关联关系进行扩散。从而根据用户特征信息扩散得到用户可能感兴趣的功能,并根据扩散后的结果生成第一特征向量。该第一特征向量例如可以是第一用户信息和节点标识拼接得到的向量,该第一特征向量的生成详见图3描述的操作s321~操作s322,在此不再详述。其中,节点标识为与节点唯一对应的标识,该标识例如可以是节点的编号等。

根据本公开的实施例,为了节省存储空间,可以不在知识图谱中构建与用户对应的节点。此时,为了使得针对用户特征信息的节点具有指向,可以使得针对每个第一用户特征信息的节点指向自身节点。例如,针对多个用户特征信息的节点中针对某个第一用户特征信息的节点指向该针对某个第一用户特征信息的节点。

在操作s230,采用神经网络模型对第一特征向量进行处理,确定多个功能针对第一用户的得分。

根据本公开的实施例,神经网络模型例如可以是异构网络模型,以增强模型的适应性和特征的表达能力。该神经网络模型例如可以是通过图9描述的流程训练得到的,在此不再详述。

该操作s230例如可以包括:以第一特征向量作为神经网络模型的输入,经由神经网络模型处理后得到多个功能针对第一用户的得分。其中,针对第一用户的得分例如可以用于表征用户对功能的感兴趣程度,若第一用户对某个功能的感兴趣程度较高,神经网络处理得到的该某个功能针对第一用户的得分较高。

在操作s240,根据多个功能针对第一用户的得分,确定多个功能中要向第一用户推荐的功能。

根据本公开的实施例该操作s240例如可以确定针对第一用户的得分高于预定得分(例如在满分为1分的情况下,该预定得分可以为0.6等)的功能为要向第一用户推荐的功能。或者,操作s240例如可以是确定针对第一用户的得分最高的功能为要向第一用户推荐的功能。根据本公开的实施例,该操作s240例如可以通过图4描述的流程来实现,在此不再赘述。

综上可知,本公开实施例的功能推荐方法,通过神经网络对结合知识图谱得到的特征向量进行处理,能够得到多个功能针对新用户的得分,并因此能有效地向新用户推荐功能。相较于相关技术中的推荐算法,可以解决相关技术中用户冷启动的问题。再者,知识图谱中通过构建指向自身的针对用户特征信息的节点,无需构建针对用户的节点,因此可以有效节省存储空间。

图3示意性示出了根据本公开实施例的根据第一用户信息及知识图谱生成第一特征向量的流程图。

如图3所示,生成第一特征向量的操作s220例如可以通过操作s321~操作s322来实现。

在操作s321,扩散知识图谱中针对至少一个第一功能的节点,得到至少一个扩散节点。

根据本公开的实施例,该操作s321例如可以包括:首先确定知识图谱中针对第一用户信息的第一节点。该第一节点例如可以包括针对第一用户特征信息的节点,例如,若第一用户特征信息中包括用户年龄30岁,则该第一节点包括表征年龄属于区间(25,30]的节点。在第一用户信息还包括第一用户使用至少一个第一功能的记录时,第一节点还包括分别针对该至少一个功能的节点。然后在以第一节点为起点进行第一次扩散,该第一次扩散可以包括:根据与第一节点连接的边来确定以第一节点为起点的边指向的节点,得到第二节点。其中,为了使得推荐功能的多样化,还可以将第二节点作为起点进行第二次扩散,得到第三节点。以经由扩散得到的第二节点、第三节点……作为所述扩散节点,得到至少一个扩散节点。根据本公开的实施例,为了兼顾推荐的多样性与准确性,上述扩散例如可以包括两次或三次。

根据本公开的实施例,在第一节点仅包括针对第一用户特征信息的节点时,由于该针对第一用户特征信息的节点指向自身节点,因此,扩散得到的第二节点、第三节点等均为针对该第一用户特征信息的节点。可以理解的是,上述扩散次数仅作为示例以利于理解本公开,本公开对此不作限定。本公开可以根据实际需求,确定扩散次数。

在操作s322,根据第一用户信息、针对第一用户信息的节点的节点标识及针对至少一个扩散节点的节点标识,生成第一特征向量。

根据本公开的实施例,该操作s322例如可以包括:先将第一用户信息与第一节点的节点标识拼接,得到第一特征向量的第一行的向量。然后将第一用户信息、针对第一用户特征信息的节点的节点标识及针对第二节点的节点标识拼接,得到第一特征向量的第二行的向量。然后将第一用户信息、针对第一用户特征信息的节点的节点标识及针对第三节点的节点标识拼接,得到第一特征向量的第三行的向量。依次类推,最终将第一行的向量、第二行的向量……依次拼接形成特征矩阵,以该特征矩阵作为所述的第一特征向量。

根据本公开的实施例,在第一用户信息中包括第一用户使用第一功能的记录时,为了使得生成的第一特征向量能够较佳的表征该第一用户,还可以根据第一用户使用第一功能的记录,对第一用户在预定时段内(例如一个月内)使用第一功能的次数进行统计,并在第一特征向量中加入表征该次数的值。因此,考虑到用户的特征信息、知识图谱中针对多个功能的节点的指向关系是相对确定的,为了解决用户兴趣产生漂移导致的推荐不准确的问题,在获取第一用户使用第一功能的记录时,可以设定较短的预定时段(例如一周),以获取第一用户使用第一功能的最新记录来生成第一特征向量。因此,该第一特征向量能够较佳的表征第一用户当前阶段的需求,根据该第一特征向量得到的得分与用户当前节点的需求更为符合。从而可以使得推荐结果满足时效性。

根据本公开的实施例,在针对第一用户信息的节点仅包括针对第一用户特征信息的节点时,该第一特征向量可以是由第一用户特征信息、针对第一用户特征信息的节点的节点标识拼接得到的向量。若第一用户信息的节点还包括针对至少一个第一功能的节点,该第一特征向量可以由第一用户信息、第一节点的标识及至少一个扩散节点的标识拼接得到。

图4示意性示出了根据本公开实施例的确定向第一用户推荐的功能的流程图。

如图4所示,确定要向第一用户推荐的功能的操作s240可以包括操作s441~操作s442。

在操作s441,将多个功能根据多个功能针对第一用户的得分从大到小排序。在操作s442,确定多个功能中排在预定位置的第三功能为向第一用户推荐的功能。

根据本公开的实施例,上述操作s441~操作s442例如可以包括:首先,根据操作s230得到的多个功能针对第一用户的得分对多个功能进行排序,使得排序得到的多个功能针对第一用户的得分依次降低。然后确定排序得到的多个功能中,针对第一用户的得分最高的预定数量的功能作为要向第一用户推荐的功能。其中,预定数量例如可以根据电子设备安装的应用程序的展示方式进行设定。例如,若应用程序的展示方式设定了可以一次性展示6个功能,则预定数量为6,所述的预定位置为前6个位置。

综上可知,本公开实施例通过对多个功能的得分进行排序,可以向用户进行功能的有效推荐,并因此提高用户体验。

图5示意性示出了根据本公开另一实施例的应用于电子设备的功能推荐方法的流程图,图6示意性示出了根据本公开实施例的构建知识图谱的流程图,图7示意性示出了构建得到的知识图谱的示意图。

根据本公开的实施例,为了完成操作s220,在通过操作s210~操作s240得到向第一用户推荐的功能之前,可以先构建知识图谱。因此,如图5所示,本公开实施例的功能测试方法在操作s210~操作s240之前,还可以包括操作s550。

在操作s550,构建知识图谱。

根据本公开的实施例,构建知识图谱的过程中,首先需要设定各个节点,然后设定各个节点之间连接的边。在该实施例中,例如可以将多个功能及用户特征信息作为节点,以多个功能的关联关系作为边连接针对多个功能的节点。

根据本公开的实施例,如图6所示,该操作s550例如可以通过以下操作s651~操作s653来构建知识图谱。

在操作s651,获取多个第三用户的第三用户特征信息,得到多个第三用户特征信息。在操作s652,根据多个第三用户特征信息,得到针对多个第三用户特征信息的多个信息分类。

根据本公开的实施例,该操作s651例如可以是从服务器130中获取预先存储的大量的用户特征信息。其中,为了保证用户特征信息的完整性,该获取得到的多个第三用户特征信息应尽可能的涵盖各个类型的特征信息。例如,对于年龄信息,该第三用户特征信息中应涵盖10岁~80岁等分得到的14个年龄段的年龄信息。例如,该第三用户特征信息应不仅包括年龄信息,还包括性别信息、学历信息、职业信息、资产信息及居住地址等与用户匹配的所有个人信息。

根据本公开的实施例,操作s652可以包括:首先将多个第三用户特征信息根据包括的特征信息所属的类别分类,例如可以分类得到年龄类别、性别类别、学历类别、职业类别等。然后再对每个类别的信息进行进一步的分类,得到多个信息分类。例如,对于性别类别的信息,可以分为男性类别和女性类别。对于年龄类别的信息,可以依次分为与(10,15]、(15,20]、(20,25]、……、(65,70]、(70,75]和(75,80]等多个年龄段对应的类别。

在操作s653,针对多个信息分类及多个功能构建节点,以多个功能的关联关系构建针对多个功能的节点的边,形成知识图谱。

根据本公开的实施例,该操作s653可以包括:先建立节点,为操作s652得到的多个信息分类中的每个信息分类建立一个节点,为多个功能中每个功能建立一个节点,从而得到多个节点。因此,该多个节点既包括针对用户特征信息的节点,也包括针对多个功能的节点。例如,在通过操作s652得到50个信息分类,且多个功能为30个功能时,该建立得到的节点为50+30=80个。然后,为针对用户特征信息的节点构建指向自身的边,根据多个功能的分类信息、、树状结构、功能的上下位关系等表征的关联关系为针对每个功能的节点建立边。

根据本公开的实施例,通过操作s651~操作s653例如可以得到如图7所示的知识图谱。其中,针对用户特征信息的节点(“用户年龄”节点710、“用户职业”节点720)指向自身,针对多个功能的节点,例如,“买车险”节点730指向“买车险”所属的“汽车服务”类对应的“汽车服务”节点740、并且指向“买车险”的上级菜单“保险”对应的“保险”节点750;“洗车保养”节点760指向“洗车保养”所属的“汽车服务”类对应的“汽车服务”节点740、并且指向针对“洗车保养”的上级菜单“生活服务”对应的“生活服务”节点770。根据本公开的实施例,前述针对第一用户特征信息的节点例如包括针对该第一用户特征信息所属的信息分类的节点。例如,在第一用户特征信息中包括年龄20岁时,针对该第一用户特征信息的节点包括20岁所属的年龄阶段(15,20]对应的年龄节点。

综上可知,本公开实施例通过知识图谱的构建,在通过操作s321~操作s322生成的第一特征向量时,可以扩展得到与用户已使用的第一功能关联的功能。因此可以使得推荐结果更多样,便于挖掘用户的潜在喜好,并因此解决使用频率低的功能无法有效曝光的马太效应。

图8示意性示出了根据本公开另一实施例的应用于电子设备的功能推荐方法的流程图。图9示意性示出了根据本公开实施例的获取神经网络模型的流程图。

根据本公开的实施例,为了完成操作s230,在通过操作s210~操作s240得到向第一用户推荐的功能之前,可以先获取神经网络模型。因此,如图8所示,本公开实施例的功能测试方法在操作s210~操作s240之前,还可以包括操作s860。

在操作s860,获取神经网络模型。

根据本公开的实施例,该操作s860例如可以包括:以大量的样本训练初始的模型,以调整初始的模型中的参数,得到准确度高的神经网络模型。其中,获取得到的该神经网络模型的输入为操作s220描述的第一特征向量,输出为用户对多个功能中每个功能的感兴趣度得分,例如为操作s230描述的多个功能针对第一用户的得分。

根据本公开的实施例,初始的模型例如可以包括:卷积神经网络模型等。其中,考虑到网络中存在用户特征及功能两类不同的对象,因此可以选择异构神经网络(heterogeneousneuralnetwork)作为初始的模型。

根据本公开的实施例,如图9所示,该操作s860例如可以通过以下操作s961~操作s964来执行。

在操作s961,根据第二用户的第二用户信息及知识图谱,生成第二特征向量,该第二用户信息包括第二用户使用多个功能中至少一个第二功能的记录。根据本公开的实施例,第二用户可以是具有使用预定应用程序记录的用户,为了提高训练精度,此处可以获取多个不同的第二用户的第二用户信息,以分别生成第二特征向量。

根据本公开的实施例,该第二用户的第二用户信息例如可以是从服务器130中获取的预先存储的用户信息,该第二用户信息不仅包括第二用户的特征信息,还包括该第二用户使用应用程序提供的功能的记录。该第二用户使用过的功能为所述的第二功能。

根据本公开的实施例,该操作s961例如可以是采用类似于图3中操作s321~操作s322描述的方法,通过扩散知识图谱中针对第二用户信息的节点,得到最终的第二特征向量。该第二特征向量与操作s322中描述的第一特征向量类似,在此不再赘述。

在操作s962,根据使用至少一个第二功能的记录,得到用于表征使用所述至少一个第二功能的数据集。

根据本公开的实施例,该操作s962例如可以包括:根据使用至少一个第二功能的记录,归纳得到第二用户在预定时段内使用每个第二功能的次数。根据该使用每个第二功能的次数,整合得到表征该至少一个第二功能的数据集。该数据集中包括的数据个数例如可以与第二功能的个数相同。该数据集中每个数据与预定时段内使用至少一个第二功能中每个第二功能的次数相对应。

根据本公开的实施例,考虑到第二用户兴趣的漂移,预定时段可以选择较短的时段,例如一周等,以使得最终得到的表征至少一个第二功能的数据集能够较佳的表征第二用户当前阶段对第二功能的需求。根据本公开的实施例,该操作s962例如可以通过图10描述的流程来实现,在此不再详述。

在操作s963,根据数据集及第二特征向量,形成多个样本数据。

根据本公开的实施例,该操作s963例如可以包括,先复制第二特征向量,得到个数为数据集所有数据的和的多个第二特征向量。然后再获取与数据集中每个数据对应的第二功能的标签。该标签用于表征该第二功能及第二用户对第二功能的感兴趣度。然后将至少一个第二功能的标签中每个第二功能的标签作为一个第二特征向量的标签,得到多个样本数据。

根据本公开的实施例,为了为用户使用频率较高的第二功能设置较高的权重,多个样本数据中针对每个第二功能的样本数据的个数与数据集中针对使用每个第二功能的次数的数据相匹配。因此,多个样本数据包括针对至少一个第二功能的样本数据。例如,在数据集中对应功能“洗车保养”的数据的值为5时,该多个样本数据中具有“洗车保养”功能的标签的样本数据个数可以为5。

根据本公开的实施例,该操作s963例如可以通过图11描述的流程来实现,在此不再详述。

在操作s964,以多个样本数据依次作为异构神经网络的训练样本,训练得到神经网络模型。

该操作s964例如可以包括以下操作;首先以多个样本数据中的每个样本数据作为异构神经网络的输入,输出多个功能针对第二用户的得分,得到针对该每个样本数据的预测结果。然后将针对该每个样本数据的预测结果与该每个样本数据的标签信息进行比对,采用损失函数计算得到当前模型的损失值。然后根据该损失值对当前模型中的参数进行调整。通过多次调整参数,最终以准确率不小于预定准确率的模型作为最终的神经网络模型。

根据本公开的实施例,损失函数例如可以采用交叉熵函数、sigmoid函数等,预定准确率例如可以为70%~95%范围内任意的值。可以理解的是,上述损失函数的类型及预定准确率的取值范围仅作为示例以利于理解本公开,本公开对此不作限定。

图10示意性示出了根据本公开实施例的得到用于表征使用至少一个第二功能的数据集的流程图。

根据本公开的实施例,如图10所示,得到表征使用至少一个第二功能的数据集的操作s962例如可以通过以下操作s1021~操作s1023来执行。

在操作s1021,根据使用至少一个第二功能的记录,确定使用至少一个第二功能中每个第二功能的次数。在操作s1022,将使用每个第二功能的次数组合,得到次数集。

根据本公开的实施例,该操作s1021~操作s1022例如可以包括:先统计得到第二用户使用至少一个第二功能中每个第二功能次数,然后将使用至少一个第二功能中每个第二功能的次数作为一个值,组合得到包括至少一个数据的次数集。

在操作s1023,对次数集中取值大于1的次数进行对数运算,得到针对使用至少一个第二功能的次数的数据集。

根据本公开的实施例,为了解决因用户使用功能的幂律分布导致的马太效应,例如可以适当降低使用频率高的第二功能的权重。因此,操作s1023中,例如可以将取值大于1的次数进行对数运算,以对数运算得到的值替代次数集中的原数据,最终得到数据集。根据本公开的实施例,该操作s1023例如还可以通过将取值大于1的次数进行开方运算等。该对取值大于1的次数进行的运算可以根据实际需求进行设定,本公开对此不作限定。

根据本公开的实施例,对于对数运算或开方运算后取值不为整数的数据,可以取向上取整得到的整数值。例如,若采用对数运算,次数集i=(20,10,6,4,1)通过操作s1023得到的数据集l=(3,3,2,2,1)。该对数运算过程中,例如可以以e或其他任意的大于1的正数为底数,本公开对此不作限定。

综上可知,本公开实施例在获取样本数据时,由于通过根据使用频率高的第二功能的使用次数取对数或开方得到的数据集来确定样本数据个数,因此可以在一定程度上减缓因数据分布不均导致的训练得到的神经网络模型不精准、且推荐结果较为单一的缺陷。因此,可以使得推荐结果更为精确且更为丰富。

图11示意性示出了根据本公开实施例的形成多个样本数据的流程图。

根据本公开的实施例,如图11所示,形成多个样本数据的操作s963可以通过以下操作s1131~操作s1132来执行。

在操作s1131,根据数据集,获取多个标签信息,每个标签信息包括功能标识和功能标识指示的功能针对第二用户的得分。在操作s1132,将多个标签信息分别与第二特征向量拼接,得到多个样本数据。

根据本公开的实施例,该标签信息例如可以响应于用户操作获取。该多个标签信息的个数例如可以与数据集中各个数据求和得到的值相对应。例如,在数据集中各个数据求和得到的值为50时,该多个标签信息的个数可以为50。该多个标签信息例如可以包括:针对至少一个第二功能的标签信息。

其中,功能标识例如可以是用于唯一表征功能的标识。本公开实施例例如为多个功能进行了编号,功能标识可以为其指示的功能的编号。功能标识指示的功能针对第二用户的得分例如可以是响应于用户的操作,获取的第二用户对功能标识指示的功能的感兴趣程度,该感兴趣程度的值可以取0~1中任意的正数。

根据本公开的实施例,为了使得训练得到的神经网络模型能够为用户使用频率低的功能输出较高的得分,本公开实施例得到的多个样本数据中例如还可以包括针对除第二功能外的其他功能的样本数据。因此,该操作s1131获取的多个标签信息中还可以包括有:针对至少一个其他功能的标签信息。此种情况下,操作s1131获取的多个标签信息的个数应大于数据集中各个数据求和得到的值。该多个标签信息中包括的针对至少一个其他功能的标签信息的个数可以根据实际需求进行设定,本公开对此不作限定。例如多个标签信息中可以包括有3个针对至少一个其他功能的标签信息。再者,为了提高推荐的功能的多样性,对于针对不同的第二用户的样本数据,多个标签信息中包括的其他功能的标签信息可以是不同的其他功能的标签信息。

根据本公开的实施例,通过上述操作s1132将多个标签信息分别与第二特征向量拼接,即可得到多个样本数据。该操作s1132可以包括:为每个第二特征向量设置标识位,以多个标签信息分别作为第二特征向量的标识位的信息,得到多个样本数据。该样本数据的个数与操作s1131中获取的标签信息的个数相等。

综上可知,本公开实施例由于不仅获取针对被使用过的第二功能的样本数据,还获取未被使用过的其他功能的样本数据,因此,根据获取的多个样本数据来训练神经网络模型,可以提高神经网络模型的输出结果中其他功能针对用户的得分。从而可以提高最终得到的推荐结果的多样性。

图12示意性示出了根据本公开实施例的应用于电子设备的功能推荐装置的结构框图。

如图12所示,本公开实施例的应用于电子设备的功能推荐装置1200可以包括获取模块1210、特征向量生成模块1220、得分确定模块1230和功能确定模块1240。

其中,获取模块1210用于获取第一用户的第一用户信息,该第一用户信息包括第一用户特征信息(操作s210)。

其中,特征向量生成模块1220用于根据第一用户信息及知识图谱,生成第一特征向量(操作s220)。其中,知识图谱包括针对第一用户特征信息的节点和针对多个功能的节点,其中针对第一用户特征信息的节点指向针对第一用户特征信息的节点。

其中,得分确定模块1230用于采用神经网络模型对第一特征向量进行处理,确定多个功能针对第一用户的得分(操作s230)。

其中,功能确定模块1240用于根据多个功能针对所述第一用户的得分,确定多个功能中要向第一用户推荐的功能(操作s240)。

根据本公开的实施例,上述第一用户信息还包括第一用户使用多个功能中至少一个第一功能的记录。上述特征向量生成模块1220用于执行以下操作:扩散知识图谱中针对至少一个第一功能的节点,得到至少一个扩散节点(操作s321)。以及根据第一用户信息、针对第一用户特征信息的节点的节点标识及针对至少一个扩散节点的节点标识,生成第一特征向量(操作s322)。其中,至少一个扩散节点包括在知识图谱中针对第一功能的节点指向的节点,该节点标识用于唯一表征节点。针对第一用户信息的节点包括针对第一用户特征信息的节点和针对至少一个第一功能的节点。

根据本公开的实施例,如图12所示,上述应用于电子设备的功能推荐装置1200例如还可以包括模型获取模块1250。该模型获取模块1250例如可以用于获取神经网络模型(操作s860)。上述特征向量生成模块1220还用于根据第二用户的第二用户信息及知识图谱,生成第二特征向量(操作s961),该第二用户信息例如可以包括第二用户使用多个功能中至少一个第二功能的记录。如图12所示,模型获取模块1250包括数据集获取子模块1251、样本数据形成子模块1252和模型训练子模块1253。其中,数据集获取子模块1251用于根据使用至少一个第二功能的记录,得到用于表征使用至少一个第二功能的数据集(操作s962)。其中,样本数据形成子模块1252用于根据数据集及第二特征向量,形成多个样本数据(操作s963)。其中,模型训练子模块1253用于以多个样本数据依次作为异构神经网络的训练样本,训练得到神经网络模型(操作s964)。其中,多个样本数据包括针对至少一个第二功能的样本数据。

根据本公开的实施例,上述数据集获取子模块1251例如可以用于:先根据使用至少一个第二功能的记录,确定使用至少一个第二功能中每个第二功能的次数(操作s1021);然后将使用每个第二功能的次数组合,得到次数集(操作s1022);最后对次数集中取值大于1的次数进行对数运算,得到针对使用至少一个第二功能的次数的数据集(操作s1023)。其中,多个样本数据中针对每个第二功能的样本数据的个数与数据集中针对使用每个第二功能的次数的数据相匹配。

根据本公开的实施例,上述样本数据形成子模块1252例如可以用于执行以下操作:根据数据集,获取多个标签信息(操作s1131)。其中,每个标签信息包括功能标识和功能标识指示的功能针对第二用户的得分。上述样本数据形成子模块1252例如还可以用于执行以下操作:将多个标签信息分别与第二特征向量拼接,得到多个样本数据(操作s1132)。其中,多个标签信息包括:针对至少一个第二功能的标签信息,以及针对多个功能中除至少一个第二功能外的至少一个其他功能的标签信息。

根据本公开的实施例,上述功能确定模块1240例如可以用于执行以下操作:先将多个功能根据多个功能针对第一用户的得分从大到小排序(操作s441);然后确定多个功能中排在预定位置的第三功能为向第一用户推荐的功能(操作s442)。

根据本公开的实施例,如图12所示,上述应用于电子设备的功能推荐装置1200例如还可以包括知识图谱构建模块1260。该知识图谱构建模块1260例如可以用于构建知识图谱(操作s550)。上述获取模块1210例如还可以用于获取多个第三用户的第三用户特征信息,得到多个第三用户特征信息(操作s651)。知识图谱构建模块1260例如可以用于:首先根据多个第三用户特征信息,得到针对多个第三用户特征信息的多个信息分类(操作s652);然后针对多个信息分类及多个功能构建节点,以多个功能的关联关系构建针对多个功能的节点的边,形成知识图谱(操作s653)。其中,针对第一用户特征信息的节点包括针对第一用户特征信息所属的信息分类的节点。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,获取模块1210、特征向量生成模块1220、得分确定模块1230、功能确定模块1240、模型获取模块1250、知识图谱构建1260、数据集获取子模块1251、样本数据形成子模块1252和模型训练子模块1253中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,获取模块1210、特征向量生成模块1220、得分确定模块1230、功能确定模块1240、模型获取模块1250、知识图谱构建1260、数据集获取子模块1251、样本数据形成子模块1252和模型训练子模块1253中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块1210、特征向量生成模块1220、得分确定模块1230、功能确定模块1240、模型获取模块1250、知识图谱构建1260、数据集获取子模块1251、样本数据形成子模块1252和模型训练子模块1253中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图13示意性示出了根据本公开实施例的适于执行应用于电子设备的功能推荐方法的电子设备的结构框图。图13示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图13所示,根据本公开实施例的电子设备1300包括处理器1301,其可以根据存储在只读存储器(rom)1302中的程序或者从存储部分1308加载到随机访问存储器(ram)1303中的程序而执行各种适当的动作和处理。处理器1301例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器1301还可以包括用于缓存用途的板载存储器。处理器1301可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在ram1303中,存储有电子设备1300操作所需的各种程序和数据。处理器1301、rom1302以及ram1303通过总线1304彼此相连。处理器1301通过执行rom1302和/或ram1303中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom1302和ram1303以外的一个或多个存储器中。处理器1301也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,电子设备1300还可以包括输入/输出(i/o)接口1305,输入/输出(i/o)接口1305也连接至总线1304。电子设备1300还可以包括连接至i/o接口1305的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1307;包括硬盘等的存储部分1308;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至i/o接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入存储部分1308。

根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被处理器1301执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom1302和/或ram1303和/或rom1302和ram1303以外的一个或多个存储器。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1