brunch

You can make anything
by writing

C.S.Lewis

by 코싸인 Dec 12. 2017

[코싸인의 인지과학 이야기] HCI(7)

[8주차 응용과학팀] 2. 텍스트를 이용한 지식표현

    이제 언어를 인식할 수는 있게 되었지만 이를 통해 소통을 하려면 지식이 필요할 것입니다. 우리는 우리의 머릿속을 들여다볼 수가 없으므로, 학자들은 저마다 언어 표현을 어떻게 체계화시켜 저장을 해야 지식의 역할을 할 수 있을지 고민했습니다. 여러 가지 방법론이 나왔으며, 그중 유명한 것으로는 논리 기반, 프레임, 의미망이 있습니다.


기존의 지식표현 방법들


    논리 기반 지식표현은 지식을 명제 논리와 술어 논리의 선언으로 표현하는 방식을 말하는 것입니다. 예를 들어 ‘철수는 남자이다’, ‘학생은 사람이다’, ‘대학생은 학생이다’, ‘수학은 과목이다’ 등의 명제 논리와, ‘철수는 수학을 좋아한다’ 등의 술어 논리로 구성되는 것입니다. 이러한 지식표현 방법의 장점은 명제를 기반으로 한 질의에 대한 답을 찾을 수 있다는 점입니다. 위의 예를 기반으로 ‘철수가 좋아하는 과목은?’이라는 질의를 날리면 ‘수학’이라는 답을 얻을 수 있게 됩니다.


[그림 1] 의미망의 예 [1]

    의미망은 개념을 나타내는 노드와, 개념들 간의 관계를 나타내는 에지로 이루어진 그래프입니다. 여기서 그래프란 주가 그래프 같은 도표가 아니라, 그림과 같은 모양의 자료구조를 말합니다. 자세한 설명은 위키피디아를 참고해주세요. 의미망은 단어들을 고양이 –이다 – 동물, 고양이 – 가진다 – 털과 같은 형태로 표현합니다.


[그림 2] 프레임의 예 [2]

    프레임은 MarvinMinsky가 1974년 발표한 개념입니다. 프레임은 개념들을 개념이 같은 데이터와 절차의 뭉치로 표현합니다. 가장 큰 특징은 상속이란 개념을 도입하여, 상위 개념과 하위 개념을 표현할 수 있다는 점입니다. 그림에서는 방의 하위 개념으로 호텔방을 표현했습니다. 그림을 보면 알 수 있듯이 프레임은 어쩌면 의미망의 일종일지도 모르겠다고 생각될 정도로 의미망과 유사한 모양을 갖습니다.

    위에 서술한 방법들은 암묵지를 형식지의 형태로 나타내려는 노력이었습니다. 하지만, 인간이 가진 모든 지식을 눈에 보이는 형태로 나타내는 데에는 현실적인 한계가 존재했습니다. 많은 노동력과 시간이 투자되었지만, 항상 새롭게 추가되는 인간의 지식을 모두 담기에는 부족했습니다. 또한, 언어별로 각각 지식체계를 구축해야 한다는 점도 단점으로 다가왔습니다. 이러한 문제를 해결하기 위해 학자들은 다른 방법을 찾아보기 시작했습니다.


워드 임베딩과 그 응용

[그림 3] 워드 임베딩의 예 [3]

    그 방법 중 하나가 바로 워드 임베딩입니다. 워드 임베딩이란 단어나 구 단위의 텍스트를 실수 벡터로 나타내는 것을 말합니다. 표현이 어렵다면 단어를 공간상에 배치함으로써 표현한다고 생각하시면 될 것 같습니다. 워드 임베딩 방법에는 여러 가지 방법이 있지만, 그중 가장 유명한 것은 Word2 Vec입니다. Word2 Vec 논문에서는 두 가지 방법을 제시하는데, CBOW와 Skip-grams입니다. 이와 같은 방법들이 임베딩에 있어 주로 사용하는 정보는 해당 단어와 동시 출현하는 단어들입니다. 두 단어가 같이 출현하는 단어가 비슷할수록 쓰이는 맥락이 비슷하단 뜻이며, 이는 두 단어가 유사한 단어임을 반증합니다.


[그림 4] 차원축소된 Word2Vec 결과물 [4]

    이러한 워드 임베딩 과정을 거치고 나면, 인간이 임의적으로 배치에 손을 쓰지 않았음에도 신기한 특징이 나타나게 됩니다. 그림은 워드 임베딩 된 단어들을 우리가 보기 쉽도록 2차원으로 축소하여 표현한 것입니다. 먼저 나라 이름들과 도시 이름들은 비슷한 맥락에서 사용되므로, 저들끼리 군집을 이룬 것을 확인할 수 있습니다. 여기서 신기한 점은 단어들 간의 관계까지 표현이 되었다는 점입니다. 각 나라와 수도 간의 상대 위치가 유사함을 알 수 있습니다. 이러한 규칙성을 통해 ‘일본에게 도쿄는 한국에게 어디?’라는 질의를 수행할 수도 있고, 서울이라는 답을 얻을 수도 있습니다.


[그림 5] RNN으로 구현한 다음 알파벳 예측기 [5]

    워드 임베딩과 뉴럴 네트워크가 결합하면 다양한 자연어 처리 작업을 수행할 수 있습니다. 뉴럴 네트워크 중 RNN(Recurrent Neural Network)은 순서가 있는 데이터를 처리하기가 용이하여 글자의 나열인 텍스트를 처리할 때도 유용합니다. 그림은 RNN으로 구현한 다음 알파벳 예측기입니다. 일반 뉴럴 네트워크 모델은 같은 Input에 대해 선 같은 output을 갖게 됩니다. 이와 달리 RNN에서는, ‘hello’를 학습시킬 경우 첫 번째 l이 input일 경우 l, 두 번째 l이 인풋일 경우 o를 output으로 가지며 맥락을 통해 정확하게 다음 단어를 예측하는 것을 보실 수 있습니다.

[그림 6] Encoder-Decoder 모델 [6]

    순차적인 데이터를 처리한다는 RNN을 특성을 이용하면, 위와 같이 번역기를 만들 수도 있습니다. 구글 번역과 같은 실제 사용되는 번역기는 위와 같이 간단하게 생기진 않았지만, 아주 기본적인 틀은 공유합니다. 지금까지 말씀드린 기술과 여러 다른 기술들을 융합해서 나온 결과물이 SKT의 누구와 같은 상품들입니다. 다음 시간에는 이제 텍스트를 하였으니, 이미지를 컴퓨터가 어떻게 인식하는지에 대해 말씀드리겠습니다. [코싸인 응용과학팀]


참고자료

[1] https://github.com/psu-psychology/psy-511-scan-fdns/blob/master/lectures/511-2016-10-19.Rmd

[2] http://www.cs.bham.ac.uk/~mmk/Teaching/AI/l6.html

[3] [4] https://deeplearning4j.org/word2vec.html

[5] http://www.popit.kr/rnnrecurrent-neural-network%EA%B3%BC-torch%EB%A1%9C-%EB%B0%9C%EB%9D%BC%EB%93%9C%EA%B3%A1-%EC%9E%91%EC%82%AC%ED%95%98%EA%B8%B0/

[6] https://smerity.com/articles/2016/google_nmt_arch.html



작가의 이전글 [코싸인의 인지과학 이야기] HCI(6)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari