专利类型 | 发明授权 | 法律事件 | 公开; 实质审查; 授权; |
专利有效性 | 有效专利 | 当前状态 | 授权 |
申请号 | CN202110290642.X | 申请日 | 2021-03-18 |
公开(公告)号 | CN113762535B | 公开(公告)日 | 2024-12-06 |
申请人 | 北京沃东天骏信息技术有限公司; 北京京东世纪贸易有限公司; | 申请人类型 | 企业 |
发明人 | 蒋权; 陈希; | 第一发明人 | 蒋权 |
权利人 | 北京沃东天骏信息技术有限公司,北京京东世纪贸易有限公司 | 权利人类型 | 企业 |
当前权利人 | 北京沃东天骏信息技术有限公司,北京京东世纪贸易有限公司 | 当前权利人类型 | 企业 |
省份 | 当前专利权人所在省份:北京市 | 城市 | 当前专利权人所在城市:北京市北京经济技术开发区 |
具体地址 | 当前专利权人所在详细地址:北京市北京经济技术开发区科创十一街18号院2号楼4层A402室 | 邮编 | 当前专利权人邮编:100176 |
主IPC国际分类 | G06F17/00 | 所有IPC国际分类 | G06F17/00 ; G06Q10/00 ; G06F16/9536 ; G06F16/9535 |
专利引用数量 | 0 | 专利被引用数量 | 0 |
专利权利要求数量 | 13 | 专利文献类型 | B |
专利代理机构 | 中原信达知识产权代理有限责任公司 | 专利代理人 | 王志远; 王安娜; |
摘要 | 本 发明 公开了一种物品召回方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取历史数据,基于所述历史数据,使用至少两组召回策略中的每一个召回策略,分别确定待用户操作的一个或多个预召回物品以及所述预召回物品对应的召回分值;根据所述预召回物品、所述召回分值,分别建立每组召回策略对应的子任务模型;基于多任务学习方法,共同学习所有所述子任务模型,以确定所述召回权重的帕累托最优解;根据所述召回分值及所述召回权重的帕累托最优解,从所述预召回物品中确定出一个或多个召回物品。该实施方式多路物品召回的全面性及准确性。 | ||
权利要求 | 1.一种物品召回方法,其特征在于,包括: |
||
说明书全文 | 一种物品召回方法和装置技术领域[0001] 本发明涉及计算机技术领域,尤其涉及一种物品召回方法和装置。 背景技术[0002] 物品召回是指依据用户个性化特征,在海量的物品集中利用多种 召回策略快速召回小部分用户潜在感兴趣的候选物品,以将召回的候 选物品进行排序后推荐给用户,在实际的推荐、搜索、广告等场景中 应用广泛。 [0003] 由于召回的候选物品直接用于排序并推荐,因而召回候选物品与 被推荐用户的相关度、召回候选物品的准确性及全面性等直接决定着 个性化排序推荐的效果,因此如何进行可行且高效的物品召回成为了 研究重点。 [0004] 在实现本发明过程中,发明人发现现有技术中至少存在如下问题: 采用单一召回策略进行物品召回时,无法保证所召回物品的全面性; 而采用多召回策略进行多路物品召回时,仅对各个召回策略的召回物 品的召回分值进行简答的线性加权或归一化处理,无法同时保证召回 物品的准确性及全面性。 发明内容[0005] 有鉴于此,本发明实施例提供了一种物品召回方法和装置,能够 针对不同的召回策略,通过分别建立不同子任务模型,并通过多任务 学习同时学习所有子任务模型以确定帕累托最优解的方式确定各个召 回策略对应的召回权重,从而根据各个召回策略的召回权重融合各路 召回结果,保证了采用多路召回策略进行物品召回时的全面性及准确性。 [0006] 为实现上述目的,根据本发明实施例的一个方面,提供了一种物 品召回方法,包括: [0007] 获取历史数据,所述历史数据指示了下述一种或多种:用户信息、 物品信息、用户对物品进行的操作行为、用户操作的物品序列; [0008] 基于所述历史数据,使用至少两组召回策略中的每一个召回策略, 分别确定待用户操作的一个或多个预召回物品以及所述预召回物品对 应的召回分值; [0009] 根据所述预召回物品、所述召回分值,分别建立每组召回策略对 应的子任务模型,所述子任务模型用以确定召回策略组中每一个召回 策略对应的召回权重; [0010] 基于多任务学习方法,共同学习所有所述子任务模型,以确定所 述召回权重的帕累托最优解; [0011] 根据所述召回分值及所述召回权重的帕累托最优解,从所述预召 回物品中确定出一个或多个召回物品。 [0013] 所述协同过滤算法包括下述一种或多种:基于物品的协同过滤算 法、基于用户的协同过滤算法、Swing算法、关联规则算法; [0014] 所述图嵌入算法包括下述一种或多种:EGES算法、Node2Vec算 法、DeepWalk算法、LINE算法、SDNE算法。 [0015] 可选地, [0016] 使用所述基于物品的协同过滤算法,确定待用户操作的一个或多 个预召回物品及所述预召回物品对应的召回分值,包括: [0017] 根据所述物品信息计算任意两个物品之间的物品相似度,以确定 与所述用户操作过的物品对应的相似物品; [0018] 根据所述物品相似度、所述用户对操作过的物品的评分,确定所 述相似物品对应的召回分值; [0019] 根据所述召回分值由高到低的顺序选取一个或多个所述相似物品 为所述用户对应的预召回物品。 [0020] 可选地, [0021] 所述物品相似度由用户对两个物品进行操作的时间差、所述用户 操作的物品数量、对物品进行操作的用户数量确定。 [0022] 可选地, [0023] 使用所述基于用户的协同过滤算法,确定待用户操作的一个或多 个预召回物品及所述预召回物品对应的召回分值,包括: [0024] 根据所述用户信息、用户对物品进行的操作行为,计算任意两个 用户之间的用户相似度,以根据所述用户相似度确定与所述用户对应 的相似用户; [0025] 选取所述相似用户操作过的物品为相似物品; [0026] 根据所述用户相似度、所述相似用户对操作过的相似物品的评分, 确定所述相似物品对应的召回分值; [0027] 根据所述召回分值由高到低的顺序选取一个或多个所述相似物品 为所述预召回物品。 [0028] 可选地,所述用户相似度由两个用户操作的物品数量、所述两个 用户操作过的物品对应的操作用户数量确定。 [0029] 可选地, [0030] 使用所述Swing算法,确定待用户操作的一个或多个预召回物品 及所述预召回物品对应的召回分值,包括: [0031] 根据所述物品信息、用户信息、用户对物品进行的操作行为,计 算任意两个物品之间的物品相似度,以确定与所述用户操作过的物品 对应的相似物品; [0032] 根据所述物品相似度、所述用户对操作过的物品的评分,确定所 述相似物品对应的召回分值; [0033] 根据所述召回分值由高到低的顺序选取一个或多个所述相似物品 为所述用户对应的预召回物品。 [0034] 可选地, [0035] 所述物品相似度由对所述物品进行操作的用户数量、同时操作过 所述物品的用户对应的操作物品数量确定。 [0036] 可选地, [0037] 使用所述图嵌入算法,确定待用户操作的一个或多个预召回物品 及所述预召回物品对应的召回分值,包括: [0038] 根据所述用户操作的物品序列生成物品对,所述物品对指示了两 个不相同的物品; [0040] 随机游走所述物品关系图,以生成一个或多个物品序列; [0041] 根据所生成的物品序列,基于Skip‑Gram模型确定物品向量,以计 算物品相似度; [0042] 根据所述物品相似度确定与用户操作过的物品对应的相似物品; [0043] 根据所述物品相似度、所述用户对操作过的物品的评分,确定所 述相似物品对应的召回分值; [0044] 根据所述召回分值由高到低的顺序选取一个或多个所述相似物品 为所述用户对应的预召回物品。 [0045] 可选地,通过构建faiss索引计算所述物品向量的相似度。 [0046] 为实现上述目的,根据本发明实施例的另一个方面,提供了一种 物品召回装置,包括:数据获取模块、预召回模块、子任务模型建立模块、多任务学习模块、召回物品确定模块;其中, [0047] 所述数据获取模块,用于获取历史数据,所述历史数据指示了下 述一种或多种:用户信息、物品信息、用户对物品进行的操作行为、 用户操作的物品序列; [0048] 所述预召回模块,用于基于所述历史数据,使用至少两组召回策 略中的每一个召回策略,分别确定待用户操作的一个或多个预召回物 品以及所述预召回物品对应的召回分值; [0049] 所述多任务学习模块,用于根据所述预召回物品、所述召回分值, 分别建立每组召回策略对应的子任务模型,所述子任务模型用以确定 召回策略组中每一个召回策略对应的召回权重; [0050] 所述召回物品确定模块,用于根据所述召回分值及所述召回权重 的帕累托最优解,从所述预召回物品中确定出一个或多个召回物品。 [0051] 可选地, [0052] 所述召回策略为协同过滤算法或图嵌入算法;其中, [0053] 所述协同过滤算法包括下述一种或多种:基于物品的协同过滤算 法、基于用户的协同过滤算法、Swing算法、关联规则算法; [0054] 所述图嵌入算法包括下述一种或多种:EGES算法、Node2Vec算 法、DeepWalk算法、LINE算法、SDNE算法。 [0055] 可选地, [0056] 使用所述基于物品的协同过滤算法,确定待用户操作的一个或多 个预召回物品及所述预召回物品对应的召回分值,包括: [0057] 根据所述物品信息计算任意两个物品之间的物品相似度,以确定 与所述用户操作过的物品对应的相似物品; [0058] 根据所述物品相似度、所述用户对操作过的物品的评分,确定所 述相似物品对应的召回分值; [0059] 根据所述召回分值由高到低的顺序选取一个或多个所述相似物品 为所述用户对应的预召回物品。 [0060] 可选地, [0061] 所述物品相似度由用户对两个物品进行操作的时间差、所述用户 操作的物品数量、对物品进行操作的用户数量确定。 [0062] 可选地, [0063] 使用所述基于用户的协同过滤算法,确定待用户操作的一个或多 个预召回物品及所述预召回物品对应的召回分值,包括: [0064] 根据所述用户信息、用户对物品进行的操作行为,计算任意两个 用户之间的用户相似度,以根据所述用户相似度确定与所述用户对应 的相似用户; [0065] 选取所述相似用户操作过的物品为相似物品; [0066] 根据所述用户相似度、所述相似用户对操作过的相似物品的评分, 确定所述相似物品对应的召回分值; [0067] 根据所述召回分值由高到低的顺序选取一个或多个所述相似物品 为所述预召回物品。 [0068] 可选地, [0069] 所述用户相似度由两个用户操作的物品数量、所述两个用户操作 过的物品对应的操作用户数量确定。 [0070] 可选地, [0071] 使用所述Swing算法,确定待用户操作的一个或多个预召回物品 及所述预召回物品对应的召回分值,包括: [0072] 根据所述物品信息、用户信息、用户对物品进行的操作行为,计 算任意两个物品之间的物品相似度,以确定与所述用户操作过的物品 对应的相似物品; [0073] 根据所述物品相似度、所述用户对操作过的物品的评分,确定所 述相似物品对应的召回分值; [0074] 根据所述召回分值由高到低的顺序选取一个或多个所述相似物品 为所述用户对应的预召回物品。 [0075] 可选地, [0076] 所述物品相似度由对所述物品进行操作的用户数量、同时操作过 所述物品的用户对应的操作物品数量确定。 [0077] 可选地, [0078] 使用所述图嵌入算法,确定待用户操作的一个或多个预召回物品 及所述预召回物品对应的召回分值,包括: [0079] 根据所述用户操作的物品序列生成物品对,所述物品对指示了两 个不相同的物品; [0080] 根据所述物品对构建物品关系图,所述物品关系图的节点指示了 所述物品,所述物品关系图的边的权重指示了下述一种或多种信息: 用户对所述物品对中物品的操作次数、所述物品的属性信息; [0081] 随机游走所述物品关系图,以生成一个或多个物品序列; [0082] 根据所生成的物品序列,基于Skip‑Gram模型确定物品向量,以计 算物品相似度; [0083] 根据所述物品相似度确定与用户操作过的物品对应的相似物品; 根据所述物品相似度、所述用户对操作过的物品的评分,确定所述相 似物品对应的召回分值; [0084] 根据所述召回分值由高到低的顺序选取一个或多个所述相似物品 为所述用户对应的预召回物品。 [0085] 可选地,通过构建faiss索引计算所述物品向量的相似度。 [0086] 为实现上述目的,根据本发明实施例的再一个方面,提供了一种 用于物品召回的电子设备,包括:一个或多个处理器;存储装置,用 于存储一个或多个程序, [0087] 当所述一个或多个程序被所述一个或多个处理器执行,使得所述 一个或多个处理器实现如上所述的物品召回方法中任一所述的方法。 [0088] 为实现上述目的,根据本发明实施例的又一个方面,提供了一种 计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时 实现如上所述的物品召回方法中任一所述的方法。 [0089] 上述发明中的一个实施例具有如下优点或有益效果:针对不同的 召回策略,通过分别建立以召回准确性、召回全面性等为指标的子任 务模型,并通过多任务学习同时学习所有子任务模型以确定帕累托最 优解的方式确定各个召回策略对应的召回权重,从而根据各个召回策 略的召回权重融合各路召回结果,保证了采用多路召回策略进行物品 召回时的全面性及准确性。 [0091] 附图用于更好地理解本发明,不构成对本发明的不当限定。其中: [0092] 图1是根据本发明实施例的物品召回方法的主要流程的示意图; [0093] 图2a是根据本发明实施例的用户操作的物品序列示意图; [0094] 图2b是根据本发明实施例的物品关系图示意图; [0095] 图2c是根据本发明实施例的基于随机游走产生的物品序列示意 图; [0096] 图2d是根据本发明实施例的构建的Skip‑Gram模型的示意图; [0097] 图3是根据本发明实施例的另一物品召回方法的主要流程的示意 图; [0098] 图4是根据本发明实施例的物品召回装置的主要模块的示意图; [0099] 图5是本发明实施例可以应用于其中的示例性系统架构图; [0100] 图6是适于用来实现本发明实施例的终端设备或服务器的计算机 系统的结构示意图。 具体实施方式[0101] 以下结合附图对本发明的示范性实施例做出说明,其中包括本发 明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。 因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做 出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清 楚和简明,以下的描述中省略了对公知功能和结构的描述。 [0102] 图1是根据本发明实施例的一种物品召回方法,如图1所示,该 物品召回方法具体可以包括的步骤如下: [0103] 步骤S101,获取历史数据,所述历史数据指示了下述一种或多种: 用户信息、物品信息、用户对物品进行的操作行为、用户操作的物品 序列。 [0104] 其中,用户信息包括用户标识、用户名称、用户性别等用户画像 信息;物品信息则包括物品名称、物品标识、物品颜色及物品尺寸等 属性信息,以及物品价格、物品品牌、物品三级分类等额外信息;用 户对物品进行的操作行为则包括下述一种或多种:点击、浏览、加购、 评论、关注、搜索、购买等;用户操作的物品序列则是指在指定时间段内,如60分钟内用户点击后的物品序列,如以SKU1、SKU2、SKU3 等。 [0105] 步骤S102,基于所述历史数据,使用至少两组召回策略中的每一 个召回策略,分别确定待用户操作的一个或多个预召回物品以及所述 预召回物品对应的召回分值。 [0106] 其中,召回策略包括但不限于基于内容的召回策略、基于规则的 召回策略、协同过滤算法以及图嵌入算法等,且每一个召回策略组中 包含至少两种召回策略。 [0107] 在一种可选的实施方式中,所述召回策略为协同过滤算法或图嵌 入算法;其中,所述协同过滤算法包括下述一种或多种:基于物品的 协同过滤算法、基于用户的协同过滤算法、Swing算法、关联规则算法; 所述图嵌入算法包括下述一种或多种:EGES算法、Node2Vec算法、DeepWalk算法、LINE算法、SDNE算法。 [0108] 优选地,本实施例仅以采用如下两个召回策略组为例进行说明: 召回策略组1:基于物品的协同过滤算法、基于用户的协同过滤算法、 Swing算法、关联规则算法;召回策略组:EGES算法、Node2Vec算 法。 [0109] 具体地,使用所述基于物品的协同过滤算法,确定待用户操作的 一个或多个预召回物品及所述预召回物品对应的召回分值,包括:根 据所述物品信息计算任意两个物品之间的物品相似度,以确定与所述 用户操作过的物品对应的相似物品;根据所述物品相似度、所述用户 对操作过的物品的评分,确定所述相似物品对应的召回分值;根据所述召回分值由高到低的顺序选取一个或多个所述相似物品为所述用户 对应的预召回物品。 [0110] 如以目标用户购买过的物品包括SKUA、SKUB、SKUC为例,则 可以通过计算SKUA、SKUB、SKUC与其他物品之间的物品相似度, 确定所有分别与SKUA、SKUB、SKUC相似的物品,即基于目标用户 的购买行为初步挖掘的用户可能感兴趣的其他物品。在此基础上,可 以根据目标用户对物品SKUA、SKUB、SKUC的评分以及物品之间的 相似度确定召回分值,即预测目标用户对初步挖掘的物品的感兴趣的程度。可采用的召回分值的计算公式如下: [0111] 召回分值i=sim(i,j)*Ej [0112] 其中,sim(i,j)表示物品i与物品j之间的物品相似度,Ej表示目标 用户对物品j的评分。具体地,所述物品相似度由用户对两个物品进行 操作的时间差、所述用户操作的物品数量、对物品进行操作的用户数量确定,采用的计算公式如下: [0113] [0114] 其中,Ui表示对物品i进行过操作行为的用户集合; [0115] Uj表示对物品j进行过操作行为的用户集合; [0116] u表示对物品i和物品j均进行过操作行为的用户; [0117] |Ui|表示对物品i进行过操作行为的用户数量; [0118] |Uj|表示对物品j进行过操作行为的用户数量; [0119] |Iu|表示用户u进行过操作行为的物品数量; [0120] ti表示用户u对对物品i进行过操作行为的操作时间,具体以年、 月、日、周、时、分、秒等表示; [0121] tj表示用户u对对物品j进行过操作行为的操作时间,具体以年、 月、日、周、时、分、秒等表示; [0122] α取值在1000~1500之间。 [0123] |Ui|Uj||表示越流行的商品,商品的流行度越弱,log(1+|Iu|)表示越 活跃的用户,用户活跃度因子反而越小,exp(‑α*|ti‑tj|)表示物品i和物 品j的交互时间差距影响,时间越短则相应的时间因子影响大。如此, 通过在公式中引入用户对两个物品进行操作的时间差、用户操作的物品数量、对物品进行操作的用户数量,削弱了物品本身流行度或热度、 用户活跃度、用户活跃时间等对物品相似度的影响,提高了物品相似 度的准确性及可靠性。 [0124] 进一步地,使用所述基于用户的协同过滤算法,确定待用户操作 的一个或多个预召回物品及所述预召回物品对应的召回分值,包括: 根据所述用户信息、用户对物品进行的操作行为,计算任意两个用户 之间的用户相似度,以根据所述用户相似度确定与所述用户对应的相 似用户;选取所述相似用户操作过的物品为相似物品;根据所述用户相似度、所述相似用户对操作过的相似物品的评分,确定所述相似物 品对应的召回分值;根据所述召回分值由高到低的顺序选取一个或多 个所述相似物品为所述预召回物品。 [0125] 如仍以目标用户操作过的物品为SKUA、SKUB、SKUC为例,则 通过计算用户相似度可以确定所有与目标用户相似的其他用户(如用 户1、用户2),进而可以确定用户1、用户2操作过的物品SKU1、 SKU2、SKU3为目标用户操作的物品SKUA、SKUB、SKUC对应的相 似物品,即初步挖掘到的目标用户可能感兴趣的物品,进而可以基于 用户相似度以及目标用户对物品SKUA、SKUB、SKUC的评分确定相 似物品SKU1、SKU2、SKU3对应的召回分值。具体地,用户相似度由 两个用户操作的物品数量、所述两个用户操作过的物品对应的操作用户数量确定,可采用如下公式计算用户相似度: [0126] [0127] 其中,sim(u,v)表示用户u与用户v之间的用户相似度; [0128] |Iu|表示用户u进行过操作行为的物品数量; [0129] |Iv|表示用户v进行过操作行为的物品数量; [0130] Iu表示用户u进行过操作行为的物品集合; [0131] Iv表示用户v进行过操作行为的物品集合; [0132] |Ui|表示对物品i进行过操作行为的用户数量; [0133] c取值为1或0.5,用以表示用户u及用户v之间的相互影响;β 为经验值。 [0134] 如此,通过在用户相似度计算式引入两个用户操作的物品数量、 两个用户操作过的物品对应的操作用户数量确定,削弱了物品本身流 行度或热度、用户活跃度、用户交互方向对用户相似度计算的影响, 提高了用户相似度的准确性及可靠性。 [0135] 进一步地,使用所述Swing算法,确定待用户操作的一个或多个 预召回物品及所述预召回物品对应的召回分值,包括:根据所述物品 信息、用户信息、用户对物品进行的操作行为,计算任意两个物品之 间的物品相似度,以确定与所述用户操作过的物品对应的相似物品;根据所述物品相似度、所述用户对操作过的物品的评分,确定所述相 似物品对应的召回分值;根据所述召回分值由高到低的顺序选取一个 或多个所述相似物品为所述用户对应的预召回物品。其中,所述物品 相似度由对所述物品进行操作的用户数量、同时操作过所述物品的用 户对应的操作物品数量确定,具体可采用的计算公式如下: [0136] [0137] 其中,sim(i,j)表示物品i与物品j之间的物品相似度; [0138] Ui表示对物品i进行过操作行为的用户集合; [0139] Uj表示对物品j进行过操作行为的用户集合; [0140] |Ui|表示对物品i进行过操作行为的用户数量; [0141] |Uj|表示对物品j进行过操作行为的用户数量; [0142] u表示对物品i和物品j均进行过操作行为的用户; [0143] v表示对物品i和物品j均进行过操作行为的用户; [0144] Iu表示用户u进行过操作行为的物品集合; [0145] Iv表示用户v进行过操作行为的物品集合; [0146] α取值在1000~1500之间。 [0147] 如此,通过在物品相似度中引入物品流行度或热度,即对物品进 行操作过的用户数量,用户操作过的物品数量即用户活跃度,削弱了 物品流行度、用户活跃度对物品相似度计算的影响,提高了采用Swing 算法获取的物品相似度的准确性及可靠性。 [0148] 在一种可选的实施方式中,使用所述图嵌入算法,确定待用户操作 的一个或多个预召回物品及所述预召回物品对应的召回分值,包括:根 据所述用户操作的物品序列生成物品对,所述物品对指示了两个不相同 的物品;根据所述物品对构建物品关系图,所述物品关系图的节点指示 了所述物品,所述物品关系图的边的权重指示了下述一种或多种信息:用户对所述物品对中物品的操作次数、所述物品的属性信息;随机游走 所述物品关系图,以生成一个或多个物品序列;根据所生成的物品序列, 基于Skip‑Gram模型确定物品向量,以计算物品相似度;根据所述物品相 似度确定与用户操作过的物品对应的相似物品;根据所述物品相似度、 所述用户对操作过的物品的评分,确定所述相似物品对应的召回分值; 根据所述召回分值由高到低的顺序选取一个或多个所述相似物品为所述 用户对应的预召回物品。具体地,可通过构建faiss索引计算所述物品向 量的相似度。 [0149] 具体地,参见图2a‑2c,以采用的图嵌入算法为Node2Vec算法为例 进行说明,如图2a所示,在一定之间段内(如60分钟),用户U1操作 的物品序列为D、A、B;用户U2操作的物品序列为B、E、D、E、F; 用户U2操作的物品序列为E、C、B、B、A。在此基础上,基于用户操 作的物品序列,从中选取两个不同的物品生成物品对,如(D、A)(B、 E),(E、F)等,并基于物品对构成物品关系图(详见图2b);具体 地,以物品对中物品为节点,用户对物品的操作顺序指示了物品对之间 边的方向,而物品对出现的次数或者用户对物品对的操作次数则为边的 权重。基于此,针对所构建的物品关系图,基于随机游走生成一个或多 个新的物品序列(详见图2c),如物品序列A、B、E、F,B、E、C、B、 A;C、B、A、B、E等。在此基础上,基于新新生成的物品序列,并采用 fastText模型对Skip‑Gram模型进行训练(详见图2d),以构建物品向量; 进而通过构建faiss索引计算物品向量的相似度,以确定物品相似度。在 此基础上,根据物品相似度确定与用户操作过的物品对应的一个或多个 相似物品;然后,根据物品相似度及用户对操作过的物品的评分,确定相似物品对应的召回分值,并根据召回分值由高到低的顺序选取一个或 多个相似物品为用户对应的预召回物品。 [0150] 步骤S103,根据所述预召回物品、所述召回分值,分别建立每组 召回策略对应的子任务模型,所述子任务模型用以确定召回策略组中 每一个召回策略对应的召回权重。 [0151] 具体地,仍以采用如下两个召回策略组为例进行说明,则基于各 个召回策略获取的目标用户对应的预召回物品及召回分值如下表1所 示:召回策略组1:基于物品的协同过滤算法、基于用户的协同过滤算 法、Swing算法、关联规则算法;召回策略组:EGES算法、Node2Vec 算法。 [0152] 表1召回策略对应的预召回物品及召回分值示例 [0153] [0154] [0155] 由此可见,对于同一目标用户,采用不同的召回策略所确定的预 召回物品以及召回分值都有所不同,为综合考虑不同策略对同一个物 品的影响,因而需要将不同召回策略的召回结果进行融合,即确定不 同召回策略对应的召回权重,如此可以基于不同策略的召回权重,对 预召回物品的召回分值进行加权处理,以得到预召回物品对应的融合后的召回分值。如以与召回物品A为例进行说明,基于物品的协同过 滤算法、基于用户的协同过滤算法确定的A对应的召回分值分别是0.9、 0.8,若基于物品的协同过滤算法、基于用户的协同过滤算法对应的召 回权重分别为0.5、0.5,预召回物品A对应的融合后的召回分值为 0.9*0.5+0.8*0.5=0.85。 [0156] 可以理解的是,在实际的执行过程中既可以直接根据实际情况优 先使用某一召回策略的召回结果,也可以直接设定各个召回策略对应的召回权重以进行多路召回的融合。优选地,本实施例通过逻辑回归 算法等建立子任务模型,以动态求解各个召回策略对应的召回权重, 提高多路召回融合的可靠性及准确性。具体地,可以基于表1所示的 召回策略组1中各个召回策略对应的预召回物品和召回分值,建立第 一子任务模型,且该第一子任务模型以各个召回策略的召回权重为参 数,采用召回准确率进行评估,以根据优化后的子任务模型确定各个 召回策略对应的召回权重;同时,基于表1所示的召回策略组2中各 个召回策略对应的预召回物品和召回分值,建立第二子任务模型,且 该第二子任务模型以各个召回策略的召回权重为参数,采用召回全面性进行评估,以根据优化后的子任务模型确定各个召回策略对应的召 回权重。由于不同召回策略采用的历史数据均相同,因而第一子任务 模型和第二子任务模型本质上采用的数据来源也都相同,且第一子任 务模型和第二子任务模型由于分别针对召回准确率、召回全面性两个 具有一定竞争关系的指标,若单独求解则无法很好兼顾二者的召回准 确率、召回全面性,因此可以通过多任务学些求解最优解。 [0157] 具体地,以最终确定的目标用户对应的召回物品为A、B、C,而 目标用户最终进行了操作行为的物品为B、C、D、E为例,则对应的 三个召回物品A、B、C中B、C两个物品召回正确,即召回准确率为 66.7%;而实际操作的四个物品B、C、D、E中仅B、C两个物品在召 回列表中,故而召回全面性仅为50%。 [0158] 可以理解的是,在实际的执行过程中,可以采用多组召回策略, 进而可以根据实际情况建立多个子任务模型,且子任务模型的评估指 标除却召回准确率以及召回全面性外,还可以采用相关性、新颖性、 多样性或其他自定义指标等。 [0159] 步骤S104,基于多任务学习方法,共同学习所有所述子任务模型, 以确定所述召回权重的帕累托最优解。 [0160] 具体地,仍以上述分别针对召回准确率以及召回全面性的子任务 模为例进行说明,则可以构建如下述形式的训练数据: [0161] [0162] 其中,xi为子任务模型共享的历史数据,即物品信息、用户信息、 用户对物品进行的操作行为等; 表示第i个数据在第t跟任务中的标 签数据,本实施例中第一子任务模型的标签为用户是否点击物品,第 二子任务模型的标签为用户操作商品列表。基于此,构建如下目标函 数,并通过求解目标函数,确定召回权重对应的帕累托最优解: [0163] [0164] [0165] 其中, 是经验损失,θsh表示不同子任务模型共享的参数, θt表示任务相关的参数。 [0166] 步骤S105,根据所述召回分值及所述召回权重的帕累托最优解, 从所述预召回物品中确定出一个或多个召回物品。 [0167] 具体地,仍以表1为例进行说明,若基于帕累托最优解确定各个 召回策略,即基于物品的协同过滤算法、基于用户的协同过滤算法、 Swing算法、关联规则算法、Node2Vec算法、EGES算法对应的召回 权重分别是0.5、0.4、0.5、0.7、0.8,则可计算各个预召回物品对应的 融合后的召回分值,即A对应的召回分值为0.9*0.5+0.8*0.4=0.77,B 对应的召回分值为0.8*0.5+0.6*0.4+0.9*0.5+0.7*0.7=1.58,以此类推计 算C、D、E、F、G对应的融合后的召回分值,进而根据融合后召回分值由高到低的顺序选取一个或多个召回物品。 [0168] 基于上述实施例,针对不同的召回策略,通过分别建立以召回准 确性、召回全面性等为指标的子任务模型,并通过多任务学习同时学 习所有子任务模型以确定帕累托最优解的方式确定各个召回策略对应 的召回权重,从而根据各个召回策略的召回权重融合各路召回结果, 保证了采用多路召回策略进行物品召回时的全面性及准确性。此外,在采用协同过滤算法进行物品召回时,通过引入物品流行度或热度、 用户活跃度、用户操作时间等影响因子,提高了获取的物品相似度或 用户相似度的准确性,进而提高了召回结果的准确性。 [0169] 参见图3,在上述是实施例的基础上,本发明实施例提供了一种物 品召回方法,该召回方法具体可以包括的步骤如下: [0170] 步骤S301,获取历史数据,所述历史数据指示了下述一种或多种: 用户信息、物品信息、用户对物品进行的操作行为、用户操作的物品 序列。 [0171] 步骤S302a,分别使用基于物品的协同过滤算法、基于用户的协同 过滤算法、Swing算法、关联规则算法,确定待用户操作的一个或多个 预召回物品及所述预召回物品对应的召回分值。 [0172] 步骤S303a,根据所述预召回物品、所述召回分值创建第一子任务 模型,并采用召回准确率评估所述第一子任务模型。 [0173] 步骤S302b,分别使用EGES算法、Node2Vec算法,确定待用户 操作的一个或多个预召回物品及所述预召回物品对应的召回分值。 [0174] 步骤S303b,根据所述预召回物品、所述召回分值创建第二子任务 模型,并采用召回全面性评估所述第一子任务模型。 [0175] 步骤S304,共同学习所述第一子任务模型及所述第二子任务模型, 以获取召回策略对应的召回权重的帕累托最优解。 [0176] 步骤S305,根据所述召回分值及所述召回权重的帕累托最优解, 从所述预召回物品中确定出一个或多个召回物品。 [0177] 参见图4,在上述实施例的基础上,本发明实施例提供了一种物品 召回装置400,包括:数据获取模块401、预召回模块402、子任务模 型建立模块403、多任务学习模块404、召回物品确定模块405;其中, [0178] 所述数据获取模块401,用于获取历史数据,所述历史数据指示了 下述一种或多种:用户信息、物品信息、用户对物品进行的操作行为、 用户操作的物品序列; [0179] 所述预召回模块402,用于基于所述历史数据,使用至少两组召回 策略中的每一个召回策略,分别确定待用户操作的一个或多个预召回 物品以及所述预召回物品对应的召回分值; [0180] 所述多任务学习模块403,用于根据所述预召回物品、所述召回分 值,分别建立每组召回策略对应的子任务模型,所述子任务模型用以 确定召回策略组中每一个召回策略对应的召回权重; [0181] 所述召回物品确定模块404,用于根据所述召回分值及所述召回权 重的帕累托最优解,从所述预召回物品中确定出一个或多个召回物品。 [0182] 在一种可选的实施方式中,所述召回策略为协同过滤算法或图嵌 入算法;其中,所述协同过滤算法包括下述一种或多种:基于物品的 协同过滤算法、基于用户的协同过滤算法、Swing算法、关联规则算法; 所述图嵌入算法包括下述一种或多种:EGES算法、Node2Vec算法、DeepWalk算法、LINE算法、SDNE算法。 [0183] 在一种可选的实施方式中,使用所述基于物品的协同过滤算法, 确定待用户操作的一个或多个预召回物品及所述预召回物品对应的召 回分值,包括:根据所述物品信息计算任意两个物品之间的物品相似 度,以确定与所述用户操作过的物品对应的相似物品;根据所述物品 相似度、所述用户对操作过的物品的评分,确定所述相似物品对应的召回分值;根据所述召回分值由高到低的顺序选取一个或多个所述相 似物品为所述用户对应的预召回物品。 [0184] 在一种可选的实施方式中,所述物品相似度由用户对两个物品进 行操作的时间差、所述用户操作的物品数量、对物品进行操作的用户 数量确定。 [0185] 在一种可选的实施方式中,使用所述基于用户的协同过滤算法, 确定待用户操作的一个或多个预召回物品及所述预召回物品对应的召 回分值,包括:根据所述用户信息、用户对物品进行的操作行为,计 算任意两个用户之间的用户相似度,以根据所述用户相似度确定与所 述用户对应的相似用户;选取所述相似用户操作过的物品为相似物品;根据所述用户相似度、所述相似用户对操作过的相似物品的评分,确 定所述相似物品对应的召回分值;根据所述召回分值由高到低的顺序 选取一个或多个所述相似物品为所述预召回物品。 [0186] 在一种可选的实施方式中,所述用户相似度由两个用户操作的物 品数量、所述两个用户操作过的物品对应的操作用户数量确定。 [0187] 在一种可选的实施方式中,使用所述Swing算法,确定待用户操 作的一个或多个预召回物品及所述预召回物品对应的召回分值,包括: 根据所述物品信息、用户信息、用户对物品进行的操作行为,计算任 意两个物品之间的物品相似度,以确定与所述用户操作过的物品对应的相似物品;根据所述物品相似度、所述用户对操作过的物品的评分, 确定所述相似物品对应的召回分值;根据所述召回分值由高到低的顺 序选取一个或多个所述相似物品为所述用户对应的预召回物品。 [0188] 在一种可选的实施方式中,所述物品相似度由对所述物品进行操 作的用户数量、同时操作过所述物品的用户对应的操作物品数量确定。 [0189] 在一种可选的实施方式中,使用所述图嵌入算法,确定待用户操 作的一个或多个预召回物品及所述预召回物品对应的召回分值,包括: 根据所述用户操作的物品序列生成物品对,所述物品对指示了两个不 相同的物品;根据所述物品对构建物品关系图,所述物品关系图的节 点指示了所述物品,所述物品关系图的边的权重指示了下述一种或多种信息:用户对所述物品对中物品的操作次数、所述物品的属性信息; 随机游走所述物品关系图,以生成一个或多个物品序列;根据所生成 的物品序列,基于Skip‑Gram模型确定物品向量,以计算物品相似度; 根据所述物品相似度确定与用户操作过的物品对应的相似物品;根据 所述物品相似度、所述用户对操作过的物品的评分,确定所述相似物 品对应的召回分值;根据所述召回分值由高到低的顺序选取一个或多 个所述相似物品为所述用户对应的预召回物品。 [0190] 在一种可选的实施方式中,通过构建faiss索引计算所述物品向量 的相似度。 [0191] 图5示出了可以应用本发明实施例的物品召回方法或物品召回装 置的示例性系统架构500。 [0192] 如图5所示,系统架构500可以包括终端设备501、502、503,网 络504和服务器505。网络504用以在终端设备501、502、503和服务 器505之间提供通信链路的介质。网络504可以包括各种连接类型, 例如有线、无线通信链路或者光纤电缆等等。 [0193] 用户可以使用终端设备501、502、503通过网络504与服务器505 交互,以接收或发送消息等。终端设备501、502、503上可以安装有 各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应 用、即时通信工具、邮箱客户端、社交平台软件等。 [0194] 终端设备501、502、503可以是具有显示屏并且支持网页浏览的 各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算 机和台式计算机等等。 [0195] 服务器505可以是提供各种服务的服务器,例如对用户利用终端 设备501、502、503所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等 处理,并将处理结果如针对用户生成的召回物品集排序后反馈给终端 设备。 [0196] 需要说明的是,本发明实施例所提供的物品召回方法一般由服务 器505执行,相应地,召回方法装置一般设置于服务器505中。 [0197] 应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意 性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。 [0199] 如图6所示,计算机系统600包括中央处理单元(CPU)601,其 可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608 加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作 和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数 据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/ 输出(I/O)接口605也连接至总线604。 [0200] 以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606; 包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的 输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、 调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因 特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。 可拆卸介质 611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据 需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要 被安装入存储部分608。 [0201] 特别地,根据本发明公开的实施例,上文参考流程图描述的过程 可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种 计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该 计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实 施例中,该计算机程序可以通过通信部分609从网络上被下载和安装, 和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元 (CPU)601执行时,执行本发明的系统中限定的上述功能。 [0202] 需要说明的是,本发明所示的计算机可读介质可以是计算机可读 信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算 机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红 外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导 线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、 只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、 光纤、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存 储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行 系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机 可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信 号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采 用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组 合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由 指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机 可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限 于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。 [0203] 附图中的流程图和框图,图示了按照本发明各种实施例的系统、 方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点 上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码 的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于 实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发 生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们 有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的 是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合, 可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者 可以用专用硬件与计算机指令的组合来实现。 [0204] 描述于本发明实施例中所涉及到的模块可以通过软件的方式实 现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理 器中,例如,可以描述为:一种处理器包括数据获取模块、预召回模 块、子任务模型建立模块、多任务学习模块、召回物品确定模块。其 中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例 如,召回物品确定模块还可以被描述为“用于根据所述召回分值及所 述召回权重的帕累托最优解,从所述预召回物品中确定出一个或多个召回物品的模块”。 [0205] 作为另一方面,本发明还提供了一种计算机可读介质,该计算机 可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独 存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多 个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备 包括:获取历史数据,所述历史数据指示了下述一种或多种:用户信息、物品信息、用户对物品进行的操作行为、用户操作的物品序列; 基于所述历史数据,使用至少两组召回策略中的每一个召回策略,分 别确定待用户操作的一个或多个预召回物品以及所述预召回物品对应 的召回分值;根据所述预召回物品、所述召回分值,分别建立每组召 回策略对应的子任务模型,所述子任务模型用以确定召回策略组中每 一个召回策略对应的召回权重;基于多任务学习方法,共同学习所有所述子任务模型,以确定所述召回权重的帕累托最优解;根据所述召 回分值及所述召回权重的帕累托最优解,从所述预召回物品中确定出 一个或多个召回物品。 [0206] 根据本发明实施例的技术方案,针对不同的召回策略,通过分别 建立以召回准确性、召回全面性等为指标的子任务模型,并通过多任 务学习同时学习所有子任务模型以确定帕累托最优解的方式确定各个 召回策略对应的召回权重,从而根据各个召回策略的召回权重融合各 路召回结果,保证了采用多路召回策略进行物品召回时的全面性及准确性。此外,在采用协同过滤算法进行物品召回时,通过引入物品流 行度或热度、用户活跃度、用户操作时间等影响因子,提高了获取的 物品相似度或用户相似度的准确性,进而提高了召回结果的准确性。 [0207] 上述具体实施方式,并不构成对本发明保护范围的限制。本领域 技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种 各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内 所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。 |