학습내용
- 문장은 일련의 토큰(tokens)으로 구성되어 있습니다. 텍스트 토큰은 주관적, 임의적(arbitrary)인 성격을 띄고 있습니다.
- 토큰을 나누는 기준은 다양합니다.
- 공백(White space)
- 형태소(Morphs)
- 어절
- 비트숫자
- 컴퓨터에게 단어를 숫자로 표현하기 위해서, 단어장(Vocabulary)을 만들고, 중복되지 않는 인덱스(index) 로 바꿉니다.
- 궁극적으로 모든 문장을 일련의 정수로 바꿔줍니다. 이를 인코딩(Encoding)이라고 합니다.
- 하지만 관계없는 숫자의 나열로 인코딩하는 것은 우리가 원하는 것이 아닙니다. 여전히 주관적인 숫자들 뿐입니다.
- 우리는 비슷한 의미의 단어는 같이 있고, 아니면 멀리 떨어져 있는 관계를 만들고 싶습니다. 그렇다면 어떻게 관계를 만들어 줘야 할까요?
- 한 가지 방법으로 "One hot Encoding"이 있을 수 있습니다.
- 길이가 단어장의 총 길이(∣V∣)인 벡터에서, 단어의 index 위치에 있는 값은 1, 나머지는 0으로 구성합니다.
- x=[0,0,0,⋯,0,1,0,⋯,0,0]∈{0,1}∣V∣
- 단점: 모든 토큰 간에 거리가 같습니다. 하지만 모든 단어의 뜻이 같지 않기 때문에 거리가 달라져야 저희가 원하는 단어간의 관계가 성립 됩니다.
- 어떻게 신경망이 토큰의 의미를 잡아낼수 있을까요?
- 결론은 각 토큰을 연속 벡터 공간(Continuous vector space) 에 투영하는 방법입니다. 이를 임베딩(Embedding) 이라고도 합니다.
- Table Look Up: 각 one hot encoding 된 토큰에게 벡터를 부여하는 과정입니다. 실질적으로 one hot encoding 벡터( x )와 연속 벡터 공간( W )을 내적 한 것 입니다.
- Table Look Up 과정을 거친후 모든 문장 토큰은 연속적이고 높은 차원의 벡터로 변합니다.
- X=(e1,e2,⋯,eT)where et∈Rd
- 출처: [edwith] 딥러닝을 이용한 자연어 처리 : How to represent sentence & token? - 조경현교수
'IT 와 Social 이야기 > NLP 자연어처리' 카테고리의 다른 글
[edwith] 딥러닝을 이용한 자연어 처리 : Self Attention & RNN - 조경현교수 (0) | 2021.03.17 |
---|---|
[edwith] 딥러닝을 이용한 자연어 처리 : CBoW & RN & CNN - 조경현교수 (0) | 2021.03.17 |
[edwith] 딥러닝을 이용한 자연어 처리 : Text Classification & Sentence Representation - Overview - 조경현교수 (0) | 2021.03.17 |
[D2] 한국어 MRC 연구를 위한 표준 데이터셋(KorQuAD) 소개 및 B2B를 위한 MRC 연구 사례 - 김명지, 임승영 님 (0) | 2021.03.17 |
[D2] 어떻게 해야 기계에게 글을 잘 읽고 말할 수 있게 할까? - 이현구님 (0) | 2021.03.16 |