본문으로 건너뛰기

공과 원뿔: 영역으로서의 개념

📍 현재 위치: II부 · 영역과 기하 임베딩 — 4장. 쌍선형 모델은 개체를 점으로, 관계를 그 사이의 곱셈적 상호작용으로 삼아 I부를 닫았습니다; 이 장은 점들의 대칭적 비교로는 결코 할 수 없는 일을 증명하고, 개념에게 본래 원하던 기하를 주는 것으로 II부를 엽니다.

I부는 학계 세계의 개체들을 임베딩했습니다: alice, bob, p1은 벡터가 되었고, 관계는 벡터 쌍을 채점하는 연산이 되었습니다. 그러나 학계 세계에는 I부가 전혀 건드리지 않은 두 번째 종류의 대상이 있습니다. Professor, Researcher, Student는 개념(concept)이며, 개념은 개체들의 집합을 가리킵니다. 2권은 그 집합들 사이의 관계를 추론했습니다: Professor ⊑ Researcher는 한 집합이 다른 집합 안에 놓인다고 말하고, Professor ⊓ Student ⊑ ⊥는 두 집합이 아무것도 공유하지 않는다고 말합니다. 기하가 그 구조를 실어 나를 수 있을까요? 첫 번째 답은 부정적입니다: 두 점을 거리나 내적으로 비교하면 어느 방향으로 재든 같은 수가 나오는데, 대칭적인 점수는 한쪽으로는 성립하고 반대쪽으로는 성립하지 않는 집합 포함을 실어 나를 수 없습니다. 해결책은 개념을 공간의 영역(region)으로 삼는 것입니다. 그러면 소속(membership), 포섭(subsumption), 서로소성(disjointness)이 각각 닫힌 형태의 기하 검사 하나가 되고, 우리는 세 검사가 기호적 골드 스탠더드와 정확히 일치하는 구체적인 기하를 세울 것입니다.

쉽게 말하면

캠퍼스의 벽걸이 지도를 상상해 보십시오. I부가 alice를 핀으로 꽂았듯이 "물리학과"를 핀 하나로 표시할 수도 있습니다. 그러나 학과는 한 지점이 아니라 하나의 구역입니다. 대신 울타리를 두른 영역으로 그리면, 어떤 핀도 답할 수 없던 질문들이 한눈에 들어옵니다: 이 사람이 울타리 안에 있는가(소속)? 이 울타리가 과학 광장의 울타리 안에 통째로 들어가는가("모든 물리학자는 과학자다"가 바로 이런 모습입니다)? 두 울타리가 조금이라도 겹치는가(서로소성)? 핀은 다른 핀에 가까울 수만 있고, "가깝다"는 양쪽으로 똑같이 성립합니다; 울타리는 다른 울타리를 품을 수 있고, 품음은 한 방향으로만 성립합니다. 개념은 핀이 아니라 울타리입니다. 이 장은 그 울타리들을 손으로 그리고, 2권이 증명한 모든 것과 일치하는지 확인합니다.

이 장에서 다루는 내용

  • 대칭적으로 채점된 점이 개념에 실패하는 이유: 포섭은 집합 포함으로서 비대칭적이고 추이적입니다; 거리와 내적은 대칭적이며, 우리는 그 불일치를 단언하는 대신 유도합니다.
  • 공의 형식적 정의: 개념을 중심과 반지름으로 나타내고, 소속을 xcr\lVert \mathbf{x} - \mathbf{c} \rVert \le r로 두어 기호 하나하나를 해독합니다.
  • 양방향으로 증명하는 포함 정리: ball(c₁, r₁)이 ball(c₂, r₂) 안에 들어가는 것은 c1c2+r1r2\lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + r_1 \le r_2와 동치입니다; 한 방향은 삼각 부등식이, 다른 방향은 "최악의 점" 구성이 해결하며, 서로소성도 같은 방식으로 다룹니다.
  • 손으로 배치한 학계 기하: regions.py의 공 8개와 점 13개를 2권의 분류에 대조하여 검증합니다: 골드 포섭 8건 중 8건, 순서쌍 56개 가운데 허위 0건, 분리 7건 중 7건, 소속 집합 13개 중 13개.
  • 공짜로 얻는 추이성: 두 포함 부등식을 합성하면 세 번째가 나옵니다; 구성이 충실하면 기하는 논리의 구조를 물려받습니다.
  • 원뿔과 순서 임베딩: is-a를 뒤집힌 곱 순서 아래의 좌표별 부등식으로 삼고, 추이적 쌍들을 단언 대신 유도하며, (Paper, Person)은 진짜로 비교 불가능해집니다.
  • 구성이 증명하는 것과 훈련이 벌어야 하는 것: 이 장은 기하가 충분히 표현력 있음을 보이기 위해 영역을 배치합니다; III부는 영역을 학습해야 하고, 건전성은 보장에서 탐침으로 내려앉습니다.
  • 아직 풀리지 않은 부분: 반지름 하나는 개념을 등방적으로 만들고, 두 공의 교집합은 공이 아닙니다: 다음 장의 박스가 수선하는 결함들입니다.

대칭적으로 채점된 점이 개념에 실패하는 이유

I부가 우리에게 주는 것에서 시작합시다. 개체는 벡터 eRn\mathbf{e} \in \mathbb{R}^n이며, 여기서 Rn\mathbb{R}^n은 실수 nn개의 목록들이 이루는 공간이고 nn은 임베딩 차원입니다. 점수 함수는 그런 벡터 둘을 비교합니다: TransE는 거리(distance)로, 곧 노름 eh+wret\lVert \mathbf{e}_h + \mathbf{w}_r - \mathbf{e}_t \rVert로 비교하는데, 벡터의 노름 v\lVert \mathbf{v} \rVert는 그 길이, 즉 좌표 제곱 합의 제곱근이어서 jj번째 좌표를 vjv_j라 할 때 v2=j=1nvj2\lVert \mathbf{v} \rVert^2 = \sum_{j=1}^{n} v_j^2입니다; DistMult는 가중 내적(dot product)으로 비교합니다. 이 기계를 개념에 재사용한다고 해 봅시다: Professor에 벡터 eP\mathbf{e}_P를, Researcher에 벡터 eR\mathbf{e}_R을 주고, 어떤 비교 s(eP,eR)s(\mathbf{e}_P, \mathbf{e}_R)에서 Professor ⊑ Researcher를 읽어 내는 것입니다.

장애물을 유도해 보겠습니다. 포섭은 집합 포함(set inclusion)입니다: CDC \sqsubseteq DCC의 모든 원소가 DD의 원소라는 뜻이며, 일반 집합에 대해서는 같은 관계를 CDC \subseteq D로 쓰고 "CCDD의 부분집합이다"라고 읽습니다(네모난 기호 \sqsubseteq는 개념 전용입니다). 포함은 부분 순서(partial order)입니다: 반사적이고(모든 집합은 자기 자신을 포함합니다), 추이적이며(CDC \subseteq D이고 DED \subseteq E이면 CEC \subseteq E입니다), 반대칭적이어서 서로 다른 집합에 대해서는 많아야 한 방향으로만 성립합니다(서로를 포섭하는 두 개념 이름은 같은 집합을 가리키며, 2권의 분류는 그런 이름들을 동치로 취급합니다). Professor ⊑ Researcher는 참이고 Researcher ⊑ Professor는 거짓이며, 포섭의 표현은 그렇게 말할 수 있어야 합니다. 이제 순서쌍을 두 순서 모두로 넣었을 때 두 표준 비교가 무엇을 말하는지 계산해 봅시다. 거리의 경우, 차 벡터 v=ePeR\mathbf{v} = \mathbf{e}_P - \mathbf{e}_R를 쓰고 그 부호 반전의 제곱 노름을 좌표별로 전개합니다:

