100명으로 이루어진 집단의 시험 성적을 모두 적으려면 100개의 숫자가 필요하다. 하지만 실제로 우리가 자주 쓰는 것은 평균, 분산, 중앙값 같은 요약 통계량이다. 정보는 잃지만, 핵심은 남긴다.
곡률에도 같은 사정이 있다. 리만 곡률 텐서(한 점의 휘어짐을 모두 담은, 첨자 네 개짜리 텐서)는 n차원에서 서로 따로 정할 수 있는 성분(독립 성분)을 n2(n2−1)/12개 가진다. 텐서는 좌표를 바꿀 때 성분이 정해진 규칙대로만 바뀌는 양으로, PyTorch의 tensor와는 이름만 같다. 2차원에서는 1개, 3차원에서는 6개, 그리고 4차원 — 우리가 사는 시공간의 차원 — 에서는 20개다. 이 20개의 숫자가 한 점에서의 곡률을 빠짐없이 나타낸다. 하지만 이 모든 정보를 항상 다 들고 다녀야 하는가? 성적처럼 곡률도 요약할 수 있을까?
이 물음이 실제로 절실했던 사람이 있다. 아인슈타인이 일반상대성이론의 중력장 방정식(물질이 시공간을 어떻게 휘게 하는지 적은 식)을 세울 때 직면한 문제가 바로 이것이었다. 물질의 에너지-운동량 텐서 Tij(물질과 에너지가 어디에 얼마나 있고 어떻게 흐르는지 적은 양)는 첨자가 두 개인 대칭 텐서(2차 텐서)로 독립 성분이 10개다. 이것을 4차 텐서인 리만 곡률(20개 성분)과 직접 등치시킬 수는 없다. 곡률의 적절한 "요약"이 필요했다. 20개를 10개로 압축하되, 물리적으로 의미 있는 방식으로.
리치 텐서: 리만 곡률을 한 번 축약한 요약
100명의 성적을 평균 하나로 줄이듯, 첨자 네 개짜리 곡률 텐서를 첨자가 더 적은 무언가로 줄일 수 있을까? 줄인다면 무엇을 남기고 무엇을 버려야 할까?
역사: 그레고리오 리치-쿠르바스트로 (Gregorio Ricci-Curbastro, 1853–1925)
리만 곡률 텐서를 체계적으로 다루는 계산 언어를 만든 사람은 리치-쿠르바스트로다. 파도바 대학에서 가르치던 리치는 1884년부터 1894년 무렵까지 "절대 미분학(calcolo differenziale assoluto)"을 다듬었다 — 좌표에 의존하지 않는 텐서 연산의 체계. 1900년에는 제자 레비-치비타와 함께 이 방법을 정리한 70쪽이 넘는 논문을 독일 학술지 『수학 연보(Mathematische Annalen)』에 실었다.
리치와 레비-치비타의 1900년 논문 「절대 미분학의 방법과 그 응용(Méthodes de calcul différentiel absolu et leurs applications)」 첫 쪽. 제1장 차례에 공변·반변 체계, 공변 미분, 「리만 체계」가 보인다. 출처: Mathematische Annalen 54권(1900) 125쪽, Zenodo 기록 1428270의 스캔(CC0), 원문은 퍼블릭 도메인
처음 반응은 차가웠다. 1901년 이탈리아 린체이 학술원의 국왕상 수학 부문 심사에서, 당시 이탈리아 미분기하학을 이끌던 루이지 비앙키는 옛 결과를 새 방법으로 다시 얻는 것보다 새 결과를 옛 방법으로 얻는 쪽을 낫게 본다는 취지로 평했고, 리치는 상을 받지 못했다. 새 언어가 아직 새 결과를 보여 주지 못했다는 것이다.
리치는 1903년 논문에서 첨자 네 개짜리 리만 곡률 텐서의 첨자 두 개를 짝지어 더해 첨자 두 개짜리 텐서를 얻었다. 오늘날 리치 텐서라 부르는 것이다. 이 요약이 제대로 쓰일 곳을 만난 것은 그 뒤 아인슈타인이 중력 이론을 세우면서였다.
대각합처럼 첨자를 짝지어 더하기
식보다 말로 먼저 보자. 한 점에서 방향 v 하나를 고르면, v를 품는 평면이 여럿 있다. 평면마다 그 평면 방향의 휘어짐, 곧 단면곡률(그 평면 방향으로 뻗는 측지선들이 만드는 곡면의 가우스 곡률)을 잴 수 있다. 리치 텐서가 방향 v에 대해 알려 주는 값은, v에 수직인 방향마다 하나씩 평면을 잡아 그 단면곡률들을 더한 합이다.
이 합이 방향에 따라 어떻게 달라지는지 보려면, 방향마다 휘어짐이 다른 공간이 필요하다. 구면은 어느 방향이나 똑같이 휘어 방향을 바꿔 봐야 같은 값이 나오고, 평면은 어디서나 0이다. 둘을 섞은 가장 간단한 공간이 반지름 1인 구면의 각 점에 위아래로 곧은 직선을 하나씩 붙인 3차원 공간(구면 × 직선)이다. 여기서 세어 보자. v가 구면 쪽 방향이면 v를 품는 평면은 둘이다. 구면 안의 평면은 단면곡률 1, 직선 쪽을 품는 평면은 0이라 합은 1이다. v가 직선 방향이면 두 평면 모두 직선을 품어 0, 합도 0이다. 같은 점에서도 방향에 따라 값이 1과 0으로 갈린다. 리만 곡률은 평면마다 값을 주고, 리치는 그것을 방향마다 하나의 수로 줄인 것이다.
성분으로 쓰면 이 합은 행렬의 대각합(trace)처럼 첨자를 짝지어 더하는 일이 된다. 이런 연산을 축약(contraction, 위 첨자와 아래 첨자를 하나씩 짝지어 더해 첨자 개수를 2만큼 줄이는 것)이라 부른다. 리만 곡률 텐서 Rijkl의 첫째 첨자와 셋째 첨자를 축약하면 첨자 두 개가 남는데, 이것이 리치 텐서다.
4차원에서는 4차 텐서의 20개 성분이 대칭 2차 텐서의 10개 성분으로 압축된다. 그렇다면 정보가 사라진 것일까? 사라졌다. 사라진 10개 성분이 무엇을 하는지는 이 장 마지막 절에서 본다.
평면마다의 휘어짐을 더한 이 합은 무엇을 재는가? 방향 v로 나란히 출발한 측지선 묶음을 떠올려 보자. v에 수직인 방향마다, 그 방향으로 이웃한 측지선과의 간격은 두 측지선이 함께 놓인 평면의 단면곡률만큼 빨리 줄어든다(단면곡률이 양수이면 좁아지고, 음수이면 벌어진다). 묶음의 단면은 이 간격들을 곱한 넓이이므로, 간격이 줄어드는 빠르기를 모두 더한 것이 단면이 줄어드는 빠르기다. 구면 × 직선에서 구면 쪽으로 출발한 묶음은 구면 쪽 이웃과의 간격이 대원처럼 좁아지고(1) 직선 쪽 이웃과의 간격은 그대로라(0) 단면이 줄어든다. 직선 방향으로 출발한 묶음은 두 이웃 모두 간격이 그대로라(0과 0) 단면도 그대로다.
구면 × 직선에서 나란히 출발한 측지선 묶음. (가) 구면 쪽으로 출발하면 구면 쪽 이웃과의 간격이 줄어 묶음의 단면이 준다(리치 값 1). (나) 직선 방향으로 출발하면 간격이 그대로다(리치 값 0)
그래서 Rijvivj는 방향 v로 나란히 출발한 측지선 묶음이 얼마나 빨리 모이는지, 곧 묶음의 부피가 얼마나 빨리 줄어드는지를 알려 준다. 양수이면 그 방향의 측지선들이 모이고, 음수이면 흩어진다.
이것이 왜 중요할까? 물질이 중력으로 끌어당기는 효과가 바로 이것이기 때문이다. 먼지 구름 속에서 자유낙하하는 입자들의 묶음은 시간이 갈수록 모여 부피가 줄어드는데, 이것이 양의 리치 곡률이다.
리치 텐서 (부피 변화율 / Ricci Tensor, Rjl) — 리만 곡률 텐서 Rijkl의 첫째와 셋째 첨자를 축약한 대칭 2차 텐서. 한 점에서 각 방향으로 측지선 묶음의 부피가 얼마나 빠르게 변하는지를 알려준다. 리치 텐서가 0이면 — 리치 평탄(Ricci-flat) — 부피는 유클리드 공간에서처럼 변한다.
ML에서: 그래프 신경망의 병목
리치 곡률의 "나란히 출발한 측지선이 모이는가 흩어지는가"라는 뜻은 점과 선만 있는 그래프에도 옮겨 쓸 수 있다. 한 간선의 두 끝점 이웃들이 많이 겹치면 양의 곡률, 두 끝점에서 뻗는 이웃이 서로 멀리 흩어지면 음의 곡률로 본다. 토핑(J. Topping) 등은 ICLR 2022 논문 "Understanding over-squashing and bottlenecks on graphs via curvature"에서, 그래프 신경망에서 멀리서 온 정보가 좁은 통로에 눌려 뭉개지는 현상(over-squashing)이 음의 곡률을 가진 간선에서 생긴다는 것을 보이고, 곡률을 보고 간선을 덧붙이는 재배선 방법을 제안했다. 여기서 움직이는 것은 그래프 위를 흐르는 메시지이고, 곡률은 그 흐름이 어디서 막히는지를 알려 준다.
문제 1 — 칸은 셋, 숫자는 몇 개
확인 해외 쇼핑몰의 영수증에 물건값이 원, 달러, 엔 세 칸으로 적혀 있다. 그날의 환율표는 이미 가지고 있다. 이 영수증 한 장이 새로 알려 주는 숫자는 몇 개인가? 영수증 열 장이면?
같이 풀기 세션 1
김민준
칸이 셋이니까 세 개요. 열 장이면 서른 개고요.
선생님
그럼 원 칸을 가리고 달러 칸만 보여 줄게요. 가린 칸에 뭐가 적혀 있었는지 맞힐 수 있어요?
김민준
환율표로 곱하면 되니까… 맞힐 수 있네요. 가린 칸이 새로 알려 준 게 없었어요. 한 장에 하나, 열 장이면 열 개예요.
이서연
칸 수는 적는 방식이 정하고, 숫자 수는 적는 대상이 정하는 거네. 환율표가 이미 있으면 나머지 두 칸은 계산 결과일 뿐이야.
문제 2 — 요약이 원본보다 크다?
확인 2차원 곡면에서 리만 곡률 텐서의 독립 성분은 1개뿐인데, 리치 텐서는 대칭 2×2 행렬이라 성분이 3개다. 요약이 원본보다 정보가 많아 보이는데, 어디가 잘못된 생각인가?
같이 풀기 세션 2
김민준
이건 진짜 이상해요. 구면 좌표로 numpy에서 리치 텐서를 뽑으면 Rθθ, Rθϕ, Rϕϕ 세 개가 나오거든요. 리만은 하나라면서요. 그럼 리치가 정보가 더 많은 거 아니에요?
선생님
그 세 숫자를 저한테 불러 줘 볼래요? 반지름 r인 구에서요.
김민준
1, 0, sin2θ요.
이서연
그거 계량(점마다 거리를 재는 눈금)이랑 똑같은 모양이잖아. gθθ=r2, gϕϕ=r2sin2θ니까 리치는 계량을 r2로 나눈 거야.
선생님
그럼 질문을 바꿔 볼게요. 계량을 이미 알고 있다면, 그 세 숫자를 알려 주려면 숫자를 몇 개 더 알려 주면 되죠?
김민준
하나요. 나누는 수 1/r2만 알면 나머지는 계량에서 다 나오네요. 세 개가 아니라 사실상 하나였어요.
선생님
맞아요. 2차원에서는 언제나 Rij=Kgij예요. 곡률 쪽 정보는 가우스 곡률 K 하나뿐이고, 성분이 셋처럼 보이는 건 계량이 곱해져 있어서예요. 성분의 개수와 독립적인 정보의 개수는 다를 수 있어요.
김민준
아까 영수증 문제랑 같네요. 계량이 환율표였고, 곡률 쪽에서 새로 알려 주는 숫자는 K 하나였어요. 칸 수가 늘었다고 내용이 늘어난 게 아니었어요.
문제 3 — 그래프의 좁은 통로
계산 아래 그래프는 네 사람이 모두 서로 친구인 무리 둘(A, B, C, D와 E, F, G, H)이 D–E 한 줄로만 이어진 모양이다.
문제 3의 그래프. 네 점이 모두 서로 이어진 무리 둘이 D와 E를 잇는 간선 하나로만 이어져 있다
간선 하나의 곡률을 재는 가장 간단한 셈법 가운데 하나(증강 포만 곡률, augmented Forman curvature)는 간선의 두 끝점 u, v에 대해 F=4−du−dv+3t이다. du, dv는 두 끝점의 이웃 수, t는 두 끝점의 공통 이웃 수다.
(가) 간선 A–B와 D–E의 값을 구하라. (나) 그래프 신경망이 A의 정보를 H까지 전하려면 어느 간선을 지나야 하고, 그 간선에서 무슨 일이 생기는가?
같이 풀기 세션 3
김민준
이웃이 많으면 양의 곡률이라고 했으니까, 이웃이 제일 많은 D와 E를 잇는 D–E가 제일 양수겠죠.
선생님
계산해 보기 전에 하나만 확인할게요. 본문은 두 끝점의 이웃이 많다고 했나요, 겹친다고 했나요?
김민준
겹친다고요… networkx로 세어 볼게요. A–B는 이웃 수 3, 3에 공통 이웃이 C, D 둘이라 4−6+6=4예요. D–E는 이웃 수가 4, 4인데 공통 이웃이 하나도 없어서 4−8+0=−4고요. 이웃이 제일 많은 간선이 제일 음수네요.
이서연
(나)는 A에서 H로 가는 길이 모두 D–E를 지나. 메시지 전달은 한 층마다 이웃 소식을 벡터 하나에 모으니까, E에 닿을 때는 왼쪽 무리 넷의 소식이 이미 D의 벡터 하나에 눌려 있어.
선생님
논문의 처방은 음의 곡률 간선 둘레에 간선을 덧붙이는 거였어요. D와 F를 하나 더 이으면 D–E의 값은 어떻게 되죠?
김민준
D 이웃 수가 5, E는 그대로 4, 공통 이웃 F가 생겨서 4−9+3=−2예요. 덜 음수가 됐어요. 곡률이 음수인 간선이 바로 좁은 통로였네요.
김민준
조별 과제에서 두 조 사이 연락을 한 사람만 맡으면, 그 사람 단톡방에 양쪽 말이 다 몰려서 중요한 말이 묻히던 거랑 같아요. 연락책을 한 명 더 두니까 풀렸고요.