首页> 中国专利> 一种面向全球综合观测成果的领域知识图谱推荐方法

一种面向全球综合观测成果的领域知识图谱推荐方法

摘要

本发明公开了一种面向全球综合观测成果的领域知识图谱推荐方法,属于信息检索领域。该方法首先根据观测成果的特点基于专家知识构建概念图谱,并进行概念语料收集和概念补全;然后在深度学习的基础上进行知识抽取工作,提取三元组扩充概念图谱成为领域知识图谱;最后在Spark引擎上基于随机游走算法和局部敏感哈希算法实现面向全球综合观测成果的推荐服务。本方法的优点在于知识图谱构建成本低,可复制性强,推荐召回方案无需人工指定策略,自动化智能化程度高,同时没有传统推荐算法的冷启动问题。本发明对面向全球综合观测成果的数据推荐任务具有十分重要的实际应用价值。

著录项

  • 公开/公告号CN113254630A

    专利类型发明专利

  • 公开/公告日2021-08-13

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN202110765489.1

  • 申请日2021-07-07

  • 分类号G06F16/335(20190101);G06F16/36(20190101);G06F16/31(20190101);

  • 代理机构33200 杭州求是专利事务所有限公司;

  • 代理人傅朝栋;张法高

  • 地址 310058 浙江省杭州市西湖区余杭塘路866号

  • 入库时间 2023-06-19 12:13:22

说明书

技术领域

本发明涉及信息检索领域,具体涉及一种面向地理信息系统(GIS)时空大数据的领域知识图谱的推荐方法。

背景技术

以往针对知识图谱的研究多基于通用领域进行建模,而针对时空大数据知识建模具有显著专业领域特征,有许多工作需要去深入:依据国家标准和行业规范,收集相关数据进行模型训练;融合领域知识与深度学习的人工智能新方法,研发自动化知识抽取算法构建领域知识图谱;在领域知识图谱基础上,面向应用场景构建大规模知识图谱的并行计算策略,发展基于图谱推理和表示学习的集成式智能方法,基于知识图谱和用户画像方法实现领域数据的精准化获取和个性化主动推送,从而缓解数据“找不到”、“不智能”难题。

以深度神经网络为代表的深度学习方法,能充分利用计算机处理性能,具有对非线性问题超强的参数计算和拟合能力。在自然语言领域的研究中,神经网络语言模型以深度神经网络为基础,能够以高维向量的形式去表达字符、词语、语句甚至文章的语义特征。而知识图谱中的实体识别与知识抽取任务恰好需要对语义的高度理解,因此深度学习技术适用于知识抽取过程。传统方法高度依赖特征工程,最近的研究主要集中在研究特征之间的内在联系,基于深度神经网络的关系提取得到大量研究,可以更高效地自动抽取语义特征并且能够在更大范围泛化数据,通过设计和使用不同的网络结构,例如递归神经网络可以递归地学习句子的构成表示,卷积神经网络捕捉句子的局部特征,循环神经网络更好处理长序列语句,基于注意力机制的网络用于聚合全局的关系特征,图神经网络构造实体图用于推理,在多跳推理机制上得到显著改进。

推荐算法是推荐系统的核心,主要可以分为三类,基于内容,基于协同过滤(Collaborative Filtering,CF)的和混合推荐系统。基于协同过滤的推荐算法采集用户在平台内的交互数据,计算用户或被推荐实体的相似度,然后对用户偏好进行建模,而基于内容的推荐算法针对被推荐实体的内容特征进行相似度计算,从而进行推荐。混合模式的推荐系统是为了克服单一推荐方法的局限性产生的,例如基于协同过滤算法的推荐算法最主要的问题在于“用户-产品”的交互数据过少,很难找到相似的产品或者用户,而基于内容的推荐方法对用户的交互信息关注度过低。近些年越来越多的研究集中在混合模式的推荐系统上。

随着GIS和对地观测技术的发展,在全球范围内出现了越来越多的对地观测成果,包含各种地图和地理位置紧密相关的信息。本发明中将全球范围内的各种观测成果统称为全球综合观测成果,其典型代表为遥感影像数据以及各种自然要素的监测数据。然而现存地理信息观测成果具备显著的大数据特征,数据量巨大、特征复杂多样、多维语义丰富,以遥感领域为例,现有的推荐机制并不能直接适用海量复杂的地理信息领域,容易导致特征库指数增长和检索效率大幅下降的问题,且面向数据源单一,拓展困难。因此,如何对海量的全球综合观测成果进行智能推荐,是目前亟待解决的技术问题。

