본문으로 건너뛰기

솔직한 평결: 벡터가 담을 수 있는 것과 없는 것

📍 현재 위치: VI부 · 평결 — 18장. 소프트 단일화는 증명서 대신 커널 점수 위에서 성립하는 증명으로 V부를 마쳤습니다; 이제 우리는 그 점수가 속한 원장을 결산하며 이 권을 닫습니다: 벡터가 진정으로 담는 것과, 오직 기호만이 보장하는 것입니다.

이 장은 새로운 모델을 하나도 더하지 않습니다. 이 권 전체를 감사하되, 의도적으로 2권의 마무리 평결과 거울상을 이루는 구조로 진행합니다: 기하가 진정으로 해내는 것들의 열 하나, 해낼 수 없는 것들의 열 하나, 그리고 모든 행 뒤에 놓인 실행 가능한 원장(ledger)입니다. 열일곱 개 장에 걸쳐 여러분은 학계 지식 그래프를 점, 이동, 쌍선형 형식, 공, 박스, 베타 밀도, 쌍곡 좌표, 메시지 전달 상태, 어텐션 맵, 홀로그래픽 벡터, 소프트 증명으로 임베딩했습니다. 하중을 받는 모든 숫자는 시드가 고정된 모듈의 커밋된 출력이었으므로, 이 평결은 수사에 기대지 않습니다. 그것은 종료 코드가 이 권의 수락 판정인 validate.py에 기대고, 하중을 받는 세 손실 그래디언트를 torch.autograd로 재계산하여 기계 정밀도 수준에서 일치를 확인한 독립 오라클 torch_check.py에 기댑니다; 스위트에 남은 손으로 유도한 미적분은 모듈별로 지켜지고, 그중 둘은 자체 중앙차분 검사를 갖추고 있으며, 아래 방법론 절이 어느 검사가 무엇을 담보하는지를 정확히 밝힙니다.

쉽게 말하면

2권의 꼼꼼한 감사관이 노련한 스카우트와 한 사무실을 쓰는 모습을 상상해 보세요. 감사관은 영수증이 증명하는 것만 인증하고 추측을 거부합니다; 스카우트는 만 번의 경기를 지켜본 사람으로, 이름 철자가 틀렸든 경기 기록이 하나 빠졌든 개의치 않고, 어느 무명 선수가 아마도 훌륭할지를 섬뜩하리만큼 정확하게 짚어 줍니다. 그러나 스카우트는 아무것도 인증할 수 없습니다: 여러분이 얻는 것은 확률이지 영수증이 아니며, 증명을 내놓으라고 다그치면 스카우트는 어깨를 으쓱하고는 오랜 세월의 관전으로 몸에 밴 감을 가리킬 뿐입니다. 이 권은 그 스카우트를 고용했습니다. 평결이란 두 사람의 직무 기술서를 한 페이지에 나란히 적고, 어느 쪽도 상대의 일을 대신할 수 없음을 인정하는 순간입니다.

이 장에서 다루는 내용

  • 평결, 담백하게 말하면: 기하는 여러분이 한 번도 적어 두지 않은 지식 위에서 훈련할 수 있는 그럴듯함을 사 주되, 더는 가질 수 없게 된 확실성을 값으로 치릅니다.
  • 무엇이 진정으로 견고한가: 고정 무작위 기준선 대비 MRR(mean reciprocal rank, 평균 역순위) 상승, 구성했을 때 논리를 정확히 담고 훈련했을 때 그것을 복원하는 영역, 정확한 박스 논리곱, 쌍곡 공간의 임베딩 차원 d=2d = 2에서의 계층, 그리고 동의어에도 살아남는 증명. 각각 커밋된 숫자와 함께입니다.
  • 무엇이 손 닿지 않는 곳에 남는가: 0이 아닌 손실에서는 함의 보장이 없다는 사실, DistMult의 대수적으로 강제된 동점, 공이 피할 수 없는 거짓 양성 렌즈 덮개, 1-WL(1차원 바이스파일러-레만) 천장, 용량 감쇠, 그리고 보정되지 않은 점수.
  • 결과로서의 방법론: 스위트의 모든 그래디언트는 손으로 유도되었습니다; 하중을 받는 세 손실 계열은 torch.autograd에 대조하여 인증되고, 두 모듈은 자체 중앙차분 검사를 더하며, 나머지는 역량 결과로 담보됩니다. 검사 원장을 정확히 밝히고, 왜 독립 오라클이 중요한지를 말합니다.
  • 실행 가능하게 만든 증거: 15/15 역량 원장, 주장 하나에 검사 하나, 각 검사가 지키는 장에 대응됩니다.
  • 다섯 가지 반복되는 긴장: 정확함 대 견고함, 증명 대 점수, 이산 대 미분 가능, 구성 대 학습, 폐포 대 용량. 4권이 화해시켜야 하는 축들입니다.
  • 정직한 조언: 모든 신경망 실험 옆에 기호적 금본위 기준을 실행 가능한 상태로 두십시오; 그 규율이 곧 축소판 신경-기호 방법론입니다.

평결, 담백하게 말하면

여기 전체 결론을 한 줄로 적습니다: 기하는 여러분이 한 번도 적어 두지 않은 지식 위에서 훈련할 수 있는 그럴듯함을 사 주되, 더는 가질 수 없게 된 확실성을 값으로 치릅니다 [1]. 이는 기호가 여러분이 반드시 적어 두고 일관되게 유지해야 하는 지식 위에서 신뢰하고 설명할 수 있는 올바름을 사 준다는 2권의 평결과 정확히 거울상이며, 이번에도 두 절 모두가 무게를 지닙니다. 훈련할 수 있는 그럴듯함이 보상입니다: TransE는 erin이 cmu에 소속되어 있다는 것을 한 번도 듣지 못했지만, 나머지 커밋된 트리플들 위에서 경사 하강을 거친 뒤 그 진실을 상위권에 올려놓습니다. 손실이 적어 두지 않은 사실이 적어 둔 사실 가까이에 앉는 기하를 깎아 냈기 때문입니다. 더는 가질 수 없게 된 확실성이 대가입니다: 이 권이 만들어 낸 어떤 점수도 정리가 아닙니다. 거리는 함의(entailment)가 아닙니다; 그것은 등급 매겨진 내기이며, 그 신뢰성은 오직 경험적으로만, 즉 이 기하를 2권의 정확한 분류기에 맞대어 어디서 어긋나는지를 세어 봄으로써만 잴 수 있었습니다. 평결은 승자가 아닙니다. 분업이며, 아래의 모든 행은 명령 하나로 재생성할 수 있는 숫자입니다.