v2  =  j=1n(vj)2  =  j=1nvj2  =  v2,\lVert -\mathbf{v} \rVert^2 \;=\; \sum_{j=1}^{n} (-v_j)^2 \;=\; \sum_{j=1}^{n} v_j^2 \;=\; \lVert \mathbf{v} \rVert^2,

따라서 ePeR=eReP\lVert \mathbf{e}_P - \mathbf{e}_R \rVert = \lVert \mathbf{e}_R - \mathbf{e}_P \rVert입니다: Professor에서 Researcher까지의 거리는 두 점을 어디에 두더라도 돌아오는 거리와 같습니다. 내적의 경우 같은 대칭성이 곱셈의 교환법칙에서 흘러나옵니다:

ePeR  =  j=1neP,jeR,j  =  j=1neR,jeP,j  =  eReP.\mathbf{e}_P \cdot \mathbf{e}_R \;=\; \sum_{j=1}^{n} e_{P,j}\, e_{R,j} \;=\; \sum_{j=1}^{n} e_{R,j}\, e_{P,j} \;=\; \mathbf{e}_R \cdot \mathbf{e}_P.

그러므로 두 양 중 어느 것으로 만든 점수든 참인 명제 Professor ⊑ Researcher와 그 거짓인 역에 정확히 같은 수를 배정하며, 어떤 문턱값도 하나는 받아들이면서 다른 하나를 거부할 수 없습니다. 비대칭적인 점 점수가 없는 것은 아닙니다: ComplEx는 복소 켤레를 통해 순서 있는 트리플을 채점함으로써 사실에 대해서는 이 덫을 빠져나갔고, TransE의 이동된 거리처럼 관계로 매개변수화된 비교도 대칭이 아닙니다: 위의 차 벡터 v=ePeR\mathbf{v} = \mathbf{e}_P - \mathbf{e}_R로 쓰면 두 방향의 점수는 eP+wreR=v+wr\lVert \mathbf{e}_P + \mathbf{w}_r - \mathbf{e}_R \rVert = \lVert \mathbf{v} + \mathbf{w}_r \rVerteR+wreP=wrv\lVert \mathbf{e}_R + \mathbf{w}_r - \mathbf{e}_P \rVert = \lVert \mathbf{w}_r - \mathbf{v} \rVert이고, 두 제곱 노름을 전개하면 v+wr2=v2+2wrv+wr2\lVert \mathbf{v} + \mathbf{w}_r \rVert^2 = \lVert \mathbf{v} \rVert^2 + 2\, \mathbf{w}_r \cdot \mathbf{v} + \lVert \mathbf{w}_r \rVert^2wrv2=wr22wrv+v2\lVert \mathbf{w}_r - \mathbf{v} \rVert^2 = \lVert \mathbf{w}_r \rVert^2 - 2\, \mathbf{w}_r \cdot \mathbf{v} + \lVert \mathbf{v} \rVert^2이므로, 두 점수는 내적 wrv\mathbf{w}_r \cdot \mathbf{v}가 0이 아닐 때, 정확히 그때만 다르며, 일반적인 배치는 이를 만족합니다(wr\mathbf{w}_rv\mathbf{v}에 수직인 특수한 경우에는 두 점수가 일치합니다). 그러나 이 탈출구들은 점 단위입니다: 모델은 단언된 한 쌍을 그 역보다 선호하도록 배울 수는 있어도, 무엇도 추이성을 강제하지 않고, 무엇도 소속의 의미론을 주지 않습니다. 어휘 의미론 문헌은 일찍이 같은 진단에 도달했습니다: 단어의 의미에는 외연, 곧 안과 밖이 있는데, 점 하나에는 어느 쪽도 없습니다 [1].

그래서 임베딩 공간 자체의 존재론을 바꿉니다. 개체는 하나의 사물이므로 점으로 남겨 둡니다. 개념은 사물들의 집합이므로 각 개념을 영역, 곧 부분집합 reg(C)Rn\mathrm{reg}(C) \subseteq \mathbb{R}^n으로 만듭니다. 그러면 2권의 세 판단은 단지 훈련으로가 아니라 구조적으로 번역됩니다:

논리적 판단2권의 읽기기하 검사
소속 a:Ca : C개체 aaCC의 인스턴스다xa\mathbf{x}_areg(C)\mathrm{reg}(C) 안에 놓인다
포섭 CDC \sqsubseteq D모든 CCDDreg(C)reg(D)\mathrm{reg}(C) \subseteq \mathrm{reg}(D)
서로소성 CDC \sqcap D \sqsubseteq \bot어느 것도 둘 다는 아니다reg(C)reg(D)=\mathrm{reg}(C) \cap \mathrm{reg}(D) = \varnothing

영역 포함은 집합 포함이 그러하기 때문에 반사적이고 추이적이며 반대칭적입니다; 점으로는 살 수 없던 비대칭성이 영역과 함께 공짜로 옵니다. 남은 일은 세 검사 모두가 닫힌 형태를 갖도록 충분히 단순한 영역 계열을 고르는 것입니다. 가장 단순한 후보가 공입니다.

공: 중심 하나, 반지름 하나, 닫힌 형태의 검사 셋

주변 공간 Rn\mathbb{R}^n을 고정합니다; 이 장에서는 n=2n = 2여서 모든 구성을 그림으로 그릴 수 있고 모든 수를 손으로 검산할 수 있습니다. (ball)은 두 매개변수로 결정됩니다: 개념이 자리 잡는 지점인 중심(center) cRn\mathbf{c} \in \mathbb{R}^n과, 얼마나 멀리 뻗는지를 말하는 반지름(radius) r0r \ge 0입니다. 공은 중심에서 거리 rr 이내에 있는 점들의 집합입니다:

B(c,r)  =  {xRn  :  xcr}.B(\mathbf{c}, r) \;=\; \{\, \mathbf{x} \in \mathbb{R}^n \;:\; \lVert \mathbf{x} - \mathbf{c} \rVert \le r \,\}.

노름 \lVert \cdot \rVert은 첫 절에서 해독했으므로(유클리드 길이, 좌표 제곱 합의 제곱근), xc\lVert \mathbf{x} - \mathbf{c} \rVert는 점 x\mathbf{x}와 중심 c\mathbf{c} 사이의 직선거리입니다. 부등식이 등호를 허용하므로 공은 닫혀 있습니다: 경계 원을 포함합니다. 소속은 비교 한 번이며, 한 줄로 구현됩니다(regions.py 72–76행):

def in_ball(p: Point, concept: str) -> bool:
"""Membership: x ∈ ball(c, r) ⟺ ‖x − c‖ ≤ r."""
c, r = BALLS[concept]
# membership test: ‖x − c‖ ≤ r
return dist(p, c) <= r

이 장의 나머지 전부는 기하의 정리 하나, 삼각 부등식(triangle inequality)에 기댑니다: 임의의 두 벡터 u\mathbf{u}v\mathbf{v}에 대해

u+v    u+v,\lVert \mathbf{u} + \mathbf{v} \rVert \;\le\; \lVert \mathbf{u} \rVert + \lVert \mathbf{v} \rVert,

모퉁이를 거치는 우회로가 직선보다 짧을 수는 없다는 것입니다. 우리는 이를 세 점 형태로 씁니다: 임의의 점 x,y,z\mathbf{x}, \mathbf{y}, \mathbf{z}에 대해 u=xy\mathbf{u} = \mathbf{x} - \mathbf{y}v=yz\mathbf{v} = \mathbf{y} - \mathbf{z}를 대입하면 u+v=xy+yz=xz\mathbf{u} + \mathbf{v} = \mathbf{x} - \mathbf{y} + \mathbf{y} - \mathbf{z} = \mathbf{x} - \mathbf{z}이므로 부등식은

xz    xy+yz:\lVert \mathbf{x} - \mathbf{z} \rVert \;\le\; \lVert \mathbf{x} - \mathbf{y} \rVert + \lVert \mathbf{y} - \mathbf{z} \rVert :

x\mathbf{x}에서 z\mathbf{z}까지의 거리는 어떤 경유지 y\mathbf{y}를 거치는 거리보다 크지 않다는 것이 됩니다. 이 한 가지 사실이 아래의 포함, 서로소성, 추이성을 모두 증명합니다.

양방향으로 증명하는 포함 정리

공을 개념으로 쓸 수 있게 해 주는 주장이 여기 있습니다: 한 공이 다른 공에 담긴다는, 무한히 많은 점에 대해 한정된 명제가 세 수의 비교 한 번으로 무너져 내립니다.

정리. 중심이 c1,c2\mathbf{c}_1, \mathbf{c}_2이고 반지름이 r1,r2r_1, r_2인 공들에 대해:

B(c1,r1)B(c2,r2)c1c2+r1    r2.B(\mathbf{c}_1, r_1) \subseteq B(\mathbf{c}_2, r_2) \quad\Longleftrightarrow\quad \lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + r_1 \;\le\; r_2.

말로 풀면: 안쪽 공이 바깥 공 안에 들어가는 것은 두 중심 사이의 거리에 안쪽 반지름을 더한 값이 여전히 바깥 반지름 안에 들어갈 때, 그리고 오직 그때뿐입니다. 두 방향 모두 증명할 가치가 있는데, 각 방향이 서로 다른 일을 하기 때문입니다. (⇐) 방향은 검사를 건전하게 만듭니다: 부등식이 성립하면 포함이 정말로 성립합니다. (⇒) 방향은 검사를 정확하게 만듭니다: 부등식이 깨지면 포함이 정말로 깨집니다.

방향 (⇐): 부등식이 포함을 강제합니다. c1c2+r1r2\lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + r_1 \le r_2를 가정하고, 안쪽 공의 임의의 점 x\mathbf{x}를 잡습니다. 그러면 xc1r1\lVert \mathbf{x} - \mathbf{c}_1 \rVert \le r_1입니다. 보여야 할 것은 xc2r2\lVert \mathbf{x} - \mathbf{c}_2 \rVert \le r_2입니다. x\mathbf{x}에서 c2\mathbf{c}_2까지의 거리를 경유지 c1\mathbf{c}_1을 거쳐 우회시키고, 세 부등식을 각각 쓰이는 자리에서 정당화하며 이어 붙입니다:

xc2  triangle  xc1+c1c2  xinner  r1+c1c2  assumption  r2.\lVert \mathbf{x} - \mathbf{c}_2 \rVert \;\underset{\text{triangle}}{\le}\; \lVert \mathbf{x} - \mathbf{c}_1 \rVert + \lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert \;\underset{\mathbf{x}\, \in\, \text{inner}}{\le}\; r_1 + \lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert \;\underset{\text{assumption}}{\le}\; r_2 .

x\mathbf{x}는 임의였으므로 안쪽 공의 모든 점이 바깥 공 안에 놓입니다: 삼각 부등식이 무한히 많은 원소 전부를 한꺼번에 처리했습니다.

방향 (⇒): 부등식이 깨지면 증인이 탈출합니다. 이제 c1c2+r1>r2\lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + r_1 \gt r_2를 가정하고, 바깥 공 밖에 놓이는 안쪽 공의 점을 제시합니다. 알맞은 증인은 안쪽 공의 최악의 점(worst point), 곧 B(c1,r1)B(\mathbf{c}_1, r_1)에서 c2\mathbf{c}_2로부터 가장 먼 점입니다. 기하적으로는 c2\mathbf{c}_2에 서서 c1\mathbf{c}_1 쪽을 바라보고, c1\mathbf{c}_1을 지나 r1r_1만큼 계속 더 걸어가면 됩니다. 형식적으로는, 먼저 c1c2\mathbf{c}_1 \neq \mathbf{c}_2라 가정하고

u  =  c1c2c1c2,w  =  c1+r1u.\mathbf{u} \;=\; \frac{\mathbf{c}_1 - \mathbf{c}_2}{\lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert}, \qquad \mathbf{w} \;=\; \mathbf{c}_1 + r_1\, \mathbf{u}.

라 둡니다. 여기서 u\mathbf{u}c2\mathbf{c}_2에서 c1\mathbf{c}_1 쪽을 가리키는 단위 벡터이고(차를 그 자신의 노름으로 나누었으므로 길이가 1입니다), w\mathbf{w}는 그 바깥 방향으로 c1\mathbf{c}_1에서 거리 r1r_1만큼 더 나아간 점입니다. 첫째, w\mathbf{w}는 여유 없이 딱 맞게 안쪽 공에 속합니다:

wc1  =  r1u  =  r1u  =  r1.\lVert \mathbf{w} - \mathbf{c}_1 \rVert \;=\; \lVert r_1 \mathbf{u} \rVert \;=\; r_1 \lVert \mathbf{u} \rVert \;=\; r_1 .

둘째, c2\mathbf{c}_2까지의 거리를 계산합니다. u\mathbf{u}의 정의에 의해 c1c2=c1c2u\mathbf{c}_1 - \mathbf{c}_2 = \lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert\, \mathbf{u}이므로 두 선분은 같은 방향을 가리키고 길이가 정확히 더해집니다:

wc2  =  (c1c2)+r1u  =  (c1c2+r1)u,\mathbf{w} - \mathbf{c}_2 \;=\; (\mathbf{c}_1 - \mathbf{c}_2) + r_1 \mathbf{u} \;=\; \big( \lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + r_1 \big)\, \mathbf{u}, wc2  =  (c1c2+r1)u  =  c1c2+r1  >  r2.\lVert \mathbf{w} - \mathbf{c}_2 \rVert \;=\; \big( \lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + r_1 \big)\, \lVert \mathbf{u} \rVert \;=\; \lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + r_1 \;\gt\; r_2 .

따라서 w\mathbf{w}는 바깥 공의 엄격히 바깥에 앉아 있는 안쪽 공의 원소이고, 포함은 깨집니다. (만약 c1=c2\mathbf{c}_1 = \mathbf{c}_2라면 깨진 부등식은 r1>r2r_1 \gt r_2가 되고, 아무 단위 벡터 u\mathbf{u}나 골라도 같은 w\mathbf{w}c2\mathbf{c}_2에서 거리 r1>r2r_1 \gt r_2에 앉습니다.) ∎ (기호 ∎는 증명의 끝을 표시합니다.)

동반 구현은 정리의 우변을 그대로 옮긴 것이고, 그 독스트링은 이 증명을 압축한 것입니다(regions.py 79–91행):

def ball_subsumed(inner: str, outer: str) -> bool:
"""Containment: ball(c1, r1) ⊆ ball(c2, r2) ⟺ ‖c1 − c2‖ + r1 ≤ r2.

(⇐) For any x in the inner ball the triangle inequality gives
‖x − c2‖ ≤ ‖x − c1‖ + ‖c1 − c2‖ ≤ r1 + ‖c1 − c2‖ ≤ r2, so x lies in the
outer ball too. (⇒, the test is *exact*) the inner ball's farthest point
from c2 — walk from c1 directly away from c2 for r1 more — sits at
distance exactly ‖c1 − c2‖ + r1 from c2, so if the inequality fails, that
point of the inner ball escapes the outer one.
"""
(c1, r1), (c2, r2) = BALLS[inner], BALLS[outer]
# containment test: ‖c1 − c2‖ + r1 ≤ r2
return dist(c1, c2) + r1 <= r2

