텐센트에서 나온 E2E 음성인식 시스템에 관한 논문이다. 오랜만에 보는 D. Yu의 논문.
원래 기존의 음성인식에서 AM과 LM은 따로 훈련되었고, 그걸 당연시 여겨왔다.
이것은 E2E 모델이 아무리 용가리 통뼈라고 해도 예외없이 적용되는 상황이었는데, 그래도 요새는 LM도 신경망으로 구축하는 시대이니 이 둘을 결합해야 하지 않겠느냐 하는 쪽으로 의견이 모아진 듯 하다. 동서양을 막론하고 새 술은 새 부대에 담고 싶은 모양이다.
변화의 시기에 보통 먼저 제안되는 방법은 예전의 방법을 지금의 조건에 맞추어 적용해보고 가능성을 가늠해보는 것이다. 그래서 최초로 제안된 방법이 shallow fusion이며 이는 AM과 LM의 score를 하나의 tunable parameter를 통해 가중합하는 방식이다.
다음으로 제안된 방법이 deep fusion이다. 이는 seq2seq 모델이 최초로 활용되었던 기계번역에서 제안된 방법으로, AM과 LM을 따로 훈련하고, LM의 output layer는 버린 후에, LM의 hidden layer 정보와 attention이 완료된 AM hidden 정보와 연결하여 최종 output layer의 입력으로 활용하는 것이다. Deep fusion에서는 output layer에서 AM과 LM이 결합되는 부분의 parameter를 적은 양의 훈련데이터를 통해서 훈련한다. 추가적으로 LM의 hidden layer 정보를 그대로 쓰는 것은 아니며 자기자신을 입력으로 하는 gating을 수행하여 필요한 정보를 뽑아내서 AM과 조합하는 것으로 되어 있다. 아, 그러고보니 gating에 해당하는 녀석도 fusion시 훈련이 이루어진다. Deep fusion에서는 AM과 LM의 몸통은 그대로 이며 머리 부분만 필요한 조건에 의해 훈련되는 과정을 거친다.
Cold fusion은 deep fusion의 고정된 몸통이 마음에 들지 않아 제안된 방법이다. 일반적인 LM은 범용 topic을 학습하였기 때문에 특정 domain의 성능을 극대화시키는데 활용하기에는 부족함이 있을 수 있다. Cold fusion에서는 LM으로는 부족한 domain dependent 정보를 AM 훈련 시 반영하는 훈련 방식을 취한다. 이를 위해 사전에 학습이 완료된 LM을 준비하고 deep fusion과 대동소이한 형태로 AM과 LM을 연결하고, AM에 해당하는 부분과 AM과 LM을 연결하는 부분의 parameter를 학습하는 방식을 취한다. 여기서 LM은 고정이다.
논문상에 각자의 fusion 방법에 대한 그림이 있으며 이들은 각각의 방식을 잘 나타내준다. 여기까지 언급한 fusion 기법들은 모두 AM과 LM을 잘 조합하여 음성인식율을 높이기 위한 방식이었다. AM과 LM이 잘 결합하면서 발생하는 한가지 단점은 이렇게 결합된 모델은 domain adaptation이 어려워지는 문제가 발생하게 된다. Adaptation을 위한 추가적인 훈련이 필요한 것이다.
이 논문에서는 fusion을 하는 데 있어 위에서 언급한 방법과는 조금 다른 방향성을 가지고 문제에 접근하고 있다. AM과 LM을 결합하는데 있어, in-domain에서의 음성인식률은 극대화 시키면서, 다른 domain에서의 adaptation도 쉽게 수행할 수 있도록 만들기 위해서는 AM과 LM의 동작이 완벽하게 분리된 형태로 학습이 되어야 한다고 말하고 있다. 다시 말하면 AM은 완벽하게 acoustic 특성만을 반영하기 위해 훈련되어야 하며, domain dependent한 특성은 LM을 통해서만 학습되어야 한다고 말하는 것이다.
이를 위해 이 논문에서는 cold fusion을 다른 방식으로 응용하고 있다. 우선 LM을 음성 corpus의 transcription을 이용하여 학습한 후 이를 고정한 채로 cold fusion의 방식을 통해 AM을 학습하게 되면, LM에서 이미 domain dependent information을 흡수한 상태이기 때문에 AM은 순수히 acoustic information만을 학습할 수 있다고 말하고 있다.
이렇게 훈련된 AM은 domain dependent한 요소가 최소화 되었기 때문에 좀 더 general한 음성을 표현하는 모델이 되었다 말할 수 있기 때문에, domain adaptation을 하는데 있어, 단순히 다른 분야의 text만을 통해 훈련된 LM을 사용하게 된다면 간단하게 해당 domain의 정보를 반영할 수 있게 된다고 말하고 있다. 아니면 LM만 적응하던가...
사실 계속 "말하고 있다"라는 표현을 쓰는 이유는 논문에서 저자들이 그러한 목적으로 모델을 구성하고 훈련을 하고 실험을 통해 그 효과를 입증할 뿐이며, 실제로 그렇게 동작해야만 하는 당위성은 수학적인 검증보단 단순한 썰을 통해서만 표현하고 있기 때문이다.
위의 그림이 논문상에서 제안한 방법이며 cold fusion과 크게 다르지 않다. 다만 gating을 수행하는 part에서 AM의 정보를 활용했었는데 deep fusion과 같이 LM의 정보만을 통해 gating을 수행하는 것으로 변경되었다.
첫번째 실험은 논문에서 목표하는 바대로 제안하는 방법이 out-of-domain에서 LM 교체를 통해 효과를 얻을 수 있겠는가에 대한 실험을 진행하였다.
여기서 보통은 AM과 LM의 정보를 concatenation할 때 attentional output과 결합을 하는데, 여기서는 decoder output과 결합을 한것에 대해 실험한 결과도 포함하였다.
뭐 in-domain 실험도 있지만 이건 생략한다.
Idea도 좋고 다 좋지만 먼가 좀 오타도 많고 성의 없이 쓴 논문을 보고 있노라면 별로 기분이 안좋다. 쓸데없는 짓을 한 것 같은 느낌이 강하게 들기 때문이다. 시간은 부족하고 봐야할 논문은 많은데 잘못 고른건가 싶은 생각이 들어서 그럴게다.
부디 이 포스팅이 쓸데없는 일이 아니었기를 빈다.
아니다. 쓸데없는 일은 아무것도 안하는 거다. 오늘도 나는 또 싸우는 구나.
오랜만에 attention model을 보니, 또 헷갈린다. 어디까지 복잡해 질지도 자못 궁금하다.
그럼 일기 끝.
댓글 없음:
댓글 쓰기