KR102280856B1 - 문서 임베딩을 생성하는 장치 및 방법 - Google Patents

문서 임베딩을 생성하는 장치 및 방법 Download PDF

Info

Publication number
KR102280856B1
KR102280856B1 KR1020190113642A KR20190113642A KR102280856B1 KR 102280856 B1 KR102280856 B1 KR 102280856B1 KR 1020190113642 A KR1020190113642 A KR 1020190113642A KR 20190113642 A KR20190113642 A KR 20190113642A KR 102280856 B1 KR102280856 B1 KR 102280856B1
Authority
KR
South Korea
Prior art keywords
domain
embedding
word
document
words
Prior art date
Application number
KR1020190113642A
Other languages
English (en)
Other versions
KR20210032612A (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 KR1020190113642A priority Critical patent/KR102280856B1/ko
Publication of KR20210032612A publication Critical patent/KR20210032612A/ko
Application granted granted Critical
Publication of KR102280856B1 publication Critical patent/KR102280856B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Machine Translation (AREA)

Abstract

문서 임베딩(document embedding)을 생성하는 장치는, 뉴럴 네트워크(neural network)를 구현하기 위한 프로그램을 저장하는 메모리, 및 프로그램을 실행함으로써 문서 임베딩을 생성하는 프로세서를 포함하고, 프로세서는, 제1 도메인 및 제2 도메인 중 어느 하나에 포함되는 문서들 각각의 문서 임베딩 초기값, 및 문서들에 포함되는 전체 워드들 각각의 워드 임베딩 초기값을 설정하고, 뉴럴 네트워크에 대하여 제1 도메인 및 제2 도메인 간의 도메인 적응(domain adaptation)을 위한 제1 트레이닝을 수행함으로써 워드 임베딩 초기값을 워드 임베딩 최종값으로 업데이트하고, 워드 임베딩 최종값에 기초하여 뉴럴 네트워크에 대하여 도메인 적응을 위한 제2 트레이닝을 수행함으로써 문서 임베딩 초기값을 문서 임베딩 최종값으로 업데이트한다.

Description

문서 임베딩을 생성하는 장치 및 방법{APPARATUS AND METHOD FOR GENERATING DOCUMENT EMBEDDING}
본 개시는 문서 임베딩(document embedding)을 생성하는 장치 및 방법에 관한 것이다. 보다 상세하게는, 본 개시는 뉴럴 네트워크(neural network)를 기반으로 서로 다른 도메인들 간의 도메인 적응(domain adaptation)을 활용하여 문서를 수치적으로 나타내는 문서 임베딩을 생성하는 장치 및 방법에 관한 것이다.
문서(document)는 복수의 워드(word)들을 포함하는 데이터의 한 종류로서 다양한 정보를 제공할 수 있다. 문서로부터 제공되는 정보를 활용하기 위해 문서에 대한 검색 또는 분류 등의 처리가 수행될 수 있다. 문서에 대한 처리가 원활하게 수행되기 위해서는 문서가 적절한 형식으로 표현될 것이 요구될 수 있다. 특히, 자연어 처리 등과 같이 문서를 대상으로 하는 머신 러닝이 수행되기 위해서는 문서가 수치적으로 표현될 것이 요구될 수 있다.
문서의 수치화는 문서에 포함되는 워드들에 대한 수치화를 통해 수행될 수 있다. 워드의 수치화는 분산 표현(distributed representation) 방식에 따라 수행될 수 있다. 워드가 수치화되는 경우 워드가 N개의 성분들로 구성되는 워드 임베딩(word embedding)으로 표현될 수 있고, 워드의 다양한 의미들이 워드 임베딩의 각 성분에 분산화되어 반영될 수 있다. 문서를 수치적으로 나타내는 문서 임베딩 또한 문서에 포함되는 워드들의 워드 임베딩들로부터 도출될 수 있다.
문서는 도메인에 포함될 수 있다. 공통적인 특징을 갖는 문서들은 동일한 도메인에 포함될 수 있다. 한편, 특정 도메인에 포함되는 문서들의 문서 임베딩을 생성하는 방식을 다른 도메인에 적용하는 경우, 다른 도메인의 특징이 문서 임베딩에 적절하게 반영되지 못할 수 있다. 따라서, 서로 다른 도메인들에 포함되는 문서들에 대해서도 문서 임베딩을 적절하게 생성하기 위한 기술이 요구될 수 있다.
특허문헌 1: 한국 공개특허공보 제10-2016-0117516호 특허문헌 2: 미국 등록특허공보 제9740680호
본 개시로부터 해결하고자 하는 기술적 과제는 서로 다른 도메인들에 포함되는 문서들의 문서 임베딩을 생성하는 경우 문서 임베딩에 서로 다른 도메인들의 서로 다른 특징들이 모두 반영될 수 있도록 문서 임베딩을 생성하는 장치 및 방법을 제공하는 것이다.
전술한 기술적 과제를 해결하기 위한 수단으로서, 본 개시의 일 측면에 따른 문서 임베딩(document embedding)을 생성하는 장치는, 뉴럴 네트워크(neural network)를 구현하기 위한 프로그램을 저장하는 메모리; 및 상기 프로그램을 실행함으로써 상기 문서 임베딩을 생성하는 프로세서를 포함하고, 상기 프로세서는, 제1 도메인 및 제2 도메인 중 어느 하나에 포함되는 문서들 각각의 문서 임베딩 초기값, 및 상기 문서들에 포함되는 전체 워드들 각각의 워드 임베딩 초기값을 설정하고, 상기 뉴럴 네트워크에 대하여 상기 제1 도메인 및 상기 제2 도메인 간의 도메인 적응(domain adaptation)을 위한 제1 트레이닝을 수행함으로써 상기 워드 임베딩 초기값을 워드 임베딩 최종값으로 업데이트하고, 상기 워드 임베딩 최종값에 기초하여 상기 뉴럴 네트워크에 대하여 상기 도메인 적응을 위한 제2 트레이닝을 수행함으로써 상기 문서 임베딩 초기값을 문서 임베딩 최종값으로 업데이트한다.
본 개시의 다른 측면에 따른 뉴럴 네트워크(neural network)를 구현하기 위한 프로그램을 실행함으로써 문서 임베딩(document embedding)을 생성하는 방법은, 제1 도메인 및 제2 도메인 중 어느 하나에 포함되는 문서들 각각에 대한 문서 임베딩 초기값, 및 상기 문서들에 포함되는 전체 워드들 각각에 대한 워드 임베딩 초기값을 설정하는 단계; 상기 뉴럴 네트워크에 대하여 상기 제1 도메인 및 상기 제2 도메인 간의 도메인 적응(domain adaptation)을 위한 제1 트레이닝을 수행함으로써 상기 워드 임베딩 초기값을 워드 임베딩 최종값으로 업데이트하는 단계; 및 상기 워드 임베딩 최종값에 기초하여 상기 뉴럴 네트워크에 대하여 상기 도메인 적응을 위한 제2 트레이닝을 수행함으로써 상기 문서 임베딩 초기값을 문서 임베딩 최종값으로 업데이트하는 단계를 포함한다.
본 개시에 따른 장치 및 방법에 의해 문서 임베딩을 생성하기 위한 뉴럴 네트워크가 도메인 적응을 위한 제1 트레이닝 및 제2 트레이닝에 따라 학습될 수 있으므로, 서로 다른 제1 도메인 및 제2 도메인에 포함되는 문서들의 문서 임베딩이 적절하게 생성될 수 있다. 즉, 문서 임베딩에 제1 도메인의 특징 및 제2 도메인의 특징이 모두 반영될 수 있다.
도 1은 일부 실시예에 따른 서로 다른 도메인들에 포함되는 문서들로부터문서 임베딩이 생성되는 과정을 설명하기 위한 도면이다.
도 2는 일부 실시예에 따른 문서 임베딩을 생성하기 위한 뉴럴 네트워크를 설명하기 위한 도면이다.
도 3은 일부 실시예에 따른 문서 임베딩을 생성하는 장치를 구성하는 요소들을 나타내는 블록도이다.
도 4는 일부 실시예에 따른 문서 임베딩을 생성하는 과정을 설명하기 위한 의사코드(pseudocode)를 나타내는 도면이다.
도 5는 일부 실시예에 따른 문서 임베딩을 생성하는 방법을 구성하는 단계들을 나타내는 흐름도이다.
이하에서는 도면을 참조하여 본 개시의 실시예들이 상세하게 설명될 것이다. 이하에서의 설명은 실시예들을 구체화하기 위한 것일 뿐, 본 개시에 따른 권리범위를 제한하거나 한정하기 위한 것은 아니다. 본 개시에 관한 기술 분야에서 통상의 지식을 가진 자가 발명의 상세한 설명 및 실시예들로부터 용이하게 유추할 수 있는 것은 본 개시에 따른 권리범위에 속하는 것으로 해석되어야 한다.
본 개시에서 사용되는 용어는 본 개시에 관한 기술 분야에서 널리 사용되는 일반적인 용어로 기재되었으나, 본 개시에서 사용되는 용어의 의미는 해당 분야에 종사하는 기술자의 의도, 새로운 기술의 출현, 심사기준 또는 판례 등에 따라 달라질 수 있다. 일부 용어는 출원인에 의해 임의로 선정될 수 있고, 이 경우 임의로 선정되는 용어의 의미가 상세하게 설명될 것이다. 본 개시에서 사용되는 용어는 단지 사전적 의미만이 아닌, 명세서의 전반적인 맥락을 반영하는 의미로 해석되어야 한다.
본 개시에서 사용되는 '구성된다' 또는 '포함한다' 와 같은 용어는 명세서에 기재되는 구성 요소들 또는 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 일부 구성 요소들 또는 단계들은 포함되지 않는 경우, 및 추가적인 구성 요소들 또는 단계들이 더 포함되는 경우 또한 해당 용어로부터 의도되는 것으로 해석되어야 한다.
본 개시에서 사용되는 '제 1' 또는 '제 2' 와 같은 서수를 포함하는 용어는 다양한 구성 요소들 또는 단계들을 설명하기 위해 사용될 수 있으나, 해당 구성 요소들 또는 단계들은 서수에 의해 한정되지 않아야 한다. 서수를 포함하는 용어는 하나의 구성 요소 또는 단계를 다른 구성 요소들 또는 단계들로부터 구별하기 위한 용도로만 해석되어야 한다.
이하에서는 도면을 참조하여 본 개시의 실시예들이 상세하게 설명될 것이다. 본 개시에 관한 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 대해서는 자세한 설명이 생략된다.
도 1은 일부 실시예에 따른 서로 다른 도메인들에 포함되는 문서들로부터문서 임베딩이 생성되는 과정을 설명하기 위한 도면이다.
도 1을 참조하면, 제1 도메인(11) 및 제2 도메인(12)으로부터 전체 워드들(13)이 구축될 수 있다. 문서 임베딩을 생성하는 장치(300)는 뉴럴 네트워크(100)를 활용하여 전체 워드들(13)의 워드 임베딩들(14)을 생성할 수 있다. 장치(300)는 워드 임베딩들(14), 및 제1 도메인(11) 및 제2 도메인(12) 중 어느 하나에 포함되는 문서들(15)에 기초하여 문서 임베딩들(16)을 생성할 수 있다.
제1 도메인(11) 및 제2 도메인(12)은 서로 다른 도메인들을 의미할 수 있다. 제1 도메인(11)은 문서들(d11, d12, ... , d1N)을 포함할 수 있고, 제2 도메인(12)은 문서들(d21, d22, ... , d2M)을 포함할 수 있다. 제1 도메인(11)에 포함되는 문서들(d11, d12, ... , d1N)은 공통적인 특징을 가질 수 있고, 제2 도메인(12)에 포함되는 문서들(d21, d22, ... , d2M)은 제1 도메인(11)의 특징과는 상이한 다른 특징을 공통적으로 가질 수 있다.
제1 도메인(11) 또는 제2 도메인(12)에는 레이블(label)이 설정될 수 있다. 제1 도메인(11) 또는 제2 도메인(12)에 레이블이 설정되는 경우 레이블에 의해 해당 도메인에 포함되는 문서들의 특징이 표현될 수 있다. 예를 들면, 제1 도메인(11)은 레이블이 설정되어 제1 도메인(11)에 포함되는 문서들의 특징이 이미 알려진 소스 도메인(source domain)일 수 있고, 제2 도메인(12)은 레이블 없이 문서들의 공통적인 특징이 규명되지 않은 타겟 도메인(target domain)일 수 있다. 다만 이에 제한되는 것은 아니고, 제1 도메인(11) 및 제2 도메인(12)이 모두 각자의 레이블을 가지거나, 모두 레이블을 갖지 않을 수 있다.
제1 도메인(11)에 포함되는 문서들(d11, d12, ... , d1N) 및 제2 도메인(12)에 포함되는 문서들(d21, d22, ... , d2M)은 워드들을 포함할 수 있다. 제1 도메인(11) 또는 제2 도메인에 포함되는 각 문서는 워드, 문장(sentence) 및 단락(paragraph) 중 적어도 하나로 구성될 수 있다. 문장은 적어도 하나의 워드로 구성될 수 있고, 단락은 적어도 하나의 문장으로 구성될 수 있으므로, 각 문서는 결국 복수의 워드들로 이루어질 수 있다.
제1 도메인(11) 및 제2 도메인에 포함되는 워드들은 전체 워드들(13)을 구성할 수 있다. 전체 워드들(13)은 제1 도메인(11) 및 제2 도메인의 총 워드들로 이루어지는 워드 풀(word pool), 어휘(vocabulary) 또는 말뭉치(corpus)를 의미할 수 있다. 즉, 전체 워드들(13)에 포함되는 각 워드는 제1 도메인(11) 및 제2 도메인의 문서들 중 어느 하나에 포함될 수 있다. 전체 워드들(13)은 총 V개의 워드들(w1, w2, ... , wV)을 포함할 수 있다.
장치(300)는 뉴럴 네트워크(100)를 활용하여 전체 워드들(13)로부터 워드 임베딩들(14)을 생성할 수 있다. 장치(300)는 전체 워드들(13)의 V개의 워드들(w1, w2, ... , wV)에 각각 대응되는 V개의 워드 임베딩들(v_w1, v_w2, ... , v_wV)을 생성할 수 있다. V개의 워드 임베딩들(v_w1, v_w2, ... , v_wV)을 생성하는 과정은 뉴럴 네트워크(100)에 대한 학습을 통해 수행될 수 있다. V개의 워드 임베딩들(v_w1, v_w2, ... , v_wV) 각각에 대한 워드 임베딩 초기값이 설정될 수 있고, 이후 뉴럴 네트워크(100)의 학습에 의해 워드 임베딩 초기값이 워드 임베딩 최종값으로 업데이트될 수 있다. 뉴럴 네트워크(100)의 학습에 대한 구체적인 내용은 도 2를 통해 후술될 수 있다.
장치(300)는 뉴럴 네트워크(100)를 활용하여 문서 임베딩들(16)을 생성할 수 있다. 장치(300)는 학습이 완료된 워드 임베딩들(14)을 활용하여, 제1 도메인(11) 및 제2 도메인에 포함되는 문서들(15)에 대한 문서 임베딩들(16)을 생성할 수 있다. 워드 임베딩들(14)의 경우와 마찬가지로, 뉴럴 네트워크(100)의 학습을 통해 문서들(15) 각각의 문서 임베딩 초기값이 문서 임베딩 최종값으로 업데이트되어 문서 임베딩들(16)이 생성될 수 있다.
워드 임베딩들(14) 및 문서 임베딩들(16)은 분산 표현(distributed representation) 방식에 따라 워드 및 문서를 수치적으로 표현할 수 있다. 예를 들면, 워드 임베딩들(14) 각각은 N개의 성분들을 갖는 벡터일 수 있다. 뉴럴 네트워크(100)가 학습되는 경우 N개의 성분들의 수치들이 업데이트되어 최종값으로 확정될 수 있고, 확정된 N개의 수치들이 워드들(w1, w2, ... , wV) 각각의 다양한 의미를 나타낼 수 있다. 마찬가지로, 문서 임베딩들(16) 각각은 N개의 성분들을 갖는 벡터로서 문서들(15) 각각을 수치적으로 나타낼 수 있다.
문서 임베딩들(16)은 제1 도메인(11)의 특징 및 제2 도메인(12)의 특징을 모두 적절하게 반영할 수 있다. 뉴럴 네트워크(100)의 학습의 바탕이 되는 전체 워드들(13)이 제1 도메인(11) 및 제2 도메인(12) 모두로부터 형성될 수 있다는 점, 워드 임베딩들(14) 각각의 워드 임베딩 최종값을 도출하기 위한 학습에 제1 도메인(11) 및 제2 도메인 간의 도메인 적응(domain adaptation)이 적용될 수 있다는 점, 및 문서 임베딩들(16) 각각의 문서 임베딩 최종값을 도출하기 위한 학습에도 도메인 적응이 적용될 수 있다는 점을 고려하면, 도메인 적응에 의해 제1 도메인(11)의 특징 및 제2 도메인(12)의 특징 중 어느 하나만이 문서 임베딩들(16)에 반영되는 것이나 제1 도메인(11)의 특징 및 제2 도메인(12)의 특징이 희석되는 것이 방지될 수 있다.
도 2는 일부 실시예에 따른 문서 임베딩을 생성하기 위한 뉴럴 네트워크를 설명하기 위한 도면이다.
도 2를 참조하면, 학습 대상 문서(21)의 워드들에 기초하여 뉴럴 네트워크(100)가 학습되는 과정이 도시되어 있다. 학습 대상 문서(21)는 복수의 워드들로 구성될 수 있다.
학습 대상 문서(21)는 제1 도메인(11) 및 제2 도메인(12) 중 어느 하나에 포함되는 문서들(15) 중 어느 하나일 수 있다. 학습 대상 문서(21)의 워드들은 순차적으로 중심 워드(w_t)로 설정될 수 있다. 예를 들면, 학습 대상 문서(21)에 x 개의 워드들이 포함되는 경우 x 개의 워드들이 순차적으로 한 번씩 중심 워드(w_t)로 설정될 수 있다.
중심 워드(w_t)가 설정되는 경우, 중심 워드(w_t)로부터 일정 범위 내에 위치하는 워드들이 컨텍스트 워드(context word)들로 설정될 수 있다. 예를 들면, 중심 워드(w_t)의 전후 2개의 워드들로서 총 4개의 워드들(w_t-2, w_t-1, w_t+1 및 w_t+2)이 컨텍스트 워드들로 설정될 수 있다. 다만 이에 제한되는 것은 아니고, 컨텍스트 워드들의 개수 및 설정 범위는 다양하게 설정될 수 있다.
컨텍스트 워드들은 뉴럴 네트워크(100)에 입력될 수 있다. 뉴럴 네트워크(100)는 컨텍스트 워드들에 대한 일련의 처리 과정을 거쳐 확률 분포(22)를 출력할 수 있다. 확률 분포(22)는 컨텍스트 워드들이 주어지는 경우 전체 워드들(13) 각각이 중심 워드의 위치에 올 확률을 의미할 수 있다. 예를 들면, 전체 워드들(13)이 총 V개의 워드들인 경우, 확률 분포(22)는 V개의 확률들로서 워드(w1)가 중심 워드의 위치에 올 확률(p_1), 워드(w2)가 중심 워드의 위치에 올 확률(p_2), ... , 워드(wV)가 중심 워드의 위치에 올 확률(p_V)을 성분으로 가질 수 있다. 바람직하게는, 확률 분포(22)의 V개의 확률들의 총합은 1일 수 있다.
확률 분포(22)가 출력되는 경우, 확률 분포(22)를 중심 워드(w_t)와 비교함으로써 뉴럴 네트워크(100)의 학습이 수행될 수 있다. 예를 들면, 중심 워드(w_t)가 V개의 전체 워드들(13)에서 워드(w1)인 경우, 확률 분포(22)에서 확률(p_1)이 가장 높은 값을 갖도록 뉴럴 네트워크(100)가 학습될 수 있다. 다만 이에 제한되는 것은 아니고, 뉴럴 네트워크(100)가 학습되는 방향을 결정하는 손실 함수(loss function)는 다양한 방식으로 설정될 수 있다.
뉴럴 네트워크(100)는 입력 레이어(110), 히든 레이어(120) 및 출력 레이어(130)를 포함할 수 있다. 뉴럴 네트워크(100)는 입력 레이어(110)의 모든 노드(node)들이 히든 레이어(120)의 모든 노드들과 연결되고, 히든 레이어(120)의 모든 노드들이 출력 레이어(130)의 모든 노드들과 연결되는 풀리 커넥티드 네트워크(fully connected network)일 수 있다. 다만 이에 제한되는 것은 아니고, 뉴럴 네트워크(100)에는 추가적인 레이어들이 더 포함될 수 있고, 레이어들 간의 연결 관계 또한 필요에 따라 변경될 수 있다.
한편, 뉴럴 네트워크(100)는 CBOW(continuous bag of words) 방식으로 워드 임베딩 및 문서 임베딩을 생성하기 위한 네트워크일 수 있다. 본 명세서에서는 뉴럴 네트워크(100)가 CBOW 방식으로 구현되는 예시만이 설명되나, 본 명세서에 관한 기술 분야에서 통상의 지식을 가진 자라면 CBOW 방식뿐만 아니라, CBOW 방식과 역의 관계에 있는 스킵-그램(skip-gram) 방식에 따라서도 뉴럴 네트워크(100)가 구현될 수 있음을 이해할 수 있다.
입력 레이어(110)는 중심 워드(w_t)로부터 일정 범위 내에 위치하는 컨텍스트 워드들(w_t-2, w_t-1, w_t+1, w_t+2)에 대한 원 핫 벡터(one-hot vector)를 출력할 수 있다. 입력 레이어(110)는 4개의 컨텍스트 워드들(w_t-2, w_t-1, w_t+1, w_t+2)을 입력받아 4개의 원 핫 벡터들을 출력할 수 있다. 다만, 컨텍스트 워드들이 설정되는 방식에 따라, 입력 레이어(110)는 4개 외에도 다양한 개수의 컨텍스트 워드들을 입력받아 해당 개수의 원 핫 벡터들을 출력할 수도 있다.
원 핫 벡터는 하나의 성분만이 1의 값을 갖고, 나머지 성분들은 모두 0의 값을 갖는 벡터를 의미할 수 있다. 예를 들면, 컨텍스트 워드(w_t-2)가 V개의 워드들로 구성되는 전체 워드들(13)의 워드(w1)인 경우 컨텍스트 워드(w_t-2)에 대한 원 핫 벡터는 V개의 성분들 중 첫 번째 성분만이 1인 벡터 [1 0 0 ... 0]일 수 있고, 컨텍스트 워드(w_t-2)가 워드(wV)인 경우 컨텍스트 워드(w_t-2)에 대한 원 핫 벡터는 V개의 성분들 중 마지막 성분만이 1인 벡터 벡터 [0 0 ... 0 1]일 수 있다.
히든 레이어(120)는 원 핫 벡터들 및 입력 임베딩 행렬(W)에 대한 제1 연산의 결과를 출력할 수 있다. 입력 임베딩 행렬(W)은 (V x N)의 크기를 갖는 행렬일 수 있고, 전술한 바와 같이 원 핫 벡터들은 V개의 성분들을 갖는 (V x 1) 벡터일 수 있다. 이 때 N은 워드 임베딩들(14) 및 문서 임베딩들(14)이 갖는 성분들의 개수와 같을 수 있다. 컨텍스트 워드(w_t-2)에 대한 원 핫 벡터를 xt-2이라 할 때 제1 연산의 결과는 WT * xt-2으로서 N개의 성분들을 갖는 (N x 1) 벡터일 수 있다.
원 핫 벡터 xt-2는 하나의 성분만이 1이고 나머지 (V-1)개의 성분들은 0이므로, 제1 연산의 결과로서 WT * xt-2은 입력 임베딩 행렬(W)의 V개의 행들 중 어느 하나에 대응될 수 있다. 예를 들면, 컨텍스트 워드(w_t-2)가 전체 워드들(13)의 워드(w1)인 경우 WT * xt-2은 입력 임베딩 행렬(W)의 첫 번째 행을 전치(transpose)한 것과 동일할 수 있다. 따라서, 입력 임베딩 행렬(W)의 k번째 행의 N개의 성분들은 전체 워드들(13) 중 워드(wk)의 워드 임베딩을 나타낼 수 있다.
후술할 바와 같이, 워드(wk)의 워드 임베딩은 입력 임베딩 행렬(W)의 k번째 행 및 출력 임베딩 행렬(
Figure 112019094385104-pat00001
)의 k번째 열 중 적어도 하나를 의미할 수 있다. 입력 임베딩 행렬(W) 및 출력 임베딩 행렬(
Figure 112019094385104-pat00002
)은 뉴럴 네트워크(100)의 학습 전 임의의 분포로 초기화될 수 있고, 그에 따라 워드 임베딩 초기값이 설정될 수 있다. 이후 뉴럴 네트워크(100)의 학습에 의해 입력 임베딩 행렬(W) 및 출력 임베딩 행렬(
Figure 112019094385104-pat00003
)의 성분들이 업데이트되는 경우 워드 임베딩 초기값이 워드 임베딩 최종값으로 업데이트될 수 있다.
출력 레이어(130)는 제1 연산의 결과 및 출력 임베딩 행렬(
Figure 112019094385104-pat00004
)에 대한 제2 연산의 결과를 출력할 수 있다. 제2 연산의 결과는 전체 워드들(13) 각각이 중심 워드(w_t)에 해당할 확률일 수 있다. 즉, 제2 연산의 결과는 확률 분포(22)일 수 있고, 출력 레이어(130)는 소프트맥스 레이어(softmax layer)일 수 있다.
출력 임베딩 행렬(
Figure 112019094385104-pat00005
)은 (N x V)의 크기를 갖는 행렬일 수 있다. 원 핫 벡터를 xt-2에 대한 제1 연산의 결과를 (N x 1)의 크기를 갖는 벡터 ht-2라고 할 때, 벡터 ht-2 및 출력 임베딩 행렬(
Figure 112019094385104-pat00006
)에 대한 제2 연산의 결과는
Figure 112019094385104-pat00007
T * ht-2 로서 (V x 1) 벡터일 수 있다. 즉, 제2 연산의 결과는 확률 분포(22)로서 V개의 확률들을 성분들로 가질 수 있다.
입력 레이어(110)에 4개의 컨텍스트 워드들(w_t-2, w_t-1, w_t+1, w_t+2)이 입력되는 경우 출력 레이어(130)로부터 4개의 확률 분포(22)가 출력될 수 있다. 4개의 확률 분포(22) 각각에 대하여 중심 워드(w_t)와의 비교가 수행될 수 있고, 뉴럴 네트워크(100)에 의해 예측된 확률 분포(22) 및 실제의 중심 워드(w_t) 간의 차이를 감소시키는 방향으로 학습이 수행될 수 있다. 그에 따라, 입력 임베딩 행렬(W) 및 출력 임베딩 행렬(
Figure 112019094385104-pat00008
)의 성분들이 업데이트될 수 있다.
학습에 의한 입력 임베딩 행렬(W) 및 출력 임베딩 행렬(
Figure 112019094385104-pat00009
)의 성분들의 업데이트는 역전파(backpropagation)를 통해 수행될 수 있다. 역전파를 통한 업데이트의 방향을 나타내는 손실 함수가 정의될 수 있고, 손실 함수를 최소화하는 방향으로 입력 임베딩 행렬(W) 및 출력 임베딩 행렬(
Figure 112019094385104-pat00010
)의 성분들이 업데이트될 수 있다. 예를 들면, 역전파는 경사 하강법(gradient descent) 등의 방식으로 수행될 수 있고, 필요에 따라 다양한 옵티마이저(optimizer) 또는 학습율(learning rate) 등이 설정될 수 있다.
전술한 바와 같은, 입력 임베딩 행렬(W) 및 출력 임베딩 행렬(
Figure 112019094385104-pat00011
)의 성분들을 업데이트하는 과정은, 학습 대상 문서(21)에 포함되는 워드들 전부를 순차적으로 중심 워드(w_t)로 설정하여 반복적으로 수행될 수 있다. 또한, 제1 도메인(11) 및 제2 도메인(12) 중 어느 하나에 포함되는 문서들(15) 전부는 순차적으로 하나씩 학습 대상 문서(21)로 설정될 수 있고, 그에 따라 문서들(15) 전부에 대하여 순차적으로 학습 과정이 반복적으로 수행될 수 있다. 문서들(15) 각각에 대한 학습이 전부 완료되는 경우, 전체 워드들(13) 각각의 워드 임베딩이 워드 임베딩 최종값으로 업데이트될 수 있다.
워드 임베딩 최종값이 생성되는 경우, 뉴럴 네트워크(100)는 워드 임베딩 최종값을 활용하여 문서들(15) 각각의 문서 임베딩을 업데이트할 수 있다. 즉, 워드 임베딩 최종값은 더 이상 업데이트하지 않는 상태에서 뉴럴 네트워크(100)에 대한 추가적인 학습을 통해 문서들(15) 각각의 문서 임베딩 초기값을 문서 임베딩 최종값으로 업데이트할 수 있다. 문서 임베딩 최종값은 장치(300)의 최종 결과물로서 문서 임베딩들(16)을 의미할 수 있다.
뉴럴 네트워크(100)에 대한 학습, 즉 입력 임베딩 행렬(W) 및 출력 임베딩 행렬(
Figure 112019094385104-pat00012
)의 성분들을 업데이트하는 학습, 및 그에 따른 워드 임베딩 최종값을 활용하여 문서 임베딩을 업데이트하는 학습의 연산량을 감소시키기 위하여, 네거티브 샘플링(negative sampling)이 수행될 수 있다. 또한, 네거티브 샘플링에 제1 도메인(11) 및 제2 도메인(12) 간의 도메인 적응이 반영될 수 있어, 다양한 도메인들에 대해서도 각 도메인의 특성을 적절하게 반영하는 문서 임베딩이 생성될 수 있다. 네거티브 샘플링 및 도메인 적응에 대한 구체적인 내용은 도 4를 통해 후술될 수 있다.
도 3은 일부 실시예에 따른 문서 임베딩을 생성하는 장치를 구성하는 요소들을 나타내는 블록도이다.
도 3을 참조하면, 문서 임베딩을 생성하는 장치(300)는 메모리(310) 및 프로세서(320)를 포함할 수 있다. 다만 이에 제한되는 것은 아니고, 도 3에 도시되는 구성 요소들 외에 다른 범용적인 구성 요소들이 장치(300)에 더 포함될 수 있다.
장치(300)는 뉴럴 네트워크(100)를 활용하여 문서 임베딩을 생성하는 다양한 디바이스들에 해당할 수 있다. 예를 들면, 장치(300)는 PC, 서버 디바이스, 스마트폰, 태블릿 피씨 및 기타 모바일 디바이스 등과 같은 다양한 종류의 컴퓨팅 디바이스일 수 있다.
메모리(310)는 뉴럴 네트워크(100)를 구현하는 프로그램을 저장할 수 있다. 뉴럴 네트워크(100)를 구성하는 레이어들 및 각 레이어를 구성하는 노드들에 관한 정보, 뉴럴 네트워크(100)에 대한 학습에 의해 업데이트되는 입력 임베딩 행렬(W) 및 출력 임베딩 행렬(
Figure 112019094385104-pat00013
)의 성분들 등이 적어도 하나의 명령어 또는 프로그램의 형태로 메모리(310)에 저장될 수 있다.
메모리(310) 는 ROM(read only memory), PROM(programmable ROM), EPROM(electrically programmable ROM), EEPROM(electrically erasable and programmable ROM), 플래시 메모리(flash memory), PRAM(phase-change RAM), MRAM(magnetic RAM), RRAM(resistive RAM), FRAM(ferroelectric RAM) 등과 같은 비휘발성 메모리로 구현될 수 있고, 또는 DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous DRAM), PRAM(phase-change RAM), RRAM(resistive RAM), FeRAM(ferroelectric RAM) 등의 휘발성 메모리로 구현될 수 있다. 또한, 메모리(310)는 HDD(hard disk drive), SSD(solid state drive), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital) 등으로 구현될 수도 있다.
프로세서(320)는 메모리(310)에 저장되는 프로그램을 실행함으로써 문서임베딩을 생성할 수 있다. 프로세서(320)는 뉴럴 네트워크(100)를 학습시킬 수 있고, 학습이 완료된 뉴럴 네트워크(100)를 활용하여 문서 임베딩을 생성할 수 있다. 또한, 프로세서(320)는 장치(300)를 제어하기 위한 전반적인 기능을 수행할 수 있고, 장치(300) 내부의 각종 연산들을 처리할 수 있다.
프로세서(320)는 다수의 논리 게이트들의 어레이 또는 범용적인 마이크로 프로세서로 구현될 수 있다. 프로세서(320)는 단일의 프로세서 또는 복수의 프로세서들로 구성될 수 있다. 프로세서(320)는 프로그램을 저장하는 메모리(310)와 별개의 구성이 아닌, 메모리(310)와 함께 일체로 구성될 수도 있다. 프로세서(320)는 장치(300) 내에 구비되는 CPU(central processing unit), GPU(graphics processing unit) 및 AP(application processor) 중 적어도 하나일 수 있으나, 이는 예시에 불과할 뿐, 프로세서(320)는 다른 다양한 형태로도 구현될 수 있다.
프로세서(320)는 제1 도메인(11) 및 제2 도메인(12) 중 어느 하나에 포함되는 문서들(15) 각각의 문서 임베딩 초기값, 및 문서들(15)에 포함되는 전체 워드들(13) 각각의 워드 임베딩 초기값을 설정할 수 있다. 최종 결과물인 문서 임베딩들(16)을 생성하기 위한 전제로서, 프로세서(320)는 워드 임베딩 초기값 및 문서 임베딩 초기값을 설정할 수 있고, 뉴럴 네트워크(100)를 학습시킴으로써 워드 임베딩 초기값을 워드 임베딩 최종값으로 업데이트하고, 문서 임베딩 초기값을 문서 임베딩 최종값으로 업데이트할 수 있다.
워드 임베딩 초기값 및 문서 임베딩 초기값은 무작위로 설정될 수 있다. 워드 임베딩 및 문서 임베딩이 N개의 성분들로 구성되는 (N x 1) 벡터이고, 전체 워드들(13)이 V개의 워드들로 구성되며, 제1 도메인(11)에는 n개의 문서들이 포함되고, 제2 도메인(12)에는 m개의 문서들이 포함되는 경우, 프로세서(320)는 N차원의 벡터 공간에 V개의 워드 임베딩들을 무작위로 초기화할 수 있고, N차원의 벡터 공간에 (n + m)개의 문서 임베딩들을 무작위로 초기화할 수 있다.
프로세서(320)는 뉴럴 네트워크(100)에 대하여 제1 도메인(11) 및 제2 도메인(12) 간의 도메인 적응(domain adaptation)을 위한 제1 트레이닝을 수행함으로써 워드 임베딩 초기값을 워드 임베딩 최종값으로 업데이트할 수 있다. 도 2에서 전술한 바와 같이, 뉴럴 네트워크(100)의 학습에 의해 입력 임베딩 행렬(W) 및 출력 임베딩 행렬(
Figure 112019094385104-pat00014
)의 성분들이 업데이트되는 경우 워드 임베딩 초기값이 워드 임베딩 최종값으로 업데이트될 수 있다. 프로세서(320)는 입력 임베딩 행렬(W) 및 출력 임베딩 행렬(
Figure 112019094385104-pat00015
)의 성분들을 업데이트하기 위해 뉴럴 네트워크(100)에 대한 제1 트레이닝을 수행할 수 있다.
뉴럴 네트워크(100)에 대하여 제1 트레이닝이 수행되는 경우 전체 워드들(13) 각각의 워드 임베딩이 확정될 수 있다. 즉, N차원의 벡터 공간에서 전체 워드들(13)의 V개의 워드들에 대한 V개의 워드 임베딩들(14)의 상대적인 위치가 확정될 수 있다. 확정된 V개의 워드 임베딩들(14) 각각의 워드 임베딩 최종값은 문서 임베딩들(16) 각각의 문서 임베딩 최종값을 도출하기 위한 기초가 될 수 있다.
프로세서(320)는 워드 임베딩 최종값에 기초하여 뉴럴 네트워크(100)에 대하여 도메인 적응을 위한 제2 트레이닝을 수행함으로써 문서 임베딩 초기값을 문서 임베딩 최종값으로 업데이트할 수 있다. 제2 트레이닝을 통해 N차원의 벡터 공간에서 (n + m)개의 문서 임베딩들(16)의 상대적인 위치 관계가 재설정되어 문서 임베딩 최종값이 결정될 수 있다. 그에 따라, 제1 도메인(11)의 n개의 문서들 및 제2 도메인(12)의 m개의 문서들이 문서 임베딩 최종값에 의해 수치적으로 표현될 수 있다.
뉴럴 네트워크(100)에 대한 제1 트레이닝 및 제2 트레이닝에 의해 제1 도메인(11) 및 제2 도메인(12) 간의 도메인 적응이 적용될 수 있다. 도메인 적응에 의해 문서 임베딩들(16)에 제1 도메인(11)의 특징 및 제2 도메인(12)의 특징이 모두 반영될 수 있다. 즉, 제1 도메인(11)의 n개의 문서들의 문서 도메인들에도 제2 도메인(12)의 특징이 반영될 수 있고, 제2 도메인(12)의 m개의 문서들의 문서 도메인들에도 제1 도메인(11)의 특징이 반영될 수 있다. 그에 따라, 서로 다른 도메인들의 문서들에 대해서도 적합한 문서 도메인을 생성하는 것이 가능해질 수 있다.
도 4는 일부 실시예에 따른 문서 임베딩을 생성하는 과정을 설명하기 위한 의사코드(pseudocode)를 나타내는 도면이다.
도 4를 참조하면, 문서 임베딩을 생성하는 과정을 설명하기 위한 의사코드(40)는 코드(41), 코드(42), 코드(43) 및 코드(44)를 포함할 수 있다. 다만 이에 제한되는 것은 아니고, 도 4에 도시되는 코드들 외에 다른 범용적인 기능을 수행하기 위한 코드들이 의사코드(40)에 더 포함될 수 있다.
코드(41)에서, 장치(300)에 대한 입력 및 출력이 정의될 수 있고, 문서 임베딩을 생성하기 위한 각종 파라미터들이 설정될 수 있다. 입력은 소스 도메인(DS) 및 타겟 도메인(DT)의 문서들일 수 있고, 출력은 입력에 대한 문서 임베딩(vd) 및 워드 임베딩(vw)일 수 있다. 여기서 소스 도메인(DS)은 제1 도메인(11)에, 타겟 도메인(DT)은 제2 도메인(12)에 대응될 수 있다.
문서 임베딩을 생성하기 위한 각종 파라미터들로서, 윈도우 크기(c), 미니멈 카운트(m) 및 네거티브 카운트(k) 등이 설정될 수 있다. 윈도우 크기(c)는 중심 워드로부터 컨텍스트 워드들을 결정하기 위한 것일 수 있다. 미니멈 카운트(m)는 문서들(15)에 포함되는 전체 워드들(13)을 필터링하기 위한 것으로서, 전체 워드들(13) 중에서, 문서들(15)에서 등장하는 횟수가 미니멈 카운트(m) 이상인 워드들만이 고려 대상이 될 수 있다.
문서 임베딩을 생성하기 위한 파라미터로서 네거티브 카운트(k)가 설정될 수 있다. 네거티브 카운트(k)는 네거티브 샘플링(negative sampling)을 통해 추출되는 네거티브 샘플들의 개수를 의미할 수 있다. 네거티브 샘플링은 뉴럴 네트워크(100)에 대한 제1 트레이닝 및 제2 트레이닝의 연산량을 감소시키기 위한 것일 수 있다. 네거티브 샘플링은 제1 트레이닝 및 제2 트레이닝의 세부 과정을 전체 워드들(13) 전부에 대해 수행하는 대신, 추출되는 k개의 네거티브 샘플들에 대해서만 수행되도록 하는 것을 의미할 수 있다.
네거티브 샘플링은 노이즈 분포(noise distribution)에 따라 수행될 수 있다. 노이즈 분포가 설정되는 방식에 따라 k개의 네거티브 샘플들이 추출될 수 있다. 네거티브 카운트(k)의 값은 적정한 수치로 설정될 수 있다. 예를 들면, 네거티브 카운트(k)의 값은 10 내외로 설정될 수 있다. 또는, 네거티브 카운트(k)의 값은 5 이상 20 이하일 수 있다. 다만 이에 제한되는 것은 아니고, 네거티브 카운트(k)는 필요에 따라 다양한 값으로 설정될 수 있다.
네거티브 샘플링의 노이즈 분포에는 도메인 적응이 반영될 수 있다. 즉, 제1 도메인(11) 또는 제2 도메인(12)에 관한 정보가 노이즈 분포를 설정하는 과정에서 활용될 수 있다. 예를 들면, 학습 대상 문서(21)가 제1 도메인(11)에 속하는 문서인 경우 노이즈 분포는 제1 도메인(11)의 워드 빈도(word frequency)에 기초하여 설정될 수 있다. 또는, 학습 대상 문서(21)가 제2 도메인(12)에 속하는 문서인 경우 노이즈 분포는 제2 도메인(12)의 워드 빈도에 기초하여 설정될 수 있다. 그 외에도, 도메인 적응을 반영할 수 있는 다양한 방식으로 노이즈 분포가 결정될 수 있다.
코드(42)에서, 프로세서(320)는 뉴럴 네트워크(100)에 대한 제1 트레이닝 및 제2 트레이닝을 수행하기 위한 전제로서, 각종 전처리를 수행할 수 있다. 미니멈 카운트(m)가 설정되는 경우, 프로세서(320)는 문서들(15)에 포함되는 전체 워드들(13) 중 등장 횟수가 미니멈 카운트(m) 이상인 워드들에 대해서만 워드 임베딩 초기값을 설정할 수 있다.
프로세서(320)는 소스 도메인(DS)의 워드 빈도(FS) 및 타겟 도메인(DT)의 워드 빈도(FT)를 획득할 수 있다. 소스 도메인(DS)의 워드 빈도(FS)는 소스 도메인(DS)에 포함되는 워드들이 얼마나 자주 등장하는지를 나타낼 수 있고, 타겟 도메인(DT)의 워드 빈도(FT)는 타겟 도메인(DT)에 포함되는 워드들이 얼마나 자주 등장하는지를 나타낼 수 있다. 소스 도메인(DS)의 워드 빈도(FS) 및 타겟 도메인(DT)의 워드 빈도(FT)는 이후 네거티브 샘플링의 노이즈 분포로서 활용될 수 있다.
프로세서(320)는 입력 문서 임베딩(vd), 출력 문서 임베딩(
Figure 112019094385104-pat00016
d), 입력 워드 임베딩(vw) 및 출력 워드 임베딩(
Figure 112019094385104-pat00017
w)을 초기화할 수 있다. 입력 워드 임베딩(vw)는 입력 임베딩 행렬(W)의 하나의 행에 대응될 수 있고, 출력 워드 임베딩(
Figure 112019094385104-pat00018
w)은 출력 임베딩 행렬(
Figure 112019094385104-pat00019
)의 하나의 열에 대응될 수 있다. 본 명세서에서, 전체 워드들(13) 각각의 워드 임베딩은 입력 워드 임베딩(vw) 및 출력 워드 임베딩(
Figure 112019094385104-pat00020
w) 중 적어도 하나를 의미할 수 있고, 문서들(15) 각각의 문서 임베딩은 입력 문서 임베딩(vd), 출력 문서 임베딩(
Figure 112019094385104-pat00021
d) 중 적어도 하나를 의미할 수 있다. 입력 워드 임베딩(vw) 및 출력 워드 임베딩(
Figure 112019094385104-pat00022
w)이 초기화되는 경우 워드 임베딩 초기값이 생성될 수 있고, 입력 문서 임베딩(vd), 출력 문서 임베딩(
Figure 112019094385104-pat00023
d)이 초기화되는 경우 문서 임베딩 초기값이 생성될 수 있다.
코드(43)에서, 프로세서(320)는 뉴럴 네트워크(100)에 대한 제1 트레이닝을 수행할 수 있다. 구체적으로, 프로세서(320)는 i) 문서들(15) 각각을 순차적으로 학습 대상 문서(21)로 설정하고, ii) 학습 대상 문서(21)에 포함되는 워드들 각각을 순차적으로 중심 워드(w_t)로, 중심 워드(w_t)로부터 일정 범위 내에 위치하는 워드들을 컨텍스트 워드들(w_t-2, ... , w_t+2)로 설정하고, iii) 학습 대상 문서(21)가 어떤 도메인에 포함되는지에 따라 제1 도메인(11) 및 제2 도메인(12) 중 어느 하나로부터 네거티브 샘플들을 추출하고, iv) 중심 워드(w_t), 컨텍스트 워드들(w_t-2, ... , w_t+2) 및 네거티브 샘플들 상호간의 유사도에 기초하여 제1 트레이닝을 수행할 수 있다.
i) 프로세서(320)는 문서들(15) 각각을 순차적으로 학습 대상 문서(21)로 설정할 수 있다. 문서들(15)이 (n + m)개의 문서들인 경우 (n + m)개의 문서들 각각에 대하여 학습 대상 문서(21)가 (n + m)회 설정될 수 있다.
ii) 프로세서(320)는 학습 대상 문서(21)에 포함되는 워드들 각각을 순차적으로 중심 워드(w_t)로, 중심 워드(w_t)로부터 일정 범위 내에 위치하는 워드들을 컨텍스트 워드들(w_t-2, ... , w_t+2)로 설정할 수 있다. 예를 들면, 문서(d)가 현재 학습 대상 문서(21)이고, 문서(d)에 Vd개의 워드들이 포함되는 경우, Vd개의 워드들 각각에 대하여 중심 워드(w_t)가 Vd회 설정될 수 있고, 그로부터 컨텍스트 워드들 또한 Vd회 설정될 수 있다.
iii) 프로세서(320)는 학습 대상 문서(21)가 어떤 도메인에 포함되는지에 따라 제1 도메인(11) 및 제2 도메인(12) 중 어느 하나로부터 네거티브 샘플들을 추출할 수 있다. 학습 대상 문서(21)는 제1 도메인(11)(소스 도메인 DS) 및 제2 도메인(12)(타겟 도메인 DT) 중 어느 하나에 포함될 수 있다. 학습 대상 문서(21)가 어떤 도메인에 포함되는지에 대한 고려 없이 전체 워드들(13)로부터 네거티브 샘플들을 추출하는 경우, 제1 도메인(11) 및 제2 도메인(12)이 서로 분리되어 존재하는 의미가 퇴색될 수 있고, 제1 도메인(11)의 특징 및 제2 도메인(12)의 특징 모두가 희석될 수 있다. 이를 방지하기 위하여, 네거티브 샘플들은 제1 도메인(11) 및 제2 도메인(12) 중 어느 하나로부터만 추출될 수 있다.
프로세서(320)는 학습 대상 문서(21)가 제1 도메인(11)에 포함되는 경우 제1 도메인(11)의 워드 빈도(word frequency)에 기초하여 설정되는 노이즈 분포에 따라 네거티브 샘플들을 추출할 수 있고, 학습 대상 문서(21)가 제2 도메인(12)에 포함되는 경우 제2 도메인(12)의 워드 빈도에 기초하여 설정되는 노이즈 분포에 따라 네거티브 샘플들을 추출할 수 있다.
예를 들면, 프로세서(320)는 학습 대상 문서(21)가 제1 도메인(11)(소스 도메인 DS)에 포함되는 경우 소스 도메인(DS)의 워드 빈도(FS)의 3/4승을 노이즈 분포로 하여 네거티브 샘플들을 추출할 수 있고, 학습 대상 문서(21)가 제2 도메인(12)(타겟 도메인 DT)에 포함되는 경우 타겟 도메인(DT)의 워드 빈도(FT)의 3/4승을 노이즈 분포로 하여 네거티브 샘플들을 추출할 수 있다. 다만 이에 제한되는 것은 아니고, 워드 빈도 생성시에 유니그램(unigram) 방식 외에 다른 N-그램(N-gram) 방식이 활용될 수도 있고, 3/4승 외의 다른 수치가 활용될 수도 있다.
iv) 프로세서(320)는 중심 워드(w_t), 컨텍스트 워드들(w_t-2, ... , w_t+2) 및 네거티브 샘플들 상호간의 유사도에 기초하여 제1 트레이닝을 수행할 수 있다. 상호간의 유사도는 다양한 방식으로 표현될 수 있다. 예를 들면, 임의의 두 워드들 간의 유사도는 두 워드들에 대응되는 두 워드 임베딩들의 N차원 벡터 공간에서의 거리를 의미할 수 있다. 벡터 공간에서의 거리는 두 워드 임베딩들의 내적(inner product)를 활용한 코사인 유사도(cosine similarity) 또는 유클리드 거리(Euclidean distance) 등으로 표현될 수 있다.
프로세서(320)는 중심 워드(w_t)의 워드 임베딩 및 컨텍스트 워드들(w_t-2, ... , w_t+2) 각각의 워드 임베딩 간의 거리는 감소하고, 중심 워드(w_t)의 워드 임베딩 및 네거티브 샘플들 각각의 워드 임베딩 간의 거리는 증가하도록 제1 트레이닝을 수행할 수 있다. 컨텍스트 워드들(w_t-2, ... , w_t+2)은 중심 워드(w_t)로부터 일정 범위 내에 위치하므로, 중심 워드(w_t)의 워드 임베딩 및 컨텍스트 워드들(w_t-2, ... , w_t+2) 각각의 워드 임베딩 간의 거리는 가까운 것이 바람직하고, 중심 워드(w_t)로부터 일정 범위 내에 위치하지 않는 네거티브 샘플들의 경우, 중심 워드(w_t)의 워드 임베딩 및 네거티브 샘플들 각각의 워드 임베딩 간의 거리는 먼 것이 바람직할 수 있다.
프로세서(320)는 순차적으로 모든 학습 대상 문서(21) 및 모든 중심 워드(w_t)에 대하여 이와 같은 거리 조정을 반복함으로써, 전체 워드들(13) 상호간의 의미 관계가 상호간의 거리 내지 유사도로 나타나도록 하는 제1 트레이닝을 수행할 수 있고, 그에 따라 전체 워드들(13) 각각의 워드 임베딩 초기값이 워드 임베딩 최종값으로 업데이트될 수 있다.
한편, 위와 같은 제1 트레이닝은 역전파(backpropagation)를 통해 수행될 수 있다. 역전파는 손실 함수를 최소화하는 방향으로 수행될 수 있다. 제1 트레이닝의 손실 함수는 코드(43)의 'Backprop loss'와 같이 표현될 수 있다. 'Backprop loss'의 첫째 항은 중심 워드(w_t)의 워드 임베딩 및 컨텍스트 워드들(w_t-2, ... , w_t+2) 각각의 워드 임베딩 간의 거리를 감소시키는 것을 의미할 수 있고, 'Backprop loss'의 둘째 항은 중심 워드(w_t)의 워드 임베딩 및 네거티브 샘플들 각각의 워드 임베딩 간의 거리를 증가시키는 것을 의미할 수 있다.
코드(44)에서, 프로세서(320)는 뉴럴 네트워크(100)에 대한 제2 트레이닝을 수행할 수 있다. 구체적으로, 프로세서(320)는 i) 문서들(15) 각각을 순차적으로 학습 대상 문서(21)로 설정하고, ii) 학습 대상 문서(21)가 어떤 도메인에 포함되는지에 따라 제1 도메인(11) 및 제2 도메인(12) 중 어느 하나로부터 네거티브 샘플들을 추출하고, iii) 학습 대상 문서(21)에 포함되는 워드들 각각의 워드 임베딩 최종값 및 네거티브 샘플들 각각의 워드 임베딩 최종값에 기초하여 학습 대상 문서(21)의 문서 임베딩을 업데이트함으로써 제2 트레이닝을 수행할 수 있다.
i) 프로세서(320)는 문서들(15) 각각을 순차적으로 학습 대상 문서(21)로 설정할 수 있다. 코드(43)에서 제1 트레이닝을 수행하는 경우와 마찬가지로, 프로세서(320)는 문서들(15) 각각을 순차적으로 학습 대상 문서(21)로 설정할 수 있다.
ii) 프로세서(320)는 학습 대상 문서(21)가 어떤 도메인에 포함되는지에 따라 제1 도메인(11) 및 제2 도메인(12) 중 어느 하나로부터 네거티브 샘플들을 추출할 수 있다. 코드(43)에서 제1 트레이닝을 수행하는 경우와 마찬가지로, 프로세서(320)는 제1 도메인(11) 및 제2 도메인(12) 중 어느 하나만로부터 네거티브 샘플들을 추출할 수 있다.
프로세서(320)는 학습 대상 문서(21)가 제1 도메인(11)에 포함되는 경우 제1 도메인(11)의 워드 빈도에 기초하여 설정되는 노이즈 분포에 따라 네거티브 샘플들을 추출할 수 있고, 학습 대상 문서(21)가 제2 도메인(12)에 포함되는 경우 제2 도메인(12)의 워드 빈도에 기초하여 설정되는 노이즈 분포에 따라 네거티브 샘플들을 추출할 수 있다.
이 경우, 코드(43)에서 제1 트레이닝이 수행되는 경우와 마찬가지로, 프로세서(320)는 학습 대상 문서(21)가 제1 도메인(11)(소스 도메인 DS)에 포함되는 경우 소스 도메인(DS)의 워드 빈도(FS)의 3/4승을 노이즈 분포로 하여 네거티브 샘플들을 추출할 수 있고, 학습 대상 문서(21)가 제2 도메인(12)(타겟 도메인 DT)에 포함되는 경우 타겟 도메인(DT)의 워드 빈도(FT)의 3/4승을 노이즈 분포로 하여 네거티브 샘플들을 추출할 수 있다.
iii) 프로세서(320)는 학습 대상 문서(21)에 포함되는 워드들 각각의 워드 임베딩 최종값 및 네거티브 샘플들 각각의 워드 임베딩 최종값에 기초하여 학습 대상 문서(21)의 문서 임베딩을 업데이트함으로써 제2 트레이닝을 수행할 수 있다. 문서들(15) 각각은 순차적으로 학습 대상 문서(21)로 설정될 수 있으므로, 문서들(15) 각각의 문서 임베딩이 순차적으로 문서 임베딩 최종값으로 업데이트될 수 있다.
학습이 완료된 워드 임베딩 최종값에 기초하여 학습 대상 문서(21)의 문서 임베딩이 업데이트될 수 있으므로, 워드 임베딩 최종값에 반영된 전체 워드들(13) 상호간의 의미 관계가 학습 대상 문서(21)의 문서 임베딩에 반영될 수 있다. 특히, 워드 임베딩 최종값에는 도메인 적응이 반영되었다는 점, 및 제2 트레이닝의 네거티브 샘플링에도 도메인 적응이 적용되었다는 점을 고려하면, 제2 트레이닝의 결과로 생성되는 문서 임베딩 최종값은 제1 도메인(11)의 특징 및 제2 도메인(12)의 특징 모두를 적절하게 반영할 수 있다.
제1 트레이닝과 마찬가지로, 제2 트레이닝 또한 역전파를 통해 수행될 수 있다. 제2 트레이닝의 손실 함수는 코드(44)의 'Backprop loss'와 같이 표현될 수 있다. 프로세서(320)는 코드(44)의 'Backprop loss'를 최소화하는 방향으로 역전파를 수행함으로써 문서 임베딩 최종값을 생성할 수 있다.
도 5는 일부 실시예에 따른 문서 임베딩을 생성하는 방법을 구성하는 단계들을 나타내는 흐름도이다.
도 5를 참조하면, 뉴럴 네트워크(100)를 구현하기 위한 프로그램을 실행함으로써 문서 임베딩을 생성하는 방법은 단계 510 내지 단계 530을 포함할 수 있다. 다만 이에 제한되는 것은 아니고, 도 5에 도시되는 단계들 외에 다른 범용적인 단계들이 뉴럴 네트워크(100)를 구현하기 위한 프로그램을 실행함으로써 문서 임베딩을 생성하는 방법에 더 포함될 수 있다.
도 5의 방법은 도 1 내지 도 4를 통해 설명되는 장치(300)에서 시계열적으로 처리되는 단계들로 구성될 수 있다. 따라서, 도 5의 방법에 대하여 이하에서 생략되는 내용이라 할지라도, 도 1 내지 도 4의 장치(300)에 관하여 이상에서 기술되는 내용은 도 5의 방법에 대해서도 동일하게 적용될 수 있다.
단계 510에서, 장치(300)는 제1 도메인(11) 및 제2 도메인(12) 중 어느 하나에 포함되는 문서들(15) 각각에 대한 문서 임베딩 초기값, 및 문서들(15)에 포함되는 전체 워드들(13) 각각에 대한 워드 임베딩 초기값을 설정할 수 있다.
장치(300)는 문서들(15)에 포함되는 전체 워드들(13) 중 등장 횟수가 미니멈 카운트(minimum count) 이상인 워드들에 대해서만 워드 임베딩 초기값을 설정할 수 있다.
단계 520에서, 장치(300)는 뉴럴 네트워크(100)에 대하여 제1 도메인(11) 및 제2 도메인(12) 간의 도메인 적응(domain adaptation)을 위한 제1 트레이닝을 수행함으로써 워드 임베딩 초기값을 워드 임베딩 최종값으로 업데이트할 수 있다.
장치(300)는 문서들(15) 각각을 순차적으로 학습 대상 문서(21)로 설정할 수 있고, 학습 대상 문서(21)에 포함되는 워드들 각각을 순차적으로 중심 워드로, 중심 워드로부터 일정 범위 내에 위치하는 워드들을 컨텍스트 워드(context word)들로 설정할 수 있고, 학습 대상 문서(21)가 어떤 도메인에 포함되는지에 따라 제1 도메인(11) 및 제2 도메인(12) 중 어느 하나로부터 네거티브 샘플(negative sample)들을 추출할 수 있고, 중심 워드, 컨텍스트 워드들 및 네거티브 샘플들 상호간의 유사도에 기초하여 제1 트레이닝을 수행할 수 있다.
장치(300)는 학습 대상 문서(21)가 제1 도메인(11)에 포함되는 경우 제1 도메인(11)의 워드 빈도(word frequency)에 기초하여 설정되는 노이즈 분포에 따라 네거티브 샘플들을 추출할 수 있고, 학습 대상 문서(21)가 제2 도메인(12)에 포함되는 경우 제2 도메인(12)의 워드 빈도에 기초하여 설정되는 노이즈 분포에 따라 네거티브 샘플들을 추출할 수 있다.
장치(300)는 중심 워드의 워드 임베딩 및 컨텍스트 워드들 각각의 워드 임베딩 간의 거리는 감소하고, 중심 워드의 워드 임베딩 및 네거티브 샘플들 각각의 워드 임베딩 간의 거리는 증가하도록 제1 트레이닝을 수행할 수 있다.
단계 530에서, 장치(300)는 워드 임베딩 최종값에 기초하여 뉴럴 네트워크(100)에 대하여 도메인 적응을 위한 제2 트레이닝을 수행함으로써 문서 임베딩 초기값을 문서 임베딩 최종값으로 업데이트할 수 있다.
장치(300)는 문서들(15) 각각을 순차적으로 학습 대상 문서(21)로 설정할 수 있고, 학습 대상 문서(21)가 어떤 도메인에 포함되는지에 따라 제1 도메인(11) 및 제2 도메인(12) 중 어느 하나로부터 네거티브 샘플들을 추출할 수 있고, 학습 대상 문서(21)에 포함되는 워드들 각각의 워드 임베딩 최종값 및 네거티브 샘플들 각각의 워드 임베딩 최종값에 기초하여 학습 대상 문서(21)의 문서 임베딩을 업데이트함으로써 제2 트레이닝을 수행할 수 있다.
장치(300)는 학습 대상 문서(21)가 제1 도메인(11)에 포함되는 경우 제1 도메인(11)의 워드 빈도에 기초하여 설정되는 노이즈 분포에 따라 네거티브 샘플들을 추출할 수 있고, 학습 대상 문서(21)가 제2 도메인(12)에 포함되는 경우 제2 도메인(12)의 워드 빈도에 기초하여 설정되는 노이즈 분포에 따라 네거티브 샘플들을 추출할 수 있다.
뉴럴 네트워크(100)는, 중심 워드로부터 일정 범위 내에 위치하는 컨텍스트 워드들에 대한 원 핫벡터(one-hot vector)들을 출력하는 입력 레이어, 원 핫 벡터들 및 입력 임베딩 행렬에 대한 제1 연산의 결과를 출력하는 히든 레이어, 및 제1 연산의 결과 및 출력 임베딩 행렬에 대한 제2 연산의 결과로서 전체 워드들 각각이 중심 워드에 해당할 확률을 출력하는 출력 레이어를 포함할 수 있다.
도 5의 뉴럴 네트워크(100)를 구현하기 위한 프로그램을 실행함으로써 문서 임베딩을 생성하는 방법은 그 방법을 실행하는 명령어들을 포함하는 적어도 하나의 프로그램이 기록되는 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다.
컴퓨터로 판독 가능한 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령어의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드가 포함될 수 있다.
이상에서 본 개시의 실시예들이 상세하게 설명되었으나 본 개시에 따른 권리범위가 이에 한정되는 것은 아니고, 다음의 청구범위에 기재되어 있는 본 개시의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 개시에 따른 권리범위에 포함되는 것으로 해석되어야 한다.
100: 뉴럴 네트워크
110: 입력 레이어
120: 히든 레이어
130: 출력 레이어
300: 문서 임베딩을 생성하는 장치
310: 메모리
320: 프로세서