같은 도구로 얻는 서로소성. 두 공이 서로소인 것은 어느 점도 둘 다에 놓이지 않을 때이며, 삼각 부등식이 다시 한정사를 산술로 환원합니다. 어떤 x\mathbf{x}가 둘 다에 속했다고 해 봅시다. 그러면 c1xr1\lVert \mathbf{c}_1 - \mathbf{x} \rVert \le r_1이고 xc2r2\lVert \mathbf{x} - \mathbf{c}_2 \rVert \le r_2입니다. 중심에서 중심까지의 거리를 x\mathbf{x}를 거쳐 우회시키면:

c1c2    c1x+xc2    r1+r2.\lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert \;\le\; \lVert \mathbf{c}_1 - \mathbf{x} \rVert + \lVert \mathbf{x} - \mathbf{c}_2 \rVert \;\le\; r_1 + r_2 .

대우를 취하면: c1c2>r1+r2\lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert \gt r_1 + r_2이면 공유되는 점이 존재할 수 없고, 두 공은 서로소입니다. 경계에 관한 정직한 한마디: 정확히 등호일 때 닫힌 두 공은 완전히 서로소가 아니라 접점 하나에서 만나며, 그 점에서는 두 소속 부등식이 모두 등호로 성립합니다. 동반 검사는 \ge를 쓰는데(regions.py 94–104행), 이 구성에서는 서로소로 선언된 모든 쌍을 엄격히 떨어뜨려 놓았기 때문에 거기서는 정당합니다(가장 빠듯한 쌍인 Professor 대 Student와 Paper 대 Topic은 반지름 합 6에 대해 중심 거리 8에 앉아 있습니다). 이제 개념은 매개변수 둘이고, 세 논리 판단 각각은 비교 한 번입니다. 학계 세계를 지을 시간입니다.

손으로 배치한 학계 기하

동반 파일 examples/neural/regions.py는 학계 위계의 여덟 개념에 명시적인 중심과 반지름을 주는데, 아래의 모든 검사가 부동소수점에서 정확하도록 작은 어림수로 골랐습니다(regions.py 54–63행). 아무것도 훈련되거나 표집되거나 시드로 초기화되지 않습니다; 모든 실행은 구성상 바이트 단위로 동일한 출력을 인쇄합니다. 실제 실행에서 인용한 배치는 다음과 같습니다:

1. the ball system (a concept = center c ∈ ℝ² and radius r)
concept | center | radius
Person | ( 0.0, 0.0) | 10.0
Researcher | ( 0.0, -1.0) | 7.0
Professor | ( -4.0, -1.0) | 3.0
Student | ( 4.0, -1.0) | 3.0
Dean | ( -5.0, -1.0) | 1.0
Paper | ( 20.0, 0.0) | 3.0
Institution | ( 20.0, -8.0) | 2.0
Topic | ( 28.0, 0.0) | 3.0

숫자에서 설계를 읽어 봅시다. Person이 큰 공입니다; Researcher는 그 바로 안쪽에 앉습니다; Professor와 Student는 Researcher의 왼쪽과 오른쪽에 대칭으로 매달립니다; Dean은 Professor 안에 둥지를 틉니다; 사람이 아닌 세 부류(Paper, Institution, Topic)는 멀리 오른쪽에 삽니다. 반지름은 일반성을 부호화합니다: 개념이 일반적일수록 공이 커야 하는데, 자기 특수화들의 공을 모두 담아야 하기 때문입니다.

개념을 기하 영역으로 나타낸 두 패널 히어로 도해. 왼쪽 패널의 제목은 공 시스템으로, 학계 위계를 평면에 겹겹이 놓인 원들로 보여 줍니다: 반지름 10의 큰 Person 원이 반지름 7의 Researcher 원을 담고, 그 안에 반지름 3의 서로소인 두 원이 왼쪽에는 Professor, 오른쪽에는 Student로 놓이며, Professor 안에는 반지름 1의 작은 Dean 원이 둥지를 틉니다; Professor 원은 Researcher 원에 내접합니다. 라벨이 붙은 점 13개가 개체를 표시하는데, alice와 bob은 Professor 안에 있으나 Dean 밖에 있고, carol, dave, erin은 Student 안에 있습니다; 멀리 오른쪽에서는 Paper, Institution, Topic이라 적힌 세 개의 분리된 원이 p1, p2, p3, mit, cmu, logic, ml, nesy 점들을 담습니다. 주석은 포함 검사(중심 간 거리 더하기 안쪽 반지름이 바깥 반지름 이하)와 서로소 검사(중심 간 거리가 반지름 합 이상)를 진술합니다. 오른쪽 패널의 제목은 함의 원뿔로, 좌표 사분면에 Person (1,1), Researcher (2,2), Professor (3,2), Student (2,3), Dean (4,2), Paper (0,5)의 꼭짓점들이 있고, 각 꼭짓점은 자신보다 좌표별로 크거나 같은 점들의 음영 처리된 축 정렬 원뿔을 소유합니다; Professor 꼭짓점은 Researcher 원뿔 안에, Researcher 원뿔은 Person 원뿔 안에 놓이는 반면, Paper 꼭짓점은 Person 원뿔 밖에, Person 꼭짓점은 Paper 원뿔 밖에 앉아 비교 불가능성을 보여 줍니다. 하단 점수판에는 골드 8건 중 8건, 허위 0건, 서로소 7건 중 7건, 소속 13건 중 13건이라 적혀 있습니다. 하나의 온톨로지에 대한 두 기하: 겹겹의 공은 소속·포섭·서로소성을 비교 한 번짜리 검사로 만들고, 순서 임베딩 원뿔은 is-a를 좌표별 부등식으로 만듭니다; 둘 다 2권의 골드 포섭 8건을 정확히 재현합니다. 저자가 AI의 도움을 받아 직접 제작한 원본 도해.

이 기하가 재현해야 할 골드 스탠더드는 손으로 입력한 것이 아닙니다: 검증 루틴은 8쌍짜리 GOLD 목록이 여덟 공 개념으로 제한한 2권의 el_completion.classify()와 같음을 단언하므로(regions.py 111–116행과 203–226행), 점수판은 기호 추론기 자신에 대조하여 검사됩니다. 이어서 실행은 포함 정리를 골드 8쌍 전부에 적용합니다:

골드 포섭c1c2\lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert+r1+\, r_1합계r2\le r_2?여유
Dean ⊑ Professor1.00001.00001.01.02.00002.00003.0\le 3.01.00001.0000
Dean ⊑ Researcher5.00005.00001.01.06.00006.00007.0\le 7.01.00001.0000
Dean ⊑ Person5.09905.09901.01.06.09906.099010.0\le 10.03.90103.9010
Professor ⊑ Researcher4.00004.00003.03.07.00007.00007.0\le 7.00.00000.0000
Professor ⊑ Person4.12314.12313.03.07.12317.123110.0\le 10.02.87692.8769
Student ⊑ Researcher4.00004.00003.03.07.00007.00007.0\le 7.00.00000.0000
Student ⊑ Person4.12314.12313.03.07.12317.123110.0\le 10.02.87692.8769
Researcher ⊑ Person1.00001.00007.07.08.00008.000010.0\le 10.02.00002.0000

두 행은 다시 볼 가치가 있습니다. Professor ⊑ Researcher는 여유가 정확히 0으로 성립합니다: 4+3=74 + 3 = 7, 의도된 내접(internal tangency)입니다(regions.py 51–53행). Researcher의 중심에서 본 Professor 공의 최악의 점인 (7,1)(-7, -1)은 Researcher의 경계 원 위에 정확히 놓이고, 두 공이 모두 닫혀 있으므로 포함은 여전히 성립합니다. 구성은 일부러 검사를 그 경계 사례 위에 앉혀 놓았습니다: 정리의 \le가 편의상의 근사가 아니라 올바른 비교임을 보여 주며, 모든 양이 작은 정수이므로 부동소수점 검사는 정확합니다.