공유된 학계 지식 그래프 위에 그린 두 열짜리 원장으로, 2권의 기호적 평결 다이어그램과 거울상을 이룹니다. 왼쪽 열은 벡터가 담는 것이라는 제목이 붙어 있으며, 초록 도장이 찍힌 다섯 개의 행을 담고 있습니다: 고정 무작위 기준선 0.1062에서 훈련된 0.7778로 솟아오르는 필터링된 MRR 막대; 구성된 영역이라는 이름표가 붙은 겹겹의 공 무리로, 여덟 개 중 여덟 개의 금본위 포섭과 허위 0건; 모서리별 교집합에 정확함, 격자 불일치 0건이라는 이름표가 붙은 겹쳐진 두 박스; 2차원에서의 계층이라는 이름표가 붙은, 테두리를 향해 나무가 펼쳐지는 푸앵카레 원판으로, 스피어만 0.8136이 유클리드 0.7539를 앞섭니다; 그리고 하드 증명기가 빈 결과를 보이는 자리에서 동의어를 거쳐 0.9783으로 점수 매겨진 소프트 증명 사슬입니다. 오른쪽 열은 손 닿지 않는 곳에 남는 것이라는 제목이 붙어 있으며, 장미색 여섯 행을 담고 있습니다: 모델 없음, 함의 보장 없음이라는 이름표가 붙은, 0이 아닌 잔여 손실 0.6848의 공 기하; 순방향과 역방향 인용이 정확히 4.8879로 동점인 DistMult 점수표; 두 원이 이루는 렌즈를 덮는 최소 덮개 공에서 60.6퍼센트의 거짓 양성 넓이가 새어 나오는 그림; 동일한 색 히스토그램을 공유하는 두 개의 작은 삼각형 그래프와 하나의 육각형에 1-WL에 보이지 않음이라는 이름표; 저장된 트리플이 늘어남에 따라 재현율이 1.0에서 0.62로 바래는 단일 홀로그래픽 벡터; 그리고 보정되지 않음이라고 표시된 확률 다이얼입니다. 두 열 아래로는 정확함 대 견고함, 증명 대 점수, 이산 대 미분 가능, 구성 대 학습, 폐포 대 용량이라는 이름표가 붙은 다섯 개의 슬라이더 축이 지나갑니다. 하단에는 두 개의 도장이 찍혀 있는데, 하나는 신경망 동반자, 열다섯 중 열다섯 역량 검사 통과라고, 다른 하나는 일치 확인, 수동 그래디언트가 torch autograd와 일치라고 적혀 있으며, 점선 화살표가 두 열을 떠나 그래디언트 화살표가 논리 게이트를 꿰뚫는 4권이라는 이름표가 붙은 상자로 향합니다. 권을 마무리하는 원장: 벡터가 진정으로 담는 것 다섯 개의 초록 행, 오직 기호만이 보장하는 것 여섯 개의 장미색 행, 그 아래 다섯 개의 긴장 슬라이더, 하단의 실행 가능한 두 도장, 그리고 두 열을 통합의 권으로 넘겨주는 점선 화살표. 저자가 AI의 도움을 받아 직접 제작한 원본 도해.

무엇이 진정으로 견고한가

이 권의 다섯 가지 결과는 기계적이고, 재현 가능하며, 통과하거나 빌드를 빨갛게 만드는 이름 붙은 검사들이 지키고 있습니다. 먼저 원장을, 그다음 부연을 적습니다.

벡터가 담는 것커밋된 증거모듈
링크 예측(link prediction)이 순위를 우연보다 훨씬 높이 끌어올린다필터링된 MRR 0.77780.7778 대 고정 무작위 기준선 0.10620.1062transe.py이동 모델
영역은 구성하면 논리 구조를 정확히 담을 수 있다금본위 포섭 8/88/8, 허위 00건, 소속 13/1313/13regions.py공과 원뿔
훈련된 영역이 분류를 복원한다공은 금본위 8/88/8을 허위 00건, 누락 00건으로 복원; 박스도 동일하며, 정확한 논리곱(⊓, 개념 교집합)까지 갖춤el_embed.py, box_el.pyEL 임베딩, BoxEL과 Box²EL
박스는 논리곱을 정확하게 만든다조밀한 소속 격자에서 불일치 00boxes_vs_balls.py박스 대 공
쌍곡 공간은 d=2d = 2에서 계층을 담아낸다스피어만 0.81360.8136 대 같은 차원의 유클리드 0.75390.7539hyperbolic.py쌍곡 임베딩
소프트 매칭은 하드 증명기를 죽이는 동의어에서 살아남는다하드 단일화가 아무것도 돌려주지 못하는 곳에서 소프트 증명이 0.97830.9783으로 채점됨soft_unification.py소프트 단일화

적어 두지 않은 사실 위의 그럴듯함. I부의 대표 지표는 필터링된 평균 역순위(filtered mean reciprocal rank, MRR)입니다. 기호에 앞서 풀어 읽으면: 3개의 제외된 시험 트리플로 만든 Q=6|Q| = 6개의 순위 질의(각각 머리 질의 하나와 꼬리 질의 하나) 각각에 대해, 모델이 13개 개체 전부를 점수로 정렬하고, 이미 참으로 알려진 다른 답들은 걸러 내며, ranki\mathrm{rank}_i는 질의 ii에서 정답 개체가 차지한 위치입니다. 그러면

MRR  =  1Qi=1Q1ranki,\mathrm{MRR} \;=\; \frac{1}{|Q|} \sum_{i=1}^{|Q|} \frac{1}{\mathrm{rank}_i},

이므로 완벽한 모델은 1.01.0점을 받습니다. 두 개의 기준점이 눈금을 보정합니다. 커밋된 고정 무작위 대조군, 즉 링크 예측의 시드-1 미훈련 기하를 동일한 평가에 통과시킨 결과는 0.10620.1062입니다; 그리고 그 장에서 유도한 해석적 우연 수준은 0.25430.2543인데, 필터링된 후보 풀의 크기가 mm이면 모든 순위가 동등하게 나올 수 있으므로 기대 역순위는 1mk=1m1k\frac{1}{m}\sum_{k=1}^{m}\frac{1}{k}이고, 이 양을 여섯 질의의 풀에 걸쳐 평균하면 0.25430.2543이 나오기 때문입니다(고정 뽑기가 자신의 기댓값보다 낮게 앉는 이유는 그것이 무작위 기하의 표본 하나이지 뽑기들에 대한 평균이 아니기 때문입니다). transe.py의 커밋된 실행은 MRR=0.7778\mathrm{MRR} = 0.7778에 안착하고, 정답이 1위로 매겨진 질의의 비율인 Hits@1은 0.66670.6667이며, 훈련 손실은 1.58271.5827에서 0.00720.0072로 떨어집니다. 모델이 한 번도 본 적 없는 사실 위에서 고정 무작위 대조군의 일곱 배, 해석적 우연 수준의 세 배에 이르는 상승: 그것이 신경망 기둥의 핵심 성과물이며, 진술되지 않은 것 앞에서 기권하는 기호적 추론기가 결코 내놓을 수 없는 바로 그것입니다 [1].