发明内容

本发明的目的是克服现有技术存在的问题,提供一种面向全球综合观测成果的领域知识图谱推荐方法。

为了实现上述发明目的,本发明具体采用的技术方案如下:

一种面向全球综合观测成果的领域知识图谱推荐方法,其步骤如下:

S1:获取全球地理信息观测领域中基于专家知识构建的具备上下位关系的概念网;

S2:对所述概念网进行概念补全,再利用根据概念网收集的地理信息观测成果相关语料,采用深度学习模型对语料进行知识抽取,并通过抽取的知识扩充概念补全后的概念网,形成领域知识图谱;

S3:获取地理信息观测成果平台的用户数据和产品数据,所述用户数据包括用户基本信息、用户浏览偏好信息和用户登录活跃信息,对用户数据和产品数据进行建模以形成用户画像;然后将用户和产品以节点形式融入领域知识图谱,使用户节点和产品节点挂载于领域知识图谱的边缘作为待索引节点;

S4:在Spark计算引擎上利用其并行特性将每个待索引节点的随机游走过程并行化切分为独立的游走任务,然后在Spark集群的不同计算节点中分别采用加速的随机游走算法并行求取每个待索引节点在游走过程中经过的节点序列,并将每个节点序列送入跳字模型中得到词嵌入向量;

S5:针对目标用户的推荐需求,基于每个待索引节点的词嵌入向量,采用优化的局部敏感哈希算法求取与目标用户最相关的若干产品作为推荐结果召回。

基于上述方案,各步骤可具体采用以下具体方式实现。

作为优选,所述S1中,所述概念网中的概念实体通过获取全球地理信息观测领域内的中英文标准,并从标准中提取领域内关键字的上下位关系,再结合专家知识进行筛选构建。

作为优选,所述S2中,领域知识图谱的构建方法包括如下步骤:

S21:依据概念网中的关键字,对概念网进行进一步补全;

S22:依据补全后的概念网中的关键字,收集与地理信息观测成果相关的语料;

S23:对收集到的语料进行标注,获取标准的训练样本数据;

S24:将训练样本数据输入基于自注意力模型的双向编码表示模型中获取语料的编码表示;

S25:将编码表示输入双向长短期记忆网络中,并用条件随机场模型解码输出,得到知识图谱的三元组;

S26:将知识图谱的三元组与补全后的概念网进行融合,得到领域知识图谱。

作为优选,所述S22中,通过从关键字在百科网站介绍页面的属性栏中读取结构化的属性信息,对概念网进行概念补全。

作为优选,所述S3的具体实现步骤如下:

S31:基于从地理信息观测成果平台中获取的用户数据和产品数据,对用户基本信息进行建模,将每一个用户注册资料中的所有基本信息字段采用关系型数据库进行持久化存储;

S32:基于所述用户数据和产品数据,对用户浏览偏好信息进行建模,将每一个用户历史浏览的数据产品、浏览次数和浏览时间采用关系型数据库进行持久化存储;

S33:基于所述用户数据和产品数据,对用户登录活跃信息进行建模,从每一个用户的登录信息中解析出登陆城市、登陆时间和在线时间,并采用关系型数据库进行持久化存储;

S34:将产品和用户作为实体节点挂载到知识图谱的边缘,融合成为知识图谱的一部分,作为领域知识图谱后续的待索引节点。

作为优选,所述S34中,产品节点和用户节点在挂载到知识图谱时,以S31~S33中产品和用户的建模属性与知识图谱中已有节点的文本匹配度作为关联依据,以实体节点形式挂载到知识图谱中相关联实体的末端。

作为优选,所述S4的具体实现步骤如下:

S41:基于Spark内存计算引擎,先从领域知识图谱中获取全部节点组成的图节点集合,并创建一个二维字典数据结构的初始转移概率矩阵;

S42:遍历所述图节点集合,依次将每一个节点作为中心节点,获取每个中心节点的相邻节点组成的第一相邻节点集合,然后对第一相邻节点集合中的每个与中心节点相连的相连节点计算边权重并写入初始转移概率矩阵中;遍历结束后,对初始转移概率矩阵进行归一化,得到归一化矩阵;