골드 8쌍을 지키는 것은 요구 조건의 절반일 뿐입니다; 모든 것모든 것을 포함하게 만드는 기하도 그 절반은 통과할 것이기 때문입니다. 건전성은 그 보완을 요구합니다: 논리가 허가하지 않은 포함은 없어야 합니다. 그래서 실행은 서로 다른 개념의 순서쌍 87=568 \cdot 7 = 56개 전부를 훑고(regions.py 207–210행) 접속 행렬을 인쇄합니다:

full scan of all 8·7 = 56 ordered pairs (A ≠ B): 8 hold — exactly the gold 8, spurious 0
A ⊆ B? Pers Rsch Prof Stud Dean Papr Inst Topc
Person — · · · · · · ·
Researcher ⊑ — · · · · · ·
Professor ⊑ ⊑ — · · · · ·
Student ⊑ ⊑ · — · · · ·
Dean ⊑ ⊑ ⊑ · — · · ·
Paper · · · · · — · ·
Institution · · · · · · — ·
Topic · · · · · · · —

정확히 여덟 칸에 ⊑가 있고, 그것은 정확히 골드 여덟입니다: 허위 포함 0건입니다. 서로소성 검사는 눈에 보이는 여유를 두고 통과하며, 가장 빠듯한 것은(Paper 대 Topic과 나란히, 둘 다 여유 22) TBox 공리 Professor ⊓ Student ⊑ ⊥가 요구하는 바로 그 쌍입니다:

3. disjointness — ball(c1,r1) ∩ ball(c2,r2) = ∅ ⟸ ‖c1−c2‖ ≥ r1 + r2
Professor vs Student : ‖c1−c2‖ = 8.0000 ≥ r1 + r2 = 6.0 ✓
Person vs Paper : ‖c1−c2‖ = 20.0000 ≥ r1 + r2 = 13.0 ✓

나머지 다섯 개의 부류 분리(Person 대 Institution과 Topic, 그리고 Paper·Institution·Topic 사이의 세 쌍)도 같은 방식으로 통과합니다(regions.py 126–130행과 213행).

개체 열셋. 지식 그래프의 모든 개체는(kg.py 49행이 개체 목록을, 58행이 타입 맵을 고정합니다) 자기 개념의 공 안에 점 하나를 받습니다(regions.py 139–153행). 요구 조건은 양방향으로 날카롭습니다: 개체는 자기 타입의 반사적 조상 집합에 속한 모든 공 안에 놓이되, 다른 어느 공에도 놓이면 안 됩니다. 실행은 13×8=10413 \times 8 = 104개의 소속 검사를 모두 확인합니다:

4. the 13 individuals as points — x ∈ ball(c,r) ⟺ ‖x−c‖ ≤ r
entity | type | point | member of
alice | Professor | ( -3.0, -1.0) | Person Researcher Professor ✓
bob | Professor | ( -4.0, 1.0) | Person Researcher Professor ✓
carol | Student | ( 3.0, -1.0) | Person Researcher Student ✓
cmu | Institution | ( 21.0, -8.0) | Institution ✓
dave | Student | ( 5.0, -1.0) | Person Researcher Student ✓
erin | Student | ( 4.0, 0.0) | Person Researcher Student ✓
...
every individual lies in exactly its ancestors' balls: 13/13

한 행을 손으로 따라가 봅시다. (4,1)(-4, 1)에 있는 bob, Professor로 단언된 개체를 봅시다. 중심 (4,1)(-4, -1), 반지름 33의 Professor 공에 대해: 차 벡터는 (0,2)(0, 2)이므로 xc=02+22=23\lVert \mathbf{x} - \mathbf{c} \rVert = \sqrt{0^2 + 2^2} = 2 \le 3, 구성원입니다. 중심 (0,1)(0, -1), 반지름 77의 Researcher에 대해: 차 (4,2)(-4, 2), 거리 16+4=204.47217\sqrt{16 + 4} = \sqrt{20} \approx 4.4721 \le 7, 구성원입니다. 중심 (0,0)(0,0), 반지름 1010의 Person에 대해: 거리 16+1=174.123110\sqrt{16 + 1} = \sqrt{17} \approx 4.1231 \le 10, 구성원입니다. 중심 (5,1)(-5, -1), 반지름 11의 Dean에 대해: 차 (1,2)(1, 2), 거리 52.2361>1\sqrt{5} \approx 2.2361 \gt 1, 구성원이 아닙니다. 그 배제가 중요합니다: 두 교수 모두 Professor 안에 둥지 튼 Dean 공의 바깥에 일부러 배치되었는데, 학계 세계의 누구도 학장으로 단언되지 않았고, 충실한 기하는 지식 베이스가 허가한 적 없는 소속을 자진해서 내주면 안 되기 때문입니다. 실행의 마지막 줄이 점수판을 모읍니다:

SUMMARY regions: gold=8/8 spurious=0 disjoint=7/7 membership=13/13 cone_pairs=8 cone_matches_gold=True

그 줄의 모든 개수는 assert로 지켜지므로(regions.py 224–244행), 모듈의 종료 코드가 곧 수용 판정입니다: 이 장의 기하 주장 가운데 어느 하나라도 깨지면 python3 regions.py는 인쇄하는 대신 죽습니다.

공짜로 얻는 추이성

2권은 추이성을 위해 일해야 했습니다: 완성 규칙 CR1이 반복해서 발화하여 Dean ⊑ Professor와 Professor ⊑ Researcher를 Dean ⊑ Researcher로 이어 붙였습니다. 공 기하는 아무 규칙도 발화하지 않고 같은 폐포를 얻으며, 그 이유는 이 배치의 우연이 아니라 대수적 항등식입니다.

포함 검사가 겹겹의 두 쌍에 대해 성립한다고 합시다: 공 1이 공 2 안에, 공 2가 공 3 안에,

c1c2+r1    r2,c2c3+r2    r3.\lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + r_1 \;\le\; r_2, \qquad \lVert \mathbf{c}_2 - \mathbf{c}_3 \rVert + r_2 \;\le\; r_3 .

주장: 공 1이 공 3 안에 있다는 검사도 성립합니다. 유계를 보여야 할 양에서 출발하여, 중심 거리를 삼각 부등식으로 c2\mathbf{c}_2를 거쳐 우회시킵니다:

c1c3+r1    c1c2+c2c3+r1.\lVert \mathbf{c}_1 - \mathbf{c}_3 \rVert + r_1 \;\le\; \lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + \lVert \mathbf{c}_2 - \mathbf{c}_3 \rVert + r_1 .

첫 항과 마지막 항을 묶고 첫 번째 가정 c1c2+r1r2\lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + r_1 \le r_2를 적용합니다:

c1c2+r1+c2c3    r2+c2c3.\lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + r_1 + \lVert \mathbf{c}_2 - \mathbf{c}_3 \rVert \;\le\; r_2 + \lVert \mathbf{c}_2 - \mathbf{c}_3 \rVert .

이제 우변에 두 번째 가정 c2c3+r2r3\lVert \mathbf{c}_2 - \mathbf{c}_3 \rVert + r_2 \le r_3을 적용합니다:

r2+c2c3    r3.r_2 + \lVert \mathbf{c}_2 - \mathbf{c}_3 \rVert \;\le\; r_3 .

세 식을 이어 붙이면 c1c3+r1r3\lVert \mathbf{c}_1 - \mathbf{c}_3 \rVert + r_1 \le r_3이고, 이것이 바깥 쌍에 대한 포함 검사입니다. ∎

