数据推荐方法、装置及存储介质与流程

文档序号:16246236发布日期:2018-12-11 23:36阅读:154来源:国知局
数据推荐方法、装置及存储介质与流程

本发明涉及通信技术领域,尤其涉及一种数据推荐方法、装置及存储介质。

背景技术

随着智能手机、平板电脑等移动终端的普及,用户可以通过终端获取越来越多的信息。为了使用户快速获取到想要的信息,可以根据用户的兴趣爱好,进行信息推荐。

现有的推荐系统中一般采用逻辑回归(logisticregression,简称lr)算法,lr算法具有复杂度较低,易于理解和实现的优点,但是也具有局限性。lr算法只能自动对低阶特征进行描述,在组合高阶特征的过程中,需要人工进行特征组合。而特征组合过程中的工作量较大,导致推荐效率变低。



技术实现要素:

本发明实施例提供一种数据推荐方法、装置及存储介质,可以提高数据推荐的效率。

本发明实施例提供一种数据推荐方法,包括:获取用户的数据推荐请求,并根据所述数据推荐请求,获取所述用户对应的初始推荐数据,以及所述用户对应的特征数据;将所述数据推荐请求转换成预设格式的请求,并根据所述预设格式的请求,从模型服务器上获取预设deepfm模型,其中所述预设格式的请求满足所述模型服务器的识别要求;根据所述预设deepfm模型以及所述特征数据,生成更新数据;根据所述更新数据,以及所述初始推荐数据,生成目标推荐数据;将所述目标推荐数据,推送给所述用户。

本发明实施例还提供一种数据推荐装置,包括:第一获取模块,用于获取用户的数据推荐请求,并根据所述数据推荐请求,获取所述用户对应的初始推荐数据,以及所述用户对应的特征数据;转换模块,用于将所述数据推荐请求转换成预设格式的请求,并根据所述预设格式的请求,从模型服务器上获取预设deepfm模型,其中所述预设格式的请求满足所述模型服务器的识别要求;第一生成模块,用于根据所述预设deepfm模型以及所述特征数据,生成更新数据;第二生成模块,用于根据所述更新数据,以及所述初始推荐数据,生成目标推荐数据;推送模块,用于将所述目标推荐数据,推送给所述用户。

本发明实施例还提供一种存储介质,其内存储有处理器可执行指令,该处理器通过执行所述指令提供如上述的数据推荐方法。

本发明实施例的数据推荐方法、装置及存储介质,先通过根据预设deepfm模型以及特征数据,生成更新数据,再根据更新数据以及初始推荐数据,生成目标推荐数据,最后将目标推荐数据推送给用户,提高了数据推荐的效率。

附图说明

下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。

图1为本发明实施例提供的数据推荐方法的场景示意图。

图2为本发明实施例提供的数据推荐方法的流程示意图。

图3为本发明实施例提供的数据推荐方法的另一流程示意图。

图4为本发明实施例提供的数据推荐装置的结构示意图。

图5为本发明实施例提供的生成模块的结构示意图。

图6为本发明实施例提供的转换模块的结构示意图。

图7为本发明实施例提供的第一生成模块的结构示意图。

图8为本发明实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,该图为本发明实施例提供的数据推荐方法的场景示意图,该场景中,数据推荐装置可以作为实体来实现,也可以集成在终端或服务器等电子设备来实现,该电子设备可以包括智能手机、平板电脑和个人计算机等。

如图1所示,该场景中可以包括终端a、服务器b、服务器c、服务器d以及服务器e。其中,服务器c用于存储预设deepfm模型,服务器d用于存储特征数据,服务器e用于存储初始推荐数据。具体的,用户a通过操作终端a生成数据推荐请求,终端a将该数据推荐请求发送给服务器b。服务器b获取到该数据推荐请求后,依次从服务器d获取与用户a相关的特征数据,从服务器e中获取与用户a相关的初始推荐数据。进一步的,服务器b还将该数据推荐请求转换成预设格式的请求,以满足服务器c的识别要求。再将该预设格式的请求发送给服务器c,从服务器c中获取预设deepfm模型。然后,服务器b根据该预设deepfm模型和该用户a相关的特征数据,生成更新数据。再根据该更新数据和该用户a相关的初始推荐数据,生成目标推荐数据。最后,再将该目标推荐数据发送给终端a,通过终端a展示给用户a。

