KR20210033258A - 시퀀스 처리 방법 및 장치 - Google Patents

시퀀스 처리 방법 및 장치 Download PDF

Info

Publication number
KR20210033258A
KR20210033258A KR1020190114764A KR20190114764A KR20210033258A KR 20210033258 A KR20210033258 A KR 20210033258A KR 1020190114764 A KR1020190114764 A KR 1020190114764A KR 20190114764 A KR20190114764 A KR 20190114764A KR 20210033258 A KR20210033258 A KR 20210033258A
Authority
KR
South Korea
Prior art keywords
node
word
sequence
determining
nodes
Prior art date
Application number
KR1020190114764A
Other languages
English (en)
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 KR1020190114764A priority Critical patent/KR20210033258A/ko
Priority to US16/844,362 priority patent/US11182555B2/en
Publication of KR20210033258A publication Critical patent/KR20210033258A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/137Hierarchical processing, e.g. outlines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • 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/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

시퀀스 처리 방법 및 장치가 개시된다. 개시된 시퀀스 처리 방법은 입력 시퀀스에 기초하여, 루트 노드에 대응하는 제1 R-노드의 단어를 결정하는 단계; 상기 제1 R-노드에 연결되어 상기 제1 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 제1 I-노드들을 생성하는 단계; 상기 복수의 제1 I-노드들 각각에 대응하여 생성된 제2 R-노드의 단어를 결정하는 단계; 및 상기 결정된 단어들을 이용하여, 상기 입력 시퀀스에 대응하는 출력 시퀀스를 결정하는 단계를 포함한다.

Description

