레플리
글 수 72

WordPiece와 BPE(Byte Pair Encoding)

조회 수 4735 추천 수 0 2019.06.17 04:18:39


https://lovit.github.io/nlp/2018/04/02/wpm/

 

 

 

자연어처리 딥러닝은 임베딩(embedding)을 해야 한다는 점에서 이미지 딥러닝과 큰 차이가 있습니다. 임베딩이란 문장을 신경망이 이해할 수 있는 벡터로 변환하는 것을 말합니다. 임베딩에는 단어를 기준으로 하는 워드 임베딩과 글자를 기준으로 하는 캐릭터 임베딩이 있습니다.

 

보통은 워드 임베딩이 더 높은 성능을 보입니다. 임베딩의 의미가 더 압축되어 있기 때문입니다. 예를 들어, 워드 임베딩인 Seq2Seq에서 '인공지능'은 하나의 출력입니다. 하지만 캐릭터 임베딩에서는 '인', '공', '지', '능' 4개로 연속해서 나와야 해서 학습이 더 어렵습니다.

 

다만 워드 임베딩은 사전에 없는 OOV(Out Of Vocabulary)가 나올 수 있다는 단점이 있습니다. 캐릭터 임베딩은 이런 문제가 없기 때문에 더 유리합니다.

 

 

 

이런 두 가지 임베딩을 섞은 방법이 바로 WordPiece 모델입니다. 먼저 캐릭터 단위로 분리를 합니다. 그다음 자주 나오는 캐릭터들을 병합하여 하나의 토큰으로 만듭니다. 이렇게 하면 의미가 있는 캐릭터들이 묶여지기 때문에 캐릭터 임베딩과 워드 임베딩의 장점이 합쳐집니다. 또한 형태소분석이 필요 없어서 다양한 언어에 적용할 수도 있습니다.

 

BERT에서는 WordPiece를 사용했고, GPT2에서는 BPE(Byte Pair Encoding)이 쓰였습니다. WordPiece와 BPE는 거의 비슷한 개념인데, 약간 차이가 있는 것 같습니다. 서로 별개의 논문에서 발표되기도 했고, '_'나 '</w>' 등 토큰을 분리하는 방식이 조금 다릅니다. 좀 더 자세한 사항은 링크된 글을 참조하시기 바랍니다.

엮인글 :
List of Articles
제목 글쓴이 날짜 조회 수
APEACH – 혐오 발화 평가데이터를 만드는 새로운 방법 깊은바다 2022-04-22 1103
윈도우에서 간편하게 Mecab 설치방법 - pyeunjeon 깊은바다 2021-06-15 497
자연어처리 벤치마크 GLUE의 한글 버전인 KLUE 공개 file 깊은바다 2021-05-22 688
모두의 말뭉치에 새로운 일상 대화 추가 file 깊은바다 2021-04-06 562
자연어처리 벤치마크인 SuperGLUE도 인간의 기록을 경신 [1] 깊은바다 2021-01-21 550
한국어 문장 분리기, KSS(Korean Sentence Splitter) 파이썬 포팅 file 깊은바다 2020-12-23 6152
파이썬 한국어 말뭉치 패키지 - Korpora file 깊은바다 2020-09-12 1510
세종 말뭉치보다 9배 더 큰 한글 코퍼스 공개 - 모두의 말뭉치 file 깊은바다 2020-08-27 3143
한국어 전처리 기법 모음 깊은바다 2020-07-31 4539
예일대의 자연어-SQL 데이터셋, Spider 깊은바다 2020-07-12 525
IBM 왓슨의 자연어처리 방식 깊은바다 2020-06-26 626
매주 한편씩 글을 작성하는 자연어처리 블로그 - 위클리 NLP 깊은바다 2020-06-12 1129
인간의 언어를 이해하는 기계, NLU에는 어떤 것이 있을까? 깊은바다 2020-06-05 417
한글 자모 분리 및 합치기 파이썬 패키지 [1] 깊은바다 2020-03-03 3241
Machine Learning for Kids로 감정분석 깊은바다 2020-02-09 932