본문 바로가기

Deep Learning/자연어처리13

BERT(Bidirectional Encoder Representations form Transformers) Intro * BERT는 transformer를 이용해 구현되었으며, wikipedia(25억 단어)와 bookscorpus(8억 단어)와 같은 레이블이 없는 텍스트 데이터로 사전 훈련된 언어 모델이다. * trasnformer로 구현된 모델이기 때문에 transformer에 대한 사전 지식이 필요하다. 이전에 transformer에 대해 정리해 둔 글이 있으니 참고하길 바란다. https://soki.tistory.com/97 Transformer Intro * Transformer는 seq2seq의 encoder, decoder를 차용하되, RNN을 제거하고 attention을 사용한 모델이다. * 처음에 transformer에 대한 개괄적인 설명을 보고 여기서 RNN을 제거하고 attention을 .. 2022. 2. 20.
Transformer Intro * Transformer는 seq2seq의 encoder, decoder를 차용하되, RNN을 제거하고 attention을 사용한 모델이다. * 처음에 transformer에 대한 개괄적인 설명을 보고 여기서 RNN을 제거하고 attention을 사용한 이유가 뭘까 궁금했다. RNN은 시간 방향으로 하나씩 처리를 하기 때문에 GPU를 활용한 병렬처리가 어렵다. 반면 attention은 time step에 따라 입력 데이터를 처리하지 않고, 입력 데이터를 한 번에 받아(예를 들어 'I have a macbook'이라는 문장을 한 번에 입력받음) 행렬을 사용해 한 번에 처리한다. * 물론 자세한 구조에 대해 이해하지 않은 상태에서 이런 설명은 와닿지 않겠지만, 정리하자면 'RNN은 시점에 따라 입.. 2022. 2. 20.
다양한 단어의 표현방법 Bag of Words * Bag of words는 단어의 순서를 고려하지 않고 출현 빈도에만 집중하는 텍스트 데이터의 수치화 표현 방법이다. * 각 단어에 index를 부여하고 index 크기 만큼의 vector에 index별 출현 빈도를 표기한 것이 BoW이다. BoW 만드는 과정 1) 각 단어에 고유한 정수 index 부여 2) 각 index의 위치에 단어 토큰의 등장 횟수를 기록한 벡터를 만듦 from konlpy.tag import Okt okt = Okt() def build_bag_of_words(document): # 온점 제거 및 document 형태소 단위로 분리(list를 return) document = document.replace('.', '') tokenized_document.. 2022. 1. 27.
Sparse Representation, Dense Representation Word Embedding * word embedding은 단어를 벡터로 표현하는 방법이다. 대표적인 방법으로는 LSA, Word2Vec, FastText, Glove등이 있다. Sparse Representation(희소 표현) * sparse representation은 단어를 sparse vector로 표현하는 방식을 뜻한다. sparse vector는 vector의 대부분이 0으로 이뤄진 vector를 뜻하며, 우리가 자주 사용했던 one-hot encoding의 결과 vector가 바로 이 sparse vector라고 할 수 있다. * sparse vector는 대부분이 0으로 이뤄 있기 때문에 공간적인 낭비가 심하다. 예를 들어 corpus에 단어가 10,000개가 있다고 가정해보자. 단어 벡.. 2021. 12. 27.