S43:从领域知识图谱中获取全部边组成的边集合,遍历所述边集合,依次将每一条边作为当前边并执行转移概率计算,得到最终的转移概率矩阵;所述转移概率计算方法为:先获取当前边在图上的所有相邻节点组成的第二相邻节点集合,遍历第二相邻节点集合中的每一个相邻节点d并判断其节点类型,若该相邻节点d是当前边的尾节点,则将所述归一化矩阵中的当前边的边权重除以返回参数后作为该相邻节点d的转移概率更新值并记入转移概率矩阵中;如果该相邻节点d是当前边的头节点,则将所述归一化矩阵中的当前边的边权重作为该相邻节点d的转移概率更新值并记入转移概率矩阵中;若该相邻节点d既不是当前边的尾节点也不是头节点,则将所述归一化矩阵中的当前边的边权重除以进出参数后作为该相邻节点d的转移概率更新值并记入转移概率矩阵中;

S44:在Spark计算引擎上将每个待索引节点的随机游走过程并行化切分为独立的游走任务,然后在Spark集群的每一个计算节点中各自针对一个游走任务并行执行随机游走算法,直至所有的游走任务均执行完毕,得到每一个待索引节点在游走过程中经过的节点序列;

S45:将每个待索引节点在游走过程中经过的节点序列送入Word2Vec中的Skip-Gram模型,产生词嵌入向量并存储。

进一步的,所述随机游走算法的执行过程为:

以待索引节点为初始的当前节点开始随机游走,每一步随机游走时先生成一个随机数D,然后逐个遍历当前节点的所有相邻节点组成的第三相邻节点集合,从最终的转移概率矩阵中读取相邻节点的转移概率A并将其与随机数D相乘得到乘积R,若遍历过程中出现一个相邻节点O对应的乘积R大于转移概率A,则结束对第三相邻节点集合的遍历并将相邻节点O作为下一跳节点进行下一步的随机游走,若遍历完第三相邻节点集合依然未出现下一跳节点,则将重新遍历一轮第三相邻节点集合并将上一轮遍历与新一轮遍历得到的每个相邻节点的乘积R进行累积叠加,直至找到下一跳节点;当一个待索引节点在随机游走过程中经过的节点序列个数到达游走长度时,停止游走并返回当前节点序列。

作为优选,所述S5的具体实现步骤如下:

S51:对于领域知识图谱中任一用户节点和任一产品节点的所有可能组合,对每个组合中用户节点和产品节点的两个词嵌入向量通过Min-hashing算法形成签名向量,并按照局部敏感哈希算法将签名向量分段后再将每一段映射至不同的桶中,得到不同桶中的分布情况,作为该组合中的用户节点相对于产品节点的产品分布;

S52:当存在一个用户具有产品推荐需求时,针对该用户检索与其在同一向量空间分布下的产品的分桶情况,根据设定召回数量K,选择桶中映射数量最高的前K个产品并返回,作为推荐系统召回结果。

进一步的,所述S5中,局部敏感哈希算法生成的桶以及所有的产品分布均进行缓存,以实现线上实时查询。

本发明与现有技术相比具有有益效果:

(1)本发明基于专家知识、深度学习技术、互联网资源汇聚技术,提出了面向地理信息观测成果的领域知识图谱构建路线,该路线具备实体识别准确度高、人工成本低、可复制性强的特点,能够满足不同细分领域的知识图谱应用需求。

(2)本发明提出了一种面向地理信息观测成果的融合了领域知识图谱的推荐方案,该方案相较于传统方法,一是无需人工指定策略,自动化程度高;二是因为融合了领域知识图谱,因此推荐结果智能化高、可解释性强;三是推荐无需用户历史交互数据,解决了传统推荐算法的冷启动问题。

附图说明

图1为面向全球综合观测成果的领域知识图谱推荐方法的步骤流程图;

图2为用户-产品-知识图谱挂载示意图;

图3为运行时间随着计算节点的变化示意图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步详细说明。

在本发明的一种较佳实施例中,提供了一种面向全球综合观测成果的领域知识图谱推荐方法,如图1所示,该推荐方法的步骤如S1~S5所示:

S1:获取全球地理信息观测领域中基于专家知识构建的具备上下位关系的概念网。

本步骤中构建的概念网即概念图谱,是知识图谱的骨架,决定了知识图谱的形态。概念网同知识图谱类似,也是由节点和关系组成,其中节点包含实体和概念,关系则是实体与概念之间的类属关系和概念与概念之间的从属关系组成。因此,概念网对于最终构建的知识图谱的准确性和完整性有着重要影响。

在该较佳实施例中,为了保证概念网中的概念实体的准确性和代表性,可以通过获取全球地理信息观测领域内的中英文标准,并从标准中提取领域内关键字的上下位关系,再结合专家知识进行筛选构建。需注意的是,采集的中英文标准应该具备权威性,标准来源例如世界标准组织ISO,领域内OGC(Open Geospatial Consortium)组织,国内全国遥感技术标准化技术委员会(编号SAC/TC327)等。

S2:上述概念网是基于专家知识构建而成,虽然覆盖面广泛且可靠度高,但是受制于人力水平,概念网往往不够细致,缺乏属性信息和以及更丰富的下文信息。因此有必要通过进一步的概念补全手段对概念网进行概念补全后,再利用根据概念网收集的地理信息观测成果相关语料,采用深度学习模型对语料进行知识抽取,并通过抽取的知识扩充概念补全后的概念网,形成领域知识图谱。

在该较佳实施例中,领域知识图谱的构建方法包括如下步骤:

S21:由于概念网中的概念关键词在百科网站中基本都有对应的介绍,因此可通过关键字在百科网站介绍页面的属性栏中读取结构化的属性信息,对概念网进行概念补全。所谓属性栏就是通过结构化文本介绍某一概念的文本栏,例如搜索叶绿素的百度百科信息,在属性栏有介绍信息:中文名-叶绿素,外文名- chlorophyll, chlorophyl,熔点-120至 153 ℃,水溶性-不溶于水,外观-在叶绿体中呈绿色,应用-植物光合作用催化剂,分类-叶绿素a、b、c和d以及细菌叶绿素和绿菌属叶绿素等,发现者-德国化学家韦尔斯泰特。这些属性信息将大大丰富概念网的知识密度。因为百度百科、维基百科等采用浏览器-服务端(B/S)架构,信息的获取可以采用基于Python语言的SCRAPY自动化爬取框架自动获取以辅助专家筛选,减少工作量。

当完成概念网补全后,即可进行知识图谱构建。在本发明的知识图谱中,知识可以表达成“头实体,关系,尾实体”的三元组形式,将实体作为节点,关系作为连接节点的边,以图的形式组成知识图谱。知识抽取主要可以分为基于模板和机器学习的两类方法,本发明中采用机器学习中的深度学习方法,通过BERT+BiLSTM+CRF的架构进行知识抽取。

S22:依据补全后的概念网中的关键字,收集与地理信息观测成果相关的语料。语料的收集可依据概念网中的关键字,通过互联网汇聚技术和文本匹配技术进行自动化获取,语料数量规模尽可能大。

S23:对收集到的语料进行标注,获取标准的训练样本数据。由于该语料后续将输入基于自注意力模型的双向编码表示模型(Bidirectional Encoder Representationsfrom Transformers, BERT),因此可人工对语料进行标注,采用符合BERT模型的标注规范,需要标注出预料中的三元组关系,且需要对三元组进行分类。

S24:将训练样本数据输入基于自注意力模型的双向编码表示模型BERT中获取语料的编码表示,BERT模型属于现有技术,具体网络结构不再赘述。

S25:将编码表示输入双向长短期记忆网络(Bi-directional Long Short-TermMemory, BiLSTM)中,并用条件随机场模型(Conditional Random Fields, CRF)解码输出,得到知识图谱的三元组。CRF层的作用是在该层训练过程中学习得到若干约束,以确保预测结果有效。BiLSTM和CRF模型也属于现有技术,具体网络结构不再赘述。

S26:将知识图谱的三元组与补全后的概念网进行融合,得到领域知识图谱,通过脚本程序自动导入图数据库。这种知识抽取方法生成的知识图谱相比原先基于专家知识的概念图谱有巨大提升。其中概念图谱的关系因为只有简单的上下位关系,因此只有一种。但相比实体的填充比例,关系的填充比例会更高,这是因为在知识抽取过程中,一些实体之间有不止一条的关系连接,建立了相对复杂的关联关系。

当完成上述领域知识图谱构建后,即可将用户和产品信息与知识图谱融合,并嵌入面向全球综合观测成果的推荐服务中,设计具备个性化和可解释的推荐模型。需注意,本发明中所说的产品均是指观测成果中的数据产品。