本发明实施例提供一种数据推荐方法、装置及存储介质,以下将分别进行详细说明。

在本发明实施例中,将从数据推荐装置的角度进行描述,该数据推荐装置具体可以集成在电子设备中。

一种数据推荐方法,包括获取用户的数据推荐请求,并根据数据推荐请求,获取用户对应的初始推荐数据,以及用户对应的特征数据;将数据推荐请求转换成预设格式的请求,并根据预设格式的请求,从模型服务器上获取预设deepfm模型,其中预设格式的请求满足模型服务器的识别要求;根据预设deepfm模型以及特征数据,生成更新数据;根据更新数据,以及初始推荐数据,生成目标推荐数据;将目标推荐数据,推送给用户。

请参照图2,图2为本发明实施例提供的数据推荐方法的流程图,该方法可以包括:

步骤s101,获取用户的数据推荐请求,并根据数据推荐请求,获取用户对应的初始推荐数据,以及用户对应的特征数据。

当用户对终端进行相关操作时,会生成数据推荐请求。其中,该操作包括更新操作、查询操作等。例如,当用户使用手机听歌时,在手机界面上点击“再来一首”按钮时,将触发生成数据推荐请求,然后终端获取该数据推荐请求,根据该数据推荐请求,获取该用户对应的初始推荐数据,以及该用户对应的特征数据,来分析用户的喜好,以向用户推荐合适的歌曲曲目。

初始推荐数据是指预存的推荐数据,比如歌曲列表、视频列表等。可以设置一存储区来存储初始推荐数据、用户标识以及二者之间的关联关系。当获取到用户的数据推荐请求后,即可从该存储区中查找与该用户匹配的用户标识,再获取该用户标识对应的初始推荐数据。

特征数据可以通过收集用户信息,从用户信息中提取。具体的,可以从用户信息中选取用户的属性信息、操作信息以及该操作信息对应的上下文信息等信息,来提取特征数据。

其中,用户的属性信息是指人在自然规律作用下的生物特性,以及在社会环境和条件作用下的社会属性,其体现的是人的固有性质和特点。具体的,人口属性包括用户的性别、年龄以及地域等信息。操作信息是指用户与终端交互过程中产生的信息,具体包括:操作类型、操作时间信息以及操作对象等等。例如,操作对象可以为音频、视频以及文本等,对音频的操作类型包括删除音频、收藏音频以及下载音频等,对音频的操作时间信息包括删除音频的时间、收藏音频的时长以及下载音频的时间等。操作信息对应的上下文信息是指与操作信息相关联的信息,比如终端的操作系统、收听音频时的入口等。例如,收听某一歌曲时,可以在搜索框中输入歌曲名进入,也可以从收藏的歌曲中进入。

步骤s102,将数据推荐请求转换成预设格式的请求,并根据预设格式的请求,从模型服务器上获取预设deepfm模型,其中预设格式的请求满足模型服务器的识别要求。

预设deepfm模型是采用数据集,对第一deepfm模型训练生成。其中第一deepfm模型中具有参数,在训练的过程中,可以得到该参数的参数值。将该参数值代入该第一deepfm模型,即可得到预设deepfm模型。

需要说明的是,第一deepfm模型由fm(factorizationmachine,因子分解机)模型和dnn(deepneuralnetworks,深度神经网络)模型结合生成。其中,fm模型是一种基于矩阵分解的机器学习算法,其使用特征向量来变换因子分解模型,通过低阶关系之间的内积表示为因子之间的交互关系。fm模型具有自动组合特征的优点,从而可以大量减少特征工程的工作。dnn模型可以同时兼顾高阶特征组合和低阶特征组合,在本实施例中,第一deepfm模型可以结合dnn模型和fm模型二者的优势,可以自动生成低阶特征和高阶特征,提高了特征工程方面的处理效率。

上述预设deepfm模型设置在模型服务器上,比如tfserving服务器。具体的,可以将预设deepfm模型,配置到tfserving服务器指定的目录下,以供tfserving服务器加载该预设deepfm模型。在向tfserving服务器等模型服务器请求服务时,由于不同的模型服务器其支持的协议不同,可能会出现模型服务器不能识别数据推荐请求的情况。具体的,假设模型服务器只识别grpc格式的请求,则当数据推荐请求为json(javascriptobjectnotation)格式的请求时,模型服务器会因不能准确识别该json格式的数据推荐请求,而不能及时提供预设deepfm模型信息。综上,需要对数据推荐请求进行格式转换,以满足模型服务器的识别要求,再根据预设格式的请求,从模型服务器上获取预设deepfm模型。

步骤s103,根据预设deepfm模型以及特征数据,生成更新数据。

具体的,可以先采用预设deepfm模型中的fm模型,将特征数据向量化,然后将向量化的特征数据作为输入,输入dnn模型,生成第一输出结果。再就特征数据输入fm模型,生成第二输出结果。最后,将该第一输出结果和第二输出结果,作为sigmoid函数的输入,来得到更新数据。

步骤s104,根据更新数据,以及初始推荐数据,生成目标推荐数据。

在一些实施例中,可以使用该更新数据,对初始推荐数据进行更新,从而生成目标推荐数据。假设,初始推荐数据包括一歌曲推荐列表,更新数据也为一歌曲推荐列表。则可以查找初始推荐数据和更新数据中重合的歌曲,并将重合的歌曲设置为目标推荐数据。

在一些实施例中,由于受计算能力的限制,在获取到用户的数据推荐请求后,可能不能实时响应该数据推荐请求,即可能会因为计算时间过长,造成不能及时生成更新数据的情况。在上述生成的更新数据为空的情况下,可以直接将初始推荐数据作为目标推荐数据,这样不仅避免了用户过长时间的等待数据推送,还减少了计算的压力。

步骤s105,将目标推荐数据,推送给用户。

具体的,可以通过将目标推荐数据展示在终端界面上,实现将目标推荐数据推送给用户的目的。

由上述可知,本发明实施例的数据推荐方法,先通过根据预设deepfm模型以及特征数据,生成更新数据,再根据更新数据以及初始推荐数据,生成目标推荐数据,最后将目标推荐数据推送给用户,提高了数据推荐的效率。。

根据上述实施例描述的数据推荐方法,以下将举例作进一步说明。在本发明实施例中,将从数据推荐装置的角度进行描述,该数据推荐装置具体可以集成在电子设备中。

请参照图3,图3为本发明实施例提供的数据推荐方法的另一流程图,该方法可以包括:

步骤s201,实时获取用户的历史特征数据。

随着互联网的发展,信息过载的现象日益严重。而基于机器学习的推荐方法,可以为用户提供合适的商品、音乐以及电影等选择,因此得到广泛的应用。其中机器学习的关键是模型以及特征数据的选择。在本实施例中,可以通过收集用户信息,从用户信息中提取历史特征数据。具体的,可以从用户信息中选取用户的属性信息、历史操作信息以及该历史操作信息对应的上下文信息等信息,来提取用于模型训练的历史特征数据。

其中,用户的属性信息是指人在自然规律作用下的生物特性,以及在社会环境和条件作用下的社会属性,其体现的是人的固有性质和特点。具体的,人口属性包括用户的性别、年龄以及地域等信息。历史操作信息是指用户与终端交互过程中产生的信息,具体包括:操作类型、操作时间信息以及操作对象等等。例如,操作对象可以为音频、视频以及文本等,对音频的操作类型包括删除音频、收藏音频以及下载音频等,对音频的操作时间信息包括删除音频的时间、收藏音频的时长以及下载音频的时间等。历史操作信息对应的上下文信息是指与历史操作信息相关联的信息,比如终端的操作系统、收听音频时的入口等。例如,收听某一歌曲时,可以在搜索框中输入歌曲名进入,也可以从收藏的歌曲中进入。

需要说明的是,由于用户与终端处于不断的交互过程,相应的,用户信息也不断在更新,因此,需要实时从用户信息中获取历史特征数据。在一些实施例中,可以采用离线存储的方式存储历史特征数据。这样可以在离线情况下,使用历史特征数据对第一deepfm模型进行训练,以减少网络开销,详见以下步骤s202。

步骤s202,使用历史特征数据,对第一deepfm模型进行训练,生成训练结果。

第一deepfm模型由fm(factorizationmachine,因子分解机)模型和dnn(deepneuralnetworks,深度神经网络)模型结合生成。其中,fm模型是一种基于矩阵分解的机器学习算法,其使用特征向量来变换因子分解模型,通过低阶关系之间的内积表示为因子之间的交互关系。fm模型具有自动组合特征的优点,可以大量减少特征工程的工作。dnn模型可以同时兼顾高阶特征组合和低阶特征组合。在本实施例中,采用第一deepfm模型,可以结合dnn模型和fm模型二者的优势,可以自动生成低阶特征和高阶特征,提高了特征工程方面的处理效率。

第一deepfm模型中具有参数,通过使用上述历史特征数据,在tensorflow集群上训练该第一deepfm模型,得到第一deepfm模型中参数对应的参数值,即得到训练结果。

根据步骤s201可知,用户的历史特征数据在不断变化,因此通过步骤s201实时获取到的历史特征数据,训练第一deepfm模型,也会得到多个训练结果。

步骤s203,根据多个训练结果以及第一deepfm模型,生成多个第二deepfm模型。

具体的,可以将该训练结果作为参数值,代入上述第一deepfm模型中,即可得到第二deepfm模型。需要说明的是,由于具有多个训练结果,相应的,也会生成多个第二deepfm模型。

步骤s204,获取多个第二deepfm模型的版本信息。

承接步骤s203,训练结果不同,其对应生成的第二deepfm模型也不同。在多个第二deepfm模型中,根据最近生成的第二deepfm模型,生成的目标推荐数据,准确性更高。

综上,为了提高数据推荐的准确性,需要获取该多个第二deepfm模型的版本信息,从该多个第二deepfm模型中,挑选出最新版本的第二deepfm模型。预先的,可以根据第二deepfm模型生成的时间信息,对该多个第二deepfm模型进行版本划分。其中,第二预设deepfm模型生成的时间越短,其版本越高,生成的时间越长,其版本越低。

具体的,该时间信息包括时间戳,其中,时间戳是表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,通常是一个字符序列,以唯一标识某一刻的时间。假设,某个特定时间为1970年1月1日,第二deepfm模型的生成时间为2018年4月10日10:04:35,其对应的时间戳为第二设deepfm模型的生成时间到该特定时间之间的秒数--1523325885。综上,可以用1523325885作为该第二deepfm模型的版本号,以唯一标识该第二deepfm模型。综上,可以通过获取多个第二deepfm模型的版本号,来得到版本信息。

步骤s205,根据版本信息,从多个第二deepfm模型中,选取出预设deepfm模型,并将预设deepfm模型设置在tfserving服务器上。

具体的,承接步骤s204,可以从该多个第二deepdm模型中,选取版本号最大的第二deepfm模型作为该预设deepfm模型。然后将预设deepfm模型,配置到tfserving服务器指定的目录下,以供tfserving服务器加载该预设deepfm模型。

需要说明的是,由于tfserving服务器服务为cpu密集型服务,因此为了实现tfserving服务器上资源分配的最优化,可以使tfserving服务器每隔一段时间,去指定目录下,查询是否存在预设deepfm模型,如果有,则加载该预设deepfm模型。

步骤s206,获取用户的数据推荐请求,并根据数据推荐请求,获取用户对应的初始推荐数据,以及用户对应的特征数据。

其中,初始推荐数据是指预存的推荐数据,比如歌曲列表、视频列表等。可以设置一存储区来存储初始推荐数据、用户标识以及二者之间的关联关系。当获取到用户的数据推荐请求后,即可从该存储区中查找与该用户匹配的用户标识,再获取该用户标识对应的初始推荐数据。

在一些实施例中,该用户对应的特征数据采用线上存储方式。具体的,可以采用myslq或oracle等数据库来存储该特征数据。优选的,还可以采用cmem(cloudmemcache,内存持久化存储)进行存储,cmem采用key-value形式存储特征数据,可以加快特征数据的读取。

步骤s207,采用proxy服务作为中间件服务,将数据推荐请求转换成grpc格式的请求;通过grpc格式的请求,从tfserving服务器上,获取预设deepfm模型。

在tfserving服务器上设置完预设deepfm模型后,如果向tfserving服务器请求服务,需要采用proto3中的grpc协议访问predict函数。其中,grpc是一个高性能、通用的开源rpc框架。由于proto3协议支持的语言有限,因此在实际操作过程中,可能会出现不能使用grpc协议的情况。故,在本实施例中采用了proxy服务作为中间件,将grpc协议转换成通用协议。

综上,根据数据推荐请求,从tfserving服务器上,获取预设deepfm模型的步骤,具体如下:

假设数据推荐请求为json(javascriptobjectnotation)格式的请求,将该数据推荐请求以sokcet报文形式发送给proxy服务后,proxy服务将解析json格式的数据推荐请求,并将其封装成grpc格式的请求。然后,proxy服务将grpc格式的请求发送给tfserving服务器,并接收tfserving服务器返回的预设deepfm模型相关信息,再将预设deepfm模型的相关信息封装成sokcet报文返回,即可以获取到预设deepfm模型。在一些实施例中,可以将proxy服务和tfserving服务设置在同一台服务器上,以降低数据推荐请求的时延。

需要说明的是,由于tfserving服务器采用多线程运行,因此接收数据推荐请求和加载预设deepfm模型两个操作可以同时进行,不会相互打断。

步骤s208,根据预设deepfm模型以及特征数据,生成更新数据。

由于预设deepfm模型是fm模型和dnn模型的结合,因此可以结合fm模型、dnn模型以及特征数据,生成更新数据,具体步骤如下:

(a)采用fm模型,将特征数据向量化。

(b)将向量化的特征数据,输入dnn模型,生成第一输出结果。

(c)根据第一输出结果,以及fm模型对应的第二输出结果,生成更新数据。

具体的,在获取到第一输出结果和第二输出结果后,可以结合sigmoid函数,来生成更新数据。假设第一输出结果为y1,第二输出结果为y2,则更新数据y=sigmoid(w1*y1+w2*y2+bias),其中w1、w2以及bias为参数,上述参数的值可以使用历史特征数据,对第一deepfm模型进行训练生成,具体如步骤s202所示。

步骤s209,根据更新数据,以及初始推荐数据,生成目标推荐数据。

在一些实施例中,可以使用该更新数据,对初始推荐数据进行更新,从而生成目标推荐数据。假设,初始推荐数据包括一歌曲推荐列表,更新数据也为一歌曲推荐列表。则可以查找初始推荐数据和更新数据中重合的歌曲,并将重合的歌曲设置为目标推荐数据。

在一些实施例中,由于受计算能力的限制,在获取到用户的数据推荐请求后,可能不能实时响应该数据推荐请求,即可能会因为计算时间过长,造成不能及时生成更新数据的情况。在上述生成的更新数据为空的情况下,可以直接将初始推荐数据作为目标推荐数据,这样不仅避免了用户过长时间的等待数据推送,还减少了计算的压力。

步骤s210,将目标推荐数据,推送给用户。

具体的,可以通过将目标推荐数据展示在终端界面上,实现将目标推荐数据推送给用户的目的。

本发明实施例的数据推荐方法,先通过根据预设deepfm模型以及特征数据,生成更新数据,再根据更新数据以及初始推荐数据,生成目标推荐数据,最后将目标推荐数据推送给用户,提高了数据推荐的效率。

根据上述实施例所描述的方法,本实施例将从数据推荐装置的角度进一步进行描述,该数据推荐装置可以集成在电子设备中

请参照图4,图4为本发明实施例提供的数据推荐装置的结构图,该装置30可以包括第一获取模块301、转换模块302、第一生成模块303、第二生成模块304和推送模块305。

(1)第一获取模块301

第一获取模块301,用于获取用户的数据推荐请求,并根据数据推荐请求,获取预设deepfm模型,用户对应的初始推荐数据,以及用户对应的特征数据。

当用户对终端进行相关操作时,会生成数据推荐请求。其中,该操作包括更新操作、查询操作等。例如,使用手机听歌时,在手机界面上点击“再来一首”按钮时,将触发生成数据推荐请求,然后第一获取模块301获取该数据推荐请求,根据该数据推荐请求,获取预设deepfm模型,该用户对应的初始推荐数据,以及该用户对应的特征数据,来分析用户的喜好,以向用户推荐合适的歌曲曲目。

其中,初始推荐数据是指预存的推荐数据,比如歌曲列表、视频列表等。可以设置一存储区来存储初始推荐数据、用户标识以及二者之间的关联关系。当第一获取模块301获取到用户的数据推荐请求后,即可从该存储区中查找与该用户匹配的用户标识,再获取该用户标识对应的初始推荐数据。

特征数据可以通过收集用户信息,从用户信息中提取。具体的,第一获取模块301可以从用户信息中选取用户的属性信息、操作信息以及该操作信息对应的上下文信息等信息,来提取特征数据。

在一些实施例中,该用户对应的特征数据采用线上存储方式。具体的,可以采用myslq或oracle等数据库来存储该特征数据。优选的,还可以采用cmem(cloudmemcache,内存持久化存储)进行存储,cmem采用key-value形式存储特征数据,可以加快第一获取模块301读取特征数据。

预设deepfm模型是采用数据集,对第一deepfm模型训练生成。其中第一deepfm模型中具有参数,在训练的过程中,可以得到该参数的参数值。将该参数值代入该第一deepfm模型,即可得到预设deepfm模型。

需要说明的是,第一deepfm模型由fm(factorizationmachine,因子分解机)模型和dnn(deepneuralnetworks,深度神经网络)模型结合生成。其中,fm模型是一种基于矩阵分解的机器学习算法,其使用特征向量来变换因子分解模型,通过低阶关系之间的内积表示为因子之间的交互关系。fm模型具有自动组合特征的优点,从而可以大量减少特征工程的工作。dnn模型可以同时兼顾高阶特征组合和低阶特征组合,在本实施例中,第一deepfm模型可以结合dnn模型和fm模型二者的优势,可以自动生成低阶特征和高阶特征,提高了特征工程方面的处理效率。

下面详细介绍预设deepfm模型的生成过程:

在一些实施例中,如图4所示,装置30还包括:第二获取模块306、训练模块307和生成模块308。

第二获取模块306用于实时获取用户的历史特征数据。在一些实施例中,第二获取模块306可以通过收集用户信息,从用户信息中提取历史特征数据。具体的,第二获取模块306可以从用户信息中选取用户的属性信息、历史操作信息以及该历史操作信息对应的上下文信息等信息,来提取用于模型训练的历史特征数据。

其中,用户的属性信息是指人在自然规律作用下的生物特性,以及在社会环境和条件作用下的社会属性,其体现的是人的固有性质和特点。具体的,人口属性包括用户的性别、年龄以及地域等信息。历史操作信息是指用户与终端交互过程中产生的信息,具体包括:操作类型、操作时间信息以及操作对象等等。例如,操作对象可以为音频、视频以及文本等,对音频的操作类型包括删除音频、收藏音频以及下载音频等,对音频的操作时间信息包括删除音频的时间、收藏音频的时长以及下载音频的时间等。历史操作信息对应的上下文信息是指与历史操作信息相关联的信息,比如终端的操作系统、收听音频时的入口等。例如,收听某一歌曲时,可以在搜索框中输入歌曲名进入,也可以从收藏的歌曲中进入。

