Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation

Context2Vec을 사용하어 단어 의미 중의성 해소를 진행한다.
Context2Vec 모델에 대한 설명과 단어 의미 중의성 해소를 위해 어떻게 사용되는지의 과정을 정리한다.
설명 과정을 직접 구축하였을 때의 성능 평가와 적용할 수 있는 사례에 대해서 설명한다.

  • Be the first to comment

Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation

  1. 1. Context2Vec 기반 Word Sense Disambiguation 단어 의미 중의성 해소 이찬희 2020. 04. 13.
  2. 2. 목차 • 단어 의미 중의성 해소 • 기존 프로세스 • Context2Vec • Context2Vec 기반 단어 의미 중의성 해소
  3. 3. 단어 의미 중의성 해소
  4. 4. 자연어 처리 과정 형태소 분석 Morpheme analysis 구문 분석 Syntax analysis 의미 분석 semantic analysis 화용 분석 Pragmatic analysis 형태소 단위의 분절 및 POS 태그 부착 구문 태그 부착 문장구조 파악 단어 의미 중의성 해소 의미역 인식 정보 추출 (대명사가 가리키는 의미부터...)
  5. 5. 의미 분석 • 단어, 구, 문장 등의 단위의 의미를 인식하는 과정 구문 분석에 비해 해당 단계에서 진행해야 할 작업이 모호한 편인 것 같다. 의미를 인식하는 모든 처리가 해당 단계에 들어간다고 할 수 있을 것 같다.
  6. 6. 단어 의미 중의성 해소 문맥을 확인하여 등장한 동형이의어의 의미를 찾는 과정 Word Sense Disambiguation (WSD)
  7. 7. 단어 정리 • 동형이의어: 같은 형태를 가지지만 뜻이 다른 단어 • 의미(=센스): 동형이의어가 가지는 의미 • 동형어 번호: 사전에서 동형이의어가 가지는 의미를 구분하기 위해 부착하는 번호 (사전마다 다른 체계를 가진다) • 예시: 단어 '생태' 자연어 분석에서 진행되어야 할 어깨번호 부착네이버 국어사전의 검색결과 표준국어대사전 상의 동형이의어 '생태'의 1번 의미 2번 의미 문서의 자연어 처리 후 동형이의어 '생태'의 어깨번호가 부착된 결과
  8. 8. 기존 프로세스
  9. 9. 단어 의미 중의성 해소 모델 • 정한조(2015) 논문을 토대로 구현 • 생략하거나 달라진 방식 • 논문) 명사만 대상으로 진행 → 변경) 체언, 용언, 수식언, 어근 • 사전의 예문은 사용하지 않음 • 표준국어대사전과 세종 형태의미 말뭉치를 사용 • 표준국어대사전 상의 동음이의어로 한정 (말뭉치와 표준국어대사전 사이의 다른 점을 표준국어대사전 기준으로 변경 및 생략) • Ramped window가 적용된 벡터 공간 모델과 나이브 베이즈 분류기를 통해 단어 의미 중의성을 해결 • 정한조와 박병화, “사전과 말뭉치를 이용한 한국어 단어 중의성 해소,” 한국 지능정보시스템학회논문지, 2015. (일반, 고유, 의존 명사) (동사, 형용사) (관형사, 일반 부사, 접속 부사) 말뭉치 상에는 동음이의어인데 표준국어대사전에는 아닌 경우 또는 그 반대의 경우 등등
  10. 10. 세종 형태의미 말뭉치 • 문장 별로 형태소 분석과 형태소 단위의 어깨번호를 부착한 말뭉치 • 표준국어대사전을 기준으로 어깨번호 부착 • 내용어(↔기능어) 중심으로 부착: 세종 품사 기준으로, 일반명사, 의존명사, 동사, 형용사, 관형사, 일반부사 내에서 부착 진행 • 부착 방법: 표제어 전후 5어절을 확인하여 어깨번호 부착 • 특수한 어깨번호(누락시켜야 할 예외상황) • 00, 88: 사전에 등재되지 않은 어휘 • 99: 형태분석 말뭉치의 분석 오류 • x<번호>: 사전과 말뭉치의 품사 분류 비일치 • 국립국어원, “21세기 세종계획 국어 기초자료 구축, 2004 결과보고서.” 2004. 세종 형태의미 말뭉치 예시 <형태소>__<어깨번호>/<품사>
  11. 11. 벡터 공간 모델 Vector Space Model or Term Space Model • 간단한 Vector Space Model 설명, https://yumere.tistory.com/85 Vocabulary Document 벡터의 원소 학습 과정에서 등장한 모든 단어, 단어마다 고유의 인덱스를 가지게 된다 학습 과정에서 등장한 모든 문서, 단어와 마찬가지로 고유의 인덱스를 가지게 된다 학습을 통해 생성된 값으로, 값을 산출하는 방법은 Boolean Model, TF-IDF 등이 있다 단어 벡터 각각의 문서는 단어 벡터로 변환되며, 문서 간 비교 또는 쿼리와 비교를 통해 유사도를 산출하게 된다
  12. 12. 벡터 공간 모델 (WSD 문제에서) Vector Space Model for WSD Vocabulary 벡터의 원소 동형이의어를 포함한 학습 대상인 모든 형태소 Ramped window의 합으로 벡터값을 산출한다. 센스 벡터 동형이의 형태소 (형태소 + 어깨번호)
  13. 13. Ramped Window 형태소 남미 풍 의 강렬 하 ᆫ 원색 끼리 의 조화 , 수채화 같이 안온 하 ᆫ 배색 등 어깨번호 02 07 05 품사 NNP XSN JKG XR XSA ETM NNG XSN JKG NNG SP NNG MAG NNG XSA ETM NNG NNB Score 3 4 5 - 5 4 3 2 1 동형이의 형태소 학습 대상 아님 (학습 대상 품사가 아님) 학습 대상 형태소 • Ramped window는 Co-occurence 타겟 단어를 기준으로 가까울 수록 높은 점수를 부여하는 방법 • 동형이의 형태소를 기준으로 5점부터 멀어질 때마다 순차적으로 4점, 3점, …, 1점까지 부여 • 센스 벡터에 누적
  14. 14. 나이브 베이즈 분류기 Naïve bayes Classifier • 베이즈 정리를 기초 • 독립성 가정 • 강한 가정이 들어가지만 실증적으로 높은 효과를 보임 (베이즈 정리) (독립성 가정) (베이지안 확률 용어로 작성) 클래스 k 발생한 사건 x 사건이 발생한 상황에서는 상수값이 된다 • 나이브 베이즈 분류, https://ko.wikipedia.org/wiki/나이브_베이즈_분류
  15. 15. 나이브 베이즈 분류기 (WSD 문제에서) Naïve bayes Classifier for WSD 학습시킨 Vector Space로 구한 Cosine Similarity로 대체
  16. 16. 나이브 베이즈 분류기 (WSD 문제에서, 예시) • 발견한 동음이의어: 조화 • 센스 가짓수: 7가지 • 주변 단어 Distance Weight 부여 결과 • 남미 : 3 • 강렬 : 4 • 원색, 02 : 5 • 수채화 : 5 • 같이 : 4 • 안온 : 3 • 배색 : 2 • 색, 03 : 1 조화, 01 조화, 02 조화, 03 조화, 04 조화, 05 조화, 06 조화, 07 남미 강렬 원색 02 배색 색 03 수 많은 다른 형태소도 존재 … [ 3 4 5 … 2 1 ]쿼리 벡터 벡터 공간 모델에서 동음이의어의 센스 벡터들을 검색 주변 단어의 Distance Weight를 통해 쿼리 벡터를 생성 쿼리와 동음이의어의 센스 벡터들로 Cosine Similarity 산출 조건부 확률 0. 0. 0. 0.023 0. 0. 0.009 사전 확률 0.001 0. 0. 0.057 0.007 0. 0.934 사후 확률 (과 비례하는 값) 0. 0. 0. 0.001 0. 0. 0.009 동음이의어의 등장빈도로 산출
  17. 17. 모델 평가 • 10-fold CV • Precision과 Recall • Precision만 사용 • Recall은 항상 100%, 표준국어대사전을 기준으로 동음이의어는 항상 평가를 하기 때문 Precision = 올바르게 예측한 중의어의 수 전체 중의어의 수 Recall = 예측한 중의어의 수 전체 중의어의 수 단어 의미 중의성 해소에서의 Precision과 Recall 계산식
  18. 18. 모델 평가 결과 • Precision: 평균 93.1% • 논문의 Precision 96.04% • 대상 품사를 명사로 한정 • 표준국어대사전의 예문까지 모두 활용했을 때의 Precision • 순서대로 처리했을 때 마스킹 처리가 전혀 없었음 체언 용언 수식언 어근 • 튜플의 형식: (정확하게 판단한 동음이의어, 동음이의어 등장횟수, Precision)
  19. 19. 시각화 반영 동음이의어에 부착된 어깨번호들
  20. 20. 시각화 반영 동음이의어에 부착된 어깨번호들
  21. 21. 한계 • 학습 시 성능과 실제 사용 시 성능에 차이가 발생 • 세종 말뭉치의 원문과 실제 사용하는 원문의 어휘가 다름 • 유사도를 구하지 못하고 사전 확률이 결과로 이어지는 빈도가 너무 높음 • 운영이 적용하기 위한 난이도가 높음 • 세종 형태의미 말뭉치 수준으로 도메인 말뭉치를 구축하는 것이 힘듦 • 기존 사전 확률의 비율을 고려하여 일정량 이상의 말뭉치 구성을 해야 효과를 볼 수 있음
  22. 22. Context2Vec
  23. 23. Context2Vec • Melamud, Oren, Jacob Goldberger, and Ido Dagan. "context2vec: Learning generic context embedding with bidirectional lstm." Proceedings of The 20th SIGNLL Conference on Computational Natural Language Learning. 2016. • Word2Vec CBOW 모델과 동일한 개념 • 컨텍스트 임베딩 결과와 단어의 임베딩 결과가 유사하도록 학습 • Word2Vec CBOW 모델의 Average of Word Embeddings(AWE) 방법을 Bi-LSTM + MLP로 변형 (더 적극적인 학습) • (Word2Vec) 윈도우 → (Context2Vec) 문장 전체, Bi-LSTM • (Word2Vec) 임베딩 평균 값 → (Context2Vec) 다층 퍼셉트론, MLP
  24. 24. 컨텍스트 임베딩 • 단어 수준 임베딩: 개별 단어를 임베딩(Word2Vec, Glove) • 문장 수준 임베딩: 문장 전체를 임베딩(Doc2Vec)하거나 하는 과정이 포함(ELMo)되어 있음 • 컨텍스트 임베딩 • 문장 전체 또는 문장보다 좁은 범위의 단어 시퀀스를 임베딩 • 타겟 단어(Target word)를 기준으로 문장을 임베딩 • 같은 문장이더라도 기준 단어가 다르면 다른 임베딩 결과를 반환
  25. 25. Word2Vec CBOW
  26. 26. Word2Vec CBOW 타겟 단어
  27. 27. Word2Vec CBOW 타겟 단어 컨텍스트 윈도우 내 단어의 임베딩
  28. 28. Word2Vec CBOW 타겟 단어 컨텍스트 윈도우 내 단어의 임베딩 컨텍스트 임베딩 (윈도우 내 단어 임베딩의 평균)
  29. 29. Word2Vec CBOW 타겟 단어 컨텍스트 윈도우 내 단어의 임베딩 컨텍스트 임베딩 (윈도우 내 단어 임베딩의 평균) 타겟 단어의 임베딩
  30. 30. Word2Vec CBOW 타겟 단어 컨텍스트 윈도우 내 단어의 임베딩 컨텍스트 임베딩 (윈도우 내 단어 임베딩의 평균) 타겟 단어의 임베딩 목적 함수를 통해 양 임베딩이 유사해지도록 학습
  31. 31. Context2Vec Context2Vec에서 변경된 부분 • (W2V) 윈도우 → (C2V) 문장 전체, Bi-LSTM • (W2V) 평균 → (C2V) MLP
  32. 32. Context2Vec
  33. 33. Context2Vec 타겟 단어
  34. 34. Context2Vec 타겟 단어 타겟 단어의 왼쪽 단어 시퀀스 정방향 (좌 → 우) 입력 타겟 단어의 오른쪽 단어 시퀀스 역방향 (우 → 좌) 입력
  35. 35. Context2Vec 타겟 단어 타겟 단어의 왼쪽 단어 시퀀스 정방향 (좌 → 우) 입력 타겟 단어의 오른쪽 단어 시퀀스 역방향 (우 → 좌) 입력 양쪽 시퀀스의 마지막 은닉 상태를 연결 및 MLP에 입력
  36. 36. Context2Vec 타겟 단어 타겟 단어의 왼쪽 단어 시퀀스 정방향 (좌 → 우) 입력 타겟 단어의 오른쪽 단어 시퀀스 역방향 (우 → 좌) 입력 양쪽 시퀀스의 마지막 은닉 상태를 연결 및 MLP에 입력 타겟 단어의 임베딩
  37. 37. Context2Vec 타겟 단어 타겟 단어의 왼쪽 단어 시퀀스 정방향 (좌 → 우) 입력 타겟 단어의 오른쪽 단어 시퀀스 역방향 (우 → 좌) 입력 양쪽 시퀀스의 마지막 은닉 상태를 연결 및 MLP에 입력 타겟 단어의 임베딩 목적 함수를 통해 양 임베딩이 유사해지도록 학습
  38. 38. Context2Vec 활용 • 문장 완성 (Sentence completion) • 단어 의미 중의성 해소 (Word sense disambiguation)
  39. 39. Context2Vec 기반 단어 의미 중의성 해소
  40. 40. Context2Vec 기반 단어 의미 중의성 해소 • Context2Vec: 타겟 단어의 컨텍스트를 벡터화 • Context2Vec 기반 단어 의미 중의성 해소 • 학습 • 말뭉치에 동형이의어가 등장하면, (표제어, 동형어 번호, 컨텍스트 벡터)를 저장 • 예측 • 동형이의어 등장 시 문장을 컨텍스트 벡터로 변환 • 말뭉치를 통해 학습한 표제어의 컨텍스트 벡터 중 가장 유사한 벡터의 동형어 번호를 반환
  41. 41. Context2Vec 기반 단어 의미 중의성 해소, 학습 1. 말뭉치의 동형이의어 검색 3. (표제어, 동형어 번호, 컨텍스트 벡터) 집합 저장 (수성, 08) (수성, 05) (수성, 04) … … Context2Vec 모델 통과 2. 컨텍스트 벡터 추출
  42. 42. Context2Vec 기반 단어 의미 중의성 해소, 예측 1. 원문의 동형이의어 검사 3. 학습 시 추출한 컨텍스트 벡터 집합과 비교 (Cosine similarity) (수성, 08) (수성, 05) (수성, 04) … … … 코스피, 한·미 정책 기대·우려 교차 속 1700선 수성 실패 … 0.7, 동형어 번호 08번 부착 0.1 -0.3 2. 컨텍스트 벡터 추출 Context2Vec 모델 통과 동일한 표제어의 컨텍스트 벡터만 필터링
  43. 43. Context2Vec 학습 • 학습 데이터 • 뉴스 20만 문서 • 위키피디아 46만여 문서 (동음이의어 문서 제거) • 세종 형태의미 말뭉치 79만여 문장의 95% • 총 815만여 문장 • 학습 파라미터 (논문, 학습) • 컨텍스트 단어 임베딩 차원: 300, 150 • 타겟 단어 임베딩 차원: 600, 300 • LSTM 은닉층 차원: 600, 300 • MLP 입력층/은닉층 차원: 1200, 600 • Epoch 10회 이내로 진행 • 학습 모델은 논문 대비 1/2 크기로 줄임 • 사용하기에 학습 모델의 크기가 너무 컸음 • 사용 시 속도 면에서도 연산량이 너무 큼 단어 의미 중의성 해소 모델의 테스트 데이터 분리를 위해
  44. 44. 단어 의미 중의성 해소 모델 학습 • 학습 및 테스트 데이터 • 세종 형태의미 말뭉치 79만여 문장을 95%, 5%로 분리 • 학습 및 평가 방법 • 학습 데이터에서 등장한 동형이의어의 문장을 컨텍스트 벡터로 저장 • 평가 데이터에서 등장한 동형이의어의 문장을 컨텍스트 벡터로 추출하여 학습 컨텍스트 벡터와 Cosine similarity 수행 후 가장 큰 컨텍스트 벡터의 동형어 번호 부착 Context2Vec 학습 시와 동일한 문장 집합
  45. 45. 모델 평가 결과 • Precision: 97.91% > 93.1% (기존) • 딥 러닝 모델의 적용으로 Precision의 증가에 더해 Sparcity 문제를 해결할 수 있었음 • Sparcity 문제가 Context2Vec에서 해결되기 때문에, 단순한 말뭉치로 더 많은 Vocabulary를 쉽게 확보할 수 있음
  46. 46. 단어 의미 중의성 해소 말뭉치 작성 컨텍스트 벡터를 생성하기 위해 원문과 동형이의어 표제어, 동형어 번호를 작성하는 것으로 비교적 간단하게 말뭉치를 확 장할 수 있음 (형태소 분석에서 표제어와 일치하는 토큰이 만들어져야 한다는 조건이 필요) 서비스를 위해 추가한 동형어 번호 개체명 태그와 유사한 역할을 함 (LO: 지역, OR: 단체, ST: 종목)
  47. 47. 서비스 적용 목표 - 종목 뉴스 필터링 • 종목 뉴스 추출은 1차적으로 검색 엔진의 키워드 매칭을 통해 진행 • 하지만 중의성을 가지는 종목명의 경우 필터링이 필요 • 필터링이 잘 되지 않았을 시에 서비스 퀄리티에 심각한 영향을 미치게 됨
  48. 48. 네이버 증권 뉴스의 경우 굉장히 필터링이 잘 되고 있는 편
  49. 49. (LO: 지역, OR: 단체, ST: 종목)
  50. 50. (LO: 지역, OR: 단체, ST: 종목)
  51. 51. (LO: 지역, OR: 단체, ST: 종목)
  52. 52. (LO: 지역, OR: 단체, ST: 종목)
  53. 53. (LO: 지역, OR: 단체, ST: 종목)
  54. 54. (LO: 지역, OR: 단체, ST: 종목)
  55. 55. (LO: 지역, OR: 단체, ST: 종목)

×