IT Solutions/Big Data

빅데이터 시대, 자연어 기반의 빠른 검색이 온다

2016.07.25 09:34


이제 우리는 무엇인가 궁금한 것이 있으면 하루에도 몇 번씩 구글이나 네이버의 검색을 활용하는 것이 일상이 되어버렸습니다. 너무도 많은 정보가 넘쳐나는 빅데이터 시대, 검색은 매우 편리한 도구죠. 


하지만 저는 가끔씩 이런 생각을 해봅니다. '내가 입력한 단어만으로도 내가 무엇을 찾고자 하는지 이해해서, 정확히 필요한 페이지를 바로 찾아주면 안되나?’ ‘꼭 이렇게 많은 페이지를 내가 일일이 또 확인해야 하나?’ ‘단어로 바로 이해하지는 못하더라도, 질문을 입력하면 꼭 맞는 정보만 찾아주면 안되나?’ ‘제공되는 결과를 내가 원하는 형식으로 보여주면 안되나?' 이런 일이 가능하다면, 참 좋은 것 같은데 말입니다.

 

 

필요는 결과를 만들어 냅니다. 이러한 요구는 최근에 지능형 검색이라는 이름으로 연구되고 있는데요. 이는 인공지능의 한 분야로 봐도 무방할 듯 합니다.


지능형 검색이란 사람들이 묻는 질문을 이해하고 의도를 파악하고, 그것에 꼭 맞는 최종 결과를 제공해 주는 것입니다. 좋은 결과를 얻기 위해서는 대체로 많은 인력이 동원되는데요. 지능형 검색 엔진은 인공지능이 이러한 결과의 정리를 할 수 있게 하려고 노력하고 있습니다. 


기업 활동에서 데이터와 정보 활용 측면은 어떨까요? 연구•개발, 생산, 서비스, 영업, 마케팅 등의 활동에서 수없이 많은 데이터가 발생하는데요. 이 데이터를 기반으로 리포트를 만들어 정보를 공유하고, 활용합니다.


현재는 너무도 많은 리포트가 넘쳐나다 보니, 기업 내부에서 리포트와 지식 검색이 매우 중요한 요소로 부각되었습니다. 리포트 검색, 지식 검색은 어떻게 보면 현재의 구글, 네이버와 같은 검색 엔진의 기업용 버전이라고 볼 수 있는데요. 특정 키워드를 입력하면 해당 키워드에 맞는 각종 게시물, 문서 정보 목록을 제공합니다. 


원하는 것을 궁극적으로 얻기 위해서는 1차적인 검색 결과에서 다시 문서를 하나씩 열어서 확인해야 합니다. 원하는 자료가 없으면 검색어를 다르게 입력해 보기도 하고, 때로는 검색 결과에서 시스템화된 리포트의 경우는 바로 연결하여 실행하기도 합니다. 이러한 기능들은 다양한 비즈니스 상황에서 유용하게 활용될 수 있습니다.


그러나, 기업 활동에서 일어날 수 있는 좀 더 특별한 상황을 생각해 보겠습니다.


[상황 1]


A사는 TV 기판 부품을 생산하는 업체입니다. 중요한 납품 현상 과정에서, 고객이 지난 번 TV 불량이 2014년 2월 납품한 K기판의 문제라고 Claim을 제기해 왔습니다. 여기서 필요한 것은 2014년 2월 동안 발생한 K 모델의 불량 데이터이나, 준비된 근거는 없습니다. 결국, 명확한 근거를 제시하지 못해 불합리한 조건으로 계약을 체결했습니다. 이후 확인 결과, 당시 K 기판은 모두 정상이었습니다.


[상황 2]


한 달을 준비한 B 사업부 성장 전략을 보고하는 자리. B사업부는 이에 따라 투자 의사결정을 받게 됩니다. K 제품의 판매량 성장에 대해서 보고하던 도중, 해당 K 제품의 최근 3개월 이익률과 유사 제품 K1, K2의 판매량은 어떻게 되었는지를 질문 받습니다. 갑작스런 질문에 답을 하지 못하자, 회의 진행이 엉망이 되었고, 결국 추가적인 의사결정을 하지 못한 채 다음으로 연기되어버렸습니다.