在步入大数据时代后,用户行为给平台的产品和服务带来了一系列的改变和重塑,对用户进行建模形成用户画像是十分必要的。在平台运营活动中将保存大量的用户相关数据,例如用户所在的研究机构、登陆地点、使用时间等,这些信息对于推荐方案非常重要。用户画像,即用户信息标签化,通过合法合规途径收集平台内用户的社会属性、偏好特征等各个维度的数据,然后计算用户或者产品属性特征,对这些特征进行分析、统计,挖掘潜在价值信息,最后抽象出用户的信息全貌。这些信息对于个性化推荐系统的实现有巨大帮助,是不可缺少的重要组成部分。

S3:获取地理信息观测成果平台的用户数据和产品数据,其中用户数据包括用户基本信息、用户浏览偏好信息和用户登录活跃信息,对用户数据和产品数据进行建模以形成用户画像。然后将用户和产品以节点形式融入领域知识图谱,使用户节点和产品节点挂载于领域知识图谱的边缘作为待索引节点。

在该较佳实施例中,上述S3实际上是对用户进行了画像并将其信息融入了领域知识图谱,具体实现步骤如下:

S31:从需要推荐服务的地理信息观测成果平台中获取的用户数据和产品数据,然后根据这些用户数据和产品数据对用户基本信息进行建模,将每一个用户注册资料中的所有基本信息字段采用关系型数据库进行持久化存储。

此处用户基本信息可按表1所示进行建模,以表格形式存储信息:

表 1 用户信息建模

S32:基于从地理信息观测成果平台中获取的用户数据和产品数据,对用户浏览偏好信息进行建模,将每一个用户历史浏览的数据产品、浏览次数和浏览时间采用关系型数据库进行持久化存储。

此处用户偏好信息可按表2所示进行建模,以表格形式存储信息:

表 2 偏好信息建模

S33:基于从地理信息观测成果平台中获取的用户数据和产品数据,对用户登录活跃信息进行建模,从每一个用户的登录信息中通过通信协议解析出登陆城市、登陆时间和在线时间,并采用关系型数据库进行持久化存储。

此处用户偏好信息可按表3所示进行建模,以表格形式存储信息:

表 3 用户活跃信息建模

S34:将产品和用户作为实体节点挂载到知识图谱的边缘,融合成为知识图谱的一部分,作为领域知识图谱后续的待索引节点。

产品节点和用户节点在挂载到知识图谱时,产品节点和用户节点与知识图谱内原有节点需要建立关联,在该较佳实施例中,可以以S31~S33中产品和用户的建模属性与知识图谱中已有节点的文本匹配度作为关联依据,将产品和用户以实体节点形式挂载到知识图谱中相关联实体的末端。节点关联工作主要集中在数据的建模阶段,平台内数据通过节点形式接入知识图谱。其中一个示例如图2所示,图中右下方的节点代表的是前述领域知识图谱中的部分实体,它们互相通过关系进行连接,而数据集产品(记为item1、item2、…)和平台的用户(信息参见前述表1~表3)则通过虚线部分接入知识图谱,挂载在知识图谱的边缘,从直观来看用户和产品数据及知识图谱在图数据结构上进行了融合。每个产品节点和用户节点均视为待索引节点

基于上述领域知识图谱,可以进行相应的产品推荐任务。但由于平台中的数据极为庞大,普通单机单线程训练时间长,因此在面对大量知识图谱节点和百万级别数据的Embedding计算有必要采用技术手段进行加速以达到实际项目的需求。因此需要对推荐方式进行优化,提高查询的实时性。Spark作为主流的大数据处理利器,是一个基于内存的分布式计算平台,通过网络通信的方式在节点间交换数据而不共享内存,因此Spark能够建立在大量廉价的计算节点上,这些节点可以是小型计算主机,也可以是虚拟的 DockerContainer(Docker 容器),能在较低成本的计算资源下完成超大计算需求,同时Spark的GraphX和GraphFrames这两个框架,可用于对数据运行图形计算操作。本发明也采用Spark实现相应的推荐任务。

S4:在Spark计算引擎上利用其并行特性将每个待索引节点的随机游走过程并行化切分为独立的游走任务,然后在Spark集群的不同计算节点中分别采用加速的随机游走算法并行求取每个待索引节点在游走过程中经过的节点序列,并将每个节点序列送入跳字模型中得到词嵌入向量(embedding)。

在该较佳实施例中,上述步骤S4的具体实现步骤如下:

