본문 바로가기
IT 와 Social 이야기/NLP 자연어처리

[edwith] 딥러닝을 이용한 자연어 처리 : How to represent sentence & token? - 조경현교수

by manga0713 2021. 3. 17.

 

 

[LECTURE] How to represent sentence & token? : edwith

학습목표 문장을 어떻게 컴퓨터 언어로 표현할지 배웁니다. 핵심키워드 토큰(tokens) 단어장(Vocabulary) 인코딩(Encoding) 연속 벡터 공간(Continuous v... - 커넥트재단

www.edwith.org

 

학습내용

  • 문장은 일련의 토큰(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 etRd 

- 출처: [edwith] 딥러닝을 이용한 자연어 처리 : How to represent sentence & token? - 조경현교수