AI 해부교실 · Part 4 트랜스포머 이전 이야기
38장 앞 몇 단어만 보기
Q. 옛날 AI는 '다음 단어의 확률'을 어떻게 알아냈을까요?
- 확률을 구하는 가장 쉬운 방법은 세어 보기예요. 먼저 문장을 잔뜩 모은 공책, 말뭉치(corpus)가 필요해요.
- '나는 오늘 학교에' 뒤를 세려면 이 세 단어가 통째로 나와야 해요. 딱 한 번뿐이고, '고양이는 오늘 학교에'는 0번이에요.
- 그래서 꾀를 내요. 바로 앞 한 단어만 보는 거예요. '학교에' 다음에 무엇이 왔는지만 세면 돼요.
- '학교에' 다음엔 '간다'가 3번, '늦었다'가 1번. 그러니 '간다'는 4번 중 3번, 75%예요.
- 모든 단어마다 이렇게 세면 짝 빈도표가 돼요. 앞 단어 몇 개만 보는 이 방법을 n-gram이라고 불러요.
- 이 표만 보고 문장을 지어 볼게요. 1948년 섀넌도 이렇게 영어 문장을 지어 봤어요.
- 짝끼리는 다 자연스러운데, 문장은 이상하죠? 바로 앞 단어만 보니, 주인공이 고양이란 걸 잊었어요.
- 앞을 더 길게 보면 어떨까요? 긴 단어 줄일수록 말뭉치에 거의 없어서 0번이 돼요. 이걸 39장의 신경망이 풀어요.
한 장 요약
- n-gram: 앞 단어 몇 개만 보고, 말뭉치에서 다음 단어를 세어 확률을 정한다.
- 짝끼리는 자연스러워도, 앞 내용을 잊어서 문장 전체는 엉뚱해지기 쉽다.
- 앞을 길게 보면 그런 단어 줄이 말뭉치에 거의 없어서 0번이 된다.