1주일에 1편씩 구글 AI 블로그를 전문 번역하려고 하겠다는 원대한 계획을 세웠는데... 생각보다 지키기 어렵네요 ㅠ 그래도 생각날 때마다 구글 AI 블로그를 읽어보면서 제가 번역할 수 있는 수준의 글을 선택하고 있답니다. 또 제일 관심이 가기도 하구요.
오늘은 제 3편! NLU를 활용해서 코로나19 관련 과학 문헌을 검색할 수 있는 툴을 개발한 구글의 스토리를 소개합니다.
COVID-19 과학 문헌을 탐구하는 NLU 기반 툴
코로나19 팬데믹 속에서, 전 세계의 과학자 및 연구자들은 질병을 이해하고 퇴치하기 위해 엄청난 양의 새로운 연구를 발표하고 있다. 양적인 측면에서는 의의가 매우 크지만, 그 속도가 너무 빠르게 진행되다 보니 과학자와 연구원이 이를 모두 팔로업(follow-up)하기 힘든 상황이다. 전통적인 검색 엔진은 "미국에 몇 개의 코로나19 사례가 있습니까?"와 같은 일반적인 코로나19 질문(query)에 대한 실시간 정보를 찾는 데 유용한 리소스가 될 수 있다. 하지만 “연구 중심(research driven)” 형식의 질문에 내제된 의미는 이해하기 쉽지 않다. 게다가 전통적인 키워드 기반 접근 방식을 사용한 코로나19 과학 문헌 검색은 복잡한 질문이 입력되었을 때 적절한 내용을 찾기 어려울 수 있다.
이런 문제를 해결하기 위해, 우리는 5만 편이 넘는 학술 논문으로 이루어진 코로나19 오픈 리서치 데이터셋(CORD-19)의 의미 검색(semantic search) 인터페이스 형식인 코로나19 연구 탐색기(COVID-19 Research Explorer)를 출시했다. 이는 과학자와 연구원이 코로나19 관련 질문에 대한 답변과 연구 가설의 증거를 위해 필요한 논문을 효율적으로 찾을 수 있도록 돕는 툴이다.
사용자가 첫 질문을 할 때, 우리의 툴은 학술 논문 집합(전통적 검색)을 제공할 뿐만 아니라 질문에 답이 될 수 있는 일부 정보를 하이라이팅한다. 사용자는 하이라이팅된 정보를 검토하고 읽을 가치가 있는지를 신속하게 판단할 수 있다. 사용자가 검색 자료에 만족한 경우, 우리는 후속 질문을 제기하는 기능을 추가했는데 이는 검색된 논문에 대해 새롭게 질문하는 역할을 한다. 아래 예시는 하나의 질문과 이에 상응하는 후속 질문을 입력하는 과정을 보여주고 있다. 우리는 이를 통해 지식 탐구와 과학적 가설을 위한 효율적인 증거 수집이 이루어질 것으로 생각한다.
의미 검색
툴을 구동하는 핵심 기술은 의미 검색이다. 의미 검색은 질문과 문서 간의 용어 중복(overlap)을 체크할 뿐만 아니라, 문서 구문의 의미가 사용자의 질문 의도와 정말 관련이 있는지를 실제로 이해하는 것이다.
다음 문장을 살펴보자. “What regulates ACE2 expression?” 이는 간단한 질문처럼 보이지만, 특정 문구는 여전히 텍스트 일치에만 의존하는 검색 엔진을 혼란스럽게 한다. 예를 들어, "regulates"는 다수의 생물학적 과정을 지칭할 수 있다. 기존의 정보 검색(information retrieval, 이하 IR) 시스템은 이와 같은 혼동을 줄이기 위해 질문 확장(query expansion, QE)과 같은 기술을 사용하지만, 의미 검색 모델은 이러한 관계를 암시적으로 학습한다.
단어 순서 역시 중요하다. ACE2(angoitensin converting enzyme-2, 인간 세포 수용체로 코로나 바이러스가 이와 결합하여 몸속에 침투) 자체도 특정 생물학적 과정을 조절하지만 실제 질문은 ACE2를 조절하는 것이 무엇인지 묻고 있다. 용어만 일치한다고 해서 “ACE2를 조절하는 것”과 “ACE2가 조절하는 것” 사이의 차이를 구분하지는 못한다. 기존의 IR 시스템은 n-그램(n-gram) 용어 일치와 같은 방법을 사용하지만, 의미 검색 방법은 단어 순서와 의미를 모두 모델링하기 위한 방식을 채택한다.
우리가 사용하는 의미 검색 기술은 최근 구글 검색(Google Search)의 검색 품질을 향상시키기 위해 적용된 BERT(Bidirectional Encoder Representations from Transforemrs, 자연어처리 태스크에 대해 비지도학습을 통해 양방향 사전학습(pre-training)을 진행하는 시스템)를 기반으로 한다. 코로나19 연구 탐색기에 나타나는 생물 의학 문헌의 경우, 구글에 제출된 질문과는 매우 다른 성격의 언어로 구성되어 있다. 따라서 우리는 BERT 모델을 훈련시키기 위해 질문 및 관련 문서나 정보에 대한 지도학습이 필요했다. 미세 조정(fine-tuning)을 위해 BioASQ(Biomedical semantic indexing and Question Answering, 생물 의학 자료에 대한 의미론적 인덱싱, 질문 및 답변 태스크를 다루는 대회)에서 제공하는 우수한 리소스를 사용했지만, 이렇게 사람이 만든 데이터셋은 비교적 규모가 작다. 하지만 뉴럴(neural) 의미 검색 모델은 대규모의 훈련 데이터가 필요하다. 우리는 사람이 만든 작은 데이터셋을 증가(augmentation)시키기 위해 질문 생성의 수준을 높였고 그 결과, 생물 의학 분야에서 대규모의 합성(synthetic) 질문 및 관련 문서 데이터셋을 구축했다.
특히, 대규모 일반 분야의 질문-응답 쌍 데이터를 사용하여 인코더-디코더(encoder-decoder) 모델(아래 그림 a)을 훈련시켰다. 이러한 뉴럴 구조는 일부 텍스트(예: 영어 문장)를 인코딩하여 다른 텍스트(예: 프랑스어 문장)로 출력하는 기계 번역(machine translation)과 같은 작업에 사용되는 것이다. 여기서 우리는 답변 구절을 인코더에, 질문을 디코더에 위치하여 답변으로부터 질문을 출력하는 식으로 모델을 훈련했다. 다음으로 모든 문서(예: 코로나19)에서 구절을 가져와 연관 질문을 생성했다(아래 그림 b). 이후 이러한 합성 질문-구절 쌍 데이터를 뉴럴 검색 모델(아래 그림 c)의 훈련용 지도학습으로 사용했다.
하지만 우리는 뉴럴 모델이 키워드 기반 모델보다 성능이 떨어지는 경우를 발견했다. 이는 대부분의 인공지능과 심리언어학에서 잘 알려진 기억-일반화 연속체(memorization-generalization continuum, 불규칙으로부터 패턴을 학습하고 처음 보는 것의 변화도 예측할 수 있도록 일반화하는 기법, 예를 들어, 영어 문법중 go->went, kiss->kissed와 같이 단어마다 다른 시제 변화 속 패턴을 나름 학습한 후 처음 등장한 단어의 시제 변화 예측) 때문이다. tf-idf(term frequency-inverse term frequency, 문서에 등장한 단어의 비율을 계산하는 방법으로 해당 단어가 차지하는 중요도를 효과적으로 평가할 수 있음)와 같은 키워드 기반 모델은 기본적으로 기억하는 주체(memorizer)다. 질문에서 용어를 기억하고 해당 용어가 포함된 문서를 찾는다. 반면, 뉴럴 검색 모델은 개념과 의미에 대한 일반화를 배우고 이를 바탕으로 일치시키려고 한다. 하지만 때로 정밀도(precision)가 중요한 경우에 과도한 일반화가 진행될 수 있다. 예를 들어, 우리는 “What regulates ACE2 expression?”을 질문하면 모델이 “regulation”의 개념을 일반화하길 원하지, 약어 ACE2까지 일반화하길 원하지 않는다.(ACE2는 어떤 상황이든 동일한 개념을 유지해야 하기 때문)
하이브리드 방식 용어-뉴럴 검색 모델(Hybrid Term-Neural Retrieval Model)
우리는 시스템을 개선하기 위해 하이브리드 방식 용어-뉴럴 검색 모델을 구축했다. 핵심은 용어 기반 모델과 뉴럴 모델 모두 벡터 공간 모델(vector space model)로 표현할 수 있다는 것이다. 즉 질문과 문서를 모두 인코딩한 후 검색하는 과정을 질문 벡터와 가장 유사한, k-최근접 이웃(k-nearest neighbor, 새로운 데이터를 입력받을 때 가장 가까이 있는 데이터가 어느 집단에 분류되어 있는지를 중심으로 새로운 데이터의 집단을 정해주는 알고리즘) 검색이라고도 부르는 문서 벡터를 찾는 것으로 간주할 수 있다. 이 작업을 대규모로 수행하기 위한 수많은 연구와 엔지니어링이 있지만, 여러 방법을 결합해놓은 간단한 메커니즘이 있다. 가장 간단한 방식은 벡터를 트레이드 오프(trade-off) 파라미터와 결합하는 것이다.
위 그림에서 파란색 상자는 용어 기반 벡터고 빨간색은 뉴럴 벡터며, 이러한 벡터들을 연결하여 문서 벡터로 표현한다. 질문에 대한 두 벡터를 연결하는 동시에 정확한 용어 일치가 발생한 경우와 뉴럴의 의미적 일치가 발생한 경우를 비교하여 상대적 중요성 역시 반영한다. 이것은 가중치 매개 변수 k를 통해 수행된다. 보다 복잡한 하이브리드 구조도 가능하지만, 이 간단한 하이브리드 모델만으로 생물 의학 문헌 검색 벤치마크에서 품질이 크게 향상되었다.
이용 가능성 및 커뮤니티 피드백
코로나19 연구 탐색기는 연구 커뮤니티에서 공개 알파 형태로 자유롭게 사용할 수 있다. 앞으로 몇 개월 동안 많은 유용성 향상이 이루어질 것으로 자주 확인하길 바란다. 마지막으로 사이트의 피드백 채널을 이용하여 관련 피드백을 적극적으로 남겨주길 바라며 글을 마친다.
원문: https://ai.googleblog.com/2020/05/an-nlu-powered-tool-to-explore-covid-19.html
'기타 디지털 소식' 카테고리의 다른 글
인도 정부, 국가 공공 인공지능(AI) 포털 출범 (0) | 2020.06.06 |
---|---|
코로나19 확산 예방을 위해 올바른 손 씻기 점수를 매기는 AI 영상 인식 기술 (0) | 2020.05.30 |
AI 번역에서 나타나는 성 차별을 없애기 위한 노력, feat. Google AI Blog (0) | 2020.04.30 |
AI가 정상/비정상 패턴을 학습해 약물 처방 오류를 막는다! feat. Google AI Blog (0) | 2020.04.08 |
AI 가상 인물과 함께 커뮤니케이션, 리더십 훈련을? feat.Talespin (0) | 2020.03.07 |