더북(TheBook)

10.2.1 seq2seq

seq2seq(sequence to sequence)는 입력 시퀀스(input sequence)에 대한 출력 시퀀스(output sequence)를 만들기 위한 모델입니다. seq2seq는 품사 판별과 같은 시퀀스 레이블링(sequence labeling)과는 차이가 있습니다. 시퀀스 레이블링이란 입력 단어가 x1, x2, …, xn이라면 출력은 y1, y2, …, yn이 되는 형태입니다. 즉, 입력과 출력에 대한 문자열(sequence)이 같습니다. 하지만 seq2seq는 품사 판별보다는 번역에 초점을 둔 모델입니다. 번역은 입력 시퀀스의 x1:n과 의미가 동일한 출력 시퀀스 y1:m을 만드는 것이며, xi, yi 간의 관계는 중요하지 않습니다. 그리고 각 시퀀스 길이도 서로 다를 수 있습니다.

▲ 그림 10-14 seq2seq

그럼 지금부터 seq2seq를 파이토치로 구현해 보겠습니다. 영어를 프랑스어로 번역하는 예제입니다. 이 예제는 파이토치 튜토리얼에 게시된 코드를 수정한 것입니다. 튜토리얼 코드와 비교하면서 학습해도 좋습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.