이를 실행 예제에 대입해 봅시다. Dean ⊑ Professor는 1+1=231 + 1 = 2 \le 3으로 성립하고, Professor ⊑ Researcher는 4+3=774 + 3 = 7 \le 7로 성립합니다; 따라서 합성은 누가 재기도 전에 Dean ⊑ Researcher를 보장하고, 직접 측정도 동의합니다: (5,1)(0,1)+1=5+1=67\lVert(-5,-1) - (0,-1)\rVert + 1 = 5 + 1 = 6 \le 7, 여유가 남습니다. 그 여유는 추적 가능합니다. 여기서는 세 중심이 한 직선 위에 있으므로 합성의 삼각 단계는 등식 1+4=51 + 4 = 5이고, 모든 여유는 첫 번째 전제, 곧 232 \le 3으로 성립한 Dean ⊑ Professor에서 오며, 그 한 단위가 정확히 측정값 66과 보장된 유계 77 사이의 간격입니다. (중심들이 한 직선 위에 있지 않다면 삼각 단계가 자기 몫의 여유를 더 보탤 것입니다.) 이것이 이 구성의 더 깊은 요점입니다. 포섭이 추이적인 것은 집합 포함이 추이적이기 때문이고, 공 포함이 추이적인 것은 삼각 부등식이 합성되기 때문입니다. 표현의 대수가 논리의 구조를 비추면, 기호 쪽이 실행해야 했던 추론 규칙이 기하 쪽에서는 공짜로 얻는 정리가 됩니다: 완성 알고리즘은 포화 패스에서 Dean ⊑ Researcher를 유도했지만, 기하는 두 전제가 성립하는데 결론이 깨지는 상태를 아예 표현조차 할 수 없습니다.

원뿔: 좌표별 부등식으로서의 is-a

이런 성질을 갖는 영역 계열이 공만은 아닙니다. 순서 임베딩(order embedding)은 더 적은 장비로 같은 비대칭성-더하기-추이성 패키지를 배달합니다: 반지름도 노름도 없이, 실수의 순서를 좌표마다 한 번씩 적용할 뿐입니다 [2].

먼저 순서를 해독합시다. 두 점 x,yRn\mathbf{x}, \mathbf{y} \in \mathbb{R}^n에 대해 xy\mathbf{x} \ge \mathbf{y}좌표별(coordinatewise)로 성립한다는 것은 11부터 nn까지의 모든 차원 인덱스 kk에 대해 xkykx_k \ge y_k라는 뜻입니다; 어떤 좌표는 이쪽으로, 어떤 좌표는 저쪽으로 간다면 두 점은 비교 불가능(incomparable)하며, 어느 쪽도 다른 쪽에 대해 \ge가 아닙니다. 순서 임베딩은 각 개념에 점 하나, 곧 꼭짓점(apex)을 배정하고

x is-a yxy coordinatewise,x \text{ is-a } y \quad\Longleftrightarrow\quad \mathbf{x} \ge \mathbf{y} \ \text{coordinatewise},

라 선언합니다. 이것이 뒤집힌 곱 순서(reversed product order)입니다: 더 특수한 개념이 더 큰 좌표에 앉습니다. 이 장에 자리를 얻는 근거는 영역 읽기입니다. 개념의 원뿔(cone)을 그 꼭짓점보다 좌표별로 위에 있는 모든 것으로 정의합니다,

cone(y)  =  {pRn:py},\mathrm{cone}(\mathbf{y}) \;=\; \{\, \mathbf{p} \in \mathbb{R}^n : \mathbf{p} \ge \mathbf{y} \,\},

꼭짓점을 모서리로 하는, 축에 정렬된 닫힌 사분공간(orthant, 사분면의 고차원 일반화)입니다. 원점 가까이의 일반적 개념은 거대한 원뿔을 소유하고, 멀리 나간 특수한 개념은 작은 원뿔을 소유합니다. 점별 순서와 영역 순서가 일치한다는 것은 두 줄짜리 증명입니다. xy\mathbf{x} \ge \mathbf{y}이면 임의의 pcone(x)\mathbf{p} \in \mathrm{cone}(\mathbf{x})를 잡습니다; 그러면 pxy\mathbf{p} \ge \mathbf{x} \ge \mathbf{y}이고, \ge는 좌표마다 따로 추이적이므로 py\mathbf{p} \ge \mathbf{y}, 곧 cone(x)cone(y)\mathrm{cone}(\mathbf{x}) \subseteq \mathrm{cone}(\mathbf{y})입니다. 역으로 xx\mathbf{x} \ge \mathbf{x}x\mathbf{x}를 자기 원뿔 안에 넣으므로, cone(x)cone(y)\mathrm{cone}(\mathbf{x}) \subseteq \mathrm{cone}(\mathbf{y})xcone(y)\mathbf{x} \in \mathrm{cone}(\mathbf{y})를 강제하는데, 그것이 바로 xy\mathbf{x} \ge \mathbf{y}라는 명제입니다. 이것이 첫 절의 장애물을 모순 없이 비켜 가는 방식에 주목하십시오: 각 개념은 다시 점 하나이지만, 비교가 좌표별 순서여서 거리와 내적이 대칭이던 자리에서 비대칭적이고 추이적이며, 원뿔 영역이 맨 점에는 없던 소속 의미론을 공급합니다. 소속, 포섭, 영역 그림이 검사 하나로 무너져 내리고, 한 줄로 구현됩니다(regions.py 178–181행):

def cone_isa(x: str, y: str) -> bool:
"""x is-a y ⟺ x ≥ y in every coordinate (the reversed product order)."""
# coordinatewise order test: CONE[x][k] ≥ CONE[y][k] for every dimension k
return bool(np.all(np.asarray(CONE[x]) >= np.asarray(CONE[y])))

동반 파일은 여섯 꼭짓점을 손으로 배치한 뒤(regions.py 168–175행), is-a 링크를 직접 단언하는 대신 순서쌍 65=306 \cdot 5 = 30개 전부를 훑습니다. 실제 실행:

5. entailment cones — x is-a y ⟺ x ≥ y coordinatewise (reversed product order)
concept | apex | region
Person | (1, 1) | cone(Person) = {p : p ≥ (1, 1)}
Researcher | (2, 2) | cone(Researcher) = {p : p ≥ (2, 2)}
Professor | (3, 2) | cone(Professor) = {p : p ≥ (3, 2)}
Student | (2, 3) | cone(Student) = {p : p ≥ (2, 3)}
Dean | (4, 2) | cone(Dean) = {p : p ≥ (4, 2)}
Paper | (0, 5) | cone(Paper) = {p : p ≥ (0, 5)}
derived is-a pairs (scan of all 6·5 = 30 ordered pairs): 8
Dean is-a Person : (4, 2) ≥ (1, 1)
Dean is-a Professor : (4, 2) ≥ (3, 2)
Dean is-a Researcher : (4, 2) ≥ (2, 2)
Professor is-a Person : (3, 2) ≥ (1, 1)
Professor is-a Researcher : (3, 2) ≥ (2, 2)
Researcher is-a Person : (2, 2) ≥ (1, 1)
Student is-a Person : (2, 3) ≥ (1, 1)
Student is-a Researcher : (2, 3) ≥ (2, 2)
transitivity is inherited from ≥ : Professor(3,2) ≥ Researcher(2,2) ≥ Person(1,1)
⟹ Professor(3,2) ≥ Person(1,1) — Professor is-a Person, never asserted
incomparability (no order either way):
Paper(0,5) vs Person(1,1) : 0 < 1 in dim 1 but 5 > 1 in dim 2
Professor(3,2) vs Student(2,3) : 3 > 2 in dim 1 but 2 < 3 in dim 2
cone-derived order = the 8 gold subsumptions exactly: True

