사고의 위상학: 임베딩 공간에서 본 Obsidian
노트 15,800개. 청크 49,746개. 청크 하나가 곧 256차원 벡터입니다.7 전체 데이터셋에 UMAP을 돌려 3차원으로 투영한 뒤, 화면 위에서 결과물을 천천히 회전시켜 봤습니다. 제 두 번째 뇌에는 형태가 있었고, 그 형태는 노트 자체가 한 번도 알려주지 않았던 사실을 드러냈습니다. 제 지적 작업은 세 개의 밀집된 허브(Claude Code, 디자인 시스템, AI 연구)를 중심으로 뭉쳐 있고, 그 허브들은 교차 지점에 놓인 노트들이 만든 가느다란 다리로 이어져 있으며, 그 바깥을 어디에도 연결되지 않은 고아 신호들의 성긴 후광이 감싸고 있습니다.
지식의 형태는 내가 어디에서 사고하는지, 어디에서 사고를 회피하는지, 그리고 어디에서 아이디어끼리 충돌할 여지가 있는지를 알려줍니다. 에이전트의 행동을 구조화하는 맥락 설계는 인간의 지식도 똑같이 구조화합니다.
요약: Obsidian 노트 15,800개를 256차원 임베딩 공간에 투영하면 중앙집중형, 분산형, 완전분산형이라는 세 가지 지식 위상 구조가 드러나며, 각각 뚜렷이 다른 실패 양상을 지닙니다. 군집 사이를 잇는 브리지 노트가 가장 참신한 통찰을 만들어내고, 상전이 연구는 부주의한 정리 작업이 어느 날카로운 임계점에서 지식 구조를 무너뜨릴 수 있음을 보여줍니다.
핵심 요약
임베딩 공간은 지식 베이스에 공간적 구조를 부여하고, 그 구조는 지적 위상을 드러냅니다. Kat(@poetengineer__)은 Obsidian 보관함에 적용할 수 있는 세 가지 위상 구조를 보여줬습니다. 하나의 핵심 아이디어가 모든 것을 잇는 중앙집중형, 주제별 허브가 군집을 이루는 분산형, 그리고 아이디어 사이의 연결선에 의미 관계를 이름표로 붙인 완전분산형입니다.1 파일 15,800개, 청크 49,746개인 제 보관함은 세 개의 지배적 군집을 지닌 분산형 위상을 보입니다. Pesce 외 연구진이 신경망 가지치기의 상전이를 다룬 연구는, 단순화(정리, 보관, 필터링)가 언제 지식 구조의 기능을 망가뜨리는 임계점을 넘는지 이해할 수학적 틀을 제공합니다.2 아래에서는 임베딩이 실제로 포착하는 것, 실제 보관함 데이터로 본 세 가지 지식 위상, 자신의 위상을 진단하는 방법, 그리고 제 실제 보관함으로 만든 인터랙티브 탐색기를 다룹니다.
임베딩이 실제로 포착하는 것
텍스트 임베딩은 하나의 텍스트 단락을 숫자 목록으로 바꿉니다. 토큰화 시각화 도구 글에서는 텍스트가 토큰이 되는 과정을 다뤘습니다. 임베딩은 여기서 한 걸음 더 나아갑니다. 토큰이 고차원 공간의 좌표가 되고, 그 공간에서는 거리가 곧 의미에 대응합니다.
“맥락 주입을 위한 Claude Code 훅”을 다루는 두 단락은 임베딩 공간에서 가까이 놓입니다. “Claude Code 훅”을 다루는 단락과 “iOS SwiftUI 내비게이션”을 다루는 단락은 멀리 떨어집니다. 이 거리는 키워드가 겹치는 정도가 아닙니다. 두 단락이 같은 개념을 이야기한다면 단어가 하나도 겹치지 않아도 서로 가까이 놓일 수 있습니다. 반대로 “시스템이 데이터를 처리한다” 같은 문장처럼 단어를 많이 공유하더라도 주변 맥락이 다르면 멀리 떨어집니다.
제 보관함은 Model2Vec의 potion-base-8M 모델을 씁니다. 파라미터 760만 개로 256차원 임베딩을 만들어내는 모델입니다.3 더 큰 문장 트랜스포머(bge-base-en-v1.5)에서 증류한 모델로, 정적 모델로 동작하면서도 all-MiniLM-L6-v2 성능의 약 90%를 냅니다. CPU와 GPU 양쪽에서 속도는 몇 자릿수 더 빠릅니다. 제 보관함의 청크 49,746개는 각각 256차원 공간의 한 점이 됩니다.
256차원은 그대로 눈으로 볼 수가 없습니다. UMAP 같은 차원 축소 기법은 국소 이웃 관계를 보존하면서 고차원 구조를 2차원이나 3차원으로 투영합니다.4 256차원에서 가까웠던 점들은 3차원에서도 가까이 남습니다. 전역 구조는 근사치에 그치지만, 군집은 실재합니다.
지식의 세 가지 위상 구조
Kat은 Obsidian 노트 임베딩을 탐구하면서 뚜렷이 구분되는 세 가지 지식 위상 구조를 찾아냈습니다.1 각 위상은 서로 다른 지적 구조를 반영하고, 저마다 다른 실패 양상을 안고 있습니다.
중앙집중형: 하나의 핵심 아이디어가 전부를 잇는다
중앙집중형 위상에서는 대부분의 노트가 하나의 지배적 주제를 통해 연결됩니다. 임베딩 공간에는 중심에 밀집된 군집 하나가 있고, 거기서 가느다란 덩굴손이 바깥으로 뻗어 나갑니다. React만 파고들어 글을 쓰는 개발자라면 이 위상이 나타납니다. React가 허브이고, 테스트·상태 관리·배포·도구에 관한 모든 노트가 React를 거쳐 연결됩니다.
강점: 중심 영역에서의 깊은 전문성. 대부분의 질의가 같은 이웃 영역에 떨어지기 때문에 검색이 잘 작동합니다.
실패 양상: 취약함. 중심 주제가 무의미해지면(직무 전환, 기술의 수명 종료) 지식 구조 전체가 조직 원리를 잃습니다. 중심과의 관계 속에서만 뜻이 통하던 노트들은 고아가 됩니다.
분산형: 주제별 허브 군집
분산형 위상에서는 노트가 여러 개의 뚜렷한 군집을 이루고, 그 군집들이 브리지 노트로 이어집니다. 제 보관함이 이 위상에 해당하며, 세 개의 지배적 허브가 있습니다.
| 군집 | 청크 | 전체 대비 비율 | 주요 주제 |
|---|---|---|---|
| AI & ML | 약 13,100 | 26% | Claude Code, 에이전트 아키텍처, LLM 연구 |
| 디자인 | 약 7,200 | 14% | UI 시스템, 타이포그래피, 색채 과학, 시각 디자인 |
| 개발 | 약 5,100 | 10% | FastAPI, SwiftUI, 웹 엔지니어링, 데이터베이스 |
| 받은 편지함(미처리) | 약 13,700 | 28% | 원본 신호, 분류되지 않은 수집물 |
나머지 22%는 영감, 생산성, 과학, 그리고 더 작은 범주들로 흩어져 있습니다.
강점: 회복력. 군집 하나를 잃어도 나머지가 무너지지 않습니다. 군집과 군집이 맞닿는 경계에서 학제 간 연결이 생겨나고, 여기서 가장 참신한 통찰이 나옵니다.
실패 양상: 파편화. 군집 사이를 잇는 브리지 노트가 너무 얇으면 군집은 지적 사일로가 됩니다. 제 보관함에는 디자인과 Claude Code 사이에 얇은 다리가 하나 있지만(에이전트 UI 설계, 프롬프트 인터페이스 패턴에 관한 노트들), 디자인과 순수 개발 사이에는 다리가 거의 없습니다. 백엔드 아키텍처 노트가 시각 디자인과 이어지는 일이 드물기 때문입니다. 이 틈이 곧 사각지대입니다. 저는 디자인을 생각하고, 또한 백엔드 엔지니어링을 생각하지만, 두 가지를 함께 생각하는 일은 드뭅니다.
완전분산형: 관계로 이름 붙인 연결선
완전분산형 위상에서는 노트 사이의 연결이 아이디어끼리 어떻게 관련되는지를 설명하는 의미 이름표를 함께 지닙니다. Kat은 LLM을 써서 이웃한 노트 사이의 연결선 이름표를 생성했습니다.1 익명의 근접성 대신, 연결 하나하나에 설명이 붙습니다. “반박한다”, “확장한다”, “근거를 제공한다”, “다른 영역에 적용된다” 같은 식입니다.
강점: 탐색 가능성. 완전분산형 위상은 “무엇이 관련되어 있는가?”만이 아니라 “어떻게 관련되어 있는가?”에도 답합니다. 이름표가 붙으면 더 높은 차원의 추론이 가능해집니다. 어떤 주장을 언급한 노트가 아니라 그 주장을 반박하는 노트를 찾아낼 수 있습니다.
실패 양상: 비용. 모든 연결 쌍에 이름표를 생성하려면 비용이 제곱으로 늘어납니다. 제 보관함의 청크 49,746개라면, 빠짐없이 이름표를 붙이는 데 LLM 호출이 약 12억 번 필요합니다. 실제 구현에서는 유사도 임계값 안에 드는 연결선에만 이름표를 붙입니다.
상전이: 단순화가 구조를 무너뜨리는 지점
Pesce, He, Caldarelli는 신경망 가지치기의 상전이를 연구해 날카로운 임계점을 발견했습니다. 신경망은 “협력적이고 기능하는 상태에서 성능이 붕괴한 무질서 상태로의 전이”를 보인다는 것입니다.2 임계점 아래에서는 연결을 제거해도 기능이 거의 영향을 받지 않습니다. 임계점에 이르면 기능이 급격히 무너집니다. 이 전이는 2차 임계 현상과 일치하는 척도 법칙을 따르는데, 얼음이 물로 녹는 과정을 기술하는 바로 그 수학입니다.
지식 정리 작업에도 그대로 맞아떨어집니다. 제 신호 점수화 파이프라인6은 관련성 임계값을 적용해 받은 편지함을 노트 14,771개에서 5,886개로 줄였습니다. 에이전트 기억이 가치를 축적하게 만드는 복리 맥락의 원리가 여기에도 똑같이 적용됩니다. 노트 하나의 값어치는 내용만이 아니라 그 노트가 맺은 연결에서 나옵니다. 이 감축으로 검색 품질은 좋아졌습니다. 관련성 낮은 결과가 줄고, 군집은 촘촘해지고, 검색은 빨라졌습니다. 그런데 신호가 사라지지는 않았을까요? 그 단순화가 상전이 임계점을 넘어버린 건 아닐까요?
가지치기 연구가 시사하는 답은, 관건이 양이 아니라 연결성이라는 것입니다. 고립된 노드(의미상 이웃이 없는 노트)를 제거하는 일은 네트워크 기능에 거의 영향을 주지 않습니다. 반면 브리지 노드(따로 떨어져 있었을 군집들을 잇는 노트)를 제거하면, 그 노트 하나하나는 별로 중요해 보이지 않더라도 구조 전체가 무너질 수 있습니다.
제 분류 파이프라인은 관련성 임계값을 0.30에서 0.40으로 올렸습니다. 받은 편지함이 60% 줄었다는 건 개수로 측정한 결과입니다. 위상에 미친 영향은 측정하지 않았습니다. 상전이를 염두에 둔 정리 전략이라면 이렇게 해야 합니다.
- 필터링 전에 브리지 노트를 식별한다(유사도 그래프에서 매개 중심성이 높은 노트)
- 개별 점수와 무관하게 브리지 노트는 관련성 필터링에서 제외한다
- 정리 작업을 한 차례 마칠 때마다 군집 연결성 지표를 관찰한다
- 어떤 정리 단계가 군집 간 다리 밀도를 임계값 아래로 떨어뜨리면 경보를 울린다
# Sketch: bridge note detection before curation
def identify_bridge_notes(embeddings, threshold=0.7):
"""Find notes that connect otherwise-separate clusters."""
from sklearn.neighbors import NearestNeighbors
nn = NearestNeighbors(n_neighbors=10, metric='cosine')
nn.fit(embeddings)
distances, indices = nn.kneighbors(embeddings)
# Bridge score: how many of a note's neighbors are from
# different clusters than the note itself
bridge_scores = []
for i, neighbors in enumerate(indices):
own_cluster = labels[i]
cross_cluster = sum(1 for n in neighbors if labels[n] != own_cluster)
bridge_scores.append(cross_cluster / len(neighbors))
return bridge_scores
내 지식 위상 진단하기
지식 위상을 분석하는 데 노트 15,000개가 필요하지는 않습니다. 임베딩이 붙은 노트가 100개만 넘어도 구조는 드러납니다. Obsidian을 AI 인프라로 쓰고 있다면 재료는 이미 갖춰진 셈입니다. 제 보관함에 쌓인 1만 7천 개의 신호도 시작은 소박한 일상 수집물이었습니다. 진단 질문은 세 가지입니다.
1. 군집은 몇 개인가?
임베딩에 k-means나 DBSCAN을 돌려 뚜렷한 군집의 개수를 세어 보세요. 3개 미만이면 중앙집중형 위상을 시사합니다. 3개에서 8개 사이면 분산형입니다. 8개를 넘으면 진짜로 완전분산형 위상이거나, 정리가 부족하다는 신호일 수 있습니다(군집이 많다는 건 주제가 많다는 뜻이고, 그중 어느 것에도 깊이가 없다는 뜻일 수 있습니다).
2. 다리는 얼마나 두꺼운가?
군집 쌍마다 양쪽 군집 모두에 최근접 이웃을 가진 노트가 몇 개인지 세어 보세요. 다리 밀도가 작은 쪽 군집 크기의 2%에 못 미치면 사일로가 될 조짐입니다. 제 디자인–개발 다리는 약 1.4%로 임계값 아래이며, 제가 관찰한 사각지대를 그대로 확인해 줍니다.
3. 고아 노트의 비율은 얼마인가?
고아 노트란 코사인 유사도 임계값(보통 0.7) 안에 이웃이 하나도 없는 노트입니다. 고아 노트가 반드시 나쁜 건 아닙니다. 정말로 새로운 아이디어일 수도 있습니다. 다만 고아 비율이 15%를 넘으면 수집이 일관되지 않거나(내 지식 영역과 맞지 않는 노트들) 임베딩 품질에 문제가 있다는 뜻입니다.
제 보관함의 고아 비율은 약 8%입니다. 대부분은 아직 구조화된 노트로 다듬어지지 않은 받은 편지함의 원본 수집물입니다. 받은 편지함을 제외하면 고아 비율은 3%로 떨어지는데, 처리를 거친 노트는 기존 위상에 잘 통합된다는 뜻입니다.
군집이 드러내는 것
위 시각화는 제 보관함에서 무작위로 뽑은 청크 500개를 사용했습니다. 각 군집은 실제 지적 이웃 영역에 대응합니다.
AI & ML 허브(청크의 26%)가 가장 밀도 높은 군집입니다. Claude Code 아키텍처, 에이전트 설계 패턴, LLM 연구 논문, 프롬프트 엔지니어링 기법이 촘촘한 이웃을 이룹니다. 이 밀도는 분량을 반영합니다. 저는 다른 어떤 범주보다 AI/ML 콘텐츠를 많이 읽고 많이 담아둡니다. 밀도는 검색 품질에서도 이점을 만듭니다. 임베딩 공간이 촘촘하게 채워져 있어 이 영역의 질의는 매우 관련성 높은 결과를 돌려줍니다.
디자인 허브(14%)는 AI & ML에서 멀찍이 떨어져 있습니다. 타이포그래피 시스템, 색채 과학, UI 컴포넌트 패턴, 시각 디자인 레퍼런스가 별도의 군집을 이룹니다. 이 분리는 타당합니다. 디자인과 AI 엔지니어링은 서로 다른 어휘, 서로 다른 사고 틀, 서로 다른 평가 기준을 씁니다. 다만 분리되어 있다는 건, “개발자 검토용으로 에이전트 출력을 어떻게 구성해야 하는가” 같은 질의가 두 군집 사이의 빈 곳에 떨어진다는 뜻이기도 합니다. 그런 질의는 이쪽 아니면 저쪽의 결과를 돌려줄 뿐, 교차 지점에서 나오는 결과는 좀처럼 주지 못합니다.
개발 허브(10%)는 디자인보다 AI & ML과 더 많이 겹칩니다. FastAPI 패턴, 데이터베이스 설계, SwiftUI 아키텍처는 AI 엔지니어링 노트와 개념 어휘를 공유합니다(양쪽 다 코드, 아키텍처, 테스트를 이야기하니까요). 이 어휘 중첩이 만들어내는 혼합 지대에 에이전트를 위한 DevOps, AI를 위한 인프라 같은 노트가 자리합니다.
받은 편지함 후광(28%)은 그 모두를 감싸고 있습니다. 원본 수집물, 분류되지 않은 신호, 처리하지 않은 북마크가 기존 군집과 약하게 연결된 성긴 구름을 이룹니다. 받은 편지함을 14,771개에서 5,886개로 줄인 신호 점수화 파이프라인이 걷어낸 것은 대부분 이 후광이었습니다. 어떤 확립된 군집과도 유사도가 낮은 노트들 말입니다.
영감 군집(6%)은 디자인과 받은 편지함 사이에 자리합니다. 키네틱 타이포그래피 레퍼런스, 모션 디자인 연구, 시각 예술 수집물이 느슨한 이웃을 이룹니다. 이 군집이 존재하는 이유는 제가 시각적 영감은 꾸준히 담아두면서도 그 수집물을 구조화된 노트로 다듬는 일은 드물기 때문입니다. 이 군집은 하나의 패턴을 드러냅니다. 저는 시각적 영감을 폭넓게 소비하지만 디자인 결과물은 좁게 생산합니다. 소비와 생산 사이의 간극이 위상 위에 그대로 보입니다. 들어오는 밀도(수집물)는 높은데 나가는 연결(그 영감 위에 쌓아 올린 노트)은 적은 군집으로 말입니다.
군집을 가로지르는 다리야말로 가장 흥미로운 대목입니다. 가장 얇은 다리는 디자인과 개발을 잇습니다. 작은 쪽 군집 노트의 약 1.4%만이 양쪽 군집 모두에 최근접 이웃을 갖습니다. AI–개발 다리는 8.3%로, 제 개발 작업 중 상당 부분이 AI 인프라와 얽혀 있다는 사실을 보여줍니다. 다리의 밀도는 어디에서 새로운 작업이 태어날지를 예고합니다. 제 보이드에서 에이전트로 글은 창발 행동 연구(AI & ML 군집)와 군집 비행 알고리즘 구현(개발 군집)을 이어준 브리지 노트 하나에서 나왔습니다. 그 다리가 없었다면 두 뭉치의 노트는 영영 충돌하지 않았을 겁니다.
위상은 검색 품질도 좌우합니다. 제 보관함 검색을 떠받치는 하이브리드 검색기는 BM25 키워드 매칭과 벡터 유사도를 함께 씁니다. 하지만 그 효과는 바탕에 깔린 군집 구조에 달려 있습니다. 밀집 군집에 떨어지는 질의는 정확한 결과를 돌려주지만, 군집 사이에 떨어지는 질의는 그 틈을 메워줄 BM25 대비책이 필요합니다.
보관함 옆에는 두 번째 임베딩 데이터베이스가 있습니다. 파일 653개에 걸쳐 청크 4,518개를 담은 툴체인 검색 DB입니다.5 툴체인의 위상은 완전히 다릅니다. 밀집 군집 하나(Claude Code 설정)에 테스트, 훅, 스킬을 담당하는 작은 위성 군집들이 붙어 있는 모양입니다. 이런 단일 재배 위상은 툴체인에는 잘 맞습니다. 툴체인에는 목적이 하나뿐이기 때문입니다. 반면 지식 보관함이 단일 재배 위상을 보인다면 그건 경고 신호일 겁니다.
위상을 다시 빚기
위상은 고정된 것이 아닙니다. 네 가지 의도적인 행동이 지식 구조를 다시 빚습니다.
브리지 노트를 쓴다. 두 군집이 연결되어 있지 않다면, 그 사이의 개념을 명시적으로 잇는 노트를 쓰세요. 제 디자인–AI 다리가 얇은 이유는 에이전트 인터페이스 설계에 관해 글을 거의 쓰지 않기 때문입니다. “에이전트 출력을 위한 UX 패턴” 같은 제목으로 디자인 원칙과 에이전트 아키텍처 연구를 함께 인용하는 노트 한 편이면 다리 하나가 놓입니다.
고아를 찾아낸다. 매달 고아 노트를 훑고 통합할지, 보관할지, 삭제할지 정하세요. 싹트는 아이디어를 담은 고아 노트라면 브리지 노트를 통해 기존 군집에 이어줘야 합니다. 한 번 쓰고 말 참고 자료 성격의 고아 노트라면 보관하면 됩니다.
정리 후에는 관찰한다. 대량 정리(삭제, 보관, 필터링)를 하기 전과 후에 군집 연결성을 측정하세요. 군집 간 다리 밀도가 떨어졌다면, 그 정리가 남겨뒀어야 할 브리지 노트를 걷어낸 것입니다.
경계에서 읽는다. 가장 값어치 있는 읽을거리는 가장 밀집된 군집 안으로 더 깊이 파고드는 쪽에 있지 않습니다. 군집과 군집 사이의 가장자리에 있습니다. AI 엔지니어링과 시각 디자인을 잇는 논문 한 편이, 이미 빽빽한 AI 군집을 조금 더 깊게 만드는 또 한 편의 논문보다 훨씬 많은 새로운 연결을 만들어냅니다.
핵심 정리
- 임베딩 공간은 지식 베이스에 형태를 부여합니다. 그 형태는 지적 위상을 드러냅니다. 어디에 주의를 집중하는지, 어디를 피하는지, 어디에서 아이디어가 영역을 넘어 이어지는지를 보여줍니다.
- 세 가지 위상은 실패 양상이 다릅니다. 중앙집중형은 취약합니다. 분산형은 브리지 노트가 없으면 파편화됩니다. 완전분산형은 유지 비용이 크지만 탐색에는 가장 풍부합니다.
- 상전이 때문에 정리는 선형적이지 않습니다. 임계점 아래에서 노트를 걷어내는 일은 구조에 거의 영향을 주지 않습니다. 임계점에 이르면 기능이 무너집니다. 어떤 대량 정리든 그 전에 브리지 노트를 식별하고 보호해야 합니다.
- 받은 편지함 후광이 정리의 최전선입니다. 원본 수집물은 확립된 군집 주위에 성긴 구름을 이룹니다. 신호 점수화가 이 후광을 걸러내지만, 그 필터링이 다리 연결을 지켰는지 망가뜨렸는지는 위상이 알려줍니다.
- 경계에서 읽으세요. 가치가 가장 높은 노트는 군집을 깊게 만드는 노트가 아니라 군집을 잇는 노트입니다. 고아 탐지와 다리 밀도 지표가 읽기의 우선순위를 안내합니다.
자주 묻는 질문
텍스트 임베딩이란 무엇이며 지식을 어떻게 표현하나요?
텍스트 임베딩은 텍스트 단락을 고차원 공간의 숫자 목록(벡터)으로 바꿉니다. 이 공간에서는 거리가 곧 의미에 대응합니다. 비슷한 주제를 다루는 두 단락은 단어가 겹치는지와 무관하게 가까이 놓입니다. potion-base-8M 같은 256차원 임베딩 모델은 텍스트 청크 하나를 좌표 256개로 바꿉니다. 이를 지식 베이스 전체에 적용하면 벡터의 집합이 공간적 구조를 이루고, 그 안의 군집과 다리와 빈틈이 콘텐츠의 지적 위상을 드러냅니다.
제 Obsidian 보관함의 임베딩 공간을 어떻게 시각화하나요?
먼저 문장 임베딩 모델로 노트의 임베딩을 생성하세요(Model2Vec의 potion-base-8M이 빠르고 무료입니다). 그다음 UMAP으로 고차원 벡터를 2차원이나 3차원에 투영합니다. 임베딩을 데이터베이스에 저장하고(vec 확장을 쓴 SQLite가 잘 맞습니다) UMAP 투영을 실행한 뒤, 아무 3D 플로팅 라이브러리로 시각화하면 됩니다. 그렇게 나온 점 구름이 보관함의 군집 구조를 드러냅니다. 자주 글을 쓰는 밀집 영역, 주제 사이의 성긴 빈틈, 서로 다른 영역이 교차하는 다리 지대가 보입니다.
지식 정리에서 상전이란 무엇인가요?
지식 정리에서의 상전이란, 노트를 걷어냈을 때 지식 구조가 서서히 나빠지는 대신 급격히 무너지는 임계점을 말합니다. 신경망 가지치기 연구에 따르면 신경망은 연결이 제거되어도 기능을 유지하다가, 날카로운 임계점에 이르면 성능이 붕괴합니다. 지식 베이스에도 같은 원리가 적용됩니다. 고립되고 가치 낮은 노트를 걷어내는 일은 영향이 미미하지만, 군집을 잇는 브리지 노트를 걷어내면 그 노트 하나하나는 별로 중요해 보이지 않더라도 위상이 파편화될 수 있습니다. 상전이를 염두에 둔 정리는 필터링에 앞서 브리지 노트를 식별하고 보호합니다.
의미 있는 위상 분석을 하려면 노트가 몇 개나 필요한가요?
의미 있는 군집 구조는 임베딩이 붙은 노트가 약 100개일 때부터 나타납니다. 100개 미만이면 뚜렷한 군집이 형성되지 않을 수 있습니다. 100개에서 500개 사이면 기본적인 위상(군집 2~4개)이 드러납니다. 500개에서 5,000개 사이면 다리 지대와 고아 패턴까지 포함한 섬세한 구조가 보입니다. 5,000개를 넘어서면 위상이 안정되고, 노트를 더 보태도 새 군집이 생기기보다 기존 군집이 깊어집니다. 핵심 지표는 총 개수가 아니라 군집의 다양성입니다. 내 노트가 최소 세 개의 뚜렷한 주제 영역에 걸쳐 있는지 보세요.
Obsidian 임베딩은 지식 그래프와 어떻게 다른가요?
지식 그래프는 사람이 직접 만든 명시적 링크(백링크, 태그, MOC)로 노트를 잇습니다. 임베딩은 모델이 자동으로 찾아낸 의미 유사도로 노트를 잇습니다. 둘은 서로를 보완합니다. 지식 그래프는 내가 의도한 구조를 담고, 임베딩은 내가 한 번도 명시하지 않은 잠재 구조를 드러냅니다. 백링크를 전혀 공유하지 않는 노트라도 서로 다른 어휘로 관련 개념을 다루고 있다면 임베딩 공간에서는 가까이 놓일 수 있습니다. 둘을 함께 돌리면(탐색은 그래프, 발견은 임베딩) 놓쳤을 연결을 떠올려 주는 두 번째 뇌가 완성됩니다.
규모가 큰 Obsidian 보관함에는 어떤 검색 전략이 가장 좋은가요?
BM25 키워드 검색과 벡터 유사도를 결합한 하이브리드 검색이 어느 한쪽만 쓰는 것보다 낫습니다. BM25는 임베딩이 놓칠 수 있는 정확한 용어 일치를 잡아내고, 임베딩은 키워드 검색으로는 감지할 수 없는 개념적 유사성을 잡아냅니다. 두 결과 목록은 Reciprocal Rank Fusion(RRF)으로 병합합니다. 노트가 10,000개를 넘는 보관함이라면 1차 검색 뒤에 재순위화 단계를 더할 때 정밀도가 한층 올라갑니다. 어느 전략이 우세한지는 보관함의 위상에 따라 달라집니다. 밀집 군집에서는 벡터 검색이, 성기거나 어휘 비중이 큰 영역에서는 BM25가 유리합니다.
참고 문헌
-
Kat (@poetengineer__), “Exploring shapes of thoughts: extracted my Obsidian notes’ embeddings and arranged them as a 3D network using 3 different topologies,” X 게시물, 2026년 2월. 세 가지 위상: 중앙집중형, 분산형, LLM이 이름표를 붙인 연결선을 지닌 완전분산형. ↩↩↩
-
Pesce, Diego, Yang-Hui He, and Guido Caldarelli, “Phase Transitions in Neural Networks Pruning,” arXiv:2602.15224, 2026년 2월. arxiv.org. 협력적·기능적 상태에서 무질서 상태로의 날카로운 전이, 2차 임계 현상과 일치하는 척도 법칙. ↩↩
-
MinishLab, “Model2Vec: Fast State-of-the-Art Static Embeddings,” 2024. github.com/MinishLab/model2vec. potion-base-8M: 파라미터 760만 개, 256차원 임베딩, all-MiniLM-L6-v2 성능의 약 90%. ↩
-
McInnes, Leland, John Healy, and James Melville, “UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction,” arXiv:1802.03426, 2018. arxiv.org. t-SNE보다 전역 구조를 잘 보존하면서 실행 성능도 우수함. ↩
-
저자의 의미 기억 시스템. 청크 49,746개 전체에 Model2Vec + sqlite-vec + FTS5 BM25 + RRF 하이브리드 검색 적용. 모듈:
~/.claude/lib/memory/의embedder.py,vector_index.py,chunker.py,retriever.py. ↩ -
저자의 신호 점수화 파이프라인. 관련성 임계값 조정으로 받은 편지함을 노트 14,771개에서 5,886개로(60% 감소) 줄임. 신호 점수화 파이프라인에 기록. ↩
-
저자의 보관함 위상 분석. 청크 49,746개에서 무작위 표본 500개 추출, 보관함 디렉터리 구조로 주제 분류, 인터랙티브 시각화를 위해 PCA로 3차원 투영. ↩