Vector space model or term vector model is an algebraic model for representing text documents (and any objects, in general) as vectors of identifiers (such as index terms). It is used in information filtering, information retrieval, indexing and relevancy rankings.  Its first use was in the SMART Information Retrieval System.

Definitions
Documents and queries are represented as vectors.

Each dimension corresponds to a separate term. If a term occurs in the document, its value in the vector is non-zero. Several different ways of computing these values, also known as (term) weights, have been developed. One of the best known schemes is tf-idf weighting (see the example below).

The definition of term depends on the application. Typically terms are single words, keywords, or longer phrases. If words are chosen to be the terms, the dimensionality of the vector is the number of words in the vocabulary (the number of distinct words occurring in the corpus).

Vector operations can be used to compare documents with queries.

Applications

Relevance rankings of documents in a keyword search can be calculated, using the assumptions of document similarities theory, by comparing the deviation of angles between each document vector and the original query vector where the query is represented as a vector with same dimension as the vectors that represent the other documents.

In practice, it is easier to calculate the cosine of the angle between the vectors, instead of the angle itself:

Where  is the intersection (i.e. the dot product) of the document (d2 in the figure to the right) and the query (q in the figure) vectors,  is the norm of vector d2, and  is the norm of vector q. The norm of a vector is calculated as such:

Using the cosine the similarity between document dj and query q can be calculated as:

As all vectors under consideration by this model are element-wise nonnegative, a cosine value of zero means that the query and document vector are orthogonal and have no match (i.e. the query term does not exist in the document being considered). See cosine similarity for further information.

Term frequency-inverse document frequency weights
In the classic vector space model proposed by Salton, Wong and Yang  the term-specific weights in the document vectors are products of local and global parameters. The model is known as term frequency-inverse document frequency model. The weight vector for document d is , where

and
  is term frequency of term t in document d (a local parameter)
  is inverse document frequency (a global parameter).  is the total number of documents in the document set;  is the number of documents containing the term t.

Advantages
The vector space model has the following advantages over the Standard Boolean model:

Simple model based on linear algebra
Term weights not binary
Allows computing a continuous degree of similarity between queries and documents
Allows ranking documents according to their possible relevance
Allows partial matching
Most of these advantages are a consequence of the difference in the density of the document collection representation between Boolean and term frequency-inverse document frequency approaches. When using Boolean weights, any document lies in a vertex in a n-dimensional hypercube. Therefore, the possible document representations are  and the maximum Euclidean distance between pairs is . As documents are added to the document collection, the region defined by the hypercube's vertices become more populated and hence denser. Unlike Boolean, when a document is added using term frequency-inverse document frequency weights, the inverse document frequencies of the terms in the new document decrease while that of the remaining terms increase. In average, as documents are added, the region where documents lie expands regulating the density of the entire collection representation. This behavior models the original motivation of Salton and his colleagues that a document collection represented in a low density region could yield better retrieval results.

Limitations
The vector space model has the following limitations:

Long documents are poorly represented because they have poor similarity values (a small scalar product and a large dimensionality)
Search keywords must precisely match document terms; word substrings might result in a "false positive match"
Semantic sensitivity; documents with similar context but different term vocabulary won't be associated, resulting in a "false negative match".
The order in which the terms appear in the document is lost in the vector space representation.
Theoretically assumes terms are statistically independent. 
Weighting is intuitive but not very formal.

Many of these difficulties can, however, be overcome by the integration of various tools, including mathematical techniques such as singular value decomposition and lexical databases such as WordNet.

Models based on and extending the vector space model
Models based on and extending the vector space model include:
 Generalized vector space model
 Latent semantic analysis
 Term
 Rocchio Classification
 Random indexing
 Search Engine Optimization

Software that implements the vector space model
The following software packages may be of interest to those wishing to experiment with vector models and implement search services based upon them.

Free open source software
 Apache Lucene. Apache Lucene is a high-performance, open source, full-featured text search engine library written entirely in Java.
 OpenSearch (software) and Solr : the 2 most famous search engine software (many smaller exist) based on Lucene.
 Gensim is a Python+NumPy framework for Vector Space modelling. It contains incremental (memory-efficient) algorithms for term frequency-inverse document frequency, Latent Semantic Indexing, Random Projections and Latent Dirichlet Allocation.
 Weka. Weka is a popular data mining package for Java including WordVectors and Bag Of Words models.
 Word2vec. Word2vec uses vector spaces for word embeddings.

Further reading
 G. Salton (1962), "Some experiments in the generation of word and document associations" Proceeding AFIPS '62 (Fall) Proceedings of the December 4–6, 1962, fall joint computer conference,  pages 234–250. (Early paper of Salton using the term-document matrix formalization)
 G. Salton, A. Wong, and C. S. Yang (1975), "A Vector Space Model for Automatic Indexing" Communications of the ACM, vol. 18, nr. 11, pages 613–620. (Article in which a vector space model was presented)
 David Dubin (2004), The Most Influential Paper Gerard Salton Never Wrote (Explains the history of the Vector Space Model and the non-existence of a frequently cited publication)
 Description of the vector space model
 Description of the classic vector space model by Dr E. Garcia
 Relationship of vector space search to the "k-Nearest Neighbor" search

See also

References
벡터 공간 모델(―空間―, ) 또는 단어 벡터 모델(單語―, )은 텍스트 문서를 단어 색인 등의 식별자로 구성된 벡터로 표현하는 대수적 모델이다. 정보 검색, 정보 필터링 및 검색 엔진의 색인이나 연관도 순위에 사용된다. 이 모델이 최초로 적용된 것은 코넬 대학교의 게오르그 셀튼 교수 연구실의 SMART 정보 검색 시스템이었다.

정의 
문서와 질의는 다음과 같이 벡터로 표현된다.

각각의 차원은 개별 단어에 대응된다. 어떤 단어가 문서에 포함되면, 해당 단어는 0이 아닌 벡터값을 갖는다. 단어 가중치라고도 불리는 이 값을 산출하는 방법에는 여러 가지가 있다. 가장 널리 알려진 방식은 TF-IDF 방식이다.(아래 사례 항목 참조)

벡터 공간 모델에서 단어(term)의 의미는 그 적용 대상에 따라 달라진다. 일반적으로는 하나의 단어(word)나 키워드, 또는 좀더 긴 구를 의미한다. 벡터의 차원의 크기는 말뭉치에 포함된 단어의 개수와 같다.

벡터 연산은 문서들간의 유사성을 비교하는 데에도 사용될 수 있다.

응용

키워드 검색에서 사용되는 문서의 연관도는 문서 유사도 이론으로 계산될 수 있다. 문서 유사도 이론에서 문서 유사도는 문서 벡터간의 각도의 편차를 이용하여 산출된다.

실제 적용시에는, 문서 벡터간의 각도 자체보다는 다음과 같이 각도의 코사인값을 이용하는 것이 더 간단하다.

는 문서 벡터(오른쪽 그림의 d2)와 질의 벡터(그림의 q)의 교차점(스칼라곱)에 해당하며, 는 벡터 d2의 노름, 는 벡터 q의 노름이다. 벡터의 노름의 다음과 같이 계산된다.

벡터의 모든 요소는 음수가 아닌 값이므로, 코사인값이 0인 경우 질의 벡터와 문서 벡터가 직교하며 겹치는 부분이 전혀 없음(서로 동일하게 포함하고 있는 단어가 하나도 없음)을 의미한다. 벡터간 각도의 코사인값을 이용한 유사도 계산에 대해서는 코사인 유사도를 참조하라.

사례: TF-IDF 가중치
제라드 솔튼, 웡(Wong), 그리고 양(Yang)의 연구에서 제안된 전통적 벡터 공간 모델에서, 문서내 특정 단어의 가중치는 지역 매개변수와 전역 매개변수의 곱으로 계산된다. 이러한 모델을 단어 빈도-역 문서 빈도 모델이라 한다. 문서 d의 가중치 벡터는 이며, 여기서 는 다음과 같다.

그리고,
 는 문서 d에서 단어 t의 빈도(지역 매개변수),
 는 역 문서 빈도(전역 매개변수)이다. 는 문서 집합내 전체 문서의 개수이며, 는 단어 t를 포함하는 문서의 개수이다.

문서 dj와 질의 q의 코사인 유사도를 이용하여 다음과 같이 문서간 유사도를 계산할 수 있다.

장점
벡터 공간 모델은 불린 모델에 비해 다음과 같은 장점을 지닌다.

선형 대수에 기반한 단순한 모델
비(非)이진 단어 가중치
문서와 질의간의 유사도를 연속적인 값으로 계산 가능
연관도에 의한 문서 순위 결정 가능
부분 일치 고려 가능

한계
벡터 공간 모델은 다음과 같은 한계를 지닌다.

길이가 긴 문서는 낮은 유사도값(작은 스칼라곱과 큰 차원)으로 인해 제대로 표현할 수 없다.
검색 키워드는 문서내의 단어와 정확히 일치해야 한다. 부분 일치하는 단어는 거짓 양성 결과를 가져올 수 있다.
의미 유사성 관련 ― 유사한 내용을 담고 있더라도 사용된 단어들 다르다면 그 문서들의 유사성은 매우 낮게 나오며, 이는 거짓 음성 결과에 해당한다.
단어가 나타나는 순서에 관한 정보가 활용되지 못한다.
단어들이 통계적으로 서로 독립적이라는 이론적 가정에 기반하고 있다.
가중치 계산 방식이 직관적이기는 하지만 포멀한 형식이 아니다.

벡터 공간 모델의 이러한 여러 문제점들은 다양한 방법으로 극복될 수 있다. 여기에는 특잇값 분해와 같은 수학적 기법과 워드넷과 같은 어휘 데이터베이스 활용이 포함된다.

관련 모델
벡터 공간 모델에 기반하거나 이를 확장한 모델에는 다음과 같은 것들이 있다.
 일반화 벡터 공간 모델
 잠재 의미 분석
 단어 식별
 로치오 분류
 랜덤 색인

관련 소프트웨어
다음의 소프트웨어들은 벡터 공간 모델을 연구하거나 구현할 경우 참고가 될 수 있다.

무료 오픈 소스 소프트웨어
 Apache Lucene: 전체가 자바로 작성된 고성능 다기능 텍스트 검색 엔진 라이브러리
 SemanticVectors: Apache Lucene으로 생성한 단어-문서 매트릭스에 랜덤 프로젝션 알고리즘을 적용해 구현한 의미 벡터 색인(잠재 의미 분석과 유사)
 Gensim: 벡터 공간 모델링을 위한 Python+NumPy 프레임워크. TF-IDF, 잠재 의미 색인, 국지성 민감 해싱 및 잠재 디리클레 할당을 위한 점증적(메모리-효율적) 알고리즘을 포함함
 Weka: WordVectords 및 단어주머니 모델을 자바로 구현한 널리 알려진 데이터 마이닝 패키지
 Compressed vector space in C++ by Antonio Gulli
 Text to Matrix Generator (TMG) : 다음과 같은 다양한 텍스트 마이닝 작업에 사용될  수 있는 MATLAB 툴박스 - 1)색인, 2)검색, 3)차원 절감, 4)클러스터링, 5)분류. TMG의 대부분은 MATLAB으로 작성되었으며 일부는 Perl로 작성되었다. LSI, clustered LSI, NMF 및 다른 방식들을 포함한다.
 SenseClusters: 잠재 의미 분석 및 단어 동시발생 행렬을 이용한 텍스트 및 단어 클러스터링을 지원하는 오픈소스 패키지
 S-Space Package: 통계적 의미론과 관련한 탐색 및 작업을 위한 알고리즘 모음

더 읽어 보기
 G. Salton, A. Wong, and C. S. Yang (1975), "A Vector Space Model for Automatic Indexing," Communications of the ACM, vol. 18, nr. 11, pages 613–620. (벡터 공간 모델이 소개된 논문)
 David Dubin (2004), "The Most Influential Paper Gerard Salton Never Wrote": (벡터 공간 모델의 역사 및 잘못된 관련 논문 인용에 대한 지적)
 벡터 공간 모델에 대한 설명
 전통적 벡터 공간 모델에 대한 설명
 "k-Nearest Neighbor" 탐색과 벡터 공간 모델의 관계

같이 보기 
 단어주머니 모델
 최근방 탐색
 복합어 처리
 역색인
 w-슁글링
 고윳값

각주