查询推荐方法、装置、电子设备及可读存储介质
文献发布时间:2023-06-19 12:27:31
技术领域
本发明涉及机器学习技术领域,尤其涉及一种查询推荐方法、装置、电子设备及可读存储介质。
背景技术
在使用基于机器学习的网络模型进行搜索排序或推荐排序时,需要用到用户以及物料的相关特征。由于不同特征的数值所代表的含义和数值范围通常会不一致,因此需要通过特征处理将不同特征归一化至同一尺度范围内,以方便利用机器模型进行处理。
目前,在开发相关机器模型时,通常在离线环境下进行。如图1所示,为根据现有技术的查询推荐方法的流程示意图,其中采用离线方式获取目标模型。离线过程一般采用基于Python的特征处理方法,也即使用PySpark,按照预先定义的特征处理配置进行特征处理,得到训练数据,然后利用这些训练数据训练得到理想的模型,将该模型发布至生产环境。之后,生产环境需要按照定义好的特征处理配置,使用基于Java的特征处理方法,对生产过程实际的用户物料基础特征进行特征处理,得到特征处理结果,并基于此进行生成实际预测。
发明内容
本发明提供一种查询推荐方法、装置、电子设备及可读存储介质,用以解决现有技术开发流程复杂,效率低,且易出现错误,维护成本较高的缺陷,实现简化开发流程,提高开发效率并降低维护成本的目标。
本发明提供一种查询推荐方法,包括:
获取用户输入的查询请求,并基于所述查询请求,获取用户物料的基础特征;
利用预设特征处理配置和预设特征处理算子,对所述基础特征进行特征处理,获取目标特征;
基于所述目标特征,利用查询推荐模型,输出匹配的查询推荐结果;
其中,所述查询推荐模型为利用训练样本特征进行离线训练获取,所述训练样本特征为利用所述预设特征处理配置和所述预设特征处理算子,对离线环境下的用户物料样本特征进行特征处理获取。
根据本发明一个实施例的查询推荐方法,在所述利用查询推荐模型,输出匹配的查询推荐结果之前,还包括:
离线获取预定数量的历史查询请求,并基于所述历史查询请求,获取所述用户物料样本特征;
利用所述预设特征处理配置和所述预设特征处理算子,对所述用户物料样本特征进行特征处理,获取所述训练样本特征;
基于用户设定的查询需求,搭建初始查询推荐模型,并利用所述训练样本特征,训练所述初始查询推荐模型,获取所述查询推荐模型。
根据本发明一个实施例的查询推荐方法,在所述利用预设特征处理配置和预设特征处理算子,对所述基础特征进行特征处理之前,还包括:
获取文件格式标准,并基于所述文件格式标准,生成特征处理配置文件,且获取所述预设特征处理配置。
根据本发明一个实施例的查询推荐方法,所述设定文件格式标准,包括:
设定所述文件格式标准如下:
process_handler:featureHandler
feature_name:feature_name_a,feature_name_b
val_source:item:feature_a,item:feature_b
process_function:featureProcess
parameters:param
其中,process_handler表示特征处理函数所属的类,feature_name表示特征处理得到的目标特征的名称,val_source表示特征处理输入的基础特征,item表示基础特征的来源,process_function表示特征处理函数,由Java语言实现,parameters表示特征处理所需要的参数。
根据本发明一个实施例的查询推荐方法,所述对所述用户物料样本特征进行特征处理,获取所述训练样本特征,包括:
采用spark计算引擎,读取所述用户物料样本特征,并将所述用户物料样本特征转换为DataFrame格式;
将所述文件格式标准翻译为SQL查询语句;
将DataFrame格式的用户物料样本特征注册为临时表;
通过对所述临时表应用所述SQL查询语句,进行离线特征处理,获取特征处理的输出结果作为所述训练样本特征。
根据本发明一个实施例的查询推荐方法,所述对所述基础特征进行特征处理,获取目标特征,包括:
在全局变量中获取所述基础特征和特征处理所需要的参数;
将所述基础特征和所述特征处理所需要的参数传入特征处理函数中,进行特征处理计算,获取所述目标特征。
根据本发明一个实施例的查询推荐方法,所述利用所述预设特征处理配置和所述预设特征处理算子,对所述用户物料样本特征进行特征处理,包括:
利用spark计算引擎API,封装所述预设特征处理算子,获取封装后的特征处理算子;
在所述预设特征处理配置下,利用所述封装后的特征处理算子,对所述用户物料样本特征进行特征处理计算,获取所述训练样本特征。
本发明还提供一种查询推荐装置,包括:
获取模块,用于获取用户输入的查询请求,并基于所述查询请求,获取用户物料的基础特征;
计算模块,用于利用预设特征处理配置和预设特征处理算子,对所述基础特征进行特征处理,获取目标特征;
输出模块,用于基于所述目标特征,利用查询推荐模型,输出匹配的查询推荐结果;
其中,所述查询推荐模型为利用训练样本特征进行离线训练获取,所述训练样本特征为利用所述预设特征处理配置和所述预设特征处理算子,对离线环境下的用户物料样本特征进行特征处理获取。
根据本发明一个实施例的查询推荐装置,还包括建模模块,用于:
离线获取预定数量的历史查询请求,并基于所述历史查询请求,获取所述用户物料样本特征;
利用所述预设特征处理配置和所述预设特征处理算子,对所述用户物料样本特征进行特征处理,获取所述训练样本特征;
基于用户设定的查询需求,搭建初始查询推荐模型,并利用所述训练样本特征,训练所述初始查询推荐模型,获取所述查询推荐模型。
根据本发明一个实施例的查询推荐装置,所述计算模块,还用于:
在所述利用预设特征处理配置和预设特征处理算子,对所述基础特征进行特征处理之前,获取文件格式标准,并基于所述文件格式标准,生成特征处理配置文件,且获取所述预设特征处理配置。
根据本发明一个实施例的查询推荐装置,所述计算模块在用于设定文件格式标准时,用于,设定所述文件格式标准如下:
process_handler:featureHandler
feature_name:feature_name_a,feature_name_b
val_source:item:feature_a,item:feature_b
process_function:featureProcess
parameters:param
其中,process_handler表示特征处理函数所属的类,feature_name表示特征处理得到的目标特征的名称,val_source表示特征处理输入的基础特征,item表示基础特征的来源,process_function表示特征处理函数,由Java语言实现,parameters表示特征处理所需要的参数。
根据本发明一个实施例的查询推荐装置,所述建模模块在用于所述对所述用户物料样本特征进行特征处理,获取所述训练样本特征时,用于:
采用spark计算引擎,读取所述用户物料样本特征,并将所述用户物料样本特征转换为DataFrame格式;
将所述文件格式标准翻译为SQL查询语句;
将DataFrame格式的用户物料样本特征注册为临时表;
通过对所述临时表应用所述SQL查询语句,进行离线特征处理,获取特征处理的输出结果作为所述训练样本特征。
根据本发明一个实施例的查询推荐装置,所述计算模块在用于所述对所述基础特征进行特征处理,获取目标特征时,用于:
在全局变量中获取所述基础特征和特征处理所需要的参数;
将所述基础特征和所述特征处理所需要的参数传入特征处理函数中,进行特征处理计算,获取所述目标特征。
根据本发明一个实施例的查询推荐装置,所述计算模块,用于:
利用spark计算引擎API,封装所述预设特征处理算子,获取封装后的特征处理算子;
在所述预设特征处理配置下,利用所述封装后的特征处理算子,对所述用户物料样本特征进行特征处理计算,获取所述训练样本特征。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述处理器执行所述程序或指令时,实现如上述任一种所述的查询推荐方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有程序或指令,所述程序或指令被计算机执行时,实现如上述任一种所述的查询推荐方法的步骤。
本发明提供的查询推荐方法、装置、电子设备及可读存储介质,通过设定离线环境和线上环境可以共用的特征处理配置和特征处理算子,保证了线上、线下配置和处理算子的一致性,从而能够有效简化开发流程,提高开发效率并降低维护成本。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据现有技术的查询推荐方法的流程示意图;
图2为本发明提供的查询推荐方法的流程示意图之一;
图3为本发明提供的查询推荐方法的流程示意图之二;
图4为本发明提供的查询推荐装置的结构示意图;
图5为本发明提供的电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明针对现有技术中查询推荐开发流程复杂,效率低,且易出现错误,维护成本较高的问题,通过设定离线环境和线上环境可以共用的特征处理配置和特征处理算子,保证了线上、线下配置和处理算子的一致性,从而能够有效简化开发流程,提高开发效率并降低维护成本。以下将结合附图,具体通过多个实施例对本发明进行展开说明和介绍。
在生产环境中,用于查询推荐的线上服务会接收单个用户的查询请求,之后会向用户展示不同的物料。向不同用户展示的物料不同,物料展示的位置也不同,这是通过对物料及用户的属性计算得到的。在计算时,线上服务会对用户及物料的属性进行处理,即特征处理。
目前,特征处理是按照既定的流程进行的。如图1所示,在生产环境部分,接收到单个用户查询请求后,对该请求进行解析,获取该用户及物料的特征,并根据已有的特征处理配置,对用户及物料的特征进行处理。处理方法使用Java语言实现,最终得到需要的特征,并将该特征作为参数请求模型服务获取推理结果,将结果展示给用户。
离线环境则充分利用已有的数据进行学习,将学习到的模式应用到模型服务中,用于处理线上的请求。在离线环境中,与生产环境不同的是,没有单个用户的请求,而是有已经落入数据仓库的海量请求。为充分利用海量数据的优势,提高特征处理效率,将上百万条请求数据的整体进行特征处理,特征处理同样按照既定的流程进行。
但是,由于目前离线环境和生产环境在进行特征处理时采用两套完全独立的配置和底层语言,导致开发流程复杂,效率低,且易出现错误,维护成本较高。同时,由于离线与线上处理的数据存在差异,因此在特征处理配置格式、特征处理方法的实现上同样存在差异,这样会带来离线与线上特征处理结果不一致的风险。
为解决上述问题,如图2所示,为本发明提供的查询推荐方法的流程示意图之一,该方法包括:
S201,获取用户输入的查询请求,并基于所述查询请求,获取用户物料的基础特征。
可以理解为,在生产环境中,用于推荐的线上服务可以接收单个用户的请求,该请求用于向线上服务请求查询相应的信息,可称为是查询请求。
应理解的是,查询请求中携带有用户的用户属性信息以及期望得到的信息或物料的特征信息,这些信息可统称为是用户的用户物料的基础特征。
在获取到用户的查询请求后,可以对该查询请求进行解析运算,从而解析出其中携带的用户物料的基础特征。
S202,利用预设特征处理配置和预设特征处理算子,对所述基础特征进行特征处理,获取目标特征。
可以理解为,本步骤是对用户提供的用户物料的基础特征进行特征处理,得到最终需要的形式的特征,该形式的特征具有能够被查询推荐模型识别的形式,可称为是目标特征。并且,在进行特征处理时,是在预先设定的预设特征处理配置下,将基础特征输入到预设特征处理算子中进行特征处理计算实现的。
应理解的是,本发明中在进行特征处理时,根据需要预先定义了新的特征处理配置和特征处理算子,为进行区分,分别称为预设特征处理配置和预设特征处理算子。有别于现有技术,该预设特征处理配置和预设特征处理算子可以被离线环境和生产环境进行特征处理时共用。
S203,基于所述目标特征,利用查询推荐模型,输出匹配的查询推荐结果。
其中,所述查询推荐模型为利用训练样本特征进行离线训练获取,所述训练样本特征为利用所述预设特征处理配置和所述预设特征处理算子,对离线环境下的用户物料样本特征进行特征处理获取。
可以理解为,在获取到生产环境中目标特征的基础上,可以将该目标特征输入到用于查询推荐运算的查询推荐模型中,利用查询推荐模型进行查询计算,最终输出与用户的查询请求匹配的结果,可称为是查询推荐结果。
应理解的是,其中的查询推荐模型是事先在离线环境中利用训练样本特征进行训练获取的,而其中的训练样本特征又是在离线环境中,在预设特征处理配置下,利用预设特征处理算子,通过对大量的请求数据中的用户物料样本特征进行特征处理获取到的。
本发明提供的查询推荐方法,通过设定离线环境和线上环境可以共用的特征处理配置和特征处理算子,保证了线上、线下配置和处理算子的一致性,从而能够有效简化开发流程,提高开发效率并降低维护成本。也就是说,使用一份配置能够直接应用于离线环境和生产环境,保证了特征处理流程的一致性,降低离线环境与生产环境特征处理结果不一致的风险,同时提高了算法优化的效率。
其中,根据上述各实施例提供的查询推荐方法可选的,如图3所示,为本发明提供的查询推荐方法的流程示意图之二,图中在所述利用查询推荐模型,输出匹配的查询推荐结果之前,本发明的方法还包括:
离线获取预定数量的历史查询请求,并基于所述历史查询请求,获取所述用户物料样本特征;
利用所述预设特征处理配置和所述预设特征处理算子,对所述用户物料样本特征进行特征处理,获取所述训练样本特征;
基于用户设定的查询需求,搭建初始查询推荐模型,并利用所述训练样本特征,训练所述初始查询推荐模型,获取所述查询推荐模型。
可以理解为,如图3所示,生产环境进行查询推荐中用到的查询推荐模型是事先在离线环境中利用训练样本进行训练获取的。在离线环境下,首先会获取到大量的历史请求数据,也即历史查询请求,并通过解析这些历史查询请求,得到其中携带的数据信息,也即用户物料样本特征。
之后,从特征处理配置库中读取并解析预设特征处理配置,这些预设特征处理配置是与生产环境共用的配置。然后,在这些预设特征处理配置下,从特征处理算子库中读取基于Java的特征处理算子,也即预设特征处理算子,并使用这些预设特征处理算子对用户物料样本特征进行特征处理,得到离线特征处理的结果,可称为训练样本特征。
再之后,根据用户的查询需求,如查询范围、查询精度、输入、输出数量等,确定网络拓扑结构和初始网络参数,并据此搭建初始模型,可称为是初始查询推荐模型。然后,利用上述步骤得到的训练样本特征,对初始查询推荐模型进行循环迭代训练,最终得到精度达到设定标准的模型可作为最终的查询推荐模型。
本发明通过离线环境与生产环境共用一份配置、使用相同处理逻辑的特征处理算子,保证了生产与离线环境特征处理结果的一致性,使离线环境与生产环境在各个阶段使用相同的配置、算子,保证了准确性,同时提高了开发效率。
其中,根据上述各实施例提供的查询推荐方法可选的,在所述利用预设特征处理配置和预设特征处理算子,对所述基础特征进行特征处理之前,还包括:获取文件格式标准,并基于所述文件格式标准,生成特征处理配置文件,且获取所述预设特征处理配置。
可以理解为,为实现离线环境与生产环境使用同一份配置,对配置文件进行规范化处理,具体可以先设定或定义规范的特征处理配置格式,也即文件格式标准,再在生成特征处理配置文件时获取该文件格式标准,并依照该文件格式标准,根据需要生成具有标准格式的配置文件,该配置文件中记录的配置信息即是预设特征处理配置。
其中,根据上述各实施例提供的查询推荐方法可选的,所述设定文件格式标准,包括:
设定所述文件格式标准如下:
process_handler:featureHandler
feature_name:feature_name_a,feature_name_b
val_source:item:feature_a,item:feature_b
process_function:featureProcess
parameters:param
其中,process_handler表示特征处理函数所属的类,feature_name表示特征处理得到的目标特征的名称,val_source表示特征处理输入的基础特征,item表示基础特征的来源,process_function表示特征处理函数,由Java语言实现,parameters表示特征处理所需要的参数。
可以理解为,本发明实施例中可将预设特征处理配置设定为如上形式,该配置可被离线环境和生产环境共用。在上述特征处理配置文件格式中,val_source中的冒号表示该特征的来源,例如item:feature_a表示feature_a这个特征来自item。
上述配置可理解为:对来自item的特征feature_a和feature_b进行特征处理,使用featureHandler下的featureProcess方法处理,在处理时需要额外的参数param,最终得到feature_name_a和feature_name_b两个特征。
在离线环境下,feature_a和feature_b可表示用户物料样本特征,相应的feature_name_a和feature_name_b表示训练样本特征。在生产环境下,feature_a和feature_b可表示用户物料基础特征,相应的feature_name_a和feature_name_b表示目标特征。
其中,根据上述各实施例提供的查询推荐方法可选的,所述对所述用户物料样本特征进行特征处理,获取所述训练样本特征,包括:采用spark计算引擎,读取所述用户物料样本特征,并将所述用户物料样本特征转换为DataFrame格式;将所述文件格式标准翻译为SQL查询语句;将DataFrame格式的用户物料样本特征注册为临时表;通过对所述临时表应用所述SQL查询语句,进行离线特征处理,获取特征处理的输出结果作为所述训练样本特征。
可以理解为,结合上述实施例可见,为实现离线环境与生产环境使用同一份配置,对配置文件进行规范化处理,得到规范化的配置,也即预设特征处理配置。具体在离线环境中,预设特征处理配置的执行过程可包括:
首先,使用spark读取离线环境下的离线数据并将其转换为DataFrame格式。
其次,将上述预设特征处理配置的文件格式标准翻译为SQL查询语句,翻译结果如下:
SELECT
featureProcess(feature_a,param)as feature_name_a,
featureProcess(feature_b,param)as feature_name_b
FROM item;
其中,featureProcess为离线环境的用户自定义函数,也即对生产环境基于Java的特征处理算子进行封装后的特征处理函数。
再次,将DataFrame格式的离线数据注册为临时表。
最后,对上述临时表应用上述翻译得到的SQL语句,获取对用户物料样本特征进行特征处理的结果,也即训练样本特征。
本发明在离线环境下自动将配置文件翻译为SQL查询语句,进行离线特征批量处理,生产环境与离线环境的流程保证了两个环境使用同一份配置,该配置格式规范,保证了处理流程的准确性。
其中,根据上述各实施例提供的查询推荐方法可选的,所述对所述基础特征进行特征处理,获取目标特征,包括:在全局变量中获取所述基础特征和特征处理所需要的参数;将所述基础特征和所述特征处理所需要的参数传入特征处理函数中,进行特征处理计算,获取所述目标特征。
可以理解为,结合上述实施例可见,为实现生产环境与离线环境使用同一份配置,对配置文件进行规范化处理,规范的特征处理配置(即预设特征处理配置)中包含特征处理函数,该特征处理函数也可称为是特征处理算子。具体在生产环境中,预设特征处理配置的执行过程可包括:
首先,线上服务在全局变量中获取本次特征处理要处理的基础特征feature_a、feature_b以及特征处理参数param;
其次,将feature_a、feature_b以及param作为参数传入特征处理函数featureProcess中;
最后,获取本次特征处理的结果feature_name_a和feature_name_b。
本发明生产环境与离线环境使用同一份配置,能降低不一致的风险,且更方便、高效。
其中,根据上述各实施例提供的查询推荐方法可选的,所述利用所述预设特征处理配置和所述预设特征处理算子,对所述用户物料样本特征进行特征处理,包括:利用spark计算引擎API,封装所述预设特征处理算子,获取封装后的特征处理算子;在所述预设特征处理配置下,利用所述封装后的特征处理算子,对所述用户物料样本特征进行特征处理计算,获取所述训练样本特征。
可以理解为,目前,生产环境普遍使用Java语言实现特征处理算子对单个用户请求维度进行特征处理,而离线环境特征处理则是在PySpark下使用Python实现的用户自定义函数(UDF)对百万请求数据进行特征处理。Java语言与Python语言在数值精度等方面本身存在不一致,若在数值精度等方面处理不当,最终会导致处理结果的不一致。
为解决因底层语言及实现逻辑带来的处理结果不一致问题,本发明的生产环境与线上环境使用相同的特征处理算子,也即预设特征处理算子。具体的,本发明借助SparkAPI,对生产环境基于Java的特征处理算子(即预设特征处理算子)进行封装,得到适用于处理百万条数据的用户自定义函数,也即封装后的特征处理算子。之后,利用封装后的特征处理算子,结合预设特征处理配置,对用户物料样本特征进行特征处理计算,最终得到用于训练查询推荐模型的训练样本特征。
其中,基于Java的特征处理算子可表示如下:
public String featureProcess(String feature_a,String param){
String res=””;
//特征处理开始
//……
//特征处理结束
return res;
}
相应的,利用Spark API对基于Java的特征处理算子进行封装后,得到的封装后的特征处理算子可表示如下:
public class featureProcess implements UDF2
String res=””;
//特征处理开始
//……
//特征处理结束
return res;
}
}
本发明通过在离线环境下使用Spark API封装后的方法对海量数据进行处理,处理逻辑与生产环境的Java方法完全一致,保证了处理结果的一致性。也就是说,离线环境与生产环境使用相同的特征处理算子,特征处理算子由Java语言开发,借助Spark API生成UDF函数,减少因特征处理算子实现语言的差异引起的处理结果不一致问题。
基于相同的发明构思,本发明根据上述各实施例提供一种查询推荐装置,该装置用于在上述各实施例中实现查询推荐。因此,在上述各实施例的查询推荐方法中的描述和定义,可以用于本发明中各个执行模块的理解,具体可参考上述实施例,此处不在赘述。
根据本发明的一个实施例,查询推荐装置的结构如图4所示,为本发明提供的查询推荐装置的结构示意图,该装置可以用于实现上述各方法实施例中的查询推荐,该装置包括:获取模块401、计算模块402和输出模块403。其中:
获取模块401用于获取用户输入的查询请求,并基于所述查询请求,获取用户物料的基础特征;计算模块402用于利用预设特征处理配置和预设特征处理算子,对所述基础特征进行特征处理,获取目标特征;输出模块403用于基于所述目标特征,利用查询推荐模型,输出匹配的查询推荐结果。
其中,所述查询推荐模型为利用训练样本特征进行离线训练获取,所述训练样本特征为利用所述预设特征处理配置和所述预设特征处理算子,对离线环境下的用户物料样本特征进行特征处理获取。
具体而言,在生产环境中,用于推荐的线上服务中的获取模块401可以接收单个用户的请求,该请求用于向线上服务请求查询相应的信息,可称为是查询请求。在获取到用户的查询请求后,获取模块401可以对该查询请求进行解析运算,从而解析出其中携带的用户物料的基础特征。
之后,计算模块402对用户提供的用户物料的基础特征进行特征处理,得到最终需要的形式的特征,该形式的特征具有能够被查询推荐模型识别的形式,可称为是目标特征。并且,在进行特征处理时,是计算模块402在预先设定的预设特征处理配置下,将基础特征输入到预设特征处理算子中进行特征处理计算实现的。
最后,在获取到生产环境中目标特征的基础上,输出模块403可以将该目标特征输入到用于查询推荐运算的查询推荐模型中,利用查询推荐模型进行查询计算,最终输出与用户的查询请求匹配的结果,可称为是查询推荐结果。
应理解的是,其中的查询推荐模型是事先在离线环境中利用训练样本特征进行训练获取的,而其中的训练样本特征又是在离线环境中,在预设特征处理配置下,利用预设特征处理算子,通过对大量的请求数据中的用户物料样本特征进行特征处理获取到的。
本发明提供的查询推荐装置,通过设定离线环境和线上环境可以共用的特征处理配置和特征处理算子,保证了线上、线下配置和处理算子的一致性,从而能够有效简化开发流程,提高开发效率并降低维护成本。
可选地,本发明的查询推荐装置,还包括建模模块,用于:
离线获取预定数量的历史查询请求,并基于所述历史查询请求,获取所述用户物料样本特征;
利用所述预设特征处理配置和所述预设特征处理算子,对所述用户物料样本特征进行特征处理,获取所述训练样本特征;
基于用户设定的查询需求,搭建初始查询推荐模型,并利用所述训练样本特征,训练所述初始查询推荐模型,获取所述查询推荐模型。
可选地,所述计算模块,还用于:
在所述利用预设特征处理配置和预设特征处理算子,对所述基础特征进行特征处理之前,获取文件格式标准,并基于所述文件格式标准,生成特征处理配置文件,且获取所述预设特征处理配置。
可选地,所述计算模块在用于设定文件格式标准时,用于,设定所述文件格式标准如下:
process_handler:featureHandler
feature_name:feature_name_a,feature_name_b
val_source:item:feature_a,item:feature_b
process_function:featureProcess
parameters:param
其中,process_handler表示特征处理函数所属的类,feature_name表示特征处理得到的目标特征的名称,val_source表示特征处理输入的基础特征,item表示基础特征的来源,process_function表示特征处理函数,由Java语言实现,parameters表示特征处理所需要的参数。
可选地,所述建模模块在用于所述对所述用户物料样本特征进行特征处理,获取所述训练样本特征时,用于:
采用spark计算引擎,读取所述用户物料样本特征,并将所述用户物料样本特征转换为DataFrame格式;
将所述文件格式标准翻译为SQL查询语句;
将DataFrame格式的用户物料样本特征注册为临时表;
通过对所述临时表应用所述SQL查询语句,进行离线特征处理,获取特征处理的输出结果作为所述训练样本特征。
可选地,所述计算模块在用于所述对所述基础特征进行特征处理,获取目标特征时,用于:
在全局变量中获取所述基础特征和特征处理所需要的参数;
将所述基础特征和所述特征处理所需要的参数传入特征处理函数中,进行特征处理计算,获取所述目标特征。
可选地,所述计算模块,还用于:
利用spark计算引擎API,封装所述预设特征处理算子,获取封装后的特征处理算子;
在所述预设特征处理配置下,利用所述封装后的特征处理算子,对所述用户物料样本特征进行特征处理计算,获取所述训练样本特征。
可以理解的是,本发明中可以通过硬件处理器(hardware processor)来实现上述各实施例的装置中的各相关程序模块。并且,本发明的查询推荐装置利用上述各程序模块,能够实现上述各方法实施例的查询推荐流程,在用于实现上述各方法实施例中查询推荐时,本发明的装置产生的有益效果与对应的上述各方法实施例相同,可以参考上述各方法实施例,此处不再赘述。
作为本发明的又一个方面,本实施例根据上述各实施例提供一种电子设备,该电子设备包括存储器、处理器及存储在该存储器上并可在该处理器上运行的程序或指令,该处理器执行该程序或指令时,实现如上述各实施例所述的查询推荐方法的步骤。
进一步的,本发明的电子设备还可以包括通信接口和总线。参考图5,为本发明提供的电子设备的实体结构示意图,包括:至少一个存储器501、至少一个处理器502、通信接口503和总线504。
其中,存储器501、处理器502和通信接口503通过总线504完成相互间的通信,通信接口503用于该电子设备与用户请求设备之间的信息传输;存储器501中存储有可在处理器502上运行的程序或指令,处理器502执行该程序或指令时,实现如上述各实施例所述的查询推荐方法的步骤。
可以理解为,该电子设备中至少包含存储器501、处理器502、通信接口503和总线504,且存储器501、处理器502和通信接口503通过总线504形成相互间的通信连接,并可完成相互间的通信,如处理器502从存储器501中读取查询推荐方法的程序指令等。另外,通信接口503还可以实现该电子设备与用户请求设备之间的通信连接,并可完成相互间信息传输,如通过通信接口503实现用户查询请求的获取等。
电子设备运行时,处理器502调用存储器501中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取用户输入的查询请求,并基于所述查询请求,获取用户物料的基础特征;利用预设特征处理配置和预设特征处理算子,对所述基础特征进行特征处理,获取目标特征;基于所述目标特征,利用查询推荐模型,输出匹配的查询推荐结果等。
上述的存储器501中的程序指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。或者,实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明还根据上述各实施例提供一种非暂态计算机可读存储介质,其上存储有程序或指令,该程序或指令被计算机执行时,实现如上述各实施例所述的查询推荐方法的步骤,例如包括:获取用户输入的查询请求,并基于所述查询请求,获取用户物料的基础特征;利用预设特征处理配置和预设特征处理算子,对所述基础特征进行特征处理,获取目标特征;基于所述目标特征,利用查询推荐模型,输出匹配的查询推荐结果等。
作为本发明的再一个方面,本实施例根据上述各实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的查询推荐方法,该方法包括:获取用户输入的查询请求,并基于所述查询请求,获取用户物料的基础特征;利用预设特征处理配置和预设特征处理算子,对所述基础特征进行特征处理,获取目标特征;基于所述目标特征,利用查询推荐模型,输出匹配的查询推荐结果。
本发明提供的电子设备、非暂态计算机可读存储介质和计算机程序产品,通过执行上述各实施例所述的查询推荐方法的步骤,设定离线环境和线上环境可以共用的特征处理配置和特征处理算子,保证了线上、线下配置和处理算子的一致性,从而能够有效简化开发流程,提高开发效率并降低维护成本。
可以理解的是,以上所描述的装置、电子设备及存储介质的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到不同网络单元上。可以根据实际需要选择其中的部分或全部模块来实现本本发明方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解,各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令,用以使得一台计算机设备(如个人计算机,服务器,或者网络设备等)执行上述各方法实施例或者方法实施例的某些部分所述的方法。
另外,本领域内的技术人员应当理解的是,在本发明的申请文件中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明的说明书中,说明了大量具体细节。然而应当理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 查询推荐方法、装置、电子设备及可读存储介质
- 信息推荐方法、信息推荐装置、电子设备及可读存储介质