需要说明的是,由于用户与终端处于不断的交互过程,相应的,用户信息也不断在更新,因此,需要第二获取模块306实时从用户信息中获取历史特征数据。在一些实施例中,可以采用离线存储的方式存储历史特征数据。这样训练模块307可以在离线情况下,使用历史特征数据对第一deepfm模型进行训练,以减少网络开销。

下面详细介绍训练模块307。训练模块307用于使用历史特征数据,对第一deepfm模型进行训练,生成多个训练结果。第一deepfm模型中具有参数,训练模块307通过使用上述历史特征数据,在tensorflow集群上训练该第一deepfm模型,得到第一deepfm模型中参数对应的参数值,即得到训练结果。

生成模块308用于根据多个训练结果以及第一deepfm模型,生成预设deepfm模型。在一些实施例中,如图5所示,生成模块308包括:生成子模块3081、第一获取子模块3082以及选取子模块3083。

生成子模块3081,用于根据多个训练结果以及第一deepfm模型,生成多个第二deepfm模型。具体的,生成子模块3081可以将该训练结果作为参数值,代入上述第一deepfm模型中,即可得到第二deepfm模型。需要说明的是,由于具有多个训练结果,相应的,也会生成多个第二deepfm模型。

第一获取子模块3082用于获取多个第二deepfm模型的版本信息。训练结果不同,生成子模块3081对应生成的第二deepfm模型也不同。在多个第二deepfm模型中,根据最近生成的第二deepfm模型,生成的目标推荐数据,准确性更高。

综上,为了提高数据推荐的准确性,需要获取该多个第二deepfm模型的版本信息,从该多个第二deepfm模型中,挑选出最新版本的第二deepfm模型。预先的,可以根据第二deepfm模型生成的时间信息,对该多个第二deepfm模型进行版本划分。其中,第二预设deepfm模型生成的时间越短,其版本越高,生成的时间越长,其版本越低。

具体的,该时间信息包括时间戳,其中,时间戳是表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,通常是一个字符序列,以唯一标识某一刻的时间。假设,某个特定时间为1970年1月1日,第二deepfm模型的生成时间为2018年4月10日10:04:35,其对应的时间戳为第二设deepfm模型的生成时间到该特定时间之间的秒数--1523325885。综上,可以用1523325885作为该第二deepfm模型的版本号,以唯一标识该第二deepfm模型。综上,第一获取子模块3082可以通过获取多个第二deepfm模型的版本号,来得到版本信息。

选取子模块3083,用于根据版本信息,从多个第二deepfm模型中,选取出预设deepfm模型。具体的,选取子模块3083可以从该多个第二deepdm模型中,选取版本号最大的第二deepfm模型作为该预设deepfm模型。

(2)转换模块302

在一些实施例中,如图6所示,转换模块302包括转换子模块3021和第二获取子模块3022。转换子模块3021,用于采用proxy服务作为中间件服务,将数据推荐请求转换成grpc格式的请求;第二获取子模块3022,用于通过grpc格式的请求,从tfserving服务器上,获取预设deepfm模型。

具体的,假设数据推荐请求为json格式的请求,转换子模块3021将该数据推荐请求以sokcet报文形式发送给proxy服务后,proxy服务将解析json格式的数据推荐请求,并将其封装成grpc格式的请求。然后,proxy服务将grpc格式的请求发送给tfserving服务器,并接收tfserving服务器返回的预设deepfm模型相关信息,再将预设deepfm模型的相关信息封装成sokcet报文返回,即第二获取子模块3022可以获取到预设deepfm模型。在一些实施例中,可以将proxy服务和tfserving服务设置在同一台服务器上,以降低数据推荐请求的时延。

需要说明的是,由于tfserving服务器采用多线程运行,因此接收数据推荐请求和加载预设deepfm模型两个操作可以同时进行,不会相互打断。

需要说明的是,由于tfserving服务器服务为cpu密集型服务,因此为了实现tfserving服务器上资源分配的最优化,可以使tfserving服务器每隔一段时间,去指定目录下,查询是否存在预设deepfm模型,如果有,则加载该预设deepfm模型。

(3)第一生成模块303