S41:基于Spark内存计算引擎,先从领域知识图谱中获取全部节点组成的图节点集合,并创建一个二维字典数据结构的初始转移概率矩阵。

S42:遍历所述图节点集合,依次将每一个节点作为中心节点,获取每个中心节点的相邻节点组成的第一相邻节点集合,然后对第一相邻节点集合中的每个与中心节点相连的相连节点计算边权重并写入初始转移概率矩阵中;遍历结束后,对初始转移概率矩阵进行归一化,得到归一化矩阵。

S43:从领域知识图谱中获取全部边组成的边集合,遍历所述边集合,依次将每一条边作为当前边并执行转移概率计算,得到最终的转移概率矩阵;所述转移概率计算方法为:先获取当前边在图上的所有相邻节点组成的第二相邻节点集合,遍历第二相邻节点集合中的每一个相邻节点d并判断其节点类型,若该相邻节点d是当前边的尾节点,则将所述归一化矩阵中的当前边的边权重除以返回参数(Return Parameter)p后作为该相邻节点d的转移概率更新值并记入转移概率矩阵中;如果该相邻节点d是当前边的头节点,则将所述归一化矩阵中的当前边的边权重作为该相邻节点d的转移概率更新值并记入转移概率矩阵中;若该相邻节点d既不是当前边的尾节点也不是头节点,则将所述归一化矩阵中的当前边的边权重除以进出参数(In-out Parameter)后作为该相邻节点d的转移概率更新值并记入转移概率矩阵中。

上述返回参数记为p,p值越小,随机游走回当前节点的可能性越大,则更注重表达网络的结构性。上述进出参数记为q,q值越小,随机游走到远方节点的可能性越大,则更注重表达网络的同质性。而为了表达网络的同质性,随机游走要偏向于深度优先搜索(DepthFirst Search,DFS),DFS 有可能通过多次跳转,游走到远方的节点上,从而更容易地表达网络的同质性。这可以通过上述参数p和q进行调节。因此在模型训练过程中,参数p和q是非常重要的超参数,需要通过参数调参进行优化。本发明中,经过优化设置参数p=0.6,q=0.4。

S44:在Spark计算引擎上将每个待索引节点的随机游走过程并行化切分为独立的游走任务,然后在Spark集群的每一个计算节点中各自针对一个游走任务并行执行随机游走算法,直至所有的游走任务均执行完毕,得到每一个待索引节点在游走过程中经过的节点序列。

由于随机游走过程是基于某个节点单独开始的,并不依赖全局的节点,因此对于一个大的网络结构来说,可以利用Spark的并行特性同时在不同的节点开始进行一定长度的随机游走,多个游走过程同时进行,大大减少节点采样时间。即使网络结构在后续更新中发生变化,也只对部分随机游走路径发生变化,不需要对全局进行重新计算,这对推荐系统中随时可能添加数据、用户节点的情况而言是非常有用的一个特性。

对于每一个游走任务,其中的随机游走算法的执行过程可以描述如下:

以待索引节点为初始的当前节点开始随机游走,每一步随机游走时先生成一个随机数D,然后逐个遍历当前节点的所有相邻节点组成的第三相邻节点集合,从最终的转移概率矩阵中读取相邻节点的转移概率A并将其与随机数D相乘得到乘积R,若遍历过程中出现一个相邻节点O对应的乘积R大于转移概率A,则结束对第三相邻节点集合的遍历并将相邻节点O作为下一跳节点进行下一步的随机游走,若遍历完第三相邻节点集合依然未出现下一跳节点,则将重新遍历一轮第三相邻节点集合并将上一轮遍历与新一轮遍历得到的每个相邻节点的乘积R进行累积叠加,直至找到下一跳节点;当一个待索引节点在随机游走过程中经过的节点序列个数到达游走长度n时,停止游走并返回当前节点序列。

上述游走长度n是一个超参数,需要根据实际需求进行调整。

S45:将每个待索引节点在游走过程中经过的节点序列送入Word2Vec中的Skip-Gram模型,产生词嵌入向量并存储。

S5:针对目标用户的推荐需求,基于每个待索引节点的词嵌入向量,采用优化的局部敏感哈希算法求取与目标用户最相关的若干产品作为推荐结果召回。

局部敏感哈希算法(Locality Sensitive Hashing, LSH)本身属于现有技术,可以采用任意的现有做法实现。在本实施例中将其与本发明的领域知识图谱推荐进行了优化耦合,使其能够以较小的计算量实现海量观测成果的推荐任务。在该较佳实施例中,上述S5的具体实现步骤如下:

