본문 바로가기

Graph(Graph Neural Network)

Graph Convolutional Networks for Text Classification

text classification을 GCN을 이용해서도 할 수 있다. 논문을 통해 공부한 내용을 정리해보고자 한다.

 

논문: Graph Convolutional Networks for Text Classification

https://arxiv.org/abs/1809.05679

 

Graph Convolutional Networks for Text Classification

Text classification is an important and classical problem in natural language processing. There have been a number of studies that applied convolutional neural networks (convolution on regular grid, e.g., sequence) to classification. However, only a limite

arxiv.org

1. Introduction

text classification는 NLP(natural language processing)에서 근본적으로 다루는 문제이다. text classification에는 document organization, news filtering, span detection, opinion mining and computational phenotypiny이 있다. text classification에서의 필수적인 단계가 text representation이다. 최근에 딥러닝 모델(CNN, RNN)은 text representation을 학습시키는데 널리 사용되어지고 있다. CNN과 RNN은 locality와 sequentiality를 우선시한다. CNN과 RNN 기반의 text classification은 하나의 document 안의 semantic(의미적), 문법적(syntactic) 정보를 잘 담았지만 전체 corpus 안에서의 관계를 담고 있지 못한다.

 

따라서, 논문에서는 Graph Convolutional Network(GCN)을 이용해서 graph를 모델화하였다.

word node와 document  node를 포함한 전체적인 corpus로부터 하나의 큰 graph를 구조화시켰다.

구조화된 그래프를 통해, text classification problem을 node classification problem으로 전환시켰다.

 

2. Related Work

2.1 Traditional Text Classification

text classification은 feature engineering과 classification algorithms에 초점을 맞춘다. feature engineering에서 가장 널리 사용되는 방법은 bag-of-word feature이다. 추가적으로 n-grams, entities in ontologies가 있다. 이 방법들과 달리, 논문에서 사용한 방법은 자동적으로 node embedding을 함으로써 text representation을 학습시키는 것이다.

 

2.2 Deep Learning for Text Classification

deep learning text classification은 크게 두 가지로 나누어진다. -> word embedding, document embedding

논문에서는 이 방법들을 연결지어서 text classification을 하는데 word/document embedding을 동시에 학습시킨다. 앞에서, 대표적인 deep learning 모델로 CNN과 RNN을 언급하였다. CNN은 sentence classification, RNN은 text representation을 하는데 사용되어진다. 비록 이 방법이 효과적이고 널리 사용되어지만, 그들은 local consecutive word sequences에 초점을 맞추고 corpus 안에서의 global word co-occurence information은 명시적으로 사용하지 않는다.

 

3. Method

이전 블로그에서 GCN 개념에 대해 지속적으로 언급해서 짧고 간단하게 정리하고 넘어가려고 한다.

GCN에 대해 더 자세하게 알고싶다면 다음 블로그를 참고하면 좋을 거 같다.

https://iy322.tistory.com/7

 

[Deep Learning] Graph Convolution Network(GCN)

1. CNN 간략하게 설명 Convolution이란? Convolution Filter(kernel)를 이용하여 image를 순회하는 dot product를 계산하고, 기존의 데이터로부터 filter를 이용하여 새로운 tensor(=activation map)을 만드는 것...

iy322.tistory.com

GCN은 그래프에 직접적으로 multilayer neural network를 적용한 것이며 노드 이웃끼리의 특성을 기반으로 노드 벡터를 embedding 하는 것이다.

Graph Structure

Graph는 node와 edge로 이루어져 있다. (V = node, E = edge)

 

One-Layer GCN을 보면, k-dimensioanl node matrix L ~ Rn*k는 다음과 같이 계산되어 진다.

Normalized Symmetric Adjacenc Matrix

Adjacency Matrix는 자기 자신의 특성을 반영하지 않는다. 따라서, self-loop를 해주기 위해서 대각행렬이 모두 1인 행렬을 더해주어야 한다. 그러면 자기 자신의 특성을 반영할 수 있다. degree matrix는 노드에 연결된 node의 개수 혹은 edge의 개수로 이해하면 된다. degree  matrix의 역행렬을 통해 normalization을 해주며  이는 back-propgation 안정화 효과가 있다.

 

4. Text Graph Convolutional Networks(Text GCN)

Construct large and heterogeneous text graph with contains word nodes and document nodes => global word co-occurence can be explicitly modeld and graph-convolution can be easily adapted.

  • O가 쓰여져 있는 node는 document node / 그 외  node는 word node
  • 진한 검은색 edge는 document node와 word node 사이의 edge
  • 회색 edge는 word node와 word node 사이의 edge
  • R(x)는 x의 representation(embedding)
  • 색깔은 document class 의미

그래프 구조는 Graph = (V,E)로 표현할 수 있다.

위의 그림에서 V = the number of documents(corpus size) + the number of unique words(vocabulary size) in corpus이다.

 

논문에서는, node-feature matrix X=I(indentitymatrix)로 표현했다. 이는  Text GCN의 input인 모든 word/document 노드의 feature는 one-hot vector로 표현되어 진다는 것을 나타낸다.

 

  • [document-word egde] : word occurence in documents
  • [word-word edge] : word co-occurence in the whole corpus

 

  • [the weight of the edge between document node and a word node] : the term-frequency-inverse document frequency(TF-IDF) of the word in the document
    • where term freqeuncy is the number of times the word appears in the document, inverse document frequency is the logarithmically scaled inverse fraction of the number of documents that contain the word.
  • [the weight of the edge between word node and word node] : point-wise mutual information(PMI)

 

정리하면,

node i 와 node j 사이의 edge에 대한 weight는 다음과 같이 표현할 수 있다.

 

5. Graph Structure into two Simple two layer GCN

 

6. Loss Function : Cross-Entropy Error

 

two layer GCN은 최대 두 단계를 가진 node 사이에 message를 허락한다. 만약, layer가 하나면, 가장 가까운 node에서의 message를 허락한다. 즉, layer를 더 많이 쌓일 수록 각 node에 이웃한 많은 node들끼리 message를 전달할 수 있다.

비록 document-document edge가 없지만, two-layer GCN은 pairs of document 사이의 정보 교환을 할 수 있다.