개요

신경 기계 번역은 최근 제안된 기계 번역 접근 방식입니다. 기존의 통계적 기계 번역과 달리 신경 기계 번역은 번역 성능을 극대화하기 위해 공동으로 조정될 수 있는 단일 신경망 구축을 목표로 합니다. 신경 기계 번역을 위해 최근 제안된 모델은 종종 인코더-디코더 제품군에 속하며 디코더가 번역을 생성하는 고정 길이 벡터로 소스 문장을 인코딩합니다. 본 논문에서 우리는 고정 길이 벡터의 사용이 이 기본 인코더-디코더 아키텍처의 성능을 향상시키는 데 병목 현상이 된다고 추측하고 모델이 부품을 자동으로 (소프트) 검색하도록 허용하여 이를 확장할 것을 제안합니다. 이러한 부분을 명시적으로 하드 세그먼트로 구성할 필요 없이 타겟 단어 예측과 관련된 소스 문장을 생성합니다. 이 새로운 접근 방식을 통해 우리는 영어-프랑스어 번역 작업에 대해 기존의 최첨단 구문 기반 시스템에 필적하는 번역 성능을 달성합니다. 더욱이, 정성적 분석은 모델에서 발견된 (소프트) 정렬이 우리의 직관과 잘 일치한다는 것을 보여줍니다.

 

1. 서론

신경 기계 번역은 최근 Kalchbrenner 및 Blunsom(2013), Sutskever 등이 제안한 기계 번역에 대한 새롭게 떠오르는 접근 방식입니다. (2014) 및 Cho et al. (2014b). 개별적으로 조정되는 많은 작은 하위 구성요소로 구성된 전통적인 구문 기반 번역 시스템(예: Koehn et al., 2003 참조)과 달리 신경 기계 번역은 다음을 읽는 단일의 대규모 신경망을 구축하고 훈련하려고 시도합니다. 문장을 출력하고 올바른 번역을 출력합니다.


제안된 신경 기계 번역 모델의 대부분은 각 언어에 대한 인코더와 디코더가 있는 인코더-디코더 제품군(Sutskever et al., 2014; Cho et al., 2014a)에 속하거나 언어별 번역을 포함합니다. 출력이 비교되는 각 문장에 인코더가 적용됩니다(Hermann 및 Blunsom, 2014). 인코더 신경망은 소스 문장을 읽고 고정 길이 벡터로 인코딩합니다. 그런 다음 디코더는 인코딩된 벡터에서 번역을 출력합니다. 언어 쌍에 대한 인코더와 디코더로 구성된 전체 인코더-디코더 시스템은 주어진 소스 문장에서 올바른 번역의 확률을 최대화하도록 공동으로 훈련됩니다.

 

이 인코더-디코더 접근 방식의 잠재적인 문제는 신경망이 소스 문장의 모든 필수 정보를 고정 길이 벡터로 압축할 수 있어야 한다는 것입니다. 이로 인해 신경망이 긴 문장, 특히 훈련 코퍼스의 문장보다 긴 문장에 대처하기 어려울 수 있습니다. Cho et al. (2014b)은 입력 문장의 길이가 길어질수록 기본 인코더-디코더의 성능이 급격히 저하되는 것을 보여주었습니다.

 

이 문제를 해결하기 위해 공동으로 정렬하고 변환하는 방법을 학습하는 인코더-디코더 모델의 확장을 도입합니다. 제안된 모델은 번역에서 단어를 생성할 때마다 원본 문장에서 가장 관련성이 높은 정보가 집중된 위치 집합을 (소프트) 검색합니다. 그런 다음 모델은 이러한 소스 위치 및 이전에 생성된 모든 대상 단어와 관련된 컨텍스트 벡터를 기반으로 대상 단어를 예측합니다.

 

기본 인코더-디코더와 이 접근 방식의 가장 중요한 차이점은 전체 입력 문장을 단일 고정 길이 벡터로 인코딩하려고 시도하지 않는다는 것입니다. 대신, 입력 문장을 일련의 벡터로 인코딩하고 번역을 디코딩하는 동안 적응적으로 이러한 벡터의 하위 집합을 선택합니다. 이를 통해 신경 번역 모델은 길이에 관계없이 원본 문장의 모든 정보를 고정 길이 벡터로 압축할 필요가 없습니다. 우리는 이것이 모델이 긴 문장에 더 잘 대처할 수 있음을 보여줍니다.

 

본 논문에서는 제안된 정렬 및 변환 공동 학습 접근 방식이 기본 인코더-디코더 접근 방식에 비해 번역 성능이 크게 향상되었음을 보여줍니다. 개선 효과는 긴 문장에서 더 분명하게 나타나지만 어떤 길이의 문장에서도 관찰할 수 있습니다. 영어-프랑스어 번역 작업에서 제안된 접근 방식은 단일 모델을 사용하여 기존 구문 기반 시스템과 비슷하거나 유사한 번역 성능을 달성합니다. 또한, 질적 분석을 통해 제안된 모델이 원본 문장과 해당 대상 문장 사이에 언어적으로 그럴듯한 (연성) 정렬을 찾는 것으로 나타났습니다.

 

2. 배경 : 신경 기계 번역

