CN113609378B - 信息推荐方法、装置、电子设备及存储介质 - Google Patents

信息推荐方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113609378B
CN113609378B CN202110751317.9A CN202110751317A CN113609378B CN 113609378 B CN113609378 B CN 113609378B CN 202110751317 A CN202110751317 A CN 202110751317A CN 113609378 B CN113609378 B CN 113609378B
Authority
CN
China
Prior art keywords
node
graph
neighbor
current
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110751317.9A
Other languages
English (en)
Other versions
CN113609378A (zh
Inventor
刘军
汪玉
戴国浩
刘理
臧成杰
胡静波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Tsinghua University
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University, Beijing Dajia Internet Information Technology Co Ltd filed Critical Tsinghua University
Priority to CN202110751317.9A priority Critical patent/CN113609378B/zh
Publication of CN113609378A publication Critical patent/CN113609378A/zh
Application granted granted Critical
Publication of CN113609378B publication Critical patent/CN113609378B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9536Search customisation based on social or collaborative filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开关于一种信息推荐方法、装置、电子设备及存储介质,该方法包括:响应于目标对象的信息推荐请求,基于目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点;在第一搜索阶段,基于每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点进行节点搜索,至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离的满足第一预设条件,进入第二搜索阶段;在第二搜索阶段,基于每个子图的第二当前搜索节点的第一邻居节点进行节点搜索,得到目标节点;将目标节点对应的预设推荐信息推荐至目标对象。本公开能够在推荐场景中,提高向目标对象推荐和预设推荐信息的推荐精度和推荐速度。

Description

信息推荐方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种信息推荐方法、装置、电子设备及存储介质。
背景技术
推荐系统是一种信息过滤系统,用于预测用户对物品的“评分”或“偏好”,它能从海量候选集中,召回用户感兴趣的内容。根据推荐对象的不同,可以将推荐场景可分为两大类:推荐人和推荐物。推荐人的场景主要指社交推荐,即根据用户的社交圈,向用户推荐搜索到的,与其具有相似属性的其他用户。推荐物的场景则又可以分为商品推荐、音乐推荐、视频推荐和新闻推荐等,即根据用户的购买或浏览记录等行为数据,搜索用户更感兴趣的商品、资讯等,并推荐给用户。
相关技术中,通常采用近似近邻算法来完成召回。然而相关技术中的算法,对于一些密集的数据集,容易导致数据局部稠密,从而影响搜索精度,进而降低向用户推荐感兴趣内容的推荐精度;此外,相关技术中的算法所使用到的图结构的底层图为一个规模较大的图,对于同一搜索目标无法进行并行的最近邻搜索,从而影响搜索速度,进而降低向用户推荐感兴趣内容的推荐速度。
发明内容
本公开提供一种信息推荐方法、装置、电子设备及存储介质,以至少解决相关技术中向用户推荐感兴趣内容的推荐精度和推荐速度较低的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种信息推荐方法,包括:
响应于目标对象的信息推荐请求,基于所述目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点,所述预设近邻图为基于预设推荐信息对应的节点构建得到;
在第一搜索阶段,基于每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点进行节点搜索,至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离的满足第一预设条件,进入第二搜索阶段;所述第一当前搜索节点包括所述起始搜索节点和基于所述起始搜索节点在所述第一搜索阶段中确定的满足第二预设条件的节点;所述每个子图对应的兴趣节点为所述兴趣信息在每个子图中所对应的节点;
在所述第二搜索阶段,基于每个子图的第二当前搜索节点的第一邻居节点进行节点搜索,得到目标节点;所述第二当前搜索节点为满足所述第一预设条件的第一目标邻居节点以及满足第三预设条件的节点,所述满足第三预设条件的节点基于满足所述第一预设条件的第一目标邻居节点在所述第二搜索阶段中确定;所述第一当前搜索节点和所述第二当前搜索节点,与各自对应的第一邻居节点间的距离小于第一阈值,所述第一当前搜索节点与所述第一当前搜索节点对应的第二邻居节点间的距离大于等于所述第一阈值,且小于第二阈值;
将所述目标节点对应的预设推荐信息推荐至所述目标对象。
在一示例性的实施方式中,所述在第一搜索阶段,基于每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点进行节点搜索,至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离的满足第一预设条件,进入第二搜索阶段,包括:在所述第一搜索阶段,将每个子图的起始搜索节点作为每个子图的第一当前搜索节点;
从每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点中,搜索每个子图的第一目标邻居节点;每个子图的第一目标邻居节点与每个子图对应的兴趣节点间的距离小于第三阈值;
将每个子图的第一目标邻居节点,重新作为每个子图的第一当前搜索节点;
重复所述从每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点中,搜索每个子图的第一目标邻居节点,至所述将每个子图的第一目标邻居节点,重新作为每个子图的第一当前搜索节点的步骤,直至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离满足所述第一预设条件,进入所述第二搜索阶段。
在一示例性的实施方式中,所述在第二搜索阶段,基于每个子图的第二当前搜索节点的第一邻居节点进行节点搜索,得到目标节点,包括:
在所述第二搜索阶段,将每个子图中满足所述第一预设条件的第一目标邻居节点作为每个子图的第二当前搜索节点;
从每个子图的第二当前搜索节点的第一邻居节点中,搜索每个子图的第二目标邻居节点;每个子图的第二目标邻居节点与每个子图对应的兴趣节点间的距离小于第四阈值;
将每个子图的第二目标邻居节点,重新作为每个子图的第二当前搜索节点;
重复所述从每个子图的第二当前搜索节点对应的第一邻居节点中,搜索每个子图的第二目标邻居节点,至所述将每个子图的第二目标邻居节点,重新作为每个子图的第二当前搜索节点的步骤,直至每个子图当前搜索得到的第二目标邻居节点与每个子图对应的兴趣节点间的距离满足第四预设条件;
将每个子图中满足所述第四预设条件的第二目标邻居节点,作为每个子图的候选节点;
基于每个子图的候选节点,与每个子图对应的兴趣节点之间的距离,确定所述目标节点。
在一示例性的实施方式中,所述基于每个子图的候选节点,与每个子图对应的兴趣节点之间的距离,确定所述目标节点,包括:
将每个子图的候选节点,按照与每个子图对应的兴趣节点之间的距离,进行升序排序,得到候选节点序列;
将所述候选节点序列中前预设数量个候选节点,作为所述目标节点。
在一示例性的实施方式中,所述预设近邻图包括上层图和底层图,所述底层图包括多个子图,所述方法还包括构建所述预设近邻图的步骤,所述构建所述预设近邻图的步骤包括:
对预设推荐信息集中的预设推荐信息进行聚类,得到多个不同类别的预设推荐信息组;
在预设初始近邻图的初始上层图中,生成每个目标聚类信息对应的节点,每个目标聚类信息与每个预设推荐信息组的聚类中心一一对应,所述预设初始近邻图包括与所述上层图对应的所述初始上层图以及与所述底层图对应的初始底层图,所述初始底层图包括多个初始子图,每个预设推荐信息组与每个初始子图一一对应;
在每个预设推荐信息组对应的初始子图中,生成每个预设推荐信息组中的各个预设推荐信息对应的节点以及每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点;
将所述初始上层图中的节点,与所述初始上层图中的节点对应的邻居节点进行连接,得到所述上层图,将每个初始子图中的节点,与每个初始子图中的节点对应的邻居节点进行连接,得到每个子图。
在一示例性的实施方式中,每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点包括正向邻居节点和反向邻居节点,所述在每个预设推荐信息组对应的初始子图中,生成每个预设推荐信息组中的各个预设推荐信息对应的节点以及每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点,包括:
将每个预设推荐信息组中的任一预设推荐信息作为当前推荐信息;
在每个预设推荐信息组对应的初始子图中,生成所述当前推荐信息对应的当前节点;
根据所述当前节点与已添加节点之间的距离,确定所述当前节点的第一候选节点队列和第二候选节点队列;所述已添加节点为已添加至所述当前节点所在的初始子图中的节点,所述第一候选节点队列中的节点与所述当前节点之间的距离小于第五阈值,所述第二候选节点队列中的节点与所述当前节点之间的距离大于等于所述第五阈值,且小于第六阈值;
基于相对近邻图算法从所述第一候选节点队列中,确定所述当前节点的第一邻居节点,基于所述相对近邻图从所述第二候选节点队列,确定所述当前节点的第二邻居节点;
基于所述相对近邻图算法和所述已添加节点对应的邻居节点的分布信息,从所述已添加节点中确定所述当前节点的第三邻居节点;
将所述第一邻居节点和所述第二邻居节点作为所述当前节点的正向邻居节点,将所述第三邻居节点作为所述当前节点的反向邻居节点。
在一示例性的实施方式中,所述将每个初始子图中的节点,与每个初始子图中的节点对应的邻居节点进行连接,得到每个子图,包括:
将每个初始子图中的节点,与每个初始子图中的节点对应的正向邻居节点进行正向连接,将每个初始子图中的节点,与每个初始子图中的节点对应的反向邻居节点进行反向连接,得到每个子图。
在一示例性的实施方式中,所述方法还包括:
在所述当前节点对应的第一目标距离信息减小时,根据减小后的第一目标距离信息和预设参数,对所述当前节点对应的第二目标距离信息进行更新;所述第一目标距离信息表征所述当前节点的第一邻居节点与所述当前节点之间的距离最大值,所述第二目标距离信息表征所述当前节点的第二邻居节点与所述当前节点之间的距离最小值。
在一示例性的实施方式中,所述基于所述目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点,包括:
确定所述上层图中的节点,每个子图对应的兴趣节点之间的距离;
基于所述距离,从所述上层图的节点中,确定与每个子图对应的兴趣节点之间的距离小于第七阈值的初选节点;
从所述初选节点中确实每个子图的起始搜索节点。
根据本公开实施例的第二方面,提供一种信息推荐装置,包括:
响应模块,被配置为执行响应于目标对象的信息推荐请求,基于所述目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点,所述预设近邻图为基于预设推荐信息对应的节点构建得到;
第一搜索模块,被配置为执行在第一搜索阶段,基于每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点进行节点搜索,至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离的满足第一预设条件,进入第二搜索阶段;所述第一当前搜索节点包括所述起始搜索节点和基于所述起始搜索节点在所述第一搜索阶段中确定的满足第二预设条件的节点;所述每个子图对应的兴趣节点为所述兴趣信息在每个子图中所对应的节点;
第二搜索模块,被配置为执行在所述第二搜索阶段,基于每个子图的第二当前搜索节点的第一邻居节点进行节点搜索,得到目标节点;所述第二当前搜索节点为满足所述第一预设条件的第一目标邻居节点以及满足第三预设条件的节点,所述满足第三预设条件的节点基于满足所述第一预设条件的第一目标邻居节点在所述第二搜索阶段中确定;所述第一当前搜索节点和所述第二当前搜索节点,与各自对应的第一邻居节点间的距离小于第一阈值,所述第一当前搜索节点与所述第一当前搜索节点对应的第二邻居节点间的距离大于等于所述第一阈值,且小于第二阈值;
推荐模块,被配置为执行将所述目标节点对应的预设推荐信息推荐至所述目标对象。
在一示例性的实施方式中,所述第一搜索模块,包括:
第一当前搜索节点确定单元,被配置为执行在所述第一搜索阶段,将每个子图的起始搜索节点作为每个子图的第一当前搜索节点;
第一目标邻居节点确定单元,被配置为执行从每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点中,搜索每个子图的第一目标邻居节点;每个子图的第一目标邻居节点与每个子图对应的兴趣节点间的距离小于第三阈值;
第一当前搜索节点重新确定单元,被配置为执行将每个子图的第一目标邻居节点,重新作为每个子图的第一当前搜索节点;
第一重复单元,被配置为执行重复所述从每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点中,搜索每个子图的第一目标邻居节点,至所述将每个子图的第一目标邻居节点,重新作为每个子图的第一当前搜索节点的步骤,直至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离满足所述第一预设条件,进入所述第二搜索阶段。
在一示例性的实施方式中,所述第二搜索模块,包括:
第二当前搜索节点确定单元,被配置为执行在所述第二搜索阶段,将每个子图中满足所述第一预设条件的第一目标邻居节点作为每个子图的第二当前搜索节点;
第二目标邻居节点确定单元,被配置为执行从每个子图的第二当前搜索节点的第一邻居节点中,搜索每个子图的第二目标邻居节点;每个子图的第二目标邻居节点与每个子图对应的兴趣节点间的距离小于第四阈值;
第二当前搜索节点重新确定单元,被配置为执行将每个子图的第二目标邻居节点,重新作为每个子图的第二当前搜索节点;
第二重复单元,被配置为执行重复所述从每个子图的第二当前搜索节点对应的第一邻居节点中,搜索每个子图的第二目标邻居节点,至所述将每个子图的第二目标邻居节点,重新作为每个子图的第二当前搜索节点的步骤,直至每个子图当前搜索得到的第二目标邻居节点与每个子图对应的兴趣节点间的距离满足第四预设条件;
候选节点确定单元,被配置为执行将每个子图中满足所述第四预设条件的第二目标邻居节点,作为每个子图的候选节点;
目标节点确定单元,被配置为执行基于每个子图的候选节点,与每个子图对应的兴趣节点之间的距离,确定所述目标节点。
在一示例性的实施方式中,所述目标节点确定单元,包括:
排序子单元,被配置为执行将每个子图的候选节点,按照与每个子图对应的兴趣节点之间的距离,进行升序排序,得到候选节点序列;
目标节点确定子单元,被配置为执行将所述候选节点序列中前预设数量个候选节点,作为所述目标节点。
在一示例性的实施方式中,所述预设近邻图包括上层图和底层图,所述底层图包括多个子图,所述装置还包括构建所述预设近邻图的构建模块,所述构建模块,包括:
预设推荐信息组获取单元,被配置为执行对预设推荐信息集中的预设推荐信息进行聚类,得到多个不同类别的预设推荐信息组;
第一节点生成单元,被配置为执行在预设初始近邻图的初始上层图中,生成每个目标聚类信息对应的节点,每个目标聚类信息与每个预设推荐信息组的聚类中心一一对应,所述预设初始近邻图包括与所述上层图对应的所述初始上层图以及与所述底层图对应的初始底层图,所述初始底层图包括多个初始子图,每个预设推荐信息组与每个初始子图一一对应;
第二节点生成单元,被配置为执行在每个预设推荐信息组对应的初始子图中,生成每个预设推荐信息组中的各个预设推荐信息对应的节点以及每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点;
节点连接单元,被配置为执行将所述初始上层图中的节点,与所述初始上层图中的节点对应的邻居节点进行连接,得到所述上层图,将每个初始子图中的节点,与每个初始子图中的节点对应的邻居节点进行连接,得到每个子图。
在一示例性的实施方式中,每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点包括正向邻居节点和反向邻居节点,所述第二节点生成单元,包括:
当前推荐信息确定单元,被配置为执行将每个预设推荐信息组中的任一预设推荐信息作为当前推荐信息;
当前节点生成单元,被配置为执行在每个预设推荐信息组对应的初始子图中,生成所述当前推荐信息对应的当前节点;
队列确定单元,被配置为执行根据所述当前节点与已添加节点之间的距离,确定所述当前节点的第一候选节点队列和第二候选节点队列;所述已添加节点为已添加至所述当前节点所在的初始子图中的节点,所述第一候选节点队列中的节点与所述当前节点之间的距离小于第五阈值,所述第二候选节点队列中的节点与所述当前节点之间的距离大于等于所述第五阈值,且小于第六阈值;
正向邻居节点确定单元,被配置为执行基于相对近邻图算法从所述第一候选节点队列中,确定所述当前节点的第一邻居节点,基于所述相对近邻图从所述第二候选节点队列,确定所述当前节点的第二邻居节点;
反向邻居节点确定单元,被配置为执行基于所述相对近邻图算法和所述已添加节点对应的邻居节点的分布信息,从所述已添加节点中确定所述当前节点的第三邻居节点;
邻居节点确定单元,被配置为执行将所述第一邻居节点和所述第二邻居节点作为所述当前节点的正向邻居节点,将所述第三邻居节点作为所述当前节点的反向邻居节点。
在一示例性的实施方式中,所述节点连接单元,被配置为执行将每个初始子图中的节点,与每个初始子图中的节点对应的正向邻居节点进行正向连接,将每个初始子图中的节点,与每个初始子图中的节点对应的反向邻居节点进行反向连接,得到每个子图。
在一示例性的实施方式中,所述装置还包括:
更新模块,被配置为执行在所述当前节点对应的第一目标距离信息减小时,根据减小后的第一目标距离信息和预设参数,对所述当前节点对应的第二目标距离信息进行更新;所述第一目标距离信息表征所述当前节点的第一邻居节点与所述当前节点之间的距离最大值,所述第二目标距离信息表征所述当前节点的第二邻居节点与所述当前节点之间的距离最小值。
在一示例性的实施方式中,所述响应模块,包括:
距离确定单元,被配置为执行确定所述上层图中的节点,每个子图对应的兴趣节点之间的距离;
初选节点确定单元,被配置为执行基于所述距离,从所述上层图的节点中,确定与每个子图对应的兴趣节点之间的距离小于第七阈值的初选节点;
起始搜索节点确定单元,被配置为执行从所述初选节点中确实每个子图的起始搜索节点。
根据本公开实施例的第三方面,提供一种电子设备,包括;
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如上述任一实施方式所述的信息推荐方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备执行如上述任一实施方式所述的信息推荐方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施方式所述的信息推荐方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开实施例中在响应于目标对象的信息推荐请求时,基于目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点,接着在第一搜索阶段,在每个子图的第一邻居节点和第二邻居节点进行节点搜索,当每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离的满足第一预设条件时,进入第二搜索阶段。在第二搜索阶段,对每个子图的第二当前搜索节点的第一邻居节点进行节点搜索,得到目标节点。即本公开采取的是分阶段的邻居搜索方式,该分阶段的邻居搜索方式能够减少搜索计算量,提高目标节点的确定速度和精度,从而提高向目标对象推荐预设推荐信息的推荐速度和推荐精度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种信息推荐方法的应用环境图。
图2是根据一示例性实施例示出的一种信息推荐方法的流程图。
图3是根据一示例性实施例示出的一种预设近邻图的结构示意图。
图4是根据一示例性实施例示出的一种构建预设近邻图的流程图。
图5是根据一示例性实施例示出的一种预设近邻图的示意图。
图6是根据一示例性实施例示出的一种在每个推荐信息组对应的初始子图中,生成每个推荐信节点的流程图。
图7是根据一示例性实施例示出的一种第一预设区域和第二预设区域的示意图。
图8是根据一示例性实施例示出的一种RNG算法原理图。
图9是根据一示例性实施例示出的一种基于上述目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点的流程图。
图10是根据一示例性实施例示出的一种在第一搜索阶段进行节点搜索的流程图。
图11是根据一示例性实施例示出的一种在第二搜索阶段中进行节点搜索的流程图。
图12是根据一示例性实施例示出的一种基于每个子图的候选节点,与每个子图对应的兴趣节点之间的距离,确定上述目标节点的流程图。
图13是根据一示例性实施例示出的一种分阶段搜索的示意图。
图14是根据一示例性实施例示出的一种最底层图距离计算次数和召回率(Recall@1)的关系示意图。
图15是根据一示例性实施例示出的一种以SIFT1M数据集为基础的查询时间与召回率Recall@1)的关系示意图。
图16是根据一示例性实施例示出的一种以GIST1M数据集为基础的查询时间与召回率Recall@1)的关系示意图。
图17是根据一示例性实施例示出的一种信息推荐装置框图。
图18是根据一示例性实施例示出的一种用于信息推荐的电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
请参阅图1,图1是根据一示例性实施例示出的一种信息推荐方法的应用环境图,该应用环境可以包括客户端01和服务器02。客户端01可以通过有线或无线的方式与服务器02进行通信,本公开对此不做限定。
其中,客户端01可以采集目标对象的信息搜索请求,并将该目标对象的信息搜索请求发送至服务器02;以及用于接收服务器02推荐的待推荐信息。可选地,该客户端01可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、增强现实(augmentedreality,AR)/虚拟现实(virtual reality,VR)设备、智能可穿戴设备等终端设备。
其中,服务器02可以用于响应于客户端01采集的信息搜索请求,基于上述目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点;以及用于在第一搜索阶段,基于每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点进行节点搜索,至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离的满足第一预设条件,进入第二搜索阶段;上述第一当前搜索节点包括上述起始搜索节点和基于上述起始搜索节点在上述第一搜索阶段中确定的满足第二预设条件的节点;每个子图对应的兴趣节点为上述兴趣信息在每个子图中所对应的节点;以及用于根据每个目标子图的候选节点,确定上述目标节点对应的目标推荐节点;以及用于在上述第二搜索阶段,基于每个子图的第二当前搜索节点的第一邻居节点进行节点搜索,得到目标节点;上述第二当前搜索节点为满足上述第一预设条件的第一目标邻居节点以及满足第三预设条件的节点,上述满足第三预设条件的节点基于满足上述第一预设条件的第一目标邻居节点在上述第二搜索阶段中确定;上述第一当前搜索节点和上述第二当前搜索节点,与各自对应的第一邻居节点间的距离小于第一阈值,上述第一当前搜索节点与上述第一当前搜索节点对应的第二邻居节点间的距离大于等于上述第一阈值,且小于第二阈值;以及用于将上述目标节点对应的推荐信息推荐至上述目标对象。可选地,该服务器02可以是包括独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在另一个示例性的实施例中,本公开实施例提供的信息推荐方法还可以应用于仅包含客户端的应用环境中。其中,客户端可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、智能可穿戴设备等终端设备。客户端直接响应于目标对象的信息搜索请求,获基于上述目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点,接着以起始搜索节点为基础进行搜索,确定目标节点,最后将目标节点对应的推荐信息推荐至上述目标对象。
图2是根据一示例性实施例示出的一种信息推荐方法的流程图,如图2所示,该信息推荐方法用于图1中的包含客户端和服务器的系统中,可以包括以下步骤。
在步骤S11中,响应于目标对象的信息推荐请求,基于上述目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点,上述预设近邻图为基于预设推荐信息对应的节点构建得到。
可选地,该兴趣信息可以为用户主动输入的感兴趣的信息,也可以为服务器根据用户的属性信息确定的感兴趣的信息。
可选地,在推荐物的场景中,上述兴趣信息可以表征目标对象感兴趣的物。假设目标对象喜欢吃“汉堡”,则“汉堡”可以为该兴趣信息,通过搜索可以召回与该“汉堡”之间的距离小于预设距离阈值的预设推荐信息(比如,“薯条”),并将该预设推荐信息推荐给目标对象。
可选地,在推荐人的场景中,上述兴趣信息可以表征目标对象的属性。假设目标对象的属性为“金融人士、硕士”,则“金融人士、硕士”可以为该兴趣信息,通过该兴趣信息可以召回与目标对象具有相似属性的其他对象。
具体地,兴趣信息与子图中的节点所对应的预设推荐信息在空间上均以向量形式进行表现,子图中的节点所对应的预设推荐信息与兴趣信息在空间上有一个对应关系。由于兴趣信息只有一个,因此,兴趣信息对应的兴趣节点在空间中的绝对位置是固定的,但每个子图中所包含的节点是不一样的,因此,针对每个子图,兴趣节点的位置是相对的,即兴趣节点会在每个子图中的特定位置上。
图3是根据一示例性实施例示出的一种预设近邻图的结构示意图。如图3所示,上述预设近邻图可以包括顶层图和底层图,上述顶层图包括多个目标聚类信息各自对应的节点,多个上述目标聚类信息与相应的预设推荐信息组中的聚类中心相对应,可见,顶层图中的节点可以通过对预设推荐信息集中的预设推荐信息进行聚类得到的(即顶层图为基于聚类的顶层图),且基于聚类的顶层图有利于更加快速地获取子图中的起始搜索节点,从而提高向目标对象推荐预设推荐信息的推荐速度;此外,上述底层图包括水平维度的多个子图,多个子图能够实现对同一个搜索目标进行并行的最近邻搜索,提高搜索速度,从而进一步提高向目标对象推荐预设推荐信息的推荐速度。
在一个可选的实施例中,上述方法还包括构建上述预设近邻图的步骤。图4是根据一示例性实施例示出的一种构建预设近邻图的流程图。如图4所示,上述构建上述预设近邻图的步骤可以包括:
在步骤S21中,对预设推荐信息集中的预设推荐信息进行聚类,得到多个不同类别的预设推荐信息组。
具体地,该预设推荐信息集中的推荐信息,可以为用于向目标对象进行推荐的推荐信息。
示例性地,在推荐物的场景,该预设推荐信息集可以为由多个物的标识信息所组成的信息集。在推荐人的场景,该预设推荐信息集可以为由多个人的标识信息所组成的信息集。
可选地,可以采用聚类(比如,K-means聚类等)算法,对上述预设推荐信息集中的推荐信息进行聚类,得到多个不同类别的推荐信息组。
需要说明的是,预设推荐信息集中的各个预设推荐信息之间并没有真正的类别之分,上述聚类可以理解为,将距离较近的一些预设推荐信息聚类在一起(聚类在一起的预设推荐信息会形成一个聚类中心,比如,簇心),从而得到不同类别的预设推荐信息组。
具体地,每个预设推荐信息组中的聚类中心与每个目标聚类信息一一对应。可选地,如果聚类中心为某个预设推荐信息组中的预设推荐信息,则可以将该聚类中心直接作为该目标聚类信息;如果聚类中心不为某个预设推荐信息组中的预设推荐信息,则目标聚类信息可以为距离该预设推荐信息组中的聚类中心最近的预设推荐信息。
可选地,如果每个预设推荐信息组中的预设推荐信息差异较大,则在后续搜索过程中,搜索时间可能主要取决于预设推荐信息对应的节点数量最多的子图,从而降低搜索速度。基于此,在聚类的时候,可以稍微降低聚类的准确率,保证每个子图上的节点的差异较小,避免搜索时间主要取决于预设推荐信息对应的节点数量最多的子图,进而提高向目标对象推荐预设推荐信息的推荐速度。
在步骤S23中,在预设初始近邻图的初始上层图中,生成每个目标聚类信息对应的节点,每个目标聚类信息与每个预设推荐信息组的聚类中心一一对应,上述预设初始近邻图包括与上述上层图对应的上述初始上层图以及与上述底层图对应的初始底层图,上述初始底层图包括多个初始子图,每个预设推荐信息组与每个初始子图一一对应。
具体地,每个预设推荐信息组与每个初始子图一一对应。假设初始子图的数量为10个,则预设推荐信息组的数量也为10个,每个初始子图用于存放每个预设推荐信息组中的预设推荐信息对应的节点,即每个子图是相互独立的。
在步骤S25中,在每个预设推荐信息组对应的初始子图中,生成每个预设推荐信息组中的各个预设推荐信息对应的节点以及每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点。
在步骤S27中,将上述初始上层图中的节点,与上述初始上层图中的节点对应的邻居节点进行连接,得到上述上层图,将每个初始子图中的节点,与每个初始子图中的节点对应的邻居节点进行连接,得到每个子图。
图5是根据一示例性实施例示出的一种预设近邻图的示意图。如图5所示,上述预设初始近邻图包括上述顶层图对应的初始顶层图和上述底层图对应的初始底层图,上述初始底层图包括水平维度的多个初始子图。上述初始顶层图和每个初始子图均是空白的,即每个初始子图中均不包含任何节点。
具体地,在步骤S23中,可以将每个目标聚类信息添加至上述初始顶层图中,得到每个目标聚类信息在上述初始顶层图中的节点。
本公开实施例中,对底层图采用分区域构建,即底层图中的节点进行邻居选择的时候,分为两个区域(第一预设区域和第二预设区域)进行选择。其中,第一预设区域可以认为是精确查找区,用于后续搜索阶段的最近邻的精确搜索,第二预设区域可以认为是快速路由区,用于后续搜索阶段的最近邻的快速搜索。
在一个具体的实施例中,图6是根据一示例性实施例示出的一种在每个推荐信息组对应的初始子图中,生成每个推荐信息组中的各个推荐信息对应的节点以及每个推荐信息组中的各个推荐信息对应的节点的邻居节点的流程图。如图6所示,在上述步骤S25中,上述在每个预设推荐信息组对应的初始子图中,生成每个预设推荐信息组中的各个预设推荐信息对应的节点以及每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点,可以包括:
在步骤S2501中,将每个预设推荐信息组中的任一预设推荐信息作为当前推荐信息。
在步骤S2503中,在每个预设推荐信息组对应的初始子图中,生成上述当前推荐信息对应的当前节点。
在步骤S2505中,根据上述当前节点与已添加节点之间的距离,确定上述当前节点的第一候选节点队列和第二候选节点队列;上述已添加节点为已添加至上述当前节点所在的初始子图中的节点,上述第一候选节点队列中的节点与上述当前节点之间的距离小于第五阈值,上述第二候选节点队列中的节点与上述当前节点之间的距离大于等于上述第五阈值,且小于第六阈值。
具体地,在上述步骤S2505中,可以计算上述当前节点与上述已添加节点之间的距离。将与上述当前节点之间的距离,小于或等于上述第五阈值的已添加节点所形成的队列,作为上述第一候选节点队列。将与上述当前节点之间的距离,大于上述第五阈值且小于或等于上述第六阈值的已添加节点所形成的队列,作为上述第二候选节点队列。
本公开实施例中,如果当前节点是第一个添加至对应的初始子图中的,由于此时该初始子图中不存在其他节点,则可以不对当前节点进行邻居连接,如果当前节点并不是第一个添加至对应的初始子图中的(即在当前节点添加的时候,该初始子图中已经存在已添加节点),则可以获取与当前节点之间的距离小于或等于第五阈值的已添加节点,并将该已添加节点按照与当前节点之间的距离进行升序或降序排序,得到上述第一候选节点队列。同时,还可以获取与当前节点之间的距离大于该第五阈值,且小于或等于第六阈值的已添加节点,并将该已添加节点按照与当前节点之间的距离进行升序或降序排序,得到上述第二候选节点队列。而将距离较近的节点形成第一候选节点队列,将距离较远的节点形成第二候节点队列,能够提高第一预设区域中的第一邻居节点和第二预设区域中的第二邻居节点的确定精度和速度,从而提高向目标对象推荐预设推荐信息的推荐精度和推荐速度。
在步骤S2507中,基于相对近邻图算法从上述第一候选节点队列中,确定上述当前节点的第一邻居节点,基于上述相对近邻图从上述第二候选节点队列,确定上述当前节点的第二邻居节点。
由于候选节点队列中的节点可以作为当前节点的候选邻居节点,但在进行邻居选择的时候,可能并不需要将每个候选邻居节点均进行连接,为了确保邻居节点确定的准确率,可以采用相对近邻图算法(Relative Neighborhood Graph,RNG)从第一候选节点队列中,抽取预设数量个第一邻居节点,并将该预设数量个第一邻居节点分配至第一预设区域,同时可以采用相对近邻图算法从第二候选节点队列中,抽取预设数量个第二邻居节点,并将该预设数量个第二邻居节点分配至第二预设区域。
在一个具体的实施例中,上述基于相对近邻图算法从上述第一候选节点队列中,确定位于上述当前节点的第一邻居节点,可以包括:
将上述第一候选节点队列中,与上述当前节点之间的距离最近的候选节点,作为分配至上述第一预设区域的第一目标节点。
依次遍历每一第一其他节点,当遍历每一第一其他节点时,执行以下步骤,每一第一其他节点为上述第一候选节点队列中,除上述第一目标节点之外的节点。
计算上述当前节点与每一第一其他节点之间的距离,以及每一第一其他节点与上述第一预设区域已存在的各个第一目标节点之间的距离。
在上述当前节点与每一第一其他节点之间的距离,小于上述当前节点与每一第一其他节点之间的距离时,将每一第一其他节点作为分配至上述第一预设区域点的第一目标节点。
当每一第一其他节点遍历结束时,将上述第一预设区域中的各个第一目标节点作为上述第一邻居节点。
在一个具体的实施例中,上述基于上述相对近邻图从上述第二候选节点队列,确定位于上述当前节点的第二邻居节点,可以包括:
将上述第二候选节点队列中,与上述当前节点之间的距离最近的候选节点,作为分配至上述第二预设区域的第二目标节点。
依次遍历每一第二其他节点,当遍历每一第二其他节点时,执行以下步骤,每一第二其他节点为上述第二候选节点队列中,除上述第二目标节点之外的节点。
计算上述当前节点与每一第二其他节点之间的距离,以及每一第二其他节点与上述第二预设区域已存在的各个第二目标节点之间的距离。
在上述当前节点与每一第二其他节点之间的距离,小于上述第二预设区域已存在的各个第二目标节点之间的距离时,将每一第二其他节点作为分配至上述第二预设区域点的第二目标节点。
当每一第二其他节点遍历结束时,将上述第二预设区域中的各个第二目标节点作为上述第二邻居节点。
本公开实施例中,通过上述RNG算法可以避免各个第一邻居节点(或各个第二邻居节点)位于同一方向,也可以避免各个第一邻居节点(或各个第二邻居节点)之间距离太近,确保各个方向上均分布有第一邻居节点(或第二邻居节点),提高第一邻居节点(或第二邻居节点)确定的精度,从而提高向目标对象推荐预设推荐信息的推荐精度。
图7是根据一示例性实施例示出的一种第一预设区域和第二预设区域的示意图。如图7所示,实线圆圈内的区域为第一预设区域,实线圆圈内的节点为第一预设区域中的第一邻居节点,虚线圆圈外的区域为第二预设区域,虚线圆圈外的节点为第二预设区域中的第二节点,实线圆圈外和虚线圆圈内的节点不作为当前节点的邻居节点。
图8是根据一示例性实施例示出的一种RNG算法原理图。如图8所示,P为当前节点,a,b,c,d,e,f为第一候选节点队列中的候选节点。可以先选择距离p最近的节点a(即第一目标节点)进行连接。接着遍历每一第一其他节点(即b,c,d,e,f),具体遍历过程如下:
首先遍历b:确定当前节点p与第一其他节点b之间的第一距离,是否小于第一目标节点a与第一其他节点b之间的第二距离,由于节点b不满足上述条件,则不将节点b作为当前节点p的邻居。
接着遍历c:确定当前节点p与第一其他节点c之间的第一距离,是否小于第一目标节点a与第一其他节点c之间的第二距离,由于节点c不满足上述条件,则不将节点c作为当前节点p的邻居。
接着遍历d,确定当前节点p与第一其他节点d之间的第一距离,是否小于第一目标节点a与第一其他节点d之间的第二距离,由于第一其他节点d满足上述条件,则将节点d作为当前节点p的邻居,即也将d作为第一目标节点;
接着遍历e,由于此时第一预设区域中已经有了2个第一目标节点(节点a和节点d),则需要确定当前节点p与第一其他节点e之间的第一距离,是否小于第一目标节点a与第一其他节点e之间的距离,以及是否小于第一目标节点d与第一其他节点e之间的距离,由于当前节点p与第一其他节点e之间的第一距离,大于第一目标节点d与第一其他节点e之间的距离,因此,节点e不满足上述条件,则不将节点e为当前节点p的邻居。
接着遍历f,由于此时第一预设区域中已经有了2个第一目标节点(节点a和节点d),则需要确定当前节点p与第一其他节点f之间的第一距离,是否小于第一目标节点a与第一其他节点f之间的距离,以及是否小于第一目标节点d与第一其他节点f之间的距离,由于节点f满足上述条件,则不将节点f为当前节点p的邻居,即也将f作为第一目标节点。
当每一其他节点均遍历结束时,将第一预设区域中的各个第一目标节点作为上述第一邻居节点(即将节点a,d,f作为上述第一邻居节点)。
在步骤S2509中,基于上述相对近邻图算法和上述已添加节点对应的邻居节点的分布信息,从上述已添加节点中确定上述当前节点的第三邻居节点。
具体地,在进行邻居节点选择的过程中,还需要根据已添加节点的邻居节点的分布信息(即已添加节点的第一预设区域中的第一邻居节点和第二预设区域中的第二邻居节点的分布情况),判断当前节点能够被分配到哪一个目标已添加节点(目标已添加节点为已添加节点中的节点)的哪一个目标区域(第一预设区域或第二预设区域),具体方式可以如下:对于某一已添加节点来说,其第一预设区域和第二预设区域是已知的,则可以计算该当前节点与该已添加节点之间的距离,如果该距离小于该已添加节点与相应的第一预设区域中的第一邻居节点之间的距离最大值,则可以认为该当前节点位于该已添加节点的第一预设区域,此时,该已添加节点为目标已添加节点,该已添加节点的第一预设区域为目标区域。如果该当前节点与该已添加节点之间的距离,小于该已添加节点与相应的第二预设区域中的第二邻居节点之间的距离最大值,且大于该已添加节点与相应的第一预设区域中的第一邻居节点之间的距离最大值,则可以认为该当前节点位于该已添加节点的第二预设区域,此时,该已添加节点为目标已添加节点,该已添加节点的第二预设区域为目标区域。
接着通过上述RNG算法,将当前节点与该目标区域中的邻居节点进行选择,从而确定该当前节点是否为目标已添加节点的邻居节点,若是,则认为该目标已添加节点为该当前节点的反向连接节点。
假设目标已添加节点在上述目标区域中的各个邻居节点包括节点1、节点2和节点3,可以通过上述RNG算法,比较当前节点与目标已添加节点之间的距离,以及当前节点分别与节点1、节点2和节点3之间的距离,通过距离比较结果确定当前节点是否为目标已添加节点的邻居节点,若是,则认为该目标已添加节点为该当前节点的反正连接节点。
在步骤S25011中,将上述第一邻居节点和上述第二邻居节点作为上述当前节点的正向邻居节点,将上述第三邻居节点作为上述当前节点的反向邻居节点。
本公开实施例中,在生成底层图中的节点以及邻居节点的时候,采用分区域构建的策略,即每个添加至初始子图中的节点均会设置相应的第一预设区域和第二预设区域,在获取邻居候选者队列(即第一候选节点队列或第二候选节点队列)阶段,根据已添加节点与当前节点距离的远近动态调整这第一预设区域和第二预设区域的邻居候选者队列,在正向连接阶段,首先将第一候选节点队列中的节点,通过RNG算法分配到第一预设区域(即精确查找区),得到第一邻居节点,接着将第二候选节点队列中的节点,通过RNG算法分配到第二预设区域(即快速路由区),得到第二邻居节点。在反向连接阶段,首先根据当前节点与已添加节点之间的距离,判断当前节点可能被分配到的区域,然后再将当前节点与该区域内的已有节点通过RNG算法进行选择。通过分区域的构建方式,大大降低了计算复杂度,从而降低了底层图构建的复杂度。
具体地,在上述步骤S27中,可以将上述初始上层图中的节点,与上述初始上层图中的节点对应的邻居节点进行连接,得到上述上层图。而对于每个初始子图中的节点,可以将每个初始子图中的节点,与每个初始子图中的节点对应的正向邻居节点进行正向连接,将每个初始子图中的节点,与每个初始子图中的节点对应的反向邻居节点进行反向连接,得到每个子图。由于每个初始子图中的节点对应的正向邻居节点以及每个初始子图中的节点对应的反向邻居节点是通过上述分区域构建策略构建得到的,因此,将每个初始子图中的节点,与相应的正向邻居节点进行正向连接以及相应的反向邻居节点进行连接,提高了每个底层图构建的构建精度,降低了构建复杂度,从而提高了在使用该预设近邻图进行推荐的场景中,向目标对象推荐预设推荐信息的推荐精度。
以下,以推荐场景为推荐物的场景为例,对上述预设近邻图的构建过程进行举列说明:
预先收集不同种类的物,将收集到的不同种类的物的标识信息汇总,形成该预设推荐信息集。
假设初始子图的数量为5个(初始子图1、初始子图2、初始子图3、初始子图4和初始子图5),预设推荐信息集中包括1000个预设推荐信息。
按照K-means聚类算法对这1000个预设推荐信息进聚类,在聚类过程中将这1000个预设推荐信息中距离较近的一些预设推荐信息聚类在一起,得到5个预设推荐信息组(预设推荐信息组1、预设推荐信息组2、预设推荐信息组3、预设推荐信息组4和预设推荐信息组5),每一个预设推荐信息组对应一个聚类中心(比如,簇心)。
如果某个预设推荐信息组中的聚类中心,为该预设推荐信息组中的某一个预设推荐信息,则将该聚类中心作为该预设推荐信息组对应的目标聚类信息。如果某个预设推荐信息组中的聚类中心,不为该预设推荐信息组中的某一个预设推荐信息,则将距离该预设推荐信息组中的聚类中心最近的预设推荐信息,作为该预设推荐信息组的聚类中心对应的目标聚类信息。
将这5个预设推荐信息各自对应的目标聚类信息添加中初始顶层图中,得到多个上述目标聚类信息在上述初始顶层图中的节点,并将预设推荐信息组1中的各个预设推荐信息添加至初始子图1中,将预设推荐预设推荐信息组2中的各个推荐信息添加至初始子图2中,将预设推荐信息组3中的各个预设推荐信息添加至初始子图3中,将预设推荐信息组4中的各个预设推荐信息添加至初始子图4中,将预设推荐信息组5中的各个预设推荐信息添加至初始子图5中。
在将各个预设推荐信息添加至初始子图的过程中,可以按照上述分区域邻居选择策略以及相对近邻图算法,确定每个子图中的节点的邻居节点。
最后将添加至初始顶层图和初始子图中的节点与相应的邻居节点进行连接,得到上述预设近邻图。该构建得到的预设近邻图可以用于推荐物的场景中,即在推荐物的场景中,在该预设近邻图中搜索兴趣信息对应的目标节点,并将该目标节点对应的物推荐至目标对象。
本公开实施例中,在预设近邻图构建过程中,将目标聚类信息添加至初始顶层图,得到包含目标聚类信息对应的节点的顶层图,使得顶层图的节点是通过对预设推荐信息集中的预设推荐信息进行聚类得到的,基于聚类的顶层图结构可以更加快速地找到子图中的起始搜索节点,从而提高搜索速度,进而提高向目标对象推荐预设推荐信息的推荐速度;此外,将初始底层图划分为多个水平维度的初始子图,并将每个预设推荐信息组中的预设推荐信息添加至相应的初始子图中,得到包含同一预设推荐信息组中的预设推荐信息对应的节点的子图,使得每个子图中的节点均来源于同一个预设推荐信息组,多个子图能够实现对同一个搜索目标进行并行的最近邻搜索,从而进一步提高搜索速度,进而进一步提高向目标对象推荐预设推荐信息的推荐速度。
在一个可选的实施例中,上述方法还可以包括:
在上述当前节点对应的第一目标距离信息减小时,根据减小后的第一目标距离信息和预设参数,对上述当前节点对应的第二目标距离信息进行更新;上述第一目标距离信息表征上述当前节点的第一邻居节点与上述当前节点之间的距离最大值,上述第二目标距离信息表征上述当前节点的第二邻居节点与上述当前节点之间的距离最小值。
具体地,可以预先为每个节点的第一预设区域中的第一邻居节点设置第一目标距离信息,为每个节点的第二预设区域中的第二邻居节点设置第二目标距离信息。第一目标距离信息并非是固定不变的,如果第一预设区域中的第一邻居节点数量满足预设条件(比如,相应的候选节点队列中的节点已满),但后续又有新的节点加进来的时候,可以用新的节点替换该第一预设区域中距离当前节点距离最远的第一邻居节点,此时第一目标距离信息是逐渐减少的。因此,为了进一步提高底层图构建的精度,降低目近邻图的构建复杂度,从而提高在推荐场景中,向目标对象推荐预设推荐信息的推荐精度,还可以根据第一目标距离信息动态更新第二预设区域(即快速路由区)的第二目标距离信息。
可选地,可以将减少后的第一目标距离信息与预设参数进行相乘,得到更新后的第第二目标距离信息。
具体地,在推荐场景中,当需要进行信息推荐时,可以响应于目标对象的信息推荐请求,基于目标对象的兴趣信息以及通过上述方式预先构建好的预设近邻图,确定每个子图对应的起始搜索节点。
在一个可选的实施例中,图9是根据一示例性实施例示出的一种基于上述目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点的流程图。如图9所示,在上述S11中,上述基于上述目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点,可以包括:
在步骤S1101中,确定上述上层图中的节点,每个子图对应的兴趣节点之间的距离。
在步骤S1103中,基于上述距离,从上述上层图的节点中,确定与每个子图对应的兴趣节点之间的距离小于第七阈值的初选节点。
在步骤S1105中,从上述初选节点中确实每个子图的起始搜索节点。
示例性地,如果上层图非基于聚类的上层图,对于每个子图(以子图0为例),则可以直接计算上层图中的节点子图0对应的兴趣节点之间的距离,基于该距离,从上层图的节点中,确定与子图0对应的兴趣节点之间的距离小于第七阈值的初选节点。如果该初始节点的数量为1个,则直接将该初始节点作为子图0的起始搜索节点,如果该初始节点的数量为多个,则可以从该初始节点中选择子图0对应的兴趣节点最近的节点,作为子图0的起始搜索节点。
示例性地,如果该上层图为基于上述预设近邻图的构建方式构建得到的、基于聚类的上层图,由于上层图中的节点是与每个预设推荐信息组的目标聚类信息一一对应的,每一预设信息组中的预设推荐信息又是基于距离聚类得到的,则在上述S1103中,与每个子图对应的兴趣节点之间的距离小于第七阈值的初始节点,应该是与每个子图对应的预设推荐信息组的目标聚类信息对应的上层图中的节点,直接将该节点作为每个组图的起始搜索节点。
示例性地,如果该上层图为基于上述预设近邻图的构建方式构建得到的、基于聚类的上层图,为了提高搜索速度,进而提高向目标对象推荐预设推荐信息的推荐速度,还可以从多个子图中选取预设数量个目标子图参与后续的搜索过程(即并非每次搜索均需要使用每个子图),其中,预设数量个子图的数量,小于多个子图的数量。
假设预设推荐信息组的数量为5个(预设推荐信息组1、预设推荐信息组2、预设推荐信息组3、预设推荐信息组4和预设推荐信息组5),子图的数量也为5个(子图1、子图2、子图3、子图4和子图5),顶层图中包括5个节点(节点1、节点2、节点3、节点4和节点5),预设推荐信息组1与子图1相对应,预设推荐信息组2与子图2相对应,预设推荐信息组3与子图3相对应,预设推荐信息组4与子图4相对应,预设推荐信息组5与子图5相对应。如果节点1、节点2和节点3距离,与所在的子图对应的兴趣节点之间的距离小于第七阈值,则将节点1、节点2和节点3作为目标节点。
确定节点1、节点2和节点3所属的推荐信息组,假设节点1属于推荐信息组1、节点2属于推荐信息组2、节点3属于推荐信息组3,则推荐信息组1、推荐信息组2、推荐信息组3各自对应的子图为目标子图(即子图1、子图2、子图3为目标子图)。则将节点1作为子图1中的起始搜索节点,将节点2作为子图2中的起始搜索节点,将节点3作为子图3中的起始搜索节点。
本公开实施例中,通过上层图中的节点与每个子图对应的兴趣节点之间的距离,能够准确确定出每个子图的起始搜索节点,从而提高向目标对象推荐预设推荐信息的精度;此外,由于基于聚类的上层图结构与多个子图之间不含有其他图层,且基于聚类的上层图中的节点是与每个预设推荐信息组的目标聚类信息一一对应的,因此,通过基于聚类的上层图结构进行起始节点搜索,不仅能够提高向目标对象推荐预设推荐信息的推荐精度,还能够快速找到起始搜索节点,从而提高向目标对象推荐预设推荐信息的推荐速度。此外,在每次搜索的时候,还可以不对所有的子图中的节点进行搜索,而是选择预设数量个目标子图进行搜索,由于预设数量个目标子图是相互独立的,从而在实现对同一个搜索目标进行并行的最近邻搜索的基础上,进一步提高搜索速度,进而进一步提高向目标对象推荐预设推荐信息的推荐速度。
在步骤S13中,在第一搜索阶段,基于每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点进行节点搜索,至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离的满足第一预设条件,进入第二搜索阶段;上述第一当前搜索节点包括上述起始搜索节点和基于上述起始搜索节点在上述第一搜索阶段中确定的满足第二预设条件的节点;上述每个子图对应的兴趣节点为上述兴趣信息在每个子图中所对应的节点。
在一个具体地的实施例中,图10是根据一示例性实施例示出的一种在第一搜索阶段进行节点搜索的流程图。如图10所示,在上述步骤S13中,上述在第一搜索阶段,基于每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点进行节点搜索,至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离的满足第一预设条件,进入第二搜索阶段,可以包括:
在步骤S1301中,在上述第一搜索阶段,将每个子图的起始搜索节点作为每个子图的第一当前搜索节点。
具体地,第一搜索阶段为快速路由阶段,在第一搜索阶段中需要对节点的第一预设区域中的第一邻居节点和第二预设区域中的第二邻居节点进行搜索,从而达到快速接近目标节点的目的。
在步骤S1303中,从每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点中,搜索每个子图的第一目标邻居节点;每个子图的第一目标邻居节点与每个子图对应的兴趣节点间的距离小于第三阈值。
可选地,每个子图的第一目标邻居节点为第一预设区域的第一邻居节点和第二预设区域中的第二邻居节点中,距离每个子图的对应的兴趣节点最近的邻居节点。
具体地,上述“基于上述起始搜索节点在上述第一搜索阶段中确定的满足第二预设条件的节点”,即为从每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点中搜索得到的,与每个子图对应的兴趣节点间的距离小于第三阈值的节点。
在步骤S1305中,将每个子图的第一目标邻居节点,重新作为每个子图的第一当前搜索节点。
在步骤S1307中,重复上述从每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点中,搜索每个子图的第一目标邻居节点,至上述将每个子图的第一目标邻居节点,重新作为每个子图的第一当前搜索节点的步骤,直至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离满足上述第一预设条件,进入上述第二搜索阶段。
具体地,可以预先为每个目标子图设置各自对应的搜索结果队列,并将每个子图当前搜索到的第一目标节点存入该搜索结果队列。
可选地,对于每个子图而言,如果上述搜索结果队列未满,则直接将当前搜索到的第一目标节点存入搜索结果队列中,将该第一目标节点重新作为第一当前搜搜节点,然后再从第一当前搜索节点对应的第一预设区域的第一邻居节点和第二预设区域中的第二邻居节点中再次寻找距离兴趣节点之间的距离最小的第一目标邻居节点,将该第一目标邻居节点重新作为第一当前搜索节点存入搜索结果队列中。如果搜索结果队列满了(即搜索结果队列中的节点所占用的内存大小满足相应的预设存储信息,该预设存储信息可以为队列长度),则将该搜索结果队列中距离兴趣节点最近的节点作为目标搜索节点,并继续搜索第一目标邻居节点,如果当前搜索到的第一目标邻居节点与兴趣节点之间的距离小于该目标搜索节点与兴趣节点之间的距离,则使用当前搜索到的第一目标邻居节点替换该目标搜索节点,并将该当前搜索到的第一目标邻居节点重新作为该目标搜索节点。接着继续搜索第一目标邻居节点,如果持续搜索预设数量次(比如,5次),发现当前搜索到的第一目标邻居节点与兴趣节点之间的距离小于目标搜索节点与兴趣节点之间的距离,则说明此时相应的搜索结果队列中排序最前(按照距离兴趣节点之间的距离进行排序)的目标搜索节点距离兴趣节点的距离最近,即说明此时已经到了兴趣节点的附近的区域,则可以进入后续的第二搜索阶段。即,上述第一预设条件可以为:当前搜索得到的第一目标邻居节点与兴趣节点之间的距离,大于搜索结果队列中排序最前的目标搜索节点与兴趣节点之间的距离。
可选地,上述第一预设条件还可以为:每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离最近。
本公开实施例中的第一搜索阶段为快速路由阶段,在第一搜索阶段中需要对节点的第一预设区域中的第一邻居节点和第二预设区域中的第二邻居节点进行节点搜索,从而达到快速接近兴趣节点的目的,在达到兴趣节点附近的区域之后,可以切换到第二搜索阶段,第二搜索阶段可以对节点的第一预设区域中的第一邻居节点进行进一步精细搜索,从而提高目标节点确定的精度和速度,进而提高向目标对象推荐预设推荐信息的推荐精度和推荐速度。
在步骤S15中,在上述第二搜索阶段,基于每个子图的第二当前搜索节点的第一邻居节点进行节点搜索,得到目标节点;上述第二当前搜索节点为满足上述第一预设条件的第一目标邻居节点以及满足第三预设条件的节点,上述满足第三预设条件的节点基于满足上述第一预设条件的第一目标邻居节点在上述第二搜索阶段中确定;上述第一当前搜索节点和上述第二当前搜索节点,与各自对应的第一邻居节点间的距离小于第一阈值,上述第一当前搜索节点与上述第一当前搜索节点对应的第二邻居节点间的距离大于等于上述第一阈值,且小于第二阈值。
在一个可选的实施例中,图11是根据一示例性实施例示出的一种在第二搜索阶段中进行节点搜索的流程图。如图11所示,在上述步骤S15中,上述在第二搜索阶段,基于每个子图的第二当前搜索节点的第一邻居节点进行节点搜索,得到目标节点,可以包括:
在步骤S1501中,在上述第二搜索阶段,将每个子图中满足上述第一预设条件的第一目标邻居节点作为每个子图的第二当前搜索节点。
在步骤S1503中,从每个子图的第二当前搜索节点的第一邻居节点中,搜索每个子图的第二目标邻居节点;每个子图的第二目标邻居节点与每个子图对应的兴趣节点间的距离小于第四阈值。
具体地,每个目标子图的第二目标邻居节点为第一预设区域中的第一邻居节点中,距离每个目标子图对应的兴趣节点之间的距离最近的节点。
具体地,上述“满足第三预设条件的节点”,即为从每个子图的第二当前搜索节点的第一邻居节点中,搜索得到的与每个子图对应的兴趣节点间的距离小于第四阈值的第二目标邻居节点。
在步骤S1505中,将每个子图的第二目标邻居节点,重新作为每个子图的第二当前搜索节点。
在步骤S1507中,重复上述从每个子图的第二当前搜索节点对应的第一邻居节点中,搜索每个子图的第二目标邻居节点,至上述将每个子图的第二目标邻居节点,重新作为每个子图的第二当前搜索节点的步骤,直至每个子图当前搜索得到的第二目标邻居节点与每个子图对应的兴趣节点间的距离满足第四预设条件。
具体地,第四预设条件可以为:每个子图当前搜索得到的第二目标邻居节点与每个子图对应的兴趣节点间的最近。
在步骤S1509中,将每个子图中满足上述第四预设条件的第二目标邻居节点,作为每个子图的候选节点。
在步骤S15011中,基于每个子图的候选节点,与每个子图对应的兴趣节点之间的距离,确定上述目标节点。
本公开实施例中,第二搜索阶段为精细查找阶段,由于此时已经处于兴趣节点的附近区域,在该阶段屏蔽掉第二预设区域(即快速路由区)中的第二邻居节点,对节点的第一预设区域(即精确查找区)中的第一邻居节点进行搜索,避免了继续对第二预设域中的第二邻居节点进行搜索所带来的无效的计算量,减少搜索过程对系统计算资源的消耗,从而实现了高效且准确的搜索,提高了目标节点确定的精度和速度,进而提高了向目标对象推荐预设推荐信息的推荐速度和推荐精度。
在一个可选的实施例中,图12是根据一示例性实施例示出的一种基于每个子图的候选节点,与每个子图对应的兴趣节点之间的距离,确定上述目标节点的流程图。如图12所示,在上述步骤S15011中,上述基于每个子图的候选节点,与每个子图对应的兴趣节点之间的距离,确定上述目标节点,可以包括:
在步骤S150111中,将每个子图的候选节点,按照与每个子图对应的兴趣节点之间的距离,进行升序排序,得到候选节点序列。
在步骤S150113中,将上述候选节点序列中前预设数量个候选节点,作为上述目标节点。
本公开实施例中,可以合并每个子图的候选节点,并将合并后的每个子图的候选节点,按照与每个子图对应的兴趣节点之间的距离,进行升序排序,得到上述兴趣节点对应的候选节点序列。接着可以选取候选节点序列中前预设数量个候选节点,作为上述目标节点。
本公开实施例中,通过将每个子图的候选节点进行合并和排序,并将排序后的前预设数量个候选节点,作为上述目标节点,提高了目标节点的确定精度,从而提高了向目标对象推荐预设推荐信息的推荐精度。此外,由于每个子图的候选节点的确定过程是通过多线程并行执行的,每个子图中的候选节点的确定效率较高,从而使得目标节点的确定效率也较高,进而提高向目标对象推荐预设推荐信息的推荐速度。
以下,以推荐场景为推荐物的场景,兴趣信息为“汉堡”对应的向量,兴趣节点为兴趣信息在每个子图上所对应的节点为例,对上述分阶段搜索过程进行举例说明:
假设子图为子图1、子图2和子图3,节点1为作为子图1中的起始搜索节点为节点1,节点2为作为子图2的起始搜索节点,节点3为作为子图3的起始搜索节点。
图13是根据一示例性实施例示出的一种分阶段搜索的示意图。如图13所示,假设子图为子图1,子图1中的起始搜索节点为节点1。
将节点1作为子图1在第一搜索阶段的第一当前搜索节点。接着将节点1存入子图1对应的搜索结果队列中。接着从节点1的第一预设区域的第一邻居节点中和第二预设区域的第二邻居节点中,确定距离兴趣节点(即“汉堡”对应的向量在子图1上所对应的节点)最近的第一目标邻居节点(节点2)。接着将节点2重新作为第一当前搜索节点。接着继续将节点2存入搜索结果队列中,并继续从节点2的第一预设区域的第一邻居节点中和第二预设区域的第二邻居节点中,确定距离兴趣节点最近的第一目标邻居节点(节点3),将节点3重新作为第一当前搜索节点,并将节点3存入搜索结果队列中。接着继续从节点3的第一预设区域的第一邻居节点中和第二预设区域的第二邻居节点中,确定距离兴趣节点最近的第一目标邻居节点(节点4),将节点4重新作为第一当前搜索节点,并将节点4存入搜索结果队列中。以此类推。在上述过程中,如果搜索结果队列未满,则在搜索到第一当前搜索节点之后,可以直接将第一当前搜索节点存入该搜索结果队列中。当搜索到节点4的时候,发现搜索队列已经满了,且继续按照上述方式搜索得到的节点距离兴趣节点的距离,均大于节点4与兴趣节点之间的距离,则认为此时已经到达了兴趣节点的附近区域,则可以停止上述重复迭代过程,切换至第二搜索阶段进行精准搜索。
在第二搜索阶段,可以从节点4对应的第一预设区域的第一邻居节点中,确定距离兴趣节点最近的节点5,接着将节点5重新作为第二当前搜索节点。接着继续从节点5对应的第一预设区域的第一邻居节点中,确定距离兴趣节点最近的节点6,接着将节点6重新作为第二当前搜索节点,从节点6对应的第一预设区域的第一邻居节点中,确定距离兴趣节点最近的节点7。经判断发现,节点7距离兴趣节点之间的距离满足第四预设条件,则将节点7作为子图1的候选节点。
子图2和子图3中的候选节点确定过程与子图1中的候选节点确定过程类似,在此不再赘述。
接着计算子图1的候选节点与子图1中对应的兴趣节点之间的距离、计算子图2的候选节点与子图2中对应的兴趣节点之间的距离、计算子图3的候选节点与子图3中对应的兴趣节点之间的距离,并按照上述距离对每个子图的候选节点进行升序排序,最后取前预设数量个节点作为目标节点。在推荐物的场景中,该目标节点可以为距离“汉堡”对应的向量较近的物所对应的节点。
在步骤S17中,将上述目标节点对应的预设推荐信息推荐至上述目标对象。
本公开实施例中在得到目标节点之后,可以将目标节点对应的推荐信息推荐至上述目标对象。
假设,推荐场景为推荐物的场景,兴趣信息为“汉堡”对应的向量,通过上述方式确定得到的目标节点为“薯条”对应的向量,则可以将该目标节点对应的推荐信息(即薯条)推荐给目标对象。
假设,推荐场景为推荐人的场景,兴趣信息为“金融人士、硕士对应的向量,通过上述方式确定得到的目标节点为“张三”对应的向量,则可以将该目标节点对应的推荐信息(即张三)推荐给目标对象。
需要说明的是,上述节点与节点之间的可以指的是向量之间的距离,具体可以为节点embedding之间的距离。其中,embedding是一种从语义空间到向量空间的映射。
本公开实施例在图内邻居连接方面,采用分区域构建策略大大降低了构建复杂度,与采用现有的RNG算法相比,本公开实施例提供的RNG算法在构建阶段的距离计算次数可以降低15.8%左右。在搜索阶段采用分阶段搜索策略,第一搜索阶段中需要对节点的第一预设区域中的第一邻居节点和第二预设区域中的第二邻居节点进行搜索,从而达到快速接近兴趣节点的目的,在达到兴趣节点附近的区域之后,可以切换到第二搜索阶段进行进一步精细搜索,在第二搜索阶段仅需对节点的第一预设区域中的第一邻居节点进行搜索,屏蔽掉了第二预设区域(即快速路由区),避免了很多无效计算量,实现了高效且准确的搜索。在图层结构方面,采用基于聚类的顶层图和子图集合的方式,基于聚类的顶层图可以更快的获取起始搜索节点,子图集合实现了针对单个兴趣节点的细粒度并行搜索,从而大大降低了搜索时间。
本公开实施例在某CPU硬件平台上对上述方法进行了实验,所测试的数据集包括SIFT1M和GIST1M。其中,SIFT1M是一个128维的数据集,其中包含100万个基向量(即预设推荐信息集中的预设推荐信息)和1万个查询向量(即关联信息),GIST1M是一个960维的数据集,其中包含100万个基向量(即预设推荐信息集中的推荐信息)和1万个查询向量(即关联搜索信息)。
本公开实施例首先对分区域构建算法和分阶段搜索算法进行了实验。图14是根据一示例性实施例示出的一种最底层图距离计算次数和召回率(Recall@1)的关系示意图,其中,Recall@1指的是根据推荐的前1个结果所得的召回率。如图14所示,在相同参数设置情况下比较,本公开实施例所提出的分区域构建算法相比现有RNG算法相比,在构建最底层时,平均距离计算次数可以减少15.8%,由于最大邻居数相同,因此本公开实施例的精确查找区的点数是小于现有算法的点数,因此本公开实施例的搜索精度应当会略低于原始算法,但由于在搜索阶段采用了分阶段搜索算法,因此本公开实施例可以从减少计算量和增加精度两方面优化搜索算法,进而使得减少构建复杂度的同时,保持搜索精度不变或者略微提升。
本公开实施例还对双层图结构进行了实验。图15是根据一示例性实施例示出的一种以SIFT1M数据集为基础的查询时间与召回率Recall@1)的关系示意图。图16是根据一示例性实施例示出的一种以GIST1M数据集为基础的查询时间与召回率Recall@1)的关系示意图。如图15和图16所示,基于聚类的顶层图可以实现对起始搜索节点的快速查找,子图集合内的相互独立性使得针对同一个查询向量可以采用多线程的方式加速搜索,相比现有算法,本公开实施例在多个数据集上均有提升效果,在同样召回率的情况下,搜索速度最大可以提升3倍左右。
综上上述,本公开实施例所提出的分段邻居选择策略和双层图结构,不仅在构建时间上大大降低,满足了未来大数据时代下由于数据快速更新迭代导致需要频繁构建的要求,此外还实现了针对单个查询向量的加速搜索,在保持召回率不变的情况下大大缩短了搜索时间,满足了实际生产中要求的低延时场景。
图17是根据一示例性实施例示出的一种信息推荐装置框图。参照图5,该装置可以包括响应模块31、第一搜索模块33、第二搜索模块35和推荐模块37。
响应模块31,被配置为执行响应于目标对象的信息推荐请求,基于上述目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点,上述预设近邻图为基于预设推荐信息对应的节点构建得到。
第一搜索模块33,被配置为执行在第一搜索阶段,基于每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点进行节点搜索,至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离的满足第一预设条件,进入第二搜索阶段;上述第一当前搜索节点包括上述起始搜索节点和基于上述起始搜索节点在上述第一搜索阶段中确定的满足第二预设条件的节点;上述每个子图对应的兴趣节点为上述兴趣信息在每个子图中所对应的节点。
第二搜索模块35,被配置为执行在上述第二搜索阶段,基于每个子图的第二当前搜索节点的第一邻居节点进行节点搜索,得到目标节点;上述第二当前搜索节点为满足上述第一预设条件的第一目标邻居节点以及满足第三预设条件的节点,上述满足第三预设条件的节点基于满足上述第一预设条件的第一目标邻居节点在上述第二搜索阶段中确定;上述第一当前搜索节点和上述第二当前搜索节点,与各自对应的第一邻居节点间的距离小于第一阈值,上述第一当前搜索节点与上述第一当前搜索节点对应的第二邻居节点间的距离大于等于上述第一阈值,且小于第二阈值。
推荐模块37,被配置为执行将上述目标节点对应的预设推荐信息推荐至上述目标对象。
在一示例性的实施方式中,上述第一搜索模块33,包括:
第一当前搜索节点确定单元,被配置为执行在上述第一搜索阶段,将每个子图的起始搜索节点作为每个子图的第一当前搜索节点。
第一目标邻居节点确定单元,被配置为执行从每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点中,搜索每个子图的第一目标邻居节点;每个子图的第一目标邻居节点与每个子图对应的兴趣节点间的距离小于第三阈值。
第一当前搜索节点重新确定单元,被配置为执行将每个子图的第一目标邻居节点,重新作为每个子图的第一当前搜索节点。
第一重复单元,被配置为执行重复上述从每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点中,搜索每个子图的第一目标邻居节点,至上述将每个子图的第一目标邻居节点,重新作为每个子图的第一当前搜索节点的步骤,直至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离满足上述第一预设条件,进入上述第二搜索阶段。
在一示例性的实施方式中,上述第二搜索模块35,包括:
第二当前搜索节点确定单元,被配置为执行在上述第二搜索阶段,将每个子图中满足上述第一预设条件的第一目标邻居节点作为每个子图的第二当前搜索节点。
第二目标邻居节点确定单元,被配置为执行从每个子图的第二当前搜索节点的第一邻居节点中,搜索每个子图的第二目标邻居节点;每个子图的第二目标邻居节点与每个子图对应的兴趣节点间的距离小于第四阈值。
第二当前搜索节点重新确定单元,被配置为执行将每个子图的第二目标邻居节点,重新作为每个子图的第二当前搜索节点。
第二重复单元,被配置为执行重复上述从每个子图的第二当前搜索节点对应的第一邻居节点中,搜索每个子图的第二目标邻居节点,至上述将每个子图的第二目标邻居节点,重新作为每个子图的第二当前搜索节点的步骤,直至每个子图当前搜索得到的第二目标邻居节点与每个子图对应的兴趣节点间的距离满足第四预设条件。
候选节点确定单元,被配置为执行将每个子图中满足上述第四预设条件的第二目标邻居节点,作为每个子图的候选节点。
目标节点确定单元,被配置为执行基于每个子图的候选节点,与每个子图对应的兴趣节点之间的距离,确定上述目标节点。
在一示例性的实施方式中,上述目标节点确定单元,包括:
排序子单元,被配置为执行将每个子图的候选节点,按照与每个子图对应的兴趣节点之间的距离,进行升序排序,得到候选节点序列。
目标节点确定子单元,被配置为执行将上述候选节点序列中前预设数量个候选节点,作为上述目标节点。
在一示例性的实施方式中,上述预设近邻图包括上层图和底层图,上述底层图包括多个子图,上述装置还包括构建上述预设近邻图的构建模块,上述构建模块,包括:
预设推荐信息组获取单元,被配置为执行对预设推荐信息集中的预设推荐信息进行聚类,得到多个不同类别的预设推荐信息组。
第一节点生成单元,被配置为执行在预设初始近邻图的初始上层图中,生成每个目标聚类信息对应的节点,每个目标聚类信息与每个预设推荐信息组的聚类中心一一对应,上述预设初始近邻图包括与上述上层图对应的上述初始上层图以及与上述底层图对应的初始底层图,上述初始底层图包括多个初始子图,每个预设推荐信息组与每个初始子图一一对应。
第二节点生成单元,被配置为执行在每个预设推荐信息组对应的初始子图中,生成每个预设推荐信息组中的各个预设推荐信息对应的节点以及每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点。
节点连接单元,被配置为执行将上述初始上层图中的节点,与上述初始上层图中的节点对应的邻居节点进行连接,得到上述上层图,将每个初始子图中的节点,与每个初始子图中的节点对应的邻居节点进行连接,得到每个子图。
在一示例性的实施方式中,每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点包括正向邻居节点和反向邻居节点,上述第二节点生成单元,包括:
当前推荐信息确定单元,被配置为执行将每个预设推荐信息组中的任一预设推荐信息作为当前推荐信息。
当前节点生成单元,被配置为执行在每个预设推荐信息组对应的初始子图中,生成上述当前推荐信息对应的当前节点。
队列确定单元,被配置为执行根据上述当前节点与已添加节点之间的距离,确定上述当前节点的第一候选节点队列和第二候选节点队列;上述已添加节点为已添加至上述当前节点所在的初始子图中的节点,上述第一候选节点队列中的节点与上述当前节点之间的距离小于第五阈值,上述第二候选节点队列中的节点与上述当前节点之间的距离大于等于上述第五阈值,且小于第六阈值。
正向邻居节点确定单元,被配置为执行基于相对近邻图算法从上述第一候选节点队列中,确定上述当前节点的第一邻居节点,基于上述相对近邻图从上述第二候选节点队列,确定上述当前节点的第二邻居节点。
反向邻居节点确定单元,被配置为执行基于上述相对近邻图算法和上述已添加节点对应的邻居节点的分布信息,从上述已添加节点中确定上述当前节点的第三邻居节点;
邻居节点确定单元,被配置为执行将上述第一邻居节点和上述第二邻居节点作为上述当前节点的正向邻居节点,将上述第三邻居节点作为上述当前节点的反向邻居节点。
在一示例性的实施方式中,上述节点连接单元,被配置为执行将每个初始子图中的节点,与每个初始子图中的节点对应的正向邻居节点进行正向连接,将每个初始子图中的节点,与每个初始子图中的节点对应的反向邻居节点进行反向连接,得到每个子图。
在一示例性的实施方式中,上述装置还包括:
更新模块,被配置为执行在上述当前节点对应的第一目标距离信息减小时,根据减小后的第一目标距离信息和预设参数,对上述当前节点对应的第二目标距离信息进行更新;上述第一目标距离信息表征上述当前节点的第一邻居节点与上述当前节点之间的距离最大值,上述第二目标距离信息表征上述当前节点的第二邻居节点与上述当前节点之间的距离最小值。
在一示例性的实施方式中,上述响应模块31,包括:
距离确定单元,被配置为执行确定上述上层图中的节点,每个子图对应的兴趣节点之间的距离。
初选节点确定单元,被配置为执行基于上述距离,从上述上层图的节点中,确定与每个子图对应的兴趣节点之间的距离小于第七阈值的初选节点。
起始搜索节点确定单元,被配置为执行从上述初选节点中确实每个子图的起始搜索节点。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在示例性实施例中,还提供了一种电子设备,包括处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行存储器上所存放的指令时,实现上述实施例中任一信息推荐方法的步骤。
该电子设备可以是终端、服务器或者类似的运算装置,以该电子设备是服务器为例,图18是根据一示例性实施例示出的一种用于信息推荐的电子设备的框图,该电子设备40可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)41(中央处理器41可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器43,一个或一个以上存储应用程序423或数据422的存储介质42(例如一个或一个以上海量存储设备)。其中,存储器43和存储介质42可以是短暂存储或持久存储。存储在存储介质42的程序可以包括一个或一个以上模块,每个模块可以包括对电子设备中的一系列指令操作。更进一步地,中央处理器41可以设置为与存储介质42通信,在电子设备40上执行存储介质42中的一系列指令操作。电子设备40还可以包括一个或一个以上电源46,一个或一个以上有线或无线网络接口45,一个或一个以上输入输出接口44,和/或,一个或一个以上操作系统421,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口44可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备40的通信供应商提供的无线网络。在一个实例中,输入输出接口44包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个示例性实施例中,输入输出接口44可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图18所示的结构仅为示意,其并不对上述电子设备的结构造成限定。例如,电子设备40还可包括比图18中所示更多或者更少的组件,或者具有与图18所示不同的配置。
在示例性实施例中,还提供了一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述实施例中任一信息推荐方法的步骤。
在示例性实施例中,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一种实施方式中提供的信息推荐方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (21)

1.一种信息推荐方法,其特征在于,包括:
响应于目标对象的信息推荐请求,基于所述目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点,所述预设近邻图为基于预设推荐信息对应的节点构建得到;
在第一搜索阶段,基于每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点进行节点搜索,至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离的满足第一预设条件,进入第二搜索阶段;所述第一当前搜索节点包括所述起始搜索节点和基于所述起始搜索节点在所述第一搜索阶段中确定的满足第二预设条件的节点;所述每个子图对应的兴趣节点为所述兴趣信息在每个子图中所对应的节点;
在所述第二搜索阶段,基于每个子图的第二当前搜索节点的第一邻居节点进行节点搜索,得到目标节点;所述第二当前搜索节点为满足所述第一预设条件的第一目标邻居节点以及满足第三预设条件的节点,所述满足第三预设条件的节点基于满足所述第一预设条件的第一目标邻居节点在所述第二搜索阶段中确定;所述第一当前搜索节点和所述第二当前搜索节点,与各自对应的第一邻居节点间的距离小于第一阈值,所述第一当前搜索节点与所述第一当前搜索节点对应的第二邻居节点间的距离大于等于所述第一阈值,且小于第二阈值;
将所述目标节点对应的预设推荐信息推荐至所述目标对象。
2.根据权利要求1所述的信息推荐方法,其特征在于,所述在第一搜索阶段,基于每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点进行节点搜索,至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离的满足第一预设条件,进入第二搜索阶段,包括:
在所述第一搜索阶段,将每个子图的起始搜索节点作为每个子图的第一当前搜索节点;
从每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点中,搜索每个子图的第一目标邻居节点;每个子图的第一目标邻居节点与每个子图对应的兴趣节点间的距离小于第三阈值;
将每个子图的第一目标邻居节点,重新作为每个子图的第一当前搜索节点;
重复所述从每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点中,搜索每个子图的第一目标邻居节点,至所述将每个子图的第一目标邻居节点,重新作为每个子图的第一当前搜索节点的步骤,直至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离满足所述第一预设条件,进入所述第二搜索阶段。
3.根据权利要求1所述的信息推荐方法,其特征在于,所述在第二搜索阶段,基于每个子图的第二当前搜索节点的第一邻居节点进行节点搜索,得到目标节点,包括:
在所述第二搜索阶段,将每个子图中满足所述第一预设条件的第一目标邻居节点作为每个子图的第二当前搜索节点;
从每个子图的第二当前搜索节点的第一邻居节点中,搜索每个子图的第二目标邻居节点;每个子图的第二目标邻居节点与每个子图对应的兴趣节点间的距离小于第四阈值;
将每个子图的第二目标邻居节点,重新作为每个子图的第二当前搜索节点;
重复所述从每个子图的第二当前搜索节点对应的第一邻居节点中,搜索每个子图的第二目标邻居节点,至所述将每个子图的第二目标邻居节点,重新作为每个子图的第二当前搜索节点的步骤,直至每个子图当前搜索得到的第二目标邻居节点与每个子图对应的兴趣节点间的距离满足第四预设条件;
将每个子图中满足所述第四预设条件的第二目标邻居节点,作为每个子图的候选节点;
基于每个子图的候选节点,与每个子图对应的兴趣节点之间的距离,确定所述目标节点。
4.根据权利要求1所述的信息推荐方法,其特征在于,所述基于每个子图的候选节点,与每个子图对应的兴趣节点之间的距离,确定所述目标节点,包括:
将每个子图的候选节点,按照与每个子图对应的兴趣节点之间的距离,进行升序排序,得到候选节点序列;
将所述候选节点序列中前预设数量个候选节点,作为所述目标节点。
5.根据权利要求1至4中任一项所述的信息推荐方法,其特征在于,所述预设近邻图包括上层图和底层图,所述底层图包括多个子图,所述方法还包括构建所述预设近邻图的步骤,所述构建所述预设近邻图的步骤包括:
对预设推荐信息集中的预设推荐信息进行聚类,得到多个不同类别的预设推荐信息组;
在预设初始近邻图的初始上层图中,生成每个目标聚类信息对应的节点,每个目标聚类信息与每个预设推荐信息组的聚类中心一一对应,所述预设初始近邻图包括与所述上层图对应的所述初始上层图以及与所述底层图对应的初始底层图,所述初始底层图包括多个初始子图,每个预设推荐信息组与每个初始子图一一对应;
在每个预设推荐信息组对应的初始子图中,生成每个预设推荐信息组中的各个预设推荐信息对应的节点以及每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点;
将所述初始上层图中的节点,与所述初始上层图中的节点对应的邻居节点进行连接,得到所述上层图,将每个初始子图中的节点,与每个初始子图中的节点对应的邻居节点进行连接,得到每个子图。
6.根据权利要求5所述的信息推荐方法,其特征在于,每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点包括正向邻居节点和反向邻居节点,所述在每个预设推荐信息组对应的初始子图中,生成每个预设推荐信息组中的各个预设推荐信息对应的节点以及每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点,包括:
将每个预设推荐信息组中的任一预设推荐信息作为当前推荐信息;
在每个预设推荐信息组对应的初始子图中,生成所述当前推荐信息对应的当前节点;
根据所述当前节点与已添加节点之间的距离,确定所述当前节点的第一候选节点队列和第二候选节点队列;所述已添加节点为已添加至所述当前节点所在的初始子图中的节点,所述第一候选节点队列中的节点与所述当前节点之间的距离小于第五阈值,所述第二候选节点队列中的节点与所述当前节点之间的距离大于等于所述第五阈值,且小于第六阈值;
基于相对近邻图算法从所述第一候选节点队列中,确定所述当前节点的第一邻居节点,基于所述相对近邻图从所述第二候选节点队列,确定所述当前节点的第二邻居节点;
基于所述相对近邻图算法和所述已添加节点对应的邻居节点的分布信息,从所述已添加节点中确定所述当前节点的第三邻居节点;
将所述第一邻居节点和所述第二邻居节点作为所述当前节点的正向邻居节点,将所述第三邻居节点作为所述当前节点的反向邻居节点。
7.根据权利要求5所述的信息推荐方法,其特征在于,所述将每个初始子图中的节点,与每个初始子图中的节点对应的邻居节点进行连接,得到每个子图,包括:
将每个初始子图中的节点,与每个初始子图中的节点对应的正向邻居节点进行正向连接,将每个初始子图中的节点,与每个初始子图中的节点对应的反向邻居节点进行反向连接,得到每个子图。
8.根据权利要求6所述的信息推荐方法,其特征在于,所述方法还包括:
在所述当前节点对应的第一目标距离信息减小时,根据减小后的第一目标距离信息和预设参数,对所述当前节点对应的第二目标距离信息进行更新;所述第一目标距离信息表征所述当前节点的第一邻居节点与所述当前节点之间的距离最大值,所述第二目标距离信息表征所述当前节点的第二邻居节点与所述当前节点之间的距离最小值。
9.根据权利要求1或8所述的信息推荐方法,其特征在于,所述基于所述目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点,包括:
确定所述上层图中的节点,每个子图对应的兴趣节点之间的距离;
基于所述距离,从所述上层图的节点中,确定与每个子图对应的兴趣节点之间的距离小于第七阈值的初选节点;
从所述初选节点中确实每个子图的起始搜索节点。
10.一种信息推荐装置,其特征在于,包括:
响应模块,被配置为执行响应于目标对象的信息推荐请求,基于所述目标对象的兴趣信息确定预设近邻图中的每个子图对应的起始搜索节点,所述预设近邻图为基于预设推荐信息对应的节点构建得到;
第一搜索模块,被配置为执行在第一搜索阶段,基于每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点进行节点搜索,至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离的满足第一预设条件,进入第二搜索阶段;所述第一当前搜索节点包括所述起始搜索节点和基于所述起始搜索节点在所述第一搜索阶段中确定的满足第二预设条件的节点;所述每个子图对应的兴趣节点为所述兴趣信息在每个子图中所对应的节点;
第二搜索模块,被配置为执行在所述第二搜索阶段,基于每个子图的第二当前搜索节点的第一邻居节点进行节点搜索,得到目标节点;所述第二当前搜索节点为满足所述第一预设条件的第一目标邻居节点以及满足第三预设条件的节点,所述满足第三预设条件的节点基于满足所述第一预设条件的第一目标邻居节点在所述第二搜索阶段中确定;所述第一当前搜索节点和所述第二当前搜索节点,与各自对应的第一邻居节点间的距离小于第一阈值,所述第一当前搜索节点与所述第一当前搜索节点对应的第二邻居节点间的距离大于等于所述第一阈值,且小于第二阈值;
推荐模块,被配置为执行将所述目标节点对应的预设推荐信息推荐至所述目标对象。
11.根据权利要求10所述的信息推荐装置,其特征在于,所述第一搜索模块,包括:
第一当前搜索节点确定单元,被配置为执行在所述第一搜索阶段,将每个子图的起始搜索节点作为每个子图的第一当前搜索节点;
第一目标邻居节点确定单元,被配置为执行从每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点中,搜索每个子图的第一目标邻居节点;每个子图的第一目标邻居节点与每个子图对应的兴趣节点间的距离小于第三阈值;
第一当前搜索节点重新确定单元,被配置为执行将每个子图的第一目标邻居节点,重新作为每个子图的第一当前搜索节点;
第一重复单元,被配置为执行重复所述从每个子图的第一当前搜索节点的第一邻居节点和第二邻居节点中,搜索每个子图的第一目标邻居节点,至所述将每个子图的第一目标邻居节点,重新作为每个子图的第一当前搜索节点的步骤,直至每个子图当前搜索得到的第一目标邻居节点与每个子图对应的兴趣节点间的距离满足所述第一预设条件,进入所述第二搜索阶段。
12.根据权利要求10所述的信息推荐装置,其特征在于,所述第二搜索模块,包括:
第二当前搜索节点确定单元,被配置为执行在所述第二搜索阶段,将每个子图中满足所述第一预设条件的第一目标邻居节点作为每个子图的第二当前搜索节点;
第二目标邻居节点确定单元,被配置为执行从每个子图的第二当前搜索节点的第一邻居节点中,搜索每个子图的第二目标邻居节点;每个子图的第二目标邻居节点与每个子图对应的兴趣节点间的距离小于第四阈值;
第二当前搜索节点重新确定单元,被配置为执行将每个子图的第二目标邻居节点,重新作为每个子图的第二当前搜索节点;
第二重复单元,被配置为执行重复所述从每个子图的第二当前搜索节点对应的第一邻居节点中,搜索每个子图的第二目标邻居节点,至所述将每个子图的第二目标邻居节点,重新作为每个子图的第二当前搜索节点的步骤,直至每个子图当前搜索得到的第二目标邻居节点与每个子图对应的兴趣节点间的距离满足第四预设条件;
候选节点确定单元,被配置为执行将每个子图中满足所述第四预设条件的第二目标邻居节点,作为每个子图的候选节点;
目标节点确定单元,被配置为执行基于每个子图的候选节点,与每个子图对应的兴趣节点之间的距离,确定所述目标节点。
13.根据权利要求10所述的信息推荐装置,其特征在于,所述目标节点确定单元,包括:
排序子单元,被配置为执行将每个子图的候选节点,按照与每个子图对应的兴趣节点之间的距离,进行升序排序,得到候选节点序列;
目标节点确定子单元,被配置为执行将所述候选节点序列中前预设数量个候选节点,作为所述目标节点。
14.根据权利要求10至13中任一项所述的信息推荐装置,其特征在于,所述预设近邻图包括上层图和底层图,所述底层图包括多个子图,所述装置还包括构建所述预设近邻图的构建模块,所述构建模块,包括:
预设推荐信息组获取单元,被配置为执行对预设推荐信息集中的预设推荐信息进行聚类,得到多个不同类别的预设推荐信息组;
第一节点生成单元,被配置为执行在预设初始近邻图的初始上层图中,生成每个目标聚类信息对应的节点,每个目标聚类信息与每个预设推荐信息组的聚类中心一一对应,所述预设初始近邻图包括与所述上层图对应的所述初始上层图以及与所述底层图对应的初始底层图,所述初始底层图包括多个初始子图,每个预设推荐信息组与每个初始子图一一对应;
第二节点生成单元,被配置为执行在每个预设推荐信息组对应的初始子图中,生成每个预设推荐信息组中的各个预设推荐信息对应的节点以及每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点;
节点连接单元,被配置为执行将所述初始上层图中的节点,与所述初始上层图中的节点对应的邻居节点进行连接,得到所述上层图,将每个初始子图中的节点,与每个初始子图中的节点对应的邻居节点进行连接,得到每个子图。
15.根据权利要求14所述的信息推荐装置,其特征在于,每个预设推荐信息组中的各个预设推荐信息对应的节点的邻居节点包括正向邻居节点和反向邻居节点,所述第二节点生成单元,包括:
当前推荐信息确定单元,被配置为执行将每个预设推荐信息组中的任一预设推荐信息作为当前推荐信息;
当前节点生成单元,被配置为执行在每个预设推荐信息组对应的初始子图中,生成所述当前推荐信息对应的当前节点;
队列确定单元,被配置为执行根据所述当前节点与已添加节点之间的距离,确定所述当前节点的第一候选节点队列和第二候选节点队列;所述已添加节点为已添加至所述当前节点所在的初始子图中的节点,所述第一候选节点队列中的节点与所述当前节点之间的距离小于第五阈值,所述第二候选节点队列中的节点与所述当前节点之间的距离大于等于所述第五阈值,且小于第六阈值;
正向邻居节点确定单元,被配置为执行基于相对近邻图算法从所述第一候选节点队列中,确定所述当前节点的第一邻居节点,基于所述相对近邻图从所述第二候选节点队列,确定所述当前节点的第二邻居节点;
反向邻居节点确定单元,被配置为执行基于所述相对近邻图算法和所述已添加节点对应的邻居节点的分布信息,从所述已添加节点中确定所述当前节点的第三邻居节点;
邻居节点确定单元,被配置为执行将所述第一邻居节点和所述第二邻居节点作为所述当前节点的正向邻居节点,将所述第三邻居节点作为所述当前节点的反向邻居节点。
16.根据权利要求14所述的信息推荐装置,其特征在于,所述节点连接单元,被配置为执行将每个初始子图中的节点,与每个初始子图中的节点对应的正向邻居节点进行正向连接,将每个初始子图中的节点,与每个初始子图中的节点对应的反向邻居节点进行反向连接,得到每个子图。
17.根据权利要求15所述的信息推荐装置,其特征在于,所述装置还包括:
更新模块,被配置为执行在所述当前节点对应的第一目标距离信息减小时,根据减小后的第一目标距离信息和预设参数,对所述当前节点对应的第二目标距离信息进行更新;所述第一目标距离信息表征所述当前节点的第一邻居节点与所述当前节点之间的距离最大值,所述第二目标距离信息表征所述当前节点的第二邻居节点与所述当前节点之间的距离最小值。
18.根据权利要求10或17所述的信息推荐装置,其特征在于,所述响应模块,包括:
距离确定单元,被配置为执行确定所述上层图中的节点,每个子图对应的兴趣节点之间的距离;
初选节点确定单元,被配置为执行基于所述距离,从所述上层图的节点中,确定与每个子图对应的兴趣节点之间的距离小于第七阈值的初选节点;
起始搜索节点确定单元,被配置为执行从所述初选节点中确实每个子图的起始搜索节。
19.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如权利要求1至9中任一项所述的信息推荐方法。
20.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备执行如权利要求1至9中任一项所述的信息推荐方法。
21.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的信息推荐方法。
CN202110751317.9A 2021-07-02 2021-07-02 信息推荐方法、装置、电子设备及存储介质 Active CN113609378B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110751317.9A CN113609378B (zh) 2021-07-02 2021-07-02 信息推荐方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110751317.9A CN113609378B (zh) 2021-07-02 2021-07-02 信息推荐方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113609378A CN113609378A (zh) 2021-11-05
CN113609378B true CN113609378B (zh) 2022-11-22

Family

ID=78337227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110751317.9A Active CN113609378B (zh) 2021-07-02 2021-07-02 信息推荐方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113609378B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109118379A (zh) * 2017-06-22 2019-01-01 腾讯科技(深圳)有限公司 基于社交网络的推荐方法和装置
CN112650907A (zh) * 2020-12-25 2021-04-13 百度在线网络技术(北京)有限公司 搜索词的推荐方法、目标模型的训练方法、装置及设备
CN112836126A (zh) * 2021-02-08 2021-05-25 珠海格力电器股份有限公司 基于知识图谱的推荐方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109118379A (zh) * 2017-06-22 2019-01-01 腾讯科技(深圳)有限公司 基于社交网络的推荐方法和装置
CN112650907A (zh) * 2020-12-25 2021-04-13 百度在线网络技术(北京)有限公司 搜索词的推荐方法、目标模型的训练方法、装置及设备
CN112836126A (zh) * 2021-02-08 2021-05-25 珠海格力电器股份有限公司 基于知识图谱的推荐方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN113609378A (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
US9454580B2 (en) Recommendation system with metric transformation
Kazemi et al. Geotrucrowd: trustworthy query answering with spatial crowdsourcing
CN110738577B (zh) 社区发现方法、装置、计算机设备和存储介质
WO2014113709A2 (en) Searching and determining active area
CN104077723B (zh) 一种社交网络推荐系统及方法
US11100073B2 (en) Method and system for data assignment in a distributed system
JP6608972B2 (ja) ソーシャルネットワークに基づいてグループを探索する方法、デバイス、サーバ及び記憶媒体
JP2022020070A (ja) 情報処理、情報推薦の方法および装置、電子デバイス及び記憶媒体
CN106952130B (zh) 基于协同过滤的通用物品推荐方法
CN111460234A (zh) 图查询方法、装置、电子设备及计算机可读存储介质
CN110955831A (zh) 物品推荐方法、装置、计算机设备及存储介质
CN112989169A (zh) 目标对象识别方法、信息推荐方法、装置、设备及介质
KR20170086353A (ko) 대화형 정보 제공 서비스 방법 및 이를 위한 장치
WO2018227773A1 (zh) 地点推荐方法、装置、计算机设备和存储介质
KR101738809B1 (ko) IoT 기반 스마트 홈 커뮤니티에서 소셜 매칭 및 소통 서비스를 위한 다차원매트릭스 지역화 방법 및 시스템
Zhang et al. CRUC: Cold-start recommendations using collaborative filtering in internet of things
CN113609378B (zh) 信息推荐方法、装置、电子设备及存储介质
CN113761017A (zh) 相似性搜索方法和装置
CN113609377B (zh) 信息推荐方法、装置、电子设备及存储介质
Da Costa et al. Group-based collaborative filtering supported by multiple users' feedback to improve personalized ranking
Xu et al. Dm-KDE: dynamical kernel density estimation by sequences of KDE estimators with fixed number of components over data streams
CN115878989A (zh) 模型训练方法、装置及存储介质
Meng et al. Dp-poirs: A diversified and personalized point-of-interest recommendation system
CN111684817B (zh) 推荐算法的选择的方法及对应的装置
Liu et al. Practical k-agents search algorithm towards information retrieval in complex networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant