推荐模型的评估方法、装置及电子设备
文献发布时间:2023-06-19 12:02:28
技术领域
本申请涉及计算机技术领域,具体涉及智能搜索、深度学习等人工智能技术领域,尤其涉及一种推荐模型的评估方法、装置、电子设备、存储介质和计算机程序产品。
背景技术
目前,随着计算机技术的不断发展,推荐模型的应用频率日益增加,模型整个迭代周期包括离线建模、在线实验两阶段,离线建模包括模型设计、模型调研,在线实验包括在线小流量验证和模型全量应用。一个模型是否被应用在线上,或者说一个策略是否被采纳,实验的次数皆取决于模型评估的结果,即推荐模型的评估对其应用起着极其重要的作用,因此,对推荐模型进行评估的技术尤为重要。
发明内容
本申请提供一种推荐模型的评估方法、装置及电子设备。
根据本申请的第一方面,提供了一种推荐模型的评估方法,包括:
从历史使用日志中,获取多个用户信息、多种推荐数据标签及每个用户与每种推荐数据的关联信息;
将每个所述用户信息及所述多种推荐数据标签,输入待评估的推荐模型,以确定每个所述用户与每种推荐数据间的预测关联度;
根据每个所述用户与每种推荐数据间的预测关联度、及所述每个用户与每种推荐数据的关联信息间的差异程度,确定所述待评估的推荐模型的效果。
根据本申请的第二方面,提供了一种推荐模型的评估装置,包括:
第一获取模块,用于从历史使用日志中,获取多个用户信息、多种推荐数据标签及每个用户与每种推荐数据的关联信息;
第一确定模块,用于将每个所述用户信息及所述多种推荐数据标签,输入待评估的推荐模型,以确定每个所述用户与每种推荐数据间的预测关联度;
第二确定模块,用于根据每个所述用户与每种推荐数据间的预测关联度、及所述每个用户与每种推荐数据的关联信息间的差异程度,确定所述待评估的推荐模型的效果。
根据本申请的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述一方面实施例所述的推荐模型的评估方法。
根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其上存储有计算机程序,所述计算机指令用于使所述计算机执行上述一方面实施例所述的推荐模型的评估方法。
根据本申请的第五方面,提供了一种计算机程序产品,所述计算机程序被处理器执行时,实现上述一方面实施例所述的推荐模型的评估方法。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请实施例提供的一种推荐模型的评估方法的流程示意图;
图2为本申请实施例提供的一种确定待评估的推荐模型的效果的流程示意图;
图3为本申请实施例提供的一种对待评估的推荐模型中需要修正的网络层进行定位的流程示意图;
图4为本申请实施例提供的一种获取用户信息、推荐数据标签及关联信息的流程示意图;
图5为本申请实施例提供的一种具体地评估推荐模型的示意图;
图6为本申请实施例提供的一种推荐模型的评估装置的结构示意图;
图7为用来实现本申请实施例的推荐模型的评估方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
智能搜索是结合了人工智能技术的新一代搜索引擎。他除了能提供传统的快速检索、相关度排序等功能,还能提供用户角色登记、用户兴趣自动识别、内容的语义理解、智能信息化过滤和推送等功能。
深度学习是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能。深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助,它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。
需要说明的是,一个推荐模型是否被应用在线上,或者说一个策略是否被采纳,实验的次数皆取决于模型评估的结果。
相关技术中,对推荐模型进行评估的时候,一般都是在线上评估。在进行线上评估时,可能存在评估周期且评估周期较长的问题,而且通过这种评估方式无法提前预知模型的推荐效果。
为此,本申请实施例提出了一种推荐模型的评估方法、装置及电子设备。本申请实施例,根据用户信息、多种推荐数据标签及每个用户与每种推荐数据的关联信息,确定推荐模型的效果,即可以实现对推荐模型的离线评估,不仅节省了评估等待期,而且可以提前确定推荐模型的推荐效果。
下面参考附图描述本申请实施例的推荐模型的评估方法、装置及电子设备。
图1为本申请实施例提供的一种推荐模型的评估方法的流程示意图。
需要说明的是,本申请实施例的推荐模型的评估方法执行主体可以为电子设备,具体的,电子设备可以是但不限于服务器、终端,终端可以是但不限于个人电脑、智能手机、IPAD等。
本申请实施例以推荐模型的评估方法被配置于推荐模型的评估装置中来举例说明,该装置可以应用于电子设备中,以使该电子设备可以执行推荐模型的评估方法。
如图1所示,该推荐模型的评估方法包括以下步骤:
S101,从历史使用日志中,获取多个用户信息、多种推荐数据标签及每个用户与每种推荐数据的关联信息。
需要说明的是,在实际应用中,用户每次使用电子设备,例如通过电子设备进行内容搜索、点击,以使电子设备根据用户需求给用户推荐相关内容时,会产生一个日志流,每个日志流对应一个时间戳。本申请实施例中,可将记录用户历史利用电子设备进行推荐动作的日志称为历史使用日志,可将电子设备推荐至用户的数据称为推荐数据数据,可将该数据的标签称为推荐数据标签。
其中,每个用户与每种推荐数据的关联信息,可以用于表征每个用户对每个推荐数据的感兴趣程度,也可以理解为每个用户与每个推荐数据之间的关联度,也可以说,用户对推荐数据越感兴趣,则该用户与该推荐数据间的关联度越高;用户对推荐数据越不感兴趣,则该用户与该推荐数据间的关联度越低。
其中,历史使用日志,可包含使用电子设备的用户的用户信息,例如用户的账号、用户使用电子设备的时间等,也可包含推荐数据标签,例如商品标签、厂家标签等等,还可包含每个用户与每种推荐数据间的关联信息,例如用户A与推荐数据“学生的日常生活”之间的关联信息为较为关联,表示用户A对推荐数据“学生的日常生活”较为感兴趣。
具体地,在需要对推荐模型进行评估时,可从历史使用日志中,获取多个用户信息、多种推荐数据标签及每个用户与每种推荐数据的关联信息,即可得到多个用户信息、多种推荐数据标签及多个关联信息。其中,一个用户信息可对应一个用户,一种推荐数据标签可对应一种推荐数据。
需要说明的是,本申请实施例中确定多个用户信息、多种推荐数据标签及多个关联信息的方式可以为相关技术中的任何可行方式,只要可确定多个用户信息、多种推荐数据标签及多个关联信息即可,本申请实施例对此不做限制。
S102,将每个用户信息及多种推荐数据标签,输入待评估的推荐模型,以确定每个用户与每种推荐数据间的预测关联度。
本申请实施例,可将需要进行评估的推荐模型称为待评估的推荐模型。可以理解的是,在用户进行搜索或者点击操作时,电子设备可以基于推荐模型对用户进行相关内容的推荐,即推荐模型可根据其输入内容(用户的搜索内容或者点击内容)输出用户需要的数据,例如视频、文字、图像等。
本申请实施例中,可将待评估的推荐模型输出的每个用户与每种推荐数据间的关联度称为预测关联度,该关联度可以用于表征用户对推荐数据的感兴趣程度。可以理解,预测关联度越高,用户对推荐数据越感兴趣;预测关联度越低,用户对推荐数据越不感兴趣。
具体地,在获取到多个用户信息及多种推荐数据标签之后,可将每个用户信息及多种推荐数据标签,输入待评估的推荐模型,进而待评估的推荐模型可输出该用户信息对应的用户,与该多种推荐数据标签对应的多种推荐数据,之间的预测关联度。
S103,根据每个用户与每种推荐数据间的预测关联度、及每个用户与每种推荐数据的关联信息间的差异程度,确定待评估的推荐模型的效果。
需要说明的是,在得到每个用户与每种推荐数据的关联信息之后,即可得到每个用户分别与多种推荐数据间的多个关联信息,其中,多个关联信息之间可以是不同的,即多个关联信息之间可以是存在差异的,该差异可以表征每个用户分别对多种推荐数据的感兴趣程度。
具体地,在确定出每个用户与每种推荐数据间的预测关联度、及每个用户与每种推荐数据的关联信息之后,可进一步确定每个用户与每种推荐数据的关联信息间的差异程度,其中,预测关联度是基于待评估的推荐模型得到的,而关联信息是基于实际的或者真实的历史使用日志得到的,因而关联信息间的差异程度也是真实的,因此,可通过将预测关联度和差异程度进行对比确定待评估的推荐模型的效果。
具体而言,如果每个用户与每种推荐数据间的预测关联度,与实际的差异程度相匹配或者较为匹配,则可以确定出待评估的推荐模型的效果较好;如果每个用户与每种推荐数据间的预测关联度,与实际的差异程度不匹配或者匹配度较低,则可以确定出待评估的推荐模型的效果较差。
也就是说,如果从历史使用日志中,获取两个用户信息分别为Y1、Y2,两种推荐数据标签分别为B1、B2,其中,Y1对应用户1,Y2对应用户2,B1对应推荐数据S1、B2对应推荐数据S2,那么,可将Y1及标签B1、B2输入待评估的推荐模型,进而该模型可输出用户1与推荐数据S1之间的预测关联度G11、及用户1与推荐数据S2间的预测关联度G12;可将Y2及标签B1、B2输入待评估的推荐模型,进而该模型可输出用户2与推荐数据S1之间的预测关联度G21、及用户2与推荐数据S2间的预测关联度G22。还需获取用户1与推荐数据S1的关联信息W11、用户1与推荐数据S2的关联信息W12,以及用户2与推荐数据S1的关联信息W21、用户2与推荐数据S2的关联信息W22。之后,可确定关联信息W11与W12间的差异程度C1、及关联信息W11与W12间的差异程度C2。最后可根据预测关联度G11、G12及差异程度C1确定待评估的推荐模型的效果,可根据预测关联度G21、G22及差异程度C2确定待评估的推荐模型的效果,进而得到两个效果结果,可进一步根据该两个效果结果综合确定待评估模型的效果。
举例而言,如果用户A分别与两种推荐数据间的预测关联度为20%、80%,用户A与两种推荐数据的关联信息的差异程度较大,也可以说A与两种推荐数据的关联信息的差异程度为60%(两种关联信息中有60%的内容存在差异),则说明用户A与每种推荐数据间的预测关联度,与实际的差异程度相匹配或者较为匹配,那么可确定出待评估的推荐模型的效果较好。
本申请实施例的推荐模型的评估方法,根据用户信息、多种推荐数据标签及每个用户与每种推荐数据的关联信息,确定推荐模型的效果,即可以实现对推荐模型的离线评估,不仅节省了评估等待期,而且可以提前确定推荐模型的推荐效果。
需要说明的是,本申请实施例中,每个用户与每种推荐数据的关联信息可以是任何可用来表征用户对数据的感兴趣程度的量化信息,例如可以是用户浏览推荐数据的时长、用户搜索推荐数据中关键字的次数、用户点击推荐数据的概率(即用户对推荐数据的点击率)等等。
即在本申请的一个实施例中,每个用户与每种推荐数据的关联信息,可包括每个用户点击每种推荐数据的概率。
需要说明的是,用户点击推荐数据的概率越大,可说明该用户对该推荐数据越感兴趣;用户点击推荐数据的概率越小,可说明该用户对该推荐数据越不感兴趣。
具体地,可在历史使用日志中,获取每个用户点击每种推荐数据的概率。
在该实施例中,如图2所示,上述步骤S103中的确定待评估的推荐模型的效果,可包括以下步骤S201至S203。
S201,根据每个用户与每种推荐数据间的预测关联度,从多种推荐数据标签中获取待推荐数据标签。
本申请实施例中,可将从多种推荐数据中获取的推荐数据称为待推荐数据,该数据对应的标签即为待推荐数据标签。
具体地,在确定出每个用户与每种推荐数据间的预测关联度之后,可根据每个用户与每种推荐数据间的预测关联度,从多种推荐数据标签中获取待推荐数据标签。可以理解的是,一种推荐数据对应一种推荐数据标签,一种推荐数据标签可包括多个推荐数据标签。
其中,获取待推荐标签的依据,可以是预测关联度的高低顺序,例如可获取预测关联度较高的推荐数据对应的标签,可以获取一个或者多个待推荐数据标签,例如可根据预测关联度由大至小选择关联度最高的前100个数据标签。
S202,根据每个待推荐数据的标签,确定每种推荐数据标签在待推荐数据标签中的比例。
具体地,在获取到待推荐数据标签之后,可根据每个待推荐数据的标签,确定每种推荐数据标签在待推荐数据标签中的比例。
例如,如果三个待推荐数据标签为b1、b2及b3,而两种推荐数据标签为B1、B2,其中B1包括b1、b2,B2包括b3,那么,可确定出推荐数据标签为B1在待推荐数据标签b1、b2及b3中的比例为三分之二、B2在待推荐数据标签b1、b2及b3中的比例为三分之一。
S203,根据每种推荐数据标签在待推荐数据标签中的比例及每个用户点击每种推荐数据的概率,确定待评估的推荐模型的效果。
具体地,在确定出每种推荐数据标签在待推荐数据标签中的比例、及每个用户点击每种推荐数据的概率之后,根据该比例和概率,确定待评估的推荐模型的效果。
具体而言,可判断每种推荐数据标签在待推荐数据标签中的比例,与用户点击该种推荐数据的概率是否匹配或者匹配度较高,在匹配或者匹配度较高的情况下,则可说明待评估的推荐模型的推荐效果较好,即可以根据模型输入推荐出用户较为感兴趣或者满足用户需求的内容;反之,在比例与概率的匹配度较低或者完全不匹配的情况下,则可说明待评估的推荐模型的推荐效果较差。
也就是说,点击概率大的类型的数据在待推荐数据中占比大,可说明模型效果好;反之,点击概率大(小)的类型的数据在待推荐数据中占比小(大),可说明模型效果差。
例如,如果推荐数据标签为B1(对应推荐数据S1)在待推荐数据标签b1、b2及b3中的比例为三分之二、B2(对应推荐数据S2)在待推荐数据标签b1、b2及b3中的比例为三分之一,用户点击推荐数据S1的概率较大、点击推荐数据S2的概率较小,也即点击概率大的类型的数据S1在待推荐数据中的占比较大,那么可确定出待评估模型的推荐效果好。
由此,根据用户点击推荐数据的概率及该用户与该推荐数据间的预测关联度,确定模型的推荐效果,从而提高了确定的可靠性,使得到的模型效果更加可靠。
相关技术中,在进行在线实验中的在线小流量验证时,若模型小流量实验效果不符合预期,仅凭大盘核心指标等也无法直接推断出当前待评估的推荐模型存在何种策略设计问题,定位分析直观性不够。为了判断待评估的推荐模型是否存在问题,并在待评估的推荐模型存在问题时,可以确定该问题在待评估的推荐模型中的位置,本申请实施例提出了以下实施方式。
即在本申请的一个实施例中,如图3所示,推荐模型的评估方法,还可以包括以下步骤S301至S304。
S301,将每个用户信息及多种推荐数据标签,输入待评估的推荐模型,以确定待评估推荐模型中指定网络层对应的第一输出值及待评估的推荐模型输出的每个用户与每种推荐数据间的预测关联度。
其中,待评估推荐模型中指定网络层,可以理解为待评估的推荐模型中的任一前向网络层,也可以理解为指定网络节点(网络的输出节点,网络是由多个节点组成)。指定网络层的数量可以是一个也可以是多个,具体可根据实际情况或者实际需求确定。
其中,第一输出值,可以理解为将输入值输入至待评估的推荐模型之后,模型中的指定网络层输出的输出值,也可以称为前向输出值(即网络神经元的激活值)。
具体地,在确定出多个用户信息及多种推荐数据标签之后,为了判断待评估的推荐模型是否发生问题,可将每个用户信息及多种推荐数据标签,输入待评估的推荐模型。之后,可确定并获取待评估推荐模型中的指定网络层,基于每个用户信息及多种推荐数据标签输出的第一输出值,并获取待评估的推荐模型基于每个用户信息及多种推荐数据标签,最终输出的每个用户与每种推荐数据间的预测关联度(即待评估的推荐模型最终输出的值)。
需要说明的是,确定第一输出值的方式可以为相关技术中的任何可行的方式,只要可以实现待评估推荐模型中指定网络层对应的第一输出值的可靠获取即可,对此,本申请实施例不做任何限制。
S302,将每个用户信息及多种推荐数据标签,输入参考推荐模型,以确定参考推荐模型中指定网络层对应的第二输出值及参考推荐模型输出的每个用户与每种推荐数据间的参考关联度。
本申请实施例,可事先确定参考推荐模型,作为待评估的推荐模型的参照模型。参考推荐模型,可以是与待评估的推荐模型功能相同或者相似的推荐模型,其推荐效果较好。
本申请实施例,可将参考推荐模型输出的每个用户与每种推荐数据间的关联度称为参考关联度,该关联度可以用于表征用户对推荐数据的感兴趣程度。可以理解,参考关联度越高,用户对推荐数据越感兴趣;参考关联度越低,用户对推荐数据越不感兴趣。
其中,参考推荐模型中指定网络层,可以理解为参考推荐模型中的任一前向网络层,也可以理解为指定网络节点(网络的输出节点,网络是由多个节点组成)。参考推荐模型中指定网络层的数量可以是一个也可以是多个,可以与待评估的推荐模型中的指定网络层的数量相同,且可与待评估的推荐模型中的指定网络层一一对应。
其中,第二输出值,可以理解为将输入值输入至参考推荐模型之后,模型中的指定网络层输出的输出值,也可以称为前向输出值(即网络神经元的激活值)。
具体地,在确定出多个用户信息、多种推荐数据标签及参考推荐模型之后,可将每个用户信息及多种推荐数据标签,输入参考推荐模型。之后,可确定并获取参考推荐模型中的指定网络层,基于每个用户信息及多种推荐数据标签输出的第一输出值,并获取待评估的推荐模型基于每个用户信息及多种推荐数据标签,最终输出的每个用户与每种推荐数据间的参考关联度(即参考推荐模型最终输出的值)。
需要说明的是,确定第二输出值的方式可以为相关技术中的任何可行的方式,只要可以实现参考推荐模型中指定网络层对应的第二输出值的可靠获取即可,对此,本申请实施例不做任何限制。
S303,响应于任一用户与任一推荐数据标签间的参考关联度与预测关联度未匹配,确定指定网络层对应的第一输出值与第二输出值间的差异。
具体地,在确定出多个第一输出值、多个第二输出值、多个预测关联度及多个参考关联度之后,可判断每个用户与每种推荐数据标签间的参考关联度、与该用户与该推荐数据标签间的预测关联度是否匹配,如果出现不匹配的情况,即存在任一用户与任一推荐数据标签间的参考关联度与预测关联度未匹配的情况时,即说明待评估的推荐模型存在问题,此时可确定待评估模型中指定网络层对应的第一输出值,与参考推荐模型中该指令网络层对应的第二输出值间的差异。
具体而言,第一输出值与第二输出值间的差异,可能为不存在差异,也可能为存在差异,在存在差异时,差异度可能较高也可能较低。
S304,根据差异及指定网络层在模型中的位置,确定待评估的模型中待修正的网络层。
具体地,在确定出指定网络层对应的第一输出值与第二输出值间的差异之后,可确定存在差异时对应的指定网络层,进而确定该指定网络层在待评估的推荐模型中的位置,根据该位置即可确定出待评估的推荐模型中的需要修正的网络层,从而实现对模型中需要修正的网络层进行定位。
例如,如果待评估的推荐模型M1中的一个指定网络层m层对应的第一输出值为x1,参考推荐模型M2中的指定网络层m层对应的第二输出值为x2,且模型M1输出的用户A分别与两种推荐数据S1(对应标签B1)、S2(对应标签B2)间的预测关联度为10%、90%,模型M2输出的用户A分别与两种推荐数据S1、S2间的参考关联度为50%、90%,那么,可判断出用户A与推荐数据标签B1之间的预测关联度10%与参考关联度50%不匹配,于是可判断指定网络层m层对应的第一输出值x1与第二输出值x2间是否存在差异。如果存在差异,则确定该m层在模型M2中的位置,进而根据该位置即可确定模型M1中的需要修正的网络层。
可以理解的是,在定位出待评估的推荐模型中存在问题的网络层之后,可根据任何可行的方式对该网络层进行修正,直至该网络层没有问题。
也就是说,本公开实施例中,只要待评估的模型与参考模型最终输出的结果不一致,就说明待评估的模型有问题,从而即可获取模型中间层(即指定网络层)的结果,然后根据该中间结果,来定位模型问题。
由此,先根据待评估的模型与参考模型输出的结果不一致时,根据第一输出值和第二输出值进行模型问题的定位,可以可靠地确定模型中的问题所在。
进一步地,确定的指定网络层的数量,可以是一个,也可以是多个,具体可以根据模型中所有网络层的数量确定,也可以根据各个网络层在模型中的位置确定,还可以根据各个网络层对应的参数确定,或者,在本申请的一个实施例中,可根据待评估的推荐模型中包含的网络层数量及每个网络层对应的网络参数量,确定指定网络层。
比如,在待评估的推荐模型中的网络层数量较多时,可以只选对应网络参数量较大的网络层,作为指定网络层,或者,模型中网络层数量较少时,可以按照一定的间隔,抽取网络层作为指定网络层。
由此,根据模型中包含的网络层数量及每个网络层对应的网络参数量,确定指定网络层,可以保证指定网络层的可靠性,进一步提升模型评估的可靠性。
在上述步骤S101中,获取多个用户信息、多种推荐数据标签及每个用户与每种推荐数据的关联信息时,为了保证获取的可靠性,可以根据模型的使用场景、待评估指标进行获取。
即在本申请的一个实施例中,如图4所示,上述步骤S101,可包括以下步骤S401及S402。
S401,接收推荐模型评估请求,其中,评估请求中包括待评估的推荐模型的使用场景或待评估指标。
应当理解,在需要对推荐模型进行评估时,用户可发送推荐模型评估请求至电子设备,进而电子设备接收到该推荐模型评估请求,评估请求中包括待评估的推荐模型的使用场景或待评估指标。
其中,待评估的推荐模型的使用场景,例如可以是新手场景(即应用于新用户)、应用于应用推荐、或者应用于内容推荐场景等。
待评估指标,例如可以是要评估模型推荐的资源中,泛化资源的占比,还是特定的资源的占比等。也即不同的目的,要用的测试数据也不同。
S402,根据待评估模型的使用场景或待评估指标,从历史使用日志中,获取多个用户信息、多种推荐数据标签及每个用户与每种推荐数据的关联信息。
具体地,在获取到待评估模型的使用场景或待评估指标之后,可根据该使用场景或待评估指标,从历史使用日志中,针对性地获取多个用户信息、多种推荐数据标签及每个用户与每种推荐数据的关联信息。
比如,在使用场景为新手推荐时,可以从历史使用日志中获取较多的、且具有代表性的用户信息及多种推荐数据标签,斌获取日志中每个用户与每种推荐数据的关联信息。
由此,根据待评估模型的使用场景或待评估指标,获取历史的用户信息及多种推荐数据标签,以及用户与推荐数据间的关联信息,可以保证用户信息、推荐数据标签、关联信息的可靠性,进一步提升模型推荐的可靠性。
在本申请的一个实施例中,上述步骤S402,可包括:根据待评估模型的使用场景或待评估指标,确定待获取的用户信息类型;从历史使用日志中,获取与待获取的用户信息类型匹配的多个用户信息;根据多个用户的历史使用日志,确定多种推荐数据标签及每个用户与每种推荐数据的关联信息。
其中,用户信息类型,例如可以包括用户的年龄、职业、性别等。
具体地,在获取到待评估模型的使用场景或待评估指标之后,可确定需要获取的用户信息类型,进而在历史使用日志中获取与该用户信息匹配的多个用户信息,之后,可根据多个用户信息获取多个用户的历史使用日志,以在历史使用日志中获取多种推荐数据标签及每个用户与每种推荐数据的关联信息。
需要说明的是,用户信息类型可以是多种,例如,可以获取年龄不同、性别不同、职业不同或者使用系统的时段不同等多个有差异的用户信息。
需要说明的是,本申请实施例还可根据相关技术中的其他方式根据指示灯信息确定初始采样模式,本申请上述实施例仅仅是示例性的说明。
由此,根据待评估模型的使用场景或待评估指标,确定用户信息类型,以根据用户信息类型获取多种推荐数据标签,以及用户与推荐数据间的关联信息,可以提升用户信息、推荐数据标签、关联信息的可靠性,进一步提升模型推荐的可靠性。
也就是说,本申请实施例的推荐模型的评估方法,利用线上已有的真实样本特征集,通过离线的实验抽取特征包及离线的实验预估模型,结合优质推荐资源的信息,并设定评估的策略标记,比如泛化性,给出当前待评估的推荐模型推荐的资源在指定的策略指标上(例如泛化性或者特定性)与参考推荐模型对比是否有提升,除了策略指标是否有提升的结论以外,还可以通过两个模型推荐的优质资源的信息对比(比如文章标题、文章详情、文章是否被点击等信息)来评估当前待评估的推荐模型的推荐资源的多样性、推荐效果能力等各方面是否有提升,并从结论可以间接判断模型是否存在设计问题,比如推荐的优质资源是否与当前用户的兴趣点匹配等。
需要说明的是,本申请实施例的技术方案中,所涉及的用户信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
为了更加清楚地说明本申请实施例的推荐模型的评估方法,下面通过一个示例进行说明:
如图5所示,首先,可获取指定用户的用户信息(uid_info),包括:账号,落盘的时间(用户真实发起刷新推荐内容时会有一个日志流,每个日志上都有个对应的时间戳,这个时间戳就是落盘的时间)及使用日志,通过平台接口,可以查询到当前用户的数据是落盘在线上具体哪个机器上,从指定的这台机器上可以获取用户落盘的这部分日志,并将其中富含和用户相关的用户侧和资源(即推荐的推荐的图文、视频等)侧的特征样本sample完整的过滤出来。
在评估环境(Feature-extractor环境)部署阶段,可部署好离线特征抽取模型extractor(提取器),用来抽取模型训练输入要用的样本集,部署离线模型预估环境,用来准备离线模型预估时模型的输出值q。
环境准备好了后,可先抽取样本集,然后根据已抽出来的样本集,将线上的大模型进行剪裁,只保留要用的样本对应的大模型的embeding信息,从而实现模型预估提效,接下来进行模型预估,可确定指定的网络节点的前向输出值(即第一输出值)、q值以及指定的其他模型预估的细节,另外需要根据推荐数据标签nid(例如文章、连接等)请求feed架构中的一个正排gcms服务,拿到当前标签nid对应的正排信息,例如文章标题、链接、图片内容等,留作细节分析备用,之后需要将离线预估出的q值做倒排截断,取q值中的前100个nid标签,以已有的策略指标,标记当前资源是否命中策略,并统计该前100个nid中命中策略指标的占比,比如前100中nid,每个nid都有一个是否为泛化性资源的标记,统计100个nid中是泛化性资源的nid的比例,以此作为评估的量化数据,再根据待评估的推荐模型对应的评估指标值和参考推荐模型对应的评估指标值,做对比分析,即可得到模型指标的提升情况。
综上所述,本申请实施例,离线即可评估推荐模型的效果,可以节省线上实验3天的评估等待期;且将评估前置在模型实验前,以通用工具化代替手工,以结合正排信息方式使得分析更直观,模型经过离线评估后减少了无效模型的反复迭代,提升了模型迭代的效率,并且可支撑模型小时级别迭代。
本申请实施例还提出了一种推荐模型的评估装置,图6为本申请实施例提供的一种推荐模型的评估装置的结构示意图。
如图6所示,该推荐模型的评估装置600包括:第一获取模块610、第一确定模块620及第二确定模块630。
其中,第一获取模块610,用于从历史使用日志中,获取多个用户信息、多种推荐数据标签及每个用户与每种推荐数据的关联信息;
第一确定模块620,用于将每个所述用户信息及所述多种推荐数据标签,输入待评估的推荐模型,以确定每个所述用户与每种推荐数据间的预测关联度;
第二确定模块630,用于根据每个所述用户与每种推荐数据间的预测关联度、及所述每个用户与每种推荐数据的关联信息间的差异程度,确定所述待评估的推荐模型的效果。
在本申请的一个实施例中,每个用户与每种推荐数据的关联信息,包括每个用户点击每种推荐数据的概率,所述第二确定模块630,可包括:
第一获取单元,用于根据每个所述用户与每种推荐数据间的预测关联度,从所述多种推荐数据标签中获取待推荐数据标签;
第一确定单元,用于根据每个所述待推荐数据的标签,确定每种推荐数据标签在所述待推荐数据标签中的比例;
第二确定单元,用于根据每种推荐数据标签在所述待推荐数据标签中的比例及每个用户点击每种推荐数据的概率,确定所述待评估的推荐模型的效果。
在本申请的一个实施例中,推荐模型的评估装置600,还可包括:
第三确定模块,用于将每个所述用户信息及所述多种推荐数据标签,输入所述待评估的推荐模型,以确定所述待评估推荐模型中指定网络层对应的第一输出值及所述待评估的推荐模型输出的每个所述用户与每种推荐数据间的预测关联度;
第四确定模块,用于将每个所述用户信息及所述多种推荐数据标签,输入参考推荐模型,以确定所述参考推荐模型中指定网络层对应的第二输出值及所述参考推荐模型输出的每个所述用户与每种推荐数据间的参考关联度;
第五确定模块,用于响应于任一用户与任一推荐数据标签间的参考关联度与预测关联度未匹配,确定所述指定网络层对应的第一输出值与第二输出值间的差异;
第六确定模块,用于根据所述差异及所述指定网络层在模型中的位置,确定所述待评估模型中待修正的网络层。
在本申请的一个实施例中,推荐模型的评估装置600,还可包括:第七确定模块,用于根据所述待推荐模型中包含的网络层数量及每个网络层对应的网络参数量,确定所述指定网络层。
在本申请的一个实施例中,第一获取模块610,可包括:
第一接收单元,用于接收推荐模型评估请求,其中,所述评估请求中包括所述待评估模型的使用场景或待评估指标;
第二获取单元,用于根据所述待评估模型的使用场景或待评估指标,从历史使用日志中,获取多个用户信息、多种推荐数据标签及每个用户与每种推荐数据的关联信息。
在本申请的一个实施例中,第二获取单元,具体可用于:根据所述待评估模型的使用场景或待评估指标,确定待获取的用户信息类型;从所述历史使用日志中,获取与所述待获取的用户信息类型匹配的多个用户信息;根据所述多个用户的历史使用日志,确定多种推荐数据标签及每个所述用户与每种推荐数据的关联信息
需要说明的是,本申请实施例的推荐模型的评估装置的其他具体实施方式可参见前述推荐模型的评估方法的具体实施方式,为避免冗余,此处不再赘述。
本申请实施例的推荐模型的评估装置,根据用户信息、多种推荐数据标签及每个用户与每种推荐数据的关联信息,确定推荐模型的效果,即可以实现对推荐模型的离线评估,不仅节省了评估等待期,而且可以提前确定推荐模型的推荐效果。
根据本申请的实施例,本申请还提供了一种推荐模型的评估方法的电子设备、可读存储介质和计算机程序产品。下面结合图7进行说明。
如图7所示,是根据本申请实施例的推荐模型的评估方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如推荐模型的评估方法。例如,在一些实施例中,推荐模型的评估方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM703并由计算单元701执行时,可以执行上文描述的推荐模型的评估方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行推荐模型的评估方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS(VirtualPrivate Server,虚拟专用服务器)服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
- 推荐模型的评估方法、装置及电子设备
- 多媒体推荐模型的训练方法、装置、电子设备及存储介质