KR20210113833A - 벡터 변환을 이용한 데이터 처리 방법 및 장치 - Google Patents

벡터 변환을 이용한 데이터 처리 방법 및 장치 Download PDF

Info

Publication number
KR20210113833A
KR20210113833A KR1020200029072A KR20200029072A KR20210113833A KR 20210113833 A KR20210113833 A KR 20210113833A KR 1020200029072 A KR1020200029072 A KR 1020200029072A KR 20200029072 A KR20200029072 A KR 20200029072A KR 20210113833 A KR20210113833 A KR 20210113833A
Authority
KR
South Korea
Prior art keywords
input vector
attention
vector
input
dimension
Prior art date
Application number
KR1020200029072A
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 KR1020200029072A priority Critical patent/KR20210113833A/ko
Priority to US17/019,688 priority patent/US20210279569A1/en
Publication of KR20210113833A publication Critical patent/KR20210113833A/ko

Links

Images

Classifications

    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • 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/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • 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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/151Transformation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

데이터 처리 방법 및 장치가 개시된다. 일 실시예에 따른 데이터 처리 방법은, 입력 데이터를 임베딩하여 입력 벡터를 생성하는 단계와, 상기 입력 벡터의 패턴에 기초하여 상기 입력 벡터의 차원을 변환하는 단계와, 차원이 변환된 입력 벡터에 어텐션을 수행하는 단계를 포함한다.

Description

