전통적인 NLP : 단어를 표현할 때, 예를 들어 hotel = [0000010], motel = [0000100] 이런식으로 표현했음.
이 방법은
1. 단어의 개수가 많을수록 너무 고차원의 데이터를 필요로 함.
2. 단어간 유사성 파악할 수 없음(위와 같이, hotel과 motel은 유사함에도 불구하고 orthogonal 함).
이렇게 두 가지 문제점 존재.
그렇다면, 인간이 직접 만든 WordNet 같은 사전을 참고하여 유사성을 주는 방법은? -> incompleteness 함.
So, Distributional Semantic 이라는 방법 도래함. "어느 단어의 의미"는 그 단어 근처에서 자주 등장하는 다른 단어로부터 온다는 것.
이를 들어, .... government debt problems turning into banking crises as happened in 2009 .... 에서
위의 context가 "banking" 이라는 단어(token)을 표현한다는 것!
그리고 저런 context가 많으면, banking을 token이 아니라 type으로 활용하는 것?? (이 부분은 이해 잘 못함)
Word Vectors = Word Embeddings = Word Representations
예를 들어, banking = [0.286, 0.185, -0.917, -0.245].
이렇게 고차원(300차원도 될 수 있다고 함)의 word vertor을 2차원 혹은 3차원으로 시각화하면 대부분의 정보가 손실되지만, 한 가지 알 수 있는 것은 유사한 단어들끼리 모여있다는 것! 예를 들어, Iraq, Israel, Russia 같은 국가 이름을 나타내는 단어들이 뭉쳐있는 것을 볼 수 있음.
Word2vec : framework for learning word vectors
center word "c"와 context(outside) words "o"가 있을 때, "c"가 있을 때 "o"가 나타날 확률을 학습시켜서 나중에 역으로 "o"가 있을 때 "c"를 맞추는 것. 문장 안에 있는 위치를 한 칸씩 옮겨가며 중심 단어를 변화시키고, 각 경우에 중심단어가 나타날 확률를 극대화 시키는.. (이해 잘 못함)
그리고 수식으로 이를 설명하셨는데 이는 나중에 따로 보는 것으로..
'Ai Study' 카테고리의 다른 글
EXplainable AI - with machine learning (0) | 2023.01.19 |
---|---|
2022년 9월 서강대학교 인공지능학과 음성대화연구실 학부연구생 개인 공부 내용 (3) | 2022.12.26 |
[CS231n (2017)] Image Classification (0) | 2021.08.15 |