지금부터 소개하고자 하는 사례는, 상기와 같은 상황들을 극복하기 위한 것으로 언제든 자신이 필요로 하는 기업 내부의 데이터를 획득하는데 있어 단 한번의 질의로 최적의 결과를 제공 받을 수 있는 솔루션에 대한 이야기입니다.


l 데이터 검색 및 획득 패턴의 개선 방향


 QDS(Quick Data Search)의 개념


'Quick Data Search(이하 QDS)'는 명칭에 포함된 단어 그대로, 데이터를 빠르게 검색하기 위한 엔진이라는 뜻입니다. 즉, QDS의 검색 대상은 데이터인데요. 데이터는 광범위한 의미를 가지므로, 좀 더 엄격하게 정의하면 기업이 보유하고 있는 구조화(Structured) 또는 비구조화된(Unstructured) 데이터를 의미합니다.


구조화된 데이터는 보통 RDBMS(관계형데이터베이스)에 저장된 데이터들이며, 비구조화된 데이터는 문서, 이미지 등과 같이 파일 형태로 저장된 데이터입니다. 또한, 빠르다는 것은 어떤 요청이 있은 후 최종 결과를 얻기까지 길게는 1 분, 짧게는 3 초 이내에 처리 가능해야 함을 의미하는데요.


검색을 빠르게 가기 위해서는 아래 3가지 요소에 대해서 해결해야만 합니다.


① 검색 요구에 대한 정확한 인식

② 검색 결과에 대한 빠른 탐색

③ 가장 근접한 검색 결과만을 제공

 

 진정 빠른 검색을 위한 도전


과제1. 빠르다는 것의 핵심은 정확한 검색 의도에 대한 인식

 

 

정확한 검색 의도에 대한 인식은 매우 중요하지만, 매우 어려운 문제이기도 합니다. 검색어를 하나의 단어보다는 충분한 문장으로 정확히 입력해 주면, 자연어 해석을 기반으로 의미를 파악하는 인식의 정확도는 높아질 수 있습니다.


하지만 안타깝게도 인간은 자신이 간단히 의사를 전달하더라도 상대방이 당연히 알아주기를 원하는 자기중심적인 경향이 강합니다. 만약 의도를 정확히 파악하기 위해 사용자에게 아주 자세한 설명을 해 줄 것을 요구한다면 사용이 어렵다고 느낄 것이며, 아무도 사용하지 않는 검색 기능이 될 수 있습니다.


예시로 아래 3가지 검색 문장을 비교해 보겠습니다.


문장 1 - “최근 월 기준에서 A사업부의 B지점에서 달성한 총매출 금액은 얼마인가?”

문장 2 - “총매출, 최근 월, A, B”

문장 3 - “총매출”


문장 1의 경우는 정확한 의미를 알 수 있습니다. 문장2의 경우는 필요한 핵심 단어는 있으므로 각 단어의 의미를 알고 있다면 요청하는 것이 무엇일지 판단할 수 있습니다. 문장 3의 경우는 총매출에 대한 값을 제시해야 할 것 같은데, 너무도 다양한 조건이 있어 어떻게 해야 할 것인지 판단하기가 어렵습니다. 


게다가 각 문장에 있는 단어들이 다양한 의미를 가지는 경우에 대해서 어떻게 처리해야 할 것인가 또한 큰 어려움입니다. A는 사업부이기도 하고, 그냥 문자 A일수도 있으며, 다른 상품의 이름일 수도 있습니다. “A 사업부”라고 지정해 주면, A는 사업부의 의미로 생각할 수 있으나, A 라는 단어만으로는 어떤 의미로 판단하느냐에 따라 결과가 완전히 달라질 수 있는 것이죠.


과제2. 정확한 데이터에 대한 검색과 결과 제공의 형태

 


기업 내에는 통상적으로 여러 개의 데이터베이스가 있습니다. 각 데이터베이스에는 수없이 많은 테이블이 있고, 각 테이블마다 다양한 속성과 정보를 가지고 있습니다. 


