본문 바로가기

머신러닝/[딥러닝을 이용한 자연어 처리]

Questions

학습목표

각각의 Case Study에서 나온 질문들입니다. 같이 생각하는 시간을 가지면서 배운 지식을 공고히 다집니다.

질문

1. Multilingual Translation을 훈련하기 위해서 얼마나 많은 데이터가 필요한가요?

 일단 Multilingual이기 때문에, 각 언어별 데이터는 오히려 적어도 되겠죠. 왜냐면 그 데이터를 모두 모아서 Neural Net하나를 학습하니까. 이런 Multitask model은 데이터가 작을 때 더 도움이 됩니다. 

2. Character token embedding에서 숫자를 어떻게 처리하나요?

 예를 들어, Char level은 그냥 숫자 그대로 나눠서 썻습니다. 그리고 만원을 10000 won으로 번역할 것인가, ten thousand won으로 번역할 것인가는 사실 답이 없죠. 사실 이런건 제가 하고있는 연구쪽 파트에서 생각할 일이 아니라, 실제 기업쪽에서 생각해야할 문제이죠. 당연하게도 제가 말씀드린 것들은 근본적인 기계 번역 방법들이고, 실제 서비스화하기 위해서는, 다양한 에러들을 잡기위한 클린업코드들이 정말 많이 필요합니다. 예를 들어, 모든 숫자들을 NUM으로 대치하고 번역한 뒤 적절한 숫자를 다시 넣어준다거나, 어떤 이름을 개체명으로 바꾼 뒤 번역하고 다시 적절한 이름을 넣어준다거나, 뭐 굉장히 다양하죠.

3. Character level 임베딩 차원은 어떤 크기로 정해야 하나요?

 그 부분이 사실 Char level 임베딩 차원이 좀 작아도 됩니다. 저희는 300차원을 사용했었는데, 그보다 작아도 될 것으로 생각이 됩니다. 다만 정확히 어떤 값이 최고냐. 하면 모른다가 답이겠죠. 그것도 일종의 하이퍼파라미터인데, 이걸 구하기 위해서 우리가 훈련을 시키는 거니까요.

4. 단어에 "성별" 의미가 없는 언어에서 내포된 언어로 번역할때 발생하는 문제점은 어떻게 해결하나요?

 질문해주신게, 언어마다 단어에 Gender가 포함되 있는 경우도 있고, 아예 없는 경우도 있어요. Gender가 내포된 언어에서 Gender가 없는 언어로 번역을 하게 되면 또는 그 반대의 경우, 문제가 있을 수 있죠. 해결책은 첫째로, 기계가 넓은 Context를 볼 수 있도록 하는 방법이 있죠. 현재의 모델은 한 문장밖에 못봐요. 그래서 기계가 뭐에서 이런 Gender 정보를 감안해야하나 싶은데, 뒷문장, 앞문장, 나아가서 전체 단락, 그리고 전체 문서를 참조할 수 있다면, 조금 더 나은 결과를 보여주겠죠. 두번째로는, 그렇게 Context를 본다 하더라도, 당연히 오차가 생길거에요. 이것에 대한 답은 없지만, 데이터 자체를 잘 필터링 해주는 방식, 그리고 좋은 디코딩을 찾는 방식. 두 가지 방향성의 연구가 더 필요하다고 생각합니다.

5. Universal Linguistic Semantic Space가 존재할까요?

 개인적인 생각으로는, 없을 것 같습니다. 영어 독일어 헝가리어 러시안어 등을 한국어와 같이 Multiligual 학습을 시켰을 때, 한국어가 잘 되지 않았떤 이유가, 한국어가 다른 언어들과 구조가 많이 달라서. 라고 생각이 듭니다. 실제로 많은 언어들이 유럽계열이었는데, 그럼 자기들 끼리 공유되는 어떤 구조가 있었을 테고, 그래서 아마 공유되는 어떤 특성이 존재했을 테죠. 다만 한국어는 별개로 떨어져있으니, 잘 되지 않았던 것일테구요. 다만, 제가 시도했던 방법론만 보고 이를 확정짓기에는 무리가 있죠. 더 많은 연구가 시행되어야할 것입니다.

6. 실제 상황에서 Decoding 솔루션은 어떻게 되나요?

 물론 실제 서비스할 때에는, 번역 문장 개선을 위한 다양한 과정들이 필요합니다. Non-Autoregressive model도 연구가 되고 있구요. 그래도 아직 메인은 Autoregressive model입니다.