영역은 논리를 담을 수 있습니다, 처음에는 정확하게, 그다음에는 근사적으로. II부는 이 기하가 충분히 표현력 있다는 것을 구성으로 보였습니다: regions.py는 공들을 손으로 배치하여, 기하적 포섭 검사가 2권의 금본위 포섭 8개 전부를 허위 추가 0건으로, 7개의 서로소 쌍 전부를, 그리고 13개의 개체 소속 전부를 재현하게 만듭니다. III부는 이어서 구성이 증명한 것을 훈련이 벌어들일 수 있는지를 물었습니다. 프로브의 설계는 두 온톨로지 모듈에서 동일하지만, 담김 검사와 허용 오차는 각 영역 계열이 자기 것을 갖습니다. 공 프로브는 공 AA가 여유 ε\varepsilon을 두고 공 BB 안에 들어앉을 때, 그리고 오직 그때에만 ABA \sqsubseteq B("모든 AABB다"라고 읽습니다)를 단언합니다,

cAcB+rA    rB+ε,\lVert \mathbf{c}_A - \mathbf{c}_B \rVert + r_A \;\le\; r_B + \varepsilon,

여기서 cA\mathbf{c}_A는 공의 중심, rAr_A는 그 반지름, cAcB\lVert \mathbf{c}_A - \mathbf{c}_B \rVert는 두 중심 사이의 유클리드 거리(차 벡터의 직선 길이)이며, ε=0.15\varepsilon = 0.15는 한 번 정한 뒤 동결된 허용 오차입니다(el_embed.py 55행). 박스 프로브는 대신 축마다 박스 AA의 모서리가 박스 BB 밖으로 얼마나 튀어나오는지를 재고, 그 최악 축의 간극이 세 배 더 엄격한 자체 허용 오차 ε=0.05\varepsilon = 0.05 이하일 때 ABA \sqsubseteq B를 수락합니다(box_el.py 128행). 충족 가능한 이름 붙은 개념들의 순서쌍 87=568 \cdot 7 = 56개 전부를 금본위 기준에 대조하여 채점하면, 훈련된 ELEm(EL Embeddings) 공들은 깨끗한 혼동 표를 내놓습니다: 참 양성 8, 거짓 양성 0, 거짓 음성 0, 참 음성 48, 정밀도와 재현율 모두 1.00001.0000. 훈련된 BoxEL 방식의 박스들도 이에 맞먹는 8/88/8을 기록하며, Professor 박스와 Student 박스는 진정으로 떨어져 있습니다(축별 최소 중첩 0.0304-0.0304, 음수는 적어도 한 축에서 분리되어 있음을 뜻합니다).

계열이 닫혀 있으면 논리곱은 정확합니다. 아래 모서리 l\mathbf{l}과 위 모서리 u\mathbf{u}를 가진 박스들의 교집합은 다시 박스이며, 좌표별로 li=max(liA,liB)l_i^{\cap} = \max(l_i^A, l_i^B)ui=min(uiA,uiB)u_i^{\cap} = \min(u_i^A, u_i^B)로 계산되므로, 교집합에의 소속은 두 소속의 논리곱과 점 하나하나 수준에서 같습니다. boxes_vs_balls.py는 이 항등식을 조밀한 격자 위에서 검증하여 불일치 0건을 확인합니다; 같은 모듈은 공이 같은 검사에 실패하는 모습도 보여 주는데, 이는 아래에서 다시 다룹니다.

계층은 굽은 2차원에 들어맞습니다. 22개 노드짜리 계층 위에서, d=2d = 2의 푸앵카레 공(Poincaré ball) 임베딩은 그래프 자체의 거리를 스피어만 순위 상관(Spearman rank correlation) 0.81360.8136으로 추적하고(스피어만은 두 거리 목록의 순서를 상관시키며, 1.01.0은 순서가 동일함을 뜻합니다), 같은 차원의 유클리드 대조군 0.75390.7539를 앞서며, 임베딩 노름은 깊이에 따라 단조 증가합니다. 지수적으로 자라나는 나무야말로 음의 곡률 공간이 존재하는 이유이며, 이 맞대결은 동일한 매개변수 예산 위에서 그 주장을 성립시킵니다.

어휘 변동에 대한 견고함. 1권의 하드 증명기는 질의 supervises(bob, Z)에 그 자리에서 실패합니다. 어떤 사실도 술어 supervises를 쓰지 않기 때문입니다: 하드 단일화(unification)는 기호의 동일성을 요구하는데, 지식 베이스는 advises라고 말합니다. 앞 장의 소프트 증명기는 술어를 임베딩 유사도로 맞추어, 커널 값 k(supervises,advises)=0.9783k(\text{supervises}, \text{advises}) = 0.9783을 거쳐 점수 0.97830.9783으로 증명을 완성하고, 하드 증명기가 원래 술어에 대해 찾는 것과 같은 두 답을 돌려주며, 무관한 대조 질의 cites(bob, Z)는 수락 임계값 아래에 안전하게 머무릅니다(τ=0.80\tau = 0.80에 대해 0.46210.4621). 동의어는 기호 표에게는 잡음이고 기하에게는 신호입니다.

손 닿지 않는 곳에 남는 것

이제 다른 쪽 열입니다. 아래의 각 간극은 더 나은 학습률을 기다리는 공학적 미비가 아닙니다; 각각은 대수적 사실이거나 정리의 부재이며, 각각 커밋되었거나 인용된 증거를 갖추고 있습니다.

모델이 없으면 함의 보장도 없습니다. 논리학에서 이 보장은 모델을 가짐에서 흘러나옵니다: 훈련된 기하가 모든 공리를 정확히 만족한다면 그것은 온톨로지의 모델이 되고, 온톨로지가 함의하는 모든 진술이 그 기하 안에서도 성립할 것입니다. 함의에 대한 완벽한 재현율입니다(다만 여러 모델 가운데 하나일 뿐인 그 모델은 온톨로지가 결코 함의하지 않는 여분의 담김까지 만족할 수 있으므로, 정밀도는 약속에 들어 있지 않습니다). 손실 0은 정확히 그것을 인증할 것입니다. 커밋된 ELEm 실행은 손실 0.68480.6848에서 바닥을 치며, 증명 가능하게 0에 도달할 수 없습니다: 서로소 경첩(hinge)이 Professor와 Student 두 공을 γd\gamma_d, 즉 경첩이 강제하는 서로소 여유(el_embed.py 46행이 γd=0.1\gamma_d = 0.1로 설정합니다)만큼 떼어 놓는 동안, 어떤 기하도 TenuredStudent를 그 두 공 안에 동시에 넣을 수 없으므로, 충족 불가능한 개념들이 줄어들지 않는 잔여를 남깁니다. 따라서 위의 깨끗한 8/88/8 혼동 표는 올바르게 읽어야 합니다: 그것은 조정된 뒤 동결된 ε\varepsilon을 가지고 14개 공리짜리 TBox(terminological axiom box, 온톨로지의 개념 수준 공리 집합) 위에서 얻은 측정된 결과이지, 어떤 정리의 귀결이 아닙니다. 이 프로브는 표가 깨끗하지 않게 되는 날을 위해 만들어져 있습니다; el_embed.py 433-440행은 모든 거짓 양성을 이름과 함께, 위반된 부등식을 낱낱이 적고 "unsound!"라는 판정을 붙여 출력하는데, 훈련된 공은 그것을 허가하는 공리가 없어도 다른 공 안으로 흘러들 수 있고 손실의 어떤 항도 그것을 금지하지 않기 때문입니다. 모듈 자신의 독스트링(21-30행)이 정직한 입장을 밝힙니다: 훈련된 모델은 건전한 추론기가 아니라 그 근사일 뿐이며, 거짓 양성이 언제 나타나든 그것이 이야기의 핵심입니다. 한 공리는 손실에 아예 도달조차 못 했습니다: 역할 사슬 advises ∘ advises ⊑ grandAdvisor(합성 기호 ∘는 advises를 자기 자신과 이어 붙입니다: 지도교수의 지도교수)는 ELEm으로 표현할 길이 전혀 없으므로, 16개의 정규형 가운데 15개가 훈련되었고 16번째는 소리 내어 건너뛰었습니다. BoxEL의 더 낮은 잔여(0.06780.0678)는 간극을 줄이지만, 그 종류를 바꾸지는 못합니다.

