정보 검색과 AI - 건초더미에서 바늘 찾기

정보검색과 AI – 건초더미에서 바늘 찾기

우리가 흔히 ‘검색’이라고 부르는 정보검색(Information Retrieval)은 일상생활에서 흔히 사용하는 기능입니다. 분명히 존재함에도 있다는 의식을 잘 하지 않은 물과 공기처럼, 정보검색 기술은 이미 기술이 아닌 생활필수품으로 자리 잡았습니다. 3년 전에 보낸 이메일을 찾고, 스마트폰으로 맛집을 찾고, 장터에서 원하는 기능의 앱을 찾는 등의 일상생활에서 우리는 무의식중에 정보검색을 사용하고 있습니다. 이번 기획에서는 Google, Microsoft, Baidu와 같은 거대기업에서부터 초등학생까지 누구나 일상적으로 접하고 사용하는 정보검색 기술에 대해 생각해 보고자 합니다. 먼저 이번 리포트에서는 정보검색 기술과 서비스의 기본적인 사항들을 요약하고, 기업 내 정보의 허브로서 핵심적인 역할을 하고 있는 엔터프라이즈 정보검색에 대해 정리해보겠습니다. 그리고 다음 리포트에서는 인공지능과 지식 그래프(Knowledge Graph) 기술 등을 적극적으로 활용하고 있는 AI-driven 정보검색에 대해 말씀드리겠습니다.

IR101-1: 정보검색이란?

정보검색은 집합적인 정보로부터 원하는 내용과 관련이 있는 부분을 얻어 내는 행위를 의미합니다[1]. 그런데, 이 정의대로라면 독서나 질의응답도 일종의 정보검색으로 간주할 수 있으므로 논의를 위해 범위를 한정할 필요가 있습니다. 따라서, 여기서는 정보검색을 다음과 같은 조건을 만족하는 범위에서만 논하고자 합니다.

"자동화된 소프트웨어 시스템(검색엔진)을 통해 웹 문서, 이미지, 동영상, 기사, 연구논문 등과 같이 파일의 형태를 띠는 데이터에서 원하는 내용과 관련이 있는 부분을 찾는 행위"[2]

검색엔진은 오늘날과 같이 ‘정보의 과부하’인 상태를 완화하기 위한 핵심기술로서 메타 데이터나 색인에 의해 동작합니다[1]. 조금 더 자세하게 설명하면, 검색엔진은 크게 사람이 정리한 기준(메타 데이터)에 따라 배치된 웹사이트를 탐색(또는 항해)하는 방식과 기계적인 색인을 통해 데이터를 찾는 방식으로 나누며, 전자는 [그림 1]과 같이 웹사이트들을 미리 정의된 카테고리별로 분류해서 보여주는 ‘디렉토리 검색’ 서비스이고, 후자는 [그림 2]와 같이 텍스트 박스에 사용자가 찾고자 하는 내용을 입력하는 '색인' 서비스입니다.

야후 메인홈에서 디렉토리별 검색화면 [그림 1] Yahoo! Directory Search[3] 구글 메인홈에서 검색창이 있음 [그림 2] Google Search디렉토리 검색 방법은 데이터의 소스와 분량이 많지 않은 경우에 유용한 서비스로, 원하는 정보를 전문가의 분류를 통해 찾기 때문에 양질의 정보에 용이하게 접근할 수 있는 장점이 있습니다. 하지만, 사용자의 다양한 질의를 모두 직접 처리하기에는 역부족이기 때문에 2000년대 초반 이후에는 주로 제한적인 용도로 사용하고 있습니다. 색인 방법은 데이터 생성 주체가 다양해지고, 데이터의 양이 폭발적으로 많아지면서 보편적으로 사용하는 서비스로, 모든 데이터가 색인되어 있으므로 모든 데이터에 효과적으로 접근할 수 있는 장점이 있습니다. 다만, 모든 데이터에 접근하기 위해서는 효과적이고 효율적인 색인 알고리즘과 많은 컴퓨팅 자원이 필요하다는 점과 전문가의 체계적인 분류에 따른 검색 결과보다 만족도가 낮을 수 있다는 단점이 있습니다. 하지만, 색인 알고리즘의 성능과 컴퓨팅 파워의 비약적인 발전, 그리고 저장매체 가격의 급격한 하락에 따라 자연스럽게 색인 기반의 검색이 검색엔진의 주류가 되었습니다. 이후로 언급되는 정보검색은 모두 색인에 의한 방법임을 유념해주시기 바랍니다.

IR101-2: 정보검색 뼈대

색인에 의한 정보검색을 ‘사용자의 질의 안에 존재하는 키워드가 포함된 문서를 찾아주기’라고 정의한다면, 정보검색은 필수적으로 최소한 다음의 세 가지 요소를 갖추어야 합니다.