앞의 예시 문장을 기준으로 봤을 때, “총매출”이라는 데이터 값이 포함되어 있는 테이블들은 최소 1개에서 수십 개가 존재할 수 있습니다. 수십 개가 존재한다고 가정할 때, 해당 테이블 목록을 모두 출력해 주고 사용자가 알아서 추가적인 탐색을 진행하도록 한다면 빠른 검색과 결과 제공이라는 목표에서 벗어나 버립니다.


따라서, 사용자 의도에 맞는 최적값을 찾아서 최소 1개에서 최대 3개 이내로 제시해야만 짧은 시간 내에 검색이 완료될 수 있습니다.

 

과제3. 빠른 데이터의 탐색을 위한 다른 형태의 기술적인 접근

 

 

일반적인 검색 엔진은 수없이 많은 키워드의 조합으로 미리 대규모의 색인을 처리해 둡니다. 기업 내부 데이터의 조합을 모두 키와 값 구조의 색인으로 구성할 경우, 엄청난 규모의 색인 데이터가 만들어질 텐데요. 이렇게 되면 비용이 발생하는 것은 물론, 이미 저장된 데이터가 있음에도 색인 데이터를 따로 만들어 저장해야 하므로 합리적이지 못한 방법입니다.


대중을 위한 검색 사이트는 검색을 기반으로 수익을 내는 비즈니스 모델이므로, 그 부분에 대한 투자는 당연한 것입니다. 하지만 기업의 경우, 내부 시스템의 이중화된 데이터 저장이 단순히 빠른 검색 만을 위한 것이라면 투자 대비 효과는 매우 낮을 수 밖에 없습니다.


상상을 초월하는 대규모 색인 데이터를 생성하지 않으면서도 이미 저장된 엄청난 양의 데이터에서 빠르게 데이터를 찾아올 수 있는 기술적인 방안은 기존의 사전 색인 기반의 검색 엔진과는 다른 동작 형태를 가져야 합니다.

 

 QDS(Quick Data Search) 아키텍처


QDS는 크게 3가지 영역으로 나눠집니다. 검색어 입력 UI, 검색어 해석 엔진과 SQL 생성•실행 엔진, 검색 결과 처리 UI가 주된 요소인데요. 각 영역이 해결하고자 했던 주요 과제들의 해결 방식을 제시하고 있습니다.

 

l Quick Data Search 기능 아키텍처



첫 번째 과제인 해석은 해석 사전을 기반으로 사용자 특성에 맞는 해석을 처리할 수 있도록 사전에 일정한 정보를 주도록 구성되어 있습니다. 해석 엔진은 주어진 정보에 따라 해석을 진행하는 형태이므로, 주어진 정보가 잘못된 정보일 경우 해석이 잘못될 수도 있는데요. 주어진 정보를 지속적으로 판단하고 개선하기 위해 로그 분석을 활용하고 있습니다.


두 번째 과제인 정확한 해석은 다수의 테이블이 있을 때, 불필요한 테이블을 줄이기 위해서 중간의 VIEW를 만들어 두고, 동일한 정보가 든 다수의 테이블 중에서 최적 결과를 찾을 수 있는 알고리즘이 해석 과정에서 구동하도록 처리되어 있습니다.


세 번째 과제인 검색의 기반 기술은 대규모 색인을 사전에 구성하는 것이 아니라, 적절한 SQL 문을 생성하고 해당 SQL이 직접 실행되어 필요한 결과만을 가져오는 방식으로 동작하도록 되어 있습니다.


다음으로 동작하는 절차를 살펴보면 아래와 같이 구성됩니다.


우선 검색어 입력 UI에서 검색어를 전달 받은 해석기는 해석 사전을 기반으로 의미 해석을 시도합니다. 이 때, 검색어 내에 포함된 단어와 조사 분할 등으로 의미에 대한 해석을 시도합니다. 


해석된 결과를 기반으로 권한과 SQL을 생성하여 실행해도 실제 결과를 가져올 수 있는 것인지 가용성 점검을 진행합니다. 이 단계에서 의미가 없다면, 검색 결과를 가져올 수 없음을 안내하고 종료합니다. 해당 단계를 넘어서면 SQL을 생성하고 결과를 가져오는데요. 각 단계는 모두 로그로 기록되어, 향후 해석 개선을 위해 활용됩니다.