확률론적 관점에서 번역은 소스 문장 x가 주어졌을 때 y의 조건부 확률을 최대화하는 목표 문장 y, 즉 arg maxy p(y | x)를 찾는 것과 동일합니다. 신경 기계 번역에서는 병렬 훈련 코퍼스를 사용하여 문장 쌍의 조건부 확률을 최대화하기 위해 매개변수화된 모델을 적합합니다. 번역 모델에 의해 조건부 분포가 학습되면, 소스 문장이 주어지면 조건부 확률이 최대화되는 문장을 검색하여 해당 번역이 생성될 수 있습니다.


최근 많은 논문에서 이러한 조건 분포를 직접 학습하기 위해 신경망을 사용할 것을 제안했습니다(예: Kalchbrenner 및 Blunsom, 2013; Cho et al., 2014a; Sutskever et al., 2014; Cho et al. , 2014b, Forcada 및 Neco, 1997). 이 신경 기계 번역 접근 방식은 일반적으로 두 가지 구성 요소로 구성됩니다. 첫 번째 구성 요소는 소스 문장 x를 인코딩하고 두 번째 구성 요소는 대상 문장 y로 디코딩합니다. 예를 들어 Cho et al., 2014a와 Sutskever et al., 2014에서는 두 개의 순환 신경망(RNN)을 사용하여 가변 길이 소스 문장을 고정 길이 벡터로 인코딩하고 벡터를 가변 길이 목표 문장.

 

상당히 새로운 접근 방식임에도 불구하고 신경 기계 번역은 이미 유망한 결과를 보여주었습니다. Sutskeveret al. (2014)는 장단기 기억(LSTM) 단위를 갖춘 RNN을 기반으로 한 신경 기계 번역이 영어-프랑스어 번역에서 기존 구문 기반 기계 번역 시스템의 SOTA 성능에 가까운 성능을 달성했다고 보고했습니다. 번역 작업.1 예를 들어 구문 테이블에서 구문 쌍의 점수를 매기거나(Cho et al., 2014a) 후보 번역의 순위를 다시 지정하기 위해(Sutskever et al., 2014) 기존 번역 시스템에 신경 구성 요소를 추가하면 다음이 가능해졌습니다. 이전의 SOTA 성능 수준을 능가합니다.

 

2.1  RNN 인코더-디코더

여기에서는 Cho et al.이 제안한 RNN Encoder-Decoder라는 기본 프레임워크를 간략하게 설명합니다. (2014a) 및 Sutskever et al. (2014) 이를 바탕으로 정렬과 번역을 동시에 학습하는 새로운 아키텍처를 구축했습니다.
인코더-디코더 프레임워크에서 인코더는 입력 문장, 즉 일련의 벡터 x = (x1 , · · · , xTx )를 벡터 c로 읽어옵니다. 가장 일반적인 접근 방식은 다음과 같이 RNN을 사용하는 것입니다.

 


여기서 ht ∈ Rn은 시간 t에서의 숨겨진 상태이고, c는 숨겨진 상태의 시퀀스에서 생성된 벡터입니다. f와 q는 일부 비선형 함수입니다. Sutskeveret al. (2014)는 예를 들어 LSTM을 f 및 q ({h1 , · · · , hT }) = hT 로 사용했습니다.

 

디코더는 컨텍스트 벡터 c와 이전에 예측된 모든 단어 {y1 , · · · , yt −1 }가 주어지면 다음 단어 yt를 예측하도록 훈련되는 경우가 많습니다. 즉, 디코더는 결합 확률을 순서가 지정된 조건문으로 분해하여 변환 y에 대한 확률을 정의합니다.

여기서 y = y1 , · · · , yTy 입니다. RNN을 사용하면 각 조건부 확률은 다음과 같이 모델링됩니다.

여기서 g는 yt의 확률을 출력하는 비선형, 잠재적으로 다중 계층 함수이고, st는 RNN의 숨겨진 상태입니다. RNN과 de-convolutional 신경망의 하이브리드와 같은 다른 아키텍처를 사용할 수 있다는 점에 유의해야 합니다. (Kalchbrenner 및 Blunsom, 2013).

 

3. 정렬 및 번역 학습

이 섹션에서는 신경 기계 번역을 위한 새로운 아키텍처를 제안합니다. 새로운 아키텍처는 인코더(Sec. 3.2)인 양방향 RNN과 번역을 디코딩하는 동안 소스 문장을 통한 검색을 에뮬레이트하는 디코더(Sec. 3.1)로 구성됩니다.


3.1 디코더: 일반 설명

새로운 모델 아키텍처에서 우리는 Eq.에서 각 조건부 확률을 정의합니다. (2) 다음과 같이:

여기서 si는 시간 i에 대한 RNN 숨겨진 상태이며 다음과 같이 계산됩니다.

그림 1: 주어진 소스 문장(x1, x2, ..., xT)에서 t번째 대상 단어 yt를 생성하려고 시도하는 제안 모델의 그래픽 설명입니다.

 

기존 인코더-디코더 접근 방식(Eq. (2) 참조)과 달리 여기서 확률은 각 대상 단어 yi에 대해 고유한 컨텍스트 벡터 ci에 따라 조건이 지정됩니다.


컨텍스트 벡터 ci는 인코더가 입력 문장을 매핑하는 주석 시퀀스(h1 , · · · , hTx )에 따라 달라집니다. 각 주석 hi에는 입력 시퀀스의 i번째 단어를 둘러싼 부분에 중점을 두고 전체 입력 시퀀스에 대한 정보가 포함됩니다. 다음 섹션에서 주석이 어떻게 계산되는지 자세히 설명합니다.

 

그런 다음 컨텍스트 벡터 ci는 다음 주석 hi의 가중 합계로 계산됩니다

각 주석 hj의 가중치 αij는 다음과 같이 계산됩니다

위치 j 주변의 입력과 위치 i의 출력이 얼마나 잘 일치하는지 점수를 매기는 정렬 모델입니다. 점수는 RNN 숨겨진 상태 si−1(yi를 방출하기 직전, 식(4))과 입력 문장의 j번째 주석 hj를 기반으로 합니다.

 

우리는 정렬 모델 a를 제안된 시스템의 다른 모든 구성 요소와 공동으로 훈련되는 피드포워드 신경망으로 매개변수화합니다. 전통적인 기계 번역과 달리 정렬은 잠재 변수로 간주되지 않습니다. 대신 정렬 모델은 소프트 정렬을 직접 계산하여 비용 함수의 기울기를 역전파할 수 있습니다. 이 그래디언트는 정렬 모델뿐만 아니라 전체 번역 모델을 공동으로 훈련하는 데 사용될 수 있습니다.

 

예상되는 정렬이 예상되는 주석을 계산하는 것처럼 모든 주석의 가중 합계를 취하는 접근 방식을 이해할 수 있습니다. αij를 대상 단어 yi가 소스 단어 xj에 정렬되거나 소스 단어에서 번역될 확률로 설정합니다. 그러면 i번째 컨텍스트 벡터 ci는 확률이 αij인 모든 주석에 대해 예상되는 주석입니다.


확률 αij 또는 관련 에너지 eij는 다음 상태 si를 결정하고 yi를 생성할 때 이전 숨겨진 상태 si−1에 대한 주석 hj의 중요성을 반영합니다. 직관적으로 이는 디코더에서 주목 메커니즘을 구현합니다. 디코더는 주의를 기울일 원본 문장의 부분을 결정합니다. 디코더에 어텐션 메커니즘을 부여함으로써 소스 문장의 모든 정보를 고정 길이 벡터로 인코딩해야 하는 부담에서 인코더를 덜어줍니다. 이 새로운 접근 방식을 사용하면 정보가 주석 시퀀스 전체에 분산될 수 있으며 이에 따라 디코더가 이를 선택적으로 검색할 수 있습니다.

 

3.2 인코더: 주석 시퀀스를 위한 양방향 RNN

반적인 RNN은 Eq. (1)은 첫 번째 기호 x1부터 마지막 ​​기호 xTx까지 순서대로 입력 시퀀스 x를 읽습니다. 그러나 제안된 방식에서는 각 단어의 주석을 통해 앞의 단어뿐만 아니라 뒤따르는 단어도 요약하기를 원합니다. 따라서,
우리는 최근 음성 인식에 성공적으로 사용된 양방향 RNN(BiRNN, Schuster and Paliwal, 1997)을 사용할 것을 제안합니다(예: Graves et al., 2013 참조).

 

BiRNN은 순방향 RNN과 역방향 RNN으로 구성됩니다. 순방향 RNN f→는 입력 시퀀스를 순서대로(x1에서 xTx까지) 읽고 순방향 숨겨진 상태(h1→, ..., htx→) 시퀀스를 계산합니다. 역방향 RNN f←는 역순(xTx에서 x1까지)으로 시퀀스를 읽어 역방향 은닉 상태(h1←, ..., htx←)의 시퀀스를 생성합니다.

 

우리는 순방향 은닉 상태 hj →와 역방향 은닉 상태 hj←를 연결하여 각 단어 xj에 대한 주석을 얻습니다. 즉, hj =htj→; htj←. 이러한 방식으로 주석 hj에는 이전 단어와 다음 단어의 요약이 모두 포함됩니다. RNN이 최근 입력을 더 잘 나타내는 경향으로 인해 주석 hj는 xj 주변의 단어에 초점을 맞춥니다. 이 주석 시퀀스는 디코더와 정렬 모델이 나중에 컨텍스트 벡터를 계산하는 데 사용됩니다(Eqs. (5)-(6)).


제안된 모델의 그래픽 설명은 그림 1을 참조하세요.

 

4. 실험 설정

우리는 영어-프랑스어 번역 작업에 대해 제안된 접근 방식을 평가합니다. 우리는 ACL WMT ’14.3에서 제공하는 이중 언어, 병렬 말뭉치를 사용합니다. 비교를 위해 최근 Cho et al.(2014a)이 제안한 RNN 인코더-디코더의 성능도 보고합니다. 우리는 두 모델 모두에 대해 동일한 훈련 절차와 동일한 데이터 세트를 사용합니다.


4 .1 데이터 세트

WMT ’14에는 Europarl(6100만 단어), 뉴스 논평(550만 단어), UN(421M), 각각 9천만 단어와 2억 7250만 단어로 구성된 두 개의 크롤링된 말뭉치(총 850M 단어)가 포함됩니다. Cho et al.(2014a)에서 설명한 절차에 따라 Axelrod et al.(2011)의 데이터 선택 방법을 사용하여 결합 코퍼스의 크기를 348M 단어로 줄였습니다. 인코더를 사전 학습시키기 위해 훨씬 더 큰 단일 언어 코퍼스를 사용하는 것이 가능할 수도 있지만 언급된 병렬 말뭉치 이외의 단일 언어 데이터는 사용하지 않습니다. 우리는 news-test-2012와 news-test-2013을 연결하여 개발(검증) 세트를 만들고 WMT '14의 테스트 세트(뉴스-테스트-2014)에서 모델을 평가합니다. 이 세트는 WMT '14에 없는 3003개의 문장으로 구성됩니다. 훈련 데이터

 

일반적인 토큰화 이후 각 언어에서 가장 자주 사용되는 단어 30,000개의 최종 후보 목록을 사용하여 모델을 교육합니다. 후보 목록에 포함되지 않은 모든 단어는 특수 토큰([UNK])에 매핑됩니다. 우리는 데이터에 소문자 변환이나 형태소 분석과 같은 다른 특별한 전처리를 적용하지 않습니다.

그림 2: 문장 길이에 따라 테스트 세트에서 생성된 번역의 BLEU 점수입니다. 결과가 나와 있어요. 모델에 알려지지 않은 단어가 포함된 문장을 포함하는 전체 테스트 세트입니다.

 

4.2 모델

우리는 두 가지 유형의 모델을 훈련합니다. 첫 번째는 RNN Encoder-Decoder(RNNencdec, Cho et al., 2014a)이고, 다른 하나는 RNNsearch라고 하는 제안된 모델입니다. 각 모델을 두 번 훈련합니다. 먼저 최대 30단어 길이의 문장(RNNencdec-30, RNNsearch-30)으로, 그런 다음 최대 50단어 길이의 문장(RNNencdec-50, RNNsearch-50)으로 학습합니다.


RNNencdec의 인코더와 디코더에는 각각 1000개의 숨겨진 유닛이 있습니다. RNNsearch의 인코더는 각각 1000개의 숨겨진 유닛이 있는 순방향 및 역방향 순환 신경망(RNN)으로 구성됩니다. 디코더에는 1000개의 숨겨진 유닛이 있습니다. 두 경우 모두 단일 최대 출력(Goodfellow et al., 2013) 숨겨진 레이어가 있는 다층 네트워크를 사용하여 각 대상 단어의 조건부 확률을 계산합니다(Pascanu et al., 2014).

 

우리는 Adadelta(Zeiler, 2012)와 함께 미니배치 SGD(확률적 경사하강법) 알고리즘을 사용하여 각 모델을 훈련합니다. 각 SGD 업데이트 방향은 80개 문장의 미니 배치를 사용하여 계산됩니다. 우리는 각 모델을 약 5일 동안 훈련했습니다.

 

모델이 훈련되면 빔 검색을 사용하여 조건부 확률을 대략 최대화하는 변환을 찾습니다(예: Graves, 2012; Boulanger-Lewandowski et al., 2013 참조). Sutskever et al.(2014)은 이 접근 방식을 사용하여 신경 기계 번역 모델에서 번역을 생성했습니다. 실험에 사용된 모델의 아키텍처와 훈련 절차에 대한 자세한 내용은 부록 A와 B를 참조하세요.

 

5 결과

5.1 정량적 결과

표 1에는 BLEU 점수로 측정된 번역 성능을 나열합니다. 모든 경우에 제안된 RNNsearch가 기존 RNNencdec보다 성능이 우수하다는 것이 표에서 분명합니다. 더 중요한 것은 알려진 단어로 구성된 문장만 고려할 때 RNN 검색의 성능이 기존 구문 기반 번역 시스템(Moses)만큼 높다는 것입니다.
이는 Moses가 RNNsearch 및 RNNencdec를 훈련하는데 사용한 병렬 말뭉치 외에 별도의 단일 언어 말뭉치(418M 단어)를 사용한다는 점을 고려하면 중요한 성과입니다.

그림 3: RNNsearch-50에서 찾은 4개의 샘플 정렬. 각 플롯의 x축과 y축은 각각 원본 문장(영어) 및 생성된 번역(프랑스어)의 단어에 해당합니다. 각 픽셀은 i번째 소스 단어에 대한 j번째 소스 단어 주석의 가중치 αij를 나타냅니다.
회색조(0: 검정색, 1: 흰색)의 대상 단어(식(6) 참조). (a) 임의의 문장. (b–d) 알 수 없는 단어가 없고 테스트 세트에서 길이가 10~20 단어 사이인 문장 중에서 무작위로 선택된 3개의 샘플입니다.

 

제안된 접근 방식의 동기 중 하나는 기본 인코더-디코더 접근 방식에서 고정 길이 컨텍스트 벡터를 사용하는 것입니다. 우리는 이러한 제한으로 인해 기본 인코더-디코더 접근 방식이 긴 문장에서 성능이 저하될 수 있다고 추측했습니다. 그림 2에서 문장의 길이가 길어질수록 RNNencdec의 성능이 급격히 떨어지는 것을 볼 수 있습니다. 반면에 RNNsearch-30과 RNNsearch-50은 모두 문장 길이에 더 강력합니다. 특히 RNNsearch-50은 문장 길이가 50개 이상인 경우에도 성능 저하가 나타나지 않습니다. 기본 인코더-디코더에 비해 제안된 모델의 이러한 우월성은 RNNsearch-30이 RNNencdec-50보다 성능이 뛰어나다는 사실로 더욱 확인됩니다(표 1 참조).

 

표 1: 테스트 세트에서 계산된 훈련된 모델의 BLEU 점수. 두 번째와 세 번째 열에는 각각 모든 문장의 점수가 표시되고, 자체적으로 알 수 없는 단어가 없는 문장과 참조 번역에 대한 점수가 표시됩니다. RNNsearch-50은 개발 세트의 성능이 향상되지 않을 때까지 훨씬 더 오랫동안 훈련되었습니다. (◦) 알 수 없는 단어가 없는 문장만 평가할 때 모델이 [UNK] 토큰을 생성하는 것을 허용하지 않았습니다(마지막 열).


5.2 정성적 분석

 

5.2.1 정렬

제안된 접근 방식은 생성된 번역의 단어와 원본 문장의 단어 사이의 (소프트) 정렬을 검사하는 직관적인 방법을 제공합니다. 이는 Eq.로부터 주석 가중치 αij를 시각화함으로써 수행됩니다. (6), 그림 3과 같습니다. 각 플롯의 행렬의 각 행은 주석과 관련된 가중치를 나타냅니다. 이를 통해 목표 단어를 생성할 때 원본 문장의 어느 위치가 더 중요하게 고려되었는지 알 수 있습니다.

 

그림 3의 정렬에서 영어와 프랑스어 사이의 단어 정렬이 대체로 단조롭다는 것을 알 수 있습니다. 각 행렬의 대각선을 따라 강한 가중치가 표시됩니다. 그러나 우리는 또한 사소하지 않고 단조롭지 않은 정렬도 많이 관찰합니다. 형용사와 명사는 일반적으로  프랑스어와 영어의 순서가 다르며 그림 3(a)에 그 예가 나와 있습니다. 이 그림에서 모델이 [European Economic Area]라는 문구를 [zone economique Europeen]으로 올바르게 번역한다는 것을 알 수 있습니다. RNNsearch는 [zone]을 [Area]와 올바르게 정렬하여 두 단어([European] 및 [Economic])를 건너뛴 다음 한 번에 한 단어씩 뒤로 찾아 전체 구문 [zone economique Europeenne]을 완성할 수 있었습니다.

 

예를 들어, 그림 3(d)에서는 하드 정렬과 반대되는 소프트 정렬의 강도가 분명합니다. [l' homme]으로 번역된 원본 문구 [the man]을 생각해 보세요. 모든 하드 정렬은 [the]를 [l']로, [man]을 [homme]으로 매핑합니다. 이는 번역에 도움이 되지 않습니다.
[le], [la], [les] 또는 [l']로 번역할지 여부를 결정하려면 [the] 뒤에 오는 단어를 고려해야 합니다. 우리의 소프트 정렬은 모델이 [the]와 [man]을 모두 보도록 하여 이 문제를 자연스럽게 해결하며, 이 예에서는 모델이 [the]를 [l']로 올바르게 변환할 수 있음을 알 수 있습니다. 우리는 그림 3에 제시된 모든 사례에서 유사한 동작을 관찰합니다. 소프트 정렬의 추가 이점은 일부 단어를 또는 에 매핑하는 반직관적인 방법을 요구하지 않고 서로 다른 길이의 소스 및 대상 구문을 자연스럽게 처리한다는 것입니다. 아무데도([NULL])(예: Koehn, 2010의 4장 및 5장 참조)

 

5.2.2 긴 문장

그림 2에서 명확하게 볼 수 있듯이 제안된 모델(RNNsearch)은 긴 문장을 번역하는 데 기존 모델(RNNencdec)보다 훨씬 좋습니다. 이는 RNNsearch가 긴 문장을 고정 길이 벡터로 완벽하게 인코딩할 필요가 없고 특정 단어를 둘러싸는 입력 문장 부분만 정확하게 인코딩하기 때문일 수 있습니다.

예를 들어, 테스트 세트의 다음 소스 문장을 고려해보세요.

 

입원 특권은 병원의 의료 종사자로서의 지위에 따라 진단이나 시술을 수행하기 위해 환자를 병원이나 의료 센터에 입원시킬 수 있는 의사의 권리입니다.

 

RNNencdec-50은 이 문장을 다음과 같이 번역했습니다.

 

입원 특권은 의사가 병원이나 의료 센터에서 환자를 인정하여 진단을 받거나 환자의 건강 상태에 따라 진단을 내릴 수 있는 권리입니다.

 

RNNencdec-50은 [의료센터]까지 원본 문장을 정확하게 번역했습니다. 그러나 거기서부터(밑줄 친 부분) 원문의 본래 의미에서 벗어났다. 예를 들어, 원본 문장의 [병원의 의료 종사자로서의 지위에 따라]를 [그의 건강 상태에 따라](“그의 건강 상태에 따라”)로 대체했습니다.

 

반면 RNNsearch-50은 세부 사항을 생략하지 않고 입력 문장의 전체 의미를 보존하면서 다음과 같은 올바른 번역을 생성했습니다.


입원 특권은 의료 종사자로서의 지위에 따라 진단이나 시술을 수행하기 위해 환자를 '병원 또는 의료 센터'에 입원시킬 수 있는 의사의 권리입니다.


테스트 세트의 또 다른 문장을 고려해 보겠습니다.

 

이러한 종류의 경험은 "시리즈의 수명을 연장하고 점점 더 중요해지고 있는 디지털 플랫폼을 통해 관객과 새로운 관계를 구축하려는" 디즈니 노력의 일환이라고 그는 덧붙였습니다.


RNNencdec-50에 의한 번역은 다음과 같습니다.

 

이러한 유형의 경험은 "뉴스의 수명을 연장하고 점점 더 복잡해지고 있는 "디지털 독자"와의 연결을 개발하려는 Disney의 계획의 일부입니다.

 

