- 2020년 7월 25일 오후 5:47
- 조회수: 4232
REFERENCES
INFORMATION
- 2020년 7월 31일
- 오후 1시 ~
- 고려대학교 신공학관 224호
TOPIC
OVERVIEW
발표자 후기
오늘 세미나는 현재까지 발전해온 일반적인 NLP 방법론들이 놓치고 있는 지식 기반 추론 능력에 대해 다루었다. 인공지능 알고리즘이 사람과 같이 언어를 구사하기 위해서는 결국 사람의 인지 기능들을 잘 모사해야한다고 생각한다. 하지만 BERT를 포함한 지금까지의 일반적인 NLP 알고리즘들은 단어들의 co-occurrence를 기반으로 단어와 문장의 의미를 이해한다. 이는 이들의 추론 과정이 단순히 통계적 빈도 계산과 다르지 않다는 것을 의미하며, 훈련 텍스트에 동시에 등장하는 경우가 없었던 경우 정확한 추론을 하는 것이 불가능하고 등장 빈도가 낮은 단어의 의미를 제대로 파악하는 것이 불가능하다는 단점이 있다. 때문에 고유명사가 포함된 문장을 이해하고 생성하는데 고질적인 문제점이 존재한다. 이를 해결하기 위해 NLP 모델에 지식 기반 추론 능력을 부여하고자 한 노력들이 최근 있어왔다. 오늘은 그 중 3가지를 간단히 살펴보았으며, 이러한 접근법에서 공통적으로 이용되는 Knowledge Graph Embedding의 특성도 살펴보았다. 대규모의 Knowledge Base를 함께 이용한 NLP 모델들의 경우 이용하지 않는 일반적인 NLP 모델들에 비해 지식이 중요하게 사용되는 NLP Task(QA, Doc Sum, Entity Typing, Relation Classification등)에 탁월한 성능을 보였다. 또한 고유명사가 포함된 문장을 이해하고 생성하는데 눈에띄는 개선을 보였다. 이러한 장점은 특히 Domain Specific NLP Task에 적용될 때 그 성능이 유망할 것으로 기대되는데, Biomedical, Legal 등의 전문적인 지식이 중요한 도메인에서의 적용이 시도되고 있다. 또한 Image Captioning이나 Image QA 와 같은 Cross-Modality Task에도 적용되어 좋은 성능을 보이고 있다. 오늘 발표시간동안 경청해주신 연구원 분들께 감사하며 소개드린 내용이 조금은 흥미로웠기를 바란다. 감사합니다.
청취자 후기
오늘 "Knowledge enhanced NLP" 를 주제로 세미나가 진행됐다. 사람이 글(Text)을 인식하고 말할 때 사전지식(knowledge)은 매우 중요하다. 특히, 의료, 법조계 등 전문성을 요하는 분야는 관련 종사자가 아니면 해당 문서를 이해하기 어렵기 마련이다. 이 knowledge를 예측모델을 구축할 때 부여하자는 게 "Knowledge enhanced NLP"의 핵심이다. 즉, 우리가 감적인식을 위한 Text modeling을 수행할 때 감정 단어 사전을 이용하듯 대상 분야의 "Knowledge Graph"를 input으로 사용하여 좀 더 모델이 그 분야에 대해 인식할 때 도움 받도록 한다. AI(예측모델)는 보통 사람의 사전지식으로 어렵게 수행됐던 시스템을 학습과 예측이라는 과업으로 그 수고를 덜어주는 장점이 있다. 여기에 사전지식을 부여한 예측모델은 더 강력한 성능을 보일 것이다. 다시금 생각해보면 그동안 "모델 고도화"라는 작업을 Hyperparameter tuning으로 접근했지만 무엇보다 필요한 작업은 바로 대상 분야의 Knowledge를 적용하는 게 필수였겠다는 생각을 했다. 연구실에서 많은 프로젝트를 진행하고 있지만 데이터 특성과 모델을 잘 조합하는 것에 더 나아가 어떻게 하면 모델이 해당 분야를 더 잘 이해할 지 고민해봐야 한다는 점을 상기했다.
금일 세미나는 다빈이형이 Knowledge Enhanced NLP라는 주제로 세미나를 진행해주었다. Knowledge Enhanced NLP는 인간이 언어를 구사할 때 추론을 통해서 언어를 구사한다는 과정을 모방하기 위해 연구된 분야로 핵심은 고유명사, 날짜, 장소와 같은 개체들을 노드로 정의하고 개체들 간의 관계를 링크로 표현한 그래프를 정의하고 이 그래프를 Knowledge graph라고 한다. 이러한knowledge graph 내 개체들은 임베딩된 벡터로 표현된다고 한다. 이 과정에서 임베딩된 벡터는 기존에 알려진 워드 임베딩과는 차별점을 두고 있었다. 기존의 임베딩은 의미구조를 유지하며 co-occurance기반으로 만들어진 반면에 Knowledge graph 임베딩은 논리구조를 유지하며 지식을 기반으로 임베딩되어졌다. 이렇게 만들어진 Knowledge graph는 하나의 모델로 사용되는 것이 아니라 기존에 NLP 태스크를 수행하는 LSTM 모델과 같은 RNN 계열 모델에 한 모듈로 사용되었다. 결국 이 모듈이 지식에 대한 정보를 처리함으로써 Knowledge Enhanced NLP 연구가 추구하고자 했던 인간이 지식을 통해 언어를 이해하고 추론하는 과정을 이루어 내고자 했던거 같다. 다빈이형이 준비한 세미나 자료에 의하면 현재 NLP 연구 분야에서도 Knowledge graph의 중요성과 필요성을 입증하고자 하고 있고, 앞으로도 활발하게 연구되고 적용될 것이라 한다. Knowledge graph만 구축되어 있다면 기존 LSTM과 같은 모델에 큰 어려움 없이 적용 가능하니 기회가 된다면 직접 적용을 해보고 싶다. 오늘도 흥미로운 주제를 이해시켜주고 좋은 경험을 시켜준 다빈이형에게 감사하다고 전달하고 싶다.
다빈이가 준비한 세미나를 청취했다. BERT가 표준이 되어버린 2018년 말 이후로 대부분의 NLP task들은 대용량의 코퍼스를 사용하여 학습시킨 pre-trained model을 사용하여 수행되고 있다. 이러한 모델들은 문서 분류, 기계번역 같은 쉬운 테스크들은 쉽게 처리해내고 있지만 결국 co-occurance 기반의 language model이기 때문에 관계 추론이나 추상적인 문서 요약같은 고차원적인 task의 처리는 여전히 쉽지 않다. 만약 Knowledge graph(KG) 정보를 함께 사용하면 코퍼스에서 학습하지 못하지만 중요한 정보를 모델이 이해하게 됨으로서 모델이 고차원적인 task까지 수행할 수 있게 될 것이다. 오늘 세미나에서 다룬 3개 논문 중 2개는 LSTM 셀의 연산 과정에서 KG를 반영하기 위한 아키텍쳐 개선을 한 방법론이였고 마지막으로 소개해 준 ERNIE 논문은 2019년 발표된 논문으로 Transformer encoder에서 KG embedding과 Information Fusion 레이어를 두어 텍스트와 KG를 결합한 아키텍쳐를 제안하였다. 모델은 Entity typing과 relation classification과 같은 어려운 task에서도 좋은 성능을 보였다. KG를 사용하는 NLP 연구들은 최근에 많이 연구가 되고 있으며 도메인에 따라 잘 학습된 KG만 있다면 domain-specific한 NLP 테스크 수행에 도움이 될 것이라고 생각한다. 세미나 내용은 흥미로웠지만 모델의 자세한 연산과정을 생략하고 세미나를 진행한 것은 조금 아쉬웠다.
오늘 세미나는 "Knowledge Enhanced NLP"라는 주제로 진행되었습니다. 인간의 언어는 매우 복잡한 체계를 가지고 있으며 언어를 논리적으로 이해하고 표현하기 위해서는 추론능력이 중요합니다. 하지만 현재 대부분의 자연어 처리 모델들은 추론능력을 갖추고 있기보다는 대량의 학습 데이터를 기반으로 통계적인 추론을 수행하고 있습니다. 많은 인공지능 모델이 인간이 특정 작업을 수행하는 방식을 모사하듯이 언어를 이해하는데 있어서 인간의 추론 능력을 모사하는 모델을 개발하는 연구가 최근 많이 진행되고 있습니다. 이번 세미나에서는 해당 연구들에 대한 전반적인 소개가 이루어졌습니다. 추론하기 위해서는 기반이 되는 지식이 있어야 하며 이를 위해 "Knowledge Graph"를 활용하게 됩니다. Knowledge graph는 단어와 단어 사이의 관계를 graph 형태로 정의한 데이터로 graph를 embedding 시켜서 모델에 반영하게 됩니다. Knowledge graph embedding은 단어의 의미를 나타내는 word embedding과 다르게 단어 사이의 논리 구조를 표현하고 있습니다. 두 가지의 embedding 벡터를 모두 활용하면 추론 능력이 필요한 Question Answering, Document Summarization과 같은 작업에서 탁월한 성능을 보이게 됩니다. Knowledge graph embedding을 활용하는 방법론으로는 KBLSTM, NKLM, EARNIE가 소개되었으며 KBLSTM과 NKLM은 기존의 LSTM 모델에 knowledge graph embedding을 활용한 module을 붙여 성능을 향상한 모델들입니다. 반면 EARNIE는 BERT에 knowledge graph embedding을 활용한 모델로 추론을 해야 하는 작업에서 BERT보다 좋은 성능을 보이는 것을 확인할 수 있습니다. 활용 분야로 Biomedical AI와 Legal AI가 소개되었으며 대량의 지식을 기반으로 하는 작업이기 때문에 해당 연구를 통해 나온 모델이 좋은 성능을 보일 것으로 생각됩니다. 이번 세미나를 통해서 knowledge graph를 활용한 NLP 연구들에 대해서 처음 접하게 되어 신선했으며 오늘 세미나를 위해 고생해준 다빈이 형에게 감사의 뜻을 표하며 세미나 후기 마무리하겠습니다.
오늘 세미나는 다빈이가 진행해주었다. 연구실 내 연구원들이 많고 다양한 주제를 연구하는 장점이 오늘 세미나에서 빛을 낸 거 같다. 작년 한화ICT와 진행한 Document summarization 프로젝트 이후에 NLP 모델들 관련 연구에 대한 논문을 읽어본 적이 없어서 아쉬웠는대 Knowledge graph를 활용한 다양한 NLP 모델 연구를 청취할 수 있어서 좋은 기회였다. 6개월 카네기 멜론 대학에서 AI 파견 프로그램을 다녀온 이후 NLP 관련 연구에 더 흥미를 가지게 되었다고 들었는대 다빈이가 거기서 경험한 것을 모두 전달받을 순 없지만 이런 세미나를 기회로 그가 배웠던 NLP 연구 트렌드를 그나마 간접적으로 전달 받을 수 있었던 것 같다. 작년 NLP 프로젝트에서 카운터 파트들이 예로 들어 document summarization 모델이면 이 모델이 추후에는 타 domain에 transfer되어 적용되길 바랬던 기억이 있다. 이런 상황에서 knowledge graph가 유용하게 사용된다고 하니 다음에 그러한 프로젝트를 담당하게 되면 활용해 봐야겠다고 생각했다. 다양한 연구들을 전달하려다보니 자세한 연산 과정을 세미나 장표에 풀어내지 않고 논문의 그림들을 가져와 전달하였지만 꽤나 많은 연구원들이 자세한 연산 과정에 대해 궁금해했던 것 같다. 또한 여담으로 EARNIE의 모델 아키텍처 일러스트도 그러하지만 이전에도 ELMO, BERT등 최신 NLP 모델 아키텍처 일러스트가 깔끔하고 세련되게 그려지는 것 같다. 내 논문 그림 그릴 때도 참고하고 싶다.
금일 세미나는 "Knowledge Enhanced NLP"라는 주제로 세미나가 진행되었다. 언어란 인간 사고 결과물의 표현으로 내가 설명하고 싶은 것을 잘 정리하여 말로 남에게 알려주는 것이다. 여러가지 중요한 것들이 많지만 그중 인간의 Reasoning(추론)에 대해서 기존의 NLP 연구에서는 부족하였다. 그렇기에 언어 이해를 위해 인간의 추론 방식을 모사하고자 해당 연구가 시작되었다. 그래서 Knowledge Base Graph형식의 지식저장소가 있게되고 이를 활용하여 학습에 도움을 주어 학습에 더 좋은 영향을 끼치게 해준다. 특히 기존 NLP연구는 Training 단계에서 다빈치와 모나리자라는 단어(Entity)가 어떤 관계가 있어야 이 두개의 단어를 연관시킬 수 있는데 KG를 활용하게 되면 Training 단계에 이 두 단어의 어떤 관계가 없어도 화가라는 관계를 얻을 수 있게 해준다. 그로인해 기존에는 잘 동작하지 않았던 Question Answering, Document Summarization, Entity Typing, 등의 고유명사가 포함된 문장의 이해와 생성 능력이 탁월하게 좋아질 수 있다고 한다. NLP 쪽은 지금까지 BERT 같은것만 듣다가 새로운 방향의 흐름을 듣게 되어서 매우 유익했다. 좋은 발표를 해준 다빈이에게 고마움을 표한다.
오늘 세미나는 “Knowledge Enhanced NLP”라는 주제로 민다빈 연구원님이 발표해 주셨다. 인간의 언어는 매우 복합적인 작용을 통해 수행이 된다고 한다. 예를 들어 “윤종신은 사람이 노래를 만든다”는 정보와 “윤종신은 가수다”라는 정보를 학습하게 되면 인간은 스스로 추론을 통해 “윤종신은 싱어송라이터다”라는 결론을 만들어 낼 수 있다. 하지만 지금까지 연구되어 온 NLP는 대부분 번역 연구에 초점이 맞춰져 발전해 왔기 때문에 이러한 언어의 추론에서는 좋은 결과를 보여주지 못했다. 하지만 NLP가 좀더 인간과 같이 발전하고 인간의 생활 깊숙이 들어오기 위해서는 언어의 정점인 추론과정을 반드시 학습해야 한다. 본 세미나에서는 Knowledge Graph를 바탕으로 기존 지식과의 인과관계를 이어주는 학습 방법에 대하여 설명하였다. 간략적으로 표현하면 Embedding할 데이터를 (h, r, t)로 만들고 h(head) + r(relation) = t(tail)이 되도록 학습한다. 예를 들어 h=한국, r=수도, t=서울 이렇게 학습을 하면, 미국 + 수도 = 워싱턴이 되도록 학습하게 되는 원리이다. 자세한 방법론에 대해서는 다루지 않고, AI에서 “추론”을 가능하기 위한 최신의 기법들을 초점만 소개하는 세미나로 NLP관련 새로운 연구분야에 대한 눈을 뜨게 해주는데 좋은 세미나 였던 것 같다. 알찬 세미나를 해준 민다빈 연구원님께 감사하다는 말을 전하고 싶다.
금일 세미나는 "Knowledge enhanced NLP"를 주제로 진행되었다. 아이디어는 "언어를 이해하는 NLP 태스크에 단어(객체)들 사이의 사전 지식(관계,Relation)을 활용한다면 더욱 효과적인 언어 이해를 진행할 수 있지 않을까"으로 다빈이 형이 재미있게 만든 발표 자료로 핵심 주제를 잘 이해할 수 있어서 듣기 편안했다. 아이디어를 설명한 뒤, 단어들 사이의 사전 지식을 구현한 Knowledge Graph Embedding 기법과 이 기법을 적용한 NLP Model과 Task를 설명하며 본격적인 세미나가 시작되었다. Knowledge Graph Embedding은 객체들과 객체 사이의 Relation을 임베딩시킨 방법론이다. Word Embedding과 비슷한 개념으로 이해할 수 있으나 Word Embedding은 문장 내 단어들의 흐름을 예측해가며 언어를 이해한다면, Knowledge Graph Embedding은 단어 사이의 논리구조를 유지하며 언어를 이해하고 임베딩하는 방법이다. Head Entity, Relation, Tale Entity 총 3가지 종류의 노드들을 그래프로 표현하고 임베딩하는 방법론으로, 올바른 논리 구조가 유지된 Entity의 경우 Head Entity + Relation = Tale Entity가 성립하면서, 틀린 논리 구조의 경우 해당 등식이 성립하지 않도록 유도되며 학습이 진행된다.
이렇게 Knowledge Graph Embedding에 대한 설명이 끝나고, 이를 실제 NLP 태스크에 접목시켜 성능이 향상된 사례를 접할 수 있었다. 기본적인 LSTM 기반 모델부터 Bert 기반 모델까지 설명하셨는데, LSTM의 경우 여러가지 Knowledge 벡터와 히든 스테이트 간 Attention을 통해 성능을 향상시키거나, 현재 및 과거 시점의 문맥적 의미, 지식을 다음 시점까지 전달하여 함께 활용해 성능 향상을 진행한다. 버트도 LSTM과 마찬가지로 인코딩 블락 내에서 Knowledge vector를 함께 추가하여 성능을 향상시켰다. 실제로 성능이 향상된 결과를 보며 신기하였고, 적용 사례와 최신 연구를 간단하게 소개해주는 시간을 가지며 세미나가 마무리 되었다.
흥미로운 주제였고, 이를 전달하기 위해 열심히 발표 자료를 만든 다빈이 형께 감사 말씀을 전하고 싶다.
금일 세미나는 최근에 GPT3 라는 모델로 정말 머리속에만 그려오던 AI를 본 것 같은 놀라움에 NLP에 관심을 두어야겠다 생각을 하던 찰나에 마침 다빈이가 "Knowledge Enhanced NLP"라는 주제로 진행되었습니다. 통계 기반이 아니라 정말 인간 머리속에서 그려지는 공간을 그래프로 투영시키고 거기에 위키같은 지식이 총망라한 데이터를 학습하여 투영시킨 Knowlege Graph를 다른 NLP 모델에 접목하여 더 좋은 학습 결과를 가져온다라는 부분에서 흥미로웠습니다. Co-occurence외에도 문맥간의 의미를 파악하는 식의 학습을 h=r+t 관계식으로 학습한다라는건데 이 외에도 수많은 연구가 있을거라 상상이 되었습니다. 인간의 머리속의 수많은 문장들을 연결시키기엔 relation에 대한 종류를 명확하게 정의가 되어 있어야 하고 이 또한 뇌공학과 딥러닝이 연계되서 많은 기업에서 하고 있지 않을까라는 상상을 하었습니다. 세미나시간에 질문했던 GPT-3는 OpenAI 에서 현재 홈페이제에 웹서비스로 학습시킨 모델에서 Q&A로 대답을 주고 받을 수 있는데 한국시장의 어떤 정책 예를 들면 부동산 폭등과 그에 대한 정책에 대한 해답을 물어보면 그 문맥에 이해 Common Sense같은게 있어서 인간이 대답하는 듯한 착각 이상으로 전문가의견을 듣는것처럼 답변하는 것보다 분명 이 모델에 Knowledge Graph가 분명 있을거라 생각이 들었습니다. GPT-3 모델 가지고 이미 많은 비지니스 모델이 창출된다고 얘기 들었습니다. 이 분야에 대해서 항상 눈과 귀를 열고 있어야겠다는 생각이 들었고 발표해주신 다빈이에게 감사의 말씀들 드리고 후기 마무리합니다.
'객체(entity)' 간 '관계' 정보를 그래프 형태로 표현한 것이 Knowledge Graph(KG)라고 한다. 최근 Baseline NLP pretrained 모델로 쓰이는 BERT는 일반적인 text corpus로부터 학습하는데 반면, 오늘 소개된 ERNIE는 문맥적인 요소를 leverage할 수 있도록 외부 KG data를 추가적으로 쓴다. 이를 위해 ERNIE에서는, BERT encoder(T-encoder)단 뒤에 TransE로부터 embedding된 KG data를 학습하는 K-encoder 단을 추가하였으며, 사전 학습 시에는 dAE(Denosing autoencoder)로 mask한 token-entity alignment를 유추하는 MLM(Masked language modeling)과 다음 토큰을 예측하는 NSP(Next sentence Prediction)으로 학습한다. 개인적으로 ERNIE의 성공은 구조적인 차이보다는 KG data를 leverage한 것에 크게 기인하지 않나 싶다. 방대한 KG data의 구축과 막대한 컴퓨팅 자원을 통해 이렇게 BERT보다 큰 모델을 빠르게 학습시켜 가시적인 결과를 낸 IT대기업(Baidu)의 저력에 놀라며, 연구실에서 다소 생소할 수 있는 Knowledge Graph 라는 분야를 소개해준 다빈이에게 고맙다는 말을 전한다.
흔히 NLP 분야를 처음 시작할 때, 기계번역, Image Captioning, Sentimental Analysis를 접하게 된다. 하지만 상기의 모델들은 인간의 추론 방식과 거리가 멀다. Knowledge Graph 형식을 통해 각각의 entity(지식)간의 관계를 나타내어 인간의 추론 방식을 모사한 방식이 Knowledge Based NLP 이다.
다빈이형이 Knowledge Based NLP 의 scheme 을 설명하고 관련된 SOTA Model을 소개하는 주제로 세미나를 진행해주셨다. 독특한 점은 단순한 Word Embedding 이 아닌 Knowledge Graph Embedding(KG Embedding)도 추가되었다는 점이다. head entity와 tail entity의 관계(relationship)을 단순한 더하기 연산으로 정의하는 것도 신박하였다.
전문지식을 요구하는 의료나 법조 같은 도메인에서는 모델이 Context를 파악하는 것이 매우 중요하기에 해당 도메인과 관련된 연구가 앞으로도 자주 나올것 같다.
세미나를 준비한다고 고생하신 다빈이형께 감사의 말씀을 드린다.
오늘은 다빈오빠가 ‘Knowledge Enhanced NLP’라는 주제로 세미나를 진행하였다. 언어의 내재적인 의미를 파악하기 위해서는 인간의 ‘추론’과정이 필요하다. 금일 소개된 연구는 이러한 인간의 사고과정에서 영감을 받아 추론과정을 embedding과정에 잘 반영함으로써 최종적으로 수행하고자 하는 문제를 더욱 잘 풀이하는 것을 기대하고 있다. 기존의 co-occurrence에서 보완하여 추가적으로 ‘추론’에 대한 정보를 입력에 활용하기 위해서는 knowledge graph를 필요로 한다. 이러한 knowledge graph 단어들 사이의 관계 정보를 (h, r, t)형태로 포함하고 있기 때문에 embedding관점에서 단어사이 관계를 보완할 수 있다. 특히, 이러한 논리구조를 반영하는 것은 의료와 법조와 같은 전문지식을 요구하고, 관계 정립이 중요한 도메인에서 매우 가치 있게 활용이 될 것 같다. 오늘 다빈오빠가 소개한 연구분야는 처음 접해본 주제이기도 하고, NLP연구가 새로운 방향으로 고도화 되고 있는 것 같아 흥미로웠다. 기회가 되면 실제 knowledge graph의 형태와 연산과정에 대해서 개인적으로 더 살펴보고 싶다는 생각이 들었던 것 같다. 기존에 접하지 못했던 연구주제를 공유해주어 사고를 확장시킬 수 있는 계기가 된 시간이었다. 다빈오빠가 개인연구에도 해당 문헌들의 주요 특징을 반영할 계획인지는 모르겠지만, 기회가 되면 잘 녹여내어 개인연구로도 발전되었으면 좋겠다. 세미나 준비를 해준 다빈오빠에게 감사함을 표하며 후기를 마친다.
자연어를 인간이 이해하는 방식과 동일하게 딥러닝 모형을 학습하고자 하는 것에서 시작하는 Knowledge graph에 대한 세미나가 진행되었다. 단어들의 문맥을 파악하고자 bidirectional RNN's 계열이 등장하였지만, 실제로 인간이 이해하는 것과 동일하게 자연어를 이해하는 것은 아니었다고 생각하는데서 발전된 것으로 생각하였다. 또한, Knowledge graph는 일종의 embedding layer 역할을 해주는 것으로 이해했다. 단어간 관계를 모델링 할 수 있다면, 인간과 동일하게 언어에 대한 학습을 할 수 있을것이라는 가정이 있는 연구분야라고 생각된다. 세미나 후반부 Knowledge graph를 자연어 뿐만 아니라 어떠한 분야에 적용할 수 있을지에 대한 토론에 굉장히 흥미로웠다.
금일 세미나는 “Knowledge Enhanced NLP”에 대한 주제로 다빈이가 발표했다. 일반적인 NLP (Natural Language Processing) 모델들은 co-occurance에 기반하여 입력 데이터의 정보를 이해하고 최종 결과물을 도출하게 된다. 또한 모델 관점에서 대용량의 코퍼스를 사용하여 다양한 테스크의 우수한 성능을 보이는 연구가 진행되어 왔다. 하지만 추상적이고 논리적인 요소가 필요한 문제에서는 여전히 어려움이 존재한다. Knowledge graph (KG)는 이러한 문제를 해결하기 위한 논리적 정보로써 최근 모델들이 학습하도록 다양한 방법론이 연구되고 있다. 현재 나는 화학 분자 구조 생성에 대한 주제로 개인 연구를 하고 있다. 연구에는 단순히 유의미한 화학 분자 구조식 데이터를 사용하여 분자 구조 생성을 진행하고 있다. 이번 세미나를 통해 얻은 아이디어는 화학 분야의 전문적인 지식으로 KG를 구성해 모델이 논리적 정보를 학습한다면 화학적 성질을 고려한 유의미한 분자가 생성될 것이라고 생각한다. 이 가정은 최근 모델링 아이디어에 KG 정보를 어떻게 녹일지 생각해보면서 개인 연구를 진행하고 결과를 확인해볼 것이다.
이번주 세미나는 다빈이가 ‘Knowledge Enhanced NLP’라는 주제를 가지고 진행하였다. 이번 주제는 기존 NLP방법론에 knowledge가 graph형식으로 저장되어있는 knowledge graph를 반영해준 방법론이다. Knowledge graph는 객체들 간의 관계가 나타나 있는 graph이며 객체들과 객체들 간의 관계를 벡터로 표현하여 NLP모델의 embedding layer에 적용된다. 이러한 방법론을 적용하게 되면 QA문제나 문서 요약, 고유명사가 포함된 문장의 이해와 생성에 탁월하다. 이러한 knowledge graph를 NLP 분야가 아닌 다른 분야로 확장시킬지에 대해 생각해야겠다. 이해하기 쉽게 세미나를 준비해준 다빈이에게 감사하다는 말을 전하고 싶다.
Knowledge Enhanced NLP 세미나를 청취했다. 일반적인 자연어처리를 위한 모델들은 corpus 안에 있는 단어들간의 co-occurrence에 기반하여 단어와 문장의 의미를 분석한다. 그러다보니 가장 대표적으로는 고유명사별 역할을 제대로 학습하지 못하며, '사실은 많은 사람들이 알고 있는 지식임에도 불구하고' 학습에는 활용을 못하는 경우가 있다. 이를 보완하기 위해 만든 것이 Knowledge Base이며 이는 위키피디아 같은 큰 데이터를 분석해서 객체들 간의 관계를 표현한 그래프이다. 그리고 이 관계를 임베딩한다. 그 다음에 임베딩한 값들을 사용해서 자연어처리 모델을 학습할 때 지식을 주입하는 모듈을 구성해서 붙이는 작업을 한다.
이렇듯 1) Knowledge Base의 구조를 정의하고 구축 2) 임베딩 3) 모듈 구성 및 모델에 적용처럼 3단계로 구성이 된다고 생각할 수 있다. 가장 처음으로 든 궁금증은 1)에 관한 것이었다. 생각은 1)에서 entity-relation-entity가 1:1:1로 맵핑되어 있는 예시를 들어서 설명했고, 뒤에 적용되는 2), 3)을 살펴봤을 때도 1:1:1로 구성이 되어 있어야 합당했다. 하지만, 실제로는 n:m:k 식으로 다 vs 다 맵핑이 이루어지는 것이 맞다고 생각이 들며, 최소한 1:m:k가 되어야 할 것 같다. 또한 application에서 설명한 의료, 법률쪽의 적용사례에서는 워낙 관계가 복잡하고 잘못 적용될 경우 짊어져야 할 리스크가 너무 크기 때문에 1:1:1 knowledge base를 사용하는 것은 매우 위험하다고 생각된다. 3) 모듈 부분에서는 여러가지 알고리즘들을 설명해주어서 어떤 컨셉으로 연구가 되고 있는지 이해할 수 있었다. 흔히들 말하는 '도메인 지식을 반영한 알고리즘'을 이런식으로 접근해서 만들 수 있다는 것이 재밌었다.
오늘 세미나는 “Knowledge Enhanced NLP”를 주제로 진행되었다. 1학기때 비정형데이터분석 수업을 통하여 NLP관련 여러 분석 방법들에 대하여 공부하고 접하였던 나는 최근 이러한 분야의 알고리즘들의 활용 방식에 많은 관심을 갖고 있었고, 이 때문에 오늘 세미나가 더욱 흥미롭게 다가왔다. 인간의 추론 방식을 모사하고자 하는 Knowledge Enhanced NLP 분야는 현실의 지식을 특정 entity들과 그들간의 관계를 표현한 Knowledge Graph의 형태로 저장하여 활용하게 된다. 이렇게 저장된 정보를 임베딩 시키는 TransE 등과 같은 방법을 통하여 LSTM, BERT 등의 방법론과 결합하여 각각 KBLSTM 및 NKLM, EARNIE 등으로 발전하게 되었다. 이에 대하여 더욱 자세히 알아보면 다음과 같다. KBLSTM에서는 Knowledge Graph 중 head의 내용이 입력으로 들어가서 현재 스텝의 hidden state와 관련 있는 지식을 선택하여 함께 활용하는 방식을 채택하며, NKLM은 문맥적 의미와 지식을 넘겨주면서 이전 스텝까지의 정보들을 활용하여 관련있는 지식을 찾아 사용하는 알고리즘이다. 마지막으로 EARNIE는 인풋 단어에 대한 문맥적 의미에 임베딩된 KG의 값들을 각 단어에 매핑시키는 형태를 채택하여 단어의 의미와 지식을 함께 활용하는 방법론이다. 이러한 Knowledge Enhanced NLP 알고리즘들은 Question Answering, Document Summarization 등의 분야와, 전문적인 지식을 필요로 하는 법률, 의료 등의 다양한 도메인에서 활발하게 활용되고 있다고 한다. 발표 이후에도 해당 알고리즘이 활용될 수 있는 다른 분야에 대한 토론을 들으면서 이러한 방법론의 아이디어를 어떤 방향으로 색다르게 적용시켜 볼 수 있을지에 대한 고민을 해야겠다는 생각이 들었다.
오늘 세미나는 knowledge Enhanced NLP 주제로 다빈오빠가 진행하셨다. Entity들 간의 관계를 담은 Knowledge Graph를 활용하여 NLP 테스크를 잘 해결하고자 하는 연구들의 소개되었다. Knowledge Graph Embedding은 논리구조를 유지하면서 데이터베이스의 지식을 활용할 수 있다는 장점을 가지고 있다. 또한 고유 명사가 포함된 문장에 대한 이해도가 높고 Training set에 없더라도 Knowledge graph를 통해 entity로 표현 가능하다. 이를 Word embedding과 함께 활용하면 문맥적 의미와 지식을 함께 학습시킬 수 있다. 기존 언어 모델에 활용할 수 있는 다양한 방법론이 연구되고 있는 분야이다. 특히 전문용어가 많이 사용되는 도메인에 효과적인 방법이다. 이번 세미나를 통해 그래프 네트워크를 활용한 Knowledge graph을 NLP 분야 이외의 분야에도 접목 시킬 수 있을 것으로 기대된다. 전반적인 흐름과 주요 논문들을 소개해주시면서 사고의 폭을 넓혀 주신 다빈오빠께 감사의 말 전하고 싶다.
이번 세미나는 Knowledge Enhanced NLP라는 주제로 진행이 되었다. 세미나는 인간의 언어와 컴퓨터의 언어를 비교하는 것부터 시작을 한다. 사람의 언어는 이미 알고 있는 지식을 기반으로 새로운 단어나 문장이 들어왔을 때 그 의미를 추론할 수 있다. 하지만 컴퓨터의 언어는 단어들 간의 동시발생빈도에 기반을 두고 문장과 단어의 의미를 통계적으로 추론하기 때문에 학습한 데이터 밖에서는 한계를 가지게 된다. 이를 해결하기 위해서 대규모로 현실 지식 및 그 관계와 속성을 저장한 knowledge graph를 저차원 벡터로 embedding하여 NLP 모델에 사용할 수 있다. 이를 모듈화하여 LSTM에 적용한 모델이 KBLSTM과 NKLM이고 BERT에 적용한 모델은 EARNIE이다. Knowledge graph가 인간의 추론 능력을 모사할 수 있도록 하기 때문에 질의응답, 문장생성 등의 업무에서 성능 향상 효과를 보여준다고 한다. 최근에 진행 중인 프로젝트를 포함해서 이번 세미나까지 graph 이론이 다양한 분야에 적용된다는 점을 알 수 있었다. 또한 평소에 알고 있던 임베딩 방법론이 단순 단어나 문장 뿐만 아니라 언어의 관계를 그린 그래프까지도 적용이 가능하다는 점을 알게 되었다. Knowledge Graph라는 분야를 새롭게 알게 해준 다빈이에게 감사의 말을 전한다.
이번 세미나는 knowledge enhanced NLP라는 주제로 진행되었다. 일반적인 natural language processing (NLP) 방법론들은 단어 또는 토큰의 co-occurence에 기반하여 모든 작업을 수행하기 때문에, 학습 데이터 내에 출현 빈도가 낮은 단어/표현이나 동시에 출현하지 않은 단어/표현들의 관계에 대해서는 정확한 학습이 어렵다는 한게점을 갖는다. 하지만 일반적으로 사람들은 다양한 지식에 기반하여 추상적인 사고가 가능하기 때문에 상대적으로 적은 학습을 통해서도 더 일반적인 사고가 가능하다. Knowledge enchanced NLP는 이런 인간의 사고방식을 모사하여 NLP 성능을 높이려는 시도 중 하나이며, 특히 다양한 지식을 데이터베이스화 한 knowledge base를 NLP 모델에 포함시켜 성능을 높이려는 시도를 의미한다. 가장 핵심이 되는 knowledge base에 대해 더 자세한 설명이 있었으면 좋았을 것 같다. 또한 몇 가지 knowledge enhanced NLP 방법론들을 소개했는데, 그 작동 메커니즘에 대해서 너무 기술적으로만 설명된 점이 조금은 아쉬웠다.
오늘 Knowledge enhanced NLP였다. 기존의 자연어 처리 방법론들은 단어들 간의 관계를 이용하여 학습이 되었지만, 고유명사들의 경우에는 더 많은 정보를 포함하고 있음에도 사용하지 못했었다. 그 이유로는 고유명사들이 너무 많거나, 다른 문서들에서 정보를 가져와야 하거나 등 여러 한계점들이 있었기 때문이다. 사실 언어를 이해하는 것에 있어서 고유명사가 중요하다는 것은 모두가 동의할 것이다. 같은 단어를 사용하더라도 주변의 고유명사에 따라 의미가 완전히 달라질 수 있다.
이러한 고유명사의 의미들을 이용하기 위해 knowledge graph를 사용하였다. Knowledge graph는 거대한 창고처럼, 고유명사들에 대한 관계들을 저장해 놓은 방법론인 것 같다. 이를 이용하면, 고유명사들이 어떤 의미를 가지고 있는지에 대한 vecter연산이 가능하다. 이에 따라 어떤 단어가 이 고유명사와 유사한지, 아닌지를 계산할 수 있게 되고 이를 이용하여 기존의 NLP 방법론들(transformer, bert 등)에 사용할 수 있다. 여러 논문들을 소개해 주었는데, 대부분 기존 모델에 knowledge graph를 이용한 연산을 추가한 방법론들이었다.
글로 쓰여진 언어는 문맥에 따라 같은 문장이더라도 상당히 다른 의미를 가질 수 있다. 그렇기 때문에 현재 쓰여진 글들의 관계 만으로는 정보가 부족하다. 이에 따라 음성이나 이미지를 같이 활용하는 멀티모달 방법론이나. 배경 지식을 활용하는 knowledge enhanced NLP이 생겨나고 있다. 이러한 방법론을 보면서 기계가 점점 더 많은 지식을 갖고 학습하게 되며 점점 정교해 지는 것을 느꼈다. 사람이 알 수 있는 모든 정보들을 활용한다면 곧 창조의 영역에서도 기계가 좋은 성능을 보이게 될 수도 있겠다라는 생각이 든다.
오늘은 Knowledge Enhanced NLP를 주제로 세미나가 진행되었다. Intro에서는 Knowledge가 무엇인지 인간의 사고방식과 연결하여 설명이 진행되었다. 인간의 사고 방식 중 Reasoning(추론)은 이미 알고 있거나 확인된 정보로부터 논리적 결론을 추론하는 기능으로 논리적인 이해와 논리적인 표현이 중요하다. 언어를 이해하고 표현할 때, 이러한 추론 방식에서 사람과 컴퓨터는 차이가 있다. 사람은 이전에 배운 지식과 정보를 활용하여 논리적으로 추론하고 이를 언어로 표현한다. 하지만 컴퓨터 자신이 학습한 내용(단어, 문장) 중에서 가장 확률이 높고 그럴듯한 것을 언어로 표현하게 된다. 결국 사람은 지식, 정보를 활용하여 논리적인 언어 표현이 가능하지만 컴퓨터는 이러한 언어 내에 지식, 정보를 활용하지 못하게 된다. 그리고 이러한 차이가 기존 NLP 모델 학습 방식의 한계점이기도 하다. 그래서 본 세미나에서는 컴퓨터가 언어를 학습할 때, 단어 사이에 정보를 주기 위해 Knowledge Graph를 제안한다. 그리고 이러한 Knowledge Graph를 활용해 언어 학습을 진행한 여러 모델에 대한 설명이 이어졌다. 결론적으로 이러한 Knowledge Graph를 활용해 각종 NLP 문제에서 더 좋은 성능을 확보할 수 있었고, 특히 고유명사가 포함된 문장의 이해와 생성 능력이 탁월하다는 것을 확인할 수 있었다. 이전에 연구미팅을 진행하면서 Knowledge Graph에 대해 간단히 설명을 들었었는데 이번 기회를 통해 좀 더 자세히 배워볼 수 있어서 좋았다. 추후 NLP 관련된 과제를 진행할 때 이번 세미나 때 배운 방식을 적용해 문제를 해결해보고 싶다. 좋은 세미나를 준비해준 다빈이에게 감사함을 표한다.
금일 세미나는 다빈이가 Knowledge Enhanced NLP라는 주제로 세미나를 진행했다. BERT나 그외의 Pre-trained Language Model들과 같은 기존의 NLP 모델들은 문서에 동시에 등장하는 확률을 기반으로 해당 언어에 대한 학습을 진행한다. 하지만 이러한 학습은 각 개별 지식에 대한 관계를 통한 인간과 같은 추론의 과정은 모방하지 못한다. 예를 들어 기존의 NLP 모델들은 Bob Dylan이 Blowin' in the wind을 썼다라는 문장을 봤을 때 Bob Dylan이 작곡가라는 것을 알지 못한다. 오늘 다빈이가 소개한 주제는 외부의 Knowledge를 기존의 NLP 모델에 정보로 추가하여 이러한 인간의 추론 방식을 최대한 모사하여 언어를 학습하는 방법론들이었다. 그동안 NLP 분야를 깊게 알지 못하였기에 보다 자세한 내용은 알 수 없었으나 오늘 다빈이를 통해 들은 Knowledge Enhanced NLP 알고리즘들은 우선 Knowledge base로 부터 주어진 word에 관련된 Knowledge의 매칭을 잘 찾아내야 하는 것이 중요한 과제 중 하나로 보였다. 또한 모체가 되는 NLP 모델이 임베딩한 벡터 스페이스에 추출한 Knowledge 벡터를 잘 사영하는 representation을 찾는 것 역시 주요할 것으로 보였다. 그리고 끝으로 발표를 들으면서 들었던 생각 중 하나는 Knowledge information을 나타내는 Knowledge base를 구축하는 것이 굉장히 비용이 큰 작업이 될 것 같다는 생각이었다. 평소 전혀 알지 못했던 분야에 대해 신선한 주제를 알려준 다빈이에게 큰 감사를 표한다.