One Hot Encoding

One Hot Encoding

소개


One Hot Encoding이란 벡터 표현 방법이다.
One Hot Encoding을 이용해 표현한 벡터를 One Hot Vector라고 한다.

예시


아래 문장에 One Hot Encoding을 적용하면 다음과 같은 벡터로 표현가능하다.

  • sentence_list = [‘오늘은 즐거운 하루입니다’, ‘오늘은 비가 올 것 같군요’, ‘내일도 비가 올 것 같아요’ ]

세 문장의 전체 단어수는 9개이다.

  • ( 오늘은 / 즐거운 / 하루입니다 / 비가 / 올 / 것 / 같군요 / 내일도 / 같아요 )​

세 문장의 단어로 사전을 만들면 아래와 같이 된다.

  • [ 오늘은 : 1 / 즐거운 : 2 / 하루입니다 : 3 / 비가 : 4 / 올 : 5 / 것 : 6 / 같군요 : 7 / 내일도 : 8 / 같아요 : 9 ]

  • ‘오늘은 즐거운 하루입니다’ 문장을 One Hot Vector로 만들면 다음과 같이 표현된다. ( Word 단위로 자른다고 가정 )

    1 0 0 0 0 0 0 0 0
    0 1 0 0 0 0 0 0 0
    0 0 1 0 0 0 0 0 0

  • ‘오늘은 비가 올 것 같군요’ 문장을 One Hot Vector로 만들면 다음과 같이 표현된다.

    1 0 0 0 0 0 0 0 0
    0 0 0 1 0 0 0 0 0
    0 0 0 0 1 0 0 0 0
    0 0 0 0 0 1 0 0 0
    0 0 0 0 0 0 1 0 0

위와 같이 표현하고 싶은 단어의 index 위치에 1을 부여하고, 다른 단어의 인덱스의 위치에는 0을 부여하는 방법으로 표현한다.

생각


One Hot Encoding은 단어의 수가 많아지면 Vector의 차원이 계속해서 증가하는 문제가 발생한다.

그리고 단어 사이의 유사성과 관계 등을 파악할 수 없다는 문제점이 있다.

  • ex) 멍멍이의 vector는 [ 0 1 0 0 0 … 0 ] / 강아지의 vector는 [ 0 0 1 0 0 … 0 ] 으로 표현되어 있다고 가정해보자.

위의 vector만으로는 두 단어가 의미적으로 유사한지 알 수 없다.

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×