⌂ eff0rtchung.kr

Ontology Wiki / docs / memory-kg-boundary

메모리 계층과 Knowledge Graph

메모리를 여러 층으로 나누는 이유와 내재화되지 않은 정보를 Knowledge Graph로 다루는 감각입니다.

memoryknowledge graphproteintaxonomy

메모리를 한 덩어리로 두면 생기는 문제

Agent가 기억을 가진다고 할 때, 그것이 단순히 과거 대화를 저장한다는 뜻이면 금방 막힙니다. 원문 로그, 사건 기록, 일반 지식, 정책, 절차, 자기반성은 쓰임새가 다릅니다. 모두 같은 벡터 저장소에 넣고 유사도만으로 꺼내면, 오래된 사용자 말이 최신 공식 정책보다 강하게 튀어나오는 일이 생깁니다.

그래서 Raw, Episodic, Semantic, Normative, Procedural, Metacognitive memory를 나눕니다. Raw는 원본 증거, Episodic은 특정 사건, Semantic은 안정적 개념, Normative는 지켜야 할 규칙, Procedural은 실행 절차, Metacognitive는 자기 오류와 개선 규칙입니다.

Knowledge Graph의 위치

내재화되지 않은 정보 중 관계가 중요한 것은 Knowledge Graph로 다루기 좋습니다. 예를 들어 공개 단백질 데이터셋을 생각해 봅시다. Hugging Face에도 protein sequence, protein language model, biomedical relation extraction 관련 공개 데이터셋이 계속 올라옵니다. 시작점은 Hugging Face protein datasets처럼 공개 카탈로그를 훑는 것만으로도 충분합니다.

단백질 P53, 유전자 TP53, 특정 변이, 암종, 실험 논문, 결합 단백질, 경로 정보는 서로 연결됩니다. 이 관계는 단순 문단 요약보다 graph로 볼 때 더 안정적입니다.

노드는 Protein, Gene, Variant, Disease, Publication, Assay, Pathway가 될 수 있습니다. 간선은 encodes, mutates-to, associated-with, inhibits, activates, supported-by 같은 관계가 됩니다. Agent가 질문을 받으면 단백질 이름을 entity로 잡고, 어떤 논문이 어떤 관계를 지지하는지 따라가며 근거를 모을 수 있습니다.

Lexical에서 Metacognitive까지

Lexical memory는 표기의 층입니다. P53, TP53, tumor protein p53, Trp53처럼 사람이 보기엔 비슷하지만 데이터베이스와 논문에서는 다르게 등장하는 이름들을 묶습니다. 이 층이 약하면 agent는 같은 대상을 다른 대상으로 보거나, 다른 대상을 같은 대상으로 묶습니다.

Relational memory는 대상 사이의 관계를 다룹니다. 단백질이 어떤 pathway에 속하는지, 어떤 변이가 어떤 질병과 관련되는지, 어떤 논문이 어떤 finding을 지지하는지를 저장합니다. 이때 relation은 늘 방향과 출처를 가져야 합니다. A가 B를 지지하는 것과 B가 A를 지지하는 것은 같지 않습니다.

Procedural memory는 확인 순서를 기억합니다. 먼저 alias를 풀고, 그 다음 공식 DB를 보고, 그 다음 논문 provenance를 붙이고, 마지막으로 임상 적용 제한을 확인하는 식입니다. Relational 지식이 많아도 절차가 없으면 agent는 매번 새로 헤맵니다.

Ontological memory는 이 대상들이 어떤 타입인지 정하고, Normative memory는 데이터 라이선스와 임상 적용 제한을 봅니다. Metacognitive memory는 alias를 잘못 풀었는지, 오래된 논문만 믿었는지 같은 실패를 기억합니다. 승급 관계는 대충 이렇습니다. Lexical 정리가 Relational 정리로 이어지고, 반복되는 Relational 확인은 Procedural rule이 되며, 그 절차가 실패를 줄이면 Metacognitive memory가 다시 절차를 고칩니다.

개념 설명

Agent가 다루는 기본 개념은 Entity, Event, State, Role, Claim, Provenance입니다. Entity는 대상이고, Event는 시간에 묶인 사건이며, State는 어느 시점의 상태입니다. Role은 같은 entity가 상황에 따라 맡는 자리입니다. Claim은 누군가가 말한 주장이고, Provenance는 그 주장이 어디서 왔는지입니다.

Subclass에서 Constraint가 상속된다는 감각도 중요합니다. PersonalData가 SensitiveData의 subclass라면, SensitiveData에 붙은 공개 제한과 로그 제한은 PersonalData에도 내려와야 합니다. Taxonomy를 관리할 때는 TMI를 아무렇게나 버리면 안 됩니다. 우선순위가 높은 개념일수록 Rigidity, Identity, Unity, Dependence, Hierarchy를 더 세세하게 봐야 합니다.

Taxonomy

  • memory layer taxonomyRaw, Episodic, Semantic, Normative, Procedural, Metacognitive memory를 서로 다른 저장층으로 둡니다.
  • graph object taxonomyProtein, Gene, Variant, Disease, Evidence, Publication, Assay, Pathway 같은 노드를 분리합니다.
  • relation taxonomybinds-to, expressed-in, inhibits, causes, associated-with, supported-by, regulated-by 관계를 나눕니다.
  • internalization boundary taxonomy내재화할 습관, retrieval할 최신 사실, KG로 유지할 관계, 인간이 검토할 규칙을 구분합니다.
  • normative taxonomy데이터 라이선스, 연구윤리, 임상 적용 제한, 재사용 조건을 KG 속성으로 둡니다.
  • lexical taxonomyalias, 약어, 번역명, 공식명, 오타, 언어별 표기를 같은 entity 후보로 관리합니다.
  • entity-event taxonomy시간 없는 entity와 시간에 묶인 event를 분리해 상태 변화를 추적합니다.
  • state taxonomy관찰 시점의 값, 만료 가능한 값, 계산된 값, 검증된 값을 나눕니다.
  • claim-provenance taxonomyclaim, source, checkedAt, license, confidence를 함께 저장합니다.
  • ontological quality taxonomyRigidity, Identity, Unity, Dependence, Hierarchy를 중요한 class에 우선 적용합니다.