saurus2
Saurus2
saurus2
전체 방문자
오늘
어제
  • 분류 전체보기
    • 개발
      • AJAX
    • ML Ops
    • Profile
    • 음식점
    • 배낭여행
    • 컴퓨터공학
      • 알고리즘 공부
      • C++
      • Sever 스터디
      • Java spring
      • 알고리즘 _ 문제해결
      • 딥러닝
      • Java 정리
      • Python
      • LeetCode 1000
      • Machine Learning Study
      • Sign language Detection Pro..
      • LeetCode Solutions
    • 비콘
    • 데일리 리포트
    • 유학일기
      • 영어 공부
      • Daily
    • AI Master Degree
      • Data Mining
      • AI and Data engineering
      • Math Foundations for Decisi..
      • Natural Language Processing

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 개발자 취업준비
  • Python
  • 온라인저지
  • 취업준비
  • c++
  • 백준
  • 릿코드
  • 리트코드
  • BFS
  • 알고리즘문제해결
  • 문제해결능력
  • 알고리즘
  • 취준
  • 파이썬
  • 딕셔너리
  • 개발자
  • two pointer
  • DFS
  • 딥러닝
  • LeetCode

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
saurus2

Saurus2

Word2Vec 이란?
AI Master Degree/Natural Language Processing

Word2Vec 이란?

2022. 10. 10. 16:25

Dense Embedding

  • 50 - 1000 차원의 고밀도 임베딩 크기
  • 어휘 크기 10,000 개 또는 문서 말뭉치 크기 100만개 와 동일한 차원의 희소 임베딩 보다 Dense Embedding
  • NLP 작업에서는 Spare 임베딩 보다 더 잘 작동한다.
    • 모델은 더 적은 무게 (fewer features) 를 요구하므로 과적합될 가능성이 적다.
    • 거리 측정 metrics 는 저 차원에서 더 잘 작동한다. 
    • 유사한 단어는 저차원에서 더 명확하게 관련된다.

Word2Vec

  • Static Embedding 을 학습한다.
    • 각 단어는 그것이 나타나는 맥락과 관계없이 동일한 벡터 임베딩을 갖는다.
  • self-supervision 을 갖는다. (no supervised signal)
    • 실행 중인 텍스트의 다음 단어를 supervisory signal 로 사용한다.
  • 전체 과정
    • 대상 단어와 인접 문맥 단어를 Positive Examples 로 다루자
    • 어휘에서 랜덤으로 다른 단어를 추출하여 Negative sample(대상 단어, 무작위 다른 단어)을 얻는다.
    • 로지스틱 회귀 분석을 사용하여 분류자를 훈련시켜 두 경우를 구별한다.
    • 학습된 가중치를 다른 NLP 작업에서 단어 임베딩으로 사용한다.

Negative Sampling 을 포함한 Skip-gram (SGNS)

  • High-level 과정
    • 어휘의 각 단어에 무작위 임베딩 벡터 지정(예: 어휘의 크기는 N)
    • 각 단어의 임베딩을 동시에 발생하는 단어의 임베딩과 더 비슷하도록 전환을 시작한다. (Context words), 그리고 동시에 발생하지 않는 단어의 임베딩에서 벗어나기 시작한다.
    • 아래 사항을 구별하기 위해 Logistic classifier 훈련하기
      • Positive Examples: 1 개의 컨텍스트 워드를 가진 대상의 워드의 쌍(해당 워드와 동시에 발생하는 것으로 확인)
      • Negative Examples: 1 개의 잡음 단어가 포함된 대상 단어 쌍(어휘에서 무작위로 선택됨)
      • Negative 단어 수는 Positive 단어의 수이다, k 는 hyper-parameter 이다.
      • 노이즈 워드는 Weight Unigram 빈도에 따라 선택한다. 

Learning task formulation

  • Target 단어 w 와 context 단어 cpos 쌍 (w, cpos) 의 유사성 최대화(Positive Example)
    • P(+ | w, cpos) - (w, cpos) 쌍이 Positive 클래스에 속할 확률
  • Target 단어 w 와 noise 단어 cneg 쌍 (w, cneg) 의 유사성을 최소화(Negative Example)
    • P(- | w, cneg) - 최소화 되어야한다, (w, cneg) 쌍이 negative 클래스에 속할 확률
    • k 개의 Negative Example 을 가지고 있기 때문에 다음 식을 최소화 해야한다.
    • 사전에 무작위로 이것들을 이끌어 내기 때문에 독립성을 가정한다.
  • 위 두 목표를 모두 달성하기 위해, 그것들을 최소화할 수 있는 손실 함수 L 로 결합할 수 있다.
  • 즉 L 을 최소화 하고 싶다는 표시에 마이너스 부호가 추가된다.
    • 그리고 계산을 단순화하기 위해 로그를 취한다. 
    • 두 확률이 동시에 참이기를 원하기 때문에 두 확률을 곱하고 그것들을 독립적이라고 가정한다. 
  • Word 와 Context 가 Similar 가 될 확률은 벡터의 Dot 곱에 기초하여 계산된다. (Similar는 벡터 Dot 곱에 비례한다 - Recall Cosine Similarity Discussion)
  • 확률 값 결과를 얻기 위해 Dot 곱 위에 Sigmode 를 사용하고 + 와 - 확률을 1이 되도록 만든다.

  • 손실 함수 공식의 값을 대체할 수 있다. 
  • 마지막으로, 기울기 강하를 사용하여 로지스틱 회귀 분석의 LCE 값이 최소인 Parameters 의 변수 벡터를 찾는다.
  • Target Embedding wi 으로 단어를 나타낼 수 있다. 
  • Context Window size 는 좋은 값을 찾기 위해 다양하다. ( 범위를 높이면 결과 단어 벡터의 품질이 향상되지만 계산 복잡성도 증가한다. ) 

