2019.06.03

'생각보다 복잡' 자연어처리는 어떻게 작동하나

Martin Heller | InfoWorld
딥러닝의 도약으로 인공지능 번역과 기타 자연어처리(NLP) 작업이 개선됐다. 

다음은 필자 친구의 페이스북에 올라온 인공지능과의 대화다. 

: 알렉사, 아침 5시 30분 요가 수업이 있다는 걸 다시 알려줘.
알렉사: 쇼핑목록에 테킬라를 추가했습니다. 


기기와 대화를 나눌 때, 종종 기기는 우리가 말하는 것을 정확히 인식한다. 우리는 무료 서비스를 이용하여 온라인에서 접하는 외국어 구절을 영어로 번역하기도 하는데, 가끔은 정확하게 번역해 준다. 자연어처리는 엄청나게 발전했지만, 아직도 개선의 여지가 상당하다. 

필자 친구에게 인공지능의 우발적인 테킬라 주문은 생각보다 더 적절한 것이었을 수도 있다.  
 
ⓒGetty Images Bank


자연어처리란 무엇인가?
NLP라고 하는 자연어처리는 실패에 관한 이야기에도 불구하고 현재는 딥러닝을 위한 주요한 성공적인 응용 분야 중 하나다. 자연어처리의 전반적인 목표는 컴퓨터가 인간의 언어를 이해하고 이에 따라 행동할 수 있도록 하는 것이다. 우리는 그것을 다음 섹션에서 더 자세히 다룰 것이다. 

역사적으로, 자연어처리는 처음에는 문법이나 어간 추출과 같은 규칙을 작성하여 규칙 기반 시스템에 의해 다루어졌다. 그 규칙들을 사람이 직접 하는 데 드는 엄청난 일의 양은 별론으로 하더라도, 제대로 작동하지 않는 경향이 있었다. 

왜 잘 안되었을까? 간단한 예로 철자법의 경우를 생각해보자. 스페인어와 같은 몇몇 언어에서는 철자가 정말 쉽고 방식도 규칙적이다. 그러나 제2외국어로 영어를 배우는 사람은 영어 철자와 발음이 얼마나 불규칙할 수 있는지 안다. 초등학교 철자법칙인 "C 뒤에 올 때를 제외하고 I는 E보다 먼저 온다. 또는 네이버나 웨이처럼 에이(A)라고 발음할 때는 E가 먼저 온다”와 같이 예외로 얼룩진 규칙을 프로그래밍해야 한다고 상상해 보자. 이미 알려진 바와 같이 "E 앞에 I"는 거의 규칙이라고 할 수도 없다. 정확히 말해서 아마도 3/4 정도는 예외에 해당할 것이다.  

1980년대 말과 1990년대 초에 손으로 써진 규칙을 거의 포기한 후, NLP 커뮤니티는 통계적 추론과 머신러닝 모델을 사용하기 시작했다. 많은 모델과 기법들이 시도되었지만, 초기 사용을 넘어서 일반화되었을 때에는 살아남은 경우가 거의 없었다. 좀더 성공적인 방법 중 몇 가지는 여러 분야에서 사용되었다. 예를 들어, 은닉 마르코프 모델(Hidden Markov Model)은 1970년대에 음성 인식에 사용되었고 1980년대와 1990년대에 특히 단백질과 DNA 시퀀스 분석과 같은 생체정보학에서 사용하기 위해 채택되었다.

구문 기반 통계 인공지능 번역 모델은 여전히 각 언어 쌍에 대해 수정되어야 했고, 정확성과 정밀도는 지도 학습(supervised learning) 훈련을 위해 이용할 수 있는 원문 말뭉치의 품질과 크기에 따라 달랐다. 프랑스어와 영어에 관해서 캐나다의 의회 회의록인 한사드(Hansard)(1867년부터 2개 국어를 사용하는 법에 따라 작성된 의회 회의록)는 지도 학습에 매우 중요했고 지금도 중요하다. 유럽 연합의 회의록은 더 많은 언어를 제공하지만, 기간이 이보다 짧다. 

2016년 가을, 구글 번역기는 평균적으로 원어의 의미와 모호한 연관성을 가진 "단어 샐러드"를 제작하는 것에서 시작하여 적어도 영어-프랑스어, 영어-중국어 및 영어-일본어 같은 지원 언어 쌍에 대해서는 세련되고 일관된 문장을 더 자주 생산해 내게 되었다. 그 이후로 더 많은 언어 쌍이 추가되었다.

이러한 극적인 개선은 구글 브레인팀과 구글 번역팀이 기존의 구문 기반의 통계 인공지능 번역 알고리즘을 사용하는 것에서 구글의 텐서플로 프레임워크를 이용하여 심층 학습과 워드 임베딩으로 훈련된 신경 네트워크를 사용하는 것으로 구글 번역기를 개혁하기 위해 9개월에 걸쳐 함께 노력한 결과였다. 1년이 되지 않아 신경기계번역(NMT)이 통계기계번역(SMT)을 대체하여 최신의 기법으로 자리매김했다. 
 


마법이었을까? 아니, 전혀 그렇지 않다. 정말 쉽지 않은 일이었다. 변환을 연구하는 연구자들은 그들의 네트워크를 훈련하기 위해 거대한 번역 말뭉치에 접근했지만, 곧 그들은 훈련을 위해 수천 개의 GPU가 필요하며, 그들의 훈련된 신경 네트워크에서 구글 번역기를 실행하기 위해서는 새로운 종류의 칩인 텐서 처리 유닛(TPU)을 개발해야 한다는 것을 알게 되었다. 그들은 또한 인간 번역가 못지않을 모델을 훈련하면서 수백 번이나 그들의 네트워크를 정교하게 다듬어야 했다.

 