Claims (16)

  1. 문서 임베딩(document embedding)을 생성하는 장치에 있어서,
    뉴럴 네트워크(neural network)를 구현하기 위한 프로그램을 저장하는 메모리; 및
    상기 프로그램을 실행함으로써 상기 문서 임베딩을 생성하는 프로세서를 포함하고,
    상기 프로세서는,
    제1 도메인 및 제2 도메인 중 어느 하나에 포함되는 문서들 각각의 문서 임베딩 초기값, 및 상기 문서들에 포함되는 전체 워드들 각각의 워드 임베딩 초기값을 설정하고,
    상기 뉴럴 네트워크에 대하여 상기 제1 도메인 및 상기 제2 도메인 간의 도메인 적응(domain adaptation)을 위한 제1 트레이닝을 수행함으로써 상기 워드 임베딩 초기값을 워드 임베딩 최종값으로 업데이트하고,
    상기 워드 임베딩 최종값에 기초하여 상기 뉴럴 네트워크에 대하여 상기 도메인 적응을 위한 제2 트레이닝을 수행함으로써 상기 문서 임베딩 초기값을 문서 임베딩 최종값으로 업데이트하는, 장치.
  2. 제 1항에 있어서,
    상기 프로세서는,
    상기 문서들 각각을 순차적으로 학습 대상 문서로 설정하고,
    상기 학습 대상 문서에 포함되는 워드들 각각을 순차적으로 중심 워드로, 상기 중심 워드로부터 일정 범위 내에 위치하는 워드들을 컨텍스트 워드(context word)들로 설정하고,
    상기 학습 대상 문서가 어떤 도메인에 포함되는지에 따라 상기 제1 도메인 및 상기 제2 도메인 중 어느 하나로부터 네거티브 샘플(negative sample)들을 추출하고,
    상기 중심 워드, 상기 컨텍스트 워드들 및 상기 네거티브 샘플들 상호간의 유사도에 기초하여 상기 제1 트레이닝을 수행하는, 장치.
  3. 제 2항에 있어서,
    상기 프로세서는,
    상기 학습 대상 문서가 상기 제1 도메인에 포함되는 경우 상기 제1 도메인의 워드 빈도(word frequency)에 기초하여 설정되는 노이즈 분포에 따라 상기 네거티브 샘플들을 추출하고,
    상기 학습 대상 문서가 상기 제2 도메인에 포함되는 경우 상기 제2 도메인의 워드 빈도에 기초하여 설정되는 노이즈 분포에 따라 상기 네거티브 샘플들을 추출하는, 장치.
  4. 제 2항에 있어서,
    상기 프로세서는,
    상기 중심 워드의 워드 임베딩 및 상기 컨텍스트 워드들 각각의 워드 임베딩 간의 거리는 감소하고, 상기 중심 워드의 워드 임베딩 및 상기 네거티브 샘플들 각각의 워드 임베딩 간의 거리는 증가하도록 상기 제1 트레이닝을 수행하는, 장치.
  5. 제 1항에 있어서,
    상기 프로세서는,
    상기 문서들 각각을 순차적으로 학습 대상 문서로 설정하고,
    상기 학습 대상 문서가 어떤 도메인에 포함되는지에 따라 상기 제1 도메인 및 상기 제2 도메인 중 어느 하나로부터 네거티브 샘플들을 추출하고,
    상기 학습 대상 문서에 포함되는 워드들 각각의 워드 임베딩 최종값 및 상기 네거티브 샘플들 각각의 워드 임베딩 최종값에 기초하여 상기 학습 대상 문서의 문서 임베딩을 업데이트함으로써 상기 제2 트레이닝을 수행하는, 장치.
  6. 제 5항에 있어서,
    상기 프로세서는,
    상기 학습 대상 문서가 상기 제1 도메인에 포함되는 경우 상기 제1 도메인의 워드 빈도에 기초하여 설정되는 노이즈 분포에 따라 상기 네거티브 샘플들을 추출하고,
    상기 학습 대상 문서가 상기 제2 도메인에 포함되는 경우 상기 제2 도메인의 워드 빈도에 기초하여 설정되는 노이즈 분포에 따라 상기 네거티브 샘플들을 추출하는, 장치.
  7. 제 1항에 있어서,
    상기 프로세서는,
    상기 문서들에 포함되는 전체 워드들 중 등장 횟수가 미니멈 카운트(minimum count) 이상인 워드들에 대해서만 상기 워드 임베딩 초기값을 설정하는, 장치.
  8. 제 1항에 있어서,
    상기 뉴럴 네트워크는,
    중심 워드로부터 일정 범위 내에 위치하는 컨텍스트 워드들에 대한 원 핫벡터(one-hot vector)들을 출력하는 입력 레이어;
    상기 원 핫 벡터들 및 입력 임베딩 행렬에 대한 제1 연산의 결과를 출력하는 히든 레이어; 및
    상기 제1 연산의 결과 및 출력 임베딩 행렬에 대한 제2 연산의 결과로서 상기 전체 워드들 각각이 상기 중심 워드에 해당할 확률을 출력하는 출력 레이어를 포함하는, 장치.
  9. 뉴럴 네트워크(neural network)를 구현하기 위한 프로그램을 실행함으로써 문서 임베딩(document embedding)을 생성하는 방법에 있어서,
    제1 도메인 및 제2 도메인 중 어느 하나에 포함되는 문서들 각각에 대한 문서 임베딩 초기값, 및 상기 문서들에 포함되는 전체 워드들 각각에 대한 워드 임베딩 초기값을 설정하는 단계;
    상기 뉴럴 네트워크에 대하여 상기 제1 도메인 및 상기 제2 도메인 간의 도메인 적응(domain adaptation)을 위한 제1 트레이닝을 수행함으로써 상기 워드 임베딩 초기값을 워드 임베딩 최종값으로 업데이트하는 단계; 및
    상기 워드 임베딩 최종값에 기초하여 상기 뉴럴 네트워크에 대하여 상기 도메인 적응을 위한 제2 트레이닝을 수행함으로써 상기 문서 임베딩 초기값을 문서 임베딩 최종값으로 업데이트하는 단계를 포함하는, 방법.
  10. 제 9항에 있어서,
    상기 워드 임베딩 최종값으로 업데이트하는 단계는,
    상기 문서들 각각을 순차적으로 학습 대상 문서로 설정하는 단계;
    상기 학습 대상 문서에 포함되는 워드들 각각을 순차적으로 중심 워드로, 상기 중심 워드로부터 일정 범위 내에 위치하는 워드들을 컨텍스트 워드(context word)들로 설정하는 단계;
    상기 학습 대상 문서가 어떤 도메인에 포함되는지에 따라 상기 제1 도메인 및 상기 제2 도메인 중 어느 하나로부터 네거티브 샘플(negative sample)들을 추출하는 단계; 및
    상기 중심 워드, 상기 컨텍스트 워드들 및 상기 네거티브 샘플들 상호간의 유사도에 기초하여 상기 제1 트레이닝을 수행하는 단계를 포함하는, 방법.
  11. 제 10항에 있어서,
    상기 네거티브 샘플들을 추출하는 단계는,
    상기 학습 대상 문서가 상기 제1 도메인에 포함되는 경우 상기 제1 도메인의 워드 빈도(word frequency)에 기초하여 설정되는 노이즈 분포에 따라 상기 네거티브 샘플들을 추출하는 단계; 및
    상기 학습 대상 문서가 상기 제2 도메인에 포함되는 경우 상기 제2 도메인의 워드 빈도에 기초하여 설정되는 노이즈 분포에 따라 상기 네거티브 샘플들을 추출하는 단계를 포함하는, 방법.
  12. 제 10항에 있어서,
    상기 제1 트레이닝을 수행하는 단계는,
    상기 중심 워드의 워드 임베딩 및 상기 컨텍스트 워드들 각각의 워드 임베딩 간의 거리는 감소하고, 상기 중심 워드의 워드 임베딩 및 상기 네거티브 샘플들 각각의 워드 임베딩 간의 거리는 증가하도록 상기 제1 트레이닝을 수행하는 단계를 포함하는, 방법.
  13. 제 9항에 있어서,
    상기 문서 임베딩 최종값으로 업데이트하는 단계는,
    상기 문서들 각각을 순차적으로 학습 대상 문서로 설정하는 단계;
    상기 학습 대상 문서가 어떤 도메인에 포함되는지에 따라 상기 제1 도메인 및 상기 제2 도메인 중 어느 하나로부터 네거티브 샘플들을 추출하는 단계; 및
    상기 학습 대상 문서에 포함되는 워드들 각각의 워드 임베딩 최종값 및 상기 네거티브 샘플들 각각의 워드 임베딩 최종값에 기초하여 상기 학습 대상 문서의 문서 임베딩을 업데이트함으로써 상기 제2 트레이닝을 수행하는 단계를 포함하는, 방법.
  14. 제 13항에 있어서,
    상기 네거티브 샘플들을 추출하는 단계는,
    상기 학습 대상 문서가 상기 제1 도메인에 포함되는 경우 상기 제1 도메인의 워드 빈도에 기초하여 설정되는 노이즈 분포에 따라 상기 네거티브 샘플들을 추출하는 단계; 및
    상기 학습 대상 문서가 상기 제2 도메인에 포함되는 경우 상기 제2 도메인의 워드 빈도에 기초하여 설정되는 노이즈 분포에 따라 상기 네거티브 샘플들을 추출하는 단계를 포함하는, 방법.
  15. 제 9항에 있어서,
    상기 워드 임베딩 초기값을 설정하는 단계는,
    상기 문서들에 포함되는 전체 워드들 중 등장 횟수가 미니멈 카운트(minimum count) 이상인 워드들에 대해서만 상기 워드 임베딩 초기값을 설정하는 단계를 포함하는, 방법.
  16. 제 9항에 있어서,
    상기 뉴럴 네트워크는,
    중심 워드로부터 일정 범위 내에 위치하는 컨텍스트 워드들에 대한 원 핫벡터(one-hot vector)들을 출력하는 입력 레이어;
    상기 원 핫 벡터들 및 입력 임베딩 행렬에 대한 제1 연산의 결과를 출력하는 히든 레이어; 및
    상기 제1 연산의 결과 및 출력 임베딩 행렬에 대한 제2 연산의 결과로서 상기 전체 워드들 각각이 상기 중심 워드에 해당할 확률을 출력하는 출력 레이어를 포함하는, 방법.