S51:对于领域知识图谱中任一用户节点和任一产品节点的所有可能组合,对每个组合中用户节点和产品节点的两个词嵌入向量通过Min-hashing算法形成签名向量(signature vector),并按照局部敏感哈希算法将签名向量分段(band)后再将每一段(band)映射至不同的桶(bucket)中,得到不同桶中的分布情况,作为该组合中的用户节点相对于产品节点的产品分布。Min-hashing算法和局部敏感哈希算法属于现有的技术,其内部原理不再详细介绍。

S52:当领域知识图谱中存在一个用户U具有产品推荐需求时,针对该用户U的id检索与其在同一向量空间分布下产品的分桶情况。如前所述,每一个产品分布都被映射在桶中,因此不同桶中的映射次数是不同的,而映射次数与相似性是呈正相关的。根据局部敏感哈希算法,如果两个向量的其中一个或多个band相同,那么这两个向量就可能相似度较高;相同的band数越多,其相似度高的可能性越大。因此,对同一向量空间分布下产品的分桶情况,即可通过统计每个桶中的映射数量,按照TopK算法,根据设定召回数量K,选择桶中映射数量最高的前K个产品的id集合,将该集合返回作为推荐系统召回结果。

当然,上述实施例中的局部敏感哈希算法仅仅提供了一种实现形式,现有技术中还存在众多的实现方式,亦可通过调用现有的程序或代码来实现,对此不做限制。

在上述较佳实施例中,将用户和近10万条产品数据关联到知识图谱后导入Spark中进行实验,实验将在一个拥有1个主节点,4个计算节点的Hadoop-Spark集群上完成,每个计算节点配置为2核4GiB,Spark版本为2.4.7。将代码及其依赖编译成jar包形式采用spark-submit提交到集群然后自动分配到计算节点执行,通过命令行参数变化指定执行节点数目,设定随机游走步长为8,通过Spark WebUI观测并记录随机游走算法求取节点序列相关Job运行时间的变化,统计结果如图3所示。由图3可知算法运行时间随着计算节点的增加逐渐减少,以一个节点的计算时间作为加速比计算标准,可以看到加速比与节点个数呈近线性关系,证明了本发明的基于随机游走的并行算法可以通过扩展集群的个数实现运行效率的极大优化,当遇到更大的数据量和频繁更新数据时算法具备弹性的计算能力。

最后,上述随机游走算法计算数据产品Embedding时虽然能够经过Spark加速计算并取得不错的加速比,但受于任务调度和网络通信等损耗最多降至秒到分钟级别,不具备实时参与服务的能力。但是将计算过程作为离线任务,而将LSH算法生成的桶和桶内的候补项进行缓存可以满足TopK的线上实时查询需求。因此,在另一实施例中,还可以基于上述实施例将S5中局部敏感哈希算法生成的桶以及所有的产品分布均进行缓存,以实现线上实时查询。具体而言,缓存操作时,通过倒排索引的方法,用bucket_id记录桶的编号,用item_id记录每个产品节点或者用户节点的编号,然后在Reids数据库中以item_id作为键(key),item_id对应的bucket_id作为值(Value)进行存储,再以bucket_id作为键(key),item_id作为值(Value)进行存储;在召回时,遍历item_id对应的所有bucket_id,根据召回规则根据bucket_id确定召回的产品对应的item_id,从而得到召回结果;同时召回的产品存入以用户的唯一ID为键的缓存中。

为了验证上述缓存方式的效果,对单一节点,设置不同并发规模进行访问,分别记录执行缓存和未执行缓存的服务响应时间平均值。由验证结果可知,缓存策略下请求时间并没有随着并发数量的增加而显著增加,这是因为缓存策略下没有复杂的业务操作,只需要查询缓存并返回缓存数据即可。而没有缓存的情况下返回时间呈现类指数的增长,同时在60并发下平均返回时间已接近5秒,且出现不小的异常率,而当100并发的情况下因为服务异常率太高不具备参考价值,以1秒内返回数据为界限,可以认为在当前配置的节点下服务具备30到100左右的并发。而且通过节点扩容,可以进一步提高并发数,具备高可用高并发的特性。

当然,上述缓存方式需要根据实际应用场景进行取舍,并非必要的实现步骤。

以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号