#TIL
단어의 의미를 나타내는데 좋은 표현 방식은 단어간의 관계를 잘 표현할 수 있어야 한다.
단어 의미는 어근(lemma)과 의미(sense)가 있다.
: 문맥상 같은 의미를 가지는 단어들
동의어라고 해서 항상 그 단어로 대체할 수 있는 것은 아니다.
예로)
water라는 단어를 로 사용할때는 과학분야 정도로 항상 그 단어로 대체할수는 없다.
: 유사한 의미를 가진 단어들 (동의어는 아니다)
두 단어의 유사성을 파악한다면 구, 문장, 문서 단위 의 유사성까지 파악 가능하다.
: 단어들은 의미의 유사성 외에도 다양한 방식으로 연관될 수 있음
: 특정한 주제(topic)나 영역(domain)을 공유하는 단어들
병원
- 의사,메스, 간호사, 마취 ...
레스토랑
- 웨이터, 메뉴, 접시, 음식, 셰프 ...
집
- 문, 지붕, 부엌, 가족, 침대 ...
: 특정 행위에 참여하는 주체들의 역할에 관한 단어들
상거래라는 행위에 참여하는 주체들:
buy, sell, pay 등의 단어는 같은 semantic frame을 공유하고 있고 그런 면에서 관련된
단어라고 말할 수 있다.
단어들은 주변 단어들의 분포에 의해 의미가 결정된다.
따라서 단어의 의미를 분포적 유사성을 사용해 표현하고자 한다.
벡터 공간 내에서 비슷한 단어들은 가까이 있다.
이렇게 벡터로 표현된 단어를 임베딩(embedding)이라고 부른다.
보통은 밀집벡터인 경우를 임베딩이라고 부른다.
최근 NLP 방법들은 모두 임베딩을 사용해서 단어의 의미를 표현한다.
왜 임베딩을 사용할까?
임베딩 안에 들어있는 각각의 원소들이 중요하다!
테스트데이터에 새로운 단어가 나타나도 학습데이터에 존재하는 유사한 단어를 통해서 예측할 수 있어 학습한 내용이 유효하다.
요즘 딥러닝 모델들은 밀집벡터를 많이 사용한다고 한다.
🧐 밀집벡터가 선호되는 이유는 무엇일까?
학습이 더 잘된다는 이유가 있기도 하지만, 다음과 같은 이유가 있다.
(결국 위와 같은 이유로 학습이 잘된다는 말이니까 그게 그말인가?)
하나만 살펴보자면.
단어의 빈도수를 그대로 사용한다면 문제점이 발생한다.
자주 나타나는 단어들의 의미를 구별하는데 도움이 되지 않는다.
예) the, it, they
이런 부작용을 최소화 하기 위해선?
빈도수를 기반으로 조금 보정을 가해서 idf라는 새로운 가중치 값을 계산해준다.
tf-idf는 정보 검색에도 많이 사용되고 있다.
tf-idf 뿐 아니라 word2vec도 같이 공부했는데 아직 skip gram 수식부분의 이해가 덜 된것같아서 따로 정리는 하지 않았다..
정리되고나면 추가해봐야지!