SQL이 실행된 결과는 매우 다양한 형태로 존재할 수 있습니다. 결과 컬럼도 다양하고, 결과로 나온 열의 수도 다양할 수 있습니다. 해당 결과를 기준으로 결과 UI 생성기는 어떤 것이 최적의 결과 UI인지 판단합니다.

 

l Quick Data Search 동작 흐름


 QDS(Quick Data Search)의 기능 구성


QDS는 겉으로 보이는 모습은 매우 단순합니다. 단순히 검색기 하나와 결과를 보여주는 화면이 있을 뿐입니다. 하지만 그 단순한 화면 속에 여러 가지 기능이 숨어 있습니다.


① 단어 나열만으로도 의미 해석


자연어 해석이라고 해서 전체 자연어로 입력해야만 하는 것은 아닙니다. 실제 기업 내의 데이터를 검색함에 있어 완전히 자연어로 입력하는 사용자도 없을 뿐더러, 입력 단계의 불편함만을 초래하게 됩니다.


또한, 실제 자연어 해석을 위해서는 엄청난 컴퓨팅 파워가 필요합니다. QDS는 아주 소규모의 자원으로도 해석을 처리하는 알고리즘을 가지고 있습니다. 단순히 단어를 나열하면, 각 단어가 가지는 의미를 기준으로 적절한 의미를 해석하는 것이죠.


② 부가 의미의 자동 해석


간단한 단어 중심의 키워드만을 입력하더라도 부가적인 의미는 자동으로 해석하여 처리합니다. 일반적으로 기업 내부에 활용되는 단어들은 매우 제한적입니다. 이 제한점을 이용하여, 특정 단어들에 대해서 부가적인 의미 해석을 자동으로 수행합니다.


③ 권한에 대한 자동 통제


기업 내부 데이터인 만큼, 데이터의 종류에 따라 조회에 대한 허가가 필요할 수 있습니다. 데이터에 대한 권한은 자동으로 처리되며, 권한이 있는 범위 내에서 결과를 제공합니다.


④ 한국어•영어의 혼용 지원

 


QDS는 한글 해석이 중심입니다만, 영어에 대해서도 해석을 병행하여 진행합니다. 즉, 한국과 Korea는 같은 의미로 해석하여 하나의 결과로 해석하는 것입니다. 검색 결과는 개인 설정에 따라 한글로 설정한 경우는 모두 한글로, 영어로 설정한 경우는 모두 영어로 제공됩니다.


⑤ 입력 단계의 정확도를 높이기 위한 지원 기능


가능한 입력 단계에서 정확한 단어를 입력하고, QDS가 제공되는 검색 범위를 초과하지 않도록 입력을 유도하는 것이 중요합니다. 따라서 입력 단계에서 오입력 자동 보정, 유사어 자동 보정, 다중 의미어 자동 인식 및 가이드 제시 등의 기능을 제공합니다. 또한, 한번 활용된 검색어는 즐겨찾기 형식으로 등록해 두고 재활용할 수 있도록 하는 등 검색 이력 관리 기능을 제공합니다.


⑥ 검색 결과의 제공 형식 자동 판단


검색 결과는 데이터를 제공하는 것이므로, 기본적으로는 테이블 형식으로 제공합니다. 하지만 제공되는 데이터가 적을 경우는 별도의 요약 형식으로 정리되어 제공되는데요. 이러한 요약 형식 또는 테이블 형식의 검색 결과 제공 유형은 내부적인 알고리즘에 따라 자동 판단하여 제공됩니다.


 QDS(Quick Data Search)의 활용


QDS에서 가장 어려운 점은 의미 해석을 위한 온톨로지(Ontology)[각주:1] 구현인데요. 의미 해석 사전을 만드는 과정은 기업 내 온톨로지를 형성하는 과정으로, 이 영역이 전사적으로 모두 확대되어야 한다면 대규모 기업의 경우는 이 과정에서 너무도 많은 시간을 소모하게 됩니다. 따라서 억지스러운 온톨로지 형성을 강요하기 보다는 각 영역별로 자체적인 온톨로지가 구현되면서, 자연스럽게 전사적으로 확대가 이루어지도록 구성하는 것이 효과적입니다.