일반적으로 사용되는 Static Embedding

  • fasttext
    • 잘 알려지지 않은 단어, 드물게 발생하는 단어들을 잘 다룬다.
    • 단어와 일부 문자 n-gram 을 저장한다. 
    • 예를 들어 'where' 라는 단어에 대해 사용할 수 있다: wh, the, her
    • 각 n-gram 에 대해 별도의 임베딩이 학습되고 단어 자체는 이러한 n-gram 의 합으로 표현된다.
  • Glove
    • 단어 - 단어 동시 발생 메트릭스의 일부 전역 말뭉치 통계를 통합한다. 

시각화

  • 주어진 단어와 가장 유사한 벡터(Cosine Similarity) 를 가진 모든 단어의 정렬된 목록 표시
  • 임베딩의 계층적 클러스터링을 사용하여 단어 관계를 설명한다.

벡터 임베딩의 Semantics 와 Association Properities 

  • Syntactic VS Topical Similarity
    • 임베딩 알고리즘에 의해 사용되는 짧은 Context Window 는 단어가 예를 들어 특정 언어의 동일한 부분인 경향이 있는 구문적 의미에서 더 유사한 벡터 임베딩을 초래한다.
    • 긴 Context Window 는 주제와 관련은 있지만 반드시 유사하지 않은 단어에 대해 유사한 임베딩을 초래한다.
  • First-order VS Second-order association
    • First-order co-occurrence (Suyntagmatic association) 은 일반적으로 서로 가까이 있는 단어에 적용된다.
    • 예: 'book' 과 'poem' 은 'wrote' 근처에 있는 경향이 있다.
    • Second-order co-occurrence (paradigmatic association) 은 단어가 유사한 이웃을 가질 때, 예를 들어, 'wrote 는 'said' 나 'remarked' 의 second-order associate 이다.
  • Analogy-based/relational similarity
    • 벡터 임베딩 (특히 밀도가 높은 것)은 유사 문제에 매우 능숙하다.
    • Analogy Problems: a 는 b 에게 a* 와 같은가?
    • 남자는 여자에게 왕과 같은가?

벡터 모델 평가

  • 가장 중요한 평가는 end-to-end/extrinsic (NLP 작업이 얼마나 잘 되는가, 예 특정 임베딩 표현을 사용할때 감정 분류)
  • Intrinsic 평가 방법들
    • 인간이 표시한 레이블로 표시된 단어 유사성 데이터 사용
      • 기본적인 Similarity: Context 를 고려하지 않은 단어의 Similarity
      • 레이블이 지정된 단어 쌍, 동의어를 식별하기 위한 다중 선택
      • 문장의 의미적 유사성
      • 유사 작업

Word2Vec

  • Word2Vec 과 같은 알고리즘이 작동하는 이유를 완전히 이해하지 못한다.
  • 특정 말뭉치의 특정 알고리즘이 특정 의미 관계를 캡처할 것이라는 보장은 없다.
  • 동일한 데이터 세트에 대해 훈련된 알고리즘도 다른 임베딩을 생성할 수 있다. 
  • 예: 초기화 중 임의성, 음성 샘플링 중 임의 선택 차이
  • 단어 임베딩은 편향될 수 있다, (데이터로부터 성별과 인종적 편견을 포착한다.)

Embedding 의 Bias

  • 임베딩들이 성별 편향을 나태낸 다는 것을 보여주었다.
    • 이것은 할당의 폐해를 초래할 수 있는데, 예를 들어 지원자를 모집하는 것은 남성 지원자를 더 높게 평가하고 그들이 더 많은 일자리를 할당받는 결과를 초래할 수 있다.
  • 뉴스에 대한 교육을 받을 때, 유추에 사용되는 word2vec 임베딩은 다음과 같은 결과를 낳는다.
    • 'man'-'computer programmer' + 'women' 이라는 유사어에서 알고리즘은 'home maker' 를 출력한다.
    • 'father' - doctor' + 'mother', 에서는  'nurse' 를 출력한다.
  • 임베딩은 실제 노동 고용 통계의 통계적 차이를 넘어 편향을 증폭시키는 것으로 나타났다.
  • 표현적 해로움 - 사람들의 그룹을 비하하거나 무시하게 만든다.
    • 아프리카계 미국인 이름은 불쾌한 단어와 Glove 코딩 유사성이 높은 반면, 즐거운 단어를 가진 유럽계 미국인 이름은 정서 분석을 사용하는 어플리케이션에 영향을 미치는 것으로 밝혀졌다.
  • 임베딩 공간을 변형하여 편향성을 제거하려는 데바이싱은 활발한 연구 영역이다. 
저작자표시 (새창열림)

'AI Master Degree > Natural Language Processing' 카테고리의 다른 글

Long Shorter-Term Memory 네트워크란? LSTM이란?  (0) 2022.10.13
Recurrent Neural Network란?  (0) 2022.10.13
Logistic Regression 이란?  (0) 2022.10.10
Model Evaluation란? 모델 평가란?  (0) 2022.10.10
Semantic Vector Embeddings 의미 벡터 임베딩이란?  (0) 2022.10.09
    'AI Master Degree/Natural Language Processing' 카테고리의 다른 글
    • Long Shorter-Term Memory 네트워크란? LSTM이란?
    • Recurrent Neural Network란?
    • Logistic Regression 이란?
    • Model Evaluation란? 모델 평가란?
    saurus2
    saurus2
    Simple is Best

    티스토리툴바