KR102227939B1 - 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치 - Google Patents

단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치 Download PDF

Info

Publication number
KR102227939B1
KR102227939B1 KR1020190038587A KR20190038587A KR102227939B1 KR 102227939 B1 KR102227939 B1 KR 102227939B1 KR 1020190038587 A KR1020190038587 A KR 1020190038587A KR 20190038587 A KR20190038587 A KR 20190038587A KR 102227939 B1 KR102227939 B1 KR 102227939B1
Authority
KR
South Korea
Prior art keywords
word
context
embedding
words
information
Prior art date
Application number
KR1020190038587A
Other languages
English (en)
Other versions
KR20200116760A (ko
Inventor
원민섭
이지형
이상헌
신윤섭
정동언
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020190038587A priority Critical patent/KR102227939B1/ko
Priority to PCT/KR2020/003000 priority patent/WO2020204364A2/ko
Publication of KR20200116760A publication Critical patent/KR20200116760A/ko
Application granted granted Critical
Publication of KR102227939B1 publication Critical patent/KR102227939B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Machine Translation (AREA)

Abstract

본 발명은 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치에 관한 것으로, 본 발명의 일 실시예에 따른 단어 임베딩 방법은, 학습시킬 문장에서 미등록 단어(OOV: Out Of Vocabulary)를 미지의 토큰(unknown token)으로 대체하여 문장을 가공하는 단계, 상기 가공된 문장에서 상기 미등록 단어를 제외한 타겟 단어의 문자(Character)를 학습 대상인 문맥 문자 모델(Context Character Model)의 입력으로 입력하는 단계, 상기 문장에서 타겟 단어의 주변 단어에 대한 주변 문맥 벡터를 조합하여 상기 문맥 문자 모델의 초기 상태로 설정하는 단계; 및 상기 문맥 문자 모델로부터 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 생성된 상기 타겟 단어의 예측 임베딩(Predicted embedding)과 상기 타겟 단어의 실제 임베딩(Real embedding) 간의 오류가 최소가 되도록, 상기 문맥 문자 모델을 학습하는 단계를 포함한다.

Description

단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치{METHODS AND APPARATUSES FOR EMBEDDING WORD CONSIDERING CONTEXTUAL AND MORPHOSYNTACTIC INFORMATION}
본 발명은 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치에 관한 것이다.
단어 임베딩(Word embedding)은 단어를 저 차원 잠재 공간으로 맵핑하여 단어 사이의 유사성을 효과적으로 나타내는 대표적인 방법론이다. 단어 임베딩은 유사한 의미의 단어를 잠재 공간의 비슷한 위치에 매핑 할 수 있다. 이러한 이유로 단어 임베딩은 기계 번역 및 텍스트 분류와 같은 여러 자연 언어 처리(NLP: Natural Language Processing) 작업에서 가장 일반적으로 사용된다.
하지만, 사전에 학습된 단어 임베딩을 사용시, 여러 자연어 처리 작업에서의 추론단계에서 미등록(OOV: Out of Vocabulary) 단어를 효과적으로 처리하지 못해 성능 저하의 원인이 된다. 미등록(OOV) 단어를 처리하는 전통적인 방법으로는 미지의(UNK) 토큰을 할당하는 방법과 임의의 벡터값(random vector)을 할당하는 방법이 있다. 하지만, 이러한 방법들은 미등록(OOV) 단어에 같은 값을 부여하거나 임의의 값을 부여하기 때문에 합리적이지 못하다.
이와 같이, 자연어 처리 분야에서 단어 임베딩은 단어 사이의 유사성을 벡터 공간에서 효과적으로 나타내기 때문에 중요한 역할을 한다. 하지만, 단어 임베딩이 사전에 학습한 단어 임베딩에 존재하지 않은 OOV 단어에 대해서는 처리할 수 없는 한계가 있다.
본 발명의 실시예들은 단어의 형태론적 정보와 주변 문맥정보를 이용하여 미등록(OOV) 단어의 효과적인 임베딩(embedding)을 수행할 수 있는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치를 제공하고자 한다.
본 발명의 실시예들은 미등록(OOV) 단어에 대한 잘못된 표현 문제를 완화하기 위해, 문자 기반 모델에 주변 단어 대한 주변 문맥 벡터를 추가함으로써, 자연어 처리 작업에서의 정량적 및 정성적 평가 결과를 향상시킬 수 있는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치를 제공하고자 한다.
본 발명의 일 실시예에 따르면, 단어 임베딩 장치에 의해 수행되는 단어 임베딩 방법에 있어서, 학습시킬 문장에서 미등록 단어(OOV: Out Of Vocabulary)를 미지의 토큰(unknown token)으로 대체하여 문장을 가공하는 단계; 상기 가공된 문장에서 상기 미등록 단어를 제외한 타겟 단어의 문자(Character)를 학습 대상인 문맥 문자 모델(Context Character Model)의 입력으로 입력하는 단계; 상기 문장에서 타겟 단어의 주변 단어에 대한 주변 문맥 벡터를 조합하여 상기 문맥 문자 모델의 초기 상태로 설정하는 단계; 및 상기 문맥 문자 모델로부터 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 생성된 상기 타겟 단어의 예측 임베딩(Predicted embedding)과 상기 타겟 단어의 실제 임베딩(Real embedding) 간의 오류가 최소가 되도록, 상기 문맥 문자 모델을 학습하는 단계를 포함하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법이 제공될 수 있다.
상기 방법은, 상기 학습시킬 문장에서 문장 부호 및 불용어(stopword)를 제거하는 단계를 더 포함할 수 있다.
상기 문맥 문자 모델은, 문자 기반의 양방향 장단기 메모리(Character-based Bidirectional Long Short-Term Memory) 구조를 가질 수 있다.
상기 초기 상태로 설정하는 단계는, 상기 주변 단어에 대한 주변 문맥 벡터의 평균을 계산하여 상기 문맥 문자 모델의 양방향에 대한 초기 상태로 설정할 수 있다.
상기 문맥 문자 모델을 학습하는 단계는, 상기 연결된 순방향 은닉 상태 및 역방향 은닉 상태를 밀집 레이어(Dense layer)를 거친 차원 축소를 통해 상기 타겟 단어의 예측 임베딩을 생성할 수 있다.
상기 문맥 문자 모델을 학습하는 단계는, 상기 타겟 단어의 예측 임베딩(Predicted embedding)과 상기 타겟 단어의 실제 임베딩(Real embedding) 간의 평균 제곱 오차(mean squared error)가 최소가 되도록, 상기 문맥 문자 모델을 학습할 수 있다.
한편, 본 발명의 다른 실시예에 따르면, 단어 임베딩 장치에 의해 수행되는 단어 임베딩 방법에 있어서, 문장에서 사전에 학습되지 않은 미등록 단어(OOV: Out Of Vocabulary)의 문자(Character)를 기 학습된 문맥 문자 모델의 입력으로 입력하는 단계; 상기 문장에서 미등록 단어의 주변 단어에 대한 주변 문맥 벡터를 조합하여 상기 문맥 문자 모델의 초기 상태로 설정하는 단계; 및 상기 문맥 문자 모델로부터 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 미등록 단어의 임베딩을 예측하는 단계를 포함하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법이 제공될 수 있다.
상기 방법은, 상기 문장에서 문장 부호 및 불용어(stopword)를 제거하는 단계를 더 포함할 수 있다.
상기 기 학습된 문맥 문자 모델은, 문자 기반의 양방향 장단기 메모리(Character-based Bidirectional Long Short-Term Memory) 구조를 가질 수 있다.
상기 초기 상태로 설정하는 단계는, 상기 주변 단어에 대한 주변 문맥 벡터의 평균을 계산하여 상기 문맥 문자 모델의 양방향에 대한 초기 상태로 설정할 수 있다.
상기 미등록 단어의 임베딩을 예측하는 단계는, 상기 연결된 순방향 은닉 상태 및 역방향 은닉 상태를 밀집 레이어(Dense layer)를 거친 차원 축소를 통해 상기 미등록 단어의 임베딩을 예측할 수 있다.
한편, 본 발명의 다른 실시예에 따르면, 적어도 하나의 프로그램을 저장하는 메모리; 및 상기 메모리와 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 적어도 하나의 프로그램을 실행함으로써, 학습시킬 문장에서 미등록 단어(OOV: Out Of Vocabulary)를 미지의 토큰(unknown token)으로 대체하여 문장을 가공하고, 상기 가공된 문장에서 상기 미등록 단어를 제외한 타겟 단어의 문자(Character)를 학습 대상인 문맥 문자 모델(Context Character Model)의 입력으로 입력하고, 상기 문장에서 타겟 단어의 주변 단어에 대한 주변 문맥 벡터를 조합하여 상기 문맥 문자 모델의 초기 상태로 설정하고, 상기 문맥 문자 모델로부터 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 생성된 상기 타겟 단어의 예측 임베딩(Predicted embedding)과 상기 타겟 단어의 실제 임베딩(Real embedding) 간의 오류가 최소가 되도록, 상기 문맥 문자 모델을 학습하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치가 제공될 수 있다.
상기 프로세서는, 상기 학습시킬 문장에서 문장 부호 및 불용어(stopword)를 제거할 수 있다.
상기 문맥 문자 모델은, 문자 기반의 양방향 장단기 메모리(Character-based Bidirectional Long Short-Term Memory) 구조를 가질 수 있다.
상기 프로세서는, 상기 주변 단어에 대한 주변 문맥 벡터의 평균을 계산하여 상기 문맥 문자 모델의 양방향에 대한 초기 상태로 설정할 수 있다.
상기 프로세서는, 상기 연결된 순방향 은닉 상태 및 역방향 은닉 상태를 밀집 레이어(Dense layer)를 거친 차원 축소를 통해 상기 타겟 단어의 예측 임베딩을 생성할 수 있다.
상기 프로세서는, 상기 타겟 단어의 예측 임베딩(Predicted embedding)과 상기 타겟 단어의 실제 임베딩(Real embedding) 간의 평균 제곱 오차(mean squared error)가 최소가 되도록, 상기 문맥 문자 모델을 학습할 수 있다.
한편, 본 발명의 다른 실시예에 따르면, 적어도 하나의 프로그램을 저장하는 메모리; 및 상기 메모리와 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 적어도 하나의 프로그램을 실행함으로써, 문장에서 사전에 학습되지 않은 미등록 단어(OOV: Out Of Vocabulary)의 문자(Character)를 기 학습된 문맥 문자 모델의 입력으로 입력하고, 상기 문장에서 미등록 단어의 주변 단어에 대한 주변 문맥 벡터를 조합하여 상기 문맥 문자 모델의 초기 상태로 설정하고, 상기 문맥 문자 모델로부터 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 미등록 단어의 임베딩을 예측하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치가 제공될 수 있다.
상기 프로세서는, 상기 문장에서 문장 부호 및 불용어(stopword)를 제거할 수 있다.
상기 기 학습된 문맥 문자 모델은, 문자 기반의 양방향 장단기 메모리(Character-based Bidirectional Long Short-Term Memory) 구조를 가질 수 있다.
상기 프로세서는, 상기 주변 단어에 대한 주변 문맥 벡터의 평균을 계산하여 상기 문맥 문자 모델의 양방향에 대한 초기 상태로 설정할 수 있다.
상기 프로세서는, 상기 연결된 순방향 은닉 상태 및 역방향 은닉 상태를 밀집 레이어(Dense layer)를 거친 차원 축소를 통해 상기 미등록 단어의 임베딩을 예측할 수 있다.
본 발명의 실시예들은 단어의 형태론적 정보와 주변 문맥정보를 이용하여 미등록(OOV) 단어의 효과적인 임베딩(embedding)을 수행할 수 있다.
본 발명의 실시예들은 미등록(OOV) 단어에 대한 잘못된 표현 문제를 완화하기 위해, 문자 기반 모델에 주변 단어 대한 주변 문맥 벡터를 추가함으로써, 자연어 처리 작업에서의 정량적 및 정성적 평가 결과를 향상시킬 수 있다.
본 발명의 실시예들은 문장에서 미등록(OOV) 단어가 존재할 때, 주변 문맥과 문자 구조를 통해 효과적으로 OOV 단어의 임베딩 값을 추론함으로써, 자연어 처리 작업의 성능 향상에 도움을 줄 수 있다.
도 1은 본 발명의 일 실시예에 따른 단어의 문맥 정보와 형태론적 정보를 고려한 문맥 문자 모델을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법에서 단어 임베딩 학습 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 단어의 문맥 정보와 형태론적 정보를 고려한 문맥 문자 모델의 구조를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법에서 단어 임베딩 예측 방법을 설명하기 위한 흐름도이다.
도 5 내지 도 9는 본 발명의 일 실시예에 따른 단어 임베딩 방법에서 단어 임베딩 학습 과정을 예시로 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치의 구성을 설명하기 위한 구성도이다.
도 11은 본 발명의 일 실시예에 따른 단어 임베딩 방법의 실험을 위한 학습 설정을 설명하기 위한 도면이다.
도 12 및 도 13은 본 발명의 일 실시예에 따른 실험에서 사용된 리뷰 데이터 세트의 OOV 비율을 설명하기 위한 도면이다.
도 14는 본 발명의 일 실시예와 종래의 다른 OOV 단어 처리 기법들의 텍스트 분류 성능 비교를 설명하기 위한 도면이다.
도 15는 본 발명의 일 실시예와 종래의 다른 OOV 단어 처리 기법들을 테스트 손실 비교를 설명하기 위한 도면이다.
도 16 및 도 17은 본 발명의 일 실시예에 따른 단어 임베딩 방법을 적용하여 OOV 단어를 포함하는 문장에 대해 실험하는 과정과 실험 결과를 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 단어의 문맥 정보와 형태론적 정보를 고려한 문맥 문자 모델을 설명하기 위한 도면이다.
본 발명의 일 실시예는 단어의 문맥 정보와 형태론적 정보를 고려하여 사전에 학습되지 않은 미등록(OOV: Out Of Vocabulary) 단어의 임베딩을 효과적으로 추론하는 방법 및 장치에 관한 것이다. 본 발명의 일 실시예는 단어의 문자마다 문자 기반의 양방향 장단기 메모리(Character-based Bidirectional LSTM)를 통과시켜 단어의 형태론적 정보를 추출할 수 있다. 또한, 본 발명의 일 실시예는 문맥 내의 단어들의 평균 임베딩 벡터를 문자 기반의 양방향 장단기 메모리의 초기 상태(initial state)로 설정함으로써, 문맥 정보를 추출할 수 있다. 결과적으로, 본 발명의 일 실시예는 문장에서 OOV 단어 등장시, 단어의 주변 문맥과 문자 정보를 통해 OOV 단어의 임베딩값을 효과적으로 추론할 수 있다. 이는 자연어 처리 작업에서 성능 향상을 도모할 수 있다.
이를 위해, 본 발명의 일 실시예는 OOV 단어를 처리하는 효과적인 단어 임베딩 방법을 제공하고자 한다. 먼저, 본 발명의 일 실시예에 따른 단어 임베딩 방법은 많은 양의 말뭉치 데이터와 사전에 학습한 단어 임베딩을 준비한다. 도 1에 도시된 바와 같이, 다음으로 문장(예컨대, CaptainQ makes you drink)에 존재하는 OOV 단어(예컨대, CaptainQ) 및 모든 단어들에 대해서 단어 임베딩을 예측하는 동작을 설명하기로 한다. 단어 임베딩 방법은 주변 문맥 단어들(예컨대, makes, you, 및 drink)의 평균 임베딩 벡터(Average embedding vector)를 문자 기반 양방향 장단기 메모리(Character-based Bidirectional LSTM)의 초기 상태(initial state)로 설정한다. 단어 임베딩 방법은 단어의 문자별로(예컨대, C, a, p, t, a, i, n, 및 Q) 문자 기반 양방향 장단기 메모리의 입력으로 넣는다. 그리고 단어 임베딩 방법은 문자 기반 양방향 장단기 메모리로부터 생성된 순방향 은닉 상태(forward hidden state) 및 역방향 은닉 상태(backward hidden state)를 연결(concatenate)하여 밀집 레이어(dense layer)의 입력으로 넣는다. 단어 임베딩 방법은 최종적으로 사전에 학습한 단어 임베딩과 유사해지도록 학습한다. 이를 통해, 단어 임베딩 방법은 사전에 학습한 단어 임베딩에 존재하지 않는 OOV 단어에 대해서 문맥 정보와 단어 문자 구조를 통해 효과적으로 OOV 단어의 임베딩값을 할당할 수 있다. 즉, 문자 기반 양방향 장단기 메모리(Character-based Bidirectional LSTM)를 이용한 문맥 문자 모델은 단어의 문맥 정보 및 형태론적 정보를 모두 고려한 모델이기 때문에, OOV 단어에 대해서 단어 임베딩을 정확하게 예측할 수 있다.
도 2는 본 발명의 일 실시예에 따른 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법에서 단어 임베딩 학습 방법을 설명하기 위한 흐름도이다.
본 발명의 일 실시예에 따른 단어 임베딩 방법은 단어 임베딩 장치에 의해 수행된다. 도 2에는 OOV 단어가 포함된 문장에서 단어의 문맥 정보와 형태론적 정보를 고려하여 단어 임베딩을 학습하는 방법이 도시되어 있다.
단계 S101에서, 단어 임베딩 장치는 단어 임베딩 학습을 위해, 많은 양의 말뭉치 데이터를 가져와서 문장을 입력받는다.
단계 S102에서, 단어 임베딩 장치는 문장 부호 및 불용어(stopwords)를 제거한다.
단계 S103에서, 단어 임베딩 장치는 문맥단어 중 OOV를 미지의 토큰 <UNK>로 대체한다. 이와 같이, 단어 임베딩 장치는 입력된 문장을 임베딩 학습에 맞게 가공한다.
단계 S104에서, 단어 임베딩 장치는 문장에서 단어의 순번을 나타내는 k를 0으로 설정한다(k=0).
단계 S105에서, 단어 임베딩 장치는 학습하고자 하는 대상인 타겟 단어가 전체 문장의 길이 이하인지를 확인한다(k≤length(S)). 일례로, 단어 임베딩 장치는 문장에서 오른쪽으로 한 칸씩 타겟(target) 단어를 이동한다.
단계 S106에서, 단어 임베딩 장치는 타겟 단어가 전체 문장의 길이 이하이면, 문장의 k번째 단어가 미지의 토큰 <UNK>이 아닌지를 확인한다(S[k] != <UNK>).
단계 S107에서, 단어 임베딩 장치는 문장의 k번째 단어가 미지의 토큰 <UNK>이 아니면, k번째 단어를 문맥 문자 모델에 입력하여 예측 임베딩 값을 산출한다(
Figure 112019033893314-pat00001
). 반면, 문장의 k번째 단어가 미지의 토큰 <UNK>이면, 단어 임베딩 장치는 OOV 단어를 넘기고 다음 단어를 타겟 단어로 지정하는 단계 S109를 수행한다. 즉, 단어 임베딩 장치는 만약 문장에서 k번째 단어가 <UNK>이면 타겟 단어를 다음으로 스킵(skip)한다.
단계 S108에서, 단어 임베딩 장치는 문맥 문자 모델로부터 나온 예측 임베딩 값(
Figure 112019033893314-pat00002
)과 실제 임베딩 값(
Figure 112019033893314-pat00003
)의 차이(
Figure 112019033893314-pat00004
)가 최소화하도록 학습한다. 단어 임베딩 장치는 OOV 단어 이외의 나머지 단어를 문맥 문자 모델의 입력으로 넣어서 실제 단어의 임베딩 값과 문맥 문자 모델이 추론한 임베딩 값 간의
Figure 112019033893314-pat00005
가 최소가 되도록 학습한다.
단계 S109에서, 단어 임베딩 장치는 타겟 단어를 문장의 k+1번째 단어로 지정한다(k = k+1).
단계 S110에서, 단어 임베딩 장치는 타겟 단어가 전체 문장의 길이를 초과하면, 다음 문장에 대해서 단어 임베딩 학습을 진행한다. 이와 같이, 단어 임베딩 장치는 단어 임베딩 학습 과정을 타겟 단어의 위치가 문장의 끝이 될 때까지 반복한다.
도 3은 본 발명의 일 실시예에 따른 단어의 문맥 정보와 형태론적 정보를 고려한 문맥 문자 모델의 구조를 설명하기 위한 도면이다.
본 발명의 일 실시예에 따른 단어 임베딩 장치는 도 3에 도시된 문맥 문자 모델을 기반으로, 사전에 학습되지 않은 미등록 단어들인 OOV(Out Of Vocabulary)에 대해서 단어 주변 문맥과 형태론적 구조를 통해 단어의 임베딩 값을 효과적으로 추론할 수 있다.
먼저, 문장 및 단어가 입력되면(예컨대, 문장: Car battery max power, 단어: max), 단어 임베딩 장치는 단어의 각 문자(예컨대, m, a, x)를 문자 임베딩 레이어(character embedding layer)를 통과시킴으로써, 단어의 형태론적 구조를 고려한다. 다음으로, 단어 임베딩 장치는 단어 주변 문맥 단어들의 평균 문맥 벡터(Average context vector)를 BiLSTM(Bidirectional Long Short-Term Memory)의 초기값으로 설정한다. 그리고 단어 임베딩 장치는 문자 임베딩(character embedding)과 결합하여 밀집 레이어(Dense layer)를 거쳐 단어의 임베딩 값을 추론하도록 학습한다.
도 3에 도시된 단계별로 나누어서 살펴보기로 한다.
단계 S201에서, 단어 임베딩 장치는 미리 학습된 단어 임베딩의 룩업 테이블 T1을 획득한다(
Figure 112019033893314-pat00006
). 여기서, V1는 단어 어휘(word vocabulary)의 크기, D는 단어 임베딩의 차원을 나타낸다.
단계 S202에서, 단어 임베딩 장치는 문자 임베딩의 룩업 테이블 T2를 획득한다(
Figure 112019033893314-pat00007
). 여기서, V2는 문자 어휘(character vocabulary)의 크기, d는 문자 임베딩의 차원을 나타낸다.
단계 S203에서, 단어 임베딩 장치는 문맥 벡터를 윈도우 내에서 가까운 문맥 단어의 평균으로 정의한다(
Figure 112019033893314-pat00008
). 여기서,
Figure 112019033893314-pat00009
은 단어 임베딩을 나타내고, 윈도우 크기 α는 5로 설정한다.
단계 S204에서, 단어 임베딩 장치는 문맥 벡터를 초기 상태로 문자 기반 양방향 장단기 메모리의 양측에 입력하고, 순방향 및 역방향의 마지막 은닉 상태를 연결하고, 밀집 레이어(dense layer)를 통과하여 단어 임베딩을 출력한다(
Figure 112019033893314-pat00010
).
단계 S205에서, 단어 임베딩 장치는 문맥 문자 모델에서 생성된 예측 임베딩과 타겟 단어의 실제 임베딩 간의 평균 제곱 오차가 최소화되도록, 문맥 문자 모델을 학습시킨다(
Figure 112019033893314-pat00011
). 여기서,
Figure 112019033893314-pat00012
이고,
Figure 112019033893314-pat00013
이다.
Figure 112019033893314-pat00014
는 단어
Figure 112019033893314-pat00015
의 실제 임베딩 값을 나타내고,
Figure 112019033893314-pat00016
는 단어
Figure 112019033893314-pat00017
의 예측된 임베딩 값을 나타낸다.
도 4는 본 발명의 일 실시예에 따른 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법에서 단어 임베딩 예측 방법을 설명하기 위한 흐름도이다.
단계 S301에서, 단어 임베딩 장치는 문장 및 단어를 입력받는다.
단계 S302에서, 단어 임베딩 장치는 단어의 문자를 양방향 장단기 메모리(Bidirectional-LSTM)의 입력으로 넣는다.
단계 S303에서, 단어 임베딩 장치는 단어의 주변 문맥 단어들의 평균을 문맥 벡터로 지정한다.
단계 S304에서, 단어 임베딩 장치는 문맥 벡터를 양방향 장단기 메모리(Bidirectional-LSTM)의 초기 상태로 지정한다.
단계 S305에서, 단어 임베딩 장치는 양방향 장단기 메모리(Bidirectional-LSTM)의 순방향 및 역방향의 마지막 은닉 상태를 합친다.
단계 S306에서, 단어 임베딩 장치는 밀집 레이어를 거친 차원 축소를 통해 단어의 임베딩을 출력한다. 이를 통해, 단어 임베딩 장치는 미등록(OOV) 단어에 대해 단어 임베딩을 예측할 수 있다.
도 5 내지 도 9는 본 발명의 일 실시예에 따른 단어 임베딩 방법에서 단어 임베딩 학습 과정을 예시로 설명하기 위한 도면이다.
도 5에 도시된 바와 같이, 단어 임베딩 장치는 원본 문장(2NE1 goes to Japan this Friday.)을 입력받는다. 그리고 단어 임베딩 장치는 원본 문장에서 문장 부호(예컨대, 마침표) 및 불용어(예컨대, to, this)를 제거한다. 단어 임베딩 장치는 문맥 단어 중 OOV(예컨대, 2NE1)를 미지의 토큰 <UNK>로 대체하여 원본 문장을 가공한다.
도 6에 도시된 바와 같이, 단어 임베딩 장치는 문장의 첫 번째 단어부터 단어 임베딩 학습을 수행한다. 단어 임베딩 장치는 그런 다음 타겟 단어를 왼쪽에서 오른쪽으로 이동한다. 이때, 학습 방향은 특정 방향으로 한정되지 않는다. 단어 임베딩 장치는 타겟 단어가 <UNK>일 시, 다음 단어로 타겟 단어를 넘긴다.
도 7에 도시된 바와 같이, 단어 임베딩 장치는 타겟 단어가 "goes"인 경우, 문맥 문자 모델에 타겟 단어(goes)의 문자와 주변 문맥 단어의 평균 문맥 벡터를 넣어 타겟 단어의 예측된 임베딩 값을 산출한다. 그리고 단어 임베딩 장치는 타겟 단어 "goes"에 대해 산출된 예측 임베딩 값과 실제 임베딩 값 간의 평균 제곱 오차가 최소가 되도록 문맥 문자 모델을 학습시킨다.
도 8 및 도 9에 도시된 바와 같이, 단어 임베딩 장치는 타겟 단어 "goes"의 학습이 완료되면, 타겟 단어를 왼쪽에서 오른쪽으로 이동시키고, 타겟 단어 "Japan"과 "Friday"에 대해서도 도 7과 동일하게 학습을 수행한다.
도 10은 본 발명의 일 실시예에 따른 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치의 구성을 설명하기 위한 구성도이다.
도 10에 도시된 바와 같이, 본 발명의 일 실시예에 따른 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치(100)는, 메모리(110) 및 프로세서(120)를 포함한다. 그러나 도시된 구성요소 모두가 필수 구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 단어 임베딩 장치(100)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 단어 임베딩 장치(100)가 구현될 수 있다.
이하, 도 10의 단어 임베딩 장치(100)의 각 구성요소들의 구체적인 구성 및 동작을 설명한다.
메모리(110)는 적어도 하나의 프로그램을 저장한다.
프로세서(120)는 메모리(110)와 연결된다. 문맥 문자 모델을 사전에 학습하는 실시예를 설명하기로 한다. 프로세서(120)는, 적어도 하나의 프로그램을 실행함으로써, 학습시킬 문장에서 미등록 단어(OOV: Out Of Vocabulary)를 미지의 토큰(unknown token)으로 대체하여 문장을 가공하고, 그 가공된 문장에서 상기 미등록 단어를 제외한 타겟 단어의 문자(Character)를 학습 대상인 문맥 문자 모델(Context Character Model)의 입력으로 입력하고, 문장에서 타겟 단어의 주변 단어에 대한 주변 문맥 벡터를 조합하여 상기 문맥 문자 모델의 초기 상태로 설정하고, 문맥 문자 모델로부터 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 생성된 상기 타겟 단어의 예측 임베딩(Predicted embedding)과 상기 타겟 단어의 실제 임베딩(Real embedding) 간의 오류가 최소가 되도록, 문맥 문자 모델을 학습한다.
다양한 실시예에 따르면, 프로세서(120)는 학습시킬 문장에서 문장 부호 및 불용어(stopword)를 제거할 수 있다.
다양한 실시예에 따르면, 문맥 문자 모델은 문자 기반의 양방향 장단기 메모리(Character-based Bidirectional Long Short-Term Memory) 구조를 가질 수 있다.
다양한 실시예에 따르면, 프로세서(120)는 주변 단어에 대한 주변 문맥 벡터의 평균을 계산하여 문맥 문자 모델의 양방향에 대한 초기 상태로 설정할 수 있다.
다양한 실시예에 따르면, 프로세서(120)는 연결된 순방향 은닉 상태 및 역방향 은닉 상태를 밀집 레이어(Dense layer)를 거친 차원 축소를 통해 타겟 단어의 예측 임베딩을 생성할 수 있다.
다양한 실시예에 따르면, 프로세서(120)는 타겟 단어의 예측 임베딩(Predicted embedding)과 타겟 단어의 실제 임베딩(Real embedding) 간의 평균 제곱 오차(mean squared error)가 최소가 되도록, 문맥 문자 모델을 학습할 수 있다.
한편, 기 학습된 문맥 문자 모델을 기반으로 미등록 단어의 임베딩을 예측하는 실시예를 설명하기로 한다. 프로세서(120)는 적어도 하나의 프로그램을 실행함으로써, 문장에서 사전에 학습되지 않은 미등록 단어(OOV: Out Of Vocabulary)의 문자(Character)를 기 학습된 문맥 문자 모델의 입력으로 입력하고, 상기 문장에서 미등록 단어의 주변 단어에 대한 주변 문맥 벡터를 조합하여 상기 문맥 문자 모델의 초기 상태로 설정하고, 상기 문맥 문자 모델로부터 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 미등록 단어의 임베딩을 예측할 수 있다.
다양한 실시예에 따르면, 프로세서(120)는 문장에서 문장 부호 및 불용어(stopword)를 제거할 수 있다.
다양한 실시예에 따르면, 기 학습된 문맥 문자 모델은, 문자 기반의 양방향 장단기 메모리(Character-based Bidirectional Long Short-Term Memory) 구조를 가질 수 있다.
다양한 실시예에 따르면, 프로세서(120)는 주변 단어에 대한 주변 문맥 벡터의 평균을 계산하여 상기 문맥 문자 모델의 양방향에 대한 초기 상태로 설정할 수 있다.
다양한 실시예에 따르면, 프로세서(120)는 연결된 순방향 은닉 상태 및 역방향 은닉 상태를 밀집 레이어(Dense layer)를 거친 차원 축소를 통해 상기 미등록 단어의 임베딩을 예측할 수 있다.
도 11은 본 발명의 일 실시예에 따른 단어 임베딩 방법의 실험을 위한 학습 설정을 설명하기 위한 도면이다.
본 발명의 일 실시예에 따른 단어 임베딩 방법의 실험을 위해, 코퍼스 데이터를 위해 600K의 큰 도서 말뭉치를 사용하고, 기 학습된 단어 임베딩을 위해, 64차원 다각형 임베딩을 사용한다.
문맥 문자 모델의 하이퍼파라미터의 경우, 문자 임베딩의 차원을 20으로 설정하고, 문맥의 윈도우 크기는 5로 설정하고, 양방향 LSTM의 은닉 유닛은 64로 설정하기로 한다.
텍스트 분류 작업을 위한 데이터로는 AG의 뉴스 데이터 세트는 4개의 클래스 분류이고, 옐프(Yelp) 리뷰 데이터 세트는 5 개의 클래스 분류이다.
본 발명의 일 실시예에서의 실험 데이터는 AG's 뉴스, Yelp 리뷰 텍스트 분류 데이터 셋을 사용하였고, 사전에 학습한 단어 임베딩으로는 64차원의 다각형(Polyglot) 임베딩을 사용하였다.
도 11에 도시된 바와 같이, AG의 뉴스 및 옐프의 리뷰 데이터세트의 경우 OOV 비율이 낮았다. 따라서, 무작위로 선택된 단어들의 중간 글자 순서를 바꾸었다. 예를 들면, Japan을 Jpaan으로 바꾸고, Friday를 Friady로 바꾸었다. 데이터 세트의 OOV 단어의 비율이 낮아서 인위적으로 약 15%의 단어들을 가운데 중간 글자 순서를 바꿔줌으로써 OOV 단어를 생성하였다.
도 12 및 도 13은 본 발명의 일 실시예에 따른 실험에서 사용된 리뷰 데이터 세트의 OOV 비율을 설명하기 위한 도면이다.
결과적으로 옐프(Yelp) 리뷰 데이터 세트와 AG 뉴스 데이터 세트의 OOV 비율을 16.26 % 및 16.14 %로 얻어진다.
도 14는 본 발명의 일 실시예와 종래의 다른 OOV 단어 처리 기법들의 텍스트 분류 성능 비교를 설명하기 위한 도면이다.
도 14에는 AG의 뉴스와 옐프 리뷰 데이터 셋에 대해서 OOV 단어 처리 기법별로 분류 성능을 비교한 표가 나타나 있다. 'Random'은 임의의 벡터로, 'UNK'은 UNK 토큰으로, 'Context'는 주변 문맥의 평균 벡터로, 'MIMICK-RNN'은 단어의 문자를 RNN을 통해 나온 값으로 OOV 단어의 임베딩 값으로 할당한 방법론들이다.
도 14에서 알 수 있듯이, 본 발명의 일 실시예에 따른 문맥 문자 모델(Context-char)의 분류 성능이 가장 뛰어남을 알 수 있다. 본 발명의 일 실시예를 통해 OOV 단어의 합리적인 임베딩 값을 부여하는 것이 가능해지며, 결과적으로 번역, 요약, Q&A등의 여러 자연어 처리 작업의 성능을 향상 시킬 수 있다.
도 15는 본 발명의 일 실시예와 종래의 다른 OOV 단어 처리 기법들을 테스트 손실 비교를 설명하기 위한 도면이다.
도 15에서 가로축은 테스트 에포크(test epoch), 세로축은 테스트 손실(test loss)을 나타낸다. 도 15에서 알 수 있듯이, Random, UNK, Average, MIMICK-RNN, Context-Char인 5가지 모델 중에서 본 발명의 일 실시예에 따른 Context-Char가 최상의 성능을 보인다. 본 발명의 일 실시예에 따른 Context-Char의 테스트 손실이 가장 빠르고 낮게 수렴한다.
도 16 및 도 17은 본 발명의 일 실시예에 따른 단어 임베딩 방법을 적용하여 OOV 단어를 포함하는 문장에 대해 실험하는 과정과 실험 결과를 설명하기 위한 도면이다.
도 16에 도시된 바와 같이, OOV 단어를 포함하는 원본 문장 "Stopped in cafe on a Sunday morning to have some Espersso coffee with my wife. The Latte was ok."에서, Espresso의 문자 오류인 OOV 단어 Espersso에 대해 실험하기로 한다. 본 발명의 일 실시예에 따른 단어 임베딩 방법은 'Espersso'라는 단어의 의미를 추론한다. 먼저, 단어 임베딩 방법은 원본 문장에서 문장 부호화 불용어를 삭제하여, 원본 문장을 [Stopped, cafe, Sunday, morning, Espersso, coffee, wife, The, Latte, ok]와 같이 가공 문장으로 가공한다.
도 17은 본 발명의 일 실시예에 따른 단어 임베딩 방법에서의 정성적 평가를 위한 표이다. 이러한 표는 문장에서 단어 하나의 문자 순서를 임의로 바꿈으로써 OOV 단어를 생성했을 때, 그 단어를 추론하여 가장 유사한 단어들을 추출한 결과이다. 표에서 알 수 있듯이 "Espersso"에 대해서 본 발명의 일 실시예에 따른 문맥 문자 모델(Context-Char)이 "Cuban", "Continental", "Dutch" 등의 커피와 관련이 있는 단어들을 유사한 단어로 추출한 것으로 보아 OOV 단어에 대해서 적절하게 추론한다는 것을 의미한다. 이는 'Espersso'라는 단어가 커피의 의미를 갖는다는 것을 반영한 결과이다. 반면, MIMICK-RNN과 같은 다른 방법은 'Espersso'에 가장 근접한 스페인어 단어를 가지고 있으며, Context-encoder는 원래 문장에 'wife'가 있기 때문에 소녀, 어린이 단어를 사용한다.
상술한 본 발명의 실시예들에 따른 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 본 발명의 실시예들에 따른 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.
프로세서에 의해 실행 가능한 적어도 하나의 프로그램을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 적어도 하나의 프로그램은 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금: 학습시킬 문장에서 미등록 단어(OOV: Out Of Vocabulary)를 미지의 토큰(unknown token)으로 대체하여 문장을 가공하고, 상기 가공된 문장에서 상기 미등록 단어를 제외한 타겟 단어의 문자(Character)를 학습 대상인 문맥 문자 모델(Context Character Model)의 입력으로 입력하고, 상기 문장에서 타겟 단어의 주변 단어에 대한 주변 문맥 벡터를 조합하여 상기 문맥 문자 모델의 초기 상태로 설정하고, 상기 문맥 문자 모델로부터 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 생성된 상기 타겟 단어의 예측 임베딩(Predicted embedding)과 상기 타겟 단어의 실제 임베딩(Real embedding) 간의 오류가 최소가 되도록, 상기 문맥 문자 모델을 학습하게 하는 명령어들을 포함하는, 비 일시적 컴퓨터 판독 가능한 저장 매체가 제공될 수 있다.
프로세서에 의해 실행 가능한 적어도 하나의 프로그램을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 적어도 하나의 프로그램은 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금: 문장에서 사전에 학습되지 않은 미등록 단어(OOV: Out Of Vocabulary)의 문자(Character)를 기 학습된 문맥 문자 모델의 입력으로 입력하고, 상기 문장에서 미등록 단어의 주변 단어에 대한 주변 문맥 벡터를 조합하여 상기 문맥 문자 모델의 초기 상태로 설정하고, 상기 문맥 문자 모델로부터 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 미등록 단어의 임베딩을 예측하게 하는 명령어들을 포함하는, 비 일시적 컴퓨터 판독 가능한 저장 매체가 제공될 수 있다.
상술한 본 발명에 따른 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상, 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
구체적으로, 설명된 특징들은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 또는 그들의 조합들 내에서 실행될 수 있다. 특징들은 예컨대, 프로그래밍 가능한 프로세서에 의한 실행을 위해, 기계 판독 가능한 저장 디바이스 내의 저장장치 내에서 구현되는 컴퓨터 프로그램 제품에서 실행될 수 있다. 그리고 특징들은 입력 데이터 상에서 동작하고 출력을 생성함으로써 설명된 실시예들의 함수들을 수행하기 위한 지시어들의 프로그램을 실행하는 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 설명된 특징들은, 데이터 저장 시스템으로부터 데이터 및 지시어들을 수신하기 위해, 및 데이터 저장 시스템으로 데이터 및 지시어들을 전송하기 위해, 결합된 적어도 하나의 프로그래밍 가능한 프로세서, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스를 포함하는 프로그래밍 가능한 시스템 상에서 실행될 수 있는 하나 이상의 컴퓨터 프로그램들 내에서 실행될 수 있다. 컴퓨터 프로그램은 소정 결과에 대해 특정 동작을 수행하기 위해 컴퓨터 내에서 직접 또는 간접적으로 사용될 수 있는 지시어들의 집합을 포함한다. 컴퓨터 프로그램은 컴파일된 또는 해석된 언어들을 포함하는 프로그래밍 언어 중 어느 형태로 쓰여지고, 모듈, 소자, 서브루틴(subroutine), 또는 다른 컴퓨터 환경에서 사용을 위해 적합한 다른 유닛으로서, 또는 독립 조작 가능한 프로그램으로서 포함하는 어느 형태로도 사용될 수 있다.
지시어들의 프로그램의 실행을 위한 적합한 프로세서들은, 예를 들어, 범용 및 특수 용도 마이크로프로세서들 둘 모두, 및 단독 프로세서 또는 다른 종류의 컴퓨터의 다중 프로세서들 중 하나를 포함한다. 또한 설명된 특징들을 구현하는 컴퓨터 프로그램 지시어들 및 데이터를 구현하기 적합한 저장 디바이스들은 예컨대, EPROM, EEPROM, 및 플래쉬 메모리 디바이스들과 같은 반도체 메모리 디바이스들, 내부 하드 디스크들 및 제거 가능한 디스크들과 같은 자기 디바이스들, 광자기 디스크들 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 비휘발성 메모리의 모든 형태들을 포함한다. 프로세서 및 메모리는 ASIC들(application-specific integrated circuits) 내에서 통합되거나 또는 ASIC들에 의해 추가될 수 있다.
이상에서 설명한 본 발명은 일련의 기능 블록들을 기초로 설명되고 있지만, 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
전술한 실시예들의 조합은 전술한 실시예에 한정되는 것이 아니며, 구현 및/또는 필요에 따라 전술한 실시예들 뿐 아니라 다양한 형태의 조합이 제공될 수 있다.
전술한 실시예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
전술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
100: 단어 임베딩 장치
110: 메모리
120: 프로세서

Claims (22)

  1. 단어 임베딩 장치에 의해 수행되는 단어 임베딩 방법에 있어서,
    학습시킬 문장에서 미등록 단어(OOV: Out Of Vocabulary)를 미지의 토큰(unknown token)으로 대체하여 문장을 가공하는 단계;
    상기 가공된 문장에서 상기 미등록 단어를 제외한 타겟 단어의 문자(Character)를 학습 대상인 문맥 문자 모델(Context Character Model)의 입력으로 입력하는 단계;
    상기 문장에서 타겟 단어의 주변 단어에 대한 주변 문맥 벡터를 조합하여 상기 문맥 문자 모델의 초기 상태로 설정하는 단계; 및
    상기 문맥 문자 모델로부터 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 생성된 상기 타겟 단어의 예측 임베딩(Predicted embedding)과 상기 타겟 단어의 실제 임베딩(Real embedding) 간의 오류가 최소가 되도록, 상기 문맥 문자 모델을 학습하는 단계를 포함하고,
    상기 문맥 문자 모델을 학습하는 단계는, 상기 타겟 단어의 예측 임베딩(Predicted embedding)과 상기 타겟 단어의 실제 임베딩(Real embedding) 간의 평균 제곱 오차(mean squared error)가 최소가 되도록, 상기 문맥 문자 모델을 학습하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법.
  2. 제1항에 있어서,
    상기 학습시킬 문장에서 문장 부호 및 불용어(stopword)를 제거하는 단계를 더 포함하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법.
  3. 제1항에 있어서,
    상기 문맥 문자 모델은,
    문자 기반의 양방향 장단기 메모리(Character-based Bidirectional Long Short-Term Memory) 구조를 가지는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법.
  4. 제1항에 있어서,
    상기 초기 상태로 설정하는 단계는,
    상기 주변 단어에 대한 주변 문맥 벡터의 평균을 계산하여 상기 문맥 문자 모델의 양방향에 대한 초기 상태로 설정하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법.
  5. 제1항에 있어서,
    상기 문맥 문자 모델을 학습하는 단계는,
    상기 연결된 순방향 은닉 상태 및 역방향 은닉 상태를 밀집 레이어(Dense layer)를 거친 차원 축소를 통해 상기 타겟 단어의 예측 임베딩을 생성하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법.
  6. 삭제
  7. 단어 임베딩 장치에 의해 수행되는 단어 임베딩 방법에 있어서,
    문장에서 사전에 학습되지 않은 미등록 단어(OOV: Out Of Vocabulary)의 문자(Character)를 기 학습된 문맥 문자 모델의 입력으로 입력하는 단계;
    상기 문장에서 미등록 단어의 주변 단어에 대한 주변 문맥 벡터를 조합하여 상기 문맥 문자 모델의 초기 상태로 설정하는 단계; 및
    상기 문맥 문자 모델로부터 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 미등록 단어의 임베딩을 예측하는 단계를 포함하고,
    상기 문맥 문자 모델은, 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 생성된 상기 미등록 단어를 제외한 타겟 단어의 예측 임베딩(Predicted embedding)과 상기 타겟 단어의 실제 임베딩(Real embedding) 간의 평균 제곱 오차(mean squared error)가 최소가 되도록 학습되는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법.
  8. 제7항에 있어서,
    상기 문장에서 문장 부호 및 불용어(stopword)를 제거하는 단계를 더 포함하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법.
  9. 제7항에 있어서,
    상기 기 학습된 문맥 문자 모델은,
    문자 기반의 양방향 장단기 메모리(Character-based Bidirectional Long Short-Term Memory) 구조를 가지는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법.
  10. 제7항에 있어서,
    상기 초기 상태로 설정하는 단계는,
    상기 주변 단어에 대한 주변 문맥 벡터의 평균을 계산하여 상기 문맥 문자 모델의 양방향에 대한 초기 상태로 설정하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법.
  11. 제7항에 있어서,
    상기 미등록 단어의 임베딩을 예측하는 단계는,
    상기 연결된 순방향 은닉 상태 및 역방향 은닉 상태를 밀집 레이어(Dense layer)를 거친 차원 축소를 통해 상기 미등록 단어의 임베딩을 예측하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법.
  12. 적어도 하나의 프로그램을 저장하는 메모리; 및
    상기 메모리와 연결된 프로세서를 포함하고,
    상기 프로세서는, 상기 적어도 하나의 프로그램을 실행함으로써,
    학습시킬 문장에서 미등록 단어(OOV: Out Of Vocabulary)를 미지의 토큰(unknown token)으로 대체하여 문장을 가공하고,
    상기 가공된 문장에서 상기 미등록 단어를 제외한 타겟 단어의 문자(Character)를 학습 대상인 문맥 문자 모델(Context Character Model)의 입력으로 입력하고,
    상기 문장에서 타겟 단어의 주변 단어에 대한 주변 문맥 벡터를 조합하여 상기 문맥 문자 모델의 초기 상태로 설정하고,
    상기 문맥 문자 모델로부터 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 생성된 상기 타겟 단어의 예측 임베딩(Predicted embedding)과 상기 타겟 단어의 실제 임베딩(Real embedding) 간의 오류가 최소가 되도록, 상기 문맥 문자 모델을 학습하되,
    상기 타겟 단어의 예측 임베딩(Predicted embedding)과 상기 타겟 단어의 실제 임베딩(Real embedding) 간의 평균 제곱 오차(mean squared error)가 최소가 되도록, 상기 문맥 문자 모델을 학습하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 학습시킬 문장에서 문장 부호 및 불용어(stopword)를 제거하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치.
  14. 제12항에 있어서,
    상기 문맥 문자 모델은,
    문자 기반의 양방향 장단기 메모리(Character-based Bidirectional Long Short-Term Memory) 구조를 가지는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치.
  15. 제12항에 있어서,
    상기 프로세서는,
    상기 주변 단어에 대한 주변 문맥 벡터의 평균을 계산하여 상기 문맥 문자 모델의 양방향에 대한 초기 상태로 설정하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치.
  16. 제12항에 있어서,
    상기 프로세서는,
    상기 연결된 순방향 은닉 상태 및 역방향 은닉 상태를 밀집 레이어(Dense layer)를 거친 차원 축소를 통해 상기 타겟 단어의 예측 임베딩을 생성하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치.
  17. 삭제
  18. 적어도 하나의 프로그램을 저장하는 메모리; 및
    상기 메모리와 연결된 프로세서를 포함하고,
    상기 프로세서는, 상기 적어도 하나의 프로그램을 실행함으로써,
    문장에서 사전에 학습되지 않은 미등록 단어(OOV: Out Of Vocabulary)의 문자(Character)를 기 학습된 문맥 문자 모델의 입력으로 입력하고,
    상기 문장에서 미등록 단어의 주변 단어에 대한 주변 문맥 벡터를 조합하여 상기 문맥 문자 모델의 초기 상태로 설정하고,
    상기 문맥 문자 모델로부터 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 미등록 단어의 임베딩을 예측하고,
    상기 문맥 문자 모델은, 산출된 순방향 은닉 상태(Forward hidden state) 및 역방향 은닉 상태(Backward hidden state)를 연결하여 생성된 상기 미등록 단어를 제외한 타겟 단어의 예측 임베딩(Predicted embedding)과 상기 타겟 단어의 실제 임베딩(Real embedding) 간의 평균 제곱 오차(mean squared error)가 최소가 되도록 학습되는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치.
  19. 제18항에 있어서,
    상기 프로세서는,
    상기 문장에서 문장 부호 및 불용어(stopword)를 제거하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치.
  20. 제18항에 있어서,
    상기 기 학습된 문맥 문자 모델은,
    문자 기반의 양방향 장단기 메모리(Character-based Bidirectional Long Short-Term Memory) 구조를 가지는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치.
  21. 제18항에 있어서,
    상기 프로세서는,
    상기 주변 단어에 대한 주변 문맥 벡터의 평균을 계산하여 상기 문맥 문자 모델의 양방향에 대한 초기 상태로 설정하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치.
  22. 제18항에 있어서,
    상기 프로세서는,
    상기 연결된 순방향 은닉 상태 및 역방향 은닉 상태를 밀집 레이어(Dense layer)를 거친 차원 축소를 통해 상기 미등록 단어의 임베딩을 예측하는, 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 장치.
KR1020190038587A 2019-04-02 2019-04-02 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치 KR102227939B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190038587A KR102227939B1 (ko) 2019-04-02 2019-04-02 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치
PCT/KR2020/003000 WO2020204364A2 (ko) 2019-04-02 2020-03-03 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190038587A KR102227939B1 (ko) 2019-04-02 2019-04-02 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200116760A KR20200116760A (ko) 2020-10-13
KR102227939B1 true KR102227939B1 (ko) 2021-03-15

Family

ID=72667172

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190038587A KR102227939B1 (ko) 2019-04-02 2019-04-02 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치

Country Status (2)

Country Link
KR (1) KR102227939B1 (ko)
WO (1) WO2020204364A2 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102586569B1 (ko) 2020-11-12 2023-10-10 주식회사 엔씨소프트 아이템 임베딩 장치 및 방법
KR102614912B1 (ko) * 2021-02-10 2023-12-19 주식회사 페어랩스 딥러닝 기반 특허 잠재가치 평가 장치 및 그 방법
CN113190602B (zh) * 2021-04-09 2022-03-25 桂林电子科技大学 融合字词特征与深度学习的事件联合抽取方法
CN113254637B (zh) * 2021-05-07 2023-04-07 山东师范大学 一种融合语法的方面级文本情感分类方法及系统
KR102574512B1 (ko) * 2021-08-19 2023-09-05 성균관대학교산학협력단 은유 탐지 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004070636A (ja) 2002-08-06 2004-03-04 Mitsubishi Electric Corp 概念検索装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7265837B2 (ja) * 2017-07-20 2023-04-27 ヤフー株式会社 学習装置および学習方法
KR102012404B1 (ko) * 2017-08-18 2019-08-20 동아대학교 산학협력단 언어 분석기별 정답 레이블 분포를 이용한 자연어 이해 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004070636A (ja) 2002-08-06 2004-03-04 Mitsubishi Electric Corp 概念検索装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Bazzi, Modelling out-of-vocabulary words for robust speech recognition, MIT Press, available on https://dspace.mit.edu/handle/1721.1/29241 (2002)*
F. Horn, Context encoders as a simple but powerful extension of word2vec, arXiv:1706.02496v1 (2017.06.08)*
M. Seo et al., Bi-directional attention flow for machine comprehension, ICLR 2017*
R. Sennrich et al., Neural Machine Translation of Rare Words with Subword Units, arXiv:1508.07909v5 (2016.06.10)

Also Published As

Publication number Publication date
KR20200116760A (ko) 2020-10-13
WO2020204364A2 (ko) 2020-10-08
WO2020204364A3 (ko) 2020-11-19

Similar Documents

Publication Publication Date Title
KR102227939B1 (ko) 단어의 문맥 정보와 형태론적 정보를 고려한 단어 임베딩 방법 및 장치
CN109933780B (zh) 使用深度学习技术确定文档中的上下文阅读顺序
US5610812A (en) Contextual tagger utilizing deterministic finite state transducer
US20180189272A1 (en) Apparatus and method for sentence abstraction
Davel et al. Pronunciation prediction with default&refine
CN112905735A (zh) 用于自然语言处理的方法和设备
KR102143745B1 (ko) 음절 기반의 벡터를 이용한 한글 오류 보정 방법 및 한글 오류 보정 시스템
JP6649536B1 (ja) 対話処理装置、学習装置、対話処理方法、学習方法及びプログラム
CN110347799A (zh) 语言模型训练方法、装置和计算机设备
CN113239666B (zh) 一种文本相似度计算方法及系统
WO2021117180A1 (ja) 対話処理装置、学習装置、対話処理方法、学習方法及びプログラム
CN112668317A (zh) 用于确定输出词法单元的方法和设备
CN114925703A (zh) 一种多粒度文本表示和图文融合的视觉问答方法及系统
US20220139386A1 (en) System and method for chinese punctuation restoration using sub-character information
JP2020118929A (ja) 要約生成装置、方法、プログラム、及び記憶媒体
CN113743117B (zh) 用于实体标注的方法和装置
CN111368531B (zh) 翻译文本处理方法、装置、计算机设备和存储介质
JP5980142B2 (ja) 学習データ選択装置、識別的音声認識精度推定装置、学習データ選択方法、識別的音声認識精度推定方法、プログラム
KR102519618B1 (ko) 단대단 신경망 번역 시스템 및 그 방법
CN112052651B (zh) 诗词生成方法、装置、电子设备及存储介质
JP4405542B2 (ja) 音素モデルをクラスタリングする装置、方法およびプログラム
KR20210044003A (ko) 단어 임베딩 방법 및 장치와 단어 검색 방법
KR102236639B1 (ko) 음절 기반의 벡터를 이용한 한글 오류 보정 방법 및 한글 오류 보정 시스템
KR102561817B1 (ko) 어족 기반 지식 증류 기법을 적용한 다국어 신경망 기계 번역 시스템, 장치 및 방법
JP4226942B2 (ja) アクセント位置推定方法、装置およびプログラム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant