알고리듬 기반 VS 패턴매칭 기반

Posted by on Feb 1, 2015 in 말에 관하여, 인지언어학 | No Comments

(페북 대화중에 한 이야기를 가져왔습니다.)

저도 이 분야에 대해서 잘 아는 것은 아닙니다만, 두 분의 말씀을 들으니 알고리즘의 범위를 조금 다르게 생각하고 계신 것 같다는 생각이 듭니다. (틀릴 수도 있지만) 제가 이해한 바를 기계번역의 예를 통해 말씀드려 볼까 합니다.

OOO님께서 말씀하신 알고리즘은 전통적인 Rule-based 기계번역에서 말하는 ‘알고리즘’에 가까운 것 같습니다. 언어의 구조를 파악하는 다양한 알고리즘과 단어 및 숙어를 담은 어휘집(lexicon)을 기반으로 해서 입력언어를 분석해 내고, 그 결과를 바탕으로 다른 언어의 구조/어휘로 변환하는 방식입니다. 이 경우 문장구조를 분석(parsing)해 내는 단계가 존재하기에 문장을 분석하는 룰의 갯수가 상당히 많습니다. 복잡하기도 하고요.

이 방식은 여전히 많이 사용되고 있지만 예로 드신 구글의 경우 통계적 기법을 사용한 Statistical Machine Translation을 사용하고 있습니다. 여기에서는 언어의 문법적 구조를 분석해내는 알고리즘이 중심이 아니라 특정한 패턴을 찾아내는 일이 주가 되죠. 아울러 위에서 언급된 빅데이터 즉 말뭉치(corpus)의 중요성이 상당히 커집니다.단순화시켜 말하면 <룰+사전>이 주가 되는 것이 아니라 <패턴매칭+(다양한 언어)말뭉치>가 주가 된다고 할까요?

제가 보기에는 여기에서 약간의 오해가 발생하는 것 아닌가 싶습니다. PPP님의 말씀대로 패턴매칭을 사용할 경우에도 “pattern matching algorithm”이라는 표현을 사용할 수 있거든요. 즉, 패턴매칭도 일정한 알고리즘에 따라 작동한다는 것이죠.

하지만 전통적인 Rule-based machine translation에 비해 통계기반 번역의 패턴매칭에 동원되는 알고리즘은 그 양이 아주 작고 단순합니다. 직접 Google translation 팀과 심도깊은 회의를 해본 전산언어학자 한 분이 그러더군요. “전통적인 rule-based translation에서 말하는 알고리즘은 없다고 보면 된다. 다만 패턴을 찾아내는 아주 단순한 능력만을 주고, 그것을 엄청난 데이터로 거듭 훈련시키고 발전시키는 것이다.”

따라서 제가 이해하기에는 패턴매칭 자체가 알고리즘이 아니라기 보다는 전통적인 방식의 기계번역 알고리즘과는 전혀 다른 알고리즘을 사용하고 있고, 이를 이전 방식과 구별하기 위해서 “알고리즘 기반”이라고 말하기 보다는 “패턴매칭”이라고 말하는 것처럼 보였습니다.

이들 용어들은 전산언어학 분야의 발전이 언어학과 상호작용하는 과정에도 영향을 받았는데요. 기존의 언어처리 방식이 촘스키 학파의 언어이론에 기대고 있기에 규칙Rule을 기반으로 하고 있다면, 후자의 통계기반번역 방식은 인지언어학과 용법기반모델(usage-based model)에 바탕을 두고 있습니다. 따라서 전자는 ‘통사규칙’이 중심인 반면 후자는 ‘말뭉치’, ‘패턴’, ‘단어뭉치(lexical bundles)’등의 용어가 주로 쓰입니다. 이런 부분도 ‘패턴매칭’과 ‘(전통적)알고리즘’을 구분해서 쓰는 경향에 영향을 미치지 않았나 하는 생각입니다.

Leave a Reply