2019.06.03

'생각보다 복잡' 자연어처리는 어떻게 작동하나

Martin Heller | InfoWorld
딥러닝의 도약으로 인공지능 번역과 기타 자연어처리(NLP) 작업이 개선됐다. 

다음은 필자 친구의 페이스북에 올라온 인공지능과의 대화다. 

: 알렉사, 아침 5시 30분 요가 수업이 있다는 걸 다시 알려줘.
알렉사: 쇼핑목록에 테킬라를 추가했습니다. 


기기와 대화를 나눌 때, 종종 기기는 우리가 말하는 것을 정확히 인식한다. 우리는 무료 서비스를 이용하여 온라인에서 접하는 외국어 구절을 영어로 번역하기도 하는데, 가끔은 정확하게 번역해 준다. 자연어처리는 엄청나게 발전했지만, 아직도 개선의 여지가 상당하다. 

필자 친구에게 인공지능의 우발적인 테킬라 주문은 생각보다 더 적절한 것이었을 수도 있다.  
 
ⓒGetty Images Bank


자연어처리란 무엇인가?
NLP라고 하는 자연어처리는 실패에 관한 이야기에도 불구하고 현재는 딥러닝을 위한 주요한 성공적인 응용 분야 중 하나다. 자연어처리의 전반적인 목표는 컴퓨터가 인간의 언어를 이해하고 이에 따라 행동할 수 있도록 하는 것이다. 우리는 그것을 다음 섹션에서 더 자세히 다룰 것이다. 

역사적으로, 자연어처리는 처음에는 문법이나 어간 추출과 같은 규칙을 작성하여 규칙 기반 시스템에 의해 다루어졌다. 그 규칙들을 사람이 직접 하는 데 드는 엄청난 일의 양은 별론으로 하더라도, 제대로 작동하지 않는 경향이 있었다. 

왜 잘 안되었을까? 간단한 예로 철자법의 경우를 생각해보자. 스페인어와 같은 몇몇 언어에서는 철자가 정말 쉽고 방식도 규칙적이다. 그러나 제2외국어로 영어를 배우는 사람은 영어 철자와 발음이 얼마나 불규칙할 수 있는지 안다. 초등학교 철자법칙인 "C 뒤에 올 때를 제외하고 I는 E보다 먼저 온다. 또는 네이버나 웨이처럼 에이(A)라고 발음할 때는 E가 먼저 온다”와 같이 예외로 얼룩진 규칙을 프로그래밍해야 한다고 상상해 보자. 이미 알려진 바와 같이 "E 앞에 I"는 거의 규칙이라고 할 수도 없다. 정확히 말해서 아마도 3/4 정도는 예외에 해당할 것이다.  

1980년대 말과 1990년대 초에 손으로 써진 규칙을 거의 포기한 후, NLP 커뮤니티는 통계적 추론과 머신러닝 모델을 사용하기 시작했다. 많은 모델과 기법들이 시도되었지만, 초기 사용을 넘어서 일반화되었을 때에는 살아남은 경우가 거의 없었다. 좀더 성공적인 방법 중 몇 가지는 여러 분야에서 사용되었다. 예를 들어, 은닉 마르코프 모델(Hidden Markov Model)은 1970년대에 음성 인식에 사용되었고 1980년대와 1990년대에 특히 단백질과 DNA 시퀀스 분석과 같은 생체정보학에서 사용하기 위해 채택되었다.

구문 기반 통계 인공지능 번역 모델은 여전히 각 언어 쌍에 대해 수정되어야 했고, 정확성과 정밀도는 지도 학습(supervised learning) 훈련을 위해 이용할 수 있는 원문 말뭉치의 품질과 크기에 따라 달랐다. 프랑스어와 영어에 관해서 캐나다의 의회 회의록인 한사드(Hansard)(1867년부터 2개 국어를 사용하는 법에 따라 작성된 의회 회의록)는 지도 학습에 매우 중요했고 지금도 중요하다. 유럽 연합의 회의록은 더 많은 언어를 제공하지만, 기간이 이보다 짧다. 

2016년 가을, 구글 번역기는 평균적으로 원어의 의미와 모호한 연관성을 가진 "단어 샐러드"를 제작하는 것에서 시작하여 적어도 영어-프랑스어, 영어-중국어 및 영어-일본어 같은 지원 언어 쌍에 대해서는 세련되고 일관된 문장을 더 자주 생산해 내게 되었다. 그 이후로 더 많은 언어 쌍이 추가되었다.

이러한 극적인 개선은 구글 브레인팀과 구글 번역팀이 기존의 구문 기반의 통계 인공지능 번역 알고리즘을 사용하는 것에서 구글의 텐서플로 프레임워크를 이용하여 심층 학습과 워드 임베딩으로 훈련된 신경 네트워크를 사용하는 것으로 구글 번역기를 개혁하기 위해 9개월에 걸쳐 함께 노력한 결과였다. 1년이 되지 않아 신경기계번역(NMT)이 통계기계번역(SMT)을 대체하여 최신의 기법으로 자리매김했다. 
 


마법이었을까? 아니, 전혀 그렇지 않다. 정말 쉽지 않은 일이었다. 변환을 연구하는 연구자들은 그들의 네트워크를 훈련하기 위해 거대한 번역 말뭉치에 접근했지만, 곧 그들은 훈련을 위해 수천 개의 GPU가 필요하며, 그들의 훈련된 신경 네트워크에서 구글 번역기를 실행하기 위해서는 새로운 종류의 칩인 텐서 처리 유닛(TPU)을 개발해야 한다는 것을 알게 되었다. 그들은 또한 인간 번역가 못지않을 모델을 훈련하면서 수백 번이나 그들의 네트워크를 정교하게 다듬어야 했다.

 


X