← 목록으로
언어학 × 수학

수학이 언어라면 언어도 수학이다

Language obeys laws as precise as physics.

흔히 "수학은 우주의 언어"라고들 합니다. 그런데 거꾸로도 참입니다 — 언어 자체가 수학적 구조물이거든요. 단어 빈도엔 멱법칙이, 문법엔 형식 규칙이, 문장엔 정보량이, 의미엔 벡터가, 언어의 족보엔 계통수가 숨어 있습니다. 말(言)을 수(數)로 들여다보는 다섯 장면.

1단어 빈도의 멱법칙 — 지프의 법칙

어떤 언어로 된 글이든, 단어를 많이 쓰인 순서로 줄 세워 보세요. 그러면 \(r\)번째로 흔한 단어의 빈도가 대략 \(1/r\)에 비례합니다 — 1등 단어는 2등의 두 배, 3등의 세 배쯤 나오죠. 이것이 지프의 법칙입니다.

$$ f(r)\;\propto\;\frac{1}{r}\qquad\Longleftrightarrow\qquad \log f = \log C - \log r. $$

즉 빈도와 순위를 로그-로그 축에 찍으면 기울기 \(-1\)의 직선이 됩니다. 아래는 고전적인 브라운 코퍼스의 영어 상위 단어들 — 점들이 그 직선을 따라 늘어섭니다.

이 멱법칙이 생기는지(스케일 불변성, 누적·증식 과정 등)가 궁금하다면 — 〈도대체 정규분포는 어디서 솟아난 거지?〉에서 지프 분포를 다룬 대목을 참고하세요.

순위 ↔ 빈도 (로그-로그)

주황 점 = 단어별 (순위, 빈도), 파란 파선 = 지프 예측 \(f=C/r\). the·of·and… 가 거의 직선 위에 놓입니다. (이 ‘1/순위’ 꼴은 지프 분포와 한 식구예요.)

2문법을 규칙으로 — 촘스키 위계

1950년대 촘스키는 문법을 다시쓰기 규칙의 체계로 못박았습니다. 예: \(S\to\)명사구\(\;\)동사구. 규칙의 종류에 따라 언어는 정규 → 문맥자유 → 문맥의존 → 재귀열거로 계층을 이루죠(촘스키 위계). 이 ‘문법의 수학’은 그대로 컴퓨터과학의 파서·컴파일러 토대가 되었습니다(계산 이론과 한 뿌리).

핵심은 재귀입니다. "\(\text{명사구}\to\text{명사구}\ \text{와}\ \text{명사구}\)" 같은 규칙 하나면, 유한한 규칙으로 무한히 많은 문장을 만들 수 있어요. 아래 작은 문맥자유 문법으로 문장을 찍어내 보세요.

문맥자유 문법 — 문장 생성기

S → 명사구 ‘가’ 명사구 ‘를’ 동사 · 명사구 → (형용사) 명사 | 명사구 ‘와’ 명사구
규칙은 대여섯 줄뿐인데, 재귀(‘…와 …’) 덕분에 문장의 가짓수는 끝이 없습니다 — ‘유한한 수단의 무한한 사용’(훔볼트·촘스키).

문법의 사다리 = 기계의 사다리

촘스키 위계가 멋진 건, 문법의 단계마다 그것을 알아보는 ‘기계’가 정확히 짝지어진다는 점입니다. 곧 문법 이론이 그대로 계산 이론이에요.

문법알아보는 기계(오토마타)필요한 기억
정규 문법유한 오토마타없음 (상태 유한)
문맥자유 문법(CFG)푸시다운 오토마타스택 하나
문맥의존 문법선형구속 오토마타제한된 테이프
재귀열거(무제한)튜링 기계무한 테이프

왜 CFG엔 스택이 필요할까요? 가장 단순한 예가 괄호 짝 맞추기입니다. (()())처럼 열고 닫힌 괄호가 맞아떨어지는 문자열의 모임 — 또는 \(\{a^n b^n\}\) — 은 문맥자유이지만 정규가 아닙니다. 기억이 ‘유한’한 기계는 괄호가 몇 겹 열렸는지 셀 수 없어, 깊이 중첩되면 반드시 틀리거든요. 열 때 쌓고 닫을 때 빼는 스택이 있어야 하죠 — 그게 푸시다운 오토마타입니다. 그리고 이 ‘쌓고 빼는 중첩’이 바로 위에서 본 언어의 재귀(문장 속 문장)와 같은 구조예요.

괄호 = 스택 — 깊이를 따라가 보세요

‘(’에서 스택을 쌓고 ‘)’에서 뺍니다. 한 번이라도 0 아래로 내려가거나(닫는 괄호 과잉) 끝에서 0이 아니면(열린 채 남음) 짝이 안 맞은 것 — 유한 기억으로는 풀 수 없고 스택이 필요한 문제입니다.

한편 위계의 꼭대기는 무한 테이프를 가진 튜링 기계 — 곧 ‘계산할 수 있는 모든 것’입니다. 문법과 계산이 같은 사다리였던 셈이죠. 실제로 프로그래밍 언어의 문법은 거의 다 CFG로 정의되고(BNF 표기), 컴파일러의 파서가 바로 그 CFG의 멤버십을 판정합니다. (자연어는 대체로 문맥자유에 가깝지만, 스위스 독일어의 교차 의존 같은 현상 때문에 ‘약한 문맥의존’으로 보기도 합니다.)


3언어의 정보량 — 엔트로피

다음 글자를 얼마나 잘 맞힐 수 있을까요? 섀넌은 정보를 엔트로피로 쟀습니다 —

$$ H = -\sum_i p_i \log_2 p_i \quad(\text{비트/글자}). $$

완전 무작위라면 영어 글자는 \(\log_2 27\approx 4.75\)비트가 필요하지만, 실제 영어는 앞뒤 맥락이 워낙 강해 섀넌의 추정으로 글자당 약 1비트까지 떨어집니다. 나머지는 중복성 — 글자를 군데군데 지워도 읽히는 이유죠. 이 ‘맥락이 다음을 예측한다’를 n-gram(마르코프) 모델로 흉내 낼 수 있습니다. 차수 \(n\)을 올릴수록, 무작위 글자가 점점 영어처럼 변합니다.

n-gram 생성기 — 차수를 올리면 언어가 떠오른다

차수 n = 2
앞 \(n\)글자로 다음 글자의 확률을 정해 뽑습니다(영어 표본으로 학습). \(n=0\)은 순수 무작위, \(n=2{\sim}3\)이면 발음 가능한 가짜 영어 단어가 줄줄이 나오죠 — 예측 가능성↑ = 엔트로피↓ = 중복성↑.
바로 이것이 ChatGPT의 원리
방금 만든 n-gram은 ‘다음을 예측’하는 모델인데 — 오늘날의 대규모 언어모델(LLM)이 하는 일도 정확히 같습니다. 다음에 올 토큰(글자·단어 조각)을 확률로 예측하고 하나 뽑아, 그걸 다시 입력에 붙여 반복하죠. 차이는 ‘얼마나’입니다 — n-gram은 앞 \(n\)글자만 보는 지만, LLM은 신경망(트랜스포머)으로 수천 토큰의 맥락을 보고 학습으로 일반화해요. 그래서 위 ‘가짜 영어’가 LLM에선 매끄러운 문장으로 도약합니다.

그리고 학습 목표마저 섀넌과 같은 식입니다. LLM은 예측 확률의 교차 엔트로피(= perplexity, 토큰당 비트 수)를 최소화하도록 훈련돼요 — 1951년 섀넌이 잰 ‘영어의 엔트로피’를 기계가 직접 깎아 내리는 셈이죠. 흥미롭게도, 명시적 문법 규칙(2장 촘스키)을 전혀 쓰지 않는 이 통계적 접근이 도리어 문법적인 글을 써내며 ‘규칙 대 통계’ 논쟁을 다시 불붙였습니다.


4의미를 좌표로 — 분포 의미론