벡터 변환을 이용한 데이터 처리 방법 및 장치{DATA PROCESSING METHOD AND APPRATUS USING VECTOR CONVERSION}
아래 실시예들은 벡터 변환을 이용한 데이터 처리 방법 및 장치에 관한 것이다.
최근 뉴럴 네트워크를 통한 데이터 처리에 관한 연구가 활발히 진행되고 있다.
뉴럴 네트워크를 통한 데이터 처리에 있어서, 인코더-디코더 구조를 이용한 데이터 처리의 경우, 인코더 뉴럴 네트워크는 입력된 문장을 읽고 이를 고정된 길이의 벡터로 인코딩하며, 디코더는 인코딩된 벡터로부터의 변환을 출력한다.
종래의 RNN(Recurrent Neural Network)에 기반한 시퀀스-투-시퀀스(sequence-to-sequence) 모델에는 크게 두 가지 문제가 있다. 첫 번째는 하나의 고정된 크기의 벡터에 모든 정보를 압축해야 하기 때문에 정보 손실이 발생한다는 것이고, 두 번째는 RNN의 고질적인 문제인 기울기 소실(Vanishing Gradient) 문제이다.
이러한 문제로 인하여 기계 번역 분야에서 입력 문장이 길면 번역 품질이 떨어지는 현상이 나타나게 되어, 입력 시퀀스가 길어지면 출력 시퀀스의 정확도가 떨어지는 것을 보정해주기 위해 어텐션(attention)이 사용되었다.
하지만, 종래의 어텐션 방식은 고정된 벡터 사이즈를 사용하여 메모리나 시스템 리소스 측면에서 비효율적인 측면이 존재한다.
일 실시예에 따른 데이터 처리 방법은, 입력 데이터를 임베딩하여 입력 벡터를 생성하는 단계와, 상기 입력 벡터의 패턴에 기초하여 상기 입력 벡터의 차원을 변환하는 단계와, 차원이 변환된 입력 벡터에 어텐션을 수행하는 단계를 포함한다.
상기 생성하는 단계는, 상기 입력 데이터를 밀집 벡터로 변환하는 단계와, 전체 입력에 대한 상기 입력 데이터의 위치에 기초하여 상기 밀집 벡터에 포지션 임베딩을 수행하여 상기 입력 벡터를 생성하는 단계를 포함할 수 있다.
상기 변환하는 단계는, 상기 입력 벡터의 패턴에 기초하여 상기 입력 벡터에 대한 임베딩 인덱스를 결정하는 단계와, 상기 임베딩 인덱스에 기초하여 상기 입력 벡터의 차원을 변환하는 단계를 포함할 수 있다.
상기 결정하는 단계는, 상기 입력 벡터의 성분 중에서 어텐션에 사용되는 성분과 어텐션에 사용되지 않는 성분의 경계에 대응하는 인덱스를 상기 임베딩 인덱스로 결정하는 단계를 포함할 수 있다.
상기 어텐션에 사용되지 않는 성분은 0을 포함할 수 있다.
상기 임베딩 인덱스에 기초하여 상기 입력 벡터의 차원을 변환하는 단계는, 상기 입력 벡터로부터 상기 임베딩 인덱스보다 큰 값의 인덱스에 대응하는 성분을 제거함으로써 상기 입력 벡터의 차원을 축소하는 단계를 포함할 수 있다.
상기 데이터 처리 방법은, 어텐션이 수행된 입력 벡터의 차원을 복원하는 단계를 더 포함할 수 있다.
상기 복원하는 단계는, 상기 입력 벡터의 패턴에 기초하여 결정된 임베딩 인덱스에 기초하여 상기 어텐션이 수행된 입력 벡터의 차원을 상기 입력 벡터와 동일한 차원으로 증가시키는 단계를 포함할 수 있다.
상기 증가시키는 단계는, 상기 어텐션이 수행된 입력 벡터에 대하여 상기 임베딩 인덱스보다 크거나 같은 인덱스에 대응하는 성분에 대하여 제로 패딩을 수행하는 단계를 포함할 수 있다.
일 실시예에 따른 데이터 처리 장치는, 입력 데이터를 임베딩하여 입력 벡터를 생성하고, 상기 입력 벡터의 패턴에 기초하여 상기 입력 벡터의 차원을 변환하고, 차원이 변환된 입력 벡터에 어텐션을 수행하는 프로세서와, 상기 프로세서에 의해 실행되는 인스트럭션을 저장하는 메모리를 포함한다.
상기 프로세서는, 상기 입력 데이터를 밀집 벡터로 변환하고, 전체 입력에 대한 상기 입력 데이터의 위치에 기초하여 상기 밀집 벡터에 포지션 임베딩을 수행하여 상기 입력 벡터를 생성할 수 있다.
상기 프로세서는, 상기 입력 벡터의 패턴에 기초하여 상기 입력 벡터에 대한 임베딩 인덱스를 결정하고, 상기 임베딩 인덱스에 기초하여 상기 입력 벡터의 차원을 변환할 수 있다.
상기 프로세서는, 상기 입력 벡터의 성분 중에서 어텐션에 사용되는 성분과 어텐션에 사용되지 않는 성분의 경계에 대응하는 인덱스를 상기 임베딩 인덱스로 결정할 수 있다.
상기 프로세서는, 상기 어텐션에 사용되지 않는 성분은 0을 포함할 수 있다.
상기 프로세서는, 상기 입력 벡터로부터 상기 임베딩 인덱스보다 크거나 같은 인덱스에 대응하는 성분을 제거함으로써 상기 입력 벡터의 차원을 축소할 수 있다.
상기 프로세서는, 어텐션이 수행된 입력 벡터의 차원을 복원할 수 있다.
상기 프로세서는, 입력 벡터의 패턴에 기초하여 결정된 임베딩 인덱스에 기초하여 상기 어텐션이 수행된 입력 벡터의 차원을 상기 입력 벡터와 동일한 차원으로 증가시킬 수 있다.
상기 프로세서는, 상기 어텐션이 수행된 입력 벡터에 대하여 상기 임베딩 인덱스보다 큰 인덱스에 대응하는 성분에 대하여 제로 패딩을 수행할 수 있다.
도 1은 일 실시예에 따른 데이터 처리 장치의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 프로세서의 개략적인 블록도를 나타낸다.
도 3은 포지션 임베딩 동작의 예를 나타낸다.
도 4는 전체 입력에 대한 임베딩 동작의 예를 나타낸다.
도 5는 밀집 벡터로 변환된 입력 데이터의 예를 나타낸다.
도 6은 임베딩 인덱스를 설명하기 위한 도면이다.
도 7은 어텐션을 설명하기 위한 도면이다.
도 8은 도 1에 도시된 프로세서의 동작의 순서를 나타낸다.
도 9는 도 1에 도시된 데이터 처리 장치의 동작의 순서를 나타낸다.
이하, 이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 실시예에 따른 데이터 처리 장치의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 데이터 처리 장치(10)는 데이터를 처리할 수 있다. 데이터는 컴퓨터 프로그램을 운용할 수 있는 형태로 기호화· 또는 숫자화된 자료를 포함할 수 있다. 예를 들어, 데이터는 이미지, 문자, 숫자 및 소리를 포함할 수 있다.
데이터 처리 장치(10)는 입력 데이터를 처리하여 출력 데이터를 생성할 수 있다. 데이터 처리 장치(10)는 뉴럴 네트워크를 이용하여 데이터를 처리할 수 있다.
데이터 처리 장치(10)는 입력 데이터로부터 입력 벡터를 생성하고, 생성한 입력 벡터의 변환을 이용하여 효율적으로 입력 데이터를 처리할 수 있다.
데이터 처리 장치(10)는 프로세서(100) 및 메모리(200)를 포함한다.
프로세서(100)는 메모리(200)에 저장된 데이터를 처리할 수 있다. 프로세서(100)는 메모리(200)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(100)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.
"프로세서(100)"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.
예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
프로세서(100)는 입력 데이터를 임베딩(embedding)하여 입력 벡터를 생성할 수 있다.
프로세서(100)는 입력 데이터를 밀집 벡터로 변환할 수 있다. 입력 데이터가 자연어인 경우, 프로세서(100)는 말뭉치(corpus)를 특정한 기준에 따라 밀집 벡터로 변환할 수 있다.
예를 들어, 프로세서(100)는 의미를 가지는 문자의 집합을 기준으로 말뭉치를 밀집벡터로 변환할 수 있다. 프로세서(100)는 음소, 음절 또는 단어를 기준으로 말뭉치를 밀집 벡터로 변환할 수 있다.
프로세서(100)는 전체 입력에 대한 입력 데이터의 위치에 기초하여 밀집 벡터에 포지션 임베딩을 수행하여 입력 벡터를 생성할 수 있다. 프로세서(100)가 포지션 임베딩을 수행하는 과정은 도 6 및 도 7을 참조하여 상세하게 설명한다.
프로세서(100)는 입력 벡터의 패턴(pattern)에 기초하여 입력 벡터의 차원(dimension)을 변환(convert)할 수 있다. 입력 벡터의 패턴은 입력 벡터의 성분의 패턴을 의미할 수 있다. 입력 벡터의 패턴은 입력 벡터의 성분이 가지는 값들이 가지는 일정한 형태(form)나 양식(style)을 의미할 수 있다.
프로세서(100)는 입력 벡터의 패턴에 기초하여 입력 벡터에 대한 임베딩 인덱스를 결정할 수 있다. 프로세서(100)는 입력 벡터의 성분 중에서 어텐션(attention)에 사용되는 성분과 어텐션에 사용되지 않는 성분의 경계에 대응하는 인덱스를 임베딩 인덱스로 결정할 수 있다. 예를 들어, 어텐션에 사용되지 않는 성분은 0을 포함할 수 있다. 프로세서(100)가 임베딩 인덱스를 결정하는 과정은 도 5 및 도 6을 참조하여 상세하게 설명한다.
프로세서(100)는 결정한 임베딩 인덱스에 기초하여 입력 벡터의 차원을 변환할 수 있다. 예를 들어, 프로세서(100)는 입력 벡터로부터 임베딩 인덱스보다 큰 값의 인덱스에 대응하는 성분을 제거함으로써 입력 벡터의 차원을 축소할 수 있다.
프로세서(100)는 차원이 변환된 입력 벡터에 어텐션을 수행할 수 있다. 프로세서(100)가 어텐션을 수행하는 과정은 도 5를 참조하여 상세하게 설명한다.
프로세서(100)는 어텐션이 수행된 입력 벡터의 차원을 복원할 수 있다. 프로세서(100)는 어텐션이 수행된 입력 벡터를 리쉐입(reshape)함으로써 입력 벡터의 차원을 복원할 수 있다. 리쉐입은 벡터의 차원을 축소 또는 확장하는 동작을 포함할 수 있다.
프로세서(100)는 입력 벡터의 패턴에 기초하여 결정된 임베딩 인덱스에 기초하여 어텐션이 수행된 입력 벡터의 차원을 입력 벡터와 동일한 차원으로 증가시킬 수 있다.
예를 들어, 프로세서(100)는 어텐션이 수행된 입력 벡터에 대하여 임베딩 인덱스보다 큰 인덱스에 대응하는 성분에 대하여 제로 패딩을 수행함으로써 입력 벡터의 차원을 복원할 수 있다.
프로세서(100)가 입력 벡터의 차원을 복원하는 과정은 도 2를 참조하여 상세하게 설명한다.
메모리(200)는 프로세서(100)에 의해 실행되는 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서(100)의 동작 및/또는 프로세서(100)의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.
메모리(200)는 휘발성 메모리 장치 또는 불휘발성 메모리 장치로 구현될 수 있다.
휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.
불휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque(STT)-MRAM), Conductive Bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM(RRAM)), 나노 튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM(PoRAM)), 나노 부유 게이트 메모리(Nano Floating Gate Memory(NFGM)), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Eelectronic Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.
도 2는 도 1에 도시된 프로세서의 개략적인 블록도를 나타낸다.
도 2를 참조하면, 프로세서(100)는 워드 임베더(word embedder, 110), 포지션 임베더(position embedder, 130), 어텐션 수행기(attention performer, 150), 패턴 분석기(pattern analyzer, 170) 및 벡터 변환기(vector converter 190)를 포함할 수 있다.
워드 임베더(110)는 입력 데이터를 밀집 벡터(dense vector)로 변환할 수 있다. 밀집 벡터는 워드 임베딩의 결과라는 의미로 임베딩 벡터로도 불릴 수 있다.
밀집 벡터는 희소 표현의 반대 의미를 갖는 밀집 표현에 의해 표현되는 벡터를 의미할 수 있다. 희소 표현(sparse representation)은 벡터의 대부분의 성분이 0으로 표현되는 표현 방식을 의미할 수 있다. 예를 들어, 희소 표현은 원 핫 인코딩(one-hot encoding)을 이용하여 생성한 원 핫 벡터와 같이 하나의 성분만 1을 갖는 표현을 포함할 수 있다.
밀집 표현은 벡터의 차원을 입력 데이터의 집합의 크기로 상정하지 않고, 임의로 설정된 차원의 크기를 갖는 벡터를 이용하여 입력 데이터를 표현하는 표현 방식을 의미할 수 있다. 밀집 벡터의 성분은 0과 1이 아닌 실수 값을 가질 수 있다. 이에 따라, 벡터의 차원이 조밀해질 수 있기 때문에 밀집 표현을 이용하여 생성된 벡터는 밀집 벡터라고 지칭될 수 있다.
상술한 바와 같이 입력 데이터는 텍스트 및 이미지를 포함할 수 있다. 워드 임베더(110)는 입력 데이터를 밀집 벡터로 변환할 수 있다. 워드 임베더(110)는 변환한 밀집 벡터를 포지션 임베더(130)로 출력할 수 있다.
포지션 임베더(130)는 밀집 벡터에 포지션 임베딩을 수행하여 입력 벡터를 생성할 수 있다. 포지션 임베더(130)는 밀집 벡터에 위치 정보를 추가적으로 할당할 수 있다. 포지션 임베더(130)는 생성한 입력 벡터를 어텐션 수행기(150)를 거쳐 패턴 분석기(170)로 출력할 수 있다. 포지션 임베더(130)의 동작은 도 3 및 도 4를 참조하여 상세하게 설명한다.
패턴 분석기(170)는 입력 벡터의 패턴을 분석할 수 있다. 패턴 분석기(170)는 입력 벡터의 패턴을 분석하여 입력 벡터에 대한 임베딩 인덱스를 결정할 수 있다.
패턴 분석기(170)가 임베딩 인덱스를 결정하는 동작은 도 5 및 도 6을 참조하여 자세하게 설명한다.
벡터 변환기(190)는 패턴 분석기(170)가 결정한 임베딩 인덱스에 기초하여 입력 벡터의 차원을 변환할 수 있다. 예를 들어, 벡터 변환기(190)는 입력 벡터로부터 임베딩 인덱스보다 큰 값의 인덱스에 대응하는 성분을 제거함으로써 입력 벡터의 차원을 축소할 수 있다. 벡터 변환기(190)는 차원을 변환한 입력 벡터를 어텐션 수행기(150)로 출력할 수 있다.
벡터 변환기(190)가 입력 벡터의 차원을 변환하는 동작은 도 5 및 도 6을 참조하여 자세하게 설명한다.
어텐션 수행기(150)는 입력 벡터에 어텐션을 수행할 수 있다. 임의의 시점에서 디코더가 예측해야 할 출력 데이터와 연관이 있는 입력 데이터를 집중적으로 보기 위해 어텐션 값을 할당하는 동작을 포함할 수 있다. 어텐션 수행기(150)의 동작은 도 7를 참조하여 상세하게 설명한다.
어텐션 수행기(150)는 어텐션을 수행한 입력 벡터를 벡터 변환기(190)로 출력할 수 있다. 벡터 변환기(190)는 어텐션이 수행된 입력 벡터의 차원을 복원할 수 있다. 어텐션 수행기(150)는 어텐션이 수행된 입력 벡터를 리쉐입(reshape)함으로써 입력 벡터의 차원을 복원할 수 있다.
어텐션 수행기(150)는 입력 벡터의 패턴에 기초하여 결정된 임베딩 인덱스에 기초하여 어텐션이 수행된 입력 벡터의 차원을 입력 벡터와 동일한 차원으로 증가시킬 수 있다.
예를 들어, 어텐션 수행기(150)는 어텐션이 수행된 입력 벡터에 대하여 임베딩 인덱스보다 큰 인덱스에 대응하는 성분에 대하여 제로 패딩을 수행함으로써 입력 벡터의 차원을 복원할 수 있다.
이를 통해, 데이터 처리 장치(10)는 입력 벡터를 이용하여 어텐션을 수행할 때 발생할 수 있는 비효율적인 연산을 제거함으로써 런타임시에 메모리 효율을 높일 수 있고, 시스템 리소스 효율을 높일 수 있다.
이하에서, 도 3 및 도 4를 참조하여, 워드 임베더(110) 및 포지션 임베더(130)의 동작을 설명한다.
도 3은 포지션 임베딩 동작의 예를 나타내고, 도 4는 전체 입력에 대한 임베딩 동작의 예를 나타낸다.
도 3 및 도 4를 참조하면, 입력 데이터는 전체 입력에 대한 상대적 또는 절대적 위치를 가질 수 있다. 데이터 처리 장치(10)는 각각의 입력 데이터의 전체 입력에 대한 위치 정보를 반영하여 입력 벡터를 생성하기 위해서, 밀집 벡터에 포지션 임베딩을 수행할 수 있다.
워드 임베더(110)는 입력 데이터에 워드 임베딩을 수행하여 입력 데이터를 밀집 벡터로 변환할 수 있다. 도 3의 예시는 입력 데이터가 자연어인 경우를 나타낼 수 있다.
도 3 및 도 4의 예시에서, 입력 데이터는 I, am, a 및 student를 포함할 수 있다. 입력 데이터의 집합은 하나의 문장을 구성할 수 있다.
입력 데이터는 순차적으로 입력될 수 있다. 워드 임베더(110)는 각 입력 데이터를 밀집 벡터로 변환할 수 있다. 도 3 및 도 4의 예시에서, 벡터의 차원이 4인 것으로 표현되어 있지만, 이에 한정되지 않고, 벡터의 차원은 입력 데이터의 종류에 따라 변경될 수 있다. 이 때, 밀집 벡터의 성분은 실수 값을 포함할 수 있다.
포지션 임베더(130)는 밀집 벡터에 포지션 임베딩을 수행하여 입력 벡터를 생성할 수 있다. 포지션 임베더(130)는 전체 입력에 대한 입력 데이터의 위치에 기초하여 밀집 벡터에 포지션 임베딩을 수행할 수 있다.
도 3 및 도 4의 예시에서, 전체 입력은 I, am, a 및 student를 의미할 수 있다. 이 때, 포지션 임베더(130)는 각 입력 데이터인 I, am, a 및 student 각각이 전체 입력에서 가지는 위치에 따라 밀집 벡터에 포지션 임베딩을 수행할 수 있다.
예를 들어, 포지션 임베더(130)는 각 밀집 벡터에 대응하는 포지션 인코딩 값을 더함으로써 포지션 임베딩을 수행할 수 있다.
포지션 인코딩 값은 수학식 1 및 2와 같이 나타낼 수 있다.
Figure pat00001
Figure pat00002
여기서, pos는 밀집 벡터의 전체 입력에 대한 위치를 의미하고, i는 밀집 벡터 내의 성분에 대한 인덱스를 의미할 수 있다. dmodel은 데이터 처리 장치(10)가 이용하는 뉴럴 네트워크의 출력 차원(또는 밀집 벡터의 차원)을 의미할 수 있다. dmodel의 값은 변경 가능하나 뉴럴 네트워크의 학습시에는 고정된 값이 사용될 수 있다.
포지션 임베더(130)는 벡터의 차원의 인덱스가 짝수인 경우에는 사인 함수 값을 사용하고, 벡터의 차원의 인덱스가 홀수인 경우에는 코사인 함수를 이용하여 포지션 인코딩 값을 생성할 수 있다.
즉, 워드 임베더(110)는 입력 데이터를 밀집 벡터로 변환하고, 포지션 임베더(130)는 밀집 벡터와 포지연 인코딩 값을 더함으로써 입력 벡터를 생성할 수 있다. 전체 입력에 대하여 입력 벡터를 생성하는 과정은 도 4와 같이 나타낼 수 있다.
예를 들어, 입력이 자연어일 때, 워드 임베더(110)가 생성한 밀집 벡터의 차원이 512이고, 전체 입력이 길이가 50인 경우에, 포지션 임베더(130)는 50x512의 크기를 가지는 입력 벡터를 생성할 수 있다.
이하에서, 도 5 및 도 6을 참조하여, 패턴 분석기(170)와 벡터 변환기(190)의 동작을 설명한다.
도 5는 밀집 벡터로 변환된 입력 데이터의 예를 나타내고, 도 6은 임베딩 인덱스를 설명하기 위한 도면이다.
도 5 및 도 6을 참조하면, 패턴 분석기(170)는 입력 벡터의 패턴을 분석하여 임베딩 인덱스를 결정하고, 임베딩 인덱스에 기초하여 입력 벡터의 차원을 변환할 수 잇다.
도 5 및 도 6의 예시와 같이 생성된 입력 벡터가 존재한다고 하면, 입력 벡터의 일부 중에서 사용되지 않는 일부 성분들은 제로 패딩(zero-padding)된 형태로 사용될 수 있다.
이러한 불필요한 성분으로 인하여, 어텐션과 같은 이후의 뉴럴 네트워크 연산에 불필요한 오버헤드가 발생할 수 있다. 데이터 처리 장치(10)는 입력 벡터에서 사용하지 않는 영역으로 인한 비효율을 방지하기 위해서 입력 벡터의 차원을 변환할 수 있다.
패턴 분석기(170)는 입력 벡터의 패턴에 기초하여 입력 벡터에 대한 임베딩 인덱스를 결정할 수 있다. 패턴 분석기(170)는 입력 벡터의 성분 중에서 어텐션에 사용되는 성분과 어텐션에 사용되지 않는 성분의 경계에 대응하는 인덱스를 임베딩 인덱스로 결정할 수 있다. 예를 들어, 어텐션에 사용되지 않는 성분은 0을 포함할 수 있다.
다시 말해, 패턴 분석기(170)는 제로 패딩이 시작되는 지점의 인덱스를 임베딩 인덱스로 결정할 수 있다. 패턴 분석기(170)는 결정한 임베딩 인덱스를 메모리(200)에 저장할 수 있다.
즉, 상술한 바와 같이 제로 패딩된 부분은 어텐션 연산에 사용되지 않을 수 있다. 따라서, 패턴 분석기(170)는 입력 벡터에서 제로 패딩이 시작되는 부분의 인덱스를 임베딩 인덱스로 결정할 수 있다.
도 5 및 도 6의 예시를 참조하면, 전체 입력은 입력 벡터의 시퀀스로 형성될 수 있고, 패턴 분석기(170)는 입력 벡터의 성분 중에서 제로 패딩이 시작되는 지점의 인덱스(예를 들어, 도 6에서 최대 위치 임베딩 인덱스)를 임베딩 인덱스로 결정할 수 있다.
차원 변환기(190)는 임베딩 인덱스에 기초하여 입력 벡터의 차원을 변환할 수 있다. 차원 변환기(190)는 입력 벡터로부터 임베딩 인덱스 이상의에 대응하는 성분을 제거함으로써 입력 벡터의 차원을 축소할 수 있다.
차원 변환기(190)는 차원이 변환된 입력 벡터를 어텐션 수행기(150)로 출력할 수 있다. 어텐션 수행기(150)는 차원이 변환된 입력 벡터에 대하여 어텐션을 수행할 수 있다. 이하에서, 어텐션 수행기(150)의 출력을 어텐션이 수행된 입력 벡터라고 명명한다. 어텐션 수행기(150)는 어텐션이 수행된 입력 벡터를 다시 차원 변환기(190)로 출력할 수 있다.
차원 변환기(190)는 어텐션이 수행된 입력 벡터의 차원을 복원할 수 있다. 차원 변환기(190)는 임베딩 인덱스에 기초하여 입력 벡터의 차원을 복원할 수 있다. 차원 변환기(190)는 임베딩 인덱스 이상의 인덱스에 대응하는 벡터의 성분에 제로 패딩을 수행함으로써 어텐션이 수행된 입력 벡터의 차원을 차원이 변환되기 전의 입력 벡터와 동일한 차원으로 복원할 수 있다. 차원 변환기(190는 복원된 벡터를 최종적으로 출력할 수 있다.
즉, 차원 변환기(190)가 입력 벡터로부터 불필요한 성분들을 제거하고, 어텐션을 수행한 후에, 어텐션이 수행된 입력 벡터의 차원을 복원함으로써 입력 데이터에 대한 손실을 방지할 수 있다.
벡터 변환기(190)는 어텐션이 수행된 입력 벡터들을 임의의 시점 t에 대응하는 최종 값으로 결합(concatenate)하여 하나의 벡터로 만들 수 있다. 벡터 변환기(190)는 t 시점에 대응하는 어텐션 값인 attention value(t)에 해당하는 값을 디코더의 t-1 시점의 은닉 상태와 결합하고, 이 경우의 출력 값을 변화시킬 수 있다.
차원 변환기(190)에 의해 복원된 출력은 다시 데이터 처리 장치(10)의 입력으로 사용될 수 있다.
도 2에 도시된 예시와는 달리, 패턴 분석기(170) 및 벡터 변환기(190)는 필요에 따라 어텐션 수행기(150) 내부에 위치할 수 있다.
도 7은 어텐션을 설명하기 위한 도면이다.
도 7을 참조하면, 어텐션 수행기(150)는 차원이 변환된 입력 벡터를 수신하여 어텐션을 수행할 수 있다.
어텐션은 디코더에서 출력을 예측하는 매 시점(time-step)마다, 인코더에서 전체 입력을 다시 한 번 참고하는 동작을 포함할 수 있다. 어텐션은 전체 입력을 전부 다 동일한 비율로 참고하는 것이 아니라, 해당 시점에서 예측해야 할 출력과 연관이 있는 입력에 해당하는 부분을 좀 더 집중(attention)하는 동작을 포함할 수 있다.
어텐션 수행기(150)가 사용하는 어텐션 함수는 수학식 3과 같이 나타낼 수 있다.
Figure pat00003
여기서, Q는 쿼리(query)를 의미하고, K는 키들(keys)을 의미하고 V는 값들(values)을 의미할 수 있다. 구체적으로, Q는 현재 시점이 t라고 할 때, t-1 시점의 디코더 셀에서의 은닉 상태를 의미하고, K 및 V는 모든 시점의 인코더 셀의 은닉 상태들을 의미할 수 있다.
이 때, K는 키들을 위한 벡터를 의미하고, V는 값들을 위한 벡터를 의미할 수 있다. 키를 통해서 각 단어와의 연관성 확률이 계산될 수 있고, 값은 계산된 연관성 확률을 이용하여 어텐션 값을 계산하는데 사용될 수 있다.
이 때, 쿼리가 어떤 단어와 관련되어 있는지 찾기 위해 모든 키들과 연산이 수행될 수 있다. 쿼리와 키에 대하여 닷 프로덕트(dot-product) 연산이 수행된 뒤에 소프트맥스(softmax)가 적용될 수 있다.
이러한 연산은 하나의 쿼리에 대하여 모든 키들과의 연관성이 계산된 후에 연관성을 확률 값으로 나타내는 것을 의미하고, 이러한 연산을 통해 쿼리가 어떤 키와 높은 확률로 연관성을 가지는지 확인할 수 있다. 그 후, 연관성 확률과 값(value)을 곱하여 값에 대한 스케일링이 수행될 수 있다.
어텐션 수행기(150)는 인코더의 어텐션 가중치와 은닉 상태를 가중합하여 어텐션 값(Attention Value)를 계산할 수 있다. 어텐션 수행기(150)에 의해서 수행된 어텐션 함수의 출력 값은 수학식 4와 같이 나타낼 수 있다.
Figure pat00004
여기서, αt는 시간 t에서의 어텐션 값을 의미하고, h는 가중치(weight)를 의미할 수 있다. 다시 말해, 수학식 4는 인코더의 i 번째 벡터를 어텐션 확률 값으로 가중합 하는 동작을 의미할 수 있다.
가중합(weighted sum)이란 어텐션 확률 값과 단어 벡터를 곱한 후 더하는 연산을 의미할 수 있다. 구체적으로, 가중합이란 어텐션의 최종 결과를 획득하기 위해서 각 인코더의 은닉 상태와 어텐션 가중치들을 곱하고 더하는 것을 의미할 수 있다.
어텐션 수행기(150)는 다양한 방식으로 어텐션을 수행할 수 있다. 어텐션 수행기(150)가 수행하는 어텐션의 종류는 표 1과 같이 나타낼 수 있다.
이름 어텐션 스코어 함수
컨텐츠 베이스 어텐션
(Content-base attention)
Figure pat00005
어디티브(Additive)
Figure pat00006
로케이션 베이스
(Location-Base)
Figure pat00007
제너럴(General)
Figure pat00008

여기서, Wa는 어텐션 레이어에서 학습 가능한 가중치 행렬
닷 프로덕트(Dot-Product)
Figure pat00009
Figure pat00010
도 8은 도 1에 도시된 프로세서의 동작의 순서를 나타낸다.
도 8을 참조하면, 워드 임베더(110)는 입력 데이터를 수신하여 워드 임베딩을 수행할 수 있다(810). 워드 임베더(110)는 단어를 밀집 벡터의 형태로 변환함으로써 워드 임베딩을 수행할 수 있다. 상술한 바와 같이, 밀집 벡터는 임베딩 벡터로 지칭될 수 있다. 워드 임베더(110)는 밀집 벡터를 포지션 임베더(130)로 출력할 수 있다.
포지션 임베더(130)는 포지션 임베딩을 수행할 수 있다(820). 포지션 임베더(130)는 밀집 벡터에 포지션 임베딩을 수행하여 입력 벡터를 생성할 수 있다. 포지션 임베더(130)는 생성한 입력 벡터를 패턴 분석기(170)로 출력할 수 있다.
포지션 임베더(130)가 포지션 임베딩을 수행하는 과정은 위에서 설명한 것과 동일하다. 포지션 임베딩을 통해 입력 데이터의 전체 입력에 대한 상대적 또는 절대적 위치에 대한 정보를 입력 벡터에 주입할 수 있다.
예를 들어, 입력 데이터가 자연어인 경우, 전체 입력은 하나의 문장일 수 있고, 포지션 임베딩은 하나의 문장에 포함된 단어의 위치 정보를 주입하기 위하여 수행될 수 있다. 즉, 포지션 임베딩은 하나의 문장에서 단어와 단어의 위치 관계 및 문맥을 판단하기 위한 목적으로 수행될 수 있다.
패턴 분석기(170)는 입력 벡터의 패턴을 분석할 수 있다(840). 패턴 분석기(170)는 입력 벡터의 패턴에 기초하여 임베딩 인덱스를 결정할 수 있다. 패턴 분석기(170)는 결정한 임베딩 인덱스를 벡터 변환기(190)로 출력할 수 있고, 결정한 임베딩 인덱스를 메모리(200)에 저장할 수 있다(850). 이 때, 패턴 분석기(170)는 임베딩 인덱스를 저장함으로써 어텐션이 수행된 입력 벡터를 복원하는데 이용할 수 있다.
패턴 분석기(170)는 임베딩이 완료된 입력 벡터에 대한 벡터 정보를 분석할 수 있다. 전체 입력이 문장인 경우, 입력 벡터에는 단어 및 단어의 위치 정보를 포함한 임베딩 값이 포함되어 있고, 일부 성분은 1과 0 또는 실수의 값을 포함할 수 있다.
패턴 분석기(170)는 사용되지 않는 값, 예를 들어, 0과 같은 값은 입력 벡터의 차원을 표현하기 위하여 사용되었다고 판단하고 의미 있는 값의 영역의 경계에 대응하는 인덱스를 찾을 수 있다. 패턴 분석기(170)는 경계에 대응하는 인덱스를 임베딩 인덱스로 결정할 수 있다.
패턴 분석기(170)의 임베딩 인덱스 결정 과정은 도 5 및 도 6에서 설명한 것과 동일하다.
벡터 변환기(190)는 임베딩 인덱스에 기초하여 입력 벡터의 형태(예를 들어, 차원)을 변환할 수 있다(860). 벡터 변환기(190)는 임베딩 인덱스 이상의 인덱스에 대응하는 입력 벡터의 성분을 제거함으로써 벡터의 차원을 축소할 수 있다. 벡터 변환기(190)는 차원이 변환된 입력 벡터를 어텐션 수행기(150)로 출력할 수 있다.
벡터 변환기(190)는 벡터 변환을 통해 입력 벡터를 새로운 차원의 형태를 갖는 벡터로 변환하여 행렬의 공간적 낭비와 비효율적인 연산을 방지할 수 있다.
어텐션 수행기(150)는 차원이 변환된 입력 벡터에 어텐션을 수행할 수 있다(870). 어텐션 수행기(150)가 어텐션을 수행하는 과정은 도 7에서 설명한 것과 동일하다. 어텐션 수행기(150)는 어텐션이 수행된 입력 벡터를 벡터 변환기(190)로 출력할 수 있다.
어텐션 수행기(150)는 어텐션을 수행할 때, 디코더에서 출력을 예측하는 매 시점(time-step)마다, 인코더에서의 전체 입력을 다시 한 번 참고할 수 있다. 이 때, 어텐션 수행기(150)는 전체 입력을 동일한 비율로 참고하는 것이 아니라, 해당 시점에서 예측해야 할 출력과 연관이 있는 입력 부분을 더 집중해서 볼 수 있다.
어텐션 수행기(150)는 어텐션 스코어를 계산하고 소프트맥스(softmax) 함수를 통해 어텐션 분포(Attention Distribution)를 계산할 수 있다.
어텐션 수행기(150)는 각 인코더의 어텐션 가중치와 은닉 상태를 가중합하여 어텐션 값(Attention Value)을 계산하고, 어텐션 값과 디코더의 t-1 시점의 은닉 상태를 결합(concate)할 수 있다.
전체 입력이 자연어로 구성된 문장일 경우, 데이터 처리 장치(10)는 어텐션을 통해 기계 번역 분야나 문장과 문장사이의 연관성, 하나의 문장에서의 단어의 유추 등을 수행할 수 있다.
벡터 변환기(190)는 어텐션이 수행된 입력 벡터의 형태(예를 들어, 차원)를 변환(예를 들어, 복원)할 수 있다(880). 벡터 변환기(190)는 어텐션이 수행된 입력 벡터를 어텬션이 수행되기 전의 입력 벡터와 동일한 형태를 갖도록 변환할 수 있다. 벡터 변환기(190)가 어텐션이 수행된 입력 벡터의 차원을 복원하는 과정은 도 5 및 도 6에서 설명한 것과 동일하다.
최종적으로, 벡터 변환기(190)는 t-1 시점의 가중치가 반영된 t 시점의 벡터를 출력할 수 있다.
도 9는 도 1에 도시된 데이터 처리 장치의 동작의 순서를 나타낸다.
도 9를 참조하면, 프로세서(100)는 입력 데이터를 임베딩(embedding)하여 입력 벡터를 생성할 수 있다(910). 프로세서(100)는 입력 데이터를 밀집 벡터로 변환할 수 있다. 프로세서(100)는 전체 입력에 대한 입력 데이터의 위치에 기초하여 밀집 벡터에 포지션 임베딩을 수행하여 입력 벡터를 생성할 수 있다.
프로세서(100)는 입력 벡터의 패턴(pattern)에 기초하여 입력 벡터의 차원(dimension)을 변환(convert)할 수 있다(930). 프로세서(100)는 입력 벡터의 패턴에 기초하여 입력 벡터에 대한 임베딩 인덱스를 결정할 수 있다. 프로세서(100)는 입력 벡터의 성분 중에서 어텐션(attention)에 사용되는 성분과 어텐션에 사용되지 않는 성분의 경계에 대응하는 인덱스를 임베딩 인덱스로 결정할 수 있다. 예를 들어, 어텐션에 사용되지 않는 성분은 0을 포함할 수 있다.
프로세서(100)는 결정한 임베딩 인덱스에 기초하여 입력 벡터의 차원을 변환할 수 있다. 예를 들어, 프로세서(100)는 입력 벡터로부터 임베딩 인덱스보다 큰 값의 인덱스에 대응하는 성분을 제거함으로써 입력 벡터의 차원을 축소할 수 있다.
프로세서(100)는 차원이 변환된 입력 벡터에 어텐션을 수행할 수 있다(950).
프로세서(100)는 어텐션이 수행된 입력 벡터의 차원을 복원할 수 있다. 프로세서(100)는 어텐션이 수행된 입력 벡터를 리쉐입(reshape)함으로써 입력 벡터의 차원을 복원할 수 있다. 리쉐입은 벡터의 차원을 축소 또는 확장하는 동작을 포함할 수 있다.
프로세서(100)는 입력 벡터의 패턴에 기초하여 결정된 임베딩 인덱스에 기초하여 어텐션이 수행된 입력 벡터의 차원을 입력 벡터와 동일한 차원으로 증가시킬 수 있다.
예를 들어, 프로세서(100)는 어텐션이 수행된 입력 벡터에 대하여 임베딩 인덱스보다 큰 인덱스에 대응하는 성분에 대하여 제로 패딩을 수행함으로써 입력 벡터의 차원을 복원할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (18)

  1. 입력 데이터를 임베딩하여 입력 벡터를 생성하는 단계;
    상기 입력 벡터의 패턴에 기초하여 상기 입력 벡터의 차원을 변환하는 단계; 및
    차원이 변환된 입력 벡터에 어텐션을 수행하는 단계
    를 포함하는 데이터 처리 방법.
  2. 제1항에 있어서,
    상기 생성하는 단계는,
    상기 입력 데이터를 밀집 벡터로 변환하는 단계; 및
    전체 입력에 대한 상기 입력 데이터의 위치에 기초하여 상기 밀집 벡터에 포지션 임베딩을 수행하여 상기 입력 벡터를 생성하는 단계
    를 포함하는 데이터 처리 방법.
  3. 제1항에 있어서,
    상기 변환하는 단계는,
    상기 입력 벡터의 패턴에 기초하여 상기 입력 벡터에 대한 임베딩 인덱스를 결정하는 단계; 및
    상기 임베딩 인덱스에 기초하여 상기 입력 벡터의 차원을 변환하는 단계
    를 포함하는 데이터 처리 방법.
  4. 제3항에 있어서,
    상기 결정하는 단계는,
    상기 입력 벡터의 성분 중에서 어텐션에 사용되는 성분과 어텐션에 사용되지 않는 성분의 경계에 대응하는 인덱스를 상기 임베딩 인덱스로 결정하는 단계
    를 포함하는 데이터 처리 방법.
  5. 제3항에 있어서,
    상기 어텐션에 사용되지 않는 성분은 0을 포함하는
    데이터 처리 방법.
  6. 제3항에 있어서,
    상기 임베딩 인덱스에 기초하여 상기 입력 벡터의 차원을 변환하는 단계는,
    상기 입력 벡터로부터 상기 임베딩 인덱스보다 큰 값의 인덱스에 대응하는 성분을 제거함으로써 상기 입력 벡터의 차원을 축소하는 단계
    를 포함하는 데이터 처리 방법.
  7. 제1항에 있어서,
    어텐션이 수행된 입력 벡터의 차원을 복원하는 단계
    를 더 포함하는 데이터 처리 방법.
  8. 제7항에 있어서,
    상기 복원하는 단계는,
    상기 입력 벡터의 패턴에 기초하여 결정된 임베딩 인덱스에 기초하여 상기 어텐션이 수행된 입력 벡터의 차원을 상기 입력 벡터와 동일한 차원으로 증가시키는 단계
    를 포함하는 데이터 처리 방법.
  9. 제8항에 있어서,
    상기 증가시키는 단계는,
    상기 어텐션이 수행된 입력 벡터에 대하여 상기 임베딩 인덱스보다 크거나 같은 인덱스에 대응하는 성분에 대하여 제로 패딩을 수행하는 단계
    를 포함하는 데이터 처리 방법.
  10. 입력 데이터를 임베딩하여 입력 벡터를 생성하고,
    상기 입력 벡터의 패턴에 기초하여 상기 입력 벡터의 차원을 변환하고,
    차원이 변환된 입력 벡터에 어텐션을 수행하는 프로세서; 및
    상기 프로세서에 의해 실행되는 인스트럭션을 저장하는 메모리
    를 포함하는 데이터 처리 장치.
  11. 제10항에 있어서,
    상기 프로세서는,
    상기 입력 데이터를 밀집 벡터로 변환하고,
    전체 입력에 대한 상기 입력 데이터의 위치에 기초하여 상기 밀집 벡터에 포지션 임베딩을 수행하여 상기 입력 벡터를 생성하는
    데이터 처리 장치.
  12. 제10항에 있어서,
    상기 프로세서는,
    상기 입력 벡터의 패턴에 기초하여 상기 입력 벡터에 대한 임베딩 인덱스를 결정하고,
    상기 임베딩 인덱스에 기초하여 상기 입력 벡터의 차원을 변환하는
    데이터 처리 장치.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 입력 벡터의 성분 중에서 어텐션에 사용되는 성분과 어텐션에 사용되지 않는 성분의 경계에 대응하는 인덱스를 상기 임베딩 인덱스로 결정하는
    데이터 처리 장치.
  14. 제12항에 있어서,
    상기 프로세서는,
    상기 어텐션에 사용되지 않는 성분은 0을 포함하는
    데이터 처리 장치.
  15. 제12항에 있어서,
    상기 프로세서는,
    상기 입력 벡터로부터 상기 임베딩 인덱스보다 크거나 같은 인덱스에 대응하는 성분을 제거함으로써 상기 입력 벡터의 차원을 축소하는
    데이터 처리 장치.
  16. 제10항에 있어서,
    상기 프로세서는,
    어텐션이 수행된 입력 벡터의 차원을 복원하는
    데이터 처리 장치.
  17. 제16항에 있어서,
    상기 프로세서는,
    입력 벡터의 패턴에 기초하여 결정된 임베딩 인덱스에 기초하여 상기 어텐션이 수행된 입력 벡터의 차원을 상기 입력 벡터와 동일한 차원으로 증가시키는
    데이터 처리 장치.
  18. 제17항에 있어서,
    상기 프로세서는,
    상기 어텐션이 수행된 입력 벡터에 대하여 상기 임베딩 인덱스보다 큰 인덱스에 대응하는 성분에 대하여 제로 패딩을 수행하는
    데이터 처리 장치.
KR1020200029072A 2020-03-09 2020-03-09 벡터 변환을 이용한 데이터 처리 방법 및 장치 KR20210113833A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200029072A KR20210113833A (ko) 2020-03-09 2020-03-09 벡터 변환을 이용한 데이터 처리 방법 및 장치
US17/019,688 US20210279569A1 (en) 2020-03-09 2020-09-14 Method and apparatus with vector conversion data processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200029072A KR20210113833A (ko) 2020-03-09 2020-03-09 벡터 변환을 이용한 데이터 처리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210113833A true KR20210113833A (ko) 2021-09-17

Family

ID=77555991

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200029072A KR20210113833A (ko) 2020-03-09 2020-03-09 벡터 변환을 이용한 데이터 처리 방법 및 장치

Country Status (2)

Country Link
US (1) US20210279569A1 (ko)
KR (1) KR20210113833A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115272828A (zh) * 2022-08-11 2022-11-01 河南省农业科学院农业经济与信息研究所 一种基于注意力机制的密集目标检测模型训练方法
KR102590514B1 (ko) * 2022-10-28 2023-10-17 셀렉트스타 주식회사 레이블링에 사용될 데이터를 선택하기 위하여 데이터를 시각화 하는 방법, 이를 수행하는 서비스서버 및 컴퓨터-판독가능 매체
KR102644779B1 (ko) * 2023-07-10 2024-03-07 주식회사 스토리컨셉스튜디오 온라인 쇼핑몰의 컨셉에 맞는 상품의 추천 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2619918A (en) * 2022-06-17 2023-12-27 Imagination Tech Ltd Hardware implementation of an attention-based neural network
GB2619919A (en) * 2022-06-17 2023-12-27 Imagination Tech Ltd Hardware implementation of an attention-based neural network

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5406705B2 (ja) * 2009-12-28 2014-02-05 キヤノン株式会社 データ補正装置及び方法
US20180024746A1 (en) * 2015-02-13 2018-01-25 Nanyang Technological University Methods of encoding and storing multiple versions of data, method of decoding encoded multiple versions of data and distributed storage system
US10395118B2 (en) * 2015-10-29 2019-08-27 Baidu Usa Llc Systems and methods for video paragraph captioning using hierarchical recurrent neural networks
US11132604B2 (en) * 2017-09-01 2021-09-28 Facebook, Inc. Nested machine learning architecture
CN108304390B (zh) * 2017-12-15 2020-10-16 腾讯科技(深圳)有限公司 基于翻译模型的训练方法、训练装置、翻译方法及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115272828A (zh) * 2022-08-11 2022-11-01 河南省农业科学院农业经济与信息研究所 一种基于注意力机制的密集目标检测模型训练方法
CN115272828B (zh) * 2022-08-11 2023-04-07 河南省农业科学院农业经济与信息研究所 一种基于注意力机制的密集目标检测模型训练方法
KR102590514B1 (ko) * 2022-10-28 2023-10-17 셀렉트스타 주식회사 레이블링에 사용될 데이터를 선택하기 위하여 데이터를 시각화 하는 방법, 이를 수행하는 서비스서버 및 컴퓨터-판독가능 매체
KR102644779B1 (ko) * 2023-07-10 2024-03-07 주식회사 스토리컨셉스튜디오 온라인 쇼핑몰의 컨셉에 맞는 상품의 추천 방법

Also Published As

Publication number Publication date
US20210279569A1 (en) 2021-09-09

Similar Documents

Publication Publication Date Title
KR20210113833A (ko) 벡터 변환을 이용한 데이터 처리 방법 및 장치
KR102589638B1 (ko) 문장 생성 장치 및 방법
US6467062B1 (en) Digital data (multi-bit) storage with discrete analog memory cells
US10025773B2 (en) System and method for natural language processing using synthetic text
CN111382584A (zh) 文本翻译方法、装置、可读存储介质和计算机设备
CN109325242B (zh) 基于词对和翻译判断句子是否对齐的方法、装置及设备
CN111401037B (zh) 自然语言的生成方法、装置、电子设备及存储介质
KR20210044056A (ko) 중복 토큰 임베딩을 이용한 자연어 처리 방법 및 장치
JP2021033995A (ja) テキスト処理装置、方法、デバイス及びコンピューター読み取り可能な記憶媒体
CN112348911A (zh) 基于语义约束的堆叠文本生成细粒度图像方法及系统
CN111563160B (zh) 基于全局语义的文本自动摘要方法、装置、介质及设备
CN112560456A (zh) 一种基于改进神经网络的生成式摘要生成方法和系统
KR20210058701A (ko) 의존 구문 분석 시스템 및 이를 이용한 의존 구문 분석 방법
CN110913229B (zh) 基于rnn的解码器隐状态确定方法、设备和存储介质
Chen et al. Dynamic n: M fine-grained structured sparse attention mechanism
CN116235187A (zh) 用于语言模型的压缩和解压缩数据
KR20210061284A (ko) 의존 구문 분석 시스템 및 이를 이용한 의존 구문 분석 방법
CN113704466B (zh) 基于迭代网络的文本多标签分类方法、装置及电子设备
CN115048661A (zh) 一种模型的处理方法、装置及设备
KR102413050B1 (ko) 문서 요약 방법 및 장치
JP2023545575A (ja) ニューラルネットワーク計算のための量子化
KR102501446B1 (ko) 문서 맥락 기반 커버리지를 이용한 자동 요약 방법, 이를 수행하기 위한 기록 매체 및 장치
JP6904426B2 (ja) 擬似データ生成装置、その方法、およびプログラム
KR20210136815A (ko) 동형 암호를 이용한 암호화 방법 및 장치
CN109190091B (zh) 编码解码方法及设备

Legal Events

Date Code Title Description
A201 Request for examination