시퀀스 처리 방법 및 장치{METHOD AND APPARATUS FOR PROCESSING SEQUENCE}
아래 실시예들은 시퀀스 처리 방법 및 장치에 관한 것이다.
병렬 디코딩은 시퀀스를 구성하는 요소를 한 번에 여러 개씩 생성하는 방법이다. 이러한 병렬 디코딩에서 시퀀스 전체를 한 번에 생성하는 경우 생성되는 단어 간 관계를 고려하기 쉽지 않으며, 시퀀스 일부를 한 번에 생성하는 경우, 이전 연산 결과를 재사용하기가 쉽지 않다.
일실시예에 따른 시퀀스 처리 방법은 입력 시퀀스에 기초하여, 루트 노드에 대응하는 제1 R-노드의 단어를 결정하는 단계; 상기 제1 R-노드에 연결되어 상기 제1 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 제1 I-노드들을 생성하는 단계; 상기 복수의 제1 I-노드들 각각에 대응하여 생성된 제2 R-노드의 단어를 결정하는 단계; 및 상기 결정된 단어들을 이용하여, 상기 입력 시퀀스에 대응하는 출력 시퀀스를 결정하는 단계를 포함한다.
일실시예에 따른 시퀀스 처리 방법에서 상기 제1 R-노드의 단어를 결정하는 단계는 상기 출력 시퀀스를 결정하기 위한 R-노드 및 I-노드의 생성 횟수가 최소화되도록 상기 제1 R-노드의 단어를 결정할 수 있다.
일실시예에 따른 시퀀스 처리 방법에서 상기 제1 R-노드의 단어를 결정하는 단계는 상기 출력 시퀀스에 포함된 단어들 중 가운데에 위치할 것으로 예상되는 단어를 상기 제1 R-노드의 단어로 결정할 수 있다.
일실시예에 따른 시퀀스 처리 방법은 상기 제2 R-노드의 단어가 결정되었는지 여부를 판단하는 단계; 상기 제2 R-노드의 단어가 결정된 경우, 상기 제2 R-노드에 연결되어 상기 제2 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 제2 I-노드들을 생성하는 단계; 및 상기 복수의 제2 I-노드들 각각에 대응하여 결정된 제3 R-노드의 단어를 결정하는 단계를 더 포함할 수 있다.
일실시예에 따른 시퀀스 처리 방법은 상기 제2 R-노드의 단어가 결정되는지 여부를 판단하는 단계를 더 포함하고, 상기 출력 시퀀스를 결정하는 단계는 상기 제2 R-노드의 단어가 결정되지 않은 경우, 상기 결정된 단어들을 이용하여 상기 출력 시퀀스를 결정할 수 있다.
일실시예에 따른 시퀀스 처리 방법에서 상기 출력 시퀀스를 결정하는 단계는 상기 생성된 R-노드들 간 트리 구조에서 결정된 단어들을 중위 순회에 기반하여 나열함으로써, 상기 출력 시퀀스를 결정할 수 있다.
일실시예에 따른 시퀀스 처리 방법에서 상기 복수의 제1 I-노드들을 생성하는 단계는 상기 제1 R-노드의 단어에 대한 상이한 상대적인 위치 정보를 포함하고, 미리 정해진 개수 또는 상기 입력 시퀀스 및 상기 출력 시퀀스 중 적어도 하나에 기반하여 동적으로 결정된 개수만큼 상기 복수의 제1 I-노드들을 생성할 수 있다.
일실시예에 따른 시퀀스 처리 방법에서 상기 제2 R-노드의 단어를 결정하는 단계는 대응하는 제1 I-노드에 인접한 다른 제1 I-노드를 참조하여 상기 제2 R-노드의 단어를 결정할 수 있다.
일실시예에 따른 시퀀스 처리 방법은 상기 제2 R-노드에 연결되어 상기 제2 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 제2 I-노드들을 생성하는 단계; 및 상기 복수의 제2 I-노드들 각각에 대응하여 결정된 제3 R-노드의 단어를 결정하는 단계를 더 포함하고, 상기 제3 R-노드의 단어를 결정하는 단계는 상기 제3 R-노드의 부모 노드인 제2 R-노드에 인접한 다른 제2 R-노드를 참조하여 상기 제3 R-노드의 단어를 결정할 수 있다.
일실시예에 따른 시퀀스 처리 방법에서 상기 제3 R-노드의 단어를 결정하는 단계는 상기 제3 R-노드의 부모 노드인 제2 R-노드에 인접한 다른 제2 R-노드들 중에서 대응하는 제2 I-노드에 기초하여 선택된 어느 하나를 참조하여 상기 제3 R-노드의 단어를 결정할 수 있다.
일실시예에 따른 시퀀스 처리 방법에서 상기 제1 R-노드의 단어를 결정하는 단계는 상기 입력 시퀀스가 입력된 인코더에서 결정된 상기 입력 시퀀스의 컨텍스트 정보 및 디코더를 이용하여, 상기 제1 R-노드의 단어를 결정할 수 있다.
일실시예에 따른 시퀀스 처리 방법에서 상기 제1 R-노드의 단어를 결정하는 단계는 상기 입력 시퀀스가 입력된 뉴럴 언어 모델을 이용하여, 상기 제1 R-노드의 단어를 결정할 수 있다.
일실시예에 따른 시퀀스 처리 방법에서 상기 입력 시퀀스 및 상기 출력 시퀀스 중 적어도 하나는 문장 데이터, 음성 데이터, 영상 데이터, 생체 데이터 및 필적 데이터 중 어느 하나일 수 있다.
일실시예에 따른 시퀀스 처리 장치는 하나 이상의 프로세서를 포함하고, 상기 하나 이상의 프로세서는 입력 시퀀스에 기초하여, 루트 노드에 대응하는 제1 R-노드의 단어를 결정하고, 상기 제1 R-노드에 연결되어 상기 제1 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 제1 I-노드들을 생성하고, 상기 복수의 제1 I-노드들 각각에 대응하여 생성된 제2 R-노드의 단어를 결정하며, 상기 결정된 단어들을 이용하여, 상기 입력 시퀀스에 대응하는 출력 시퀀스를 결정한다.
도 1은 일실시예에 따른 시퀀스 처리 장치의 동작을 설명하기 위한 도면이다.
도 2 내지 도 10은 일실시예에 따른 출력 시퀀스를 결정하기 위한 트리 구조를 설명하기 위한 도면이다.
도 11은 일실시예에 따른 트리 구조에서 출력 시퀀스를 결정하는 과정을 설명하기 위한 도면이다.
도 12는 일실시예에 따른 시퀀스 처리 방법을 나타낸 도면이다.
도 13은 일실시예에 따른 시퀀스 처리 장치를 나타낸 도면이다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 아래의 특정한 구조적 내지 기능적 설명들은 단지 실시예들을 설명하기 위한 목적으로 예시된 것으로, 실시예의 범위가 본문에 설명된 내용에 한정되는 것으로 해석되어서는 안된다. 관련 기술 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타내며, 공지된 기능 및 구조는 생략하도록 한다.
도 1은 일실시예에 따른 시퀀스 처리 장치의 동작을 설명하기 위한 도면이다.
도 1을 참조하면, 일실시예에 따른 시퀀스 처리 장치(110)는 입력 시퀀스를 처리하여 출력 시퀀스를 결정할 수 있다. 입력 시퀀스 및 출력 시퀀스 중 적어도 하나는 문장 데이터, 음성 데이터, 영상 데이터, 생체 데이터, 또는 필적 데이터(handwriting data) 등과 같이 시간성 내지 순서를 가지는 데이터를 포함할 수 있다.
예를 들어, 시퀀스 처리 장치(110)에서 음성 인식이 수행되는 경우, 입력 시퀀스는 사용자의 음성을 포함한 음성 데이터이고, 출력 시퀀스는 하나 이상의 단어를 포함하는 문장 데이터일 수 있다. 또는, 시퀀스 처리 장치(110)에서 기계 번역(machine translation)이 수행되는 경우, 입력 시퀀스는 제1 언어로 표현된 문장 데이터이고, 출력 시퀀스는 제2 언어로 표현된 문장 데이터일 수 있다. 또는, 시퀀스 처리 장치(110)에서 음성 합성이 수행되는 경우, 입력 시퀀스는 문장 데이터이고, 출력 시퀀스는 음성 데이터일 수 있다. 또는, 시퀀스 처리 장치(110)에서 기계 통역이 수행되는 경우, 입력 시퀀스는 제1 언어로 표현된 음성 데이터이고, 출력 시퀀스는 제2 언어로 표현된 음성 데이터일 수 있다. 또한, 시퀀스 처리 장치(110)에서 필기 인식이 수행되는 경우, 입력 시퀀스는 사용자가 작성한 필적 데이터이고, 출력 시퀀스는 문장 데이터일 수 있다.
이처럼, 시퀀스 처리 장치(110)는 음성 인식, 음성 합성, 기계 번역, 기계 통역, 필적 인식 등 다양한 영역에서 광범위하게 이용될 수 있다. 아래에서는 설명의 편의를 위해 시퀀스 처리 장치(110)에서 음성 인식이 수행되는 예시를 기준으로 시퀀스 처리 장치(110)의 동작을 설명하겠으나, 이러한 설명이 음성 인식뿐만 아니라 음성 합성, 기계 번역, 기계 통역, 필적 인식 등에도 마찬가지로 적용될 수 있다.
일실시예에 따른 시퀀스 처리 장치(110)는 한 번에 출력 시퀀스의 일부를 생성하면서 서로 다른 위치에서 생성된 단어들 간 관계를 고려하고, 이전에 생성된 단어도 재사용함으로써, 출력 시퀀스 생성의 정확도와 연산 효율을 모두 향상시킬 수 있다. 이러한 동작을 병렬 추론(parallel inference)으로 지칭할 수 있으며, 병렬 추론을 위한 트리 구조가 새로 제안될 수 있다. 트리 구조에 대한 자세한 설명은 도 2 내지 도 10을 통해 후술한다.
도 2 내지 도 10은 일실시예에 따른 출력 시퀀스를 결정하기 위한 트리 구조를 설명하기 위한 도면이다.
도 2를 참조하면, 일실시예에 따라 시퀀스 처리 장치에서 t=1 시점에서 생성되는 트리 구조의 예시가 도시된다.
일실시예에 따른 트리 구조에는 R-노드 및 I-노드가 포함될 수 있다. R-노드는 실제 출력 시퀀스에 포함될 단어를 포함하는 Real-node이고, I-노드는 R-노드의 단어 생성에 필요한 정보로서, 대응하는 R-노드에 대한 상대적인 위치 정보를 포함하는 Imaginary-node일 수 있다.
일실시예에 따른 시퀀스 처리 장치는 입력 시퀀스에 기초하여 루트 노드에 대응하는 R-노드의 단어를 결정한다. 시퀀스 처리 장치는 출력 시퀀스를 결정하기 위한 R-노드 및 I-노드의 생성 횟수(또는, 생성 시간)가 최소화되도록 R-노드의 단어를 결정할 수 있다. 예를 들어, 시퀀스 처리 장치는 출력 시퀀스에 포함된 단어들 중 가운데에 위치할 것으로 예상되는 단어를 R-노드의 단어로 결정할 수 있다. 추후 상세히 설명하겠으나, 트리 구조에서 루트 노드인 R-노드의 단어를 출력 시퀀스에서 가운데 위치하는 단어로 결정하는 것이 트리 구조의 높이를 최소화하는 것이고, 따라서 R-노드 및 I-노드의 생성 횟수를 최소화하는 것일 수 있다. 도 2의 예시에서는 루트 노드인 R-노드의 단어로 "ate"이 생성된 것으로 가정하며, 설명의 편의를 위해 이러한 노드를 R-노드 "ate"이라고 지칭한다.
일례로, 시퀀스 처리 장치는 인코더-디코더 모델을 이용하여 출력 시퀀스를 결정할 수 있다. 이 경우, 입력 시퀀스는 인코더로 입력되어 컨텍스트 정보가 결정되고, 결정된 컨텍스트 정보와 디코더를 이용하여 루트 노드인 R-노드의 단어가 결정될 수 있다.
다른 일례로, 시퀀스 처리 장치는 주어진 단어들을 고려하여 다음 단어를 예측하는 뉴럴 언어 모델을 이용하여 출력 시퀀스를 결정할 수 있다. 입력 시퀀스는 뉴럴 언어 모델로 입력되고, 입력 시퀀스가 입력된 뉴럴 언어 모델을 이용하여 루트 노드인 R-노드의 단어가 결정될 수 있다. 이 경우, 별도의 인코더가 필요로 되지 않는다.
도 3을 참조하면, 일실시예에 따라 시퀀스 처리 장치에서 t=2 시점에서 생성되는 트리 구조의 예시가 도시된다.
일실시예에 따른 시퀀스 처리 장치는 R-노드 "ate"에 연결되어 R-노드 "ate"의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 I-노드들을 생성한다. 복수의 I-노드들은 R-노드 "ate"의 단어에 대해 서로 다른 상대적인 위치 정보를 포함할 수 있다. 예를 들어, 복수의 I-노드들은 상대적인 위치 정보 "ate-2", "ate-1", "ate+1", "ate+2"를 포함할 수 있다. 여기서, "ate-2"는 결과 시퀀스에서 단어 "ate"보다 앞에 위치하는 단어를 지시하는 위치 정보일 수 있다. "ate-1"은 결과 시퀀스에서 단어 "ate"보다 앞이지만 "ate-2"의 단어보다는 뒤에 위치하는 단어를 지시하는 위치 정보일 수 있다. "ate+1"은 결과 시퀀스에서 단어 "ate"보다 뒤, "ate+2"의 단어보다는 앞에 위치하는 단어를 지시하는 위치 정보일 수 있다. "ate+2"는 결과 시퀀스에서 단어 "ate"보다 뒤에 위치하는 단어를 지시하는 위치 정보일 수 있다.
I-노드들은 미리 정해진 개수만큼 생성되거나, 또는 입력 시퀀스 및/또는 출력 시퀀스에 기반하여 동적으로 결정된 개수만큼 생성될 수 있다. I-노드들이 미리 정해진 개수만큼 생성되는 경우, 미리 정해진 개수는 관리자 또는 사용자에 의해 설정될 수 있다. I-노드들이 입력 시퀀스 및/또는 출력 시퀀스에 기반하여 동적으로 결정된 개수만큼 생성되는 경우, 입력 시퀀스의 타입, 출력 시퀀스의 타입, 예상 길이 등에 기반하여 최적의 개수가 결정될 수 있다. 예를 들어, 입력 시퀀스에 기반하여 예측된 출력 시퀀스의 예상 길이가 길수록, I-노드들의 생성 개수도 증가할 수 있다.
또한, 복수의 I-노드들은 동시에 생성될 수 있다.
도 4를 참조하면, 일실시예에 따라 시퀀스 처리 장치에서 t=3 시점에서 생성되는 트리 구조의 예시가 도시된다.
일실시예에 따른 시퀀스 처리 장치는 복수의 I-노드들 각각에 대응하는 R-노드를 생성하고, 생성된 R-노드의 단어를 결정할 수 있다. 예를 들어, 4개의 I-노드들 각각에 대응하는 4개의 R-노드들이 생성될 수 있다. I-노드와 R-노드는 1:1 대응관계를 가질 수 있다.
도 4의 예시에서, 시퀀스 처리 장치는 I-노드 "ate-1"에 대응하여 생성된 R-노드의 단어를 "I"로 결정할 수 있으며, 생성된 단어 "I"는 결과 시퀀스에서 단어 "ate"보다 앞설 수 있다. 그리고, 시퀀스 처리 장치는 I-노드 "ate+1"에 대응하여 생성된 R-노드의 단어를 "pizza"로 결정할 수 있으며, 생성된 단어 "pizza"는 결과 시퀀스에서 단어 "ate"보다 뒤질 수 있다. 그리고, 시퀀스 처리 장치는 I-노드 "ate+2"에 대응하여 생성된 R-노드의 단어를 "Sunday"로 결정할 수 있으며, 생성된 단어 "Sunday"는 결과 시퀀스에서 단어 "ate", "pizza"보다 뒤질 수 있다.
이 때, 시퀀스 처리 장치는 I-노드 "ate-2"에 대응하여 생성된 R-노드의 단어를 결정하지 않는다. 이는 I-노드 "ate-2"에 대응하여 생성된 R-노드의 단어가 결과 시퀀스에서 단어 "I"보다 앞서야 하는데, 결과 시퀀스에서 단어 "I"가 가장 앞에 위치한 단어로서 이보다 앞서는 단어는 없기 때문이다. 따라서, 시퀀스 처리 장치는 더 이상 확장 가능성이 없다고 판단하여, 단어를 결정하지 않을 수 있다. 도 4에서 단어가 결정되지 않은 R-노드가 END로 표시될 수 있다.
일실시예에 따르면, 복수의 제1 I-노드들 각각에 대응하여 생성된 제2 R-노드의 단어는 한 번에 결정될 수 있다. 이처럼, 이전에 결정된 단어와 그 단어에 대한 상대적인 위치 정보를 이용하여, 결과 시퀀스의 일부가 한 번에 생성됨으로써, 결과 시퀀스의 정확도와 연산 효율을 동시에 향상시킬 수 있다.
시퀀스 처리 장치가 인코더-모델을 이용하는 경우, 생성된 R-노드의 단어는 인코더로부터의 컨텍스트 정보, 대응하는 I-노드의 상대적인 위치 정보, 대응하는 R-노드의 단어(다시 말해, "ate")에 기초하여 결정될 수 있다.
시퀀스 처리 장치가 뉴럴 언어 모델을 이용하는 경우, 생성된 R-노드의 단어가 뉴럴 언어 모델에 입력된 입력 시퀀스, 대응하는 I-노드의 상대적인 위치 정보, 대응하는 R-노드의 단어(다시 말해, "ate")에 기초하여 결정될 수 있다.
도 5를 참조하면, 일실시예에 따라 시퀀스 처리 장치에서 t=4 시점에서 생성되는 트리 구조의 예시가 도시된다.
일실시예에 따른 시퀀스 처리 장치는 t=3 시점에 생성된 각 R-노드에 연결되어 해당 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 I-노드들을 생성할 수 있다. 이를테면, 시퀀스 처리 장치는 R-노드 "pizza"에 연결되어 R-노드 "pizza"의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 I-노드들을 생성할 수 있다. 앞선 설명과 마찬가지로, 생성된 복수의 I-노드들은 서로 다른 상대적인 위치 정보 "p-2", "p-1", "p+1", "p+2"를 포함할 수 있다. 여기서, "p-2"는 결과 시퀀스에서 단어 "pizza"보다 앞, 단어 "ate"보다는 뒤에 위치하는 단어를 지시하는 위치 정보일 수 있다. "p-1"은 결과 시퀀스에서 단어 "pizza"보다 앞이지만 "p-2"의 단어보다는 뒤에 위치하는 단어를 지시하는 위치 정보일 수 있다. "p+1"은 결과 시퀀스에서 단어 "pizza"보다 뒤, "p+2"의 단어보다는 앞에 위치하는 단어를 지시하는 위치 정보일 수 있다. "p+2"는 결과 시퀀스에서 단어 "pizza"보다 뒤, 단어 "Sunday"보다 앞에 위치하는 단어를 지시하는 위치 정보일 수 있다.
도 5에서 END로 표시된 단어가 결정되지 않은 R-노드에 대해서는 I-노드가 생성되지 않는다. 더 이상 확장 가능성이 없기 때문이다.
도 6을 참조하면, 일실시예에 따라 시퀀스 처리 장치에서 t=5 시점에서 생성되는 트리 구조의 예시가 도시된다.
일실시예에 따른 시퀀스 처리 장치는 t=4 시점에 생성된 복수의 I-노드들 각각에 대응하는 R-노드를 생성하고, 생성된 R-노드의 단어를 결정할 수 있다. t=4 시점에 생성된 I-노드들 각각에 1:1 대응관계를 가지는 R-노드들이 생성될 수 있다. 그리고, 대응하는 I-노드의 상대적인 위치 정보에 기초하여 R-노드의 단어가 결정될 수 있는데, 더 이상 확장 가능성이 없는 경우 단어가 결정되지 않을 수 있다.
t=5 시점에서 R-노드를 생성하고, 생성된 R-노드의 단어를 결정하는 과정에 대해서는 앞선 설명들이 마찬가지로 적용될 수 있으므로, 보다 상세한 설명은 생략한다.
도 7을 참조하면, 일실시예에 따라 시퀀스 처리 장치에서 t=6 시점에서 생성되는 트리 구조의 예시가 도시된다.
일실시예에 따른 시퀀스 처리 장치는 t=5 시점에 생성된 각 R-노드에 연결되어 해당 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 I-노드들을 생성할 수 있다. 이 때, END로 표시된 단어가 결정되지 않은 R-노드에 대해서는 I-노드가 생성되지 않는다. t=6 시점에서 복수의 I-노드를 생성하는 과정에 대해서는 앞선 설명들이 마찬가지로 적용될 수 있으므로, 보다 상세한 설명은 생략한다.
도 8을 참조하면, 일실시예에 따라 시퀀스 처리 장치에서 t=7 시점에서 생성되는 트리 구조의 예시가 도시된다.
일실시예에 따른 시퀀스 처리 장치는 t=6 시점에 생성된 복수의 I-노드들 각각에 대응하는 R-노드를 생성하고, 생성된 R-노드의 단어를 결정할 수 있다. t=6 시점에 생성된 I-노드들 각각에 1:1 대응관계를 가지는 R-노드들이 생성될 수 있다. 그리고, 대응하는 I-노드의 상대적인 위치 정보에 기초하여 R-노드의 단어가 결정될 수 있는데, 더 이상 확장 가능성이 없는 경우 단어가 결정되지 않을 수 있다. 도 8의 예시에서는, 생성된 모든 R-노드들의 확장 가능성이 없어 단어가 결정되지 않았으며, 따라서 END로 표시될 수 있다. t=7 시점에서 R-노드를 생성하고, 생성된 R-노드의 단어를 결정하는 과정에 대해서는 앞선 설명들이 마찬가지로 적용될 수 있으므로, 보다 상세한 설명은 생략한다.
일실시예에 따른 출력 시퀀스 결정을 위해 트리 구조를 생성하는 데 소요되는 최적의 시간 t은 아래의 수학식 1로 표현될 수 있다.
Figure pat00001
위의 수학식 1에서, n은 결과 시퀀스의 길이를 나타내고, B는 하나의 R-노드에 대응하여 생성되는 I-노드들 개수를 나타낸다.
도 2 내지 도 8은 트리 구조가 생성되는 과정을 시간순으로 설명하기 위한 것으로, 이러한 생성 과정이 사용자 단말의 디스플레이에 표시되어 사용자가 처리 과정을 직관적으로 확인할 수도 있다.
도 9를 참조하면, 일실시예에 따라 R-노드의 단어를 결정할 때 주변 I-노드를 참조하는 예시가 도시된다.
일실시예에 따른 시퀀스 처리 장치는 대응하는 I-노드에 인접한 다른 I-노드를 참조하여 R-노드의 단어를 결정할 수 있다. 예를 들어, 시퀀스 처리 장치가 R-노드 "I"의 단어를 결정하는 경우, 대응하는 I-노드 "ate-1"뿐만 아니라 인접한 I-노드들 "ate-2", "ate+1"의 상대적인 위치 정보도 이용할 수 있다. 또한, 시퀀스 처리 장치가 R-노드 "my"의 단어를 결정하는 경우, 대응하는 I-노드 "p+2"뿐만 아니라 인접한 I-노드들 "p+1", "s-2"의 상대적인 위치 정보도 이용할 수 있다.
도 9에서는 설명의 편의를 위해 인접한 2개의 I-노드들이 추가로 고려되는 실시예가 도시되어 있으나, 참조되는 I-노드의 개수가 이에 제한되지 않으며, 다양한 개수의 I-노드가 추가적으로 고려될 수 있다. 실시예에 따라서는 참조되는 I-노드의 개수는 미리 정해질 수 있으며, 모든 R-노드의 단어 결정에 참조되는 I-노드의 개수를 동일하게 함으로써 추론의 병렬화를 극대화할 수 있다.
도 10를 참조하면, 일실시예에 따라 R-노드의 단어를 결정할 때 주변 R-노드를 참조하는 예시가 도시된다.
일실시예에 따른 시퀀스 처리 장치는 단어를 결정하고자 하는 R-노드의 부모 R-노드에 인접한 다른 R-노드를 참조하여 해당 R-노드의 단어를 결정할 수 있다. 이 때, 참조되는 R-노드는 부모 R-노드에 인접한 다른 R-노드들 중에서 선택될 수 있으며, 선택은 단어를 결정하고자 하는 R-노드에 대응하는 I-노드에 기초하여 수행될 수 있다. 이를테면, 대응하는 I-노드의 상대적인 위치 정보가 부모 R-노드의 앞 또는 뒤를 지시하는지에 따라 인접한 다른 R-노드들 중에서 참조할 R-노드가 선택될 수 있다.
예를 들어, 시퀀스 처리 장치가 R-노드 "Chicago"의 단어를 결정하는 경우, 대응하는 I-노드 "p-1"가 부모 R-노드 단어 "pizza"보다 앞에 위치하는 단어를 지시하는 위치 정보를 포함하므로, 부모 노드인 R-노드 "pizza"에 인접한 다른 R-노드들 "I", "Sunday" 중에서 R-노드 "I"가 선택되어 추가적으로 참조될 수 있다. 또한, 시퀀스 처리 장치가 R-노드 "my"의 단어를 결정하는 경우, 대응하는 I-노드 "p+2"가 부도 R-노드 단어 "pizza"보다 뒤에 위치하는 단어를 지시하는 위치 정보를 포함하므로, 부모 노드인 R-노드 "pizza"에 인접한 다른 R-노드들 "I", "Sunday" 중에서 R-노드 "Sunday"가 선택되어 추가적으로 참조될 수 있다. 마찬가지로, R-노드 "a"의 단어를 결정하는 데 다른 R-노드 "I"가 추가적으로 참조되고, R-노드 "with"의 단어를 결정하는 데 다른 R-노드 "Sunday"가 추가적으로 참조되며, R-노드들 "bro", "last"의 단어를 결정하는 데 다른 R-노드 "pizza"가 추가적으로 참조될 수 있다.
도 10에서는 설명의 편의를 위해 인접한 1개의 R-노드가 추가로 고려되는 실시예가 도시되어 있으나, 참조되는 R-노드의 개수가 이에 제한되지 않으며, 다양한 개수의 R-노드가 추가적으로 고려될 수 있다. 실시예에 따라서는 참조되는 R-노드의 개수는 미리 정해질 수 있으며, 모든 R-노드의 단어 결정에 참조되는 R-노드의 개수를 동일하게 함으로써 추론의 병렬화를 극대화할 수 있다.
앞서 전술한 바와 같이, R-노드의 단어 결정에 주변 I-노드 및/또는 주변 R-노드를 추가적으로 참조함으로써, 생성되는 단어들 사이의 관계도 효과적으로 고려하여 동일한 단어가 중복 생성되거나, 단어들 사이의 순서가 뒤섞이지 않도록 출력 시퀀스를 결정할 수 있다.
도 11은 일실시예에 따른 트리 구조에서 출력 시퀀스를 결정하는 과정을 설명하기 위한 도면이다.
도 11을 참조하면, 일실시예에 따른 트리 구조(1110) 및 출력 시퀀스(1120)가 도시된다.
앞선 설명대로, 마지막으로 생성된 모든 R-노드들의 확장 가능성이 없어 단어가 결정되지 않으면, 트리 구조 생성 과정이 종료될 수 있다. 트리 구조 생성 과정이 종료되면, I-노드들이 모두 제거되고, R-노드들 및 이들 간 관계만 남아 트리 구조(1110)가 결정될 수 있다. 시퀀스 처리 장치는 트리 구조(1110)에서 단어들을 중위 순회에 기반하여 나열함으로써 출력 시퀀스(1120)를 결정할 수 있다. 중위 순회는 트리 구조에서 각각의 노드를 한 번만 방문하는 것으로, 왼쪽 서브 트리를 중위 순회하고, 루트 노드를 방문한 후, 오른쪽 서브 트리를 중위 순회하는 순회법일 수 있다. 이러한 중위 순회에 기반하여 출력 시퀀스 "I ate a Chicago pizza with my bro last Sunday"(1120)가 결정될 수 있다.
도 12는 일실시예에 따른 시퀀스 처리 방법을 나타낸 도면이다.
도 12를 참조하면, 일실시예에 따른 시퀀스 처리 장치에 구비된 프로세서에 의해 수행되는 시퀀스 처리 방법이 도시된다.
단계(1210)에서, 시퀀스 처리 장치는 입력 시퀀스에 기초하여, 루트 노드에 대응하는 N번째 R-노드의 단어를 결정한다. 이 때, N는 1일 수 있다. 시퀀스 처리 장치는 출력 시퀀스를 결정하기 위한 R-노드 및 I-노드의 생성 횟수가 최소화되도록 N번째 R-노드의 단어를 결정할 수 있다. 시퀀스 처리 장치는 출력 시퀀스에 포함된 단어들 중 가운데에 위치할 것으로 예상되는 단어를 N번째 R-노드의 단어로 결정할 수 있다.
단계(1220)에서, 시퀀스 처리 장치는 N번째 R-노드에 연결되어 N번째 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 N번째 I-노드들을 생성한다. 복수의 N번째 I-노드들은 N번째 R-노드의 단어에 대한 상이한 상대적인 위치 정보를 포함하고, 미리 정해진 개수 또는 입력 시퀀스 및 출력 시퀀스 중 적어도 하나에 기반하여 동적으로 결정된 개수만큼 생성될 수 있다.
그리고, N는 N+1이 될 수 있다.
단계(1230)에서, 시퀀스 처리 장치는 생성된 복수의 I-노드들 각각에 대응하여 생성된 N번째 R-노드의 단어를 결정한다. 시퀀스 처리 장치는 대응하는 I-노드에 인접한 다른 I-노드를 참조하여 N번째 R-노드의 단어를 결정할 수 있다. 시퀀스 처리 장치는 N번째 R-노드의 부모 노드인 N-1번째 R-노드에 인접한 다른 N-1번째 R-노드를 참조하여 N번째 R-노드의 단어를 결정할 수 있다. 이 때, 시퀀스 처리 장치는 N-1번째 R-노드에 인접한 다른 N-1번째 R-노드들 중에서 대응하는 I-노드에 기초하여 선택된 어느 하나를 참조하여 N번째 R-노드의 단어를 결정할 수 있다.
단계(1240)에서, 시퀀스 처리 장치는 N번째 R-노드의 단어가 결정되었는지 여부를 판단할 수 있다. 만약 N번째 R-노드의 단어가 결정되었다면, 단계(1220)가 이어서 수행될 수 있다. 반대로 N번째 R-노드의 단어가 모두 결정되지 않았다면, 단계(1240)가 이어서 수행될 수 있다.
단계(1250)에서, 시퀀스 처리 장치는 결정된 단어들을 이용하여 입력 시퀀스에 대응하는 출력 시퀀스를 결정한다. 시퀀스 처리 장치는 생성된 R-노드들 간 트리 구조에서 결정된 단어들을 중위 순회에 기반하여 나열함으로써, 출력 시퀀스를 결정할 수 있다.
도 12에 도시된 각 단계들에는 도 1 내지 도 11을 통하여 전술한 사항들이 그대로 적용되므로, 보다 상세한 설명은 생략한다.
도 13은 일실시예에 따른 시퀀스 처리 장치를 나타낸 도면이다.
도 13을 참조하면, 일실시예에 따른 시퀀스 처리 장치(1300)는 메모리(1310), 프로세서(1320) 및 입출력 인터페이스(1330)를 포함한다. 메모리(1310), 프로세서(1320) 및 입출력 인터페이스(1330)는 버스(bus)(1340)를 통하여 서로 통신할 수 있다.
메모리(1310)는 컴퓨터에서 읽을 수 있는 명령어를 포함할 수 있다. 프로세서(1320)는 메모리(1310)에 저장된 명령어가 프로세서(1320)에서 실행됨에 따라 앞서 언급된 동작들을 수행할 수 있다. 메모리(1310)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
프로세서(1320)는 명령어들, 혹은 프로그램들을 실행하거나, 시퀀스 처리 장치(1300)를 제어하는 장치로서, 예를 들어, CPU(Central Processing Unit) 및/또는 GPU(Graphic Processing Unit)을 포함할 수 있다. 시퀀스 처리 장치(1300)는 입출력 인터페이스(1330)를 통하여 외부 장치(예를 들어, 마이크로폰, 키보드, 이미지센서 등)에 연결되고, 데이터를 교환할 수 있다.
프로세서(1320)는 입력 시퀀스에 기초하여 루트 노드에 대응하는 제1 R-노드의 단어를 결정하고, 제1 R-노드에 연결되어 제1 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 제1 I-노드들을 생성하고, 복수의 제1 I-노드들 각각에 대응하여 생성된 제2 R-노드의 단어를 결정하며, 결정된 단어들을 이용하여 입력 시퀀스에 대응하는 출력 시퀀스를 결정한다.
시퀀스 처리 장치(1300)에서 이용되는 인코더-디코더 모델 및/또는 뉴럴 언어 모델은 기 학습된 모델로서, 학습 입력 시퀀스가 입력되었을 때 모델에서 정답 출력 시퀀스가 출력되도록 학습될 수 있다.
그 밖에, 시퀀스 처리 장치(1300)에 관해서는 상술된 동작을 처리할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate 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 (19)

  1. 입력 시퀀스에 기초하여, 루트 노드에 대응하는 제1 R-노드의 단어를 결정하는 단계;
    상기 제1 R-노드에 연결되어 상기 제1 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 제1 I-노드들을 생성하는 단계;
    상기 복수의 제1 I-노드들 각각에 대응하여 생성된 제2 R-노드의 단어를 결정하는 단계; 및
    상기 결정된 단어들을 이용하여, 상기 입력 시퀀스에 대응하는 출력 시퀀스를 결정하는 단계
    를 포함하는
    시퀀스 처리 방법.
  2. 제1항에 있어서,
    상기 제1 R-노드의 단어를 결정하는 단계는
    상기 출력 시퀀스를 결정하기 위한 R-노드 및 I-노드의 생성 횟수가 최소화되도록 상기 제1 R-노드의 단어를 결정하는,
    시퀀스 처리 방법.
  3. 제1항에 있어서,
    상기 제1 R-노드의 단어를 결정하는 단계는
    상기 출력 시퀀스에 포함된 단어들 중 가운데에 위치할 것으로 예상되는 단어를 상기 제1 R-노드의 단어로 결정하는,
    시퀀스 처리 방법.
  4. 제1항에 있어서,
    상기 제2 R-노드의 단어가 결정되었는지 여부를 판단하는 단계;
    상기 제2 R-노드의 단어가 결정된 경우, 상기 제2 R-노드에 연결되어 상기 제2 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 제2 I-노드들을 생성하는 단계; 및
    상기 복수의 제2 I-노드들 각각에 대응하여 결정된 제3 R-노드의 단어를 결정하는 단계
    를 더 포함하는
    시퀀스 처리 방법.
  5. 제1항에 있어서,
    상기 제2 R-노드의 단어가 결정되는지 여부를 판단하는 단계
    를 더 포함하고,
    상기 출력 시퀀스를 결정하는 단계는
    상기 제2 R-노드의 단어가 결정되지 않은 경우, 상기 결정된 단어들을 이용하여 상기 출력 시퀀스를 결정하는,
    시퀀스 처리 방법.
  6. 제1항에 있어서,
    상기 출력 시퀀스를 결정하는 단계는
    상기 생성된 R-노드들 간 트리 구조에서 결정된 단어들을 중위 순회에 기반하여 나열함으로써, 상기 출력 시퀀스를 결정하는,
    시퀀스 처리 방법.
  7. 제1항에 있어서,
    상기 복수의 제1 I-노드들을 생성하는 단계는
    상기 제1 R-노드의 단어에 대한 상이한 상대적인 위치 정보를 포함하고, 미리 정해진 개수 또는 상기 입력 시퀀스 및 상기 출력 시퀀스 중 적어도 하나에 기반하여 동적으로 결정된 개수만큼 상기 복수의 제1 I-노드들을 생성하는,
    시퀀스 처리 방법.
  8. 제1항에 있어서,
    상기 제2 R-노드의 단어를 결정하는 단계는
    대응하는 제1 I-노드에 인접한 다른 제1 I-노드를 참조하여 상기 제2 R-노드의 단어를 결정하는,
    시퀀스 처리 방법.
  9. 제1항에 있어서,
    상기 제2 R-노드에 연결되어 상기 제2 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 제2 I-노드들을 생성하는 단계; 및
    상기 복수의 제2 I-노드들 각각에 대응하여 결정된 제3 R-노드의 단어를 결정하는 단계
    를 더 포함하고,
    상기 제3 R-노드의 단어를 결정하는 단계는
    상기 제3 R-노드의 부모 노드인 제2 R-노드에 인접한 다른 제2 R-노드를 참조하여 상기 제3 R-노드의 단어를 결정하는,
    시퀀스 처리 방법.
  10. 제9항에 있어서,
    상기 제3 R-노드의 단어를 결정하는 단계는
    상기 제3 R-노드의 부모 노드인 제2 R-노드에 인접한 다른 제2 R-노드들 중에서 대응하는 제2 I-노드에 기초하여 선택된 어느 하나를 참조하여 상기 제3 R-노드의 단어를 결정하는,
    시퀀스 처리 방법.
  11. 제1항에 있어서,
    상기 제1 R-노드의 단어를 결정하는 단계는
    상기 입력 시퀀스가 입력된 인코더에서 결정된 상기 입력 시퀀스의 컨텍스트 정보 및 디코더를 이용하여, 상기 제1 R-노드의 단어를 결정하는,
    시퀀스 처리 방법.
  12. 제1항에 있어서,
    상기 제1 R-노드의 단어를 결정하는 단계는
    상기 입력 시퀀스가 입력된 뉴럴 언어 모델을 이용하여, 상기 제1 R-노드의 단어를 결정하는,
    시퀀스 처리 방법.
  13. 제1항에 있어서,
    상기 입력 시퀀스 및 상기 출력 시퀀스 중 적어도 하나는
    문장 데이터, 음성 데이터, 영상 데이터, 생체 데이터 및 필적 데이터 중 어느 하나인,
    시퀀스 처리 방법.
  14. 제1항 내지 제13항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 저장 매체.
  15. 하나 이상의 프로세서를 포함하고,
    상기 하나 이상의 프로세서는
    입력 시퀀스에 기초하여, 루트 노드에 대응하는 제1 R-노드의 단어를 결정하고,
    상기 제1 R-노드에 연결되어 상기 제1 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 제1 I-노드들을 생성하고,
    상기 복수의 제1 I-노드들 각각에 대응하여 생성된 제2 R-노드의 단어를 결정하며,
    상기 결정된 단어들을 이용하여, 상기 입력 시퀀스에 대응하는 출력 시퀀스를 결정하는
    시퀀스 처리 장치.
  16. 제15항에 있어서,
    상기 하나 이상의 프로세서는
    상기 출력 시퀀스를 결정하기 위한 R-노드 및 I-노드의 생성 횟수가 최소화되도록 상기 제1 R-노드의 단어를 결정하는,
    시퀀스 처리 장치.
  17. 제15항에 있어서,
    상기 하나 이상의 프로세서는
    상기 제2 R-노드의 단어가 결정되었는지 여부를 판단하고,
    상기 제2 R-노드의 단어가 결정된 경우, 상기 제2 R-노드에 연결되어 상기 제2 R-노드의 단어에 대한 상대적인 위치 정보를 포함하는 복수의 제2 I-노드들을 생성하며,
    상기 복수의 제2 I-노드들 각각에 대응하여 결정된 제3 R-노드의 단어를 결정하는,
    시퀀스 처리 장치.
  18. 제15항에 있어서,
    상기 하나 이상의 프로세서는
    상기 제2 R-노드의 단어가 결정되는지 여부를 판단하고,
    상기 제2 R-노드의 단어가 결정되지 않은 경우, 상기 결정된 단어들을 이용하여 상기 출력 시퀀스를 결정하는,
    시퀀스 처리 장치.
  19. 제15항에 있어서,
    상기 하나 이상의 프로세서는
    상기 생성된 R-노드들 간 트리 구조에서 결정된 단어들을 중위 순회에 기반하여 나열함으로써, 상기 출력 시퀀스를 결정하는,
    시퀀스 처리 장치.
