KR20210127586A - 문장 특징 벡터 임베딩 장치 및 방법 - Google Patents
문장 특징 벡터 임베딩 장치 및 방법 Download PDFInfo
- Publication number
- KR20210127586A KR20210127586A KR1020200130918A KR20200130918A KR20210127586A KR 20210127586 A KR20210127586 A KR 20210127586A KR 1020200130918 A KR1020200130918 A KR 1020200130918A KR 20200130918 A KR20200130918 A KR 20200130918A KR 20210127586 A KR20210127586 A KR 20210127586A
- Authority
- KR
- South Korea
- Prior art keywords
- vector
- sentence
- feature vector
- network
- feature
- Prior art date
Links
- 239000013598 vector Substances 0.000 title claims abstract description 274
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000006835 compression Effects 0.000 claims abstract description 84
- 238000007906 compression Methods 0.000 claims abstract description 84
- 238000000605 extraction Methods 0.000 claims abstract description 66
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims description 63
- 230000004913 activation Effects 0.000 claims description 52
- 238000011176 pooling Methods 0.000 claims description 36
- 239000000284 extract Substances 0.000 claims description 12
- 230000015654 memory Effects 0.000 claims description 10
- 238000012549 training Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 7
- 238000003058 natural language processing Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3347—Query execution using vector based model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Human Computer Interaction (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Machine Translation (AREA)
Abstract
문장 특징 벡터 임베딩 장치 및 방법이 개시된다. 일 실시예에 따른 문장 특징 벡터 임베딩 장치는, 하나 이상의 단어를 포함하는 제1 문장 및 제2 문장을 획득하는 문장 획득부; 상기 제1 문장 및 상기 제2 문장 각각을 특징 추출 네트워크에 독립적으로 입력하여 상기 제1 문장에 대응되는 제1 특징 벡터 및 상기 제2 문장에 대응되는 제2 특징 벡터를 추출하는 벡터 추출부; 및 상기 제1 특징 벡터 및 상기 제2 특징 벡터 각각을 컨볼루셔널 뉴럴 네트워크(CNN; Convolutional Neural Network) 기반의 벡터 압축 네트워크에 독립적으로 입력하여 상기 제1 특징 벡터 및 상기 제2 특징 벡터 각각을 제1 압축 벡터 및 제2 압축 벡터로 압축하는 벡터 압축부를 포함한다.
Description
개시되는 실시예들은 문장의 특징을 나타내는 특징 벡터를 임베딩하는 기술에 관한 것이다.
최근 자연어 처리 분야에서 인공지능(AI; Artificial Intelligence)의 약진으로 인해, 단어 수준에서 임베딩을 수행하는 자연어 모델이 여럿 공개되었다.
그러나, 자연어 처리를 이용하여 의미 있는 서비스를 제공하기 위해서는 기계 독해(Machine Reading Comprehension)나 문장 유사도 비교(Semantic Textual Similarity)와 같은 작업들을 효과적으로 수행해야 하는데, 단어 수준의 임베딩만으로 이러한 작업들을 처리하기에는 한계가 있었다.
이러한 문제점을 극복하기 위해 문장 수준의 임베딩을 수행할 수 있는 몇몇 네트워크 구조가 제안되었으나, 학습을 위해 매우 많은 시간과 리소스가 필요한 관계로, 자연어 처리와 관련된 서비스 제공자들이 개별적으로 이용하기 쉽지 않다는 문제점이 여전히 존재한다.
개시되는 실시예들은 비교적 적은 시간과 리소스만으로 문장 수준에서 특징 벡터의 임베딩을 수행하기 위한 것이다.
개시되는 일 실시예에 따른 문장 특징 벡터 임베딩 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 하나 이상의 단어를 포함하는 제1 문장 및 제2 문장을 획득하는 단계; 상기 제1 문장 및 상기 제2 문장 각각을 특징 추출 네트워크에 독립적으로 입력하여 상기 제1 문장에 대응되는 제1 특징 벡터 및 상기 제2 문장에 대응되는 제2 특징 벡터를 추출하는 단계; 및 상기 제1 특징 벡터 및 상기 제2 특징 벡터 각각을 컨볼루셔널 뉴럴 네트워크(CNN; Convolutional Neural Network) 기반의 벡터 압축 네트워크에 독립적으로 입력하여 상기 제1 특징 벡터 및 상기 제2 특징 벡터 각각을 제1 압축 벡터 및 제2 압축 벡터로 압축하는 단계를 포함한다.
상기 특징 추출 네트워크는, 상기 제1 문장을 입력 받아 상기 제1 특징 벡터를 추출하는 제1 특징 추출 네트워크 및 상기 제2 문장을 입력 받아 상기 제2 특징 벡터를 추출하는 제2 특징 추출 네트워크로 구성된 샴 네트워크(Siamese Network) 구조를 포함할 수 있고, 상기 벡터 압축 네트워크는, 상기 제1 특징 벡터를 입력 받아 상기 제1 압축 벡터로 압축하는 제1 벡터 압축 네트워크 및 상기 제2 특징 벡터를 입력 받아 상기 제2 압축 벡터로 압축하는 제2 벡터 압축 네트워크로 구성된 샴 네트워크 구조를 포함할 수 있다.
상기 특징 추출 네트워크는, ALBERT(A Lite BERT) 기반의 특징 추출 네트워크일 수 있다.
상기 벡터 압축 네트워크는, 입력된 특징 벡터의 차원을 축소시키는 복수의 컨볼루션 필터(Convolution filter); 차원이 축소된 특징 벡터에 기 설정된 활성화 함수(activation function)를 적용하여 활성화 벡터를 생성하는 활성화 함수 적용부; 및 상기 생성된 활성화 벡터 사이의 깊이(depth)를 기준으로 풀링(pooling)을 수행하는 풀링 레이어를 포함할 수 있다.
상기 벡터 압축 네트워크는, 상기 복수의 컨볼루션 필터, 상기 활성화 함수 적용부 및 상기 풀링 레이어가 차례로 적층된 복수의 서브 네트워크를 포함할 수 있다.
상기 복수의 컨볼루션 필터 각각은, N*1 크기(N은 자연수)를 가질 수 있다.
상기 풀링 레이어는, 상기 생성된 활성화 벡터 사이에서 맥스 풀링(max pooling)을 수행할 수 있다.
개시되는 일 실시예에 따른 문장 특징 벡터 임베딩 장치는, 하나 이상의 단어를 포함하는 제1 문장 및 제2 문장을 획득하는 문장 획득부; 상기 제1 문장 및 상기 제2 문장 각각을 특징 추출 네트워크에 독립적으로 입력하여 상기 제1 문장에 대응되는 제1 특징 벡터 및 상기 제2 문장에 대응되는 제2 특징 벡터를 추출하는 벡터 추출부; 및 상기 제1 특징 벡터 및 상기 제2 특징 벡터 각각을 컨볼루셔널 뉴럴 네트워크(CNN; Convolutional Neural Network) 기반의 벡터 압축 네트워크에 독립적으로 입력하여 상기 제1 특징 벡터 및 상기 제2 특징 벡터 각각을 제1 압축 벡터 및 제2 압축 벡터로 압축하는 벡터 압축부를 포함한다.
상기 특징 추출 네트워크는, 상기 제1 문장을 입력 받아 상기 제1 특징 벡터를 추출하는 제1 특징 추출 네트워크 및 상기 제2 문장을 입력 받아 상기 제2 특징 벡터를 추출하는 제2 특징 추출 네트워크로 구성된 샴 네트워크(Siamese Network) 구조를 포함할 수 있고, 상기 벡터 압축 네트워크는, 상기 제1 특징 벡터를 입력 받아 상기 제1 압축 벡터로 압축하는 제1 벡터 압축 네트워크 및 상기 제2 특징 벡터를 입력 받아 상기 제2 압축 벡터로 압축하는 제2 벡터 압축 네트워크로 구성된 샴 네트워크 구조를 포함할 수 있다.
상기 특징 추출 네트워크는, ALBERT(A Lite BERT) 기반의 특징 추출 네트워크일 수 있다.
상기 벡터 압축 네트워크는, 입력된 특징 벡터의 차원을 축소시키는 복수의 컨볼루션 필터(Convolution filter); 차원이 축소된 특징 벡터에 기 설정된 활성화 함수(activation function)를 적용하여 활성화 벡터를 생성하는 활성화 함수 적용부; 및 상기 생성된 활성화 벡터 사이의 깊이(depth)를 기준으로 풀링(pooling)을 수행하는 풀링 레이어를 포함할 수 있다.
상기 벡터 압축 네트워크는, 상기 복수의 컨볼루션 필터, 상기 활성화 함수 적용부 및 상기 풀링 레이어가 차례로 적층된 복수의 서브 네트워크를 포함할 수 있다.
상기 복수의 컨볼루션 필터 각각은, N*1 크기(N은 자연수)를 가질 수 있다.
상기 풀링 레이어는, 상기 생성된 활성화 벡터 사이에서 맥스 풀링(max pooling)을 수행할 수 있다.
개시되는 실시예들에 따르면, 종래 문장 특징 벡터 추출 네트워크 대비 구조적으로 경량화된 ALBERT(A Lite BERT) 기반의 특징 추출 네트워크를 사용하여 문장 특징 벡터를 추출함으로써, 특징 추출 네트워크의 학습에 소요되는 시간 및 리소스를 상당히 절약할 수 있다.
또한 개시되는 실시예들에 따르면, 추출한 문장 특징 벡터를 압축하기 위해 컨볼루셔널 뉴럴 네트워크(CNN; Convolutional Neural Network) 기반의 벡터 압축 네트워크를 사용함으로써, 종래 압축 기법과 비교하여 압축 후에도 문장의 중요한 특징을 더욱 강하게 살릴 수 있다.
도 1은 일 실시예에 따른 문장 특징 벡터 임베딩 장치를 설명하기 위한 블록도
도 2는 일 실시예에 따른 문장 유사도 비교를 위한 학습 과정을 나타내는 예시도
도 3은 일 실시예에 따른 문장 유사도 비교를 위한 실행 과정을 나타내는 예시도
도 4는 일 실시예에 따른 벡터 압축 네트워크의 구조를 상세히 설명하기 위한 블록도
도 5는 일 실시예에 따른 컨볼루션 필터의 기능을 설명하기 위한 예시도
도 6은 일 실시예에 따른 풀링 레이어의 기능을 설명하기 위한 예시도
도 7은 일 실시예에 따른 문장 특징 벡터 임베딩 방법을 설명하기 위한 흐름도
도 8은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
도 2는 일 실시예에 따른 문장 유사도 비교를 위한 학습 과정을 나타내는 예시도
도 3은 일 실시예에 따른 문장 유사도 비교를 위한 실행 과정을 나타내는 예시도
도 4는 일 실시예에 따른 벡터 압축 네트워크의 구조를 상세히 설명하기 위한 블록도
도 5는 일 실시예에 따른 컨볼루션 필터의 기능을 설명하기 위한 예시도
도 6은 일 실시예에 따른 풀링 레이어의 기능을 설명하기 위한 예시도
도 7은 일 실시예에 따른 문장 특징 벡터 임베딩 방법을 설명하기 위한 흐름도
도 8은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 개시되는 실시예들은 이에 제한되지 않는다.
실시예들을 설명함에 있어서, 관련된 공지기술에 대한 구체적인 설명이 개시되는 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 개시되는 실시예들에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
이하의 실시예들에서, '임베딩(Embedding)'은 자연어 처리 분야에서 사람이 사용하는 자연어를 컴퓨팅 장치 등의 기계가 이해할 수 있는 벡터(vector)로 변환한 결과 또는 변환을 위한 일련의 과정 자체를 의미한다. 종래의 단어 수준의 임베딩만으로는 단어와 단어 간의 배치 및 순서에 따른 문맥적 의미나 동음이의어 사이의 차이를 표현하기 어려웠기 때문에, 이를 가능케 하는 문장 수준의 임베딩이 점차 각광받고 있다.
도 1은 일 실시예에 따른 문장 특징 벡터 임베딩 장치(100)를 설명하기 위한 블록도이다.
도시된 바와 같이, 일 실시예에 따른 문장 특징 벡터 임베딩 장치(100)는 문장 획득부(110), 벡터 추출부(120) 및 벡터 압축부(130)를 포함한다.
문장 획득부(110)는 하나 이상의 단어를 포함하는 제1 문장 및 제2 문장을 획득한다.
이때, 문장 획득부(110)에 의해 획득되는 제1 문장 및 제2 문장은 유사도 비교 대상이 되는 두 문장을 의미하며, 문장 유사도 비교를 위한 학습 과정의 경우 문장 특징 벡터 임베딩 장치(100) 내부 또는 외부에 별도로 마련된 데이터베이스(미도시)에 기 저장된 학습 데이터일 수 있으며, 문장 유사도 비교를 위한 실행 과정의 경우 사용자에 의해 입력되는 문장일 수 있다.
벡터 추출부(120)는 획득된 제1 문장 및 제2 문장 각각을 특징 추출 네트워크에 독립적으로 입력하여 제1 문장에 대응되는 제1 특징 벡터 및 제2 문장에 대응되는 제2 특징 벡터를 추출한다.
일 실시예에 따르면, 특징 추출 네트워크는 제1 특징 추출 네트워크 및 제2 특징 추출 네트워크로 구성된 샴 네트워크(Siamese Network)를 포함할 수 있다.
즉 다시 말하면, 제1 특징 추출 네트워크 및 제2 특징 추출 네트워크 각각은 네트워크를 구성하는 레이어들의 배치 및 기능이 동일 또는 유사한 관계에 있으며, 각 특징 추출 네트워크는 서로 다른 문장을 입력 받을 수 있다.
구체적으로, 제1 특징 추출 네트워크는 문장 획득부(110)에 의해 획득된 제1 문장을 입력 받아 제1 특징 벡터를 추출할 수 있고, 제2 특징 추출 네트워크는 문장 획득부(110)에 의해 획득된 제2 문장을 입력 받아 제2 특징 벡터를 추출할 수 있다.
일 실시예에 따르면, 제1 특징 추출 네트워크 및 제2 특징 추출 네트워크 각각은 딥 러닝(Deep learning) 기반의 신경망 구조를 포함할 수 있으며, 이에 따라 문장 유사도 비교를 위한 학습 과정에서 기 정의된 학습 파라미터를 갱신하고, 문장 유사도 비교를 위한 실행 과정에서 갱신된 학습 파라미터에 기초하여 입력된 문장에 대한 특징 벡터를 추출할 수 있다. 이와 관련하여, 이하에서 도 2 및 도 3을 참조하여 후술하기로 한다.
일 실시예에 따르면, 특징 추출 네트워크는 ALBERT(A Lite BERT) 기반의 특징 추출 네트워크일 수 있다.
본래, BERT(Bidirectional Encoder Representations from Transformers)는 문장을 구성하는 단어들 사이의 관계를 양방향으로 학습하는 사전 학습 언어 표현(Pre-trained language representation) 모델을 의미하며, 문장을 구성하는 단어 중 일부 가려진 단어를 예측하거나, 하나의 문장 다음에 오는 문장이 순서 상 올바른 문장인지 맞춤으로써 비지도 학습될 수 있다.
그러나, BERT는 모델의 크기가 커짐에 따라 다음과 같은 제약이 존재한다.
(1) Memory limitation: 모델의 크기가 컴퓨팅 장치의 메모리 양에 비해 큰 경우, 모델의 학습 시 OOM(Out Of Memory) 현상이 발생
(2) Training time: 학습 파라미터의 수가 너무 많아 학습에 과도한 시간이 소요
(3) Memory degradation: 모델 내 레이어의 수나 은닉 사이즈(hidden size) 값이 일정 이상 커지면 모델의 성능이 저하
이에 따라, BERT의 모델 크기를 줄여 전체 구조를 경량화함으로써 학습에 소요되는 시간 및 리소스를 절약할 수 있도록 제안된 모델이 상술한 ALBERT이다.
구체적으로, ALBERT는 입력 레이어의 학습 파라미터 수를 줄임과 동시에, 모델 내 변환부(Transformer)를 구성하는 각 레이어 사이에서 동일한 학습 파라미터를 공유함으로써 BERT 대비 작은 크기를 가질 수 있다.
한편, 종래 BERT에 의해 추출된 특징 벡터를 압축하기 위해 사용된 평균 풀링(Average pooling) 기법의 경우, 특징 벡터가 갖는 문장의 중요한 특징을 강인하게 유지하는 데 적합하지 않을 뿐만 아니라, ALBERT에 의해 추출된 특징 벡터를 압축하는 데 사용되는 경우 ALBERT의 정확도를 떨어뜨리는 문제점이 있다. 이를 극복하기 위해, 후술할 새로운 구조의 벡터 압축 네트워크가 제안될 수 있다.
벡터 압축부(130)는 추출된 제1 특징 벡터 및 제2 특징 벡터 각각을 컨볼루셔널 뉴럴 네트워크(CNN; Convolutional Neural Network) 기반의 벡터 압축 네트워크에 독립적으로 입력하여 제1 특징 벡터 및 제2 특징 벡터 각각을 제1 압축 벡터 및 제2 압축 벡터로 압축한다.
일 실시예에 따르면, 벡터 압축 네트워크는 제1 벡터 압축 네트워크 및 제2 벡터 압축 네트워크로 구성된 샴 네트워크를 포함할 수 있다.
즉 다시 말하면, 제1 벡터 압축 네트워크 및 제2 벡트 압축 네트워크 각각은 네트워크를 구성하는 레이어들의 배치 및 기능이 동일 또는 유사한 관계에 있으며, 각 벡터 압축 네트워크는 서로 다른 특징 벡터를 입력 받을 수 있다.
구체적으로, 제1 벡터 압축 네트워크는 벡터 추출부(120)에 의해 추출된 제1 특징 벡터를 입력 받아 제1 압축 벡터로 압축할 수 있고, 제2 벡터 압축 네트워크는 벡터 추출부(120)에 의해 추출된 제2 특징 벡터를 입력 받아 제2 압축 벡터로 압축할 수 있다.
일 실시예에 따르면, 벡터 압축 네트워크는 복수의 컨볼루션 필터(Convolution filter), 활성화 함수 적용부 및 풀링 레이어를 포함할 수 있다.
구체적으로, 복수의 컨볼루션 필터는 벡터 압축 네트워크에 입력된 특징 벡터의 차원을 축소시킬 수 있고, 활성화 함수 적용부는 차원이 축소된 특징 벡터에 기 설정된 활성화 함수(activation function)를 적용하여 활성화 벡터를 생성할 수 있으며, 풀링 레이어는 생성된 활성화 벡터 사이의 깊이(depth)를 기준으로 풀링(pooling)을 수행할 수 있다.
보다 상세하게, 복수의 컨볼루션 필터 각각은 N*1 크기(N은 자연수)를 갖는 필터일 수 있다. 이때, N은 2차원 필터의 행(row)의 개수를, 1은 열(column)의 개수를 의미한다.
일 실시예에 따르면, 복수의 컨볼루션 필터 각각을 구성하는 원소 값들은 0 또는 기 설정된 범위 내의 정수 값들 중 무작위로 선택된 값일 수 있다.
한편 일 실시예에 따르면, 활성화 함수 적용부는 차원이 축소된 특징 벡터를 구성하는 각 원소에 기 설정된 활성화 함수를 적용할 수 있으며, 이때 적용되는 활성화 함수는 Sigmoid 함수, Tanh 함수, ReLU 함수, LeakyReLU 함수, Identity 함수, Max Out 함수 중 어느 하나일 수 있으나, 반드시 이에 한정되는 것은 아니다.
한편 일 실시예에 따르면, 풀링 레이어는 생성된 활성화 벡터 사이에서 맥스 풀링(max pooling)을 수행할 수 있다.
이하의 실시예들에서, '풀링'은 컨볼루션 필터 및 활성화 함수를 거쳐 생성된 활성화 벡터가 있을 때, 이 활성화 벡터의 크기를 축소하여 새로운 크기의 벡터를 얻는 기법을 의미한다.
또한 이하의 실시예들에서, '맥스 풀링'은 복수의 활성화 벡터에서 동일한 2차원 좌표 상에 위치한 원소들을 깊이 방향을 기준으로 비교하여, 그 중 최대값을 갖는 원소를 상기 2차원 좌표와 대응되는 압축 벡터 상의 좌표의 원소로 선택하는 기법을 의미한다.
일 실시예에 따르면, 벡터 압축 네트워크는 복수의 컨볼루션 필터, 활성화 함수 적용부 및 풀링 레이어가 차례로 적층된 복수의 서브 네트워크를 포함할 수 있다. 이와 관련하여, 이하에서 도 4를 참조하여 후술하기로 한다.
도시된 실시예에서, 각 구성들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 구성을 포함할 수 있다.
또한, 일 실시예에서, 문장 획득부(110), 벡터 추출부(120) 및 벡터 압축부(130)는 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.
도 2는 일 실시예에 따른 문장 유사도 비교를 위한 학습 과정을 나타내는 예시도(200)이다. 도 2에 도시된 과정 중, 제1 특징 추출 네트워크(210-1), 제2 특징 추출 네트워크(210-2), 제1 벡터 압축 네트워크(220-1) 및 제2 벡터 압축 네트워크(220-2)를 이용하는 일련의 과정은 상술한 문장 특징 벡터 임베딩 장치(100)에 의해 수행될 수 있다.
도 2에 도시된 바와 같이, 문장 유사도 비교에 대한 학습을 위해 제1 문장, 제2 문장 및 유사도 검증 값이 입력 데이터로 사용된다.
이때, 제1 문장 및 제2 문장은 문장 특징 벡터 임베딩 장치(100) 내부 또는 외부에 별도로 마련된 저장 공간에 기 저장된 데이터일 수 있으며, 유사도 검증 값은 검토자가 기 저장된 제1 문장 및 제2 문장이 유사한 정도를 기 설정된 수치 범위 내에서 판단한 값일 수 있다.
학습이 시작되면, 제1 문장은 제1 특징 추출 네트워크(210-1)에 입력되며, 제2 문장은 제2 특징 추출 네트워크(210-2)에 입력된다.
이후, 제1 특징 추출 네트워크(210-1)는 제1 문장의 특징을 반영한 제1 특징 벡터를 추출하고, 제2 특징 추출 네트워크(210-2)는 제2 문장의 특징을 반영한 제2 특징 벡터를 추출한다.
이후, 제1 특징 벡터는 기 설정된 활성화 함수를 거쳐 제1 벡터 압축 네트워크(220-1)에 입력되며, 제2 특징 벡터는 기 설정된 활성화 함수를 거쳐 제2 벡터 압축 네트워크(220-2)에 입력된다.
이후, 제1 벡터 압축 네트워크(220-1)는 활성화 함수를 거친 제1 특징 벡터를 제1 압축 벡터로 압축하고, 제2 벡터 압축 네트워크(220-2)는 활성화 함수를 거친 제2 특징 벡터를 제2 압축 벡터로 압축한다.
이후, 기 설정된 유사도 평가 함수는 제1 압축 벡터 및 제2 압축 벡터 각각의 원소 값들을 인수로 사용하여 두 압축 벡터 간 유사도를 산출할 수 있다. 이때 유사도 평가 함수는, 예를 들어, 유클리디안 거리(Euclidean distance) 함수, 코사인 유사도(Cosine Similarity) 함수, 자카드 거리(Jaccard distance) 함수, 마할라노비스 거리(Mahalanobis distance) 함수, 해밍 거리(Hamming distance) 함수, 맨해튼 거리(Manhattan distance) 함수 등이 있으나, 반드시 이에 한정되는 것은 아니다.
이후, 산출된 두 압축 벡터 간 유사도와 입력 데이터 중 하나인 유사도 검증 값을 비교하여, 두 값의 차이에 기초하여 손실 함수 값을 산출할 수 있다.
구체적으로, 산출된 유사도와 유사도 검증 값을 인수로 하여 기 정의된 손실 함수를 계산함으로써 손실 함수 값을 산출할 수 있으며, 이때 손실 함수는, 예를 들어, 평균 제곱 오차(MSE; Mean Squared Error) 함수, 크로스 엔트로피(Cross Entropy) 함수 등이 있으나, 반드시 이에 한정되는 것은 아니다.
이후, 제1 특징 추출 네트워크(210-1) 및 제2 특징 추출 네트워크(210-2)는 산출된 손실 함수 값이 기 설정된 임계 값보다 작아질 때까지 손실 함수 값을 감소시키는 방향으로 학습 파라미터를 갱신함으로써 학습될 수 있다.
도 3은 일 실시예에 따른 문장 유사도 비교를 위한 실행 과정을 나타내는 예시도(300)이다. 도 3에 도시된 과정 중, 제1 특징 추출 네트워크(210-1), 제2 특징 추출 네트워크(210-2), 제1 벡터 압축 네트워크(220-1) 및 제2 벡터 압축 네트워크(220-2)를 이용하는 일련의 과정은 상술한 문장 특징 벡터 임베딩 장치(100)에 의해 수행될 수 있다.
도 3에 도시된 바와 같이, 문장 유사도 비교에 대한 실행을 위해 제1 문장 및 제2 문장이 입력 데이터로 사용된다.
이때, 제1 문장 및 제2 문장은 유사도 비교 대상이 되는 데이터로서, 문장 특징 벡터 임베딩 장치(100) 내부 또는 외부에 별도로 마련된 저장 공간으로부터 획득된 데이터이거나, 사용자가 입력한 데이터일 수 있다.
실행이 시작되면, 제1 문장은 제1 특징 추출 네트워크(210-1)에 입력되며, 제2 문장은 제2 특징 추출 네트워크(210-2)에 입력된다.
이후, 제1 특징 추출 네트워크(210-1)는 제1 문장의 특징을 반영한 제1 특징 벡터를 추출하고, 제2 특징 추출 네트워크(210-2)는 제2 문장의 특징을 반영한 제2 특징 벡터를 추출한다.
이후, 제1 특징 벡터는 기 설정된 활성화 함수를 거쳐 제1 벡터 압축 네트워크(220-1)에 입력되며, 제2 특징 벡터는 기 설정된 활성화 함수를 거쳐 제2 벡터 압축 네트워크(220-2)에 입력된다.
이후, 제1 벡터 압축 네트워크(220-1)는 활성화 함수를 거친 제1 특징 벡터를 제1 압축 벡터로 압축하고, 제2 벡터 압축 네트워크(220-2)는 활성화 함수를 거친 제2 특징 벡터를 제2 압축 벡터로 압축한다.
이후, 기 설정된 유사도 평가 함수는 제1 압축 벡터 및 제2 압축 벡터 각각의 원소 값들을 인수로 사용하여 두 압축 벡터 간 유사도를 산출할 수 있다.
사용자는 이렇게 산출된 유사도와 기 설정된 유사도 기준치를 비교하여, 입력된 제1 문장 및 제2 문장이 서로 유사한 문장인지 여부를 판단할 수 있고, 더 나아가 자연어 처리와 관련된 서비스에 상기 판단 결과를 이용할 수 있다.
도 4는 일 실시예에 따른 벡터 압축 네트워크의 구조를 상세히 설명하기 위한 블록도(400)이다.
도 4를 참조하면, 실선 박스는 특징 벡터를 압축 벡터로 압축하는 벡터 압축 네트워크(220)를 나타내며, 실선 박스 내부에 반복적으로 도시된 점선 박스는 복수의 컨볼루션 필터, 활성화 함수 적용부 및 풀링 레이어가 차례로 적층된 서브 네트워크를 나타낸다.
이에 따라, 입력된 특징 벡터는 하나의 서브 네트워크를 거치면서 복수의 컨볼루션 필터에 의해 2차원 상에서 먼저 축소된 후 활성화 함수 적용부에 의해 일부 원소 값들이 비활성화되고, 풀링 레이어에 의해 깊이 방향으로 한번 더 축소됨을 알 수 있다.
이후, 이러한 과정이 반복되면서 최종적으로 생성되는 압축 벡터는 다양한 필터 값을 갖는 컨볼루션 필터에 의해 여러 번 2차원 상의 축소를 거친 결과이므로, 초기에 입력된 특징 벡터가 갖는 주요한 문장의 특징을 강인하게 유지할 수 있게 된다.
도 5는 일 실시예에 따른 컨볼루션 필터의 기능을 설명하기 위한 예시도(500)이다.
도 5를 참조하면, 3*1 컨볼루션 필터를 이용해 5*5 특징 벡터를 순차적으로 2차원 상에서 축소함으로써 1*5 특징 벡터를 생성하는 과정이 도시된다.
우선, 3*1 컨볼루션 필터는 5*5 특징 벡터 상의 굵은 화살표의 경로를 따라 순차적으로 5*5 특징 벡터 상의 원소와 컨볼루션을 수행한다. 예를 들어, 최초에 3*1 컨볼루션 필터는 5*5 특징 벡터의 1행 1열, 2행 1열, 3행 1열에 위치한 원소와 컨볼루션을 수행한다. 그 다음, 3*1 컨볼루션 필터는 5*5 특징 벡터의 1행 2열, 2행 2열, 3행 2열에 위치한 원소와 컨볼루션을 수행한다.
이때, 컨볼루션의 결과로 계산된 값은 순차적으로 아래 도시된 3*5 특징 벡터의 1행 1열, 1행 2열, ??, 3행 5열에 위치한 원소의 값이 된다.
이후, 3*1 컨볼루션 필터는 3*5 특징 벡터를 대상으로 상기 과정을 반복하여, 3*5 특징 벡터를 2차원 축소함으로써 1*5 특징 벡터를 생성한다.
도 6은 일 실시예에 따른 풀링 레이어의 기능을 설명하기 위한 예시도(600)이다.
도 6을 참조하면, 기 설정된 활성화 함수를 적용하여 생성된 복수의 1*5 활성화 벡터에 맥스 풀링이 수행됨으로써 1*5 압축 벡터가 생성되는 과정이 도시된다.
풀링 레이어는 복수의 1*5 활성화 벡터 각각의 동일한 행, 동일한 열에 위치한 원소들을 깊이 방향을 기준으로 비교하여, 최대값을 갖는 원소를 1*5 압축 벡터의 동일한 행, 동일한 열의 원소로 선택하는 맥스 풀링을 수행한다.
예를 들어, 복수의 1*5 활성화 벡터 각각의 1행 1열에 위치한 원소들의 값이 차례로 '3, 7, 5, 1'인 경우, 풀링 레이어는 이들 중 최대값인 7을 1*5 압축 벡터의 1행 1열의 원소 값으로 선택할 수 있다.
도 7은 일 실시예에 따른 문장 특징 벡터 임베딩 방법을 설명하기 위한 흐름도이다.
도 7에 도시된 방법은 예를 들어, 상술한 문장 특징 벡터 임베딩 장치(100)에 의해 수행될 수 있다.
우선, 문장 특징 벡터 임베딩 장치(100)는 하나 이상의 단어를 포함하는 제1 문장 및 제2 문장을 획득한다(710).
이후, 문장 특징 벡터 임베딩 장치(100)는 제1 문장 및 제2 문장 각각을 특징 추출 네트워크에 독립적으로 입력하여 제1 문장에 대응되는 제1 특징 벡터 및 제2 문장에 대응되는 제2 특징 벡터를 추출한다(720).
이후, 문장 특징 벡터 임베딩 장치(100)는 제1 특징 벡터 및 제2 특징 벡터 각각을 컨볼루셔널 뉴럴 네트워크 기반의 벡터 압축 네트워크에 독립적으로 입력하여 제1 특징 벡터 및 제2 특징 벡터 각각을 제1 압축 벡터 및 제2 압축 벡터로 압축한다(730).
도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 8은 일 실시예에 따른 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술된 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 문장 특징 벡터 임베딩 장치(100)일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램, 및 상기 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 프로그램의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 문장 특징 벡터 임베딩 장치
110: 문장 획득부
120: 벡터 추출부
130: 벡터 압축부
210(210-1, 210-2): 특징 추출 네트워크
220(220-1, 220-2): 벡터 압축 네트워크
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 문장 특징 벡터 임베딩 장치
110: 문장 획득부
120: 벡터 추출부
130: 벡터 압축부
210(210-1, 210-2): 특징 추출 네트워크
220(220-1, 220-2): 벡터 압축 네트워크
Claims (14)
- 하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
하나 이상의 단어를 포함하는 제1 문장 및 제2 문장을 획득하는 단계;
상기 제1 문장 및 상기 제2 문장 각각을 특징 추출 네트워크에 독립적으로 입력하여 상기 제1 문장에 대응되는 제1 특징 벡터 및 상기 제2 문장에 대응되는 제2 특징 벡터를 추출하는 단계; 및
상기 제1 특징 벡터 및 상기 제2 특징 벡터 각각을 컨볼루셔널 뉴럴 네트워크(CNN; Convolutional Neural Network) 기반의 벡터 압축 네트워크에 독립적으로 입력하여 상기 제1 특징 벡터 및 상기 제2 특징 벡터 각각을 제1 압축 벡터 및 제2 압축 벡터로 압축하는 단계를 포함하는, 문장 특징 벡터 임베딩 방법. - 청구항 1항에 있어서,
상기 특징 추출 네트워크는,
상기 제1 문장을 입력 받아 상기 제1 특징 벡터를 추출하는 제1 특징 추출 네트워크 및 상기 제2 문장을 입력 받아 상기 제2 특징 벡터를 추출하는 제2 특징 추출 네트워크로 구성된 샴 네트워크(Siamese Network) 구조를 포함하고,
상기 벡터 압축 네트워크는,
상기 제1 특징 벡터를 입력 받아 상기 제1 압축 벡터로 압축하는 제1 벡터 압축 네트워크 및 상기 제2 특징 벡터를 입력 받아 상기 제2 압축 벡터로 압축하는 제2 벡터 압축 네트워크로 구성된 샴 네트워크 구조를 포함하는, 문장 특징 벡터 임베딩 방법. - 청구항 1항에 있어서,
상기 특징 추출 네트워크는,
ALBERT(A Lite BERT) 기반의 특징 추출 네트워크인, 문장 특징 벡터 임베딩 방법. - 청구항 1항에 있어서,
상기 벡터 압축 네트워크는,
입력된 특징 벡터의 차원을 축소시키는 복수의 컨볼루션 필터(Convolution filter);
차원이 축소된 특징 벡터에 기 설정된 활성화 함수(activation function)를 적용하여 활성화 벡터를 생성하는 활성화 함수 적용부; 및
상기 생성된 활성화 벡터 사이의 깊이(depth)를 기준으로 풀링(pooling)을 수행하는 풀링 레이어를 포함하는, 문장 특징 벡터 임베딩 방법. - 청구항 4항에 있어서,
상기 벡터 압축 네트워크는,
상기 복수의 컨볼루션 필터, 상기 활성화 함수 적용부 및 상기 풀링 레이어가 차례로 적층된 복수의 서브 네트워크를 포함하는, 문장 특징 벡터 임베딩 방법. - 청구항 4항에 있어서,
상기 복수의 컨볼루션 필터 각각은,
N*1 크기(N은 자연수)를 갖는, 문장 특징 벡터 임베딩 방법. - 청구항 4항에 있어서,
상기 풀링 레이어는,
상기 생성된 활성화 벡터 사이에서 맥스 풀링(max pooling)을 수행하는, 문장 특징 벡터 임베딩 방법. - 하나 이상의 단어를 포함하는 제1 문장 및 제2 문장을 획득하는 문장 획득부;
상기 제1 문장 및 상기 제2 문장 각각을 특징 추출 네트워크에 독립적으로 입력하여 상기 제1 문장에 대응되는 제1 특징 벡터 및 상기 제2 문장에 대응되는 제2 특징 벡터를 추출하는 벡터 추출부; 및
상기 제1 특징 벡터 및 상기 제2 특징 벡터 각각을 컨볼루셔널 뉴럴 네트워크(CNN; Convolutional Neural Network) 기반의 벡터 압축 네트워크에 독립적으로 입력하여 상기 제1 특징 벡터 및 상기 제2 특징 벡터 각각을 제1 압축 벡터 및 제2 압축 벡터로 압축하는 벡터 압축부를 포함하는, 문장 특징 벡터 임베딩 장치. - 청구항 8항에 있어서,
상기 특징 추출 네트워크는,
상기 제1 문장을 입력 받아 상기 제1 특징 벡터를 추출하는 제1 특징 추출 네트워크 및 상기 제2 문장을 입력 받아 상기 제2 특징 벡터를 추출하는 제2 특징 추출 네트워크로 구성된 샴 네트워크(Siamese Network) 구조를 포함하고,
상기 벡터 압축 네트워크는,
상기 제1 특징 벡터를 입력 받아 상기 제1 압축 벡터로 압축하는 제1 벡터 압축 네트워크 및 상기 제2 특징 벡터를 입력 받아 상기 제2 압축 벡터로 압축하는 제2 벡터 압축 네트워크로 구성된 샴 네트워크 구조를 포함하는, 문장 특징 벡터 임베딩 장치. - 청구항 8항에 있어서,
상기 특징 추출 네트워크는,
ALBERT(A Lite BERT) 기반의 특징 추출 네트워크인, 문장 특징 벡터 임베딩 장치. - 청구항 8항에 있어서,
상기 벡터 압축 네트워크는,
입력된 특징 벡터의 차원을 축소시키는 복수의 컨볼루션 필터(Convolution filter);
차원이 축소된 특징 벡터에 기 설정된 활성화 함수(activation function)를 적용하여 활성화 벡터를 생성하는 활성화 함수 적용부; 및
상기 생성된 활성화 벡터 사이의 깊이(depth)를 기준으로 풀링(pooling)을 수행하는 풀링 레이어를 포함하는, 문장 특징 벡터 임베딩 장치. - 청구항 11항에 있어서,
상기 벡터 압축 네트워크는,
상기 복수의 컨볼루션 필터, 상기 활성화 함수 적용부 및 상기 풀링 레이어가 차례로 적층된 복수의 서브 네트워크를 포함하는, 문장 특징 벡터 임베딩 장치. - 청구항 11항에 있어서,
상기 복수의 컨볼루션 필터 각각은,
N*1 크기(N은 자연수)를 갖는, 문장 특징 벡터 임베딩 장치. - 청구항 11항에 있어서,
상기 풀링 레이어는,
상기 생성된 활성화 벡터 사이에서 맥스 풀링(max pooling)을 수행하는, 문장 특징 벡터 임베딩 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/080,351 US11934950B2 (en) | 2020-04-14 | 2020-10-26 | Apparatus and method for embedding sentence feature vector |
CN202110108227.8A CN113591455A (zh) | 2020-04-14 | 2021-01-27 | 句子特征向量嵌入装置以及方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20200045567 | 2020-04-14 | ||
KR1020200045567 | 2020-04-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210127586A true KR20210127586A (ko) | 2021-10-22 |
Family
ID=78275650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200130918A KR20210127586A (ko) | 2020-04-14 | 2020-10-12 | 문장 특징 벡터 임베딩 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20210127586A (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102149701B1 (ko) | 2018-12-27 | 2020-08-31 | 포항공과대학교 산학협력단 | 텍스트 데이터에서 의미상 대응하는 자연어-sql의 매핑 방법 |
-
2020
- 2020-10-12 KR KR1020200130918A patent/KR20210127586A/ko active Search and Examination
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102149701B1 (ko) | 2018-12-27 | 2020-08-31 | 포항공과대학교 산학협력단 | 텍스트 데이터에서 의미상 대응하는 자연어-sql의 매핑 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11816442B2 (en) | Multi-turn dialogue response generation with autoregressive transformer models | |
US11151334B2 (en) | Systems and methods for multilingual text generation field | |
CN110612538B (zh) | 生成输入数据项的离散潜在表示 | |
KR102608469B1 (ko) | 자연어 생성 방법 및 장치 | |
KR102209689B1 (ko) | 음향 모델 생성 장치 및 방법, 음성 인식 장치 및 방법 | |
KR20180047409A (ko) | 문장 생성 장치 및 방법 | |
CN108604311B (zh) | 利用层级式外部存储器的增强神经网络 | |
KR102287407B1 (ko) | 이미지 생성을 위한 학습 장치 및 방법과 이미지 생성 장치 및 방법 | |
CN111443964B (zh) | 更新用户界面的方法、设备和计算机可读存储介质 | |
KR102117654B1 (ko) | 자연어 기반의 비디오 생성 방법 및 장치 | |
KR20200056001A (ko) | 인공신경망에서의 디코딩 방법 및 그 장치 | |
CN112395857B (zh) | 基于对话系统的语音文本处理方法、装置、设备及介质 | |
KR20230046946A (ko) | 타겟 화자를 식별하는 전자 장치 및 이의 동작 방법 | |
KR20210058701A (ko) | 의존 구문 분석 시스템 및 이를 이용한 의존 구문 분석 방법 | |
KR20220159213A (ko) | 신경망 구조 임베딩 장치 및 방법 | |
KR102394210B1 (ko) | 커뮤니티 검출 장치 및 방법 | |
KR20210127586A (ko) | 문장 특징 벡터 임베딩 장치 및 방법 | |
CN115879480A (zh) | 语义约束机器翻译方法、装置、电子设备及存储介质 | |
KR102363958B1 (ko) | 이중 클러스터링 기반 소비자 인식 분석 방법, 장치 및 프로그램 | |
KR102372642B1 (ko) | 자동 응답 생성 방법 및 장치 | |
US11934950B2 (en) | Apparatus and method for embedding sentence feature vector | |
CN111078886B (zh) | 基于dmcnn的特殊事件提取系统 | |
KR20150128006A (ko) | 계층적 은닉 마르코프 모델을 이용한 행동 인식 방법 및 장치 | |
KR20220160756A (ko) | 문서 임베딩 생성 방법 및 장치 | |
KR20220049754A (ko) | 영상 분류 모델 학습 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |