잠재 의미 분석(LSI)이란? 검색엔진이 동의어를 이해하는 방법
부스트키워드 팀
검색 데이터로 키워드의 검색량, 트렌드, 검색 의도를 파악하고 마케팅 의사결정을 돕는 도구 부스트키워드를 만듭니다.
"자동차"라고 검색했는데, 정작 "승용차"라는 단어만 사용한 훌륭한 문서는 검색 결과에 나타나지 않는다면 어떨까요? 사람이 보기엔 두 단어가 명백히 같은 의미인데, 컴퓨터는 글자가 다르다는 이유만으로 전혀 다른 단어로 취급해버립니다. 이런 문제를 해결하기 위해 등장한 기법이 잠재 의미 분석(Latent Semantic Indexing, LSI)입니다. 이 글에서는 LSI가 어떤 발상으로 이 문제를 풀어내는지 예제와 함께 알아봅니다.
TF-IDF의 숨은 약점: 단어 그 자체만 본다는 것
"자동차"로 검색했는데 "승용차" 문서를 못 찾는 문제
앞서 살펴본 TF-IDF나 BM25 같은 방법들은 모두 단어 그 자체가 정확히 일치하는지를 기준으로 문서와 검색어의 관련성을 계산합니다. 그런데 이 방식에는 근본적인 한계가 있습니다. 바로 표현은 다르지만 의미가 같거나 비슷한 단어를 전혀 다른 것으로 취급한다는 점입니다. "자동차"와 "승용차", "컴퓨터"와 "PC"처럼 우리는 일상적으로 같은 대상을 여러 단어로 바꿔 표현하지만, 컴퓨터에게는 이 단어들이 그저 서로 아무런 관련이 없는 글자들의 나열일 뿐입니다.
표현은 다르지만 의미가 같은 단어들, 동의어 문제
이러한 동의어 문제는 검색의 품질을 크게 떨어뜨릴 수 있습니다. 사용자가 입력한 단어와 정확히 일치하는 단어를 사용하지 않았다는 이유만으로, 실제로는 매우 관련성 높은 문서가 검색 결과에서 누락될 수 있기 때문입니다.
잠재 의미 분석(LSI)이란 무엇인가
단어 하나하나가 아니라 '의미의 묶음'을 찾아낸다는 발상
LSI는 이 문제를 해결하기 위해 발상을 전환합니다. 단어 하나하나를 개별적으로 보는 대신, 여러 단어들이 문서 전체에서 함께 어떻게 사용되는지 그 '패턴'을 살펴보고, 이 패턴을 바탕으로 단어들 사이에 숨어 있는 의미적 관계를 찾아내려는 것입니다.
함께 자주 등장하는 단어들 사이의 숨은 관계
이 발상의 바탕에는 "의미가 비슷한 단어들은 비슷한 문맥에서, 비슷한 다른 단어들과 함께 자주 등장하는 경향이 있다"는 직관이 깔려 있습니다. 예를 들어 "자동차"라는 단어가 등장하는 문서에는 "엔진", "연비", "주행"이라는 단어도 자주 함께 등장하고, "승용차"라는 단어가 등장하는 문서에도 마찬가지로 "엔진", "연비", "주행"이라는 단어가 자주 함께 등장한다면, LSI는 이 두 단어("자동차"와 "승용차")가 서로 의미적으로 밀접하게 관련되어 있다는 것을 통계적으로 추론해낼 수 있습니다.
단어-문서 행렬: 데이터를 표로 정리하기
문서와 단어를 하나의 커다란 표로 나타내기
LSI를 계산하기 위해서는 먼저 전체 문서 집합을, 가로축은 문서, 세로축은 단어로 하는 하나의 거대한 표(행렬)로 정리합니다. 이 표의 각 칸에는 해당 단어가 해당 문서에 얼마나 자주 등장하는지(또는 TF-IDF 값 같은 가중치)가 기록됩니다.
이 표 안에 숨어 있는 패턴을 어떻게 찾아낼까
이렇게 만들어진 표는 매우 크고 복잡하지만, 그 안에는 "어떤 단어들이 서로 비슷한 패턴으로 등장하는가"에 대한 정보가 숨어 있습니다. LSI는 이 거대한 표를 수학적으로 분석해서, 표면적으로 드러나지 않는 이 숨은 패턴을 찾아내는 작업을 수행합니다.
특이값 분해(SVD): 핵심 의미만 뽑아내는 수학적 도구
복잡한 표를 몇 개의 핵심 축으로 압축한다는 개념
이 작업에 사용되는 수학적 도구가 특이값 분해(Singular Value Decomposition, SVD)입니다. 복잡한 수식을 걷어내고 직관적으로 설명하면, SVD는 수만 개의 단어와 수백만 개의 문서로 이루어진 거대하고 복잡한 표를, 훨씬 적은 수의 '핵심 주제 축' 몇 개로 압축해서 다시 표현하는 방법입니다. 예를 들어 원래는 수만 개의 단어 각각을 하나씩 살펴봐야 했다면, SVD를 거치고 나면 "자동차 관련 주제", "요리 관련 주제", "스포츠 관련 주제"처럼 훨씬 적은 수의 큰 주제 축만으로 문서와 단어의 관계를 요약할 수 있게 됩니다.
차원을 줄이면서도 중요한 정보는 남기는 방식
이렇게 차원을 확 줄이는 과정에서, 사소하고 우연한 세부 정보는 자연스럽게 걸러지고, 데이터 전체를 관통하는 굵직한 의미 관계만 남게 됩니다. "자동차"와 "승용차"가 비록 다른 단어이지만, 이 둘이 압축된 핵심 주제 축 위에서는 매우 가까운 위치에 놓이게 되는 것이 바로 이 과정 덕분입니다.
간단한 예제로 이해하는 LSI의 효과
"자동차"와 "승용차"가 같은 문서들에 자주 함께 등장한다면
다음과 같이 문서 몇 개가 있다고 가정해봅시다. 문서 1에는 "자동차"와 "엔진", "연비"라는 단어가, 문서 2에는 "승용차"와 "엔진", "연비"라는 단어가, 문서 3에는 "승용차"와 "주행", "연비"라는 단어가 함께 등장합니다. "자동차"라는 단어 자체는 문서 2와 3에 전혀 등장하지 않지만, "자동차"가 등장하는 문서(1)와 "승용차"가 등장하는 문서(2, 3)에 공통적으로 "엔진", "연비" 같은 단어가 자주 함께 나타난다는 패턴이 존재합니다.
검색어에 없는 단어가 포함된 문서도 찾아지는 과정
LSI는 이러한 패턴을 학습해서, "자동차"와 "승용차"를 유사한 의미 축 위에 놓습니다. 그 결과 사용자가 "자동차"라고 검색했을 때, "자동차"라는 단어가 문서 안에 단 한 번도 등장하지 않는 문서 2나 문서 3도, 의미적으로 관련이 깊다고 판단해 검색 결과에 함께 포함시킬 수 있게 됩니다. 이는 단순히 단어의 등장 여부만 확인하는 TF-IDF나 BM25로는 할 수 없는 일입니다.
LSI의 한계와 이후 발전된 기법들
LSI는 동의어 문제를 통계적으로 해결하는 획기적인 접근이었지만, 몇 가지 한계도 있습니다. 계산 대상이 되는 표의 크기가 매우 커지면 SVD 계산에 상당한 컴퓨팅 자원이 필요하고, 새로운 문서가 추가될 때마다 전체 계산을 다시 해야 하는 경우가 많아 실시간으로 반영하기 어렵습니다. 이러한 한계 때문에 이후에는 신경망을 기반으로 단어와 문서의 의미를 벡터로 표현하는 임베딩(Embedding) 기술이 등장해, LSI가 추구했던 목표를 더욱 정교하고 효율적으로 계승하고 있습니다.
실제로 어디에 쓰일까
검색, 문서 추천, 표절 검사 등에서의 의미 기반 매칭
LSI의 발상은 단순히 정확히 일치하는 단어를 찾는 것을 넘어, 의미적으로 유사한 문서를 찾아내야 하는 다양한 분야에 응용되어 왔습니다. 표현은 다르지만 내용이 비슷한 문서를 찾아내는 표절 검사나 유사 문서 추천, 검색어와 정확히 일치하지 않아도 관련성 높은 결과를 보여주는 검색 개선 등이 대표적인 예입니다.
최신 임베딩(Embedding) 기술과의 관계
오늘날 널리 쓰이는 임베딩 기술은, 단어나 문장을 하나의 고정된 크기의 숫자 벡터로 표현해 의미가 비슷한 것끼리는 벡터 공간에서 가까운 위치에 놓이도록 학습하는 방식입니다. 이는 "표면적인 단어가 아니라 숨은 의미를 기준으로 유사성을 판단한다"는 LSI의 핵심 발상을, 딥러닝이라는 더 강력한 도구로 계승하고 발전시킨 것이라고 볼 수 있습니다.
정리하며
LSI는 "단어의 표면적인 형태가 아니라, 문서 전체에서 단어들이 함께 사용되는 패턴을 통해 숨은 의미 관계를 찾아낼 수 있다"는 아이디어에서 출발한 기법입니다. 특이값 분해라는 수학적 도구를 이용해 방대한 단어-문서 관계를 소수의 핵심 주제로 압축함으로써, 동의어처럼 표현은 다르지만 의미가 같은 단어들을 서로 연결지을 수 있게 해줍니다. 오늘날 인공지능 기술에서 널리 쓰이는 임베딩 개념의 뿌리를 이해하는 데에도, LSI는 좋은 출발점이 되어줍니다.
Q.LSI와 최신 AI의 '임베딩'은 어떤 관계인가요?
Q.LSI를 사용하면 검색 속도가 느려지지 않나요?
Q.LSI는 지금도 실제로 쓰이고 있나요?
Written by

부스트키워드 팀
검색 데이터로 키워드의 검색량, 트렌드, 검색 의도를 파악하고 마케팅 의사결정을 돕는 도구 부스트키워드를 만듭니다.
