CNN을 NLP에 적용하기

CNN을 2-D의 image pixels에 적용하는 대신 matrix로 표현된 sentences 나 documents 에 적용한다. 아래 그림과 같이 matrix의 row는 sentences의 word를 word2vec을 이용해서 word embeddings으로 표현되는 vector이다.
아래에서 사용되는 CNN filters의 width는 input vector의 width와 동일한 크기를 갖는다.
CNN filter의 height는 다양한 크기를 갖는다 아래 그림에서는 2, 3, 4 의 3 종류의 height 크기가 있다. 아래 그림에서 7x5 matrix의 input vector에 4x5 filter를 적용하면 pad=0, slide=1 이라면 4x1 vector가 output map size 이다.
또한, 7x5 matrix의 input vector에 2x5 filter를 적용하면 6x1 vector가 output map size 이다. 6개의 output map에 1-max pooling을 하면 각각의 결과들은 1개의 값으로 pooling되는데 이를 concat 하면 총 6-D vector가 된다.
아래와 같이 N class로 분류하는 application으로는 sentiment Analysis, Spam Detection or Topic Categorization 등이 있다.

댓글

이 블로그의 인기 게시물

google vision API 사용하기

Convolutional Sequence to Sequence Learning

FPN