모델 계열은 어떤 훈련이 시작되기도 전에 대수에 의해 틀릴 수 있습니다. DistMult는 트리플을 s(h,r,t)=i=1dwr[i]eh[i]et[i]s(h, r, t) = \sum_{i=1}^{d} w_r[i]\, e_h[i]\, e_t[i]로 채점하는데, 여기서 eh,ete_h, e_t는 머리와 꼬리 개체 벡터, wrw_r은 관계 벡터, iidd개의 좌표를 훑는 첨자입니다. 각 항이 세 스칼라의 곱이고 스칼라 곱셈은 교환 가능하므로, 모든 좌표에서 eh[i]et[i]=et[i]eh[i]e_h[i]\, e_t[i] = e_t[i]\, e_h[i]이고, 따라서 모든 매개변수 설정에 대해 s(h,r,t)=s(t,r,h)s(h, r, t) = s(t, r, h)입니다. 어떤 그래디언트 스텝도 이 동점을 결코 깰 수 없습니다. 커밋된 실행은 이를 그래프의 반대칭 인용 관계 위에서 구체화합니다: 순방향 인용 (p2,cites,p1)(p2, \textit{cites}, p1)만이 참으로 훈련되었는데도 결과는 이렇습니다:

score DistMult ComplEx
s(p2, cites, p1) true 4.8879 6.6413
s(p1, cites, p2) false 4.8879 -4.5805
|forward - reverse| 0.0000 11.2217

DistMult는 거짓인 역방향을 참인 사실과 마지막 자릿수까지 똑같이 그럴듯하다고 채점하는 반면, ComplEx의 켤레화된 꼬리 슬롯은 대칭을 깨고 두 방향을 11.221711.2217만큼 갈라놓습니다. 이 천장은 하류에서도 드러납니다: 같은 프로토콜에서 DistMult의 MRR은 0.19620.1962로 ComplEx의 0.51670.5167에 맞섭니다. 교훈은 일반화됩니다: 점수 함수의 표현력 실패는 계열에 관한 정리이지, 한 실행의 결함이 아닙니다.

공은 정확하게 교차할 수 없습니다. 두 공의 교집합은 렌즈이고 렌즈는 공이 아니므로, 공 기반 모델은 모든 논리곱을 그것을 담는 공으로 덮어야 합니다. boxes_vs_balls.py는 반지름 1.5짜리 두 공이 겹치는 렌즈의 최소 둘레 공을 계산하고 결정론적인 조밀 격자 위에서 비용을 잽니다: 렌즈의 넓이는 1.54871.5487, 최선의 덮개 공 넓이는 3.92703.9270이므로, 덮개의 60.56%60.56\%거짓 양성 넓이, 즉 어느 피연산자의 겹침에도 속하지 않으면서 논리곱 안에 있다고 단언된 점들이며, 구체적 증인이 (0.1173,0.0160)(-0.1173, -0.0160)에서 출력됩니다. 이것은 기하이지 과소적합이 아닙니다; 교집합에 대해 닫혀 있는 박스 계열이 위의 불일치 0건 행을 벌어들인 정확한 이유입니다.

1-WL 너머의 구조는 보이지 않습니다. 서로 떨어진 두 삼각형과 하나의 육각형은 증명 가능하게 비동형입니다(한쪽은 삼각형을 두 개 담고, 다른 쪽은 하나도 담지 않습니다). 그런데도 1차원 바이스파일러-레만(Weisfeiler-Leman) 색 정제는 두 그래프의 서로소 합집합 위에서 한 라운드 만에 동일한 색 히스토그램으로 안정화되며, 양쪽 모두 단일 색의 노드 여섯 개가 되어 wl.pyidentical = True로 출력합니다. 메시지 전달 그래프 신경망은 기껏해야 1-WL이 구별하는 것까지만 구별하므로, 폭이든 깊이든 훈련 예산이 얼마이든, 그런 네트워크는 2×C₃와 C₆를 다르게 임베딩할 수 없습니다 [2]. 이 천장은 통계적이 아니라 논리적입니다: 이 권의 표현력 장은 그것을 두 변수 셈 논리 C²에 정확히 자리매김했습니다.

단일 벡터 메모리는 부하와 함께 쇠퇴합니다. V부의 홀로그래픽 메모리는 18개 트리플로 이루어진 그래프 전체를 하나의 1024차원 벡터에 저장하고 18개 질의 전부에 올바르게 답합니다. 그러나 중첩(superposition)은 용량을 소모합니다: 50개 개체 어휘에 대한 커밋된 스윕에서, 18개 트리플을 저장한 d=64d = 64의 정확도는 이미 0.27780.2778까지 내려앉고, d=1024d = 1024에서조차 18개 트리플에서의 1.00001.0000이 200개에서 0.62000.6200으로 미끄러집니다. 이 쇠퇴는 완만하며, 그것이 이 계열의 미덕입니다. 그럼에도 쇠퇴는 쇠퇴입니다: 고정 차원 벡터는 유한 대역폭 채널이지 데이터베이스가 아닙니다.