KR1020190113642A 2019-09-16 2019-09-16 문서 임베딩을 생성하는 장치 및 방법 KR102280856B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190113642A KR102280856B1 (ko) 2019-09-16 2019-09-16 문서 임베딩을 생성하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190113642A KR102280856B1 (ko) 2019-09-16 2019-09-16 문서 임베딩을 생성하는 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20210032612A KR20210032612A (ko) 2021-03-25
KR102280856B1 true KR102280856B1 (ko) 2021-07-23

Family

ID=75222490

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190113642A KR102280856B1 (ko) 2019-09-16 2019-09-16 문서 임베딩을 생성하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102280856B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015176355A (ja) 2014-03-14 2015-10-05 日本電信電話株式会社 モデル学習装置、方法及びプログラム
KR101797365B1 (ko) 2016-06-15 2017-11-15 울산대학교 산학협력단 어휘 의미망을 이용한 단어 의미 임베딩 장치 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037464B1 (en) 2013-01-15 2015-05-19 Google Inc. Computing numeric representations of words in a high-dimensional space
KR102363369B1 (ko) 2014-01-31 2022-02-15 구글 엘엘씨 문서들의 벡터 표현들 생성하기

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015176355A (ja) 2014-03-14 2015-10-05 日本電信電話株式会社 モデル学習装置、方法及びプログラム
KR101797365B1 (ko) 2016-06-15 2017-11-15 울산대학교 산학협력단 어휘 의미망을 이용한 단어 의미 임베딩 장치 및 방법

