안녕하세요! 글또 8기 AI 연구 채널의 최민주 입니다 🙋🏻♀️
지난 포스팅에서 AI 시대의 기계번역에 대해 쭉 언급했는데요,
실제로 NMT 즉 신경망 기반 기계번역 실험 또는 서비스를 위해 고려할 점, 구현해야 할 점에 대해 이번 포스팅을 시작으로 앞으로 차근차근 설명해 보겠습니다.
딥러닝 모델을 학습시키려면 가장 먼저 데이터셋이 필요하겠죠.
이번 회차에는 데이터셋을 구축하기 위해 고려할 점에 대해 이야기하겠습니다.
지난 포스팅에서 NMT 의 특성에 대해 이렇게 설명했는데요,
NMT (Neural Machine Translation : 인공신경망(AI) 기반)
인공지능의 발전에 힘입어 새롭게 등장한 방법으로, 기존의 단어-단어 또는 구-구 번역과 달리 문장을 통째로 학습합니다.
번역 문장 쌍(ex : 한 - 영)을 이용해 번역 모델을 학습하는데, 아래 그림과 같이 Encoder 에 Source Language 문장을, Decoder 에 Target Language 문장을 넣어 모델을 학습시킵니다.
이는 다시 말하면, NMT 모델 학습용 데이터셋을 구성하는 데이터는
'번역할 문장 : 번역된 문장' 과 같이 각 문장이 병렬로 연결된 형태, 즉 1:1 쌍을 이루고
이 언어쌍, 즉 Language pair 들이 모여 하나의 데이터셋이 만들어집니다.
이 데이터셋을 'Parallel Corpus' 라고 부릅니다.
집에 가고 싶다 I want to go to home
나는 BTS를 좋아한다 I like BTS
...
위 예시의 경우 한국어를 영어로 번역하고 있죠?
이 때 번역할 언어 (출발 언어라고도 합니다) 를 Source language (src),
번역되는 언어 (도착 언어라고도 합니다) 를 Target language (tgt) 라고 부릅니다.
기계번역을 수행할 첫 번째 단계, 어떤 언어를 src 와 tgt 로 할지 결정합니다.
다시 말해 Language pair 를 선정하는 것이죠.
앞서 언급한 Language pair 에 추가로 한 가지를 더 고려하겠습니다.
어떤 언어를 어떤 언어로 번역할지, 번역 방향(direction)을 정해야 하는데요.
우선 한국어를 영어로 (KO -> EN), 즉 1:1 로 번역하는 경우
이를 Bi-lingual translation 이라고 부릅니다.
앞에서 설명한 Language pair 와 다를 바가 없죠?
하지만 한국어를 영어, 프랑스어, 중국어 등으로 번역하거나 (1:N)
반대로 영어, 프랑스어, 중국어를 한국어 한 종류로 번역하거나 (N:1)
한, 영, 프, 중 각각의 언어를 한, 영, 프, 중 모든 언어에 대응되게 번역할 수도 있겠죠. (N:N)
이를 Multi-lingual translation 이라고 부릅니다.
각각의 장단점을 간단히 언급하고 넘어가겠습니다.
ex
<ko2en> 집에 가고 싶다 I want to go to home
<ko2fr> 나는 BTS를 좋아한다 J'aime BTS
...
어떤 도메인에 대해 번역할지 결정합니다.
도메인은 문체로 구분할 수도 있고, 주제에 따라 구분할 수 도 있습니다.
코로나 이후 원격으로 회의하는 경우가 많아짐에 따라 회의 중 실시간 통역 즉 음성 번역 연구가 진행되고 있습니다.
1-3 번에 따라 수집 가능한 데이터가 모델을 학습하기에 충분한 양인지 고려합니다.
만약 소수 언어 또는 특수한 도메인을 번역할 경우 Low-Resource 문제를 해결할 방법을 찾아야 합니다.
또한 도메인이 구어체와 같이 noise 가 많은 경우에는 데이터셋의 noise 를 제거하기 위해 필터링하는 과정에서 데이터가 많이 걸러질 것입니다.
따라서 초기 데이터셋 수집 시 목표보다 더 많은 양을 수집해야 합니다.
이번 포스팅에서는 번역 모델을 학습하기 위한 데이터셋을 구축할 때 고려해야 할 점에 대해 설명하였습니다.
다음 포스팅에서는 구체적으로 어떤 open dataset 이 있는지,
직접 데이터셋을 수집할 경우 어떤 방법을 시도할 수 있는지,
수집한 dataset 의 noise 를 어떻게 필터링할 수 있는지 소개해 보겠습니다.