점수는 보정된 확률이 아닙니다. 베타 임베딩 장은 부정 질의 cmu에 소속되어 있으면서 bob의 지도를 받지 않는에 합성 점수 fA(1fB)f_A \cdot (1 - f_B)로 답했는데, 여기서 f=eKLf = e^{-\mathrm{KL}}은 한 확률 밀도가 다른 밀도로부터 얼마나 떨어져 있는지를 재는 표준 척도인 KL(Kullback-Leibler) 발산을 (0,1](0, 1] 안의 유사도로 바꾸며, 정답 erin을 0.58640.5864로 1위에, dave를 0.52660.5266으로 근소한 2위에 올렸습니다. 그 장의 정직한 문단을 여기서 되풀이합니다. 이 권의 모든 점수에 적용되기 때문입니다: 순서는 의미가 있지만 은 확률이 아닙니다. 여기서 쓰인 어떤 훈련 목적함수도 0.58640.5864를 "약 59퍼센트의 확률로 옳음"에 묶어 주지 않습니다; 이것들은 학습된 적합도이고, 기껏해야 단조로운 증거이며, 이를 사후 확률로 취급하는 것은 5권이 보정(calibration)이라는 이름 아래 정면으로 다루는 범주 오류입니다.

결과로서의 방법론

이 권의 결과 하나는 어떤 모델에 관한 것도 아닙니다: 이 권이 자신의 수학이 옳다는 것을 스스로 어떻게 아는가에 관한 것입니다. 동반 스위트의 모든 그래디언트는 손으로 유도되었고, 훈련 루프 어디에도 autograd가 없으며, 그것을 적용하는 코드 위에는 공식이 주석으로 달려 있습니다. 이 권의 첫 번째이자 가장 많이 쓰인 유도, TransE 마진 손실을 봅시다. 잔차 v=eh+wret\mathbf{v} = \mathbf{e}_h + \mathbf{w}_r - \mathbf{e}_t와 거리 d=v2=(jvj2)1/2d = \lVert \mathbf{v} \rVert_2 = \big(\sum_{j} v_j^2\big)^{1/2}(첨자 jj는 16개의 임베딩 좌표를 훑습니다)에 대해, 거리의 좌표 viv_i 하나에 대한 편미분은 제곱근에 연쇄 법칙을 적용해 얻어지며, 모든 단계를 보이면 다음과 같습니다:

dvi=12(jvj2)1/22vi=vid,sovd=vd,\frac{\partial d}{\partial v_i} = \frac{1}{2}\Big(\sum_{j} v_j^2\Big)^{-1/2} \cdot 2 v_i = \frac{v_i}{d}, \qquad\text{so}\qquad \nabla_{\mathbf{v}}\, d = \frac{\mathbf{v}}{d},

단위 벡터입니다(여기서 vd\nabla_{\mathbf{v}}\, d의 기호 \nabla는 "나블라"라고 읽으며, vd\nabla_{\mathbf{v}}\, d는 잔차 v\mathbf{v}에 대한 dd의 그래디언트, 곧 열여섯 개의 편미분 d/vi\partial d/\partial v_i를 하나의 대상으로 모아 놓은 벡터입니다). 손실 L=max(0, γ+dposdneg)L = \max(0,\ \gamma + d_{\text{pos}} - d_{\text{neg}})(여기서 γ\gamma는 양성 거리가 음성 거리를 밑돌아야 하는 고정 마진 하이퍼파라미터)은 활성 가지에서 L/dpos=+1\partial L / \partial d_{\text{pos}} = +1L/dneg=1\partial L / \partial d_{\text{neg}} = -1을 가지며; 잔차는 세 임베딩 행에 v/eh=I\partial \mathbf{v}/\partial \mathbf{e}_h = I, v/wr=I\partial \mathbf{v}/\partial \mathbf{w}_r = I, v/et=I\partial \mathbf{v}/\partial \mathbf{e}_t = -I(항등 및 부호 반전 항등 야코비안, II는 항등 행렬)를 통해 의존하므로, 여섯 개의 행별 그래디언트는 ±vpos/dpos\pm \mathbf{v}_{\text{pos}}/d_{\text{pos}}vneg/dneg\mp \mathbf{v}_{\text{neg}}/d_{\text{neg}}이고, 각각의 노름은 정확히 11입니다. 그것이 바로 transe.py 92-108행의 코드입니다:

# ∂‖v‖/∂v = v/‖v‖ (unit residual; subgradient 0 when ‖v‖ = 0).
u_pos = v_pos / d_pos if d_pos > 0.0 else zero.copy()
u_neg = v_neg / d_neg if d_neg > 0.0 else zero.copy()

# Chain rule through the active hinge (∂L/∂d_pos = +1, ∂L/∂d_neg = -1),
# with ∂v/∂e_h = I, ∂v/∂e_r = I, ∂v/∂e_t = -I:
# ∂L/∂e_{h_pos} = +v_pos/‖v_pos‖ ∂L/∂e_{h_neg} = -v_neg/‖v_neg‖
# ∂L/∂e_{r_pos} = +v_pos/‖v_pos‖ ∂L/∂e_{r_neg} = -v_neg/‖v_neg‖
# ∂L/∂e_{t_pos} = -v_pos/‖v_pos‖ ∂L/∂e_{t_neg} = +v_neg/‖v_neg‖
grads = {
"h_pos": u_pos.copy(),
"r_pos": u_pos.copy(),
"t_pos": -u_pos,
"h_neg": -u_neg,
"r_neg": -u_neg.copy(),
"t_neg": u_neg.copy(),
}

이 손으로 쓴 공식들이 옳다는 것을 스위트는 어떻게 알까요? 단일한 통일된 메커니즘으로가 아니며, 검사 원장을 정확히 밝히는 것 자체가 이 권의 정직함의 일부입니다. 두 모듈은 자신의 미적분을 자신의 실행 안에서 수치적으로 검증합니다: bilinear.py는 손으로 유도한 모든 DistMult와 ComplEx 편미분을, 두 레이블 y=±1y = \pm 1 모두에서, 훈련이 시작되기 전에 중앙차분과 비교하고(157-208행의 검사기, 303-304행의 assert로 게이트됨), attention_demo.py는 소프트맥스 야코비안에 대해 같은 일을 합니다(jacobian_check, 144-159행, 256행의 assert로 게이트됨). 방금 유도한 TransE 그래디언트, 박스 모서리 그래디언트, 베타 KL 그래디언트, 리만 갱신, 메시지 전달 역전파를 포함한 스위트의 나머지 수동 그래디언트에는 모듈 내 그래디언트 검사가 없습니다; 이것들은 간접적으로, 즉 그 훈련 실행이 도달해야 하는 역량 결과로 담보되는데, 간접 증거는 더 약합니다. 미묘하게 틀린 그래디언트도 원리상으로는 비틀거리며 통과 점수에 이를 수 있기 때문입니다. 그 간극이 오라클이 애초에 존재하는 이유 중 하나입니다.

