3.0 KiB
3.0 KiB
AutoSchemaKG 思路在 new2 中的落地方式
参考:
- Paper: https://arxiv.org/abs/2505.23628
- GitHub: https://github.com/HKUST-KnowComp/AutoSchemaKG
- 代码中可重点参考:
atlas_rag/kg_construction/triple_extraction.pyatlas_rag/kg_construction/concept_generation.py
不能照搬的部分
AutoSchemaKG 偏开放域文本 KG,目标是无需预定义 schema 自动构建 ATLAS。当前项目是城市知识图谱,已经有高德 POI 这种结构化、高可信、带坐标的数据源。因此 new2 不应完全抛弃领域锚点,而应采用混合架构:
结构化高可信数据:作为 Anchor Layer
非结构化多源数据:作为 Evidence Layer
LLM 抽取:产出 Candidate Knowledge
Schema 自动演化:只生成 Proposal,不直接改生产图谱
要吸收的核心思想
AutoSchemaKG 的关键不是“多抽几个三元组”,而是:
- 抽取阶段覆盖实体、事件、实体关系、事件关系。
- 把 Relation 本身也作为可概念化对象。
- 通过 Conceptualization 给实例和关系建立抽象语义桥。
- Schema 不是一次写死,而是由数据持续诱导与修正。
对应到 new2:
stage_1: Entity-Entity Relation
stage_2: Entity-Event Participation / HappensAt
stage_3: Event-Event Relation
stage_4: Concept Induction
stage_5: Schema Proposal & Review
new2 的统一抽取输出
每次抽取必须输出:
{
"entities": [],
"events": [],
"concepts": [],
"relations": [],
"statements": [],
"schema_proposals": [],
"evidence_links": []
}
其中:
entities:现实对象,例如地点、机构、人物、设施。events:有时间锚点或动作过程的事实。concepts:抽象类别、主题、场景、标签、业务语义。relations:关系类型定义或候选关系。statements:带主语、谓词、宾语、证据、置信度的候选事实。schema_proposals:模型发现的新类型、新字段、新关系建议。
Schema Auto 更新原则
模型不能直接修改正式 schema。正确流程是:
抽取发现新类型/字段/关系
-> 写入 schema_proposals
-> 合并相似 proposal
-> 统计证据数量、来源数量、置信度
-> 人工审核
-> 生成 schema version
-> 后续抽取使用新版本 schema
城市领域初始 Seed Schema
城市 KG 先给一个轻量 seed,不要过度建模:
Entity:
Place, Area, Organization, Person, Facility, Product, Route
Event:
OpeningEvent, RenovationEvent, FestivalEvent, HistoricalEvent,
AwardEvent, OperationChangeEvent, IncidentEvent
Concept:
NightTour, LocalFood, HistoricalLandmark, BusinessDistrict,
FamilyFriendly, FirstTimerFriendly, CulturalTourism, TransitConvenient
Relation:
LOCATED_IN, NEAR, IN_CELL, HAS_CONCEPT, HAS_EVENT, SUPPORTED_BY,
OPERATED_BY, HAS_FACILITY, PARTICIPATED_BY, BEFORE, AFTER, RELATED_TO
后续业务迁移时,只替换 seed schema 与 prompt,不替换 KG 内核。