Also Published As

Publication number Publication date
KR20210032612A (ko) 2021-03-25

Similar Documents

Publication Publication Date Title
US11604956B2 (en) Sequence-to-sequence prediction using a neural network model
JP6955580B2 (ja) 文書要約自動抽出方法、装置、コンピュータ機器及び記憶媒体
US11468324B2 (en) Method and apparatus with model training and/or sequence recognition
US10460726B2 (en) Language processing method and apparatus
US10949625B2 (en) Machine translation method and apparatus
US20210374347A1 (en) Few-shot named-entity recognition
Bluche et al. A comparison of sequence-trained deep neural networks and recurrent neural networks optical modeling for handwriting recognition
US20210035556A1 (en) Fine-tuning language models for supervised learning tasks via dataset preprocessing
US10796098B2 (en) Instruction understanding system and instruction understanding method
CN108604311B (zh) 利用层级式外部存储器的增强神经网络
EP3320489A1 (en) Improved artificial neural network for language modelling and prediction
CN112905735A (zh) 用于自然语言处理的方法和设备
US11574190B2 (en) Method and apparatus for determining output token
CN109871531A (zh) 隐含特征提取方法、装置、计算机设备及存储介质
CN110895928B (zh) 语音识别方法和设备
KR20220130565A (ko) 키워드 검출 방법 및 장치
CN114072816A (zh) 用于神经主题建模中的多视图和多源迁移的方法和系统
KR102579908B1 (ko) 비지도 대조 학습을 통해 데이터를 분류할 수 있는 방법, 컴퓨터 장치, 및 컴퓨터 프로그램
CN110807335A (zh) 基于机器学习的翻译方法、装置、设备及存储介质
US12014143B2 (en) Techniques for performing contextual phrase grounding
CN117351940B (zh) 基于语音大模型的合成语音检测方法及装置
Su et al. Low‐Rank Deep Convolutional Neural Network for Multitask Learning
KR102280856B1 (ko) 문서 임베딩을 생성하는 장치 및 방법
CN112733536A (zh) 词嵌入方法和设备以及词搜索方法
CN112990434B (zh) 机器翻译模型的训练方法及相关装置

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