- 2019년 1월 24일 오후 2:23
- 조회수: 3693
INFORMATION
- 2019년 1월 31일
- 오후 1시 30분 ~
- 고려대학교 신공학관 218호
TOPIC
OVERVIEW
발표자 후기
본 세미나에서는 개체명을 인식하는 알고리즘에 대해 소개하였다. 개체명 인식은 문장으로부터 개체명을 추출하고, 추출된 개체명의 종류를 분류하는 자연어처리의 한 분야이다. 개체명은 문서에서 나타나는 고유한 의미를 가지는 명사나 숫자 표현 등으로, 대체로 하나 이상의 단어가 결합되어 구성된다. 이렇게 하나 이상의 단어가 결합되어 하나의 개체명을 의미하는 문제를 BIO Tagging으로 극복하였다. 대부분의 머신러닝 알고리즘은 X와 Y의 관계만을 고려한다. Bi-LSTM의 경우는 X와 Y, X와 X간의 관계를 고려하며, CRF는 X와 Y, Y와 Y간의 관계를 고려한다. 따라서, Bi-LSTM-CRF는 X와 Y, X와 X, Y와 Y간의 관계를 모두 고려한 모델이다. Bi-LSTM-CRF는 CRF와 LSTM, Bi-LSTM과 비교했을 큰 향상을 보이지는 않았지만 데이터의 모든 관계를 고려한 점에서 눈 여겨볼 만한 연구이다.
청취자 후기
금일 세미나는 Bidrectional LSTM-CRF Models for Named Entity Recognition에 대한 주제로 건이형이 발표하였다. 어떤 단어는 다양한 entity로 기계가 인식한다. 그래서 원하는 entity를 인식시키기 위해서 context가 필요하다. 기존에는 text classification 이 있지만 이번에 소개될 부분은 Named Entity Recognition 이다. 둘의 차이에서 classification은 학습 시 수 많은 class가 나오게 되는데 NER 추출을 통해 이를 방지할 수 있다. 분석 과정에는 pos tagging, B-I-O tagging, word embedding, prediction으로 나뉜다. Pos tagging은 단어에 대한 품사를 지정해주고 불필요하다고 생각되는 품사들을 제거하지 않는다. B-I-O tagging은 Begin, Inside, Outside라는 뜻으로 개체명이 시작되는 단어인지 아닌지, 개체명 외의 단어인지 tagging을 해준다. 이번 세미나의 핵심은 B-I-O tagging한 단어에 대해 예측을 위해 Bi-LSTM 모델을 학습시켜 최종적으로 나온 output에 activation function을 적용하여 새로운 input으로 취급하고 이를 CRF(Conditional Random Field) 모델에 넣는다. 둘의 모델을 사용한 이유는 x와 x, x와 y, y와 y 의 모든 관계를 알아보고자 하기 위해 사용되었다. CRF는 Bi-LSTM 에서 분류된 output에 대해 확률 값으로 나타내어 결정을 하게 한다. 결론적으로 기존 Bi-LSTM, CRF 모델로만 학습했을 때와는 차이가 크지는 않지만 재미있는 주제였다. Bi-LSTM, CRF 의 모델이 어떻게 흘러가는지 기본적인 이론을 배울 수 있는 좋은 세미나였고 NLP 처리 등 다양한 text 분석에 대해 어떤 모델을 사용해볼지, 어떻게 연구를 해볼지 생각해보게 되는 시간이었다. 좋은 발표를 해준 건이형에게 고마움을 전한다.
금일 건이오빠가 'Bidirectional LSTM-CRF Models for Named Entity Recognition' 주제로 세미나를 진행해주셨다. 해당 알고리즘은 개체명 인식을 수행하는 것을 목적으로 한다. 개체명 인식이란 문장내 단어들이 사전에 정의된 개체명(일종의 class)로 할당하는 방법론이다. 해당 문장에 어떤 요소의 내용이 포함되어있는지를 추출하기 위해 사용되며, 최근 챗봇과 같이 일정 문장에서 필요한 정보를 파악하기 위해 사용된다. 개체명은 크게 세 종류 B,I,O로 범주를 구분하고 있다. 문장과 같은 텍스트 시퀀스를 입력값으로 받아 각 entity별로 개체명을 분류한다. 따라서 시퀀스데이터에 좋은 성능을 보이는 LSTM기반 알고리즘을 사용하게된다. 일방향인 LSTM의 경우 target시점 이전에 대한 특징을 반영하게 되는데, 이 때 같은 구조의 방향이 다른 레이어를 추가하여 이전 특징(past feature) 뿐만 아니라 미래 특징(future feature)를 반영하는 양방향의 Bi-LSTM구조를 사용하기도 한다. 이러한 모델의 가정에는 독립변수와 종속변수 뿐만 아닌 독립변수간에도 dependency가 있다고 볼 수 있다. 오늘 소개하고자 하는 Bi-LSTM-CRF 알고리즘은 궁극적으로 종속변수 즉 개체명간 관계를 고려하기 위해 CRF모델을 접목시켰다. CRF는 최종 개체명p(y|x)을 예측하고자할 때 MLE식을 구성할 때 p(yi|yi-1)정보를 포함하여 과거 시점의 개체명을 반영하고자 했다. Bi-LSTM-CRF모델의 경우 이를 end-to-end로 방향이 다른 LSTM을 각 레이어로 배체하고, 최종적으로 CRF레이어를 쌓는다. 이때 같은 시점(state)의 두 LSTM hidden state가 CRF에 입력되며, 이 과정에서 계산된 gradient는 두 LSTM레이어에 back propagate로 파라미터를 업데이트한다. 중간 연산 과정에서 논의가 있었는데, 시간을 갖고 scoring산출 및 최종 산출 과정에 대해 차근히 살펴보고 싶다는 생각이 들었다. 지난학기 산학 프로젝트에 NER문제를 해결하기 위해 다양한 알고리즘들을 시도해보았는데, 이런 과정에서 한국어의 특징을 잘 반영하는 것이 매우 중요한 과제라고 깨달았다. 다양한 문법적 구조와 더불어 NER문제 상황에서 띄어쓰기를 기준으로 하는 영어와는 달리 entity의 범위/기준을 정립하는 과정에서 목적에 맞게 다양한 변형을 필요로 하기 때문이다. 오늘 다시한번 NER에 대해 정리해볼 수 있었고, 목적에서부터 알고리즘에 대해 소개해준 건이오빠에게 감사함을 전한다.
금일 세미나는 Name Entity Recognition(NER), 개체명 인식이라는 다소 생소한 분야에 대해서 진행되었다. 이전에 텍스트마이닝에 대해서 공부를 할 때 잠깐 들었던 영역이었지만 깊게 공부를 하지는 않았었다. NER은 문장의 각 단어가 어떤 개체에 해당이 되는지 판단하는 작업으로 문맥에 대한 분석이 중요하게 작용한다. NER 모델을 학습하기 위해서 일반적으로 텍스트 분석에서 사용된 POS 태깅 이외에 B-I-O 태깅을 추가적으로 수행한다. 이는 하나 이상의 단어를 한 개체로 인식할 수 있도록 레이블을 부여하는 작업이다. 예를 들어, '오늘 오후 1시'는 3개의 단어가 모두 '시간'이라는 하나의 개체에 속한다. 이런 관계를 고려할 수 있도록 B-I-O 태깅을 하게 된다. 금일 세미나에서 소개한 Bi-LSTM-CRF 모델의 핵심은 X와 Y 사이의 관계를 학습하는 것과 더불어 Bi-LSTM을 사용해 X 변수끼리의 관계를 학습하고 CRF를 통해 Y와 Y 사이의 관계를 동시에 학습하는 것이다. 텍스트와 같은 시퀀스 데이터의 특징을 최대한 반영하여 모델을 학습하기 위한 방법이라는 점에서 인상 깊었다. 두 개의 모델을 end-to-end로 학습하기 때문에 학습 과정이 다소 복잡하였다고 느꼈으며, 이 부분에 대해서는 논문과 구현된 모델을 자세히 살펴봐야 할 것 같다고 생각했다.
금일 세미나는 개체명 인식을 위한 Bidirectional LSTM-CRF Model을 주제로 진행되었다. 정확한 개체명 인식을 위해서는 context를 고려한 분석을 해야 한다. 이를 위해 문장을 형태소 단위로 분리하고 적절한 POS Tagging이 필수적이다. 한국어의 경우 Twitter, Komoran이 분류에 좋은 성능을 보인다고 한다. 그러나 챗봇이나 뉴스 기사에 등장하는 텍스트들의 경우 개채명은 대게 하나 이상의 단어로 등장하게 된다. 예를 들면 오늘 오후 7시는 3개의 noun으로 각각 인식하는 것 보다 1개의 Time으로 tagging하게 되면 좀 더 문맥을 잘 고려한 텍스트 분류를 할 수 있게 된다. 이러한 아이디어를 적용한 것이 B-I-O Tagging이다. 이를 활용하면 ‘오늘 오후 7시’를 ‘B-time, I-time, I-time’으로 분류를 할 수 있게 된다. Word2vec 등의 방법으로 텍스트를 embedding 시킨 벡터집합을 input으로 하여 B, I, O를 예측할 수 있게끔 학습시키는 모델 중 잘 알려진 모델은 RNN, LSTM model 등이 있다. 이 모델은 문맥의 forward 방향만 고려하기 때문에, 양 방향으로 문맥을 고려할 수 있도록 아이디어를 확장시킨 모델이 Bidirectional LSTM 모델이다. Bi-LSTM과 함께 좋은 성능을 내는 모델로 CRF model이 있는데, 이 모델은 X와 X간, X와 Y간의 dependency(조건부 확률)만 고려하는 것이 아니라 Y와 Y간의 dependency까지 고려한 모델이다. 즉, Ym의 B, I, O를 예측할 때 Xm과 Xm-1만 고려하는게 아니라 Ym-1까지 고려하여 모델링을 하게 된다. Bi-LSTM과 CRF 모두 B-I-O tagging에 있어 상당한 성능을 낸다고 알려졌다. 이 두 모델을 결합한 모델이 Bi-LSTM-CRF model이다. 아이디어는 Bi-LSTM으로 예측한 y를 CRF의 input으로 사용하겠다는 것이다. 다만 결과적으로 이 모델이 각각의 모델보다 성능이 많이 향상되지는 않았다고 한다. 기존의 Bi-LSTM 모델에서 Ym을 예측할 때 Ym-1을 고려하지 않았던 점을 보완한 모델이기 때문에 눈에 보이는 성능의 향상이 있을 것이라고 기대했지만 복잡하다고 다 좋은 모델은 아니라는 것을 알 수 있었다.
개체명 인식은 텍스트 분석에 있어서 매우 중요한 과정이다. 특히 한국어처럼 동음이의어가 많고 복합명사가 많은 언어의 경우 더더욱 그 중요성이 크다. 회사 재직 시 컨텐츠의 문장을 분류해서 핵심 태그를 생성하는 작업을 했었는데 의도대로 태그가 잘 추출되지 않아서 사전을 만들고 case by case로 stopword에로 오분류된 단어를 등록하여 제거하는 노가다를 했었던 기억이 있다. 그 때 Bi-LSTM같은 모델을 알고 있었더라면 헛수고를 덜 했을 것 같다는 생각을 했다. 그리고 동시에 분류정확도가 향상되지 않는 연구 결과를 보면서 텍스트마이닝이 얼마나 어려운 연구분야인지 다시 한번 느꼈다. 오늘 CRF 모델의 수식도 이해되지 않는 부분이 있었는데, 앞으로 관심을 갖고 깊게 공부 할 수있도록 노력해야겠다. 구체적인 사례와 수식까지 잘 정리해서 좋은 세미나를 진행해준 건이형께 감사드린다.
텍스트 분석 과정에서 pos tagging 이나 BIO tagging는 문서에서 추가적인 정보를 추출하고 이를 명시적으로 할당하여 추후 모델이 텍스트의 의미를 파악하도록 하는 역활을 한다. 반대로 문서를 통해 BIO tagging을 예측하는 모델을 구축하는 것을 name entity recognition (NER)이라고 한다. BIO tagging을 예측함으로써 문서에서 중요한 내용 추출이 가능해 진다. 오늘 세미나에서 다룬 NER 기법인 CRF model은 통계적 모델링 방법중 하나로 구조적 예측에 주로 사용되는 기법으로 기존의 CRF 모델에 텍스트 인식에 우수한 성능을 보이는 biLSTM 과 결합한 기법이다. 성능 측면에서는 기존의 CRF 만 적용했던 방법과 비교하여 큰 향상은 없으나 end-to-end로 학습이 가능하다는 장점이 있다고 보인다. 다만 학습을 위해 훈련 데이터셋을 구성하는 데 있어 BIO tagging이 필요하고, tagging을 하는데 있어 처리가 어렵다는 점이 단점이라고 생각된다. advance한 챗봇을 구성하는데있어 NER 기법이 중요하게 사용되는 만큼 연구주제로써 매우 흥미로운 주제라 생각된다.
Named Entity Recognition(=NER)에 차이점을 설명하는 것으로 시작되었다. 두 개의 차이점은 실제 챗봇 사례를 바탕으로 설명을 들을 수 있었다. 실제 사례를 통하여 설명을 듣다 보니 두 개의 차이점에 대해 더 쉽게 이해할 수 있어서 좋았다. 음식점을 예약할 때, 시간, 장소, 음식점, 사람수에 대한 정보를 입력하게 되는데 Text Classification의 경우 이 4가지의 조합을 고려한다 쳐도 시간(1440분) x 장소(2100동) x 음식점(60만개) x 사람수(100명) = 약 181조 개의 경우의 수가 나오게 된다. 이렇게 되면 너무 많은 Class를 부여해야 하므로 Model을 학습시키는데 한계가 존재한다. 또한 POS Tagging을 진행할 때, Text Classification의 경우 숫자, 조사 등은 제거하게 되지만 NER은 해당 부분을 제거하지 않고 진행하게 된다. Pos Tagging 이후 NER은 B-I-O Tagging을 진행하게 되는데, 하나 이상의 단어를 하나로 인식하게 하기 위해서 개체명의 시작점, 중간, 개체명 외의 것을 구분해서 Tagging하게 된다. 이후 Word Embedding - Bi-LSTM-CRF 모델링에 대한 설명도 들을 수 있었다. Bi-LSTM-CRF의 경우 Bi-LSTM에 비해 비약적인 성능 향상을 보이지는 않았지만, Bi-LSTM에 CRF를 결합하여 X와 X, X와 Y, Y와 Y 총 3가지의 경우 모두에 대한 고려가 있었다는 것이 해당 알고리즘이 기여한 점이라 할 수 있다.
최근에 LSTM 이후 Bi-LSTM은 무엇인가에 대한 궁금한 점이 있었는데, 금일 세미나를 통해 설명을 들을 수 있어서 좋았다. 비정형 데이터, 특히 Text, Image, Audio 등의 분석이 중요해지고 있는 요즘 금일 세미나를 통해 조금 더 관심을 가질 수 있게 되는 시간이었고, 추후에 해당 알고리즘에 대해 더 깊이 공부해야겠다는 생각을 하게 되었다. 발표를 준비해준 건이에게 감사하다고 전하고 싶다.
이번 세미나는 Bidirectional LSTM-CRF Models for Named Entity Recognition 을 주제로 진행되었다. 개체명 인식은 단어가 가지고 있는 사전적 의미를 단순히 찾는 것이 아니라 문맥 내에서 해당 단어가 가지는 의미를 찾는 과정을 의미한다. 같은 단어라도 문장에 따라 사용되는 의미가 달라질 수 있는데, 이를 정확히 파악하는 것이 목표라고 할 수 있다. 개체명은 단어가 하나일수도 있고 여러 단어가 합쳐져서 하나의 개체를 나타낼 수 도 있다. 따라서 BIOtagging 을 통하여 어떤 단어들이 하나의 개체로 인식되어야 하는지 정한 후 이를 학습데이터로 활용한다. 개체명을 예측하는 방법으로 bi-LSTM을 이용할 수 있다. 양방향 sequential 정보를 이용하여 각 단어가 어떤 개체로 인식될 수 있는지 예측할 수 있다. 오늘 소개된 논문에서는 bi-LSTM 의 결과에 CRF 를 추가하여 예측된 단어의 BIO tagging 정보를 문장내에서 보다 자연스럽게 tuning 해주었다고 생각할 수 있을 것 같다. Bi-LSTM 에서 X 와 이전시점(인접)의 X,. X 와 Y 간의 관계를 학습에 이용되었지만, Y 와 인접의 Y 에 관계에 대해서는 따로 고려가 되지 않았는데, CRF 를 이용하여 이부분까지 고려하게 한 것이 주요 내용이었다. 금일 세미나를 통하여 기존의 방법론을 개선하기 위한 접근한 방법이 인상깊었으며, 결과적으로 큰 개선은 없었으나 데이터를 이해하는 입장에서 합리적인 제안으로 생각되어 흥미롭게 들을 수 있었던 유익한 세미나였다.
오늘의 세미나 주제는 Bi-directional LSTM CRF를 활용한 Named Entity Recognition이었다. 발표자는 NER에 익숙하지 않은 사람들에게 이해하기 쉽도록 예제와 필요한 상황에 대해서 잘 설명해준 것이 인상적이었다. 개체명은 대체로 하나 이상의 단어가 결합되어 구성되고, B-I-O Tagging으로 하나 이상의 단어를 하나로 인식하게 할 수 있다. 이때 학습 sentence에 B-I-O tagging 정답 값이 레이블링 되어 있어야 하기에 발표자가 진행했던 프로젝트에서 한글 문장에 대해 B-I-O tagging 레이블링 작업이 진행되었다고 한다. 한글에 이런 학습을 위한 제대로 구성된 데이터 셋이 부족한 것이 항상 아쉽다고 생각되었다. 그 이후 LSTM model과 Bi-LSTM model에 대해 간단한 설명이 이뤄졌다. 이때 LSTM에 대한 수식을 기본 RNN 수식으로 설명해서 그 부분의 디테일이 조금 아쉬웠다. 그리고 Conditional Random Field에 대한 설명 이후 Bi-directional LSTM CRF를 설명되었다. CRF에 대해 익숙하지 않아서 어려웠지만 이번 기회에 새로운 것에 대해 익힐 수 있는 시간이 되어 좋았다. 중간에 수식에서 여러가지 논의가 있었지만 제일 궁금해졌던 것은 y와의 관계가 CRF layer가 어떻게 반영되는지였다. 추후 CRF에 대해 공부하는 기회를 가지고 싶다. Keras 코드로는 한 줄이면 코드로 작성이 되는 CRF layer에 이렇게 깊은 내용이 담겨있다는 것이 놀랍다.
오늘 세미나의 주제는 bidirectional long short-term memory conditional random field(BI-LSTM-CRF) 모델을 이용한 Sequence tagging이다. 우선 Named Entity Recognition은 단어(코퍼스)에서 개체명을 인식하는 것인데 것인데 주로 문맥을 파악하여 이용한다. Text Classification과 유사하지만 Text에서 세부 정보를 BIO태깅을 통해 이용할 수 있다는 점에서 다르다. BIO tagging은 각각 단어에 B, I, O중 하나를 태그하는 것인데, 어떤 개체가 되는 단어에는 B를 태그하고, 그 다음 단어가 B에 속하는 단어라면 I가 태그된다. 그 외 어떠한 개체도 아닌 단어들은 O가 태그된다. 또한 장소에 관한 개체면 B대신 B_loc로 태그하는 것처럼 B의 속성에 따라 B는 여려 종류일 수 있다. 원래 text의 sequence와 태그된 BIO sequence가 얼마나 잘 맞는지 CRF를 통해 판단한다. 결과는 소프트맥스를 이용한 확률 값으로 나타나는데, 두 sequence의 각각 i번째 요소들의 조합 점수와 BIO sequence의 순서에 대한 조합 점수 합하여 값을 얻고, 나머지 조합들의 점수 합을 이용한다. 기존의 Bidirectional LSTM과 다른 점은 BI-LSTM은 X-X, X-Y간의 연관성을 고려하였지만, CRF는 X-Y(두 sequence의 각각 i번째 요소들의 조합의 점수)과 Y-Y(BIO sequence의 순서 대한 조합의 점수)의 관계를 반영한다는 것이다. Text의 경우 모델에 들어가는 데이터와 나가는 데이터들의 순서가 중요한 정보 중 하나인데 이 모델은 y의 순서 정보를 더 이용했다는 것에서 의미가 있는 것 같다. CRF모델은 처음 들었지만, 상당히 여러 방면으로 사용될 수 있을 것 같다는 생각이 들었다.
금일 세미나는 ‘Bi-LSTM CRF for Named Entity Recognition’ 이라는 주제로 진행되었다. 해당 세미나의 핵심은 X와 Y의 종속성, Y와 Y의 종속성을 반영할 수 있는 모델을 만드는 것이 목적이었다. 우선적으로 Entity의 의미를 설명해주었다. ‘Armstrong’이라는 단어를 보면 달에 처음으로 발을 뻗은 사람, 흑인 음악을 하는 사람, 회사, 스포츠 팀 등 많은 것들이 연상된다. 하지만 해당 단어가 포함된 문장을 보면 Armstrong이 무엇이 의미하는지를 알 수 있게 된다. 여기서 Armstrong이 Entity에 해당한다. Entity의 뜻을 알기 위해서는 반드시 문맥이 필요하다. 또한 문맥만 있다고 현재의 빅데이터 시대에서 Entitiy를 잘 인식 할 수 없다. Entity를 제대로 인식하기 위해서, 과거의 방법으로 Text Classification을 진행한다면 하나의 클래스에 대한 확률이 매우 작아지기 때문에, 빅데이터 시대에 쓰이기는 부적합하다. 그래서 하나의 문장에 대해, POS Tagging & BIO Tagging방법들이 등장했다. 문장의 문맥을 잘 반영하는 모델을 잘 반영하기 위해서, Bidirectional LSTM을 통해 X사이의 종속성과 X와 Y간의 종속성을 반영하고 CRF를 통해 Y사이의 종속성을 반영해서 Text Classification을 진행하였다. 특히 중점을 주어 발표했던 부분인 CRF은 일종의 베이지안의 관점으로 본 알고리즘이라고 생각한다. 스코어를 산정 할 때, P(X|Y)를 고려하는 부분에서 이러한 생각을 하였다. 스코어에 대해 소프트 맥스를 이용해 특정 Class에 대한 확률을 구해 Labeling을 해주는 과정이 CRF이다. 해당 모델을 학습시키는 과정에서는 MLE의 관점이 포함되는 것으로 이해하였다.
세미나를 들으면서, 종속성이라는 단어에 초점을 맞추어서 들었다. 왜냐하면 현재 준비하고 있는 공모전의 데이터들이 다변량 시계열 모델이기 때문이다. 시계열 모델에서 종속성을 반영을 잘 할 수 있다면 예측 성능이 좋아질 것이기 때문이다. 공모전에서 제안한 알고리즘이 RNN계열의 알고리즘인데, Bi-LSTM을 써도 예측 성능이 좋을 것 같다는 생각을 했다. 기존의 프리퀀티스트의 관점이 아닌 베이지안 관점의 알고리즘을 소개해주어 매우 감사했다. 아직 연구의 단계가 아니라 이론적 학습의 단계에 있는 나로써는 기존의 관점이 아닌 베이지안 관점의 새로운 알고리즘을 알 수 있게 된 계기가 되었기 때문이다. 깔끔한 PPT와 예시를 들어 설명해주어 NLP관련 Task에 대한 이해도 높일 수가 있었다. 발표를 준비해준 건이형에게 감사를 표한다.
금일 세미나에서는 건이가 Bidirectional LSTM-CRF Models for Named Entity Recognition 논문에 대해 리뷰했다. 흔히 텍스트 분석을 할 때 빠지지 않는 전처리 과정으로 POS tagging이 있다. POS tagging이 품사가 문법적으로 어떤 범주에 속하는 것인지 분류하는 것이라면 오늘의 주제인 named entity는 POS tagging의 보다 세분화 된 분류라고 한다. 문맥에 따라 어떤 명사는 시간과 관련된 레이블을 갖고, 또 다른 명사는 장소의 레이블을 갖는다. Named entity recognition은 문장이 주어졌을 때 각 단어가 어떤 의미를 갖는 named entity인지 분류하는 task이다. 오늘 소개한 논문은 LSTM-CRF라는 모델을 사용했는데, CRF (conditional random field) 시퀀스 레이블링 기법에 LSTM으로 문장 형태의 입력으로부터 feature를 추출하여 CRF의 입력으로 사용하는 방식이다. LSTM을 사용한 모델과의 차별점은 CRF를 이용하여 모델의 output간의 dependency를 모델링 할 수 있다는 것이다. 하지만 실제 데이터에 적용한 실험 결과에서는 POS tagging 성능에 큰 차이가 없는 것으로 나타났다. LSTM을 이용한 방식이 output의 dependency를 명시적으로 모델링 하지는 않지만 입력 데이터에 내재된 dependency가 모델의 output을 생성하는데 영향을 주기 때문에 CRF와 큰 차이가 없지 않을까란 생각을 했다.
금주 세미나는 Named Entity Recognition 분석을 위한 LSTM-CRF 알고리즘에 대한 소개였다. Named Entity Recognition 문제가 무엇인지에 대한 정의부터 LSTM-CRF 알고리즘이 왜 이 문제를 푸는데 효과적인지에 대한 전체적인 설명을 해주었다. 특히 LSTM-CRF 모델이 인풋 값과 아웃풋 값의 시퀀스 패턴을 동시에 반영하는 방법이 매우 흥미로웠다. 이러한 특징을 기반으로 Named Entity Recognition 문제 외에 다양한 실제문제에 적용 될 수 있을 것으로 생각된다.
오늘 세미나는 텍스트 내 개체명 인식(Named Entity Recognition, NER)에 대한 개괄적인 소개와 함께, 좋은 성능을 보이는 것으로 알려진 RNN과 Conditional Random Field를 결합한 bi-LSTM-CRF의 원리를 다루는 시간을 가졌다. 개체명 인식은 간단히 말하여 단어 단위의 분류라고 볼 수 있다. 여기서 한 가지 주의할 점은 한 개체가 한 개 이상의 단어로 구성되어 있을 수 있다는 점이다. 그렇기 때문에 각 단어를 특정 개체군으로 분류할 시, 앞뒤에 어떤 단어가 등장하는지 파악해야 한다. BIdirectional RNN 모델은 기본적으로 hidden state를 공유함으로써 문맥을 어느 정도 반영하지만, 개체군을 예측할 때는 상호 예측값(y)에 대해 참조하고 있지 않다. 이처럼 예측값 간 관계를 모델링할 수 있도록 도와주는 것이 Conditional Random Field 개념이다. 세미나를 통해 기존에 알고 있던 개념을 다시 한 번 정리할 수 있는 기회였다. Probabilistic graphical model 쪽 개념을 잘 알고 있어야 이해에 도움이 되는데, 여전히 이 분야는 자세히 공부를 해본 적이 없어서 조금 어려운 감이 없지 않았다. 하지만 발표자가 성심성의껏 자료를 잘 준비해왔기 때문에 모두가 많은 토론을 나누고, 서로 의견을 공유할 수 있었다.
금일 세미나에서는 Named Entity Recognition task를 풀기 위한 LSTM-CRF 모델에 대한 내용을 배울 수 있었다. LSTM-CRF은 CRF 모델과 bi-LSTM모델을 혼합하여 보다 sequence classification을 잘 학습하도록 하는 모델이다. CRF 모델이 반영할 수 있는 정보를 LSTM 모델에 한 레이어로 추가함으로써 예측 성능을 높이게 하는데에 의의가 있다. NER 과제에 적합한 이유는 과거의 sequence 데이터를 효과적으로 반영해야만 객체명을 인식 할 수 있기 때문이다. 개인적으로 흥미로웠던 부분은 저자가 Senna Embedding을 했을 때와 Random Embedding을 했을 때를 분리하여 성능을 검증한 부분인데, 이 이유는 앞서 Embedding을 할 때 Time의 클래스를 가진 단어와 Location의 클래스를 가진 단어에 대해 분리가 확연 해야만 뒤의 전체 모델의 효과가 높아질 것이라는 생각 때문이다. Text 분야에서 단어, 문장, 문단 단위의 embedding의 연구가 계속해서 발전되어 LSTM-CRF와 같은 모델에 적용되었을 때 예측 성능이 극대화 될 것이라는 생각을 할 수 있었다.
오늘은 bidirectional LSTM CRF 방법론에 대해서 들었다. 이 방법론으로 해결하고자 하는 문제는 하나의 문장이 들어왔을 때 문장 안에서 사용된 단어들의 품사나 상위 개념 클래스에 대한 분류를 하는 것이다. 이러한 문장 구성 요소에 대한 분류 문제는 자연어를 이해하는 인공지능 개발에서 핵심적인 역할을 하기 때문에 활발히 연구되고 있다. 문제 해결을 위해 가장 기본적으로 접근할 수 있는 방법은 RNN을 사용하는 것이다. 순차적으로 단어들이 입력될 때 단어들의 품사나 상위 개념 클래스를 순차적으로 출력하는 방식을 적용하는 것이다. 그런데 이 방법을 사용할 경우 문장의 정보가 앞에서 뒤쪽으로만 전달된다고 가정하기 때문에 분류 정확도에 한계가 생긴다. 이 문제를 해결하기 위해 Bidirectional RNN을 사용하게 된다. Bidirectional RNN을 사용하면 앞에서 뒤로, 뒤에서 앞으로 전개되는 단어들의 패턴을 모두 반영할 수 있어 분류 정확도를 높일 수 있다. 오늘 소개된 논문에서는 이 Bidirectional RNN에 Conditional Random Field 레이어를 추가한 방법론이 제시되었다. Conditional Random Field는 Input 값에 대해서 Output 간의 학습된 상관관계를 이용해서 Output을 출력하는 방법이다. 단순히 Output을 출력하는 것이 아니라 Output 간의 상관관계를 반영하기 때문에 자연어 처리 분야에서 널리 사용되고 좋은 성능을 보이는 것으로 알려져있다. 결과적으로 CRF 레이어를 사용했을 때 미미한 성능 향상이 있었지만, 일단 Output 간의 상관관계까지 고려한 인공신경만을 만들 수 있다는 것이 흥미로웠다. 이러한 개념은 최근 연구가 시작되고 있는 최적화 문제를 지도학습으로 해결하는 연구에서 제약조건들을 반영하는 데 응용될 수 있지 않을까 생각되었다. 최적화 문제는 대부분 제약 조건을 만족시키는 것이 중요한데 지도학습만으로는 이 부분을 반영하기가 쉽지 않기 때문에 추가적인 작업이 요구되기 때문이다.
금일 세미나는 named entity recognition과 bidirectional LSTM CRF 방법론에 내용으로 진행되었다. Named entity recognition (NER)은 주어진 문장 내에서 단어 또는 단어의 조합으로 이루어진 entity를 추출하고, 해당 entity들이 어떤 의미를 갖는지를 예측하는 자연어 처리의 한 분야이다. NER에서는 각 enttiy가 의미하는 바를 분류해내는데 있어 문맥, 즉 주변 단어들을 고려하는 것이 중요하다. 문장 내 단어의 순서를 반영하기 위해서 RNN 또는 Bidirectional RNN이 주로 사용된다. 이런 방법론들은 input에 해당하는 단어들 사이의 관계를 고려하게 된다. 세미나에서 발표한 bidirectional LSTM CRF의 경우에는, input-input간 관계에 더해, output인 각 단어의 entity label의 순서를 추가로 반영하는 모델이었다. 발표자가 준비한 논문에서는 bidirectional LSTM에 CRF를 추가하였을 때, 성능 향상 정도는 기존 모델에 비해 크지 않았지만, CRF를 neural network의 layer처럼 사용할 수 있다는 점이 흥미로웠다. Output 간 관계가 고려되어야 하는 문제에 적합할 수 있을 것이라고 생각한다.