Sitemap
Wonhee Jung

Wonhee Jung

Lifelong gamer and learner, loves lifehack. Senior Software Engineer@Blizzard Entertainment. Master’s degree in CS@UIUC, current CS grad student@GeorgiaTech.

CS410 — Unigram Language Model

4 min readSep 12, 2018

지난번 probablistic retrieval model의 기본 개념에 이어 이번에는 statistical language model에 대해 다룬다.

statistical language model은 연속되는 일련의 단어들의 확률 분포이다.

즉 p(“Today is Wednesday”) 이 입력될 확률이 대략 0.001이라면 p(“Today Wednesday is”)라고 입력이 될 확률은 대략 0.0000000001, 그리고 p(“The eigenvalue is positive”) 라고 입력될 확률은 0.00001이라는 식이다. 해당 단어 조합 및 순서가 발생할 확률. 또한 문장을 “생성”해낼 때 각 문장이 나타날 확률 메커니즘과 관계가 있기 때문에 “generative model”이라고도 불린다.

그러면 language model을 왜 쓰는가? 바로 자연어의 불확실성(모호함)을 정량화 해주기 때문이다. language model을 사용하면 다음과 같은 질문에 답을 할 수 있다.

  • “John”과 “happy” 라는 단어가 주어졌을 때, John다음에 happy 대신 habit이 나타날 확률은 얼마나 되는가? => speech recognition과 관련됨.
  • 신문기사에서 “basketball”이라는 단어가 3번 나오고 “game”이라는 단어가 한번 나왔다면, 이 신문기사는 얼마나 “sports”와 관련이 있는가? => text categorization, information retrieval
  • 사용자가 스포츠 뉴스에 관심이 많을 때, “baseball” 로 검색을 확률이 얼마나 되는가 => information retrieval

이런 것들을 가능하게 해주는 language model 중 가장 간단한 langauge model은 Unigram Language Model이다. Unigram LM에서는 모든 걸 심플하게 만들기 위해 다음의 가정을 한다.

  • 문장내의 각각의 단어가 나타날(혹은 생성될) 확률은 서로 독립적이다.

이게 무슨 말인가 하면, 보통 우리가 “superball score last night”이라는 식으로 입력을 할 경우 저 질의어는 나타나는 순서가 있다. 아마도 “score superball night last”라는 식으로는 아무도 검색을 하지 않을 것이다. 따라서 각각의 단어가 나타나는 빈도는 앞 단어가 무엇인가에 따라 그리고 뒷 단어가 무엇인가에 따라 출현빈도가 다를 수 밖에 없다. 그런데 이렇게 하면 language model이 너무 복잡해지기 때문에 일단 그런걸 싹 무시하겠다는 이야기다. superball score last night 에서 각 단어가 나타날 확률이나, score night last superball에서 각 단어가 문장 속에 나타날 확률이나 죄다 같다고 보는 것이다. 자 그런데 이렇게 되면 통계에서 각 확률이 독립적이게 되면

Get Wonhee Jung’s stories in your inbox

Join Medium for free to get updates from this writer.

P(superball score last night) = P(superball) * P(score) * P(last) * P(night)이 같아진다.

또한 전체 파라메터 P(wi)에 대해서 P(superball) + P(score) + P(last) + P(night) = 1 이 된다. 여기서의 가정은 해당 문장의 생성이 사전 혹은 단어 컬랙션이 superball, score, last, night의 4개로만 이루어져 있다는 것. 일반화 한다면 P(Wi) = P(W1) + P(W2) + P(W3) + …. + P(Wn) = 1 where N = vocabulary size.

잘 이해가 안된다면 주사위 확률을 생각해보자. 주사위를 3번 던져서 1, 3, 5가 나올 확률은? 1/6 * 1/6 * 1/6. 그리고 주사위 전체에서 나올 수 있는 숫자는 1에서 6까지 6개밖에 없다. 따라서 각 숫자가 나타날 수 있는 확률 1/6의 총 합은 1/6 + 1/6 + 1/6 + 1/6 + 1/6 + 1/6 = 6/6 = 1.

자 그래서 앞에서의 슈퍼볼 이야기를 해보면 superball 이라는 단어가 나올 확률이 0.000001, score가 0.00004, last가 0.003, night이 0.0001이라고 한다면 이 전체 문장이 입력될(혹은 생성될) 확률을 0.000001 * 0.00004 * 0.003 * 0.0001이라고 보는 것이 unigram language model이다.

이 뒤로 Query Likelihood Retrieval Function 과 기타 등등이 줄줄이 나오는데 여기서 다루다간 내용이 너무 길어질 거 같으니 일단은 여기까지.

--

--

Wonhee Jung
Wonhee Jung

Written by Wonhee Jung

Lifelong gamer and learner, loves lifehack. Senior Software Engineer@Blizzard Entertainment. Master’s degree in CS@UIUC, current CS grad student@GeorgiaTech.