KR1020190114764A 2019-09-18 2019-09-18 시퀀스 처리 방법 및 장치 KR20210033258A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190114764A KR20210033258A (ko) 2019-09-18 2019-09-18 시퀀스 처리 방법 및 장치
US16/844,362 US11182555B2 (en) 2019-09-18 2020-04-09 Method and apparatus for processing sequence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190114764A KR20210033258A (ko) 2019-09-18 2019-09-18 시퀀스 처리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210033258A true KR20210033258A (ko) 2021-03-26

Family

ID=74869648

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190114764A KR20210033258A (ko) 2019-09-18 2019-09-18 시퀀스 처리 방법 및 장치

Country Status (2)

Country Link
US (1) US11182555B2 (ko)
KR (1) KR20210033258A (ko)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0023930D0 (en) 2000-09-29 2000-11-15 Canon Kk Database annotation and retrieval
US6938196B2 (en) 2001-06-15 2005-08-30 Flarion Technologies, Inc. Node processors for use in parity check decoders
FI118062B (fi) 2003-04-30 2007-06-15 Nokia Corp Pienimuistinen päätöspuu
KR101210339B1 (ko) 2006-10-10 2012-12-18 삼성전자주식회사 트리 구조에서의 노드 식별자 생성 방법
US9519858B2 (en) 2013-02-10 2016-12-13 Microsoft Technology Licensing, Llc Feature-augmented neural networks and applications of same
US10181098B2 (en) 2014-06-06 2019-01-15 Google Llc Generating representations of input sequences using neural networks
US10229111B1 (en) 2016-02-03 2019-03-12 Google Llc Sentence compression using recurrent neural networks
US11928600B2 (en) 2017-10-27 2024-03-12 Salesforce, Inc. Sequence-to-sequence prediction using a neural network model
US11461628B2 (en) 2017-11-03 2022-10-04 Samsung Electronics Co., Ltd. Method for optimizing neural networks
KR20190059033A (ko) 2017-11-22 2019-05-30 한국전자통신연구원 심층 신경망 기반 음성 인식 시스템에서의 특이값 분해를 이용한 입력 벡터 생성 장치 및 방법