이전 예와 마찬가지로 RNNencdec은 약 30개의 단어를 생성한 이후부터 원본 문장의 실제 의미에서 벗어나기 시작했습니다(밑줄 친 문장 참조). 그 이후에는 닫는 인용 부호가 없는 등 기본적인 실수로 번역 품질이 저하됩니다.

 

이번에도 RNNsearch-50은 이 긴 문장을 올바르게 번역할 수 있었습니다.

 

이러한 종류의 경험은 "시리즈의 수명을 연장하고 점점 더 중요해지는 디지털 플랫폼을 통해 관객과 새로운 관계를 구축"하려는 디즈니의 노력의 일환이라고 그는 덧붙였습니다.

 

이미 제시된 정량적 결과와 함께 이러한 정성적 관찰은 RNNsearch 아키텍처가 표준 RNNencdec 모델보다 긴 문장을 훨씬 더 안정적으로 번역할 수 있다는 가설을 확인시켜 줍니다.
부록 C에서는 참조 번역과 함께 RNNencdec-50, RNNsearch-50 및 Google Translate에서 생성된 긴 소스 문장의 샘플 번역을 몇 가지 더 제공합니다.

 

6. 관련작업

6.1 정렬 학습

최근 Graves(2013)는 필기 합성의 맥락에서 출력 기호를 입력 기호와 정렬하는 유사한 접근 방식을 제안했습니다. 필기 합성은 모델이 주어진 문자 시퀀스의 필기를 생성하도록 요청하는 작업입니다. 그의 작업에서 그는 혼합 가우스 커널을 사용하여 주석의 가중치를 계산했으며, 여기서 각 커널의 위치, 너비 및 혼합 계수는 정렬 모델에서 예측되었습니다. 보다 구체적으로, 그의 정렬은 위치가 단조롭게 증가하도록 위치를 예측하도록 제한되었습니다.

 

우리 접근 방식과의 주요 차이점은 (Graves, 2013)에서 주석 가중치 모드가 한 방향으로만 이동한다는 것입니다. 기계 번역의 경우 문법적으로 올바른 번역(예: 영어-독일어)을 생성하려면 (장거리) 재정렬이 필요한 경우가 많기 때문에 이는 심각한 제한 사항입니다.

 

반면에 우리의 접근 방식에서는 번역의 각 단어에 대해 원본 문장의 모든 단어에 대한 주석 가중치를 계산해야 합니다. 대부분의 입력 및 출력 문장이 15~40 단어에 불과한 번역 작업에서는 이러한 단점이 심각하지 않습니다. 그러나 이로 인해 제안된 방식을 다른 작업에 적용하는 것이 제한될 수 있습니다.

 

6.2 기계 번역을 위한 신경망

Bengio et al.(2003)은 고정된 수의 선행 단어가 주어졌을 때 단어의 조건부 확률을 모델링하기 위해 신경망을 사용하는 신경 확률적 언어 모델을 도입한 이후 신경망이 기계 번역에 널리 사용되었습니다. 그러나 신경망의 역할은 단순히 기존 통계 기계 번역 시스템에 단일 기능을 제공하거나 기존 시스템에서 제공하는 후보 번역 목록의 순위를 다시 지정하는 것으로 크게 제한되었습니다.

 

예를 들어, Schwenk(2012)는 피드포워드 신경망을 사용하여 소스 및 대상 문구 쌍의 점수를 계산하고 해당 점수를 문구 기반 통계 기계 번역 시스템의 추가 기능으로 사용할 것을 제안했습니다. 최근에는 Kalchbrenner 및 Blunsom(2013)과 Devlin et al.(2014)이 기존 번역 시스템의 하위 구성 요소로 신경망을 성공적으로 사용했다고 보고했습니다. 전통적으로 타겟 측 언어 모델로 훈련된 신경망은 후보 번역 목록의 점수를 다시 매기거나 순위를 다시 매기는 데 사용되었습니다(예: Schwenk et al., 2006 참조).

 

위의 접근 방식은 최첨단 기계 번역 시스템에 비해 번역 성능을 향상시키는 것으로 나타났지만, 우리는 신경망을 기반으로 완전히 새로운 번역 시스템을 설계하려는 보다 야심찬 목표에 더 관심이 있습니다. 따라서 우리가 이 논문에서 고려하는 신경 기계 번역 접근 방식은 이전 연구에서 근본적으로 벗어났습니다. 기존 시스템의 일부로 신경망을 사용하는 대신 우리 모델은 자체적으로 작동하여 원본 문장에서 직접 번역을 생성합니다.

 

7. 결론

인코더-디코더 접근법이라고 불리는 신경 기계 번역에 대한 기존 접근법은 전체 입력 문장을 번역이 디코딩될 고정 길이 벡터로 인코딩합니다. 우리는 Cho et al.(2014b)와 Pouget-Abadie et al.(2014)이 보고한 최근 실증적 연구를 기반으로 고정 길이 컨텍스트 벡터의 사용이 긴 문장을 번역하는 데 문제가 있다고 추측했습니다.

 

본 논문에서는 이 문제를 해결하는 새로운 아키텍처를 제안했습니다. 우리는 각 대상 단어를 생성할 때 모델이 입력 단어 세트 또는 인코더에 의해 계산된 주석을 (소프트) 검색하도록 하여 기본 인코더-디코더를 확장했습니다. 이를 통해 모델은 전체 소스 문장을 고정 길이 벡터로 인코딩할 필요가 없으며 모델은 다음 대상 단어 생성과 관련된 정보에만 집중할 수 있습니다. 이는 신경 기계 번역 시스템이 긴 문장에서 좋은 결과를 산출하는 능력에 큰 긍정적인 영향을 미칩니다. 기존 기계 번역 시스템과 달리 정렬 메커니즘을 포함한 번역 시스템의 모든 부분은 올바른 번역을 생성할 수 있는 더 나은 로그 확률을 향해 공동으로 훈련됩니다.

 

