벡터 공간 모델은 문서와 질의를 벡터로 표현하여 문서 간의 유사성을 계산하는 정보 검색 모델이다. 각 단어를 차원으로 표현하며, 단어의 가중치는 TF-IDF 방식을 사용하여 계산한다. 이 모델은 문서의 관련성 순위 결정, 코사인 유사도 계산 등을 통해 키워드 검색에 활용된다. 벡터 공간 모델은 선형대수에 기반하며, 불린 모델보다 문서의 관련성을 더 정확하게 평가할 수 있지만, 긴 문서의 처리, 단어 일치 문제, 단어 순서 정보 부재 등의 한계를 갖는다. 이러한 한계를 극복하기 위해 특잇값 분해, 어휘 데이터베이스 활용 등의 방법이 사용되며, 잠재 의미 분석, 로치오 알고리즘 등 관련 모델들이 존재한다.
더 읽어볼만한 페이지
벡터 공간 모델 - 명시 의미 분석 명시 의미 분석은 텍스트 모음에서 단어와 문서 간 관계를 분석하여 단어의 의미적 관련성을 추정하는 방법으로, 위키백과 데이터를 활용해 단어를 개념 벡터로 표현하고 코사인 유사도 등으로 관련성을 측정하며, 문서 관련성 계산 등 다양한 분야에 응용된다.
벡터 공간 모델 - 일반화 벡터 공간 모델 일반화 벡터 공간 모델은 단어 간의 상관도를 고려하여 문서와 질의의 유사도를 계산하며, 단어 벡터를 여러 벡터의 선형 조합으로 표현하고 단어 간의 의미적 상관도를 계산하여 의미 정보를 처리한다.
벡터 공간 모델
개요
유형
정보 검색 모델
개발 시기
1960년대 후반
개발자
제라드 살톤, 앤드루 윙거드, 마이클 맥길
작동 방식
기본 아이디어
텍스트 문서를 벡터로 표현
벡터 요소
문서에 나타나는 용어의 가중치
가중치 부여 방식
용어 빈도 (TF) 역 문서 빈도 (IDF)
유사도 측정
코사인 유사도 유클리드 거리
특징
장점
단순하고 직관적인 모델 부분 매칭 및 순위화된 결과 제공 용어 가중치 부여를 통한 관련성 향상
단점
용어 간의 의미적 관계 무시 고차원 벡터 공간으로 인한 계산 복잡도 증가 동의어 및 다의어 처리 미흡
활용 분야
정보 검색
웹 검색, 문서 검색
텍스트 마이닝
문서 분류, 군집화
자연어 처리
의미 분석, 정보 추출
관련 개념
잠재 의미 분석 (LSA)
차원 축소를 통한 의미적 정보 추출
확률적 잠재 의미 분석 (PLSA)
확률 모델 기반의 잠재 의미 분석
잠재 디리클레 할당 (LDA)
베이즈 통계 기반의 토픽 모델링
2. 정의
'''벡터 공간 모델'''(Vector Space Model, VSM)은 정보 검색, 정보 필터링, 자연어 처리 등에서 문서나 질의와 같은 텍스트 데이터를 수학적인 벡터로 표현하는 대수적 모델이다. 이 모델에서 각 문서는 단어들의 집합으로 간주되며, 각 단어는 벡터의 한 차원에 해당한다.[2]
문서 내 특정 단어의 중요도나 출현 빈도 등은 해당 차원의 값, 즉 단어 가중치(term weight)로 표현된다. 어떤 단어가 문서에 포함되어 있다면, 그 문서 벡터에서 해당 단어에 대응하는 값은 일반적으로 0이 아닌 값을 갖는다. 단어 가중치를 계산하는 방법에는 여러 가지가 있으며, TF-IDF가 대표적인 예시다.
이렇게 표현된 벡터들을 이용한 벡터 연산을 통해 문서들 간의 유사도를 계산하거나, 사용자의 질의 벡터와 문서 벡터 간의 유사도를 비교하여 관련성 높은 문서를 검색하는 등의 작업이 가능하다.[2] '단어(term)'의 정의는 응용 분야에 따라 달라질 수 있으며, 단순한 단어(word)뿐만 아니라 키워드나 더 긴 구(phrase)가 될 수도 있다. 벡터의 차원 크기는 분석 대상이 되는 전체 문서 집합(말뭉치)에 포함된 고유한 단어의 총 개수와 같다.
2. 1. 단어 가중치 (Term Weighting)
문서와 질의는 다음과 같이 벡터로 표현된다.
:
:
각 차원은 개별 단어(term)에 해당한다. 어떤 단어가 문서에 포함되어 있다면, 그 문서 벡터에서 해당 단어에 대응하는 값은 0이 아니다. 이 값을 단어 가중치(term weight)라고 부르며, 문서 내에서 단어의 중요도를 나타낸다. 단어 가중치를 계산하는 방법에는 여러 가지가 있으며, 가장 널리 알려진 방식은 TF-IDF 가중치 계산법이다.[2]
벡터 공간 모델에서 '단어(term)'의 의미는 적용 대상에 따라 달라질 수 있다. 일반적으로는 하나의 단어(word), 키워드, 또는 더 긴 구(phrase)를 의미한다. 벡터의 차원 크기, 즉 벡터가 포함하는 요소의 개수는 분석 대상이 되는 전체 문서 집합(말뭉치)에 포함된 고유한 단어의 총 개수와 같다.
단어 가중치를 표현하는 한 가지 방법은 단어-문서 행렬(term-document matrix)이다. 이는 벡터 공간 모델에 의한 검색을 수행할 때 자주 사용되는 메타데이터 형식이다. 예를 들어, 다음과 같은 행렬을 생각할 수 있다.
이 행렬에서 각 행은 단어(t)를, 각 열은 문서(d)를 나타낸다. 행렬의 각 요소 값(''wij'')은 해당 문서(''di'')에 특정 단어(''tj'')가 나타나는 빈도나 중요도를 나타내는 가중치이다. 예를 들어, 위 행렬에서 문서 ''d2''에 단어 ''t1''은 가중치 2를 가지며, 단어 ''t3''은 가중치 0을 갖는다(즉, 나타나지 않음). 단순히 단어의 출현 횟수(''n'')를 가중치로 사용할 수도 있지만(단어 가방 모형), TF-IDF와 같은 더 정교한 알고리즘을 통해 계산된 가중치를 사용하는 경우가 많다.
3. 응용
벡터 공간 모델은 키워드 검색에서 문서의 관련성 순위를 매기는 데 널리 사용된다. 이 모델은 문서 유사도 이론에 기반하며, 각 문서를 벡터로 표현하고 사용자의 질의 역시 동일한 벡터 공간상의 벡터로 나타낸다.
문서와 질의 간의 유사도는 이들 벡터 사이의 각도를 통해 측정할 수 있다. 실제 적용 시에는 계산의 편의성을 위해 각도 자체보다는 각도의 코사인 값을 이용하는 코사인 유사도 방식이 주로 사용된다. 코사인 값이 클수록 두 벡터, 즉 문서와 질의의 방향이 비슷하며 이는 곧 높은 유사도를 의미한다. 반대로 코사인 값이 0이면 두 벡터가 직교함을 나타내며, 이는 질의에 사용된 단어가 해당 문서에 전혀 존재하지 않음을 뜻한다.[2]
3. 1. 유사도 계산
벡터 공간 모델에서의 문서와 질의 벡터 표현
키워드 검색에서 문서의 관련성 순위는 문서 유사도 이론을 바탕으로 계산될 수 있다. 벡터 공간 모델에서는 문서 유사도를 각 문서 벡터와 질의 벡터 사이의 각도 편차를 비교하여 산출한다. 질의는 다른 문서 벡터와 동일한 차원을 가진 벡터로 표현된다.
실제 적용 시에는 벡터 간 각도 자체보다는 각도의 코사인 값을 이용하는 것이 더 간편하다. 문서 dj와 질의 q 사이의 코사인 유사도는 다음과 같이 계산할 수 있다.
:
여기서 는 문서 벡터()와 질의 벡터()의 내적(스칼라곱)이다. 는 벡터 의 노름이며, 는 벡터 의 노름이다. 벡터의 노름은 다음과 같이 계산된다.
:
이 모델에서 고려하는 모든 벡터는 각 요소가 음수가 아니므로, 코사인 값이 0이면 질의 벡터와 문서 벡터가 직교하며 일치하는 항목이 없음을 의미한다. 즉, 질의에 사용된 단어가 해당 문서에 존재하지 않는다는 뜻이다. 더 자세한 내용은 코사인 유사도 문서에서 확인할 수 있다.[2]
4. 사례: TF-IDF 가중치
제라드 솔튼, 웡(Wong), 양(Yang)이 제안한 고전적인 벡터 공간 모델에서는 문서 내 특정 용어의 가중치를 지역 매개변수와 전역 매개변수의 곱으로 계산한다.[4][3] 이 모델은 단어 빈도-역 문서 빈도(TF-IDF) 모델로 알려져 있다. TF-IDF는 특정 용어가 한 문서 내에서 얼마나 자주 등장하는지(단어 빈도, TF, Term Frequency)와 그 용어가 전체 문서 집합에서는 얼마나 희귀한지(역 문서 빈도, IDF, Inverse Document Frequency)를 고려하여 가중치를 계산하는 방식이다.
문서 ''d''의 가중치 벡터는 로 표현되며, 여기서 각 차원은 개별 용어(단어, 키워드, 구절 등)에 해당한다. 벡터의 각 요소인 가중치 는 문서 ''d'' 내의 특정 용어 ''t''에 대한 TF-IDF 값이며, 다음과 같이 계산된다.
:
}
여기서 각 항목의 의미는 다음과 같다.
(Term Frequency, 단어 빈도): 문서 ''d''에서 용어 ''t''가 나타나는 빈도이다. 이는 지역 매개변수에 해당한다.