"단어의 뜻은 그것이 함께 나타나는 이웃이 정한다"(퍼스). 그래서 각 단어를 벡터(좌표)로 놓으면, 의미가 선형대수가 됩니다. 가장 유명한 장면 —

$$ \vec v(\text{king}) - \vec v(\text{man}) + \vec v(\text{woman}) \;\approx\; \vec v(\text{queen}). $$

‘남성→여성’이라는 의미의 방향이 좌표 위의 일정한 이동 벡터가 되는 거죠. 두 단어의 가까움은 코사인 유사도 \(\cos\theta=\frac{\vec u\cdot\vec v}{|\vec u|\,|\vec v|}\)로 잽니다. 아래는 장난감 2차원 예시(실제 임베딩은 수백 차원) — \(A-B+C\)를 골라 가장 가까운 단어를 찾아보세요.

단어 벡터 산술 — A − B + C ≈ ?

+
가로축 ≈ ‘왕족도’, 세로축 ≈ ‘여성성’. \(A-B+C\)(초록 점)에 가장 가까운 단어가 답입니다. king−man+woman = queen, prince−man+woman = princess처럼.
놀라운 점 — 아무도 좌표를 박아 넣지 않았다
위 그림은 설명을 위해 좌표를 손으로 찍었습니다. 하지만 진짜 word2vec(미콜로프 외, 2013)은 그렇지 않아요. 모델이 한 일은 단지 "주변에 어떤 단어가 올지 맞히기"를 방대한 텍스트로 학습한 것뿐 — 누구도 ‘왕족도’나 ‘여성성’ 같은 축을 정해 주지 않았습니다. 그런데 학습이 끝나고 보니, 그런 의미의 방향이 저절로 벡터 공간에 새겨져 있었고, \(\vec v(\text{king})-\vec v(\text{man})+\vec v(\text{woman})\approx\vec v(\text{queen})\) 같은 산술이 실제로 작동했죠. 의도한 적 없는 구조가 예측 학습의 부산물로 떠오른 것 — 오늘날 LLM의 내부 표현(3장)이 강력한 이유와 같은 맥락입니다.
또 다른 길 — 의미를 ‘계산’하기
벡터가 ‘통계적’ 의미라면, 몬터규 문법람다 계산·타입 이론으로 문장의 의미를 합성적으로 조립합니다("English as a formal language"). 프로그래밍 언어의 타입과 같은 도구죠 — 람다·타입 이야기가 여기서도 쓰입니다.

5언어의 족보 — 계산 계통학

언어들도 진화합니다. 그래서 생물의 계통수를 그리는 알고리즘이 그대로 언어 가족에 쓰여요. 기본 어휘(숫자·신체·친족어)의 공유 동족어 비율로 두 언어의 거리를 재고, 그걸로 나무를 세웁니다 (어휘통계학). 심지어 갈라진 시점까지 추정하죠 — 동족어가 일정 비율 \(r\)로 보존된다고 보면

$$ c = r^{\,2t}\quad\Longrightarrow\quad t=\frac{\ln c}{2\ln r}, $$

여기서 \(c\)는 지금 공유하는 동족어 비율, \(t\)는 분기 후 흐른 시간 — 마치 방사성 탄소연대측정처럼 ‘언어의 나이’를 잽니다(글로토크로놀로지). 인도유럽어족의 기원 연대도 베이지안 계통분석으로 다뤄졌습니다.

인도유럽어족 — 한 그루의 나무 (개략)

공통 조상(원시인도유럽어)에서 갈라져 나온 가지들. 거리는 어휘 공유율로, 나무는 계통 알고리즘으로 추정합니다 — 생물학의 도구가 그대로 언어에.

6맺으며

단어를 세면 멱법칙이, 문장을 쪼개면 형식 규칙이, 다음 글자를 예측하면 정보량이, 뜻을 늘어놓으면 벡터가, 언어의 역사를 더듬으면 계통수가 나옵니다. "수학은 우주의 언어"라는 말의 거울상 — 언어 역시, 그 바닥엔 수학이 깔려 있습니다. 말과 수는 서로를 비추는 두 거울인 셈이죠.


참고 자료