중앙차분 검사가 실제로 도는 곳에서도 하나의 경쟁 가설은 살아남습니다: 공식과 그 검사기가 같은 손으로, 손실에 대한 같은 해석에 따라 쓰였다는 가설입니다(torch_check.py 6-13행). 2권은 자신의 밑바닥부터 만든 분류기에 대해 같은 경쟁 가설을 마주했고, 모든 포섭에 대해 일치해야 하는 독립적인 산업용 추론기 HermiT로 그것을 제거했습니다. 이 권은 분류 대신 미적분에 대해, 이 권이 가장 크게 기대는 세 손실 계열, 즉 TransE 마진 경첩, DistMult 로지스틱 손실, 박스 포함 경첩에 대해 같은 일을 합니다; TransE 경첩과 박스 경첩의 경우, 그 그래디언트가 받는 독립 검사는 이 오라클이 유일합니다. torch_check.py는 세 손실 각각을, 수동 코드가 보는 바로 그 시드 고정 배열에서 복사한 float64 잎 텐서들로부터 다시 조립하고, 수동 그래디언트를 전혀 보지 못한 torch.autograd가 미분하게 한 뒤, 그래디언트 행마다 10610^{-6} 이하의 일치를 요구합니다. TransE 검사의 torch 쪽은 여섯 줄입니다(torch_check.py 131-136행):

d_pos = torch.linalg.vector_norm(
leaves["h_pos"] + leaves["r_pos"] - leaves["t_pos"])
d_neg = torch.linalg.vector_norm(
leaves["h_neg"] + leaves["r_neg"] - leaves["t_neg"])
loss_t = torch.relu(transe.GAMMA + d_pos - d_neg)
loss_t.backward()

이 프로토콜은 미적분이 진정으로 애매해지는 곳에서 신중합니다: 검사되는 TransE 쌍은 경첩이 활성이면서 꺾임점에서 확실히 떨어져 있도록(경첩 이전 마진 3.93333.9333) 결정론적으로 선택되는데, 꺾임점에서는 수동 서브그래디언트와 autograd의 relu 규칙이 정당하게 서로 다른 값을 고를 수 있고, 비활성 경첩은 비교 전체를 공허하게, 즉 전부 0 대 전부 0으로 만들어 버리기 때문입니다(torch_check.py 86-106행). 같은 규율이 두 레이블 y=+1y = +1y=1y = -1에서의 DistMult 로지스틱 손실 L=softplus(ys)L = \mathrm{softplus}(-y s)(여기서 softplus(x)=ln(1+ex)\mathrm{softplus}(x) = \ln(1 + e^x)는 매끄러운 경첩입니다)와, 네 개의 모서리 그래디언트 L/lA=2hlo\partial L/\partial \mathbf{l}_A = -2\,\mathbf{h}_{\text{lo}} 및 그 동반 항들을 가진 제곱 박스 포함 경첩을 덮는데, 여기서 hlo=max(0, lBlA+γ)\mathbf{h}_{\text{lo}} = \max(0,\ \mathbf{l}_B - \mathbf{l}_A + \gamma)는 박스 AA의 아래 모서리가 박스 모듈 자체의 여유 γ\gamma 아래에서 박스 BB에의 담김을 얼마나 위반하는지를 좌표별로 모은 것입니다(담김이 성립하는 좌표에서는 0). 후자는 모든 경첩 이전 항이 꺾임점에서 최소 10310^{-3}만큼 떨어질 때까지 모서리 뽑기를 다시 시드합니다(225-256행). 커밋된 실행의 마지막 줄들입니다(전체 기록에서는 각 PASS 줄이 해당 검사의 여러 줄짜리 슬롯별 차이 표를 마무리합니다; 그 표들은 여기서 ...로 생략했습니다):

...
PASS transe (max |Δ| = 5.6e-17)
...
PASS distmult (max |Δ| = 2.8e-17)
...
PASS box_incl (max |Δ| = 0.0e+00)

AGREEMENT CONFIRMED: manual gradients match torch.autograd
SUMMARY torch_check: transe=5.6e-17 distmult=2.8e-17 box=0.0e+00 checks=3/3 tol=1e-06

101710^{-17} 수준의 일치는 순수한 부동소수점 반올림입니다: 두 개의 독립적인 구현이 같은 수학을 계산한 것입니다. 이 인증서의 범위는 모든 대표 순위 숫자가 흘러 지나가는 바로 그 세 계열입니다; 스위트의 나머지 미적분은 두 개의 모듈 내 중앙차분 검사와 다음 절의 역량 원장 위에 서 있으며, 이 장은 이제 어느 것이 어느 것인지를 말했습니다. 이것을 그 자체로 이 권의 결과 하나로 취급하십시오. 경험적 문헌이 말하기를, 이를 둘러싼 위생은 선택적 장식이 아니기 때문입니다: 표준 벤치마크에서 훈련 프로토콜을 다시 조정하는 것은 모델을 바꾸는 것만큼이나 지식 그래프 임베딩 결과를 움직입니다 [3]. 시드와 프로토콜과 독립 검사가 없는 숫자는 일화에 불과합니다.

증거를 실행 가능하게 만들기

위의 모든 주장은 3권의 수락 하네스인 validate.py의 한 행입니다. 이름 붙은 각 검사는 동반 모듈의 run()을 호출하고, 그 함수는 자기 모델을 결정론적으로 다시 훈련(또는 재구성)하여 자체 역량 assert들을 실행합니다; 하네스는 주장마다 PASS 또는 FAIL 한 줄을 출력하고, 모든 검사가 성립할 때에만 0으로 종료합니다(validate.py 71-86행):

for claim, check in _checks():
try:
if verbose:
check()
else:
with contextlib.redirect_stdout(io.StringIO()):
check()
print(f"PASS {claim}")
passed += 1
except AssertionError as exc:
print(f"FAIL {claim} ({exc})")
failed += 1
total = passed + failed
print(f"\nneural companion: {passed}/{total} competency checks passed"
f" ({time.time() - t0:.0f}s)")
return 0 if failed == 0 else 1

이를 실행하면 이 권의 진짜 최종 결산이 출력됩니다:

PASS TransE lifts filtered MRR far above the frozen-random baseline
PASS DistMult's two cites directions tie exactly; ComplEx breaks the tie
PASS constructed balls reproduce all 8 gold subsumptions with 0 spurious
PASS Query2Box boxes answer multi-hop queries that match symbolic traversal
PASS Beta negation is an exact involution and answers the negated query
PASS the best ball around a lens admits false positives; box intersection is exact
PASS trained ELEm balls recover the gold classification (soundness probe)
PASS trained boxes match the probe with exact conjunction available
PASS hyperbolic beats Euclidean at equal dimension on the hierarchy
PASS the GCN is permutation-equivariant and 2-hop local to machine precision
PASS typed weights beat untyped message passing; bases cut parameters
PASS 1-WL cannot separate two triangles from a hexagon; sum out-separates mean/max
PASS attention rows are distributions; the Jacobian matches finite differences
PASS one 1024-d vector stores the whole KG; capacity degrades gracefully
PASS soft unification proves through a synonym where hard unification fails

neural companion: 15/15 competency checks passed (16s)

열다섯 개의 검사, 중심 주장마다 하나씩, 각각이 자신의 숫자를 인용하는 장을 지킵니다(validate.py 30-64행):

#역량 검사모듈지키는 장
1TransE가 필터링된 MRR을 고정 무작위 기준선보다 훨씬 높이 끌어올린다transe.py링크 예측, 이동 모델
2DistMult의 두 cites 방향은 정확히 동점이 되고, ComplEx는 그 동점을 깬다bilinear.py쌍선형 모델
3구성된 공들이 금본위 포섭 8개 전부를 허위 0건으로 재현한다regions.py공과 원뿔
4Query2Box 박스가 기호적 순회와 일치하는 다중 홉 질의에 답한다boxes.py박스 임베딩
5베타 부정은 정확한 대합이며 부정 질의에 답한다beta.py베타·확률 임베딩
6렌즈를 감싸는 최선의 공은 거짓 양성을 허용하고, 박스 교집합은 정확하다boxes_vs_balls.py박스 대 공
7훈련된 ELEm 공들이 금본위 분류를 복원한다(건전성 프로브)el_embed.pyEL 임베딩
8훈련된 박스들이 정확한 논리곱을 갖춘 채 프로브를 통과한다box_el.pyBoxEL과 Box²EL, TransBox와 mOWL
9쌍곡 공간이 같은 차원에서 유클리드를 계층 위에서 이긴다hyperbolic.py쌍곡 임베딩
10GCN은 기계 정밀도 수준에서 순열 등변이고 2-홉 국소적이다gnn.py메시지 전달
11유형별 가중치가 무유형 메시지 전달을 이기고, 기저가 매개변수를 줄인다rgcn.py관계형 GNN
121-WL은 두 삼각형과 육각형을 가르지 못하고, 합이 평균/최대보다 잘 가른다wl.py표현력의 천장
13어텐션 행들은 확률 분포이고, 야코비안이 유한 차분과 일치한다attention_demo.py어텐션
141024차원 벡터 하나가 KG 전체를 저장하고, 용량은 완만하게 저하된다vsa.py벡터 기호 구조
15소프트 단일화는 하드 단일화가 실패하는 곳에서 동의어를 거쳐 증명한다soft_unification.py소프트 단일화

이 권의 모든 주장에는 독자가 실행할 수 있는 명령이 있습니다: 원장을 위한 python3 validate.py, 어느 한 장의 추적을 위한 python3 <module>.py, 그리고 오라클을 위한 선택적 python3 torch_check.py. 어떤 주장이 참이기를 멈추는 날, main은 1을 반환하고 빌드는 빨갛게 변합니다.

다섯 가지 반복되는 긴장

이 간극들은 서로 무관한 여섯 개의 불평이 아닙니다. 이들은 다섯 개의 축으로 조직되며, 각 축은 이 권의 한 장에 닻을 내리고, 함께 모여 4권이 물려받는 요구 사항 문서를 이룹니다.

정확함 대 견고함. 2권의 분류기는 정확히 옳거나 정확히 침묵합니다; 사실 하나를 지우면 불평 없이 기권합니다. 이 권의 모델들은 모든 것에 답합니다, 유용하지만 근사적으로: 링크 예측의 프로토콜 아래 벌어들인 0.77780.7778 MRR이 개가인 이유는 바로 그 질문들이 정확하게는 답할 수 없는 것들이었기 때문입니다. 어느 극도 상대를 흉내 낼 수 없으며, 여기의 어떤 장도 이 축을 녹여 없애지 못했습니다; 각자 그 위의 한 점을 골랐을 뿐입니다.

증명 대 점수. 하드 증명은 증명서입니다: 모든 단계가 공리이거나 규칙 적용이며, 영원히 검사 가능합니다. 0.97830.9783으로 채점된 소프트 단일화의 소프트 증명은 수락 여부가 임계값 τ\tau에 달린 유사도 가중 사슬입니다; τ\tau를 어휘 전체의 최악 무작위 충돌인 0.68060.6806 아래로 낮추면 허위 답이 새어 들어옵니다(대조 질의 자체의 잡음은 그보다 낮은 0.46210.4621이 최고치입니다). 점수는 증거를 나르지만 타당성을 나르지 않으며, 이 권의 어떤 것도 하나를 다른 하나로 바꾸어 주지 않습니다.

이산 대 미분 가능. 경사 하강은 기울기를 필요로 하고, 기호는 계단으로 옵니다. 어텐션이 이 권의 가장 깨끗한 전시물입니다: 소프트맥스는 이산적인 argmax 조회의 미분 가능한 대역이며, 직교하는 키와 날카로운 로짓의 극한에서만 정확하고, dk\sqrt{d_k} 스케일링(dkd_k는 키 벡터의 차원)은 정확히 이 완화가 포화되어 다시 계단으로 굳는 것을 막기 위해 존재합니다(최대 어텐션 가중치가 스케일링 없이는 0.99030.9903, 스케일링하면 0.22820.2282). 오라클조차 이 축을 존중해야 했습니다. 도함수가 단일 값이기를 멈추는 경첩 꺾임점을 일부러 비켜 디뎠으니 말입니다.

구성 대 학습. 공과 원뿔은 영역을 손으로 배치하여 완벽한 논리적 충실도를 달성했고, 이 기하가 충분히 표현력 있음을 증명했습니다; EL 임베딩은 영역을 훈련했고, 프로브 하나와 조정된 ε\varepsilon0.68480.6848의 잔여 손실에 만족해야 했습니다. 구성은 가능성을 증명하고, 학습은 규모와 일반화를 가져다줍니다; 보장은 구성자의 몫이며, 이 권은 그것을 학습자에게 건네줄 방법을 찾지 못했습니다.

폐포 대 용량. 영역 계열이 어떤 연산자에 대해 닫혀 있기를 요구하면 그 연산자에 대한 정확성을 삽니다: 교집합 아래의 박스(박스 대 공), 부정 아래의 베타 밀도가 그렇습니다. 그러나 모든 폐포 요구는 기하를 제약하고, 모든 구조를 하나의 표현 안으로 밀어 넣는 일은 또 다른 예산을 소모합니다: 벡터 기호 구조의 홀로그래픽 벡터는 결합과 중첩에 대해 닫혀 있는 대신, 부하가 커짐에 따라 재현율이 1.00001.0000에서 0.62000.6200으로 떨어지는 값을 치릅니다. 연산자의 정확성과 담는 그릇의 용량은 이 권 어디에서나 서로 맞바꾸는 관계입니다.

신경-기호 시스템을 구축하기 위한 정직한 조언

2권은 과제의 명료한 기호적 버전을 먼저 모델링하라는 조언으로 닫았습니다. 이 권은 이제 스스로 내내 실천해 온 동반 습관을 말할 수 있습니다: 모든 신경망 실험 옆에 기호적 금본위 기준을 실행 가능한 상태로 두십시오. 문서로 남기는 것도, 기억해 두는 것도 아닙니다: 실행 가능해야 합니다. 우리의 건전성 프로브가 의미를 가진 것은 오직 el_embed.pybox_el.py가 2권의 normalize()classify()를 가져와 매 실행마다 8개의 금본위 포섭과 2개의 충족 불가능한 개념을 다시 계산하고, 결코 손으로 다시 타이핑하지 않았기 때문입니다. 그래서 기하는 언제나 살아 있는 논리에 대조하여 채점되었지, 그 논리의 낡은 사본에 대조된 것이 아닙니다. 이 권의 모든 강한 주장은 그 형태를 가집니다: 신경망 산출물 하나, 진리에 대한 기호적 정의 하나, 그리고 둘 사이의 실행 가능한 비교 하나. 그 규율이 곧 축소판 신경-기호 방법론입니다. 그것을 채택하는 날에는 비용이 거의 들지 않고, 그것이 필요한데 없는 날에는 모든 것을 잃게 합니다.

아직 풀리지 않은 부분

이 권의 모든 것은 두 기둥을 나란히 두었습니다: 기하를 훈련한 뒤, 바깥에서, 사후에, 논리에 대조하여 프로브했습니다. 정직한 열린 질문은 각 기둥을 가질 만한 것으로 만들어 주는 성질을 잃지 않으면서 그 비교를 루프 안으로 옮길 수 있는가입니다. 논리가 손실의 일부가 되면 그래디언트가 기하를 공리 쪽으로 밀 수 있지만, 손실 항은 제약이 아니라 선호입니다: 0이 아닌 어떤 잔여에서도 보장은 여전히 부재하며, 다만 더 가까워질 뿐입니다. 반대로 논리가 하드 필터로 남으면 정확하지만 그래디언트에 불투명하고, 학습은 그것을 느낄 수 없습니다. 끝에서 끝까지 미분 가능하면서 동시에 훈련이 끝날 때 경험적 혼동 표가 아니라 진짜 건전성 진술을 물려받는 기계 장치가 존재하는지는, 이 권이 측정한 그 무엇으로도 결판나지 않았습니다. 분업은 확립되었습니다; 그것이 두 서명이 하나의 결과 위에 나란히 찍히는 진정한 합성이 될 수 있는가가 바로 다음 권이 공략하기 위해 존재하는 질문입니다 [4].

왜 중요한가

이 장은 이 시리즈가 2권의 평결 이래 조립해 온 두 열짜리 논증의 나머지 절반입니다. 기호: 감사할 수 있는 올바름, 직접 저술해야 하는 지식 위에서. 벡터: 훈련할 수 있는 그럴듯함, 확실성 없이. 어느 열도 다른 열을 포섭하지 못하며, 커밋된 증거는 이제 두 사실을 하나의 공유된 세계 위에서 자릿수까지 보여 줍니다. 그것이 바로 통합이 구호가 아니라 강제된 수가 되는 상황입니다 [4]: 데이터로부터 학습하면서 결론을 보장해야 하는 시스템은 두 열 모두에서 끌어 써야 하고, 위의 다섯 긴장은 그런 시스템이라면 반드시 협상해야 하는 설계 제약입니다. 이 원장을 들고 나아가는 독자는 4권의 모든 방법을 하나의 날카로운 질문으로 평가할 수 있습니다: 그것은 두 열의 어느 행들을 실제로 합치며, 어느 축 위에서 어떤 값을 치르는가?

핵심 용어

  • 평결 — 기하는 한 번도 적어 두지 않은 지식 위에서 훈련할 수 있는 그럴듯함을 사 주되, 더는 가질 수 없게 된 확실성을 값으로 치른다; 2권 평결의 거울상.
  • 필터링된 MRR — 이미 참으로 알려진 다른 답들을 제거한 순위 질의들에 대한 역순위의 평균; 이 권의 대표 상승은 고정 무작위 대조군의 0.10620.1062에 맞선 0.77780.7778이다(이 그래프의 해석적 우연 수준은 0.25430.2543).
  • 건전성 프로브 — 기하적 포섭(cAcB+rArB+ε\lVert \mathbf{c}_A - \mathbf{c}_B \rVert + r_A \le r_B + \varepsilon)을 정확한 분류기의 함의에 대조하는 경험적 혼동 표; 측정이지 결코 정리가 아니다.
  • 모델 없으면 보장 없음 — 손실 0은 기하를 온톨로지의 모델로, 따라서 모든 함의를 만족하는 기하로 만들어 줄 것이다(재현율이지 정밀도가 아니다); 0이 아닌 어떤 손실에서든(공은 0.68480.6848, 박스는 0.06780.0678) 보장은 존재하지 않는다.
  • 대수적 천장 — 한 계열의 모든 매개변수 설정에 대해 증명 가능한 한계: DistMult의 강제된 동점 s(h,r,t)=s(t,r,h)s(h, r, t) = s(t, r, h), 공의 거짓 양성 렌즈 덮개, 메시지 전달에 대한 1-WL 한계.
  • Autograd 오라클 — 스위트의 세 핵심 손실 그래디언트(TransE 마진 경첩, DistMult 로지스틱 손실, 박스 포함 경첩)를 재계산하여 허용 오차 안에서 일치해야 하는 독립 구현(torch.autograd); 2권 HermiT 검사의 미적분 판본. 그 세 계열 밖에서는 bilinear.pyattention_demo.py만이 모듈 내 중앙차분 검사를 갖추며, 나머지 수동 그래디언트는 오직 역량 결과로만 담보된다.
  • 역량 원장 — 하중을 받는 주장마다 하나씩인 validate.py의 이름 붙은 15개 검사; 그 종료 코드가 이 권의 수락 판정이다: 15/15.
  • 다섯 가지 긴장 — 정확함 대 견고함, 증명 대 점수, 이산 대 미분 가능, 구성 대 학습, 폐포 대 용량: 모든 통합 방법이 자신의 위치를 선언해야 하는 축들.

이 장이 이끄는 곳

두 열은 이제 다 적혔고, 이 권의 방법들은 둘 사이에서 고를 수 있을 뿐입니다. 다음 권은 고르기를 멈춥니다. 4권 — 뉴로-심볼릭 통합은 그래디언트가 논리 그 자체를 관통해 흐르게 하는 기계 장치를 세웁니다: 제약이 만족될 확률을 미분하는 의미론적 손실 함수, 논리 구조를 그래디언트가 지나다닐 수 있는 산술 회로로 바꾸는 가중 모델 계수(weighted model counting), 그리고 질의 계획을 네트워크 안에서 실행하는 미분 가능한 질의 응답이 그것입니다. 그곳의 모든 장치는 여기서 세운 원장으로 채점될 것입니다: 금본위 기준은 실행 가능한 채로 남고, 프로브는 적대적인 채로 남으며, 질문은 같은 것으로 남습니다. 왼쪽 열의 보장 가운데 얼마만큼이 오른쪽 열의 훈련 루프와 접촉하고도 살아남을 수 있는가?