기능적으로 QDS는 어떤 영역이나 서비스에서도 보조적인 기능으로 활용이 가능하지만, QDS를 활용하는 것은 우선 EIS(Executive Information System)나, 각 영역별 데이터 마트 또는 부분적인 운영 업무 성격의 시스템에 제한적으로 적용하기를 권장합니다. 제한적인 범위 내에서 온톨로지 구현은 단기에 가능하기 때문입니다.


 인공지능 기반의 질의응답 시스템과 기업 내부 정보 활용의 변화


2016년 초, 세상을 뜨겁게 달군 '알파고'를 기억하실 것입니다. 그보다 앞서 2011년 미국을 놀라게 했던 IBM의 '왓슨'이 존재했는데요. 이를 기억하시는 분은 많지 않을 것 같습니다. 왓슨은 미국의 유명한 제퍼디 퀴즈쇼에 출전하여, 당대 최고의 선수였던 켄 제닝스를 이긴 인공지능입니다.


왓슨은 음성에 대한 인식, 인식된 음성에 대한 의미 해석, 수많은 데이터 내에서 엄청난 검색 속도, 정답을 판단하기 위한 판단 알고리즘 등 모든 인지기술의 총체처럼 보입니다. 현재는 왓슨뿐만 아니라 Microsoft의 코타나, 애플 시리 등과 같은 인공지능 기반의 Q&A 시스템이 지속적으로 발전하고 있습니다.



기업 내부의 정보 활용 형태도 점차 증가하는 정보량으로 인해 질의응답 시스템의 형태로 변화하고 있는데요. 이것은 당연한 흐름으로 보입니다. 리포트를 찾거나 리포트를 만들어 정보를 획득하기보다는, 질의를 던지고 해당 질의에 맞는 결과 정보를 정확히 획득하는 형태가 궁극적으로 지향해야 할 방향일 것입니다. 아직은 많이 부족하겠지만, 이미 다수의 제품들이 그러한 방향으로 개선되어 가고 있는 것으로 보입니다.


QDS는 왓슨과 같은 엄청난 인공지능은 아닙니다. 왓슨은 2,880개의 CPU와 16테라바이트의 메모리를 활용하는데 비해, QDS는 그저 4코어의 CPU와 4기가바이트의 메모리를 활용합니다. 하지만 기본 원리는 동일한 형태를 취하고 있으며, 지향점 또한 동일하게 질의응답 시스템의 구현입니다.


QDS가 인공지능 기반의 질의응답 시스템으로 빠른 시간 내에 발전하기는 어려울 것입니다. 그러나 기업 정보 활용 형태의 변화 과정에 대응하여, LG CNS가 소규모로 적용 가능한 솔루션 구현 사례로 다양한 영역에서 이러한 기술적 개념을 적용하고 확장할 것을 기대해 봅니다.


글 | LG CNS 빅데이터사업담당



* 해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.

* 해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.



  1. 온톨로지: 공유된 개념화(shared conceptualization)에 대한 정형화되고 명시적인 명세(formal and explicit specification). 온톨로지는 단어와 관계들로 구성된 일종의 사전으로서 생각할 수 있으며, 그 속에는 특정 도메인에 관련된 단어들이 계층적으로 표현되어 있고, 추가적으로 이를 확장할 수 있는 추론 규칙이 포함되어 있어, 웹 기반의 지식 처리나 응용 프로그램 사이의 지식 공유, 재사용 등이 가능토록 되어 있다. 온톨로지는 시맨틱 웹 응용의 가장 중심적 개념으로서, 이를 표현하기 위해 스키마와 구문 구조 등을 정의한 언어가 온톨로지 언어(ontology language)이며, 현재 DSML+OIL, OWL, Ontolingun 등이 있다. [네이버 지식백과] [본문으로]
저작자 표시 비영리 변경 금지
신고
Posted by IT로 만드는 새로운 미래를 열어갑니다 LG CNS
위로