■ Comment
- 카카오 브레인의 리포트에서 제목만 보아도 딥러닝 연구자들이 한 번 읽어보게끔 만든다.
- NLP 관련 내용이 많으며, https://kakaobrain.com/blog/36 에 잘 정리되어있으니 따로 정리할 필요는 없어 보인다.
- 이 리포트는 2018-10-02에 쓰였기 때문에 그 당시 기준이다.
1. 첫 번째, 비지도 기계 번역(unsupervised machine translation)
- 번역을 할 때, 한국어 vs 영어 와 같이 쌍을 구축되어 있는 경우는 parallel dataset이다.
- parallel dataset을 이용하면 번역 문제가 조금 더 수월하지만, 만약 non-parallel dataset이라면 번역을 제대로 하지 못한다는 얘기이다.
- 물론 방법이 아예 없는 것은 아니다.
- 내가 아는 방법으론 back-translation을 이용하는 방법도 있다.
- 크게 말하면, semi-supervised / unsupervised 와 같은 방법을 사용한다는 것인데 이 리포트에서 말하는 방법은 unsupervised cross-lingual embeddings이다.
- 이러면 word2vec이 가지는 문제점 때문에 힘들다고 얘기하는 것이다.
- 하지만 현재 2020-03 기준으로는 이런 문제점을 여러 방법으로 해결할 수가 있다.
- 대표적으로 ELMo, BERT 등의 contextualized embeddings을 이용하면 되지 않을까 싶다.
2. 두 번째, 맥락 인지 기계 번역(context-aware machine translation)
- 이것도 위에서 말한 문제와 비슷하다.
- context-aware MT을 해야 제대로된 번역이 된다는 것이다.
- 즉 동의어든지, 두 개 의미를 가지는 단어라든지 처리를 하려면 문맥적인 요소가 필요하다는 것이다.
- 하지만 이도 이제는 어느 정도는 해결되는 문제가 아닐까 싶다.
3. 세 번째, 맞춤법/문법 검사기(grammar checker)
- 기본적으로 문법을 검사할 때 5가지가 대표적으로 쓰인다고 한다.
(1) 지식 베이스(knowledge base)에 존재하는 지식과 비교ㆍ대조한다. 매칭되는 결과가 없다면 사용자 입력값에 오류가 있다고 인지한다. 대표적으로 철자 오류는 어휘 사전에 존재하지 않으므로 단순한 형태소 분석을 통해서도 그 오류의 검출 및 교정이 비교적 간단하다고 볼 수 있다.
(2) 대량의 말뭉치에 기반한 통계치를 바탕으로 주어진 문장의 구문을 분석하는 통계(statistics) 기반 분석 방법이 있다. 예를 들어, 사람들이 자주 틀리는 표현을 구문 분석에 활용하는 방식이다.
(3) 몇 번의 추가 편집으로 단어 A를 단어 B로 만들 수 있는지를 측정하는 편집 거리(edit distance, Levenshtein distance)를 이용하기도 한다. 철자 오류와 편집 거리가 작은 단어를 추출하고, 이를 철자 오류가 발생한 단어와 치환하는 식이다.
-
(5) 전문가가 만든 규칙(human-generated rules)을 통해 문법적 오류를 수정하는 방법도 있다. 이를 이용하면 언어에 대한 상세한 구조를 정확하게 파악할 수 있다. 규칙이 많을수록 성능을 높일 수 있는 이유다.
- 지금까지는 룰 기반의 방법이 더 성능이 좋지만 이런 것을 구축하기 위해 전문가가 투입되는 비용과 시간이 만만치 않다는 문제점이 있다.
- 따라서 딥러닝을 이용한 방법으로 LM을 이용한다거나 강화학습을 이용할 수 있다고 한다.
- 내가 접해본 방법으론 GPT등을 이용한 PPL을 계산하는 방법이 있다.
- (강화학습을 이용한 방법은 정확히 어떻게 사용되는지는 모르겠음.)
- 근데 아직도 문법 검사기를 딥러닝을 이용해서 완벽에 가깝게 믿을만한 것이 있는지는 모르겠다.. 즉 아직 해결 못한 문제가 아닐까 싶다.
4. 네 번째, 한정된 자원을 활용한 음성합성(speech synthesis with limited resources)
- 음성 분야는 잘은 모르나 자원이 한정된 상황에서 음성합성을 해야하는 경우가 많나보다.
- 구글의 타코트론2가 이 당시 가장 좋은 성능을 내는 것 같은데 현재는 어느 정도 해결되지 않았을까 싶다
- 왜냐하면 이 리포트 이후에도 few-shot, meta-learning 혹은 pre-trained 모델을 이용하는 등 많은 방법론들이 적은 데이터에서의 상황을 해결하는 연구가 많았기 때문이다.
5. 다섯 번째, 제주어 재활성화(jejueo revitalization)
- 여기서는 제주어를 들지만, 제주어가 아니더라도 소멸위기에 처한 모든 언어에 대한 문제이다.
- 소멸 위기에 처할수록 데이터를 구하기 힘들어서 딥러닝이 충분히 탐구하지 못했다고 하는 것일까?
- 사라지는 언어의 특성을 잘 담는 LM을 만들면 여러 방면으로 knowledge base로 효과를 얻을 수 있지 않을까 싶다.
- LM을 지식창고로 쓰는 것에 대해서는 링크를 참고하길 바란다.
- 최근에는 카카오 브레인에서 제주어에 관한 논문을 발표하기도 했다.
댓글
댓글 쓰기