① 데이터 수집
② 데이터 저장
③ 검색 알고리즘

① 데이터 수집
데이터 소스로부터 대규모의 데이터를 수집 및 가공하는 과정으로, 검색할 데이터를 모은다는 표면적인 역할 이외에도 검색 결과의 품질을 지속적으로 유지하기 위한 방법으로 꾸준한 관리와 기술 고도화가 필요한 영역입니다. 데이터 수집 방법은 크게 두 가지로 나뉘는데, 하나는 공개된 문서를 저장하는 크롤링(crawling) 방식이고, 다른 하나는 협의된 데이터만을 저장하는 스크래핑(scraping) 방식입니다.

공개된 웹페이지 대상, 대규모로 자동수행, QC를 위한 중복관리 필수,  검플라이언스/보안고려필수 [그림 3] 크롤링 방식
(출처: http://prowebscraping.com/web-scraping-vs-web-crawling/)
공개 또는 협의된 데이터대상, 다양한 규모로 수행, 크롤링 동시 수행 가능, 다양한 파일 파서필요 [그림 4] 스크래핑 방식
(출처: http://prowebscraping.com/web-scraping-vs-web-crawling/)
② 데이터 저장
정보검색에서 핵심적으로 사용하는 저장 방법은 역색인(Inverted Index)입니다. 역색인 구조는 문서 집합 내에서 키워드의 내용과 위치를 연결하는 구조인데, 책의 마지막 부분에 있는 색인 또는 찾아보기를 생각하시면 쉽게 이해할 수 있습니다.

어떠한 키워드가 주어졌을때에, 어떠한 문서에서 나타났는지를 알려주는 자료구조. 쉽게 말해서 색인이 문서들에서 키워드를 뽑아내는 과정이라면 역색인은 어떠한 키워드에대해 요청(찾아달라고)이 들어왔을때 그 뽑아낸 키워드들을 바탕으로 그 키워드가 포함된 문서를 찾아내는 것입니다. [그림 5] 역색인 구조 예시
(출처: https://stackoverflow.com/questions/47003336/elasticsearch-index-sharding-explanation)
[그림 5]에서와 같이 Document 1~3에 존재하는 단어 중 불용어(Stop Word)에 해당하는 단어들을 제외하면, 문서 집합에 존재하는 각 단어가 어느 위치(문서)에 포함되어 있는지를 저장하는 구조가 역색인 구조입니다. 검색 경험을 잘 생각해보면 현재의 검색은 모두 이 구조에 기반하고 있다고 해도 과언이 아닙니다. 정보검색이 흔해진 만큼 역색인에 대한 관심이 높지 않은 것이 사실인데요, 개인적으로는 역색인 구조가 여전히 정보검색의 Α(Alpha)이자 Ω(Omega)이고, 인공지능과 지식 그래프 등의 기술과 결합하면서 새로운 가능성이 열린 흥미로운 분야라고 생각합니다.

③ 검색 알고리즘
사용자가 검색창에 질의를 입력하면 질의분석기는 질의 키워드를 추출한 후 역색인을 통해 키워드가 포함된 문서를 찾습니다. 그런데 질의는 두 개 이상의 키워드가 포함될 수 있기 때문에 찾은 문서들을 사용자에게 보여줄 수 있는 규칙이 필요합니다. 이 규칙에 따라 중요한 순서대로 문서를 나열한 결과는 우리가 흔히 보는 검색 결과입니다.
페이지랭크(PageRank)는 월드 와이드 웹과 같은 하이퍼링크 구조를 가지는 문서에 상대적 중요도에 따라 가중치를 부여하는 방법으로, 웹사이트 페이지의 중요도를 측정하기 위해 구글 검색에 쓰이는 알고리즘이다. 이 알고리즘은 서로간에 인용과 참조로 연결된 임의의 묶음에 적용할 수 있다 [그림 6] PageRank 예제
(출처: https://en.wikipedia.org/wiki/PageRank)
[그림 6] PageRank 예제 (그림 출처: https://en.wikipedia.org/wiki/PageRank) PageRank[4]는 현대 검색엔진의 근간인 알고리즘으로 많은 변형이 있지만, 기본적인 아이디어는 ‘하이퍼링크를 통해 나(문서)를 가리키는 문서가 많을수록 더 중요하다’고 판단하는 것입니다. 예를 들어, [그림 6]에서 문서 B는 문서 A보다 더 중요하다고 평가하고, 따라서 검색 결과에서는 문서 B에게 더 높은 랭킹을 부여합니다.
페이지 랭크는 더 중요한 페이지는 더 많은 다른 사이트로부터 링크를 받는다는 관찰에 기초하고 있다. 예를 들어 페이지 A가 페이지 B,C,D 로 또한 페이지 랭크에서는 랜덤 서퍼(Random Surfer)라는 페이지를 임의로 방문하며 탐색하는 모델을 가정한다. 이 모델에서는 위 예의 A페이지를 방문한 서퍼는 A페이지를 보고 만족하여 탐색을 중단하거나, 혹은 A페이지에서 만족하지 못하여 다른 페이지를 방문할 것이다. 페이지 랭크는 이와 같은 방법을 통해 페이지간 페이지 랭크 값을 주고 받는 것을 반복하다보면, 전체 웹 페이지가 특정한 페이지 랭크 값을 수렴한다는 사실을 통해 각 페이지의 최종 페이지 랭크를 계산한다. [그림 7] PageRank 계산[그림 7]은 기본적인 PageRank를 계산하는 방법을 나타내고 있습니다. 왼쪽 문서의 PageRank는 이 문서를 가리키고 있는 문서 A–E의 PageRank 값들의 상대적인 기여도(문서 A–E로 유입되는 각 in-link의 개수)에 의해 결정됩니다.


엔터프라이즈 정보검색

엔터프라이즈 정보검색은 관점이 다양해서 한마디로 정의하기는 어렵지만, 웹 정보검색과의 구분은 어느 정도 가능합니다. 웹 정보검색이 공개된 웹 문서와 로컬 PC의 파일 등을 대상으로 오픈된 도메인에 대한 검색을 제공하는 반면, 엔터프라이즈 정보검색은 기업 내부의 파일시스템, 인트라넷, 문서관리시스템, 이메일, 각종 데이터베이스 등에 존재하는 다양한 형태의 정형/비정형 데이터와 문서뿐만 아니라 기업 경영에 관련된 오픈 데이터(웹 데이터, Social Network 데이터 등)를 대상으로 제한된 도메인에 대한 통합 검색을 제공합니다. 또한, 추가적으로 다양한 사용자 Segment에 대한 보안, 권한 등도 중요한 역할을 차지합니다. 최근에는 기업 내외 정보에 대한 One-Stop 창구로서의 역할과 모든 협업 도구의 중심 역할을 하고 있습니다. 특히, Covid-19 상황이 장기화되며 재택/원격 근무가 증가하면서 업무의 단일접점으로서 엔터프라이즈 정보검색의 중요성이 증가하고 있습니다.

마이크로소프트 엔터프라이즈 서치 화면에서 검색창에 입력 [그림 8] Microsoft Enterprise Search
(출처: https://resources.techcommunity.microsoft.com/microsoft-search/)
엘라스틱 엔터프라이즈 서치화면에서 검색창에 입력 [그림 9] Elasticsearch Enterprise Search
(출처: https://www.elastic.co/blog/betting-on-elasticsearch-for-enterprise-wide-search-with-ba-insight)

미리 보기: AI-driven 정보검색이란?

정보검색에 대한 사용자들의 희망은 다양하겠지만 핵심은 아래와 같은 생각이 아닐까 합니다.

개떡같이 말해놓고 찰떡같이알아들으라뇨 #사원들은_사투중 #쑥떡쑥떡 #쿵떡쿵떡 #이러쿵저러쿵 #언어테러 [그림 10] 출처: 네이버 불개미상회 직장생활 59화다음 리포트에서는 인공지능과 지식 그래프 등 새로운 기술이 정보검색을 어떻게 변화시키고 있는지, 그래서 엔터프라이즈 정보검색은 어떻게 발전해야 할지를 말씀드리겠습니다.

# References
[1] https://en.wikipedia.org/wiki/Information_retrieval
[2] https://en.wikipedia.org/wiki/Web_search_engine
[3] L. Introna and H. Nissenbaum, “The Politics of Search Engines,” IEEE Spectrum, Vol. 37, No. 6, pp. 26–27, June 2000.
[4] S. Brin and L. Page, “The Anatomy of a Large-Scale Hypertextual Web Search Engine,” In Proc. of the 7th Int’l Conf. on World Wide Web (WWW), pp. 107–117, Apr. 1998.



▶  해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 기고자에게 저작권이 있습니다.
▶  해당 콘텐츠는 사전 동의 없이 2차 가공 및 영리적인 이용을 금하고 있습니다.


공유하기 열기
김민수
김민수 인공지능/애널리틱스 전문가

삼성SDS AI선행연구Lab

KAIST에서 데이터베이스와 데이터마이닝을 전공하여 박사학위를 취득했습니다. 이후 BI플랫폼 개발과 다양한 데이터 분석을 진행했으며, 현재는 삼성SDS AI선행연구Lab의 Lab장으로서, 자연어이해와 이미지인식을 기반으로 하는 엔터프라이즈 AI, 데이터 분석 기술을 연구, 개발하고 있습니다.