KR20190042257A - 문장 생성 모델의 업데이트 방법 및 문장 생성 장치 - Google Patents

문장 생성 모델의 업데이트 방법 및 문장 생성 장치 Download PDF

Info

Publication number
KR20190042257A
KR20190042257A KR1020170133971A KR20170133971A KR20190042257A KR 20190042257 A KR20190042257 A KR 20190042257A KR 1020170133971 A KR1020170133971 A KR 1020170133971A KR 20170133971 A KR20170133971 A KR 20170133971A KR 20190042257 A KR20190042257 A KR 20190042257A
Authority
KR
South Korea
Prior art keywords
decoding model
sentence
target
calculating
compensation information
Prior art date
Application number
KR1020170133971A
Other languages
English (en)
Other versions
KR102424540B1 (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 KR1020170133971A priority Critical patent/KR102424540B1/ko
Priority to CN201810478297.0A priority patent/CN109670147A/zh
Priority to US16/014,779 priority patent/US11727263B2/en
Priority to JP2018148375A priority patent/JP7109302B2/ja
Priority to EP18197984.0A priority patent/EP3474157A1/en
Publication of KR20190042257A publication Critical patent/KR20190042257A/ko
Application granted granted Critical
Publication of KR102424540B1 publication Critical patent/KR102424540B1/ko

Links

Images

Classifications

    • G06F17/20
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/42Data-driven translation
    • G06F40/44Statistical methods, e.g. probability models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/51Translation evaluation
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • 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
    • G06N3/045Combinations of networks
    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Multimedia (AREA)
  • Operations Research (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Abstract

문장 생성 모델의 업데이트 방법은 제1 디코딩 모델을 이용하여 소스 문장에 대한 타겟 문장을 생성하는 단계, 상기 제1 디코딩 모델과 다른 순서(order)로 문장을 생성하는 제2 디코딩 모델을 이용하여 상기 타겟 문장에 대한 보상(reward) 정보를 계산하는 단계; 및 상기 계산된 보상 정보에 기초하여 상기 제1 디코딩 모델 내의 노드들의 가중치(weight)를 재설정하는 단계를 포함할 수 있다.

Description

문장 생성 모델의 업데이트 방법 및 문장 생성 장치{UPDATING METHOD OF SENTENCE GENERATION MODEL AND SENTENCE GENERATION APPARATUS}
아래의 설명은 문장 생성에 이용되는 문장 생성 모델을 업데이트 하는 방법 및 문장 생성 모델을 이용하여 문장을 생성하는 방법에 관한 것이다.
최근에 뉴럴 네트워크(neural network)를 이용하여 문장을 생성하는 기술이 활발히 연구되고 있다. 예를 들어, 원문에 대한 번역 문장을 생성하는 번역기나 사용자와 대화를 이어나가는 대화 에이전트와 같은 다양한 어플리케이션에 문장 생성 기술이 적용되고 있다. 위와 같은 기술 분야에 이용되는 뉴럴 네트워크는 인간의 생물학적 신경 세포의 특성을 수학적 표현으로 모델링한 모델로서, 인간이 가지고 있는 학습이라는 능력을 모방한 알고리즘을 이용한다. 뉴럴 네트워크는 학습된 결과에 기초하여 학습에 이용되지 않았던 입력 패턴에 대하여 비교적 올바른 출력을 생성할 수 있는 일반화 능력을 가진다.
일측에 따른 문장 생성 모델의 업데이트 방법은 제1 디코딩 모델을 이용하여 소스 문장에 대한 타겟 문장을 생성하는 단계, 상기 제1 디코딩 모델과 다른 순서(order)로 문장을 생성하는 제2 디코딩 모델을 이용하여 상기 타겟 문장에 대한 보상(reward) 정보를 계산하는 단계; 및 상기 계산된 보상 정보에 기초하여 상기 제1 디코딩 모델 내의 노드들의 가중치(weight)를 재설정하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 보상 정보를 계산하는 단계는 상기 타겟 문장에 포함되는 복수의 단어들 각각이 상기 제2 디코딩 모델로부터 생성될 확률에 기초하여 상기 보상 정보를 계산하는 단계를 포함할 수 있다.
다른 일실시예에 따르면, 상기 보상 정보를 계산하는 단계는 상기 소스 문장 및 상기 제2 디코딩 모델로부터 이전 시간(previous time)에 출력된 제1 단어를 이용하여 상기 제2 디코딩 모델로부터 현재 시간에 제2 단어가 생성될 확률을 계산하는 단계를 더 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 보상 정보를 계산하는 단계는 상기 타겟 문장에 포함되는 복수의 단어들이 상기 타겟 문장과 다른 순서(order)로 배열된 시퀀스(sequence)를 이용하여 상기 보상 정보를 계산하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 제1 디코딩 모델은 리커런트 뉴럴 네트워크(recurrent neural network)를 포함하는 순방향(forward) 디코딩 모델이고, 상기 제2 디코딩 모델은 리커런트 뉴럴 네트워크를 포함하는 역방향(backward) 디코딩 모델일 수 있다.
또 다른 일실시예에 따르면, 상기 가중치를 재설정하는 단계는 상기 제1 디코딩 모델을 이용하여 상기 타겟 문장에 대한 정책(policy) 정보를 계산하는 단계 및 상기 계산된 정책 정보 및 상기 계산된 보상 정보를 이용하여 지정된 조건에 대응하는 상기 가중치를 재설정하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 정책 정보를 계산하는 단계는 상기 타겟 문장에 포함되는 복수의 단어들 각각이 상기 제1 디코딩 모델로부터 생성될 확률에 기초하여 상기 정책 정보를 계산하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 정책 정보를 계산하는 단계는 상기 소스 문장 및 상기 제1 디코딩 모델로부터 이전 시간에 출력된 제1 단어를 이용하여 상기 제1 디코딩 모델로부터 현재 시간에 제2 단어가 생성될 확률을 계산하는 단계를 더 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 가중치를 계산하는 단계는 복수의 타겟 문장 각각의 보상 정보 및 정책 정보로 정의되는 목적함수(objective function)를 최대화 하는 상기 가중치를 재설정하는 단계를 포함하고, 상기 복수의 타겟 문장은 상기 제1 디코딩 모델을 이용하여 상기 소스 문장으로부터 생성될 수 있다.
또 다른 일실시예에 따르면, 상기 가중치를 계산하는 단계는 목적함수 및 상기 소스 문장에 대해 미리 지정된 정답 문장이 상기 제1 디코딩 모델로부터 생성될 확률로 정의되는 로스함수(loss function)를 최소화 하는 상기 가중치를 재설정하는 단계를 포함하고, 상기 복수의 타겟 문장은 상기 제1 디코딩 모델을 이용하여 상기 소스 문장으로부터 생성되고, 상기 목적함수는 복수의 타겟 문장 각각의 보상 정보 및 정책 정보로 정의될 수 있다.
또 다른 일실시예에 따르면, 상기 타겟 문장을 생성하는 단계는 상기 소스 문장에 대응하여 상기 제1 디코딩 모델이 출력하는 최종 결과값들 중 기설정된 범위 내에 존재하는 최종 결과값에 따라 복수의 타겟 문장을 생성하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 타겟 문장을 생성하는 단계는 상기 소스 문장 내의 단어에 대응하여 상기 제1 디코딩 모델이 제1 시점에 출력하는 출력값에 따라 복수의 타겟 문장을 생성하는 단계를 포함하고, 상기 보상 정보를 계산하는 단계는 상기 제2 디코딩 모델을 이용하여 상기 제1 시점에 생성된 복수의 타겟 문장에 대한 보상 정보를 계산하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 타겟 문장을 생성하는 단계는 상기 소스 문장 내의 단어에 대응하여 상기 제1 디코딩 모델이 제1 시점에 출력하는 출력값을 샘플링하여 미리 지정된 개수의 타겟 문장을 생성하는 단계를 포함하고, 상기 보상 정보를 계산하는 단계는 상기 제2 디코딩 모델을 이용하여 상기 미리 지정된 개수의 타겟 문장에 대한 보상 정보를 계산하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 타겟 문장을 생성하는 단계는 상기 소스 문장에 포함되는 각각의 단어에 대응하여 상기 제1 디코딩 모델이 출력하는 출력값에 따라 복수의 제1 타겟 문장을 생성하는 단계 및 상기 소스 문장 전체에 대응하여 상기 제1 디코딩 모델이 출력하는 최종 결과값들 중 기설정된 범위 내에 존재하는 최종 결과값에 따라 복수의 제2 타겟 문장을 생성하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 보상 정보를 계산하는 단계는 상기 제2 디코딩 모델을 이용하여 상기 복수의 제1 타겟 문장에 대한 제1 보상 정보를 계산하는 단계 및 상기 제2 디코딩 모델을 이용하여 상기 복수의 제2 타겟 문장에 대한 제2 보상 정보를 계산하는 단계를 포함할 수 있다.
또 다른 일실시예에 따르면, 상기 업데이트 방법은 상기 제2 디코딩 모델을 이용하여 상기 소스 문장에 대한 새로운 타겟 문장을 생성하는 단계, 상기 제1 디코딩 모델을 이용하여 상기 새로운 타겟 문장에 대한 보상 정보를 계산하는 단계 및 상기 계산된 보상 정보에 기초하여 상기 제2 디코딩 모델 내의 노드들의 가중치를 재설정하는 단계를 포함할 수 있다.
다른 일측에 따르면, 컴퓨터로 구현되는 문장 생성 장치가 제공된다. 상기 문장 생성 장치는 제1 디코딩 모델을 이용하여 소스 문장에 대한 타겟 문장을 생성하는 생성부, 제2 디코딩 모델을 이용하여 상기 타겟 문장에 대한 보상 정보를 계산하는 계산부 및 상기 계산된 보상 정보에 기초하여 상기 제1 디코딩 모델 내의 노드들의 가중치를 재설정하는 업데이트부를 포함할 수 있다.
일실시예에 따르면, 상기 계산부는 상기 타겟 문장에 포함되는 상기 복수의 단어들이 상기 타겟 문장과 다른 순서로 배열된 시퀀스를 이용하여 상기 보상 정보를 계산할 수 있다. 보다 구체적으로, 상기 계산부는 상기 소스 문장 및 상기 제2 디코딩 모델로부터 이전 시간에 출력된 제1 단어를 이용하여 상기 제2 디코딩 모델로부터 현재 시간에 제2 단어가 생성될 확률을 계산하여 상기 보상 정보를 계산할 수 있다.
다른 일실시예에 따르면, 상기 계산부는 상기 타겟 문장에 포함되는 복수의 단어들을 각각의 문자(character)로 분리한 시퀀스를 상기 제2 디코딩 모델에 입력하여 상기 보상 정보를 계산할 수 있다. 보다 구체적으로, 상기 계산부는 상기 소스 문장 및 상기 제2 디코딩 모델로부터 이전 시간에 출력된 제1 문자를 이용하여 상기 제2 디코딩 모델로부터 현재 시간에 제2 문자가 생성될 확률을 계산하여 상기 보상 정보를 계산할 수 있다.
또 다른 일실시예에 따르면, 상기 생성부는 상기 소스 문장에 대응하여 상기 제1 디코딩 모델이 출력하는 최종 결과값들 중 기설정된 범위 내에 존재하는 최종 결과값에 따라 복수의 타겟 문장을 생성할 수 있다.
또 다른 일실시예에 따르면, 상기 생성부는 상기 소스 문장 내의 단어에 대응하여 상기 제1 디코딩 모델이 제1 시점에 출력하는 출력값에 따라 복수의 타겟 문장을 생성하고, 상기 계산부는 상기 제2 디코딩 모델을 이용하여 상기 제1 시점에 생성된 복수의 타겟 문장에 대한 보상 정보를 계산할 수 있다.
또 다른 일실시예에 따르면, 상기 생성부는 상기 소스 문장에 포함되는 각각의 단어에 대응하여 상기 제1 디코딩 모델이 출력하는 출력값에 따라 복수의 제1 타겟 문장을 생성하고, 상기 소스 문장 전체에 대응하여 상기 제1 디코딩 모델이 출력하는 최종 결과값들 중 기설정된 범위 내에 존재하는 최종 결과값에 따라 복수의 제2 타겟 문장을 생성할 수 있다. 보다 구체적으로, 상기 계산부는 상기 제2 디코딩 모델을 이용하여 상기 복수의 제1 타겟 문장에 대한 제1 보상 정보를 계산하고, 상기 제2 디코딩 모델을 이용하여 상기 복수의 제2 타겟 문장에 대한 제2 보상 정보를 계산할 수 있다.
또 다른 일실시예에 따르면, 상기 생성부는 상기 제2 디코딩 모델을 이용하여 상기 소스 문장에 대한 새로운 타겟 문장을 생성하고, 상기 계산부는 상기 제1 디코딩 모델을 이용하여 상기 새로운 타겟 문장에 대한 보상 정보를 계산하고, 상기 업데이트부는 상기 계산된 보상 정보에 기초하여 상기 제2 디코딩 모델 내의 노드들의 가중치를 재설정 할 수 있다.
도 1은 일실시예에 따른 문장 생성 모델의 업데이트 장치를 도시하는 블록도이다.
도 2는 일실시예에 따른 타겟 문장의 생성 과정 및 보상 정보의 계산 과정을 도시하는 예시도이다.
도 3a는 일실시예에 따라 타겟 문장에 대한 보상 정보가 계산되는 과정을 구체적으로 설명하는 흐름도이다.
도 3b는 일실시예에 따라 타겟 문장에 대한 정책 정보가 계산되는 과정을 구체적으로 설명하는 흐름도이다.
도 4a는 일실시예에 따라 목적함수를 이용하여 제1 디코딩 모델의 가중치가 재설정되는 과정을 구체적으로 설명하는 흐름도이다.
도 4b는 다른 일실시예에 따라 로스함수를 이용하여 제1 디코딩 모델의 가중치가 재설정되는 과정을 구체적으로 설명하는 흐름도이다.
도 5는 일실시예에 따라 문장 생성 모델과 평가 모델의 역할이 서로 변경되는 과정을 설명하는 예시도이다.
도 6은 일실시예에 따라 N-best 알고리즘으로 타겟 문장을 생성하는 업데이트 장치를 도시하는 블록도이다.
도 7은 다른 일실시예에 따라 몬테카를로 서치 알고리즘으로 타겟 문장을 생성하는 업데이트 장치를 도시하는 블록도이다.
도 8a 및 도 8b는 또 다른 일실시예에 따라 N-best 알고리즘 및 몬테카를로 서치 알고리즘을 함께 이용하여 타겟 문장을 생성하는 과정을 설명하는 예시도이다.
도 9는 다른 일실시예에 따라 타겟 문장에 대한 보상 정보가 계산되는 과정을 도시하는 예시도이다.
도 10은 일실시예에 따른 문장 생성 장치를 도시하는 블록도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수 개의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일실시예에 따른 문장 생성 모델의 업데이트 장치를 도시하는 블록도이다. 문장 생성 모델은 입력되는 소스 문장(source sentence)에 기초하여 다음에 나올 타겟 문장(target sentence)을 예측하는 언어 모델(language model)을 나타낸다. 이를테면, 상기 문장 생성 모델은 원문을 입력 받아 상기 원문에 상응하는 번역 문장(translated sentence)을 생성하는 번역 모델일 수 있다. 다른 일실시예로서, 상기 문장 생성 모델은 소스 문장을 입력 받아 그에 상응하는 대화문을 생성하는 대화 에이전트 모델일 수 있다. 앞서 기재된 상기 번역 모델 및 상기 대화 에이전트 모델 등은 문장 생성 모델에 대한 이해를 돕기 위한 예시적 기재일 뿐, 다른 실시예의 범위를 제한하거나 한정하는 것으로 해석되어서는 안될 것이다. 이하에서 설명되는 문장 생성 모델은 지정된 조건에 따라 소스 문장에 상응하는 타겟 문장을 출력하는 다양한 형태의 언어 모델을 나타낸다.
도 1을 참조하면, 문장 생성 모델의 업데이트 장치(100)는 생성부(110), 계산부(120) 및 업데이트부(130)를 포함한다. 도 1에 도시되진 않았지만, 업데이트 장치(100)는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해 생성부(110), 계산부(120) 및 업데이트부(130)들이 일시적으로 구현될 수 있다.
업데이트 장치(100)는 소스 문장을 입력 받아 제1 디코딩 모델(141)에 관한 업데이트된 가중치(weight)를 출력할 수 있다. 상기 업데이트된 가중치는 제1 디코딩 모델(141)에 포함되는 노드들의 연결 가중치를 나타낼 수 있다. 보다 구체적으로, 업데이트 장치(100)는 입력된 소스 문장에 대한 타겟 문장을 생성하고, 상기 생성된 타겟 문장에 대한 보상(reward) 정보에 기초하여 제1 디코딩 모델(141)의 가중치를 재설정할 수 있다. 다른 일실시예로서, 업데이트 장치(100)는 소스 문장을 입력 받아 제1 디코딩 모델(141) 내의 노드들 각각에 적용되는 활성화 함수(activation function)의 임계치를 업데이트하여 출력할 수도 있다.
생성부(110)는 소스 문장을 입력 받아 타겟 문장을 생성할 수 있다. 보다 구체적으로, 생성부(110)는 제1 디코딩 모델(141)을 이용하여 상기 입력된 소스 문장에 대한 타겟 문장을 생성할 수 있다. 일실시예로서, 생성부(110)는 미리 지정된 규칙에 의해 상기 소스 문장에 대한 복수의 타겟 문장을 생성할 수 있다. 생성부(110)로부터 복수의 타겟 문장이 생성되는 과정에 대해서는 이하에서 추가될 다른 도면과 함께 구체적으로 설명된다.
계산부(120)는 생성부(110)로부터 전달 되는 타겟 문장에 대한 보상 정보를 계산할 수 있다. 보다 구체적으로, 계산부(120)는 제2 디코딩 모델(142)을 이용하여 상기 타겟 문장에 대한 보상 정보를 계산할 수 있다. 일실시예로서, 계산부(120)는 소스 문장 및 제2 디코딩 모델(142)로부터 이전 시간에 출력된 제1 단어를 이용하여 제2 디코딩 모델(142)로부터 현재 시간에 제2 단어가 생성될 확률을 계산하여 상기 보상 정보를 계산할 수 있다. 계산부(120)는 상기 계산된 보상 정보를 업데이트부(130)에 출력할 수 있다.
업데이트부(130)는 계산된 보상 정보에 기초하여 제1 디코딩 모델(141) 내의 노드들의 가중치를 재설정할 수 있다. 일실시예로서, 업데이트부(130)는 제1 디코딩 모델(141)을 이용하여 타겟 문장에 대한 정책(policy) 정보를 계산할 수 있다. 또한, 업데이트부(130)는 상기 계산된 정책 정보 및 상기 계산된 보상 정보를 이용하여 지정된 조건에 대응하는 가중치를 재설정할 수 있다.
업데이트 장치(100)는 지정된 저장소 내에 타겟 문장을 생성하기 위한 제1 디코딩 모델(141) 및 보상 정보를 계산하기 위한 제2 디코딩 모델(142)을 저장하여 보관할 수 있다. 예시적으로 상기 지정된 저장소에는 업데이트 장치(100) 내에 존재하는 메모리 영역이 이용될 수도 있고, 업데이트 장치(100)와 인터페이스를 통해 연결되는 외부 메모리 장치가 이용될 수도 있다.
일실시예로서, 제1 디코딩 모델(141) 및 제2 디코딩 모델(142)로서 뉴럴 네트워크가 이용될 수 있다. 구체적으로, 이전 시간의 히든 레이어(hidden layer) 출력값이 현재 시간의 히든 레이어에 다시 입력되는 리커런트 뉴럴 네트워크(RNN: recurrent neural network)가 제1 디코딩 모델(141) 및 제2 디코딩 모델(142)로 이용될 수 있다. 다만, 앞서 기재된 제1 디코딩 모델(141) 및 제2 디코딩 모델(142)에 관한 설명은 이해를 돕기 위한 예시일 뿐, 다른 실시예의 범위를 제한하거나 한정하는 것으로 해석되어서는 안될 것이다. 이를테면, 제1 디코딩 모델(141) 및 제2 디코딩 모델(142) 각각이 심층 신경망(DNN: deep neural network)이나 콘볼루셔널 신경망(CNN: convolutional neural network)과 같은 다양한 형태의 뉴럴 네트워크로 구현되는 실시예 또한 구현 가능할 것이다.
이하에서는 추가되는 도면과 함께 소스 문장을 이용하여 타겟 문장이 생성되고, 보상 정보가 계산되는 과정이 보다 자세하게 서술될 것이다.
도 2는 일실시예에 따른 타겟 문장의 생성 과정 및 보상 정보의 계산 과정을 도시하는 예시도이다. 도 2를 참조하면, 제1 타겟 문장(231)을 생성하기 위한 제1 디코딩 모델(230)에는 매 시간 단계마다 소스 문장(210)의 특징값이 입력된다. 예시적으로, 소스 문장(210)은 복수의 단어(x1, x2, … , xn)들이 지정된 순서(order)로 나열된 문장을 나타낼 수 있다. 이 경우에, 소스 문장(210)을 구성하는 각각의 단어들(x1, x2, … , xn)은 미리 지정된 인코딩 모델(220)에 입력되어 특징값으로서 추출될 수 있다. 예시적으로, 소스 문장(210)으로부터 추출된 특징값은 컨텍스트 정보 및 제1 어텐션 정보를 포함할 수 있다. 컨텍스트 정보는 소스 문장(210)의 의미 정보를 표현하는 압축된 정보일 수 있다. 또한, 제1 어텐션 정보는 현재 시점에서 타겟 문장(231)을 생성하기 위해 소스 문장(210)의 어떤 정보를 확인해야 하는지를 나타내는 정보일 수 있다.
소스 문장(210)에 관한 컨텍스트 정보 및 제1 어텐션 정보가 제1 디코딩 모델(230) 내의 노드로 입력될 수 있다. 예시적으로, 그러나 한정되지 않게 제1 디코딩 모델(230)은 이전 시간의 히든 레이어 출력값이 현재 시간의 히든 레이어에 다시 입력되는 리커런트 뉴럴 네트워크로 구현될 수 있다. 예를 들어, 타겟 문장(231) 내의 제2 단어 y2가 결정되는 과정에서 컨텍스트 정보 및 제1 어텐션 정보와 함께 이전 시간의 히든 레이어의 제1 출력값 및 이전 시간에 출력된 제1 단어 y1가 이용될 수 있다. 또한, 제1 디코딩 모델(230)은 타겟 문장의 시작(begin of target sentence)에서부터 타겟 문장의 끝(end of target sentence)으로 순차적으로 디코딩을 수행하는 순방향 디코딩 모델(forward decoding model)을 나타낼 수 있다. 이 경우에, 업데이트 장치(100)는 제1 디코딩 모델(230)을 이용하여 제1 단어 y1를 시작으로 하여 제n 단어 yn를 마지막으로 하는 순서로 제1 타겟 문장(231)을 생성할 수 있다.
마찬가지로, 소스 문장(210)에 관한 컨텍스트 정보 및 제2 어텐션 정보가 제2 디코딩 모델(240) 내의 노드로 입력될 수 있다. 예시적으로, 그러나 한정되지 않게 제2 디코딩 모델(240) 또한 리커런트 뉴럴 네트워크로서 구현될 수 있다. 일실시예로서, 제2 디코딩 모델(240)은 타겟 문장의 끝에서부터 타겟 문장의 시작까지 순차적으로 디코딩을 수행하는 역방향 디코딩 모델(backward decoding model)을 나타낼 수 있다. 제2 디코딩 모델(240)은 제1 디코딩 모델(230)과 반대되는 순서로서 제2 타겟 문장(241)을 이용할 수 있다. 보다 구체적으로, 제2 타겟 문장(241)은 제1 타겟 문장(231)에 포함되는 복수의 단어들이 반대 순서로 배열된 시퀀스(sequence)를 나타낼 수 있다. 예를 들어, 제2 타겟 문장(241)은 제n 단어 yn을 시작으로 하여 제1 단어 y1을 마지막으로 하는 순서로써 각각의 단어들이 배열된 시퀀스를 나타낼 수 있다.
업데이트 장치(100)는 제2 타겟 문장(241)에 포함되는 복수의 단어들 각각이 제2 디코딩 모델(240)로부터 생성될 확률에 기초하여 보상 정보를 계산할 수 있다. 보다 구체적으로, 업데이트 장치(100)는 소스 문장(210)의 특징값 및 제2 디코딩 모델(240)로부터 이전 시간에 출력된 제1 단어를 이용하여, 현재 시간에 제2 디코딩 모델(240)로부터 제2 단어가 생성될 확률을 계산하고, 상기 계산된 확률을 이용하여 상기 보상 정보를 계산할 수 있다.
도 2에서는 설명의 편의를 위해 인코딩 모델(220), 제1 디코딩 모델(230) 및 제2 디코딩 모델(240) 각각이 하나의 레이어로 구현된 실시예가 도시되나, 이는 다른 실시예들의 범위를 제한하거나 한정하는 것으로 해석되어서는 안될 것이다. 이를테면, 인코딩 모델(220), 제1 디코딩 모델(230) 및 제2 디코딩 모델(240) 각각이 입력 레이어, 히든 레이어 및 출력 레이어를 포함하는 멀티 레이어 구조를 갖는 실시예 또한 구현 가능할 것이다.
본 실시예에 따른 업데이트 장치(100)는 타겟 문장을 생성하기 위한 제1 디코딩 모델(230)로서 리커런트 뉴럴 네트워크를 포함하는 순방향 디코딩 모델을 이용하고, 보상 정보를 계산하기 위한 제2 디코딩 모델(240)로서 리커런트 뉴럴 네트워크를 포함하는 역방향 디코딩 모델을 이용할 수 있다. 그에 따라 업데이트 장치(100)는 역방향 디코딩 모델로부터 계산된 보상 정보에 기초하여 순방향 디코딩 모델 노드들의 가중치를 재설정할 수 있어, 문장 생성 시에 한쪽 방향으로만 디코딩되는 경향을 줄이고 다양한 표현의 문장을 제공하는 문장 생성 모델을 생성한다.
도 3a는 일실시예에 따라 타겟 문장에 대한 보상 정보가 계산되는 과정을 구체적으로 설명하는 흐름도이다. 도 3a를 참조하면, 타겟 문장에 대한 보상 정보를 계산하는 방법은 타겟 문장에 포함되는 각각의 단어들이 제2 디코딩 모델로부터 생성될 확률을 지정된 순서에 따라 계산하는 단계(310) 및 상기 각각의 단어에 대응하는 확률들을 이용하여 상기 타겟 문장에 대한 보상 정보를 계산하는 단계(320)를 포함할 수 있다.
단계(310)에서 타겟 문장에 포함되는 각각의 단어들이 제2 디코딩 모델로부터 생성될 확률이 계산된다. 상기 타겟 문장은 상기 제2 디코딩 모델과 상이한 제1 디코딩 모델로부터 생성된 문장을 나타낸다. 예를 들어, 상기 타겟 문장은 순방향 디코딩 모델을 이용하여 소스 문장으로부터 생성된 복수의 문장을 나타낼 수 있다. 이 경우에, 단계(310)에서는 복수의 타겟 문장 중 제1 타겟 문장에 포함되는 각각의 단어들이 상기 제2 디코딩 모델로부터 생성될 확률이 계산될 수 있다.
제1 단어 y1 -> 제2 단어 y2 -> (생략) -> 제T 단어 yT와 같은 순서로 단어들을 포함하는 제n 타겟 문장 Tn이 제1 디코딩 모델로부터 생성될 경우가 존재한다. 상기 제n 타겟 문장 Tn은 문장에 포함되는 단어들의 배열 순서를 이용하여 y1:T로 표현될 수 있다. 구체적으로, 상기 제n 타겟 문장 Tn에 포함되는 단어들은 아래의 표 1과 같은 순서로 정리될 수 있다.
전체 문장 1 번째 단어 2 번째 단어 (생략) T-1 번째 단어 T 번째 단어
Tn y1 y2 (생략) yT -1 yT
이 경우에, 단계(310)에서는 제n 타겟 문장 Tn에 포함되는 각각의 단어들이 제2 디코딩 모델로부터 생성될 확률이 계산된다. 보다 구체적으로, 상기 제n 타겟 문장 Tn에 포함되는 단어들이 뒤집어진 순서(order)로 배열된 시퀀스
Figure pat00001
n를 이용하여, 각각의 단어들이 상기 제2 디코딩 모델로부터 생성될 확률이 계산될 수 있다. 상기 시퀀스
Figure pat00002
n는 상기 제n 타겟 문장 Tn 내의 단어들을 반대 순서로 뒤집은 시퀀스로서, 제T 단어 yT -> 제T-1 단어 yT -1 -> (생략) -> 제2 단어 y2 -> 제1 단어 y1와 같은 순서로 단어들을 포함할 수 있다. 마찬가지로, 상기 시퀀스
Figure pat00003
n는 시퀀스에 포함되는 단어들의 배열 순서를 이용하여 yT:1로 표현될 수 있다. 구체적으로, 상기 시퀀스
Figure pat00004
n에 포함되는 단어들은 아래의 표 2와 같은 순서로 정리될 수 있다.
전체 시퀀스 1 번째 단어 2 번째 단어 (생략) T-t+1 번째 단어 (생략) T 번째 단어
Figure pat00005
n
yT yT -1 (생략) yt (생략) y1
예를 들어, 단계(310)에서 제T--t+1 단어 yt가 제2 디코딩 모델로부터 생성될 확률이 계산될 수 있다. 보다 구체적으로, 소스 문장 및 제2 디코딩 모델로부터 이전 시간(previous time)에 출력된 단어들을 이용하여 상기 제2 디코딩 모델로부터 현재 시간에 상기 제T-t+1 단어 yt가 생성될 확률이 아래의 수학식 1과 같이 계산될 수 있다. 상기 제T-t+1 단어 yt는 상기 시퀀스
Figure pat00006
n의 시작점(왼쪽 방향)으로부터 T-t+1 번째 배치된 단어일 수 있다.
Figure pat00007
상기 수학식 1에서 S는 제1 디코딩 모델 및 제2 디코딩 모델에 입력되는 소스 문장을 나타내고, yT+1:t+1은 이전 시간 단계에서 상기 제2 디코딩 모델로부터 출력되는 단어들에 관한 출력값을 나타낸다. 보다 구체적으로, yT+1:t+1에서 yT+1은 제n 타겟 문장 Tn의 종료점(end of sentence)을 나타내는 정보이다. 또한, yT+1:t+1에서 yT부터 yt+1까지는 전체 시퀀스
Figure pat00008
n 중 1 번째 단어로부터 T-t 번째 단어까지의 출력값을 나타낸다. 또한, 상기 수학식 1에서 Φ는 상기 제2 디코딩 모델 내의 노드들의 연결 관계를 정의하는 가중치(weight) 파라미터를 나타낼 수 있다.
단계(310)에서는 제n 타겟 문장 Tn에 포함되는 각각의 단어들이 상기 시퀀스
Figure pat00009
n에 배열된 순서에 따라 제2 디코딩 모델로부터 생성될 확률이 계산된다. 구체적으로, 시퀀스
Figure pat00010
n에 포함되는 1 번째 단어 yT가 제2 디코딩 모델로부터 생성될 확률 P(yT|yT+1, S; Φ)이 우선적으로 계산되고, 2 번째 단어 yT -1가 제2 디코딩 모델로부터 생성될 확률 P(yT -1|yT + 1:yT, S; Φ)이 계산되며 마지막 단어 y1가 생성될 확률 P(y1|yT+1:2, S; Φ)까지 순차적으로 계산될 수 있다. 설명의 편의를 고려하여 제n 타겟 문장 Tn에 포함되는 단어들이 생성될 확률이 계산되는 과정이 설명되나, 동일한 원리로써 업데이트 장치가 생성하는 복수의 타겟 문장 각각에 포함되는 단어들이 생성될 확률도 계산될 수 있다는 것은 기술 분야의 전문가에게는 자명한 사실일 것이다.
단계(320)에서 각각의 단어에 대응하는 확률들을 이용하여 타겟 문장에 대한 보상 정보가 계산된다. 보다 구체적으로, 제n 타겟 문장 Tn에 대한 보상 정보 rn은 아래의 수학식 2와 같이 계산될 수 있다.
Figure pat00011
상기 수학식 2에서 P(
Figure pat00012
n|S; Φ)는 제n 타겟 문장 Tn의 단어들의 순서를 뒤집은 시퀀스
Figure pat00013
n가 제2 디코딩 모델로부터 생성될 확률을 나타낸다. 보다 구체적으로, P(
Figure pat00014
n|S; Φ)는 아래의 수학식 3과 같이 계산될 수 있다.
Figure pat00015
상기 시퀀스
Figure pat00016
n가 제2 디코딩 모델로부터 생성될 확률은 상기 시퀀스
Figure pat00017
n 내에 포함되는 각각의 단어들이 순차적으로 생성될 확률들의 곱으로 계산될 수 있다. 보다 구체적으로, 상기 시퀀스
Figure pat00018
n가 제2 디코딩 모델로부터 생성될 확률은 상기 시퀀스
Figure pat00019
n의 1 번째 단어 yT에서부터 마지막 단어 y1까지 각각의 단어들이 상기 제2 디코딩 모델로부터 순차적으로 생성될 확률의 곱으로 계산된다.
앞서 설명된 보상 정보가 계산되는 과정은 문장 생성 모델의 업데이트 장치에 의해 수행될 수 있다. 보다 구체적으로, 상기 업데이트 장치에 포함되는 계산부에 의해 각각의 단계들(310, 320)이 수행될 수 있다.
도 3b는 일실시예에 따라 타겟 문장에 대한 정책 정보가 계산되는 과정을 구체적으로 설명하는 흐름도이다. 도 3b를 참조하면, 타겟 문장에 대한 정책 정보를 계산하는 방법은 상기 타겟 문장에 포함되는 각각의 단어들이 제1 디코딩 모델로부터 생성될 확률을 지정된 순서에 따라 계산하는 단계(330) 및 상기 각각의 단어에 대응하는 확률들을 이용하여 상기 타겟 문장에 대한 정책 정보를 계산하는 단계(340)를 포함할 수 있다.
단계(330)에서 타겟 문장에 포함되는 각각의 단어들이 제1 디코딩 모델로부터 생성될 확률이 계산된다. 상기 타겟 문장은 상기 제1 디코딩 모델로부터 생성된 문장을 나타낸다. 예를 들어, 상기 제1 디코딩 모델이 순방향 디코딩 모델인 경우, 상기 타겟 문장은 순방향 디코딩 모델을 이용하여 소스 문장으로부터 생성된 복수 개의 문장을 나타낼 수 있다.
예시적으로, 단계(330)에서는 복수 개의 타겟 문장 중 제1 타겟 문장에 포함되는 각각의 단어들이 제1 디코딩 모델로부터 생성될 확률이 계산될 수 있다. 이하에서는 설명의 편의를 고려하여 제n 타겟 문장 Tn에 포함되는 각각의 단어들이 상기 제1 디코딩 모델로부터 생성될 확률이 계산되는 과정이 설명되나, 동일한 원리로 복수의 타겟 문장 각각에 포함되는 단어들이 생성될 확률도 계산될 수 있다는 것은 기술 분야의 전문가에게는 자명한 사실일 것이다.
예를 들어, 제1 단어 y1 -> 제2 단어 y2 -> (생략) -> 제T 단어 yT와 같은 순서로 단어들을 포함하는 제n 타겟 문장 Tn이 제1 디코딩 모델로부터 생성될 경우가 존재한다. 상기 제n 타겟 문장 Tn은 문장에 포함되는 단어들의 배열 순서를 이용하여 y1:T로 표현될 수 있다. 이 경우에, 단계(330)에서는 상기 제n 타겟 문장 Tn에 포함되는 각각의 단어들이 제1 디코딩 모델로부터 생성될 확률이 계산된다. 보다 구체적으로, 상기 제n 타겟 문장 Tn에 포함되는 제t 단어 yt가 제1 디코딩 모델로부터 생성될 확률이 아래의 수학식 4와 같이 계산될 수 있다. 상기 제t 단어 yt는 상기 제n 타겟 문장 Tn의 시작점(왼쪽 방향)으로부터 t 번째 배치된 단어를 나타낸다.
Figure pat00020
상기 수학식 4에서 S는 제1 디코딩 모델에 입력되는 소스 문장을 나타내고, y0:t - 1는 이전 시간 단계에서 상기 제1 디코딩 모델로부터 출력되는 단어들에 관한 출력값을 나타낸다. 보다 구체적으로, y0:t -1에서 y0는 제n 타겟 문장 Tn의 시작점(begin of sentence)을 나타내는 정보이다. 또한, 상기 y0:t -1에서 y0부터 yt -1까지는 상기 제n 타겟 문장 Tn 중 1 번째 단어로부터 t-1 번째 단어까지의 출력값을 나타낸다. 또한, 상기 수학식 4에서 θ는 상기 제1 디코딩 모델 내 노드들의 연결 관계를 정의하는 가중치 파라미터를 나타낼 수 있다.
단계(330)에서는 제n 타겟 문장 Tn에 포함되는 각각의 단어들이 상기 제n 타겟 문장 Tn 내에 배열된 순서에 따라 제1 디코딩 모델로부터 생성될 확률이 계산된다. 구체적으로, 상기 제n 타겟 문장 Tn에 포함되는 1 번째 단어 y1가 상기 제1 디코딩 모델로부터 생성될 확률 P(y1|y0, S; θ)이 우선적으로 계산되고, 2 번째 단어 y2가 상기 제1 디코딩 모델로부터 생성될 확률 P(y2|y0:1, S; θ)이 이어서 계산되며 위와 같은 순서로 마지막 T 번째 yT가 생성될 확률 P(yT|y0:T -1, S; θ)까지 순차적으로 계산될 수 있다.
단계(340)에서는 상기 각각의 단어에 대응하는 확률들을 이용하여 상기 타겟 문장에 대한 정책 정보를 계산된다. 예를 들어, 제n 타겟 문장 Tn에 대한 정책 정보 pn은 아래의 수학식 5와 같이 계산될 수 있다.
Figure pat00021
상기 수학식 5에서 P(Tn|S; θ)는 제n 타겟 문장 Tn 내의 단어들이 제1 디코딩 모델로부터 순차적으로 생성될 확률을 나타낸다. 보다 구체적으로, P(Tn|S; θ)는 아래의 수학식 6과 같이 계산될 수 있다.
Figure pat00022
상기 수학식 6에서 P(Tn|S; θ)는 상기 제n 타겟 문장 Tn의 1 번째 단어 y1에서부터 마지막 단어 yT까지 각각의 단어들이 상기 제1 디코딩 모델로부터 순차적으로 생성될 확률의 곱으로 계산될 수 있다.
앞서 설명된 타겟 문장에 대한 정책 정보가 계산되는 과정은 문장 생성 모델의 업데이트 장치에 의해 수행될 수 있다. 보다 구체적으로, 상기 업데이트 장치에 포함되는 업데이트부에 의해 각각의 단계들(330, 340)이 수행될 수 있다.
본 실시예에 따른 업데이트 장치는 타겟 문장을 생성한 제1 디코딩 모델을 이용하여 정책 정보를 계산하고, 상기 제1 디코딩 모델과 다른 제2 디코딩 모델을 이용하여 보상 정보를 계산할 수 있다. 또한, 상기 업데이트 장치는 상기 계산된 정책 정보 및 상기 계산된 보상 정보를 이용하여 상기 제1 디코딩 모델에 관한 가중치를 재설정할 수 있다. 그에 따라, 상기 업데이트 장치는 어느 한 쪽 방향으로 치우치지 않고 순방향 및 역방향의 가중치가 모두 반영된 문장 생성 모델을 업데이트할 수 있다. 이하에서는, 추가되는 도면과 함께 상기 제1 디코딩 모델의 가중치가 재설정되는 과정이 보다 자세하게 설명될 것이다.
도 4a는 일실시예에 따라 목적함수를 이용하여 제1 디코딩 모델의 가중치가 재설정되는 과정을 구체적으로 설명하는 흐름도이다. 도 4a를 참조하면, 목적함수를 이용하여 제1 디코딩 모델의 가중치를 재설정하는 방법은 복수의 타겟 문장 각각의 보상 정보 및 정책 정보로 정의되는 목적함수를 계산하는 단계(410) 및 상기 계산된 목적함수를 최대화하는 제1 디코딩 모델의 가중치를 재설정하는 단계(420)를 포함할 수 있다.
단계(410)에서 복수의 타겟 문장 각각의 보상 정보 및 정책 정보로 정의되는 목적함수가 계산된다. 예시적으로, 목적함수는 강화 학습(reinforcement learning)의 정책 그라디언트(policy gradients) 방식에 따라 정의될 수 있다. 상기 정책 그라디언트 방식은 기술 분야의 전문가에게는 straight forward한 내용이므로 자세한 설명은 생략하기로 한다.
업데이트 장치로부터 소스 문장에 대해 복수의 타겟 문장이 생성되는 경우가 존재할 수 있다. 이 경우에, 단계(410)에서는 아래의 수학식 7과 같이 각각의 타겟 문장의 보상 정보 및 정책 정보를 이용하여 목적함수 J(θ)가 계산될 수 있다.
Figure pat00023
업데이트 장치로부터 N 개의 타겟 문장이 생성된 경우, 제1 타겟 문장 T1에 대응하는 제1 보상 정보 r1와 제1 정책 정보의 로그값 logP(T1|S;θ)의 곱(multiplication)에서부터 제N 타겟 문장 TN에 대응하는 제N 보상 정보 rN과 제N 정책 정보의 로그값 logP(TN|S;θ)까지의 곱을 더하고, 더해진 결과값을 타겟 문장의 개수 N으로 나누어 목적함수 J(θ)가 계산될 수 있다.
단계(420)에서는 계산된 목적함수 J(θ)를 최대화 하는 θ가 계산될 수 있다. 상기 θ는 제1 디코딩 모델 내의 노드들의 연결 가중치 파라미터를 나타낼 수 있다.
도 4a에 도시되지는 않았지만, 단계(420)에서는 목적함수로부터 정의되는 로스함수(loss function)을 최소화 하는 방법에 따라 제1 디코딩 모델의 가중치를 계산할 수도 있다. 보다 구체적으로, 상기 로스함수 L(θ)는 아래의 수학식 8과 같이 정의될 수 있다.
Figure pat00024
일실시예로서, 상기 로스함수 L(θ)에 그라디언트 하강(gradient descent) 방식을 적용하여 제1 디코딩 모델의 가중치 θ가 계산될 수 있다. 그라디언트 하강은 계산된 그라디언트의 반대 방향으로 가중치 θ를 조금씩 이동시켜 극소점(local minimum)을 찾는 방식을 나타낼 수 있다. 구체적으로, 아래의 수학식 9와 같이 제1 디코딩 모델의 가중치 θ가 재설정될 수 있다.
Figure pat00025
상기 수학식 9에서, 재설정된 가중치 θ는 본래의 가중치 θ에서 그라디언트
Figure pat00026
의 반대 방향으로 학습 비율(learning rate) α만큼 이동되도록 재설정된다.
도 4b는 다른 일실시예에 따라 로스함수를 이용하여 제1 디코딩 모델의 가중치가 재설정되는 과정을 구체적으로 설명하는 흐름도이다. 도 4b를 참조하면, 로스함수를 이용하여 제1 디코딩 모델의 가중치를 재설정하는 방법은 복수의 타겟 문장 각각의 보상 정보 및 정책 정보로 정의되는 목적함수를 계산하는 단계(430) 및 상기 계산된 목적함수 및 소스 문장에 대한 정답 문장이 제1 디코딩 모델로부터 생성될 확률로 정의되는 로스함수를 최소화 하는 상기 제1 디코딩 모델의 가중치를 재설정하는 단계(440)를 포함할 수 있다.
단계(430)에서 복수의 타겟 문장 각각의 보상 정보 및 정책 정보로 정의되는 목적함수가 계산된다. 목적함수가 계산되는 과정에 대한 설명은 앞서 기재된 도 4a의 단계(410) 및 수학식 7에 관한 설명이 그대로 적용될 수 있으므로 중복되는 설명은 생략하기로 한다.
단계(440)에서 계산된 목적함수 및 정답 문장이 제1 디코딩 모델로부터 생성될 확률로 정의되는 로스함수가 계산될 수 있다. 구체적으로, 아래의 수학식 10과 같이 로스함수 L(θ)가 계산될 수 있다.
Figure pat00027
상기 수학식 10에서, Y1:T는 소스 문장 S에 대해 미리 지정된 정답 문장을 나타낼 수 있다. 일실시예로서, 소스 문장 S가 원문인 경우에 Y1:T는 미리 지정된 정답 번역문의 시퀀스를 나타낼 수 있다. 상기 수학식 10과 같이 로스함수 L(θ)는 최대 가능도 로스(maximum likelihood loss)와 가중치 합(weighted sum)으로 정의될 수 있다. 상기 수학식 10에서 λ는 목적함수에 대해 지정된 가중치 파라미터를 나타낼 수 있다. 단계(420)와 마찬가지로, 단계(440)에서도 상기 로스함수 L(θ)를 최소화하는 제1 디코딩 모델의 가중치가 계산될 수 있다. 예시적으로, 상기 로스함수 L(θ)는 그라디언트 하강 방식에 따라 제1 디코딩 모델의 가중치 θ가 계산될 수 있다.
도 4a 및 도 4b를 통해 설명된 가중치가 재설정되는 과정들은 문장 생성 모델의 업데이트 장치에 의해 수행될 수 있다. 보다 구체적으로, 상기 업데이트 장치에 포함되는 업데이트부에 의해 각각의 단계들(410, 420, 430, 440)이 수행될 수 있다.
도 5는 일실시예에 따라 문장 생성 모델과 평가 모델의 역할이 서로 변경되는 과정을 설명하는 예시도이다. 도 5를 참조하면, 문장 생성 모델과 생성된 타겟 문장에 대한 보상 정보를 생성하는 평가 모델이 도시된다. 도 5에서는 상기 문장 생성 모델이 번역 모델로 구현된 경우에 대해 설명되나, 위와 같은 기재가 다른 실시예들의 범위를 제한하거나 한정하는 것으로 해석되어서는 안될 것이다. 문장 생성 모델은 소스 문장에 대응하여 지정된 타겟 문장을 생성하는 다양한 형태의 언어 모델로 구현될 수 있을 것이다.
업데이트 장치의 제1 동작 주기에서 제1 디코딩 모델(531)이 문장 생성 모델로서 이용될 수 있다. 예시적으로, 제1 디코딩 모델(531)은 타겟 문장의 시작에서부터 타겟 문장의 끝까지 순차적으로 디코딩을 수행하는 순방향 디코딩 모델로 구현될 수 있다. 타겟 문장인 "I love you"를 생성하기 위해, 제1 디코딩 모델(531)에는 소스 문장(510)인 "나는 너를 사랑해"의 특징값이 입력된다. 소스 문장(510)을 구성하는 각각의 단어들(나는, 너를, 사랑해)은 미리 지정된 인코딩 모델(520)에 입력되어 특징값이 추출될 수 있다. 이를테면, 소스 문장(510)으로부터 추출된 특징값은 컨텍스트 정보 및 제1 어텐션 정보를 포함할 수 있다. 컨텍스트 정보는 소스 문장(510)의 의미 정보를 표현하는 압축된 정보일 수 있다. 또한, 제1 어텐션 정보는 현재 시점에서 타겟 문장을 생성하기 위해 소스 문장(510)의 어떤 정보를 확인해야 하는 지를 나타내는 정보일 수 있다.
제1 동작 주기에서, 소스 문장(510)에 관한 컨텍스트 정보 및 제1 어텐션 정보가 제1 디코딩 모델(531) 내의 노드로 입력될 수 있다. 제1 디코딩 모델(531) 내의 노드들은 미리 지정된 가중치(θ1, θ2, θ3)에 따라 연결된다. 제1 디코딩 모델(531)은 입력되는 특징값에 기반하여 타겟 문장을 생성하고 출력할 수 있다.
제1 동작 주기에서, 제2 디코딩 모델(532)은 생성된 타겟 문장에 대한 평가 모델로서 이용될 수 있다. 예시적으로, 제2 디코딩 모델(532)은 타겟 문장의 끝에서부터 타겟 문장의 시작까지 순차적으로 디코딩을 수행하는 역방향 디코딩 모델로 구현될 수 있다. 마찬가지로, 제2 디코딩 모델(532)에도 소스 문장(510)인 "나는 너를 사랑해"의 특징값이 입력될 수 있다. 소스 문장(510)으로부터 추출된 특징값은 컨텍스트 정보 및 제2 어텐션 정보를 포함할 수 있다.
제2 디코딩 모델(532)은 소스 문장(510)의 특징값 및 타겟 문장이 반대 순서로 배열된 시퀀스를 이용하여 보상 정보를 생성할 수 있다. 제1 동작 주기에서 제2 디코딩 모델(532) 내의 노드들은 미리 지정된 가중치(Φ1, Φ2, Φ3)에 따라 연결된다. 제2 디코딩 모델(532)이 출력하는 보상 정보를 이용하여 제1 디코딩 모델(531) 내의 노드들의 가중치가 새로운 가중치(θ1 ', θ2 ', θ3 ')로 재설정될 수 있다.
업데이트 장치의 제2 동작 주기에서는 제2 디코딩 모델(532)이 문장 생성 모델로 이용되고, 업데이트된 제1 디코딩 모델(533)이 평가모델로서 이용된다.
본 실시예의 업데이트 장치는 동작 주기에 따라 문장 생성 모델과 평가 모델이 서로 역할을 바꿔가며 가중치를 재설정할 수 있다. 그에 따라, 상기 업데이트 장치는 디코딩 방향(순방향 또는 역방향)에 의해 좋은 후보 단어들이 버려지는 것을 방지하고, 한 쪽 방향으로 치우치지 않는 개선된 품질의 문장을 생성하도록 문장 생성 모델을 업데이트할 수 있다.
제2 동작 주기에서, 제2 디코딩 모델(532)은 입력되는 소스 문장(510)의 특징값에 기반하여 타겟 문장을 생성하고 출력할 수 있다. 한편, 업데이트된 제1 디코딩 모델(533)은 소스 문장(510)의 특징값 및 타겟 문장이 반대 순서로 배열된 시퀀스를 이용하여 보상 정보를 생성할 수 있다. 업데이트된 제1 디코딩 모델(533)은 새롭게 재설정된 가중치(θ1 ', θ2 ', θ3 ')를 이용하여 제2 디코딩 모델(532)에 의해 새롭게 생성된 타겟 문장에 대한 보상 정보를 생성할 수 잇다. 제1 동작 주기와 마찬가지로, 업데이트된 제1 디코딩 모델(533)이 출력하는 보상 정보를 이용하여 제2 디코딩 모델(532) 내의 노드들의 가중치도 새로운 가중치(Φ1 ', Φ2 ', Φ3 ')로 재설정될 수 있다.
도 6은 일실시예에 따라 N-best 알고리즘으로 타겟 문장을 생성하는 업데이트 장치를 도시하는 블록도이다. 도 6를 참조하면, N-best 문장 생성부(610)를 포함하는 문장 생성 모델의 업데이트 장치(600)가 도시된다. 업데이트 장치(600)는 N-best 문장 생성부(610), 계산부(620) 및 업데이트부(630)를 포함한다.
업데이트 장치(600)는 소스 문장을 입력 받아 제1 디코딩 모델(641)에 관한 업데이트된 가중치를 출력할 수 있다. 상기 가중치는 제1 디코딩 모델(641)에 포함되는 노드들의 연결 가중치를 나타낼 수 있다.
N-best 문장 생성부(610)는 소스 문장을 입력 받아 복수의 타겟 문장을 생성할 수 있다. 보다 구체적으로, N-best 문장 생성부(610)는 제1 디코딩 모델(641)이 출력하는 최종 결과값들 중 기설정된 범위 내에 존재하는 최종 결과값에 따라 복수의 타겟 문장을 생성할 수 있다.
제1 디코딩 모델(641)이 리커런트 뉴럴 네트워크로 구현된 경우, 제1 디코딩 모델(641)은 각각의 시간 단계에서 빔 너비(beam width) 내에 포함되는 단어들의 확률 분포를 출력할 수 있다. 이 경우에, N-best 문장 생성부(610)는 제1 디코딩 모델(641)이 출력하는 최종 결과값들에 따라 빔 너비 내의 단어들을 조합하여 가장 높은 확률 순서로 N 개의 타겟 문장을 생성한다. 계산부(620)는 N-best 문장 생성부(610)로부터 전달되는 복수의 타겟 문장 각각에 대한 보상 정보를 계산할 수 있다.
또한, 업데이트부(630)는 계산된 보상 정보에 기초하여 제1 디코딩 모델(641) 내의 노드들의 가중치를 재설정하고, 업데이트된 가중치를 제1 디코딩 모델(641)로 출력할 수 있다. 계산부(620) 및 업데이트부(630)의 구체적 동작에 대해서는 도 1, 도 3a, 도 3b, 도 4a 및 도 4b에서 기재된 설명이 그대로 적용될 수 있어 중복되는 설명은 생략하기로 한다.
도 7은 다른 일실시예에 따라 몬테카를로 서치 알고리즘으로 타겟 문장을 생성하는 업데이트 장치를 도시하는 블록도이다. 도 7를 참조하면, 몬테카를로 서치(monte carlo search) 문장 생성부(710)를 포함하는 업데이트 장치(700)가 도시된다. 업데이트 장치(700)는 몬테카를로 서치 문장 생성부(710), 계산부(720) 및 업데이트부(730)를 포함한다.
업데이트 장치(700)는 각각의 시간 단계에서 제1 디코딩 모델(741)로부터 출력되는 출력값에 따라 복수의 타겟 문장을 생성할 수 있다. 보다 구체적으로, 몬테카를로 서치 문장 생성부(710)는 제1 디코딩 모델(741)로부터 각각의 시간 단계에서 출력되는 출력값에 대해 몬테카를로 서치를 적용하여 미리 지정된 N 개의 타겟 문장을 생성할 수 있다. 몬테카를로 서치는 의사 결정을 위한 체험적 탐색 알고리즘으로, 검색 공간 내에서 무작위 추출에 기초한 트리 탐색을 수행하는 방식을 나타낸다. 본 실시예의 경우에, 몬테카를로 서치 문장 생성부(710)는 현재 시간 단계에서 제1 디코딩 모델(741)이 제공하는 출력값에 기반하여 생성 가능한 타겟 문장을 탐색하고, 탐색된 타겟 문장 중 확률이 높은 순서대로 N 개의 타겟 문장을 생성할 수 있다. 위와 같은 방식에 따라, 몬테카를로 서치 문장 생성부(710)는 제1 디코딩 모델(741)이 최종 결과값을 출력하기 전인 임의의 제1 시점에도 복수의 타겟 문장을 생성할 수 있다.
일실시예에 따르면, 몬테카를로 서치 문장 생성부(710)는 소스 문장 내의 단어에 대응하여 제1 디코딩 모델(741)이 각각의 시간 단계에 출력하는 출력값들을 샘플링하여 미리 지정된 개수의 타겟 문장을 생성할 수 있다. 몬테카를로 서치 문장 생성부(710)는 제1 디코딩 모델(741)의 출력값을 이용하여 빔 너비 내의 단어들을 샘플링할 수 있다. 또한, 몬테카를로 서치 문장 생성부(710)는 샘플링된 단어들을 조합하여 미리 지정된 개수의 타겟 문장을 생성할 수 있다.
또한, 계산부(720)는 제2 디코딩 모델(742)을 이용하여 제1 시점에 생성된 복수의 타겟 문장에 대한 보상 정보를 계산할 수 있다. 계산부(720)는 복수의 타겟 문장에 대해 실시간으로 보상 정보를 계산할 수 있다. 또한, 업데이트부(730)는 계산된 보상 정보에 기초하여 제1 디코딩 모델(741) 내의 노드들의 가중치를 재설정하고, 업데이트된 가중치를 제1 디코딩 모델(741)로 출력할 수 있다. 계산부(720) 및 업데이트부(730)의 구체적 동작에 대해서는 도 1, 도 3a, 도 3b, 도 4a 및 도 4b에서 기재된 설명이 그대로 적용될 수 있어 중복되는 설명은 생략하기로 한다.
본 실시예에 따른 업데이트 장치(700)는 제1 디코딩 모델(741)이 각각의 시간 단계에서 출력하는 출력값을 이용하여 실시간으로 복수의 타겟 문장을 생성한다. 그에 따라, 업데이트 장치(700)는 각각의 시간 단계에서 실시간으로 제1 디코딩 모델(741)의 가중치를 재설정할 수 있고, 병렬화가 쉽게 구현될 수 있다.
도 8a 및 도 8b는 또 다른 일실시예에 따라 N-best 알고리즘 및 몬테카를로 서치 알고리즘을 함께 이용하여 타겟 문장을 생성하는 과정을 설명하는 예시도이다. 도 8a를 참조하면, 몬테카를로 서치 문장 생성부(810) 및 N-best 문장 생성부(820)를 포함하는 문장 생성 모델의 업데이트 장치(800)가 도시된다. 업데이트 장치(800)는 몬테카를로 서치 문장 생성부(810), N-best 문장 생성부(820), 계산부(830) 및 업데이트부(840)를 포함한다.
업데이트 장치(800)는 제1 디코딩 모델(851)이 각각의 시간 단계에서 출력하는 출력값에 따라 복수의 제1 타겟 문장을 생성할 수 있다. 복수의 제1 타겟 문장은 소스 문장에 포함되는 각각의 단어에 대한 출력값에 따라 생성된 문장을 나타낼 수 있다. 보다 구체적으로, 몬테카를로 서치 문장 생성부(810)는 제1 디코딩 모델(851)로부터 각각의 시간 단계에 출력되는 출력값에 몬테카를로 서치를 적용하여 미리 지정된 N 개의 제1 타겟 문장을 생성할 수 있다. 몬테카를로 서치 문장 생성부(810)가 각각의 시간 단계에서 제1 타겟 문장을 생성하는 과정에 대해서는 도 7과 함께 기재된 설명이 그대로 적용될 수 있어 중복되는 설명은 생략하기로 한다.
계산부(830)는 제2 디코딩 모델(852)을 이용하여 제1 디코딩 모델(851)의 실시간 출력값에 대응하는 제1 보상 정보를 계산할 수 있다. 또한, 업데이트부(840)는 계산된 제1 보상 정보에 기초하여 제1 디코딩 모델(851) 내의 가중치를 재설정하고, 업데이트된 가중치를 제1 디코딩 모델(851)로 출력할 수 있다. 계산부(830) 및 업데이트부(840)의 구체적 동작에 대해서는 도 1, 도 3a, 도 3b, 도 4a 및 도 4b에서 기재된 설명이 그대로 적용될 수 있어 중복되는 설명은 생략하기로 한다.
본 실시예에 따른 업데이트 장치(800)는 제1 디코딩 모델(851)로부터 최종 결과값이 출력되지 않은 경우에도 몬테카를로 서치를 적용하여 제1 타겟 문장을 생성할 수 있다. 그에 따라, 업데이트 장치(800)는 실시간으로 제1 디코딩 모델(851)의 가중치를 업데이트할 수 있다.
또한, 업데이트 장치(800)는 소스 문장 전체에 대응하여 제1 디코딩 모델(851)이 출력하는 최종 결과값에 따라 복수의 제2 타겟 문장을 생성할 수 있다. 보다 구체적으로, N-best 문장 생성부(820)는 제1 디코딩 모델(851)이 출력하는 최종 결과값들 중 기설정된 범위에 존재하는 최종 결과값에 따라 복수의 제2 타겟 문장을 생성할 수 있다. N-best 문장 생성부(820)는 제1 디코딩 모델(851)이 출력하는 최종 결과값들 중 빔 너비 내 존재하는 단어들을 조합하여 가장 높은 확률 순서로써 N 개의 타겟 문장을 출력할 수 있다.
계산부(830)는 제2 디코딩 모델(852)을 이용하여 제1 디코딩 모델(851)의 최종 결과값에 따른 제2 보상 정보를 계산할 수 있다. 또한, 업데이트부(840)는 계산된 제2 보상 정보에 기초하여 제1 디코딩 모델(851) 내의 가중치를 재설정하고, 업데이트된 가중치를 제1 디코딩 모델(851)로 출력할 수 있다. 본 실시예에 따른 업데이트 장치(800)는 제1 디코딩 모델(851)로부터 최종 결과값이 출력된 경우에는 N-best 문장 생성부(820)가 출력하는 제2 타겟 문장을 이용하여 제1 디코딩 모델(851)의 가중치를 업데이트할 수 있다. 그에 따라, 업데이트 장치(800)는 실제 문장을 생성하는 문장 생성 모델과 동일한 방식에 따른 학습 결과를 제1 디코딩 모델(851)에 가중치로서 반영할 수 있어, 개선된 품질의 문장을 제공하는 문장 생성 모델을 업데이트할 수 있다.
도 8b는 상기 도 8a에서 설명된 업데이트 장치가 N-best 알고리즘 및 몬테카를로 서치 알고리즘을 함께 이용하여 타겟 문장을 생성하는 과정을 구체적으로 설명하는 흐름도이다. 도 8b를 참조하면, 상기 N-best 알고리즘 및 상기 몬테카를로 서치 알고리즘을 함께 이용하여 타겟 문장을 생성하는 방법은 소스 문장의 일부에 대응하여 제1 디코딩 모델이 출력하는 출력값에 따라 복수의 제1 타겟 문장을 생성하는 단계(861), 제2 디코딩 모델을 이용하여 상기 복수의 제1 타겟 문장에 대한 제1 보상 정보를 계산하여 상기 제1 디코딩 모델의 가중치를 업데이트하는 단계(862), 소스 문장 전체에 대응하는 상기 제1 디코딩 모델의 최종 결과값이 출력 되었는지 확인하는 단계(863), 소스 문장 전체에 대응하여 상기 제1 디코딩 모델이 출력하는 최종 결과값에 따라 복수의 제2 타겟 문장을 생성하는 단계(864) 및 상기 제2 디코딩 모델을 이용하여 상기 복수의 제2 타겟 문장에 대한 제2 보상 정보를 계산하여 상기 제1 디코딩 모델의 가중치를 업데이트하는 단계(865)를 포함할 수 있다.
단계(861)에서 소스 문장의 일부에 대응하여 제1 디코딩 모델이 출력하는 중간 출력값에 따라 복수의 제1 타겟 문장이 생성된다. 예시적으로, 단계(861)에서는 몬테카를로 서치 문장 생성부에 의해 복수의 제1 타겟 문장이 생성될 수 있다.
단계(862)에서 제2 디코딩 모델을 이용하여 상기 복수의 제1 타겟 문장에 대한 제1 보상 정보가 계산된다. 또한, 상기 계산된 제1 보상 정보에 기초하여 제1 디코딩 모델의 가중치가 업데이트 된다.
단계(863)에서는 소스 문장 전체에 대응하는 제1 디코딩 모델의 최종 결과값이 출력 되었는 지가 확인될 수 있다. 소스 문장 전체에 대응하는 상기 제1 디코딩 모델의 최종 결과값이 출력된 경우에 단계(864)가 수행될 수 있다. 반면에, 상기 소스 문장 전체에 대응하는 상기 제1 디코딩 모델의 최종 결과값이 아직 출력되지 않았다면 단계(861)가 반복적으로 수행될 수 있다.
단계(864)에서 소스 문장 전체에 대응하여 제1 디코딩 모델이 출력하는 최종 결과값에 따라 복수의 제2 타겟 문장이 생성된다. 예시적으로, 단계(864)에서는 N-best 문장 생성부에 의해 복수의 제2 타겟 문장이 생성될 수 있다.
단계(865)에서 제2 디코딩 모델을 이용하여 상기 복수의 제2 타겟 문장에 대한 제2 보상 정보가 계산된다. 또한, 상기 제2 보상 정보에 기초하여 제2 디코딩 모델의 가중치가 업데이트 된다. 본 실시예에 따른 문장 생성 모델의 업데이트 방법은 제1 디코딩 모델의 최종 결과값이 출력되기 전에는 몬테카를로 서치 문장 생성부에 기반하여 가중치를 업데이트하고, 최종 결과값이 생성되면 N-best 문장 생성부에 기반하여 가중치를 업데이트할 수 있다. 그에 따라, 상기 업데이트 방법은 실시간으로 제1 디코딩 모델의 가중치를 업데이트하며 이와 함께 최종적으로는 학습 방법과 디코딩 방법을 일치시켜 정확도를 높일 수도 있다.
도 9는 다른 일실시예에 따라 타겟 문장에 대한 보상 정보가 계산되는 과정을 도시하는 예시도이다. 도 9을 참조하면, 다른 일실시예에 따른 평가 모델이 도시된다. 보다 구체적으로, 도 9에는 문장 생성 모델과 생성된 타겟 문장에 대한 보상 정보를 생성하는 평가 모델이 도시된다. 도 9에서는 설명의 편의를 위해 상기 문장 생성 모델이 번역 모델인 경우에 대해 설명되나, 위와 같은 기재가 다른 실시예들의 범위를 제한하거나 한정하는 것으로 해석되어서는 안될 것이다. 문장 생성 모델은 주어진 소스 문장에 대응하여 지정된 타겟 문장을 생성하는 다양한 형태의 언어 모델로 구현될 수 있을 것이다.
업데이트 장치는 제1 디코딩 모델(931)을 문장 생성 모델로서 이용할 수 있다. 예시적으로, 제1 디코딩 모델(931)은 타겟 문장의 시작에서부터 상기 타겟 문장의 끝까지 순차적으로 디코딩을 수행하는 순방향 디코딩 모델로 구현될 수 있다. 보다 구체적으로, 타겟 문장인 "I love you"를 생성하기 위해 제1 디코딩 모델(931)에는 소스 문장(910)인 "나는 너를 사랑해"의 특징값이 입력될 수 있다. 소스 문장(910)을 구성하는 각각의 단어들(나는, 너를, 사랑해)은 미리 지정된 인코딩 모델(920)에 입력되어 특징값이 추출될 수 있다. 이를테면, 소스 문장(910)으로부터 추출된 특징값은 컨텍스트 정보 및 제1 어텐션 정보를 포함할 수 있다. 상기 컨텍스트 정보 및 상기 제1 어텐션 정보에 대해서는 도 5와 함께 기재된 설명이 그대로 적용될 수 있어 중복되는 설명은 생략하기로 한다.
소스 문장(910)에 관한 컨텍스트 정보 및 제1 어텐션 정보가 제1 디코딩 모델(931) 내의 노드로 입력될 수 있다. 제1 디코딩 모델(931) 내의 노드들은 미리 지정된 가중치(θ1, θ2, θ3)에 따라 연결된다. 제1 디코딩 모델(931)은 입력되는 소스 문장(910)에 관한 특징값에 기반하여 타겟 문장을 생성하고 출력할 수 있다.
제2 디코딩 모델(932)은 생성된 타겟 문장에 대한 평가 모델로서 이용될 수 있다. 예시적으로, 제2 디코딩 모델(932)은 타겟 문장의 시작 문자(character)로부터 상기 타겟 문장의 마지막 문자까지 각각의 문자를 예측하여 순차적으로 디코딩을 수행하는 문자 기반의 디코딩 모델로 구현될 수 있다. 마찬가지로, 제2 디코딩 모델(932)에도 소스 문장(910)인 "나는 너를 사랑해"의 특징값이 입력될 수 있다. 소스 문장(910)으로부터 추출된 특징값은 컨텍스트 정보 및 제2 어텐션 정보를 포함할 수 있다. 제2 디코딩 모델(932) 내의 노드들은 미리 지정된 가중치(Φ1 내지 Φ8)에 따라 연결된다. 제2 디코딩 모델(932)은 소스 문장(510)의 특징값 및 타겟 문장에 포함되는 각각의 문자들이 생성될 확률에 기초하여 보상 정보를 생성할 수 있다. 제2 디코딩 모델(932)이 출력하는 보상 정보를 이용하여 제1 디코딩 모델(931) 내의 노드들의 가중치가 새롭게 재설정될 수 있다.
본 실시예에 따른 업데이트 장치는 문장 생성 모델을 평가하는 평가 모델로 다양한 형태의 디코딩 모델을 이용할 수 있다. 그에 따라, 업데이트 장치는 문장 생성 모델이 어느 한 쪽 방향으로 치우쳐 학습되는 것을 방지할 수 있다.
도 10은 일실시예에 따른 문장 생성 장치를 도시하는 블록도이다. 도 10을 참조하면, 문장 생성 장치(1000)는 생성부(1010), 계산부(1020) 및 업데이트부(1030)를 포함할 수 있다. 본 실시예에 따른 문장 생성 장치(1000)는 사용자가 입력하는 소스 문장에 대응하여 타겟 문장을 출력하는 장치를 나타낸다. 문장 생성 장치(1000)는 모바일 폰, 셀룰러 폰, 스마트 폰, 퍼스널 컴퓨터, 랩탑, 노트북, 넷북 또는 태블릿, 휴대 정보 단말기(personal digital assistant; PDA), 디지털 카메라, 게임 콘솔, MP3 플레이어, 퍼스널 멀티미디어 플레이어(personal multimedia player; PMP), 전자 북(E-Book), 네비게이션, 디스크 플레이어, 셋톱박스, 가정용 전자기기(home appliance), 통신 장치, 디스플레이 장치, 또는 다른 전자기기에 내장되거나 또는 이것들과 상호 동작할 수 있다. 또한, 문장 생성 장치(1000)는 스마트 가전 기기, 지능형 차량, 자율 주행 장치, 스마트 홈 환경, 스마트 빌딩 환경, 스마트 오피스 환경, 스마트 전자 보안 시스템 등에 내장되거나 또는 이것들과 상호 동작할 수 있다. 또한, 문장 생성 장치(1000)는 사용자의 신체에 착용되는 웨어러블 기기(wearable device)에 포함되어 동작하거나 이것과 상호 동작할 수 있다. 웨어러블 기기는 예를 들어, 반지, 시계, 안경, 팔찌, 벨트, 밴드, 목걸이, 귀걸이, 헬멧 또는 옷의 형태를 가질 수 있다.
생성부(1010)는 제1 디코딩 모델을 이용하여 소스 문장에 대한 타겟 문장을 생성할 수 있다. 상기 제1 디코딩 모델은 미리 지정된 저장소에 저장된 언어 모델을 나타낼 수 있다. 일실시예로서, 미리 지정된 저장소에는 문장 생성 장치(1000) 내에 존재하는 메모리 영역이 이용될 수 있다. 다른 일실시예로서, 상기 미리 지정된 저장소에는 문장 생성 장치(1000)와 인터페이스를 통해 연결되는 외부 메모리 장치가 이용될 수 있다. 상기 미리 지정된 저장소에는 복수의 디코딩 모델이 저장되며, 상기 복수의 디코딩 모델은 리커런트 뉴럴 네트워크를 포함하는 순방향 디코딩 모델, 역방향 디코딩 모델, 문자 기반 디코딩 모델 등과 같은 다양한 형태의 언어 모델을 포함할 수 있다. 생성부(1010)는 상기 미리 지정된 저장소로부터 제1 디코딩 모델을 선택하고, 선택된 제1 디코딩 모델을 이용하여 소스 문장에 대한 타겟 문장을 생성할 수 있다.
일실시예로서, 생성부(1010)는 소스 문장에 대응하여 제1 디코딩 모델이 출력하는 최종 결과값들 중 기설정된 범위 내에 존재하는 최종 결과값에 따라 복수의 타겟 문장을 생성할 수 있다.
계산부(1020)는 제2 디코딩 모델을 이용하여 타겟 문장에 대한 보상 정보를 계산할 수 있다. 마찬가지로, 계산부(1020)도 미리 지정된 저장소로부터 상기 제2 디코딩 모델을 선택하고, 상기 선택된 제2 디코딩 모델을 이용하여 상기 타겟 문장에 대한 보상 정보를 계산할 수 있다.
일실시예로서, 계산부(1020)에 의해 역방향 디코딩 모델이 선택된 경우, 계산부(1020)는 타겟 문장에 포함되는 복수의 단어들이 상기 타겟 문장과 다른 순서로 배열된 시퀀스를 이용하여 보상 정보를 계산할 수 있다. 계산부(1020)는 소스 문장 및 상기 역방향 디코딩 모델로부터 이전 시간에 출력된 제1 단어를 이용하여 상기 역방향 디코딩 모델로부터 현재 시간에 제2 단어가 생성될 확률을 계산하여 상기 보상 정보를 계산할 수 있다.
다른 일실시예로서, 계산부(1020)에 의해 문자 기반 디코딩 모델이 선택된 경우, 계산부(1020)는 타겟 문장에 포함되는 복수의 단어들을 각각의 문자(character)로 분리한 시퀀스를 이용하여 보상 정보를 계산할 수 있다. 계산부(1020)는 소스 문장 및 상기 문자 기반 디코딩 모델로부터 이전 시간에 출력된 제1 문자를 이용하여 상기 문자 기반 디코딩 모델로부터 현재 시간에 제2 문자가 생성될 확률을 계산하여 상기 보상 정보를 계산할 수 있다.
다른 일실시예로서, 생성부(1010)는 소스 문장 내의 단어에 대응하여 제1 디코딩 모델로부터 제1 시점에 출력되는 출력값에 따라 복수의 타겟 문장을 생성할 수 있다. 이 경우에, 계산부(1020)는 제2 디코딩 모델을 이용하여 상기 제1 시점에 생성된 복수의 타겟 문장에 대한 보상 정보를 계산할 수 있다.
또 다른 일실시예로서, 생성부(1010)는 소스 문장에 포함되는 각각의 단어에 대응하여 제1 디코딩 모델이 출력하는 출력값에 따라 복수의 제1 타겟 문장을 생성하고, 상기 소스 문장 전체에 대응하여 상기 제1 디코딩 모델이 출력하는 최종 결과값들 중 기설정된 범위 내에 존재하는 최종 결과값에 따라 복수의 제2 타겟 문장을 생성할 수 있다. 이 경우에, 계산부(1020)는 제2 디코딩 모델을 이용하여 상기 복수의 제1 타겟 문장에 대한 제1 보상 정보 및 상기 복수의 제2 타겟 문장에 대한 제2 보상 정보를 계산할 수 있다. 업데이트부(1030)는 상기 계산된 보상 정보들에 기초하여 제1 디코딩 모델 내의 노드들의 가중치를 재설정할 수 있다.
또 다른 일실시예로서, 생성부(1010)는 제2 디코딩 모델을 이용하여 소스 문장에 대한 새로운 타겟 문장을 생성하고, 계산부(1020)는 제1 디코딩 모델을 이용하여 상기 새로운 타겟 문장에 대한 보상 정보를 계산하고, 업데이트부(1030)는 상기 계산된 보상 정보에 기초하여 상기 제2 디코딩 모델 내의 노드들의 가중치를 재설정할 수 있다.
본 실시예에 따른 문장 생성 장치(1000)는 미리 저장된 복수의 디코딩 모델을 평가 모델로서 이용하여 문장 생성 모델을 스스로 업데이트 할 수 있다. 문장 생성 장치(1000)는 미리 지정된 주기에 따라 자신이 보유하고 있는 디코딩 모델들의 성능을 평가하고, 주기적으로 상기 디코딩 모델들의 가중치를 재설정하여 보다 정확한 문장이 생성되도록 성능을 유지할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (26)

  1. 제1 디코딩 모델을 이용하여 소스 문장에 대한 타겟 문장을 생성하는 단계;
    상기 제1 디코딩 모델과 다른 순서(order)로 문장을 생성하는 제2 디코딩 모델을 이용하여 상기 타겟 문장에 대한 보상(reward) 정보를 계산하는 단계; 및
    상기 계산된 보상 정보에 기초하여 상기 제1 디코딩 모델 내의 노드들의 가중치(weight)를 재설정하는 단계
    를 포함하는 문장 생성 모델의 업데이트 방법.
  2. 제1항에 있어서,
    상기 보상 정보를 계산하는 단계는,
    상기 타겟 문장에 포함되는 복수의 단어들 각각이 상기 제2 디코딩 모델로부터 생성될 확률에 기초하여 상기 보상 정보를 계산하는 단계
    를 포함하는 문장 생성 모델의 업데이트 방법.
  3. 제2항에 있어서,
    상기 보상 정보를 계산하는 단계는,
    상기 소스 문장 및 상기 제2 디코딩 모델로부터 이전 시간(previous time)에 출력된 제1 단어를 이용하여 상기 제2 디코딩 모델로부터 현재 시간에 제2 단어가 생성될 확률을 계산하는 단계
    를 더 포함하는 문장 생성 모델의 업데이트 방법.
  4. 제2항에 있어서,
    상기 보상 정보를 계산하는 단계는,
    상기 타겟 문장에 포함되는 복수의 단어들이 상기 타겟 문장과 다른 순서(order)로 배열된 시퀀스(sequence)를 이용하여 상기 보상 정보를 계산하는 단계
    를 포함하는 문장 생성 모델의 업데이트 방법.
  5. 제1항에 있어서,
    상기 제1 디코딩 모델은 리커런트 뉴럴 네트워크(recurrent neural network)를 포함하는 순방향(forward) 디코딩 모델이고, 상기 제2 디코딩 모델은 리커런트 뉴럴 네트워크를 포함하는 역방향(backward) 디코딩 모델인 문장 생성 모델의 업데이트 방법.
  6. 제1항에 있어서,
    상기 가중치를 재설정하는 단계는,
    상기 제1 디코딩 모델을 이용하여 상기 타겟 문장에 대한 정책(policy) 정보를 계산하는 단계; 및
    상기 계산된 정책 정보 및 상기 계산된 보상 정보를 이용하여 지정된 조건에 대응하는 상기 가중치를 재설정하는 단계
    를 포함하는 문장 생성 모델의 업데이트 방법.
  7. 제6항에 있어서,
    상기 정책 정보를 계산하는 단계는,
    상기 타겟 문장에 포함되는 복수의 단어들 각각이 상기 제1 디코딩 모델로부터 생성될 확률에 기초하여 상기 정책 정보를 계산하는 단계
    를 포함하는 문장 생성 모델의 업데이트 방법.
  8. 제7항에 있어서,
    상기 정책 정보를 계산하는 단계는,
    상기 소스 문장 및 상기 제1 디코딩 모델로부터 이전 시간에 출력된 제1 단어를 이용하여 상기 제1 디코딩 모델로부터 현재 시간에 제2 단어가 생성될 확률을 계산하는 단계
    를 더 포함하는 문장 생성 모델의 업데이트 방법.
  9. 제6항에 있어서,
    상기 가중치를 계산하는 단계는,
    복수의 타겟 문장 각각의 보상 정보 및 정책 정보로 정의되는 목적함수(objective function)를 최대화 하는 상기 가중치를 재설정하는 단계
    를 포함하고,
    상기 복수의 타겟 문장은 상기 제1 디코딩 모델을 이용하여 상기 소스 문장으로부터 생성되는 문장 생성 모델의 업데이트 방법.
  10. 제6항에 있어서,
    상기 가중치를 계산하는 단계는,
    목적함수 및 상기 소스 문장에 대해 미리 지정된 정답 문장이 상기 제1 디코딩 모델로부터 생성될 확률로 정의되는 로스함수(loss function)를 최소화 하는 상기 가중치를 재설정하는 단계
    를 포함하고,
    복수의 타겟 문장은 상기 제1 디코딩 모델을 이용하여 상기 소스 문장으로부터 생성되고, 상기 목적함수는 복수의 타겟 문장 각각의 보상 정보 및 정책 정보로 정의되는 문장 생성 모델의 업데이트 방법.
  11. 제1항에 있어서,
    상기 타겟 문장을 생성하는 단계는,
    상기 소스 문장에 대응하여 상기 제1 디코딩 모델이 출력하는 최종 결과값들 중 기설정된 범위 내에 존재하는 최종 결과값에 따라 복수의 타겟 문장을 생성하는 단계
    를 포함하는 문장 생성 모델의 업데이트 방법.
  12. 제1항에 있어서,
    상기 타겟 문장을 생성하는 단계는,
    상기 소스 문장 내의 단어에 대응하여 상기 제1 디코딩 모델이 제1 시점에 출력하는 출력값에 따라 복수의 타겟 문장을 생성하는 단계
    를 포함하고,
    상기 보상 정보를 계산하는 단계는,
    상기 제2 디코딩 모델을 이용하여 상기 제1 시점에 생성된 복수의 타겟 문장에 대한 보상 정보를 계산하는 단계
    를 포함하는 문장 생성 모델의 업데이트 방법.
  13. 제1항에 있어서,
    상기 타겟 문장을 생성하는 단계는,
    상기 소스 문장 내의 단어에 대응하여 상기 제1 디코딩 모델이 제1 시점에 출력하는 출력값을 샘플링하여 미리 지정된 개수의 타겟 문장을 생성하는 단계
    를 포함하고,
    상기 보상 정보를 계산하는 단계는,
    상기 제2 디코딩 모델을 이용하여 상기 미리 지정된 개수의 타겟 문장에 대한 보상 정보를 계산하는 단계
    를 포함하는 문장 생성 모델의 업데이트 방법.
  14. 제1항에 있어서,
    상기 타겟 문장을 생성하는 단계는,
    상기 소스 문장에 포함되는 각각의 단어에 대응하여 상기 제1 디코딩 모델이 출력하는 출력값에 따라 복수의 제1 타겟 문장을 생성하는 단계; 및
    상기 소스 문장 전체에 대응하여 상기 제1 디코딩 모델이 출력하는 최종 결과값들 중 기설정된 범위 내에 존재하는 최종 결과값에 따라 복수의 제2 타겟 문장을 생성하는 단계
    를 포함하는 문장 생성 모델의 업데이트 방법.
  15. 제14항에 있어서,
    상기 보상 정보를 계산하는 단계는,
    상기 제2 디코딩 모델을 이용하여 상기 복수의 제1 타겟 문장에 대한 제1 보상 정보를 계산하는 단계; 및
    상기 제2 디코딩 모델을 이용하여 상기 복수의 제2 타겟 문장에 대한 제2 보상 정보를 계산하는 단계
    를 포함하는 문장 생성 모델의 업데이트 방법.
  16. 제1항에 있어서,
    상기 제2 디코딩 모델을 이용하여 상기 소스 문장에 대한 새로운 타겟 문장을 생성하는 단계;
    상기 제1 디코딩 모델을 이용하여 상기 새로운 타겟 문장에 대한 보상 정보를 계산하는 단계; 및
    상기 계산된 보상 정보에 기초하여 상기 제2 디코딩 모델 내의 노드들의 가중치를 재설정하는 단계
    를 더 포함하는 문장 생성 모델의 업데이트 방법.
  17. 컴퓨터로 구현되는:
    제1 디코딩 모델을 이용하여 소스 문장에 대한 타겟 문장을 생성하는 생성부;
    제2 디코딩 모델을 이용하여 상기 타겟 문장에 대한 보상 정보를 계산하는 계산부; 및
    상기 계산된 보상 정보에 기초하여 상기 제1 디코딩 모델 내의 노드들의 가중치를 재설정하는 업데이트부
    를 포함하는 문장 생성 장치.
  18. 제17항에 있어서,
    상기 계산부는 상기 타겟 문장에 포함되는 복수의 단어들이 상기 타겟 문장과 다른 순서로 배열된 시퀀스를 이용하여 상기 보상 정보를 계산하는 문장 생성 장치.
  19. 제18항에 있어서,
    상기 계산부는 상기 소스 문장 및 상기 제2 디코딩 모델로부터 이전 시간에 출력된 제1 단어를 이용하여 상기 제2 디코딩 모델로부터 현재 시간에 제2 단어가 생성될 확률을 계산하여 상기 보상 정보를 계산하는 문장 생성 장치.
  20. 제17항에 있어서,
    상기 계산부는 상기 타겟 문장에 포함되는 복수의 단어들을 각각의 문자(character)로 분리한 시퀀스를 상기 제2 디코딩 모델에 입력하여 상기 보상 정보를 계산하는 문장 생성 장치.
  21. 제20항에 있어서,
    상기 계산부는 상기 소스 문장 및 상기 제2 디코딩 모델로부터 이전 시간에 출력된 제1 문자를 이용하여 상기 제2 디코딩 모델로부터 현재 시간에 제2 문자가 생성될 확률을 계산하여 상기 보상 정보를 계산하는 문장 생성 장치.
  22. 제17항에 있어서,
    상기 생성부는 상기 소스 문장에 대응하여 상기 제1 디코딩 모델이 출력하는 최종 결과값들 중 기설정된 범위 내에 존재하는 최종 결과값에 따라 복수의 타겟 문장을 생성하는 문장 생성 장치.
  23. 제17항에 있어서,
    상기 생성부는 상기 소스 문장 내의 단어에 대응하여 상기 제1 디코딩 모델이 제1 시점에 출력하는 출력값에 따라 복수의 타겟 문장을 생성하고, 상기 계산부는 상기 제2 디코딩 모델을 이용하여 상기 제1 시점에 생성된 복수의 타겟 문장에 대한 보상 정보를 계산하는 문장 생성 장치.
  24. 제17항에 있어서,
    상기 생성부는 상기 소스 문장에 포함되는 각각의 단어에 대응하여 상기 제1 디코딩 모델이 출력하는 출력값에 따라 복수의 제1 타겟 문장을 생성하고, 상기 소스 문장에 대응하여 상기 제1 디코딩 모델이 출력하는 최종 결과값들 중 기설정된 범위 내에 존재하는 최종 결과값에 따라 복수의 제2 타겟 문장을 생성하는 문장 생성 장치.
  25. 제24항에 있어서,
    상기 계산부는 상기 제2 디코딩 모델을 이용하여 상기 복수의 제1 타겟 문장에 대한 제1 보상 정보를 계산하고, 상기 제2 디코딩 모델을 이용하여 상기 복수의 제2 타겟 문장에 대한 제2 보상 정보를 계산하는 문장 생성 장치.
  26. 제17항에 있어서,
    상기 생성부는 상기 제2 디코딩 모델을 이용하여 상기 소스 문장에 대한 새로운 타겟 문장을 생성하고, 상기 계산부는 상기 제1 디코딩 모델을 이용하여 상기 새로운 타겟 문장에 대한 보상 정보를 계산하고, 상기 업데이트부는 상기 계산된 보상 정보에 기초하여 상기 제2 디코딩 모델 내의 노드들의 가중치를 재설정하는 문장 생성 장치.
KR1020170133971A 2017-10-16 2017-10-16 문장 생성 모델의 업데이트 방법 및 문장 생성 장치 KR102424540B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020170133971A KR102424540B1 (ko) 2017-10-16 2017-10-16 문장 생성 모델의 업데이트 방법 및 문장 생성 장치
CN201810478297.0A CN109670147A (zh) 2017-10-16 2018-05-18 更新句子生成模型的方法以及句子生成设备
US16/014,779 US11727263B2 (en) 2017-10-16 2018-06-21 Method of updating sentence generation model and sentence generating apparatus
JP2018148375A JP7109302B2 (ja) 2017-10-16 2018-08-07 文章生成モデルのアップデート方法及び文章生成装置
EP18197984.0A EP3474157A1 (en) 2017-10-16 2018-10-01 Method of updating sentence generation model and sentence generating apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170133971A KR102424540B1 (ko) 2017-10-16 2017-10-16 문장 생성 모델의 업데이트 방법 및 문장 생성 장치

Publications (2)

Publication Number Publication Date
KR20190042257A true KR20190042257A (ko) 2019-04-24
KR102424540B1 KR102424540B1 (ko) 2022-07-25

Family

ID=63914798

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170133971A KR102424540B1 (ko) 2017-10-16 2017-10-16 문장 생성 모델의 업데이트 방법 및 문장 생성 장치

Country Status (5)

Country Link
US (1) US11727263B2 (ko)
EP (1) EP3474157A1 (ko)
JP (1) JP7109302B2 (ko)
KR (1) KR102424540B1 (ko)
CN (1) CN109670147A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210020298A (ko) * 2019-08-14 2021-02-24 아우토크립트 주식회사 Can 기반의 통신 네트워크에서 신호 검출 방법 및 장치
KR20220078082A (ko) * 2020-12-03 2022-06-10 주식회사 포티투마루 텍스트 요약 성능 개선 방법 및 시스템

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7031741B2 (ja) * 2018-06-05 2022-03-08 日本電信電話株式会社 モデル学習装置、方法及びプログラム
US11347966B2 (en) * 2018-07-20 2022-05-31 Samsung Electronics Co., Ltd. Electronic apparatus and learning method of electronic apparatus
US20210019628A1 (en) * 2018-07-23 2021-01-21 Intel Corporation Methods, systems, articles of manufacture and apparatus to train a neural network
US11995854B2 (en) * 2018-12-19 2024-05-28 Nvidia Corporation Mesh reconstruction using data-driven priors
US11907675B2 (en) * 2019-01-18 2024-02-20 Uber Technologies, Inc. Generating training datasets for training neural networks
US11087092B2 (en) * 2019-03-05 2021-08-10 Salesforce.Com, Inc. Agent persona grounded chit-chat generation framework
KR102455472B1 (ko) * 2019-06-27 2022-10-17 엄신조 자연어처리 기반의 자기소개서를 평가하기 위한 장치 및 이를 위한 방법
CN110502746B (zh) * 2019-07-18 2021-04-09 北京捷通华声科技股份有限公司 一种在线域更新解码方法、装置、电子设备及存储介质
US10997970B1 (en) * 2019-07-30 2021-05-04 Abbas Rafii Methods and systems implementing language-trainable computer-assisted hearing aids
CA3155096A1 (en) 2019-09-25 2021-04-01 Deepmind Technologies Limited Augmenting attention-based neural networks to selectively attend to past inputs
CN112380855B (zh) * 2020-11-20 2024-03-08 北京百度网讯科技有限公司 确定语句通顺度的方法、确定概率预测模型的方法和装置
US20220229994A1 (en) * 2021-01-21 2022-07-21 Servicenow, Inc. Operational modeling and optimization system for a natural language understanding (nlu) framework
KR20220130450A (ko) * 2021-03-18 2022-09-27 삼성전자주식회사 음성 인식을 위한 인공 신경망에서의 디코딩 방법 및 디코딩 장치
US20230350662A1 (en) * 2022-04-28 2023-11-02 The Bank Of New York Mellon Computer system and method for facilitating real-time determination of a process completion likelihood

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160089210A (ko) * 2015-01-19 2016-07-27 삼성전자주식회사 언어 모델 학습 방법 및 장치, 언어 인식 방법 및 장치
KR101762866B1 (ko) * 2010-11-05 2017-08-16 에스케이플래닛 주식회사 구문 구조 변환 모델과 어휘 변환 모델을 결합한 기계 번역 장치 및 기계 번역 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3936687B2 (ja) 2003-08-29 2007-06-27 株式会社国際電気通信基礎技術研究所 機械翻訳文の評価方法、および機械翻訳文の評価装置
WO2010046782A2 (en) 2008-10-24 2010-04-29 App Tek Hybrid machine translation
CN103119584B (zh) * 2010-12-17 2016-03-16 北京交通大学 机器翻译测评装置及方法
CN102043774A (zh) * 2011-01-13 2011-05-04 北京交通大学 机器翻译测评装置和方法
JP6478382B2 (ja) * 2014-09-12 2019-03-06 日本放送協会 翻訳装置
KR101735314B1 (ko) 2015-01-07 2017-05-16 한국전자통신연구원 하이브리드 번역 장치 및 그 방법
JP6649124B2 (ja) * 2015-05-25 2020-02-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 機械翻訳方法、機械翻訳装置及びプログラム
US9836457B2 (en) * 2015-05-25 2017-12-05 Panasonic Intellectual Property Corporation Of America Machine translation method for performing translation between languages
CN106484681B (zh) * 2015-08-25 2019-07-09 阿里巴巴集团控股有限公司 一种生成候选译文的方法、装置及电子设备
CN108604227B (zh) * 2016-01-26 2023-10-24 皇家飞利浦有限公司 用于神经临床释义生成的***和方法
JP6655788B2 (ja) * 2016-02-01 2020-02-26 パナソニックIpマネジメント株式会社 対訳コーパス作成方法、該装置および該プログラムならびに機械翻訳システム
CN107122416B (zh) 2017-03-31 2021-07-06 北京大学 一种中文事件抽取方法
US11200265B2 (en) * 2017-05-09 2021-12-14 Accenture Global Solutions Limited Automated generation of narrative responses to data queries

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101762866B1 (ko) * 2010-11-05 2017-08-16 에스케이플래닛 주식회사 구문 구조 변환 모델과 어휘 변환 모델을 결합한 기계 번역 장치 및 기계 번역 방법
KR20160089210A (ko) * 2015-01-19 2016-07-27 삼성전자주식회사 언어 모델 학습 방법 및 장치, 언어 인식 방법 및 장치

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Hoang, Cong Duy Vu, ‘Towards Decoding as Continuous Optimization in Neural Machine Translation’, arXiv:1701.02854, 2017.01. *
Lemao Liu 외, ‘Agreement on Target-bidirectional Neural Machine Translation’, Proceedings of NAACL-HLT 2016, 2016.06. *
Qing Sun 외, ‘Bidirectional Beam Search: Forward-Backward Inference in Neural Sequence Models for Fill-in-the-Blank Image Captioning’, arXiv:1705.08759v1, 2017.05. *
Rico Sennrich 외, ‘Edinburgh Neural Machine Translation Systems for WMT 16’, arXiv:1606.02891, 2016. *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210020298A (ko) * 2019-08-14 2021-02-24 아우토크립트 주식회사 Can 기반의 통신 네트워크에서 신호 검출 방법 및 장치
KR20220078082A (ko) * 2020-12-03 2022-06-10 주식회사 포티투마루 텍스트 요약 성능 개선 방법 및 시스템
US11727041B2 (en) 2020-12-03 2023-08-15 42Maru Inc. Method and system for improving performance of text summarization

Also Published As

Publication number Publication date
EP3474157A1 (en) 2019-04-24
US20190114540A1 (en) 2019-04-18
US11727263B2 (en) 2023-08-15
KR102424540B1 (ko) 2022-07-25
JP7109302B2 (ja) 2022-07-29
JP2019075088A (ja) 2019-05-16
CN109670147A (zh) 2019-04-23

Similar Documents

Publication Publication Date Title
KR102424540B1 (ko) 문장 생성 모델의 업데이트 방법 및 문장 생성 장치
US20210124878A1 (en) On-Device Projection Neural Networks for Natural Language Understanding
JP7109560B2 (ja) グローバルローカルエンコーダを使用した対話状態追跡
US11568258B2 (en) Operation method
US20200349450A1 (en) Projection neural networks
CN107836000B (zh) 用于语言建模和预测的改进的人工神经网络方法、电子设备
KR102608469B1 (ko) 자연어 생성 방법 및 장치
US9239828B2 (en) Recurrent conditional random fields
Arisoy et al. Bidirectional recurrent neural network language models for automatic speech recognition
KR102410820B1 (ko) 뉴럴 네트워크를 이용한 인식 방법 및 장치 및 상기 뉴럴 네트워크를 트레이닝하는 방법 및 장치
CN109074517B (zh) 全局归一化神经网络
CN109858044B (zh) 语言处理方法和装置、语言处理***的训练方法和装置
KR20190113928A (ko) 강화 학습을 통한 디바이스 배치 최적화
KR20180017622A (ko) 병렬 처리에 기초한 번역 방법 및 장치
CN110610234B (zh) 将外部应用程序集成到深度神经网络中
CN111414749B (zh) 基于深度神经网络的社交文本依存句法分析***
WO2021100181A1 (ja) 情報処理装置、情報処理方法及びプログラム
Kang et al. Neural mask generator: Learning to generate adaptive word maskings for language model adaptation
Zhang et al. NOAHQA: Numerical reasoning with interpretable graph question answering dataset
CN115186147A (zh) 对话内容的生成方法及装置、存储介质、终端
Regression Logistic regression
CN116992875B (zh) 文本生成方法、装置、计算机设备和存储介质
US20230259703A1 (en) Electronic device and method for controlling the electronic device
CN110348001A (zh) 一种词向量训练方法和服务器
US20240160855A1 (en) Systems and methods for search based neural text generation models

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