Goal of This Course
Academic Disciplines related to NLP
Trends of NLP
Bag-of-Words Representation
NaiveBayes Classifier for Document Classification
What is Word Embedding?
Word2Vec
GloVe: Another Word Embedding Model
Word2Vec의 파라메터는 앞서 설명드린대로 𝑊, 𝑊′입니다. 각각 크기가 𝑉 x 𝑁, 𝑁 x 𝑉인데요. 보통 말뭉치에 등장하는 단어수가 10만개 안팎이라는 점을 고려하면 𝑁(임베딩 차원수, 사용자 지정)이 100차원만 되어도 2000만개(2 x 10만 x 100)나 되는 많은 숫자들을 구해야 합니다. 단어 수가 늘어날 수록 계산량이 폭증하는 구조입니다.
이 때문에 Word2Vec 연구진은 말뭉치에서 자주 등장하는 단어는 학습량을 확률적인 방식으로 줄이기로 했습니다. 등장빈도만큼 업데이트 될 기회가 많기 때문입니다.
Word2Vec 연구진은 i번째 단어(𝑤𝑖)를 학습에서 제외시키기 위한 확률은 아래와 같이 정의했습니다.
위 식에서 𝑓(𝑤𝑖)는 해당 단어가 말뭉치에 등장한 비율(해당 단어 빈도/전체 단어수)를 말합니다. 𝑡는 사용자가 지정해주는 값인데요, 연구팀에선 0.00001을 권하고 있습니다.
만일 𝑓(𝑤𝑖)가 0.01로 나타나는 빈도 높은 단어(예컨대 조사 ‘은/는’)는 위 식으로 계산한 𝑃(𝑤𝑖)가 0.9684나 되어서 100번의 학습 기회 가운데 96번 정도는 학습에서 제외하게 됩니다. 반대로 등장 비율이 적어 𝑃(𝑤𝑖)가 0에 가깝다면 해당 단어가 나올 때마다 빼놓지 않고 학습을 시키는 구조입니다. subsampling은 학습량을 효과적으로 줄여 계산량을 감소시키는 전략입니다.
Word2Vec은 출력층이 내놓는 스코어값에 소프트맥스 함수를 적용해 확률값으로 변환한 후 이를 정답과 비교해 역전파(backpropagation)하는 구조입니다.
그런데 소프트맥스를 적용하려면 분모에 해당하는 값, 즉 중심단어와 나머지 모든 단어의 내적을 한 뒤, 이를 다시 exp를 취해줘야 합니다. 보통 전체 단어가 10만개 안팎으로 주어지니까 계산량이 어마어마해지죠.
이 때문에 소프트맥스 확률을 구할 때 전체 단어를 대상으로 구하지 않고, 일부 단어만 뽑아서 계산을 하게 되는데요. 이것이 바로 negative sampling입니다. negative sampling은 학습 자체를 아예 스킵하는 subsampling이랑은 다르다는 점에 유의하셔야 합니다.
negative sampling의 절차는 이렇습니다. 사용자가 지정한 윈도우 사이즈 내에 등장하지 않는 단어(negative sample)를 5~20개 정도 뽑습니다. 이를 정답단어와 합쳐 전체 단어처럼 소프트맥스 확률을 구하는 것입니다. 바꿔 말하면 윈도우 사이즈가 5일 경우 최대 25개 단어를 대상으로만 소프트맥스 확률을 계산하고, 파라메터 업데이트도 25개 대상으로만 이뤄진다는 이야기입니다.
윈도우 내에 등장하지 않은 어떤 단어(𝑤𝑖)가 negative sample로 뽑힐 확률은 아래처럼 정의됩니다. 𝑓(𝑤𝑖)는 subsampling 챕터에서 설명한 정의와 동일합니다.
참고로 subsampling과 negative sampling에 쓰는 확률값들은 고정된 값이기 때문에 학습을 시작할 때 미리 구해놓게 됩니다.
NLP 전처리에 대한 것으로, 어렵지 않게 해결했습니다.
1주일간의 휴식을 마치고 일상으로 돌아왔습니다.
계획했던 일들을 전부 수행하지는 못해서 아쉬웠지만, 잠깐이나마 재충전할 수 있어서 너무 좋았습니다.
오늘은 약간의 적응하는 시간이 필요하지 않을까 생각했었는데, 이번 주의 강의 주제가 저의 도메인이기도 한 NLP인 덕분에 재미있게 공부했습니다.
그리고 이번 주 마지막 과제로 예정된 "사전학습된 언어 모델을 이용한 개체명 인식 task"가 캐글 프라이빗 챌린지로 진행된다고 하여 기대하고 있습니다.
특히, 제가 승부욕이 강한 성격이라서 그런지 더욱더 기다려지는 것 같습니다.
이번 주 열심히 공부하여, 좋은 성적을 낼 수 있도록 최선을 다해보겠습니다.
오늘보다 더 성장한 내일의 저를 기대하며, 내일 뵙도록 하겠습니다.
읽어주셔서 감사합니다!