우리는 영어-프랑스어 번역 작업에 대해 RNNsearch라는 제안된 모델을 테스트했습니다. 실험을 통해 제안된 RNNsearch는 문장 길이에 관계없이 기존 인코더-디코더 모델(RNNencdec)보다 훨씬 뛰어난 성능을 발휘하며 소스 문장 길이에 비해 훨씬 더 강력하다는 사실이 밝혀졌습니다. RNNsearch에서 생성된 (소프트) 정렬을 조사한 정성적 분석을 통해 모델이 생성된 소스 문장의 관련 단어 또는 해당 주석과 각 대상 단어를 올바르게 정렬할 수 있다는 결론을 내릴 수 있었습니다. 올바른 번역.

 

아마도 더 중요한 것은 제안된 접근 방식이 기존 구문 기반 통계 기계 번역에 필적하는 번역 성능을 달성했다는 것입니다. 제안된 아키텍처 또는 전체 신경 기계 번역 제품군이 최근 올해에야 제안되었다는 점을 고려하면 이는 놀라운 결과입니다. 우리는 여기에 제안된 아키텍처가 더 나은 기계 번역과 일반적으로 자연어에 대한 더 나은 이해를 향한 유망한 단계라고 믿습니다.

 

앞으로 남은 과제 중 하나는 알려지지 않은 단어나 희귀한 단어를 더 잘 처리하는 것입니다. 이는 모델이 더 널리 사용되고 모든 상황에서 현재 SOTA 기계 번역 시스템의 성능을 일치시키기 위해 필요합니다.

 

A. 모델 아키텍처

 

A.1 아키텍처 선택

 

3장에서 제안하는 방식은 순환 신경망(RNN)의 활성화 함수 f와 정렬 모델 a 등을 자유롭게 정의할 수 있는 일반적인 프레임워크입니다. 여기서는 이 문서의 실험을 위해 선택한 사항을 설명합니다.

 

A.1.1 순환 신경망

RNN의 활성화 함수 f를 위해 최근 Cho et al.(2014a)이 제안한 Gated Hidden Unit을 사용합니다. Gated Hidden Unit은 요소별 tanh와 같은 기존의 단순 단위에 대한 대안입니다. 단위는 Hochreiter와 Schmidhuber(1997)가 이전에 제안한 장단기 기억(LSTM) 단위와 유사하며 장기 종속성을 더 잘 모델링하고 학습할 수 있는 기능을 공유합니다. 이는 다음과 같은 계산 경로를 가짐으로써 가능해집니다. 도함수의 곱이 1에 가까운 펼쳐진 RNN입니다. 이러한 경로를 사용하면 소실 효과를 크게 겪지 않고 기울기가 쉽게 뒤로 흐를 수 있습니다(Hochreiter, 1991; Bengio et al., 1994; Pascanu et al., 2013a). 따라서 Sutskever et al. (2014).

n개의 게이트 은닉 유닛을 사용하는 RNN의 새로운 상태 si는 다음과 같이 계산됩니다.

여기서 ◦는 요소별 곱셈이고 zi는 업데이트 게이트의 출력입니다(아래 참조). 제안된 업데이트 상태 s~i는 다음과 같이 계산됩니다.

여기서 e(yi−1 ) ∈ Rm은 단어 yi−1 의 m차원 임베딩이고 ri는 재설정 게이트의 출력입니다(아래 참조). yi가 1-K 벡터로 표현되면 e(yi)는 단순히 임베딩 행렬 E ∈ Rm×K 의 열입니다. 가능할 때마다 방정식을 덜 복잡하게 만들기 위해 편향 항을 생략합니다.

 

업데이트 게이트 zi는 각 숨겨진 유닛이 이전 활성화를 유지할 수 있도록 하며, 재설정 게이트 ri는 이전 상태에서 재설정해야 하는 정보의 양과 정보를 제어합니다. 우리는 그것을 다음과 같이 계산합니다.

여기서 σ(·)는 로지스틱 시그모이드 함수입니다.

디코더의 각 단계에서 출력 확률(식(4))을 다층 함수로 계산합니다(Pascanu et al., 2014). 우리는 maxout 단위의 단일 숨겨진 레이어(Goodfellow et al., 2013)를 사용하고 소프트맥스 함수(Eq. (6) 참조)를 사용하여 출력 확률(각 단어당 하나씩)을 정규화합니다.

 

A.1.2 정렬 모델

Tx 및 Ty 길이의 각 문장 쌍에 대해 모델이 Tx × Ty 횟수를 평가해야 한다는 점을 고려하여 정렬 모델을 설계해야 합니다. 계산을 줄이기 위해 단일 레이어 다층 퍼셉트론을 사용합니다.

여기서 Wa ∈ Rn×n , Ua ∈ Rn×2n 및 va ∈ Rn은 가중치 행렬입니다. Ua hj는 i에 의존하지 않기 때문에 계산 비용을 최소화하기 위해 미리 계산할 수 있습니다.


A.2 모델에 대한 자세한 설명