훑기는 정확히 골드 8쌍을 찾아내고, 검증은 cone_pairs == set(GOLD)를 단언합니다(regions.py 244행). 세 가지 특징이 주목에 값합니다. 첫째, 추이성이 또 공짜인데, 공 합성보다 더 초보적인 기제 덕분입니다: 실수 위의 \ge가 추이적이고 좌표별 순서가 차원마다 그것을 물려받으므로, Professor (3,2)(3,2) \ge Researcher (2,2)(2,2) \ge Person (1,1)(1,1)은 어떤 배치 작업도 없이 Professor (3,2)(3,2) \ge Person (1,1)(1,1)함의합니다. 둘째, 비교 불가능성이 실제 표현 작업을 합니다. Paper의 꼭짓점 (0,5)(0, 5)는 첫 좌표에서 Person의 (1,1)(1,1)보다 아래이지만 둘째 좌표에서는 위이므로 어느 원뿔도 다른 쪽을 담지 않습니다: 부류를 가로지르는 쌍 (Paper, Person)은 온톨로지의 요구 그대로 양방향 모두 무관하다고 나오고, 같은 트레이드오프가 형제인 Professor (3,2)(3,2)와 Student (2,3)(2,3)를 서로 순서 없는 채로 남깁니다. 셋째, 원뿔 어휘가 말할 수 없는 것에 주목하십시오. 순서는 \ge와 그 실패만을 줄 뿐, 그 이상은 없습니다; "이 두 원뿔은 서로소다"를 뜻하는 검사는 없으며, 실제로 원뿔들은 결코 서로소가 아닌데, 충분히 큰 좌표를 가진 점은 모든 원뿔에 들기 때문입니다. 비교 불가능성은 Professor와 Student 사이의 거짓 포섭들을 올바르게 보류하지만, 양의 공리 Professor ⊓ Student ⊑ ⊥는 원뿔 부호화를 아예 갖지 못합니다. 공 기하가 그것을 분리 부등식 하나로 표현했던 것과 대조적입니다. 각 영역 계열은 논리의 서로 다른 조각을 사들입니다; 그 트레이드오프가 III부를 조직하는 주제가 됩니다. 원뿔 아이디어는 평평한 공간 너머로도 여행합니다: 쌍곡 기하의 측지 볼록 원뿔은 넓고 깊은 위계에 훨씬 많은 방을 내주면서 같은 함의 읽기를 주는데, 이는 쌍곡 임베딩이 나중에 집어 드는 실마리입니다 [3].

구성이 증명하는 것과 훈련이 벌어야 하는 것

이 장이 확립한 것과 확립하지 않은 것을 정확히 해 둡시다. 위의 모든 것은 존재 증명(existence proof)입니다. 공 여덟 개의 배치 하나와 꼭짓점 여섯 개의 배치 하나를 제시함으로써, 우리는 기하 어휘가 이 온톨로지 조각에 대해 충분히 표현력 있음을 보였습니다: 골드 포섭 8건, 서로소 공리, 부류 분리, 그리고 소속 프로필 13개가 허위 추가 0건으로 동시에 성립하는 매개변수 값이 존재합니다. 점수판 gold=8/8 spurious=0 disjoint=7/7 membership=13/13손으로 고른 매개변수 설정의 성질입니다.

이 장이 보이지 않은 것은, 어떤 학습 절차든 그런 설정을 찾아내리라는 것입니다. 배치는 위계 전체를 내다보며 이루어졌습니다: Person의 반지름은 Professor와 Student가 어디에 앉을지 정한 뒤에 골랐고, 접함 4+3=74 + 3 = 7은 발견된 것이 아니라 공학적으로 만들어진 것입니다. 훈련된 모델은 역문제를 마주합니다. 모델은 공리들을 제약으로 받고, 위반된 각 부등식을 손실 항으로 바꾸며(포함 검사는 c1c2+r1\lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + r_1r2r_2를 초과하는 양에 대한 벌점이 됩니다), 중심과 반지름 위에서 1권의 경사 하강을 돌립니다. 최적점이 모든 제약을 정확히 만족한다는 보장은 없습니다: 손실들은 서로 상충하고, 그래디언트들은 간섭하며, 모델은 공리 하나를 조용히 위반한 채로 두거나 어떤 공리도 허가하지 않은 포함을 만들어 내면서도 총손실을 낮게 몰고 갈 수 있습니다. III부부터는 건전성이 구성의 보장이기를 멈추고 경험적 탐침이 됩니다: EL 임베딩을 훈련한 뒤 정확히 이 훑기를 다시 돌려, 살아남은 골드 포섭과 스며든 허위 포섭을 세고, 오늘의 완벽한 점수판과 비교합니다. 이 장은 그 잣대를 고정합니다.

영역을 떠나기 전에 정직하게 언급할 형제가 하나 있습니다. 가우시안 임베딩(Gaussian embedding)은 개념을 확률 밀도로, 곧 개념의 질량이 각 방향으로 얼마나 퍼지는지 말해 주는 공분산을 가진 평균으로 표현합니다: 한 점에서의 밀도 값으로 등급 있는 소속을 읽어 내는 부드러운 영역입니다 [4]. 함의의 방향은 비대칭 비교인 쿨백-라이블러 발산(Kullback–Leibler divergence)에서 옵니다: KL(fg)\mathrm{KL}(f \parallel g)ff의 질량이 gg도 질량을 가진 곳에 놓일 때 작으므로, 특수한 개념은 작은 공이 큰 공 안에 들어가듯 일반적 개념 안에 둥지를 틀되, 가장자리가 흐릿하고 불확실성이 내장되어 있습니다. 그 확률적 읽기는 베타·확률 임베딩에서 전개됩니다; 여기서는 "영역"이 꼭 "단단한 경계"를 뜻할 필요는 없다는 상기로서 서 있습니다.

아직 풀리지 않은 부분

공은 개념당 매개변수 둘로 비대칭성, 추이성, 소속, 서로소성을 사들였고, 우리의 작은 위계에서는 만점을 받았습니다. 두 가지 구조적 결함이, 공이 최종 답이 될 수 없다고 말합니다.

첫째는 등방성(isotropy)입니다. 공은 반지름이 하나여서, 개념이 공간의 모든 방향으로 정확히 같은 거리만큼 뻗습니다. 실제 개념은 둥글지 않습니다. 어떤 임베딩 차원 하나는 경력 단계를, 다른 하나는 연구 분야를 부호화하게 되었다고 해 봅시다: Student는 경력 단계 방향으로는 좁고 연구 분야 방향으로는 넓어야 합니다. 공은 이를 말할 수 없습니다; 모든 연구 분야를 덮도록 반지름을 늘이면 배제해야 할 경력 단계들까지 개념이 부풀고, 줄이면 정당한 구성원이 잘려 나갑니다. 개념 몇 개짜리 2차원에서는 모든 것을 넉넉히 띄워 놓아 문제를 피했지만, 수십만 개념의 온톨로지를 학습한 고차원 임베딩에서는 반지름 하나의 예산이 정확히 III부의 탐침들이 찾아다니는 포함 오류를 강제합니다.

둘째 결함은 더 깊습니다: 공들의 계열은 유용한 어떤 연산에 대해서도 닫혀 있지 않습니다. 2권의 논리는 연접 위에 지어졌습니다; 완성 알고리즘은 A1A2BA_1 \sqcap A_2 \sqsubseteq B 형태의 공리에 규칙 하나(CR2)를 통째로 썼습니다. 개념의 연접은 영역의 교집합입니다. 그러나 어느 쪽도 다른 쪽을 담지 않는, 부분적으로 겹치는 두 공을 교차시키면 (2차원 이상에서는) 날카로운 테를 가진 렌즈 모양 입체가 나오는데, 이는 공이 아닙니다: 어떤 중심-반지름 쌍도 그것과 같지 않으므로, 교집합은 표현 안에 이름이 없습니다. 시스템은 두 공이 겹치는지 검사할 수는 있어도 그 연접을 일급 객체로 수 없고, 그 안에 다른 개념을 둥지 틀게 할 수 없으며, 다중 홉 질의로 이어 붙일 수 없습니다. 논리가 반복하는 모든 연산(교차하고, 관계를 따라가고, 다시 교차하는 것)은 영역 계열이 그 연산에 대해 닫혀 있기를 요구하는데, 공은 첫 단계에서 실패합니다. 어떤 단순한 매개변수 계열이 경사 하강으로 학습 가능하면서 논리가 반복하는 모든 연산에 대해 닫혀 있을 수 있는지는 살아 있는 연구 질문입니다; 이 권의 모든 계열은 어딘가에 선을 긋고, 그 선이 어디인지의 장부 정리가 박스 대 공의 주제입니다.