第一生成模块303,用于根据预设deepfm模型以及特征数据,生成更新数据。预设deepfm模型包括fm模型和dnn模型,如图7所示,第一生成模块303包括:向量化子模块3021、输入子模块3022和更新子模块3023。

向量化子模块3021,用于采用fm模型,将特征数据向量化;输入子模块3022,用于将向量化的特征数据,输入dnn模型,生成第一输出结果;更新子模块3023,用于根据第一输出结果,以及fm模型对应的第二输出结果,生成更新数据。

具体的,在获取到第一输出结果和第二输出结果后,更新子模块3023可以结合sigmoid函数,来生成更新数据。假设第一输出结果为y1,第二输出结果为y2,则更新数据y=sigmoid(w1*y1+w2*y2+bias),其中w1、w2以及bias为参数,上述参数的值可以使用历史特征数据,对第一deepfm模型进行训练生成。

(4)第二生成模块304

第二生成模块304,用于根据更新数据,以及初始推荐数据,生成目标推荐数据。在一些实施例中,第二生成模块304可以使用该更新数据,对初始推荐数据进行更新,从而生成目标推荐数据。假设,初始推荐数据包括一歌曲推荐列表,更新数据也为一歌曲推荐列表。则第二生成模块304可以查找初始推荐数据和更新数据中重合的歌曲,并将重合的歌曲设置为目标推荐数据。

在一些实施例中,由于受计算能力的限制,在获取到用户的数据推荐请求后,可能不能实时响应该数据推荐请求,即可能会因为计算时间过长,造成不能及时生成更新数据的情况。在上述生成的更新数据为空的情况下,第二生成模块304可以直接将初始推荐数据作为目标推荐数据,这样不仅避免了用户过长时间的等待数据推送,还减少了计算的压力。

(4)推送模块305

推送模块305,用于将目标推荐数据,推送给用户。具体的,推送模块305可以通过将目标推荐数据展示在终端界面上,实现将目标推荐数据推送给用户的目的。

本发明实施例的数据推荐装置,先通过根据预设deepfm模型以及特征数据,生成更新数据,再根据更新数据以及初始推荐数据,生成目标推荐数据,最后将目标推荐数据推送给用户,提高了数据推荐的效率。

相应的,本发明实施例还提供一种电子设备,如图8所示,其示出了本发明实施例所涉及的电子设备的结构示意图,具体来讲:

该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图8中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。

存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。

电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:

获取用户的数据推荐请求,并根据数据推荐请求,获取用户对应的初始推荐数据,以及用户对应的特征数据;

将数据推荐请求转换成预设格式的请求,并根据预设格式的请求,从模型服务器上获取预设deepfm模型,其中预设格式的请求满足模型服务器的识别要求;

根据预设deepfm模型以及特征数据,生成更新数据;

根据更新数据,以及初始推荐数据,生成目标推荐数据;

将目标推荐数据,推送给用户。

该电子设备可以实现本发明实施例所提供的任一种数据推荐装置所能实现的有效效果,详见前面的实施例,在此不再赘述。

本发明实施例的电子设备,先通过根据预设deepfm模型以及特征数据,生成更新数据,再根据更新数据以及初始推荐数据,生成目标推荐数据,最后将目标推荐数据推送给用户,提高了数据推荐的效率。

本文提供了实施例的各种操作。在一个实施例中,所述的一个或多个操作可以构成一个或多个计算机可读介质上存储的计算机可读指令,其在被电子设备执行时将使得计算设备执行所述操作。描述一些或所有操作的顺序不应当被解释为暗示这些操作必需是顺序相关的。本领域技术人员将理解具有本说明书的益处的可替代的排序。而且,应当理解,不是所有操作必需在本文所提供的每个实施例中存在。

而且,尽管已经相对于一个或多个实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件、资源等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或多个其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。

本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。上述的各装置或系统,可以执行相应方法实施例中的方法。

综上所述,虽然本发明已以实施例揭露如上,实施例前的序号仅为描述方便而使用,对本发明各实施例的顺序不造成限制。并且,上述实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。

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