Also Published As

Publication number Publication date
US20210081610A1 (en) 2021-03-18
US11182555B2 (en) 2021-11-23

Similar Documents

Publication Publication Date Title
US11011154B2 (en) Enhancing hybrid self-attention structure with relative-position-aware bias for speech synthesis
BR112019004524B1 (pt) Sistema de redes neurais, um ou mais meios de armazenamento legíveis por computador não transitório e método para gerar autorregressivamente uma sequência de saída de dados de áudio
US9292489B1 (en) Sub-lexical language models with word level pronunciation lexicons
KR20210043995A (ko) 모델 학습 방법 및 장치, 및 시퀀스 인식 방법
US20180189272A1 (en) Apparatus and method for sentence abstraction
CN106471476A (zh) 用于对经优化代码的编辑并继续以及增强的经优化调试的技术
US10521701B2 (en) Parallel decoding using autoregressive machine learning models
US10437574B2 (en) System and method for providing code completion features for code modules
EP1970895A1 (en) Speech synthesis apparatus and method
CN102696012A (zh) 从代码使用中创建所推断的符号
KR102117082B1 (ko) 음성 인식 방법 및 음성 인식 장치
US9507852B2 (en) Techniques for discriminative dependency parsing
JP2020042257A (ja) 音声認識方法及び装置
KR101826828B1 (ko) 로그 데이터 관리 시스템 및 방법
CN113674733A (zh) 用于说话时间估计的方法和设备
CN113569196A (zh) 数据处理方法、装置、介质和设备
CN117931190A (zh) 一种代码管理方法及相关设备
CN109657127B (zh) 一种答案获取方法、装置、服务器及存储介质
KR20210033258A (ko) 시퀀스 처리 방법 및 장치
KR20210044003A (ko) 단어 임베딩 방법 및 장치와 단어 검색 방법
KR102589350B1 (ko) 소스코드 보안 취약점의 종류를 구별하는 인공지능 기반의 구별 모델의 생성을 통해 소스코드에 대한 보안 취약점의 종류를 확인할 수 있도록 지원하는 전자 장치 및 그 동작 방법
CN115599400A (zh) 一种Docker镜像快速构建方法、系统及介质
JP5932707B2 (ja) 計算機、プログラム及びデータ生成方法
KR20230109931A (ko) 비디오 스토리 질의 응답을 위한 트랜스포머 모델을 구축하는 장치 및 방법
CN107562430B (zh) 一种针对移动π演算语言的文件处理功能的编译方法

Legal Events

Date Code Title Description
A201 Request for examination