Byte Pair Encoding

Heath_Jeong·2021년 3월 7일
0

Ustage Week4 - NLP

목록 보기
8/9

Subword 를 만드는 방법으로 BPE 사용

  • 학습 과정에서 low, lower, newest, widest 이라는 단어들로 vocab 을 만들 때 해당 단어들만 사용하면 테스트 과정에서 lowest 라는 단어는 vocab 에 없기 때문에 UNK 토큰으로 처리되어 번역 성능이 상당히 낮아짐

  • 이를 해결하기 위해 BPE 를 사용

  • 방법

    • 단어들을 문자 단위로 쪼개고 두 문자씩 합쳤을 때의 등장 횟수가 가장 많은 문자를 vocab 에 넣는 행위를 반복함

    • 아래는 단어와 출연 횟수를 나타냄

    • low : 5, lower : 2, newest : 6, widest : 3

      • 처음 vocab : [l, o, w, e, r, n, w, s, t, i, d]

        BPE 1 번 수행

        • l o w → (lo), (ow)
        • l o w e r, 2 → (lo), (ow) ... (er)
        • n e w e s t, 6 → (ne), ... (es), (st)
        • w i d e s t, 3 → (wi), ... (es), (st)

        ⇒ es 가 9번 등장으로 가장 많음, 결과 vocab : [l, o, w, e, r, n, w, s, t, i, d, es]

      • 다음 BPE 결과 → vocab : [l, o, w, e, r, n, w, s, t, i, d, es, est]

    • 이 과정을 반복하다 보면 lowest 라는 단어를 cover 할 수 있게됨

Further Reading


참조

  • BoostCamp AI Tech
profile
데이터로 문제를 해결하는 엔지니어를 꿈꿉니다.

0개의 댓글