한 계열이 연접을 단칼에 고칩니다. 축에 정렬된 박스(box)는 차원마다 하나씩인 구간들의 곱입니다: 차원별 폭이 등방성을 없애고, 두 박스의 교집합은 좌표별로 다시 박스입니다. 그 닫힘이 정확히, 박스가 다음 장의 연접적 다중 홉 질의를 실행할 수 있게 해 주는 것입니다.

왜 중요한가

이 장은 이 권의 논증이 도는 경첩입니다. I부는 정직한 시인으로 끝났습니다: 점 임베딩은 사실의 순위를 매기고, 순위 매김은 추론이 아닙니다. 영역은 이 책에서 논리적 판단이 훈련된 경향이 아니라 기하적 불변량에, 정확하고 증명 가능하게 대응하는 첫 번째 표현입니다 [1]. 세 검사가 인터페이스의 전부입니다: 소속은 거리 비교 하나, 포섭은 세 수에 대한 부등식 하나, 서로소성은 또 다른 하나입니다. 각 검사는 영역의 매개변수에 대한 닫힌 형태의 식이므로 그 매개변수에 대해 미분할 수 있고, 따라서 각각이 손실(loss)을 겸할 수 있습니다: 위반량 max(0,c1c2+r1r2)\max(0,\, \lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + r_1 - r_2)에 벌점을 매기면 경사 하강이 기하를 공리를 만족하는 쪽으로 밀 것입니다. (엄밀히는 거의 모든 곳에서 미분 가능합니다: 힌지 max(0,)\max(0, \cdot)는 위반이 0인 곳에 꺾임이 있고, 노름은 중심이 겹치는 곳에 꺾임이 있습니다; 훈련은 거기서 서브그래디언트를 내려가며, EL 임베딩이 각 힌지의 서브그래디언트를 명시적으로 진술합니다.) 그 관찰이 III부의 하중을 받치는 아이디어입니다. 거기서 ELEm 계열의 공 임베딩과 그 박스 후계자들이 정확히 그런 손실을 내려가며 2권의 TBox를 학습하고, 4권은 그 패턴을 미분 가능한 논리 일반으로 일반화합니다. 그 학습된 시스템들이 건전성 감사를 받을 때, 감사는 곧 이 장의 훑기입니다: 보존된 골드 포섭을 세고, 허가된 적 없이 들어온 허위 포섭을 셉니다. 잣대도, 만점이 기하적으로 가능하기는 하다는 증명도, 모두 여기서 옵니다.

핵심 용어

  • 영역 임베딩(region embedding) — 개념을 점이 아니라 Rn\mathbb{R}^n의 부분집합으로 삼아, 소속·포섭·서로소성이 각각 점-영역 포함, 영역 포함, 분리가 되게 하는 표현입니다.
  • B(c,r)B(\mathbf{c}, r) — 중심 c\mathbf{c}에서 거리 rr 이내에 있는 점들의 닫힌 집합입니다; 소속은 단일 검사 xcr\lVert \mathbf{x} - \mathbf{c} \rVert \le r입니다.
  • 포함 정리(containment theorem) — B(c1,r1)B(c2,r2)B(\mathbf{c}_1, r_1) \subseteq B(\mathbf{c}_2, r_2)c1c2+r1r2\lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert + r_1 \le r_2와 동치입니다; 삼각 부등식으로 건전하고, 최악의 점 구성으로 정확합니다.
  • 분리 검사(separation test) — c1c2>r1+r2\lVert \mathbf{c}_1 - \mathbf{c}_2 \rVert \gt r_1 + r_2는 서로소성을 강제합니다; 등호에서는 닫힌 두 공이 접점 하나에서 만납니다.
  • 삼각 부등식(triangle inequality) — u+vu+v\lVert \mathbf{u} + \mathbf{v} \rVert \le \lVert \mathbf{u} \rVert + \lVert \mathbf{v} \rVert; 포함, 서로소성, 추이성을 한꺼번에 떠받치는 단 하나의 기하적 사실입니다.
  • 부분 순서(partial order) — 반사적이고 추이적이며 반대칭적인 관계입니다; 집합 포함은 부분 순서이고 대칭적 거리는 아니며, 그 불일치가 대칭적으로 채점된 점이 개념에 실패하는 이유입니다.
  • 순서 임베딩 / 뒤집힌 곱 순서(order embedding / reversed product order) — 개념을 꼭짓점으로, is-a를 좌표별 부등식 xy\mathbf{x} \ge \mathbf{y}로 삼는 표현입니다; 특수한 개념이 더 큰 좌표에 앉습니다.
  • 함의 원뿔(entailment cone) — 꼭짓점이 소유하는 영역 {p:py}\{\mathbf{p} : \mathbf{p} \ge \mathbf{y}\}입니다; 원뿔 포함은 꼭짓점 순서와 일치합니다.
  • 비교 불가능성(incomparability) — 어느 점도 다른 점을 좌표별로 지배하지 않는 상태입니다; 원뿔이 (Paper, Person)과 (Professor, Student)를 올바르게 무관한 채로 남기는 방식입니다.
  • 허위 포함(spurious containment) — 논리가 허가한 적 없는 기하적 포함입니다; 건전성 탐침이 세는 양이며, 여기서는 구성상 0입니다.
  • 등방성(isotropy) — 공의 반지름 하나가 모든 방향을 똑같이 감당해야 하는 한계입니다.
  • 교집합에 대한 닫힘(closure under intersection) — 연접이 계열 안에 머무르기 위해 영역 계열에 필요한 성질입니다; 공에는 없고(두 공은 렌즈 모양으로 만납니다) 박스에는 있습니다.

이 장이 이끄는 곳

공은 개념에 안쪽을 주었고, 가격표는 이제 명시적입니다: 이 위계에서는 완벽하지만, 개념당 반지름 하나뿐이고 연접을 쥘 방법이 없습니다. 다음 장은 두 결함을 한꺼번에 수선하는 영역 계열을 채택합니다. 박스 임베딩은 개념을 차원별 구간들의 곱으로 표현하고, 두 박스의 교차가 좌표별 구간 교차에 지나지 않음을 보이며, 그 닫힘을 가장 값진 곳에 씁니다: 박스들의 교차와 이동으로 학계 지식 그래프 위의 다중 홉 연접 질의에 답하는 Query2Box 기하입니다.


동반 코드: examples/neural/regions.py는 이 장의 두 기하를 모두 구성하고 모든 주장을 정확하게 검증합니다: 골드 집합은 2권의 el_completion.classify()에서 다시 유도되고, 56개의 개념 순서쌍 전부가 포함 여부로 훑어지며, 7건의 분리와 13건의 소속 프로필이 검사되고, 원뿔 훑기는 골드 여덟과 같음이 단언됩니다. 위에 인용된 모든 표와 숫자를 재현하려면 python3 examples/neural/regions.py를 실행하십시오; 기하는 구성으로 배치되므로 출력은 매 실행마다 바이트 단위로 동일합니다.