Vector Space Model
Vector Space Model 또는 Term Vector Model은 문서 혹은 단어를 Vector 형태로 나타내는 것이며 텍스트 문서를 단어 색인등의 식별자로 구성된 벡터로 표현하는 대수적 모델이다. 정보검색, 정보 필터링 및 검색 엔진의 색인이나 연관도 순위에 사용된다.
이러한 Vector Space Model에서 어떠한 문서 는 -dimensional vector로 표현된다. 이러한 dimension은 서로 구분되는 Term 으로 되어있고, 은 모든 문서 집합에서 사용되는 Term의 개수이다.
문서 가 term 를 포함하지 않으면 는 0이다.
문서를 Vector Space Model에 문서를 표현하는 여러가지 방법이 있는데 그 중에 Boolean Model을 이용해 간단하게 설명해보자면,
Boolean Model
Boolean vector 방법은 문서에 단어 가 존재하면 1, 존재하지 않으면 0으로 표현하는 방법이다.
예를 들어,
라는 단어만 존재한다고 가정하자.
그리고 라는 과일에 대한 블로그 글이 하나 존재한다고 가정하자.
이 문서 에는 사과, 수박이라는 두 개의 단어만 출현하고(출현횟수와 관계없이), 그 외의 단어는 존재하지 않는다고 하면 문서 는 아래와 같이 표현될 수 있다.
다시 말하면 Vector Space Model은 문서들을 Vector의 형태로 표현하는 방법이고, 그 중 한가지 방법으로 Boolean Model이 있으며 이를 이용하면 vector로 표현된 문서들 사이의 관계를 계산할 수 있다.
이런 Vector Space Model을 어떻게 이용할 수 있는지에 대해 간단하게 검색에 대해서 설명해보겠다.
검색을 한다는 것은 검색기에 (query)를 우리는 검색을 하고, 검색기는 와 연관된 문서들의 집합()을 유사도의 순서대로 돌려주는 것을 의미한다고 볼 수 있다.
즉, 질문 와 문서 사이의 유사도를 계산한다.
먼저, 문서 들을 라는 weight vector로 만들어야한다.
이 를 계산하는 방법 중의 하나로 TF-IDF 방법이 있다.
TF-IDF
TF-IDF(Term Frequency - Inverse Document Frequency)는 텍스트 마이닝에서 사용되는 가중치로써 문서 집합에서 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치이다. 문서에서 키워드를 추출(Keyword Extraction)하거나, 검색엔진에서 검색 결과의 순위를 결정하거나, 문서들 사이의 유사도를 구하는 등의 용도로 사용할 수 있다.
여기서 TF는 Term Frequency이며 특정 단어가 문서 내에서 얼마나 자주 등장하는지를 나타낸다.
DF는 Document Frequency이며, 이 값의 역수를 IDF(Inverse Document Frequency)라 한다.
TF-IDF는 TF와 IDF의 곱을 의미한다.
DF는 특정 단어가 몇 개의 문서에서 나타내는지를 의미
이 TF-IDF가 vector space model에서 어떻게 를 의미하는지 조금 더 부연설명을 하면, 문서 내에서 어떤 단어가 중요한 단어인지를 판별할 때 일반적으로 단어의 빈도수를 이용한다. 하지만 이 단어가 해당 문서에서만 빈도가 높은게 아니라 모든 문서에서 높은 빈도를 갖고 있다면 이는 키워드 즉, 중요도가 높은 단어라고 할 수 없다.
예를 들어, 경주와 관련된 여행 블로그 글이 하나 있다고 가정하자. 이 글에서 중요한 키워드를 추출한다고 하면 보통은 경주, 불국사, 첨성대 등을 중요 키워드라 할 수 있다. 하지만 실제로 형태소 분석기 등을 이용해 단어들을 추출해보면 기대하는 단어가 아닌 그, 그것, 나는, 여행 등과 같은 단어들만 추출될 것이다. 여기서 이러한 그, 그것 등의 단어는 해당 글만이 아니라 다른 문서들에서도 자주 등장하는 단어이기 때문에 중요도가 떨어진다 할 수 있다.
TF, IDF 값을 계산하는 방식에는 다양한 방법이 있으며, 간단하게 빈도수를 이용한 방식의 수식은 아래와 같다.
IDF의 수식은 아래와 같다.
이 둘을 곱해서 로 이루어진 문서의 vector를 구할 수 있다.
다시 Vector Space Model을 이용한 검색예시로 돌아가서, 검색 엔진에 라는 질문을 하면, 와 관련되는 를 유사도 순서로 출력해야한다.
와 의 유사도를 구하려고 하면, 의 값 vector와 모든 문서 에 대해 vector를 계산해 에 대해 각 문서 vector 사이에 Cosine Similarity를 계산하면된다.
위의 cosine similarity는 각 vector들 사이의 각도를 계산하는 방법인데 이를 vector로 표현된 와 각각의 사이의 유사도로 사용할 수 있다.
이와 같이, Vector Space Model을 통해 문서들을 vector로 표현할 수 있고 이렇게 표현된 문서들은 다양한 수식들을 적용해 문서들간의 관계들을 표현할 수 있으며, 위의 검색 엔진 말고도 다양한 분야에서 사용될 수 있다.
'Paper Review' 카테고리의 다른 글
간단한 Softmax Regression (0) | 2017.04.17 |
---|---|
간단한 Logistic Regression (0) | 2017.04.17 |
Linear Regression (0) | 2017.04.17 |
Information Retrieval and Web Search (0) | 2015.08.07 |
ODP(Open Directory Project) (0) | 2015.04.11 |