A.2.1 인코더

이 섹션에서는 실험에 사용된 제안 모델(RNNsearch)의 아키텍처를 자세히 설명합니다(섹션 4-5 참조). 이제부터는 가독성을 높이기 위해 모든 편향 용어를 생략합니다.
모델은 1-of-K 코드 단어 벡터의 소스 문장을 입력으로 사용합니다.

1-of-K 코드어 벡터의 번역된 문장을 출력합니다.

여기서 Kx와 Ky는 각각 소스 언어와 대상 언어의 어휘 크기입니다. Tx와 Ty는 각각 소스 문장과 타겟 문장의 길이를 나타냅니다.

먼저 BiRNN(양방향 순환 신경망)의 순방향 상태가 계산됩니다.

Eㅡ ∈ Rm×Kx는 단어 임베딩 행렬입니다. W→, Wz→, Wr→ ∈ R^n*m, U→, Uz→, Ur→ ∈ R^n*n은 가중치 행렬입니다. m과 n은 각각 단어 임베딩 차원과 숨겨진 단위의 수입니다. σ(·)는 평소와 같이 로지스틱 시그모이드 함수입니다.

역방향 상태(h1←,...,hTx←)도 비슷하게 계산됩니다. 가중치 행렬과 달리 순방향 RNN과 역방향 RNN 간에 단어 임베딩 행렬 Eㅡ를 공유합니다.

주석(h1, h2,···, hTx)을 얻기 위해 순방향 상태와 역방향 상태를 연결합니다.

A.2.2 디코더

인코더의 주석이 주어진 디코더의 숨겨진 상태 si는 다음과 같이 계산됩니다.

E는 대상 언어에 대한 단어 임베딩 매트릭스입니다. W, Wz , Wr ∈ Rn×m , U, Uz , Ur ∈ Rn×n , C, Cz , Cr ∈ Rn×2n 은 가중치입니다. 다시 말하지만, m과 n은 각각 단어 임베딩 차원과 숨겨진 단위의 수입니다. 초기 은닉 상태 s0은 s0 = tanh (Wsh1←)로 계산됩니다. 여기서 Ws ∈ Rn×n


컨텍스트 벡터 ci는 정렬 모델에 의해 각 단계에서 다시 계산됩니다.

표 2: 학습 통계 및 관련 정보. 각 업데이트는 단일 미니배치를 사용하여 매개변수를 한 번 업데이트하는 것에 해당합니다. 한 에포크는 훈련 세트를 한 번 통과하는 것입니다. NLL은 훈련 세트 또는 개발 세트에 있는 문장의 평균 조건부 로그 확률입니다. 문장의 길이가 다르므로 주의하세요.

hj는 원본 문장의 j 번째 주석입니다(식(7) 참조). va ∈ R^n', Wa ∈ R^n'×n 및 Ua ∈ R^n' ×2n은 가중치 행렬입니다. ci를 h Tx→로 고정하면 모델은 RNN Encoder-Decoder(Cho et al., 2014a)가 됩니다.

디코더 상태 si−1, 컨텍스트 ci 및 마지막 생성된 단어 yi−1을 사용하여 대상 단어 yi의 확률을 다음과 같이 정의합니다.

t~i,k는 다음과 같이 계산되는 벡터 t~i의 k 번째 요소입니다

Wo ∈ R^Ky ×l , Uo ∈ R^2l×n , Vo ∈ R^2l×m 및 Co ∈ R^2l×2n은 가중치 행렬입니다. 이는 단일 최대 출력 히든 레이어(Goodfellow et al., 2013)를 사용하여 깊은 출력(Pascanu et al., 2014)을 갖는 것으로 이해될 수 있습니다.

 


B. 훈련 절차


B.1 매개변수 초기화

순환 가중치 행렬 U, Uz , Ur , U← , U z← , U r← , U→ , U z→ 및 U r→ 을 무작위로 초기화했습니다.
토고날 행렬. Wa와 Ua의 경우 평균 0과 분산 0.0012의 가우스 분포에서 각 요소를 샘플링하여 초기화했습니다. Va의 모든 요소와 모든 바이어스 벡터는 0으로 초기화되었습니다. 다른 가중치 행렬은 평균 0, 분산 0.012의 가우스 분포에서 샘플링하여 초기화되었습니다.

 

B.2 훈련

확률적 경사하강법(SGD) 알고리즘을 사용했습니다. Adadelta(Zeiler, 2012)는 각 매개변수(=10−6 및 ρ=0.95)의 학습률을 자동으로 조정하는 데 사용되었습니다. 우리는 노름이 임계값보다 클 때 매번 비용 함수 기울기의 L2 표준을 사전 정의된 임계값 1 이하로 명시적으로 정규화했습니다(Pascanu et al., 2013b). 각 SGD 업데이트 방향은 80개 문장의 미니배치로 계산되었습니다.

 

업데이트할 때마다 구현에는 미니배치에서 가장 긴 문장의 길이에 비례하는 시간이 필요합니다. 따라서 계산 낭비를 최소화하기 위해 매 20번째 업데이트 전에 1600개의 문장 쌍을 검색하여 길이에 따라 정렬하고 20개의 미니배치로 분할했습니다. 훈련 데이터는 훈련 전에 한 번 섞이고 이러한 방식으로 순차적으로 탐색되었습니다.
표 2에서는 실험에 사용된 모든 모델의 훈련과 관련된 통계를 제시합니다.

+ Recent posts