1.开源图谱技术工具
简介
阿里巴巴开放数字商业知识图谱致力于利用开放的商业知识发现社会经济价值。它是一个大规模的知识图谱,旨在通过开放数据流通和充分连接数据,激活数据要素潜力,赋能数字商业发展。首个版本已包含超过18亿三元组、67万核心概念和2681类关系。核心功能
- 知识图谱构建与管理: 提供大规模数字商业知识图谱的构建、存储和管理。
- 知识抽取: 包含如DeepKE等工具,支持低资源、长篇章的知识图谱抽取,实现命名实体识别、关系抽取、属性抽取等功能。
- 数据连接与价值发现: 促进商业数据的互联互通,通过知识图谱技术深化数据价值。
- 语义理解与搜索优化: 为上层应用提供精细化、可演进的语义理解能力,优化搜索体验。
技术原理
该知识图谱基于海量商业数据构建,采用图数据库技术存储和管理三元组(实体-关系-实体)结构化知识。其技术原理涵盖:- 大规模知识表示: 采用三元组形式,存储超过18亿的知识单元,包含实体、概念及它们之间的关系。
- 多模态知识抽取: 利用如DeepKE等工具,通过自然语言处理(NLP)和机器学习技术,从非结构化和半结构化文本中自动识别并抽取命名实体、关系和属性,支持低资源和长篇章场景。
- 概念图谱构建: 包含67万核心概念,通过构建概念层次和关联,实现商业领域的深层语义理解。
- 图谱演进与更新: 支持知识图谱的持续演进和更新,确保知识的时效性和准确性,例如KDD2021论文提到的AliCG。
- 图谱融合与对齐: 将来自不同数据源的商业知识进行融合与对齐,形成统一、全面的知识体系。
应用场景
- 智能搜索与推荐: 优化电子商务平台的搜索精准度和个性化推荐系统,通过语义理解提升用户体验。
- 商业决策支持: 为企业提供基于知识图谱的商业智能分析,辅助市场洞察、竞品分析和供应链管理等决策。
- 风险控制与反欺诈: 利用实体间的复杂关系网络,识别潜在的商业风险和欺诈行为。
- 客户关系管理(CRM): 深入理解客户画像和需求,实现更精准的营销和服务。
- 产品与服务创新: 挖掘商业知识中的关联和趋势,启发新的产品功能或商业模式。
- 数据要素流通与共享: 作为开放平台,促进商业数据的互联互通,激发数据在经济活动中的价值。
- !开放的数字商业知识图谱
- 开源工具安装 – 开放的数字商业知识图谱
------------------------------------------------------------
DeepKE:开源开放的知识图谱抽取工具
简介
DeepKE(Deep Knowledge Extraction)是一个基于深度学习的中文知识抽取开源工具包,由浙江大学NLP实验室开发并维护。它旨在为用户提供一体化的知识抽取解决方案,涵盖了命名实体识别(NER)、关系抽取(RE)、事件抽取(EE)以及知识图谱的构建和应用等多种任务。DeepKE支持多种抽取范式,包括少样本学习(Few-Shot)、远程监督(Distant Supervision)和标准有监督学习,并提供了轻量级部署和方便二次开发的接口,致力于降低知识抽取技术的应用门槛。核心功能
- 命名实体识别 (NER):识别文本中的特定实体,如人名、地名、组织名等,支持标准有监督和少样本学习模式。
- 关系抽取 (RE):从文本中识别实体之间的关系,支持标准有监督、少样本和远程监督等多种抽取范式。
- 事件抽取 (EE):识别文本中发生的事件及其论元,包括事件触发词识别和事件论元角色识别。
- 中文Schema定义与抽取:提供基于中文的Schema(模式)定义能力,并支持从文本中进行结构化信息抽取。
- 知识图谱构建与应用:支持基于抽取结果构建知识图谱,并提供查询、可视化等应用能力。
- 多任务支持:集成多种知识抽取任务,提供统一的框架和接口。
- 轻量级部署与二次开发:提供易于部署的RESTful API接口,方便用户快速集成和二次开发。
技术原理
DeepKE的核心技术原理是结合了深度学习和预训练语言模型(PLM)的优势。- 预训练语言模型(如BERT、RoBERTa等):作为编码器,用于捕获文本的上下文信息和语义表示,为下游任务提供高质量的特征向量。
- 多任务学习范式:可能采用共享底层表示或特定任务头的方式,实现NER、RE、EE等任务的联合优化。
- 特定任务解码器:针对NER、RE、EE等任务设计不同的解码器结构,如序列标注层(NER)、分类器(RE)、事件结构解析器(EE)。
- 少样本学习(Few-Shot Learning):通过原型网络(Prototypical Networks)或元学习(Meta-Learning)等技术,使模型在只有少量标注数据的情况下也能进行有效抽取。
- 远程监督(Distant Supervision):利用现有知识库与非结构化文本的对齐,自动生成大量弱标注数据,从而缓解标注成本高的问题。
- 知识图谱技术:利用图数据库(如Neo4j)存储抽取结果,实现知识的结构化管理和高效查询。
应用场景
- 智能问答系统:通过抽取问句中的实体和关系,结合知识图谱进行精确答案检索。
- 信息检索与推荐:从海量文本中提取关键信息,辅助构建知识库以提升搜索和推荐的准确性。
- 舆情分析:从新闻、社交媒体文本中抽取事件、观点、实体等,用于监测和分析社会热点及公众情绪。
- 金融风控:从企业报告、新闻事件中抽取风险实体、关系和事件,辅助风险评估和预警。
- 医疗健康:从病历、医学文献中抽取疾病、症状、药物、治疗方案等信息,辅助临床决策和医学研究。
- 智能客服:理解用户意图,从FAQ或产品文档中抽取关键信息,提供更精准的回复。
- 法律领域:从法律文书中抽取案件要素、法律条款、判例等,辅助法律分析和案件办理。
- DeepKE:开源开放的知识图谱抽取工具
- DeepKE:浙江大学基于深度学习的开源中文知识图谱抽取工具 - 工具 - 开放知识图谱
- DeepKE:浙江大学基于深度学习的开源中文知识图谱抽取工具 - 工具 - 开放知识图谱
- DeepKE/基于深度学习的开源中文知识图谱抽取框架
- DeepKE演示
- DeepKE 手册
- DeepKE-cnSchema
- DeepKE/READMECNSCHEMACN.md at main · zjunlp/DeepKE
- docs/index.rst at main · tlk1997/docs
------------------------------------------------------------
NeuralKG:浙江大学开源知识图谱表示学习工具
- NeuralKG支持多种知识图谱表示学习的开源工具包
- NeuralKG:浙江大学开源知识图谱表示学习工具 - 工具 - 开放知识图谱
- NeuralKG:浙江大学开源知识图谱表示学习工具 - 工具 - 开放知识图谱
- NeuralKG – Easy Representation for KGs
- NeuralKG任务
- NeuralKG Documentation — NeuralKG 1.0.0 documentation
- NeuralKG — NeuralKG 1.0.0 documentation
- KGEModel — NeuralKG 1.0.0 documentation
-----------------------------------------------------------
OpenKG.CN – 开放的中文知识图谱
简介
OpenKG(开放知识图谱)是由中国中文信息学会语言与知识计算专业委员会于2015年发起和倡导的开放知识图谱社区联盟项目。它旨在推动以中文为基础的知识图谱数据的开放、互联与众包,以及知识图谱算法、工具和平台的开源开放工作。OpenKG是一个公益性中立项目,汇聚了超过100家机构的参与,致力于促进知识图谱研究与应用的资源共享和协同发展。核心功能
- 知识图谱资源共享平台: 提供丰富的知识图谱数据集(Dataset)和工具集(Tools),涵盖多领域结构化知识,供研究人员和开发者使用。
- 开放评测体系: 设立知识图谱系列评测,如OneEval大模型榜单,推动知识图谱技术的发展和评估。
- 社区协作与交流: 促进知识图谱领域内的数据开放、互联与众包,搭建学术界与产业界的交流平台,汇集各方力量。
- 知识图谱技术推广: 致力于知识图谱算法、工具和平台的开源开放,促进其在各领域的广泛应用。
技术原理
OpenKG的运行基于开放数据原则和社区协作模式。它通过聚合来自不同机构和个人的知识图谱数据,构建一个庞大的、多领域的结构化知识库。技术上,它涉及:- 知识表示与建模: 采用图结构(节点、边、属性)来表示实体、关系和属性,形成多源异构知识的统一表示。
- 知识抽取与集成: 通过自动化或半自动化的方法从非结构化或半结构化数据中抽取知识,并将其整合到知识图谱中,解决知识碎片化问题。
- 知识推理与问答: 利用图算法和机器学习技术进行知识推理,发现隐含关系,并支持基于知识图谱的智能问答系统(如chatOpenKG),增强大型语言模型的专业领域问答能力。
- 数据链接与互操作: 鼓励知识图谱之间的互联互通,通过实体对齐和关系映射等技术,实现不同知识图谱之间的数据链接和语义互操作性。
- 开源工具与平台: 提供各类开源工具和平台,支持知识图谱的构建、管理、查询、可视化及应用开发。
应用场景
- 学术研究: 为知识图谱、自然语言处理、人工智能等领域的研究提供丰富的数据集和评测基准,推动前沿技术探索。
- 行业智能化: 在金融、医疗、教育、文化、智能制造等领域,构建行业知识图谱,支撑智能推荐、智能风控、智能诊断、个性化学习等应用。
- 智能问答系统: 结合大型语言模型,增强专业领域问答的准确性和深度,提供更精准的知识服务。
- 数据共享与治理: 促进跨机构、跨领域的数据开放与互联,提高数据利用效率,支持数据驱动的决策。
- 创新应用开发: 为开发者提供便捷的知识图谱资源和工具,加速创新型应用和解决方案的开发。
- OpenKG.CN – 开放的中文知识图谱
- OpenKG.CN – 开放的中文知识图谱
------------------------------------------------------------
OpenUE浙江大学
简介
OpenUE 是一个由浙江大学主导开发(并与阿里巴巴集团有过合作)的轻量级通用文本信息抽取工具包。它旨在通过一种统一的通用抽取范式来简化知识抽取过程,适用于多种自然语言处理抽取任务。OpenUE曾作为演示论文被自然语言处理顶级会议EMNLP 2020收录。核心功能
OpenUE 提供了一套即插即用的框架,能够实现多种NLP抽取任务,主要包括:- 实体关系抽取: 识别文本中的实体并抽取出它们之间的关系,包括单一句子内的关系识别。
- 事件知识抽取: 从文本中识别并提取事件及其相关信息。
- 槽填充 (Slot Filling) 与意图检测 (Intent Detection): 常用于对话系统,识别用户意图并填充相应槽位信息。
- 命名实体识别 (NER): 识别文本中具有特定意义的实体,如人名、地名、组织机构名等。
- 通用自然语言信息抽取: 支持广泛的文本信息抽取需求,将不同的抽取任务统一表示。
技术原理
OpenUE 的技术基石在于其对预训练语言模型的应用,兼容如BERT、RoBERTa等主流模型。其核心设计思想在于提出并实现了一种“通用抽取范式”,允许将多种异构的知识抽取任务统一为一种范式进行处理,从而简化模型设计和应用。工具包基于PyTorch深度学习框架构建,并提供了一键式的TorchServing功能,便于快速部署知识抽取服务。它内部集成了针对单一句子关系识别和已知句子中关系实体识别等任务的模型。应用场景
OpenUE 作为一个通用且易用的信息抽取工具,可广泛应用于:- 知识图谱构建: 作为知识图谱自动构建的底层工具,用于从非结构化文本中抽取结构化知识。
- 智能问答系统: 辅助理解用户提问,进行实体、关系、事件的识别,支持更精准的知识检索和答案生成。
- 对话系统: 用于槽填充和意图检测,提升对话系统的理解能力和交互体验。
- 信息检索与内容分析: 从海量文本数据中提取关键信息,进行数据分析、趋势预测等。
- 学术研究与教学: 为自然语言处理领域的初学者和研究人员提供一个易于上手、功能全面的信息抽取实验平台。
- 企业级知识服务: 部署知识抽取服务,支持企业内部的知识管理和决策支持。
- OpenUE 是一个轻量级知识图谱抽取工具。
- OpenUE: An Open Toolkit of Universal Extraction from Text - ACL Anthology
- OpenUE 简单可用的通用自然语言信息抽取工具(浙江大学) - 工具 - 开放知识图谱
- OpenUE: OpenUE是一个轻量级知识图谱抽取工具 (An Open Toolkit for Universal Extraction from Text published at EMNLP2020: https://aclanthology.org/2020.emnlp-demos.1.pdf)
- OpenUE 简单可用的通用自然语言信息抽取工具(浙江大学) - 工具 - 开放知识图谱
------------------------------------------------------------
PromptKGC:预训练范式的知识图谱抽取和补全工具
简介
PromptKG Family是一个专注于Prompt Learning(提示学习)与知识图谱(Knowledge Graph, KG)相关研究工作的综合性项目,它集合了工具包、论文列表和研究成果。该项目旨在解决知识图谱结构复杂、信息丰富的挑战,通过提示学习的方法来更有效地利用知识图谱中的实体和关系信息。核心功能
PromptKG提供了一系列核心功能,主要围绕知识图谱与提示学习的结合:- 知识图谱嵌入 (Knowledge Graph Embedding): 提供
lambdaKG库和基准测试,用于将知识图谱中的实体和关系映射到低维向量空间,以便进行计算和分析。 - 知识探测 (Knowledge Probing): 支持对知识图谱进行深度探测和分析,以理解其内部结构和潜在知识。
- 研究资源集成: 作为一个研究成果的画廊,它整合了Prompt Learning与KG领域的相关研究工作、工具和论文,方便研究人员查阅和使用。
- 教程与示例: 包含
tutorial-notebooks,为用户提供如何使用PromptKG相关工具和进行研究的指导。
技术原理
PromptKG的核心技术原理是将提示学习(Prompt Learning)范式应用于知识图谱(Knowledge Graph)领域。- 提示学习: 借鉴自然语言处理(NLP)中大型语言模型(LLM)的提示技术,通过设计特定的输入模板(Prompt)来引导模型从知识图谱中提取或生成所需信息。这有助于将非结构化的文本信息转化为结构化、可理解的提示,从而更好地与KGs交互。
- 知识图谱嵌入: 采用如TransE、DistMult、RotatE等模型,将知识图谱中的实体和关系编码为连续的低维向量表示。这些向量能够捕捉实体间的语义关系,并在此基础上进行推理和预测。
- 结构化与非结构化数据融合: 通过提示学习,可以在一定程度上弥合知识图谱中结构化信息与文本中非结构化信息之间的鸿沟,实现更灵活的知识利用。
应用场景
PromptKG主要面向以下应用场景:- 知识图谱研究与开发: 为研究人员提供一个集合了相关工具、论文和研究成果的平台,促进Prompt Learning在KG领域的探索和创新。
- 知识图谱补全与推理: 利用提示学习和知识图谱嵌入技术,提升对知识图谱中缺失事实的预测能力,以及进行更复杂的知识推理。
- 基于知识图谱的问答系统: 通过构建合适的提示,从知识图谱中高效地检索和组织信息,支持更智能、更准确的问答系统。
- 自然语言理解与生成: 结合KG的结构化知识和Prompt Learning的灵活性,增强模型对文本的理解能力,并生成更具知识性、更连贯的文本。
- 教育与学习: 作为学习资源库和工具集,可供学生和初学者快速了解和实践Prompt Learning与知识图谱交叉领域的前沿技术。
- PromptKG:知识图表示学习和应用的即时学习框架
------------------------------------------------------------
schema开放的中文知识图谱
简介
cnSchema是一个开放的中文知识图谱schema,专为中文信息处理设计。它利用先进的知识图谱、自然语言处理和机器学习技术,旨在融合结构化与文本数据,支持快速领域知识建模以及跨数据源、跨领域、跨语言的开放数据自动化处理。DeepKE-cnSchema是基于cnSchema的开箱即用工具包,专门用于中文知识图谱的构建。核心功能
- 中文知识图谱构建: 支持高效构建和管理中文知识图谱。
- 知识抽取: 提供实体识别 (NER)、关系抽取 (RE) 和属性抽取能力,支持标准监督、低资源和文档级场景。
- 数据融合与处理: 融合结构化数据与文本数据,支持开放数据的自动化处理。
- 快速领域知识建模: 协助用户快速构建特定领域的知识体系。
技术原理
cnSchema及DeepKE-cnSchema的核心技术原理在于综合运用了:- 知识图谱技术: 构建和组织大规模知识体系,实现知识的结构化表示。
- 自然语言处理 (NLP): 对中文文本进行深度分析,包括词法分析、句法分析、语义理解等,以实现实体、关系和属性的自动抽取。
- 机器学习 (ML) / 深度学习: 训练模型以识别文本中的知识模式,尤其在实体关系抽取方面应用深度学习模型(如DeepKE中的NER和RE模型),支持从大量数据中学习并自动化知识抽取过程。
- 数据集成与对齐: 实现多源异构数据的融合与统一表示。
应用场景
- 智能机器人与智能问答: 提供精准的知识支撑,提升机器人理解和回答问题的能力。
- 语义搜索: 增强搜索结果的语义理解,提供更精确、关联性更强的搜索体验。
- 智能计算与大数据分析: 为复杂的计算任务和大规模数据分析提供结构化的知识背景,辅助决策。
- 推荐系统: 通过理解用户兴趣和内容知识,提供更个性化和精准的推荐。
- 语言语义理解: 提升系统对中文语言深层语义的理解能力。
- 垂直领域知识应用: 快速应用于特定行业或领域的知识管理、检索和推理。
- cnSchema是面向中文信息处理
- cnschema/cnSchema: 开放中文知识图谱的schema
- cnSchema – 开放的中文知识图谱
- cnschema/cnSchema: 开放中文知识图谱的schema
------------------------------------------------------------
哈工大LTP(信息抽取相关)
简介
语言技术平台(LTP)是由哈尔滨工业大学社会计算与信息检索研究中心(HIT-SCIR)开发并开源的中文自然语言处理系统。它是一个综合性的平台,集成了高性能的NLP模块和相关语料库,旨在为中文文本处理提供全面的解决方案。LTP在多项国际评估中表现出色,尤其在句法和语义分析方面达到了先进水平,是中文NLP领域的重要工具。核心功能
- 词法分析: 包括中文分词、词性标注和命名实体识别。
- 句法分析: 提供依存句法分析功能。
- 语义分析: 支持语义依存分析和语义角色标注。
- 综合处理: 作为集成平台,能够处理从底层词法到高层语义的中文文本。
- 开放性和易用性: 提供开源工具包、预训练模型和XML数据表示,便于用户集成和使用。
技术原理
LTP采用了多任务学习框架,与传统的独立模型处理方式不同,它将多种中文NLP任务(如词法分析、句法分析、语义分析)整合到一个统一的神经网络平台N-LTP中。这种架构允许模型共享知识、优化性能并提高处理效率。其底层可能基于深度学习模型,如Transformer架构或循环神经网络(RNN)等,通过大规模语料库进行训练,以学习中文复杂的语言模式。内部数据表示基于XML,便于不同模块间的数据交换和集成。应用场景
- 自然语言理解: 作为中文信息处理的基础工具,应用于文本理解、机器阅读理解等。
- 信息抽取: 用于从中文文本中自动识别和抽取实体、关系和事件。
- 机器翻译: 作为预处理或后处理模块,辅助中文到其他语言的翻译。
- 智能问答系统: 帮助系统理解用户提问的语义,从知识库中检索答案。
- 舆情分析: 对中文新闻、社交媒体等文本进行情感分析、话题识别。
- 学术研究与教育: 为中文NLP相关的学术研究和教学提供工具支持。
- 知识图谱构建: 通过实体识别和关系抽取,辅助构建中文知识图谱。
- 智能文本编辑与校对: 提供词法、句法和语义层面的分析,辅助文本质量提升。
- 哈工大LTP:用于中文实体识别
- 哈尔滨工业大学社会计算与信息检索研究中心 – 理解语言,认知社会 » 重磅!《大词林》V2.0:自动消歧的开放域中文知识图谱
- 哈工大LTP: Language Technology Platform - 工具 - 开放知识图谱
------------------------------------------------------------
复旦大学信息抽取
简介
复旦大学自然语言处理实验室是由吴立德教授创建,是中国最早开展自然语言处理和信息检索研究的实验室之一,拥有40余年的发展历史。FudanNLP(现名FNLP)是该实验室开发的一套中文自然语言处理工具包,旨在为中文文本处理提供全面的解决方案。核心功能
FudanNLP工具包提供了多种中文自然语言处理功能,主要包括:- 中文分词:对中文文本进行词语切分。
- 词性标注:识别词语的语法类别。
- 命名实体识别:识别文本中的人名、地名、组织机构名等专有名词。
- 依存句法分析:分析句子中词语之间的句法关系。
- 关键词抽取:从文本中提取重要关键词。
- 时间短语识别:识别文本中的时间表达。
- 文本分类:将文本归类到预定义的主题。
- 新闻聚类:将相似的新闻文本进行分组。
- 层次分类:进行多层次的文本分类。
- 在线学习:支持模型在线更新和学习。
技术原理
FudanNLP工具包基于FastNLP和PyTorch深度学习框架构建,其核心是一个基于BERT模型的联合模型。该工具包通过在13个语料库上进行训练,以实现中文分词、词性标注、依存句法分析和命名实体识别等任务。整体上,其技术原理涉及深度学习、自然语言理解、机器学习算法以及大规模语料库训练。TextFlint则通过生成对抗样本或进行数据增强等方式,评估和提升NLP模型的鲁棒性。应用场景
FudanNLP作为一款全面的中文自然语言处理工具包,可广泛应用于以下场景:- 信息检索与抽取:实现精准的文本内容检索、信息抽取和知识图谱构建。
- 智能问答系统:作为问答系统的核心处理模块,理解用户问题并生成答案。
- 文本内容管理:对海量文本数据进行自动化分类、聚类和关键词提取,提高内容管理效率。
- 舆情分析:对社交媒体、新闻等文本进行情感分析、热点发现和趋势预测。
- 智能推荐:根据用户行为和文本内容进行个性化推荐。
- 教育与研究:作为教学和科研工具,支持自然语言处理相关算法的开发和验证。
- 文本质量评估:通过TextFlint平台,评估和提升NLP模型的抗干扰能力和泛化性能。
- 复旦大学自然语言处理实验室
- FudanNLP: 中文自然语言处理工具包
------------------------------------------------------------
开源知识图谱融合工具 OpenEA (南京大学)
简介
OpenEA是由南京大学Websoft研究组开发的一款开源知识图谱融合工具。它旨在解决不同知识图谱间因来源广泛、质量参差不齐导致的多样性和异构性问题,特别是通过实体对齐技术实现知识的有效融合。OpenEA作为一个软件库,提供了灵活的架构,支持多种基于嵌入(embedding-based)的方法。核心功能
- 实体对齐: 核心功能是识别来自不同知识图谱中指向同一真实世界对象的实体。
- 本体匹配: 支持不同本体之间的概念对应关系发现。
- 真值验证: 提供对知识图谱中信息真伪的验证能力。
- 模型与数据集集成: 内置多种基于嵌入的模型和数据集,方便用户直接使用和评估。
- 灵活架构: 提供易于集成的架构,便于用户引入和扩展现有的知识融合模型。
- 教程与基线代码: 为用户提供知识融合相关任务的教程和基线实现代码。
技术原理
OpenEA主要采用基于嵌入(Embedding-based)的方法来处理知识图谱的实体对齐问题。其技术原理包括:- 知识图谱嵌入: 将知识图谱中的实体和关系映射到低维连续向量空间中,以便于计算相似度。这通常包括关系嵌入和属性嵌入。
- 表示学习: 利用表示学习技术,从异构的知识图谱数据中学习出有效的实体和关系表示。
- 相似度计算: 在嵌入空间中,通过计算向量间的相似度来判断不同知识图谱中的实体是否指向同一现实对象。
- 消除名称偏差: 通过编码实体URI等方式,处理和解决数据中可能存在的名称偏差问题,提升对齐方法的鲁棒性。
- 基准研究: 作为一项基准研究工具,其设计和实现基于“A Benchmarking Study of Embedding-based Entity Alignment for Knowledge Graphs”等前沿学术成果。
应用场景
- 知识图谱构建与集成: 用于从多个异构知识源中融合数据,构建更全面、一致的知识图谱。
- 数据清洗与去重: 在大数据和知识管理领域,对来自不同数据集的实体进行识别和去重。
- 学术研究与教学: 作为研究实体对齐和知识融合方法的基准平台,并可作为知识图谱相关课程的实验教学工具。
- 智能信息系统: 支持构建需要整合多源知识的智能问答、推荐系统等应用,确保知识的一致性与准确性。
- OpenEA/大师教程 · nju-websoft/OpenEA
- 开源知识图谱融合工具 OpenEA (南京大学) - 工具 - 开放知识图谱
- 知识融合课程实验
- 开源知识图谱融合工具 OpenEA (南京大学) - 工具 - 开放知识图谱
------------------------------------------------------------
智图 (AutoGL)清华参与
简介
AutoGL(Automated Graph Learning)是由清华大学朱文武教授团队开发并开源的智图库,旨在为研究人员和开发者提供一个在图数据集和任务上快速进行自动化机器学习(AutoML)的框架。它专注于提升图机器学习的可解释性和泛化能力,并支持对异构图的学习。核心功能
- 图自动化机器学习任务解决: 提供不同的求解器(Solvers)来处理各种图基机器学习任务。
- 自动化模块集成: 包含自动特征工程(Auto Feature Engineer)、神经架构搜索(Neural Architecture Search)、自动模型(Auto Model)、超参数优化(Hyperparameter Optimization)和自动集成(Auto Ensemble)五大核心模块。
- 异构图支持: 支持Deep Graph Library (DGL) 中的异构图数据集,并集成了HeteroRGCN、HAN和HGT等常用异构图神经网络模型。
- 自定义与扩展: 允许用户定义和集成自己的异构图神经网络模型和数据集。
技术原理
AutoGL的核心技术在于将AutoML思想应用于图数据领域。它通过自动化地执行图特征工程、模型选择与组合、神经架构搜索和超参数调优等过程,显著降低了图机器学习的门槛。其内部架构通过模块化设计,使得不同的图任务可以由专门的求解器处理,并充分利用其内建的自动化组件。在异构图方面,AutoGL集成了针对异构图特性设计的图神经网络模型,并通过自动化流程优化其在节点分类等任务上的性能。它还关注图Transformer、图分布外泛化(OOD)和图自监督学习等前沿技术,以提高模型的泛化能力和鲁棒性。应用场景
- 学术研究: 快速验证图机器学习算法,进行基准测试,探索新的图神经网络架构。
- 工业实践: 在推荐系统、社交网络分析、知识图谱推理等领域,自动化构建和优化图数据处理模型。
- 异构图分析: 特别适用于需要处理具有多种节点类型和边类型的复杂异构图场景,如多模态数据融合、生物信息学网络分析等。
- 图模型开发: 为图神经网络模型开发者提供一个快速原型开发和性能评估的平台,减少手动调优的工作量。
- 智图 (AutoGL)
- Node Classification for Heterogeneous Graph — AutoGL v0.3.0rc0 documentation
------------------------------------------------------------
清华KoPL: 面向知识的推理问答编程语言
简介
KoPL(Knowledge oriented Programing Language)是由清华大学知识工程组(THU-KEG)开发的一种面向知识的复杂推理问答编程语言。它旨在为自然语言问题提供统一的语义表示,通过将自然语言问题转化为由基本函数组合而成的KoPL程序来实现深度语言理解和知识密集型复杂推理,特别适用于知识图谱问答(KBQA)。核心功能
KoPL的核心功能包括:- 复杂推理问答:能够处理多跳、逻辑推理、比较、计数和事实验证等多种复杂问答类型。
- 知识操作:支持对概念、实体、关系、属性、修饰符等多种知识元素进行操作。
- 程序化表示:将自然语言问题表示为由27个(及未来可能更多)基本函数或知识操作符组合而成的KoPL程序。
- 可扩展性:目前已实现对任意知识库的支持,未来计划扩展到同时支持知识库和文本的推理问答。
- API接口:提供Python实现的工具包和API,方便用户自定义知识库并进行操作。
技术原理
KoPL采用知识导向的编程语言范式,其技术原理主要体现在:- 语义解析:将复杂的自然语言问题解析并转化为可执行的KoPL程序,实现从自然语言到形式化逻辑的映射。
- 组合式推理:通过将问题的推理过程分解为一系列可组合的基本函数(知识操作符),这些函数以显式、透明的方式执行对知识元素的各种操作。
- 神经符号AI:融合了神经方法(用于理解自然语言)和符号方法(用于精确的知识推理),旨在实现兼具深度理解和可解释性的推理。
- Python实现:KoPL工具包基于Python开发,提供了灵活的编程接口。
- SPARQL转换:KoPL程序能够被进一步转换为SPARQL查询语言,从而在知识图谱上执行查询。
- 可视化编程:配合VisKoP等工具,支持通过图形化界面拖拽、填充槽位等方式构建KoPL程序,并提供自动补全和中间结果调试功能。
应用场景
KoPL可广泛应用于以下场景:- 知识图谱问答系统:为基于知识图谱的复杂自然语言问答提供强大的推理能力。
- 智能助理与客服:构建能够理解和回答用户复杂查询的智能问答系统。
- 语义解析任务:作为一种语义表示语言,用于将自然语言转换为结构化查询。
- 知识密集型应用:在需要对大量结构化知识进行复杂推理的领域(如法律、医疗、金融等)进行数据分析和决策支持。
- 教育与研究:提供一个可解释、可调试的知识推理平台,用于研究自然语言理解和知识推理技术。
- 面向知识的复杂问题推理编程语言KoPL - 工具 - 开放知识图谱
- KoPL: 面向知识的推理问答编程语言
- 知识库下载 — KoPL 1.0.0 documentation
- 知识库下载 — KoPL 1.0.0 documentation
- 第一个KoPL程序 — KoPL 1.0.0 documentation
------------------------------------------------------------
清华THULAC:一个高效的中文词法分析工具包
简介
THULAC(THU Lexical Analyzer for Chinese)是由清华大学自然语言处理与社会人文计算实验室研发推出的一套中文词法分析工具包。它以其高效性和强大的处理能力而闻名,旨在为中文文本提供精准的词法分析服务。核心功能
- 中文分词 (Chinese Word Segmentation): 将连续的中文文本切分成具有独立语义的词语。
- 词性标注 (Part-of-Speech Tagging): 对分词后的词语进行词性(如名词、动词、形容词等)的标注。
- 多版本支持: 提供轻量级(lite)和专业级(pro)版本,适应不同需求。
- 多语言接口: 提供C++、Java、Python等多种编程语言接口,方便集成与使用。
技术原理
THULAC的强大能力得益于其基于大规模人工标注语料库的训练。它利用清华大学集成的约5800万字的中文语料进行模型训练,从而具备高精度的词法分析能力。其核心技术可能涉及条件随机场 (CRF)、隐马尔可夫模型 (HMM) 或深度学习等序列标注模型,用于实现高效准确的分词和词性标注。通过优化算法和模型结构,THULAC能够在保证准确性的同时,实现较快的处理速度。应用场景
- 自然语言处理 (NLP): 作为许多NLP任务的基础,如信息检索、文本分类、情感分析、机器翻译、问答系统等。
- 文本挖掘与数据分析: 对中文文本数据进行预处理,提取关键词,理解文本结构。
- 数字人文研究: 分析历史文献、文学作品等中文文本,辅助人文社科领域的研究。
- 智能检索系统: 提升中文搜索结果的准确性和相关性。
- 舆情分析: 对网络中文评论进行分词和词性标注,以便进行更深层次的情感和主题分析。
- THULAC:一个高效的中文词法分析工具包
- THULAC:清华大学中文词法分析工具包 - 工具 - 开放知识图谱
------------------------------------------------------------
清华大学开源OpenKE: 知识表示学习平台
简介
OpenKE(Open Knowledge Embedding)是由THUNLP(清华大学自然语言处理与社会计算实验室)开发的一个开源知识嵌入工具包/框架,旨在进行知识表示学习(Knowledge Representation Learning, KRL)。作为OpenSKL的子项目,它提供了一个高效的平台,用于将知识图谱中的实体和关系嵌入到连续的向量空间中,从而便于处理大规模知识图谱中的复杂关系和关系路径。核心功能
- 知识表示学习框架: 提供一个全面且易于扩展的开源框架,用于实现和研究各种知识嵌入模型。
- 主流模型支持: 实现了包括TransR、PTransE在内的多种流行的知识表示学习方法。
- 高性能训练: 通过C++进行底层数据处理和负采样等操作,并结合PyTorch或TensorFlow进行模型训练,优化了GPU训练的速度和内存效率,支持大规模知识图谱的训练。
- 易用接口: 提供简洁的接口,便于用户配置训练环境和各类经典模型。
- 预训练嵌入: 提供现有大规模知识图谱的预训练嵌入,可用于多种相关任务。
- 模型扩展性: 方便用户设计和扩展新的知识嵌入模型。
技术原理
OpenKE的核心技术原理在于知识表示学习(Knowledge Representation Learning, KRL),其目标是将知识图谱中的实体(entities)和关系(relations)映射到低维、连续的向量空间中,形成知识嵌入(Knowledge Embedding)。- 分布式表示: 通过神经网络等技术,学习实体和关系的向量表示,使得语义相似的实体和关系在向量空间中距离相近。
- 特定模型实现: 内部实现了如TransR(Translation-based models for Relation)和PTransE(Path-enhanced TransE)等模型。TransR模型通过将实体和关系投影到关系特定的空间中来处理复杂关系;PTransE则进一步考虑了关系路径的信息以增强表示能力。
- 混合编程范式: 采用高效的混合编程策略,其中数据预处理、负采样等底层操作使用C++实现,以获得部署效率和多线程加速。而具体的知识嵌入模型则通过Python接口在PyTorch(早期为TensorFlow)框架下实现,充分利用了GPU的并行计算能力。
- 优化算法: 框架内集成了多种优化算法,以提升模型训练的速度和收敛效率。
应用场景
- 知识图谱构建与完善: 通过学习实体和关系的嵌入,可以用于知识图谱的链接预测、实体对齐、关系抽取等任务。
- 语义搜索与推荐系统: 知识嵌入可以增强搜索结果的语义相关性,或为推荐系统提供更深层次的用户偏好和物品特征理解。
- 自然语言处理: 作为文本理解和生成的基础,知识嵌入可用于问答系统、文本分类、情感分析等任务,提供丰富的背景知识。
- 人工智能研究: 为研究人员提供一个灵活且高效的平台,用于开发、测试和比较新的知识嵌入模型和算法。
- 数据挖掘与分析: 帮助发现大规模异构数据中的隐藏模式和关联,支持决策制定。
- thunlp/OpenKE: An Open-Source Package for Knowledge Embedding (KE)
- OpenKE - 知识嵌入的开源框架。
- 清华大学开源OpenKE: 知识表示学习平台 - 工具 - 开放知识图谱
------------------------------------------------------------
麻省理工:MIT知识图谱embedding工具包
简介
scikit-kge 是一个由麻省理工学院 (MIT) 开发的 Python 库,专注于知识图谱嵌入(Knowledge Graph Embeddings)的计算。它提供了一系列构建模块,用于训练和开发各种知识图谱的分布式表示模型。核心功能
scikit-kge 的核心功能在于:- 知识图谱嵌入训练与开发: 允许用户运用不同的方法训练并获取知识图谱中实体和关系的分布式表示结果。
- 模块化与可扩展性: 采用模块化设计,方便研究人员集成新的模型、优化器以及自定义损失函数和评价指标,以探索新颖的学习策略。
技术原理
该库的技术原理基于知识图谱表示学习,即将知识图谱中的实体(如人、地点、概念)和关系(如“居住在”、“是”等)映射到低维、连续的向量空间中。通过这种向量化表示,可以捕获知识图谱中复杂的语义信息和结构模式。具体的表示学习方法可以多样化,训练过程通常涉及模型实例化和采用特定的优化算法对模型进行迭代训练。其模块化设计支持集成不同的嵌入算法,并能通过自定义函数适应多样化的训练需求。应用场景
scikit-kge 主要的应用场景包括:- 知识图谱补全: 通过预测知识图谱中缺失的三元组(实体-关系-实体),从而丰富和完善现有知识库。
- 其他基于知识图谱的任务: 知识图谱嵌入是许多高级应用(如问答系统、推荐系统、语义搜索等)的基础,scikit-kge 可为其提供底层的向量表示支持。
- scikit-kge: MIT知识图谱embedding工具包 - 工具 - 开放知识图谱
- mnick/scikit-kge: Python library to compute knowledge graph embeddings
------------------------------------------------------------
其他开源
简介
展示了信息抽取(Information Extraction, IE)方向的多个开源工具包和系统。它们旨在从非结构化文本中提取结构化信息,涵盖了实体、关系、事件等多种信息类型。这些工具包通常具有高度模块化、可扩展性和综合性,支持研究和实际应用。核心功能
- 实体抽取 (Entity Extraction): 从文本中识别并分类命名实体(如人名、地名、组织机构名等)。
- 关系抽取 (Relation Extraction): 识别文本中实体之间的语义关系,例如“出生于”、“位于”等。
- 事件抽取 (Event Extraction): 识别文本中描述的事件及其相关的参与者(事件论元)。这包括事件检测和事件论元抽取。
- 开放信息抽取 (Open Information Extraction, Open IE): 无需预定义模式即可从文本中抽取结构化关系三元组。
- 知识图谱对齐与丰富: 将抽取的事实与知识图谱(如CogNet)对齐,并利用多类型知识丰富抽取结果。
- 跨文档、跨语言、跨模态信息抽取: 处理来自不同来源、语言和数据模态(如文本、语音、图像、视频)的信息。
- 事件追踪与预测: 对新闻文章中的事件进行追踪、预测和分析,包括事件的时间排序和共指消解。
技术原理
这些信息抽取系统和工具包普遍采用以下技术原理:- 深度学习/神经网络模型: 广泛应用于实体、关系和事件抽取任务,例如OpenNRE和OmniEvent都基于神经网络实现关系和事件抽取模型。
- 知识驱动/知识增强 (Knowledge-grounded): 如CogIE通过将抽取结果与CogNet(知识图谱)对齐,利用外部知识来增强和丰富抽取过程及结果。
- 开放域与模式无关: 斯坦福OpenIE等系统采用无需预定义模式的方法,从文本中自动发现并抽取关系三元组。
- 模块化与可扩展性: 许多工具包如OmniEvent和OpenNRE被设计为模块化架构,方便集成不同的模型范式和扩展新的功能。
- Schema-guided方法: RESIN系统利用事件Schema(事件模式)来指导复杂的实体、关系和事件抽取,以及事件追踪和共指消解。
- 弱监督与零样本学习: RESIN-11框架结合了弱监督和零样本学习技术,以处理新颖的、未曾见过的场景。
- 统一评估框架: 为确保模型评估的公平性和可比性,一些工具包(如OmniEvent)提供了统一的评估基准和数据集。
应用场景
- 知识图谱构建: 从海量非结构化文本中自动抽取事实,用于构建和扩展知识图谱。
- 智能问答系统: 为问答系统提供结构化知识,提升问答的准确性和效率。
- 新闻分析与事件监测: 实时从新闻文章中抽取事件,进行事件追踪、趋势分析和预警。
- 情报分析: 从各种来源(包括多模态数据)中提取关键信息,辅助情报决策。
- 文本理解与内容分析: 帮助机器深入理解文本内容,为信息检索、文档摘要等应用提供基础。
- 垂直领域信息抽取: 在特定领域(如医疗、金融、法律)中抽取专业知识和事件。
- 学术研究与模型开发: 作为研究平台,提供统一的框架和基线模型,方便研究人员开发和比较新的信息抽取算法。
- CogIE: CogIE: An Information Extraction Toolkit for Bridging Text and CogNet. ACL 2021
- CogIE/setup.py at master · jinzhuoran/CogIE
- OpenNRE: An Open-Source Package for Neural Relation Extraction (NRE)
- OmniEvent: A comprehensive, unified and modular event extraction toolkit.
- OpenIE - CoreNLP
- RESIN-KAIROS/RESIN-pipeline-public
------------------------------------------------------------
1.图神经网络算法GNN库&图计算框架
#### 简介 PyTorch Geometric(PyG)是一个基于PyTorch的图神经网络(GNN)库,专注于图和其他非规则结构上的深度学习,即几何深度学习。它旨在简化GNN的编写和训练过程。GLEM(Graph-based Language Model)则是一个针对大型文本属性图的解决方案,通过融合图结构与语言学习,并采用变分期望最大化(EM)框架,实现高效且有效的图学习。
核心功能
- PyTorch Geometric: 提供丰富的图神经网络层、数据集和工具,支持快速构建和训练各种GNN模型,处理图数据(如节点特征、边索引等),并为几何深度学习提供模块化组件。
- GLEM: 针对包含大量文本信息的大规模图数据进行高效学习,能够同时利用图的结构信息和节点上的文本内容进行联合建模,解决传统GNN难以处理的大规模文本属性图问题。
技术原理
- PyTorch Geometric: 基于PyTorch的张量操作和自动微分机制,实现各种图卷积层(如GCNConv, SAGEConv等)、池化层、归一化层等,通过消息传递范式(Message Passing Paradigm)在图结构上进行特征聚合和更新。其设计遵循模块化原则,方便研究人员和开发者实现新的GNN架构。
- GLEM: 核心在于采用变分期望最大化(Variational Expectation-Maximization, VEM)框架。它将图结构学习和语言模型学习(通常通过预训练语言模型或词嵌入来处理文本信息)有机地结合起来,迭代地优化模型参数和潜在变量,从而在文本属性图上实现高效且鲁棒的表示学习。
应用场景
- PyTorch Geometric: 广泛应用于需要处理结构化数据的领域,包括但不限于社交网络分析(如社区发现、链接预测)、分子图学习(如药物发现、材料科学)、推荐系统、知识图谱推理、交通预测和计算机视觉中的点云处理等。
- GLEM: 主要应用于大规模文本属性图场景,例如学术引用网络(分析论文间的引用关系及其内容)、社交媒体网络(分析用户互动及其发布的文本内容)、文档分类与聚类(结合文档间的引用/链接关系)、以及任何需要同时理解文本语义和网络结构的复杂系统。
- PyTorch Geometric
- AndyJZhao/GLEM
------------------------------------------------------------
DIG: Dive into Graphs
简介
DIG (Dive into Graphs) 是一个为图深度学习研究设计的开源库,旨在提供一个统一的测试平台,以支持更高层次、研究导向的图深度学习任务。它由德克萨斯A&M大学的DIVE实验室开发,致力于促进图深度学习领域的先进研究。核心功能
- 图生成: 支持各种图结构数据的生成算法和模型。
- 图上的自监督学习: 提供在图数据上进行自监督学习的框架和方法。
- 图神经网络可解释性: 专注于解释图神经网络(GNN)的决策过程和机制。
- 3D 图上的深度学习: 扩展深度学习能力到三维图数据结构,如分子图或点云。
技术原理
DIG 的技术原理在于构建一个模块化、可扩展的统一框架,以集成和支持复杂的图深度学习任务。它区别于基础图深度学习库(如PyTorch Geometric、DGL),通过提供针对特定研究问题的“开箱即用”模块,使得研究人员能够更专注于高级算法和模型设计。这包括:- 高级任务抽象: 将图生成、自监督学习、可解释性和3D图处理等作为核心任务进行抽象和封装。
- 算法集成: 集成并优化多种图神经网络模型、图表示学习方法以及相关的数据处理管道。
- 统一接口: 提供一致的API和数据结构,简化不同任务和模型的切换与比较。
- 研究导向设计: 强调实验的便捷性、结果的复现性以及新方法的快速验证。
应用场景
- 图深度学习领域的研究: 为研究人员提供一个进行前沿图神经网络算法开发和验证的平台。
- 科学计算与生物信息: 应用于分子生成、药物发现、蛋白质结构分析等需要处理复杂图结构数据的场景。
- GNN模型解释与审计: 用于理解GNN模型的预测逻辑,提高模型透明度和可信度。
- 3D数据分析: 探索在三维空间中表示的图数据(如点云、网格数据)的深度学习应用。
- divelab/DIG: A library for graph deep learning research
------------------------------------------------------------
Deep Graph Library (DGL)
简介
Deep Graph Library (DGL) 是一个开源的Python库,专为图深度学习(Deep Learning on Graphs)而设计,旨在简化图神经网络(GNNs)模型在各种深度学习框架(如PyTorch, MXNet, TensorFlow)上的实现和研究。DGL提供易于使用的API、高性能的计算能力和良好的可扩展性,使其成为图深度学习领域常用的平台,支持大规模图数据上的GNNs训练。核心功能
- 图数据结构操作: 提供灵活高效的API来构建、操作和表示图结构,包括节点、边及其特征。
- 图神经网络模型实现: 支持快速实现和部署各类图神经网络模型,如GCN、GAT等。
- 异构图与超图支持: 能够处理包含不同类型节点和边的异构图,以及支持超图神经网络的构建。
- 大规模图训练: 提供随机训练(Stochastic Training)等机制,用于在大型图上进行批处理训练,解决内存限制和计算效率问题。
- 与现有DL框架集成: 兼容PyTorch、MXNet、TensorFlow等主流深度学习框架,允许用户在熟悉的环境中进行开发。
- 知识图谱嵌入与生命科学应用: 扩展库如DGL-KE和DGL-LifeSci,分别专注于大规模知识图谱嵌入和生命科学领域的图神经网络应用。
技术原理
DGL的核心技术原理在于其高效的图数据表示和计算范式。它将图的稀疏结构与深度学习框架的密集张量计算相结合,通过优化消息传递(Message Passing)机制实现GNNs的并行计算。- 消息传递范式(Message Passing Paradigm): GNNs的核心操作,DGL将其抽象为
send和recv函数,允许节点从邻居收集信息,并聚合以更新自身表示。这通过图的邻接矩阵和节点/边特征的乘法实现,通常利用稀疏矩阵乘法(SpMM)进行优化。 - 后端无关性(Backend Agnostic): DGL设计了与底层深度学习框架分离的计算图,使得相同的DGL代码可以在不同的DL后端上运行,提高了灵活性和可移植性。
- 图采样(Graph Sampling): 为处理大规模图,DGL引入了各种图采样技术(如邻居采样),以生成用于小批量训练的子图,从而降低内存消耗并加速训练。
- 稀疏张量操作(Sparse Tensor Operations): 内置对稀疏张量操作的优化支持,例如
dgl.sparse模块,高效处理图的稀疏连接特性。 - 模型集合: 提供了多种图神经网络层的实现,如
GraphConv、GATConv等,这些模块可以方便地组合成复杂的GNN架构。
应用场景
- 节点分类与预测: 如社交网络中用户的角色识别、学术引用网络中论文主题分类。
- 链接预测: 预测图中缺失的链接或未来可能形成的链接,例如推荐系统中用户-物品交互预测。
- 图分类: 对整个图进行分类,如分子结构分类(预测分子的化学性质或生物活性)。
- 知识图谱表示学习: 通过知识图谱嵌入(KGE)技术,将知识图谱中的实体和关系映射到低维向量空间,用于问答系统、推荐等。
- 生物信息学与药物发现: 分析蛋白质相互作用网络、分子结构等,加速药物发现和疾病机制研究。
- 推荐系统: 利用用户-物品交互图进行更精准的个性化推荐。
- 计算机视觉与自然语言处理: 将非结构化数据(如图像像素、文本词语)构建成图结构,并利用GNNs进行特征学习和任务处理。
- Deep Graph Library
- Deep Graph Library (DGL)
- classicsong/dgl: Python package built to ease deep learning on graph, on top of existing DL frameworks.
- dmlc/dgl: Python package built to ease deep learning on graph, on top of existing DL frameworks.
- DGL 介绍 — DGL 0.9.1post1 文档
------------------------------------------------------------
Euler-2.0阿里
简介
Euler 是阿里巴巴开发的一个分布式图深度学习框架和图神经网络 (GNN) 库。它旨在支持大规模的图学习任务,并且也关联到一个知识图谱查看器,用于创建、可视化和管理知识图谱。核心功能
- 大规模图学习: 提供对大规模图数据进行深度学习的能力。
- 图神经网络支持: 作为图神经网络库,支持各种GNN模型的开发与应用。
- 知识图谱管理: 能够创建、可视化和管理知识图谱,包括添加节点和边、执行查询等操作。
- 交互式可视化: 提供图形用户界面 (GUI) 用于交互式地查看和操作知识图谱。
技术原理
Euler 作为一个分布式图深度学习框架,其核心技术原理在于将图数据和计算分布式处理,以应对超大规模图数据的存储和计算挑战。它基于图神经网络 (GNN) 范式,通过在图结构上进行消息传递和特征聚合来学习节点、边和整个图的表示。其分布式架构支持高效的并行计算,能够处理传统单机难以处理的复杂图结构和海量数据,实现大规模图学习。应用场景
- 推荐系统: 利用用户-物品交互图进行个性化推荐。
- 社交网络分析: 分析社交关系,进行社区发现、影响力预测等。
- 知识图谱推理: 在知识图谱上进行关系预测、实体链接和复杂查询。
- 欺诈检测: 通过分析交易网络中的异常模式来识别欺诈行为。
- 生物信息学: 分析蛋白质相互作用网络、基因调控网络等。
- 智能风控: 构建风险关联图谱进行风险评估和预警。
- Euler-2.0阿里
------------------------------------------------------------
cogdl清华、阿里、浙大
简介
CogDL是一个全面且高效的图深度学习工具包,旨在帮助研究人员和开发者轻松训练和比较各种图神经网络(GNNs)模型,支持基线模型和自定义模型的实现。该库提供了一系列统一的接口和工具,简化了图数据的处理、模型构建和实验评估过程,是图表示学习领域的强大助力。核心功能
- 模型训练与比较: 提供统一的训练接口,方便用户快速训练多种图深度学习模型,并支持对不同模型的性能进行评估和比较。
- 任务支持: 涵盖多种图学习任务,包括但不限于节点分类、图分类、链接预测等。
- 数据集管理: 内置或支持多种图数据集的加载和预处理。
- 模型库: 集成了多种经典的图神经网络模型(如GCN、GAT、GraphSAGE等)以及其他图表示学习算法。
- 易用性与可扩展性: 设计上注重用户友好性,提供简洁的API,同时具备良好的模块化和可扩展性,便于用户自定义模型和算法。
技术原理
CogDL的核心技术原理围绕图神经网络(GNNs)构建,并融合了传统的图表示学习方法:- 图神经网络: 通过消息传递机制在图结构数据上进行特征学习和传播,捕捉节点及其邻居的信息,以实现节点或图级别的预测。
- 随机游走与矩阵分解: 结合了如DeepWalk、Node2vec等基于随机游走和矩阵分解的图嵌入方法,为图数据生成低维密集向量表示。
- 深度学习框架: 通常基于PyTorch等主流深度学习框架实现,利用其自动微分和GPU加速能力进行高效的模型训练。
- 统一接口设计: 通过抽象层和模块化设计,将不同模型和任务的实现进行解耦,提高代码的复用性和可维护性。
应用场景
- 学术研究: 图深度学习领域的研究人员可以利用CogDL快速验证新模型、新算法的有效性,并进行基线对比实验。
- 工业应用: 在需要处理图结构数据的场景中,如社交网络分析、推荐系统、生物信息学(蛋白质相互作用网络)、知识图谱、交通网络预测等,CogDL可用于构建和部署高效的图学习模型。
- 教育与学习: 作为学习和理解图神经网络的工具,帮助学生和初学者快速上手实践图深度学习项目。
- 模型开发: 开发者可以基于CogDL提供的框架,轻松开发和集成新的图神经网络模型或相关算法。
- cogdl/THUDM/cogdl
------------------------------------------------------------
亚马逊
简介
PECOS(Prediction for Enormous and Correlated Spaces)是一个由亚马逊开源的多功能模块化机器学习框架,旨在解决具有巨大且相关输出空间(如亿级标签)的问题,包括极端多标签排序(XMR)和大规模检索。它致力于提供快速的学习和推理能力,并具有与特定输入输出无关的通用性。Graph Attention Multi-Layer Perceptron (GAMLP) 则是相关研究,专注于大规模图神经网络,尤其适用于开放图基准。核心功能
- 极端多标签排序与分类 (XMR/XMC):能够从数百万甚至上亿个候选输出中,高效地识别并排序出少量相关的输出(例如10-100个),支持稀疏或稠密数值向量输入。
- 大规模检索:支持在海量数据集中进行快速有效的检索。
- 通用性与模块化设计:框架设计独立于具体的输入和输出类型,使其可应用于多种不同的机器学习任务。
- 可扩展图神经网络 (GAMLP):通过解耦图神经网络中的特征传播计算和神经网络训练,以保证在大规模图数据上的高可扩展性。
技术原理
- PECOS:
pecos.xmc.xlinear专门用于极端多标签分类和排序,处理高维稀疏或稠密特征。
* 分布式训练支持:通过 AWS CDK 实现自动化分布式 XR-Linear 训练,提升处理大规模数据的效率。
* 低精度优化:如使用 HNSW (Hierarchical Navigable Small World) 的 C++ 接口配合 4bit 量化,以加速近邻搜索和推理。
- GAMLP:
应用场景
- 产品搜索与推荐系统:在亚马逊内部已成功应用于商品搜索和推荐等核心业务,处理海量商品和用户偏好标签。
- 零样本学习 (Zero-shot Learning):适用于处理极端多标签问题中,部分标签在训练时没有或只有极少样本的情况。
- 极端上下文多臂老虎机 (Extreme Contextual Bandits):在具有大规模动作空间的决策制定场景中应用。
- 深度强化学习:可扩展至具有庞大动作空间的强化学习问题。
- 大规模图数据分析:GAMLP 专注于开放图基准 (Open Graph Benchmark),适用于处理大规模图数据上的节点分类、链接预测等任务。
- amzn/pecos: PECOS - Prediction for Enormous and Correlated Spaces
- pecos/README.md at mainline · amzn/pecos
- OctoberChang/GAMLP: Code of GAMLP for Open Graph Benchmark
------------------------------------------------------------
斯坦福OGB
#### 简介 Open Graph Benchmark (OGB) 是一个综合性的图机器学习基准平台,由数据集、数据加载器和评估器组成,旨在推动图神经网络(GNNs)领域的研究与开发。OGB与流行的图深度学习框架(如PyTorch Geometric和DGL)兼容,提供标准化接口。相关的项目包括针对GNN预训练策略的研究(pretrain-gnns)以及用于设计、评估和分析GNN模型的通用平台GraphGym,共同构成了斯坦福SNAP实验室在图机器学习生态系统中的核心贡献。
核心功能
- OGB (Open Graph Benchmark): 提供多种图机器学习任务和真实世界应用场景的基准数据集,自动化数据集下载与预处理,以及标准化评估器和排行榜,用于跟踪最先进的结果。
- ogbn-products (示例): OGB中一个具体的节点属性预测数据集,代表亚马逊商品共同购买网络,用于评估GNN模型在大型图上的性能。
- pretrain-gnns: 探索并实现图神经网络的预训练策略,旨在通过无监督或自监督的方式学习通用图表示,以提高下游任务的性能。
- GraphGym: 一个模块化、可复现、可扩展的平台,用于系统化地设计、评估和分析图神经网络模型,支持对GNN架构及其在各种图任务上表现的探索。
技术原理
OGB系列项目基于图深度学习原理,核心在于对图结构数据的建模和学习。- 图表示学习: 通过GNNs捕获图中节点和边的拓扑信息以及特征信息,生成低维向量表示。
- 数据标准化与加载: OGB通过统一的API管理和加载不同类型的图数据集,确保不同模型和实验之间的可比性。
- GNN架构设计: GraphGym允许用户通过模块化组件(如消息传递、聚合函数、读出机制)构建和测试不同的GNN架构。
- 预训练机制: pretrain-gnns项目采用多种自监督学习策略,如属性掩码预测、上下文预测或对比学习,使GNN在大量无标签图数据上学习通用的、可迁移的特征表示,从而减少下游任务对大量标签数据的依赖。
- 性能评估与分析: 平台提供统一的评估指标和工具,对GNN模型在特定任务上的性能进行量化,并支持实验配置的复现性和结果管理。
应用场景
- 学术研究与基准测试: 为图机器学习领域的研究人员提供标准化的数据集和评估框架,促进新算法的开发和比较。
- GNN模型开发与优化: 帮助研究人员和开发者系统地设计、验证和优化各种GNN模型,探索不同的架构和超参数组合。
- 图数据挖掘与预测: 应用于节点分类、链接预测、图分类等任务,例如在电商平台中进行商品推荐(如ogbn-products)、社交网络分析、药物发现和材料科学等领域。
- 可迁移学习研究: 利用预训练的GNN模型,在数据稀疏或标签受限的下游任务中快速适应并取得良好性能。
- 工业界应用: 为需要处理复杂图结构数据的企业提供GNN解决方案的开发和部署工具。
- snap-stanford/ogb: Benchmark datasets, data loaders, and evaluators for graph machine learning
- 斯坦福ogb
- snap-stanford/pretrain-gnns: Strategies for Pre-training Graph Neural Networks
- snap-stanford/GraphGym: Platform for designing and evaluating Graph Neural Networks (GNN)
------------------------------------------------------------
清华开源自动图机器学习AutoGL
简介
AutoGL(Automatic Graph Learning)是由清华大学THUMNLab开发的一个针对图机器学习的自动化机器学习(AutoML)框架和工具包。它旨在帮助研究人员和开发者在图数据集和任务上快速进行AutoML实践。核心功能
- 自动化图任务解决: 通过统一的AutoGL求解器自动处理各类图机器学习任务。
- 模块化自动优化: 集成了五大核心模块,包括自动特征工程(Auto Feature Engineer)、神经架构搜索(Neural Architecture Search, NAS)、自动模型选择(Auto Model)、超参数优化(Hyperparameter Optimization, HPO)和自动模型集成(Auto Ensemble)。
- 数据集管理: 基于PyTorch Geometric或Deep Graph Library的Dataset,对图数据进行高效管理和支持。
- 图鲁棒性支持: 支持图结构工程、鲁棒图神经网络(Robust GNNs)和鲁棒图NAS等图鲁棒性算法。
- 性能评估加速: 与NAS-Bench-Graph结合,显著加速GraphNAS算法的性能估计过程。
技术原理
AutoGL的核心在于其AutoGL solvers,这些求解器利用模块化的方式,将图机器学习任务的自动化流程分解为多个关键步骤并进行优化。
- 数据层: 基于PyTorch Geometric或Deep Graph Library,实现图数据的统一表示和管理。
- 自动化模块:
- 兼容性与扩展: 支持与NAS-Bench-Graph等基准测试工具集成,以及对各类图鲁棒性算法的实现。整个框架旨在提供高度可定制和可扩展的AutoML解决方案。
应用场景
- 科研与开发: 帮助研究人员和开发者在图数据集上快速实施AutoML实验,加速新算法的验证与开发。
- 图数据分析: 适用于需要对图数据进行自动化建模和预测的场景,例如社交网络分析、生物信息学图谱分析、知识图谱推理等。
- 图鲁棒性研究: 为提升图神经网络在对抗攻击或噪声环境下的鲁棒性提供工具支持。
- 自动化模型部署: 简化图机器学习模型的开发和优化流程,为实际应用中的模型部署提供便利。
- THUMNLab/AutoGL: An autoML framework & toolkit for machine learning on graphs.
- Welcome to AutoGL’s documentation! — AutoGL v0.3.0rc0 documentation
------------------------------------------------------------
百度PGL
简介
提供的链接指向百度PaddlePaddle的图学习框架PGL (Paddle Graph Learning) 中的节点属性预测示例。这些示例主要关注在Open Graph Benchmark (OGB) 数据集,特别是OGBN-Arxiv上进行图神经网络模型的训练和评估,其中包括了UniMP (Unified Message Passing) 及其变种如UniMPAPPNPVNode_Smooth的实现,用于解决大规模图数据上的节点分类任务。核心功能
- 高效图学习框架: PGL提供了一个基于PaddlePaddle的高效灵活的图学习框架,支持图神经网络模型开发。
- 节点属性预测: 实现了在OGBN-Arxiv等大规模图数据集上进行节点分类和预测的核心功能。
- 多种图范式支持: 支持基于游走(walk-based)和基于消息传递(message-passing based)的异构图学习范式。
- 分布式图存储与训练: 具备分布式图存储和分布式训练算法的能力,例如分布式DeepWalk和GraphSage。
- UniMP模型实现: 提供了UniMP及其优化变种(如结合APPNP和vnode smooth)的具体代码实现,用于提升节点分类性能。
技术原理
PGL框架的核心技术原理基于图神经网络的消息传递范式,该范式通过节点间的信息交换和聚合来学习节点表示。- 消息传递机制: 节点通过其邻居节点传递信息,并聚合这些信息以更新自身的特征表示。
- 异构图学习: 通过MetaPath采样和特定消息传递机制,有效处理包含多种节点类型和边类型的异构图。
- UniMP算法: UniMP模型是一种统一的消息传递架构,旨在结合不同GNN模型的优势,例如通过多层聚合和残差连接来增强信息传播。
- APPNP (Approximate Personalized Propagation of Neural Predictions): 是一种基于图传播的GNN模型,通过近似PageRank的传播机制,允许信息在图上进行远距离传播,同时保持计算效率。
- vnode smooth (虚拟节点平滑): 可能是一种通过引入虚拟节点或平滑技术来优化节点特征表示,减少过平滑(over-smoothing)现象,或增强信息在稀疏图中的传播。
- 分布式训练: 利用PaddlePaddle的分布式能力,将大规模图数据和模型参数分散到多个计算节点上,进行并行计算和模型训练。
应用场景
- 学术论文分类与推荐: 在OGBN-Arxiv数据集上的应用直接对应于对学术论文进行主题分类、引用关系分析和论文推荐。
- 社交网络分析: 用于用户关系预测、社区发现、用户兴趣标签推荐等。
- 知识图谱补全: 通过节点属性预测,推断知识图谱中缺失的实体属性或关系。
- 生物信息学: 如蛋白质结构预测、基因功能预测、药物-靶点相互作用预测等,涉及分子图或生物网络的分析。
- 推荐系统: 构建基于用户-物品交互图的推荐系统,预测用户对物品的偏好。
- 欺诈检测: 在交易网络或关系图中识别异常模式,检测欺诈行为。
- PGL-uniMP
- PGL/ogbexamples/nodeproppred/ogbn-arxiv/unimpappnpvnodesmooth at main · PaddlePaddle/PGL
------------------------------------------------------------
腾讯
简介
这些链接共同指向北京大学DAIR实验室在人工智能和机器学习系统领域的研究成果,包括一个可扩展的图学习工具包SGL,一个高性能的分布式深度学习训练系统Hetu,以及一个通用且高效的黑盒优化系统OpenBox。这些项目旨在解决大规模数据、复杂模型训练和优化中的挑战。核心功能
- SGL: 专注于可扩展的图神经网络学习,支持在超大规模图数据集上进行节点分类、节点聚类和链接预测等任务,并具备自动神经架构搜索能力。
- Hetu: 提供高性能分布式深度学习训练,能够有效处理具有万亿级参数的超大规模深度学习模型。
- OpenBox: 实现高效通用的黑盒优化,支持多目标优化、带约束优化、迁移学习、分布式并行化、多精度加速以及提前停止等多种高级功能。
技术原理
- SGL: 采用可伸缩图加速范式(SGAP)设计,确保其能扩展到包含数十亿节点和边的图数据,并能根据特定任务和预定义目标(如推理时间、内存消耗)自动选择最优的图神经架构。
- Hetu: 基于分布式系统架构,旨在优化超大规模深度学习模型在多计算节点环境下的训练效率、稳定性和易用性。
- OpenBox: 内部集成了多种黑盒优化算法和策略,包括但不限于基于贝叶斯优化的多目标/约束优化、利用历史经验的迁移学习、数据驱动的并行化方法、基于不同保真度数据的加速机制以及提前终止不佳试验的策略,其搜索空间定义基于ConfigSpace包。
应用场景
- SGL: 适用于处理现实世界中遇到的超大规模图数据,如社交网络分析、推荐系统、生物信息学中的蛋白质相互作用网络等,进行高效的图数据分析和建模。
- Hetu: 主要应用于需要训练巨型深度学习模型的场景,例如大型语言模型、多模态模型、推荐系统中的超大规模嵌入模型等,解决现有框架在参数规模上的瓶颈。
- OpenBox: 广泛应用于各种黑盒优化问题,如机器学习模型的自动超参数调优(AutoML)、A/B测试参数优化、实验设计、数据库系统参数优化、芯片设计、资源分配以及自动化学合成等。
- PKU-DAIR/SGL: A scalable graph learning toolkit for extremely large graph datasets. (WWW'22, 🏆 Best Student Paper Award)
- 河图Hetu:面向大规模自动化分布式训练的高性能分布式深度学习系统。
- OpenBox: 高效通用的黑盒优化系统 — OpenBox beta 文档
- [PKU-DAIR/开箱:通用高效的黑箱优化系统 [SIGKDD'21]。](https://github.com/PKU-DAIR/open-box)
------------------------------------------------------------
腾讯Plato
简介
Plato是腾讯开源的一款高性能分布式图计算框架,旨在解决亿级节点规模的超大规模图计算难题。它提供高效、可扩展的图数据处理能力,适用于复杂的大规模图结构分析。核心功能
- 超大规模图计算支持: 专为处理包含数十亿节点和边的超大规模图数据而设计,能够高效运行各类图算法。
- 分布式计算能力: 采用分布式架构,支持在多台服务器组成的集群中并行执行图计算任务,具备良好的横向扩展性。
- 高性能优化: 针对大规模图数据的特点,对计算和存储进行了深度优化,确保在复杂计算场景下的性能表现。
- 开源生态: 作为开源项目,便于社区贡献和集成,促进了图计算技术的发展和应用。
技术原理
Plato的核心技术原理围绕高性能和分布式展开:- 分布式图存储与计算模型: 采用先进的分布式图划分策略和高效的通信机制,将大规模图数据分散存储于集群各节点,并支持协同计算。
- 内存优化技术: 针对图数据特有的高内存占用特性,可能运用了压缩、流式处理或外部存储-内存协同等技术,优化内存使用效率。
- 高效的图算法实现: 对PageRank、K-core、Louvain等经典图算法进行了并行化和优化,以适应大规模并行计算环境。
- 容错与恢复机制: 内置机制应对节点故障,保证分布式计算过程的健壮性和数据一致性。
- 系统架构设计: 基于x86_64集群和Linux操作系统(如CentOS 7.0)进行开发和测试,确保其在主流服务器环境中的稳定运行和高性能表现。
应用场景
- 社交网络分析: 用于分析用户关系、社群发现、影响力传播等,例如支持微信规模的社交图谱分析。
- 推荐系统: 通过构建用户-物品或物品-物品关系图,进行协同过滤和个性化推荐。
- 金融风控与反欺诈: 分析交易关系、资金流向等复杂图结构,识别异常行为模式和欺诈团伙。
- 知识图谱构建与推理: 处理大规模知识实体间的关系,支持知识检索、智能问答和语义理解。
- 物联网与工业互联网: 分析设备连接关系、数据流向等,进行故障诊断和优化。
- Tencent/plato: 腾讯高性能分布式图计算框架Plato
- plato: 腾讯高性能图计算框架Plato
------------------------------------------------------------
1.图数据库&框架
- DB-Engines Ranking 图数据库排名
- TuGraph 高性能图数据库
- 图数据交互可视化分析框架 InteractiveGraph - 工具 - 开放知识图谱
- 图数据库-分布式图数据库-StellarDB-星环科技
- TigerGraph图数据库图分析图算法,加速高级分析,机器学习和AI人工智能 - TigerGraph
- AtlasGraph
- GraphScope documentation
------------------------------------------------------------
Amazon Neptune
简介
Amazon Neptune 是一款由 Amazon Web Services (AWS) 提供的快速、可靠且完全托管的图数据库服务。它旨在简化构建和运行处理高度关联数据集的应用程序,核心是一个专为图数据优化的、高性能的图数据库引擎。核心功能
- 完全托管服务: 负责硬件预置、软件修补、设置、配置和备份等数据库管理任务。
- 高性能图数据库: 针对存储数十亿个关系和毫秒级延迟的图查询进行了优化。
- 多图模型支持: 支持流行的属性图(Property Graph)模型和 W3C 的 RDF 模型。
- 多查询语言支持: 支持 Apache TinkerPop Gremlin、Neo4j 的 openCypher 以及 SPARQL 等查询语言。
- 高可用与数据安全: 提供读取副本、时间点恢复、持续备份到 Amazon S3、跨可用区复制、静态和传输中数据加密等特性。
- Neptune Analytics: 一个补充性的分析数据库引擎,能够快速分析内存中的大量图数据,发现洞察和趋势。
技术原理
Amazon Neptune 的核心是其目的构建的高性能图数据库引擎。该引擎专门用于高效存储和查询高度连接的数据,能够处理数十亿个关系并实现毫秒级查询延迟。它支持两种主要的图数据模型:属性图和RDF,并提供了对应的标准查询语言接口。Neptune 通过复制、备份和跨可用区部署来确保数据的高可用性,同时在静止和传输过程中对数据进行加密,保证了数据安全。Neptune Analytics 则利用内存计算能力,对现有图数据库或数据湖中的图数据集执行快速分析,运用图分析算法来获取洞察。应用场景
- 构建需要处理高度关联数据集的应用程序。
- 对现有图数据库或数据湖中存储的图数据集进行快速分析。
- 从大量图数据中获取洞察和发现趋势。
- 需要高可用性、可靠性和安全性的图数据库解决方案。
- Amazon Neptune 图形数据库_高性能图数据库引擎-AWS云服务
------------------------------------------------------------
Azure Cosmos DB微软
简介
Azure Cosmos DB是微软Azure提供的一款全球分布式、多模型、NoSQL数据库服务。它旨在为现代应用程序提供高可用性、低延迟的数据访问,并支持弹性扩展吞吐量和存储。作为首个提供全面服务级别协议(SLA)的全球分布式数据库服务,它保证了吞吐量、延迟、可用性和一致性。核心功能
- 全球分布式与多区域复制:数据可透明地复制到全球任意Azure区域,实现数据接近用户以降低延迟,并支持多主写入。
- 多模型与多API支持:支持键值、文档、图和列式等多种数据模型,并提供多种API接口,包括MongoDB API、NoSQL API、Gremlin API和Table API,方便不同类型应用接入。
- 弹性伸缩:能够独立地弹性扩展吞吐量和存储,满足大规模应用的需求。
- 低延迟与高吞吐:提供单毫秒级的读写延迟,并具备高吞吐能力,适用于高性能应用。
- 可编程一致性模型:提供强(Strong)、有界过期(Bounded-Staleness)、会话(Session)、一致前缀(Consistent Prefix)和最终(Eventual)五种可配置的一致性级别,以平衡一致性、可用性和性能。
技术原理
Azure Cosmos DB基于其分布式数据库架构,通过以下核心技术原理实现其特性:- 水平分区 (Horizontal Sharding):数据自动在物理分区(partition)之间进行水平分布,以支持大规模的数据存储和吞吐。
- 地理空间复制 (Geo-Spatial Replication):利用Azure全球数据中心网络,将数据透明且异步地复制到多个地理区域,实现高可用性和灾难恢复。
- 索引引擎 (Indexing Engine):内置高效的索引引擎,自动索引所有数据,无需手动管理索引,从而在各种查询负载下实现快速查询。
- 原子记录写入 (Atomic Record Writes):确保在分布式环境中,对单个记录的写入操作是原子性的,保持数据完整性。
- 一致性协议 (Consistency Protocols):通过可配置的一致性协议(如Paxos或Quorum-based协议的变体),允许用户根据业务需求在数据新鲜度、性能和可用性之间进行权衡。
应用场景
- 物联网 (IoT) 和实时分析:处理来自传感器和设备的海量、高吞吐数据,并进行实时数据摄取和分析。
- 零售和营销:用于构建产品目录、用户个性化推荐系统,支持高并发访问和弹性数据模型。
- 游戏:存储玩家数据、游戏状态、排行榜等,提供全球低延迟访问和高可用性。
- Web、移动和微服务应用:作为后端数据库,为需要全球可扩展性、低延迟响应和灵活架构的现代云原生应用提供支持。
- 金融服务:处理交易数据、用户档案,满足高可用性和严格的数据一致性要求。
- Azure Cosmos DB微软
------------------------------------------------------------
DGraph
简介
Dgraph是一款高性能、分布式的开源图数据库,专为大规模知识图谱和实时用例设计。它以其对GraphQL的原生支持和在分布式环境中最小化网络调用的高并发特性而闻名。核心功能
- 分布式图数据存储与查询: Dgraph提供分布式架构来存储和高效查询海量图数据,支持横向扩展,能够处理PB级规模的数据。
- 原生GraphQL支持: 内置GraphQL API,简化了数据模型定义、查询和修改操作,使得开发者能够以声明式方式与图数据交互。
- 实时数据处理能力: 能够支持高吞吐量的实时写入和查询,适用于需要即时响应的应用场景。
- 构建知识图谱: 作为专业的图数据库,它非常适合构建复杂的知识图谱,管理实体间多样的关系。
- 高并发与容错性: 优化了分布式环境下的并发控制和数据复制机制,确保系统在高负载下的性能和数据的可用性与一致性。
技术原理
Dgraph的技术实现基于以下核心原理:- LSM树(Log-Structured Merge-tree)存储引擎: 采用类LSM树的结构优化数据写入性能和存储效率,适用于高写入负载场景。
- 分布式共识协议: 利用类似Raft或Paxos的分布式共识算法(如自研的BadgerDB底层存储引擎),确保数据在集群中的强一致性和高可用性。
- DQL (Dgraph Query Language) / GraphQL: Dgraph支持其专有的DQL以及业界标准的GraphQL作为查询语言,底层将查询转换为高效的图遍历操作。
- 智能索引与查询优化: 自动管理多种索引类型(如字符串、数值、地理空间索引),并通过查询优化器提升查询性能。
- 事务与快照隔离: 提供ACID事务支持,并实现快照隔离级别,保证数据操作的隔离性和一致性。
- Predicate Sharding: 根据谓词(属性名)进行数据分片,确保相关数据尽可能地存储在一起,减少跨网络查询。
应用场景
- 社交网络: 用于存储和分析用户关系、好友推荐、内容扩散等。
- 知识图谱构建与智能搜索: 构建企业知识库、医疗诊断系统、产品推荐图谱,实现语义搜索和智能问答。
- 推荐系统: 基于用户行为、兴趣图谱和物品关联进行个性化内容或商品推荐。
- 身份和访问管理: 管理复杂的权限和角色关系,实现细粒度的访问控制策略。
- 欺诈检测: 通过分析账户、交易、设备等实体间的复杂关联,快速识别异常模式和欺诈行为。
- 供应链和物流追踪: 建模产品流向、供应商网络、库存信息,优化供应链效率和可追溯性。
- Dgraph | GraphQL Cloud Platform – GraphQL . Javascript . Distributed Graph Engine | Deploy a Production Ready GraphQL Backend in Minutes
- Dgraph - 墨天轮百科
------------------------------------------------------------
HugeGraph
简介
Apache HugeGraph是一个易于使用、高效且通用的开源图数据库系统。它实现了Apache TinkerPop3框架并完全兼容Gremlin查询语言,提供完整的工具链组件,旨在帮助用户轻松构建基于图数据库的应用和产品。HugeGraph支持数十亿顶点和边的快速导入,并提供毫秒级的关系查询能力(OLTP)。该项目目前是Apache软件基金会的一个孵化项目。核心功能
- 高性能与可伸缩性: 能够高效存储和查询数十亿顶点和边,具备出色的联机事务处理(OLTP)能力,提供毫秒级关系查询。
- TinkerPop兼容性: 完全兼容Apache TinkerPop3框架,支持Gremlin图遍历语言进行复杂图查询。
- 分布式图计算: HugeGraph-Computer提供分布式图处理能力(OLAP),实现复杂图算法的批量计算。
- 丰富的工具链: 包含Hubble(可视化分析平台)、Loader(数据导入工具)、Client(客户端)等,覆盖数据建模、导入、分析和管理全流程。
- 后端存储灵活: 支持多种存储后端。
技术原理
HugeGraph采用分层架构,主要包括应用层、图引擎层和存储层。- 图引擎层: 实现TinkerPop3规范和Gremlin语言解析,负责图数据的核心操作和查询优化。
- 存储层: 采用可插拔设计,支持多种存储后端,确保数据持久化和高可用性。
- HugeGraph-Computer: 作为OLAP组件,基于Pregel模型实现分布式图计算,可在Kubernetes等分布式框架上运行,用于执行PageRank、最短路径等大规模图算法。
- HugeGraph-Toolchain: 集成多种实用工具,如HugeGraph-Hubble(可视化界面和分析)、HugeGraph-Loader(高效数据导入)和HugeGraph-Client(多种语言客户端),简化开发和管理。其内部核心组件如HugeGraph-Server负责核心业务逻辑和API服务。
应用场景
- 社交网络分析: 分析用户关系、社区发现、影响力传播。
- 反欺诈: 识别复杂的欺诈团伙和异常交易模式。
- 推荐系统: 基于用户行为和物品关联生成个性化推荐。
- 知识图谱: 构建和查询实体之间的复杂语义关系。
- 风险控制: 评估信用风险、识别关联风险点。
- IT运维: 分析设备依赖关系、故障溯源。
- HugeGraph 官网
- HugeGraph:支持百亿以上数据、高性能和可扩展性的图数据库
- Hugegraph图计算
- HugeGraph 工具链)
------------------------------------------------------------
JanusGraph
简介
JanusGraph是一个可伸缩的开源图数据库,专为存储和查询包含数十亿顶点和边的图数据而优化,可在多机集群上分布式部署。它是一款开源的事务型数据库,同时支持在线事务处理(OLTP)和通过Apache Spark进行全球图分析(OLAP),是处理大规模、复杂连接数据场景的理想选择。核心功能
- 超大规模图数据管理: 能够高效存储和查询包含数千亿顶点和边的超大规模图数据。
- 分布式与高可伸缩性: 支持在多机集群上进行分布式部署,实现数据的水平扩展和高可用性。
- 实时事务处理 (OLTP): 支持数千并发用户执行复杂的图遍历操作,提供实时数据一致性。
- 全球图分析 (OLAP): 集成Apache Spark,支持大规模离线图数据分析和复杂查询。
- 灵活的存储后端支持: 可与多种第三方存储后端无缝集成,包括Apache Cassandra、Apache HBase、Google Cloud Bigtable、Oracle BerkeleyDB、ScyllaDB等。
- 强大的图遍历语言: 基于Apache TinkerPop框架,使用Gremlin作为标准的图遍历语言。
- 丰富的可视化工具集成: 支持与多种图可视化工具(如Arcade Analytics、Cytoscape、Gephi plugin等)对接。
技术原理
JanusGraph的架构基于Apache TinkerPop图计算框架,实现了高度模块化和可插拔性。其核心技术原理包括:- 属性图模型: 内部采用灵活的属性图模型来表示数据,其中节点和边都可以拥有任意数量的属性。
- 分布式存储层: 通过抽象层与底层分布式数据库解耦,允许用户选择高性能、高可靠性的存储后端(如Cassandra、HBase等),实现图数据在集群中的分布式存储和管理。
- Gremlin图遍历引擎: 采用Apache TinkerPop的Gremlin作为核心图查询语言,提供强大的实时图遍历和操作能力,支持复杂的路径查找、模式匹配等。
- 外部索引集成: 支持集成外部搜索索引(如Elasticsearch、Apache Solr),以加速基于属性值的复杂查询。
- OLTP与OLAP协同: 通过TinkerPop Gremlin Server提供OLTP能力,同时与Apache Spark GraphFrames等OLAP引擎深度集成,实现对大规模图数据的批处理和分析。
应用场景
- 社交网络分析: 用于用户关系管理、社交圈发现、影响力分析和精准营销。
- 推荐系统: 基于用户-物品交互、物品-物品关联等复杂关系生成个性化推荐。
- 知识图谱: 构建和查询包含实体、概念及其相互关系的知识网络,支持智能问答、语义搜索和推理。
- 欺诈检测与安全: 通过分析交易、账户、网络连接等关系图谱中的异常模式,识别潜在的欺诈行为和网络攻击。
- 供应链优化: 管理复杂的供应链网络,优化物流路径,追踪货物来源和去向。
- 生物信息学: 分析基因调控网络、蛋白质相互作用网络等复杂的生物分子关系。
- JanusGraph(一)--简介 - 简书
- JanusGraph
------------------------------------------------------------
Neo4j
简介
Neo4j是一个领先的、开源的图数据库管理系统(GDBMS),旨在高效地管理和查询高度关联的数据。它是一个高性能、原生且无模式(NoSQL)的图存储,帮助组织通过揭示人、流程和数据之间的关系来理解其复杂数据。核心功能
- 图数据存储与管理: 提供专业的图模型来存储和管理复杂的关系数据。
- 高性能查询: 优化了对高度连接数据的查询性能,支持快速遍历图结构。
- 数据可视化: 能够直观地展示数据间的复杂关系。
- 可扩展性: 具备高扩展性,能够处理大规模数据集和并发操作。
- ACID事务支持: 提供企业级的ACID事务特性,确保数据一致性和可靠性。
- 多语言驱动支持: 提供多种编程语言的驱动,方便开发者集成。
技术原理
Neo4j基于原生图存储架构,其核心是一个属性图模型(Property Graph Model)。在这个模型中,数据以节点(Nodes)、关系(Relationships)和属性(Properties)的形式组织。- 节点: 表示实体,可以包含任意数量的键值对属性。
- 关系: 连接节点,具有方向性,也包含键值对属性,描述了节点之间的关联类型。
- 属性: 存储在节点和关系上的键值对数据。
Neo4j使用专门的图算法来高效地遍历和查询数据,例如最短路径、社区检测和中心性分析等。其查询语言是Cypher,一种声明式的图查询语言,类似于SQL,但专为图数据设计。底层实现通常基于Java技术,提供了高度优化的磁盘布局和内存管理,以实现高性能的读写操作。其无模式特性意味着数据库不强制预定义结构,允许数据模型灵活演变。
应用场景
- 推荐系统: 分析用户与产品、用户与用户之间的关系,提供个性化推荐。
- 欺诈检测: 通过识别异常连接模式和关系,发现金融交易、社交网络中的欺诈行为。
- 网络和IT运营: 映射和管理复杂的IT基础设施、网络拓扑和依赖关系,以便故障排除和性能优化。
- 知识图谱: 构建和查询包含实体及其之间语义关系的知识图谱。
- 社交网络: 分析社交关系,实现好友推荐、影响力分析和社区发现。
- 主数据管理(MDM): 整合来自不同系统的数据,建立企业级统一视图。
- Neo4j Graph Data Platform | Graph Database Management System
- Neo4j Download Center - Neo4j Graph Data Platform
- neo4j基本使用及其Python语言操作
- 使用Python在Neo4j中创建图数据库
- python操作neo4j秃头小叶的博客-CSDN博客python操作neo4j
- Neo4j CQL - CREATE命令w3cschool
------------------------------------------------------------
SAP 企业 OrientDB
简介
OrientDB 是一款开源的 NoSQL 数据库管理系统,由 Java 语言编写。它以其多模型特性而闻名,是首个将图形数据库的强大功能与文档数据库的灵活性相结合的数据库,同时支持对象、键值等多种存储模型。OrientDB 定位于高性能、可扩展的运营数据库解决方案。核心功能
- 多模型支持: 在一个产品中同时支持图、文档、反应式、全文检索和地理空间模型。
- 分布式架构: 可实现多主(Multi-Master)分布式运行,提供高可用性和可扩展性。
- 查询语言: 支持扩展的 SQL 查询语言,并兼容 Gremlin 图遍历语言。
- 事务与一致性: 支持 ACID 事务,确保数据操作的原子性、一致性、隔离性和持久性。
- 索引功能: 提供全文索引和快速的链接添加/删除能力。
- 安全管理: 具备基于用户和角色的强大安全配置文件系统。
- 模式灵活性: 支持无模式(schema-less)、全模式(schema-full)和混合模式(schema-mixed)。
技术原理
OrientDB 的核心技术原理在于其创新的多模型引擎。它将不同数据模型的数据统一存储,并通过直接连接记录的方式管理关系,类似于图数据库中的边。- 关系管理: 像图数据库一样,通过记录间的直接连接来管理关系,支持一对多关系的高效处理。
- 数据模型融合: 内部机制允许在同一份数据上应用图、文档等多种访问范式。
- 存储实现: 底层使用 Java 实现,提供高性能的数据读写能力。
- 事务机制: 采用 ACID 事务保证数据完整性,即使在分布式环境中也能提供数据一致性保障。
- 查询优化: 通过优化的查询引擎,支持 SQL 和 Gremlin 进行复杂的数据查询和遍历。
应用场景
- 复杂关系管理: 适用于需要高效处理复杂、多变实体关系的应用,如社交网络、推荐系统、知识图谱等。
- 内容管理系统: 因其文档模型的灵活性,可用于存储和管理非结构化或半结构化内容。
- 实时数据分析: 结合其反应式和分布式特性,可用于需要实时处理和分析大量数据的场景。
- 物联网(IoT): 能够有效存储和关联设备数据,处理设备间的复杂连接关系。
- 企业级应用: 适用于需要高性能、高可扩展性且数据模型可能多样化的企业级系统。
- 主页 | OrientDB社区版
------------------------------------------------------------
图数据库Nebula Graph
简介
NebulaGraph 是一款高性能、分布式、开源的图数据库,专为管理和分析超大规模图数据设计。它能够处理数百亿个顶点和数万亿条边,并提供毫秒级的查询延迟。NebulaGraph 采用 Apache 2.0 许可证,并提供丰富的数据可视化工具。核心功能
- 超大规模数据管理: 能够存储和处理数十亿个数据点和数万亿条关系连接。
- 高性能实时查询: 提供毫秒级查询响应,适用于实时数据分析场景。
- 分布式架构: 支持水平扩展,确保高可用性和处理能力。
- 灵活的索引机制: 允许为标签或边类型属性创建多个索引,优化查询性能。
- 丰富的数据操作: 支持图空间的创建、标签和边的定义及查询。
- 安全与合规: 提供基于角色的访问控制(ACL)功能。
- 与LLM集成: 支持基于知识图谱的检索增强生成(Graph RAG)。
技术原理
NebulaGraph 采用共享无(shared-nothing)的分布式架构,以 C++ 语言编写。其存储层基于 Raft 协议实现多副本一致性,并默认使用 RocksDB 作为底层存储引擎,但也支持多种后端存储。数据和索引被存储在同一分区中,并采用优化后的数据结构以实现快速查询扫描。此外,它内置索引优化器,能高效处理查询语句中的WHERE 子句。
应用场景
- 风险控制与反欺诈: 识别金融欺诈、信贷风险等复杂关系网络。
- 实时推荐系统: 基于用户行为和商品关联进行实时个性化推荐。
- 社交网络分析: 洞察用户关系、社区结构及信息传播路径。
- 知识图谱与AI: 构建和利用大规模知识图谱,支持智能问答、语义搜索等AI应用,尤其是在与大型语言模型(LLM)结合进行检索增强生成(RAG)方面。
- 网络安全: 分析网络攻击路径、识别异常行为。
- 供应链优化: 追溯产品流向,优化物流效率。
- 企业级数据发现: 满足大型企业对海量数据的深度信息挖掘需求。
- NebulaGraph支持向量组合查询
- NebulaGraph Database 手册
- NebulaGraph 图数据库在线演示
- 文章标签-NebulaGraph 图数据库
- 文章标签-NebulaGraph 图数据库
- NebulaGraph-开源分布式图数据库,万亿级数据,毫秒级延时
- nebula/README-CN.md at master · vesoft-inc/nebula
- 公司案例 NebulaGraph Database
- 关于 NebulaGraph Database
- NebulaGraph Analytics - NebulaGraph Database 手册
- 生态工具概览 - NebulaGraph Database 手册
- 使用场景 NebulaGraph Database
- 安装下载 NebulaGraph Database
- 企业版 NebulaGraph Database
- 开源图数据库 Nebula Graph - 工具 - 开放知识图谱
------------------------------------------------------------