유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 장치 및 방법
APPARATUS AND METHOD FOR GENERATING CARDINALITY PREDICTION MODEL FOR PSEUDO SUBSTRING QUERY
특허 요약
본 발명은 카디널리티 예측을 위한 딥러닝 모델에 것에 관한 것으로, 더욱 상세하게는 편집 거리에 기반한 부분 문자열 조건을 고려한 유사도 질의에 대한 카디널리티를 예측하는 모델을 생성하고 학습시키는 방법에 관한 것이다.
청구항
번호청구항
1

데이터베이스에 저장된 데이터 문자열의 집합에 대해 쿼리 문자열 집합을 입력받는 단계;상기 쿼리 문자열과, 상기 데이터 문자열에 대해 가능한 모든 부분 문자열 사이의 편집 거리 중 가장 가까운 거리로 정의되는 부분 문자열 편집 거리에 대한 최대 거리 임계값을 설정하는 단계; 상기 최대 거리 임계값 보다 부분 문자열 편집 거리가 작아야 하는 조건에 부합하는 쿼리와 상기 쿼리에 대한 카디널리티의 쌍으로 구성된 학습 데이터를 생성하는 단계; 및상기 학습 데이터를 이용하여, 유사 부분 문자열 질의에 대한 카디널리티를 예측하도록 딥러닝 모델을 학습시키는 단계를 포함하는, 유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 방법.

2

제 1 항에 있어서,상기 학습 데이터를 생성하는 단계는,상기 쿼리 문자열과 상기 데이터 문자열에 대한 부분 문자열 편집 거리를 계산하는 단계;상기 부분 문자열 편집 거리와 상기 최대 거리 임계값을 비교하는 단계; 및상기 비교의 결과에 따라 상기 최대 거리 임계값 보다 상기 부분 문자열 편집 거리가 작아야 하는 조건에 부합하는 데이터 문자열을 기반으로 카디널리티를 획득하는 단계를 포함하는,유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 방법.

3

제 2 항에 있어서,상기 부분 문자열 편집 거리를 계산하는 단계 이전에,상기 쿼리 문자열 집합 중 서로 다른 두 쿼리 문자열의 공통된 접두사를 탐색하는 단계를 더 포함하고,상기 쿼리 문자열과 상기 데이터 문자열에 대한 부분 문자열 편집 거리를 계산할 때, 상기 공통된 접두사에 대한 부분 문자열 편집 거리 계산은 중복하지 않고 공유하는,유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 방법.

4

제 3 항에 있어서,상기 학습 데이터를 생성하는 단계는,정렬 기반 학습 데이터 생성 알고리즘(SODDY) 또는 Trie 기반 학습 데이터 생성 알고리즘(TEDDY)를 이용하는, 유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 방법.

5

제 4 항에 있어서,상기 정렬 기반 학습 데이터 생성 알고리즘(SODDY)을 이용하는 경우,상기 쿼리 문자열 집합의 쿼리 문자열들을 알파벳 기준으로 정렬하는 단계;인접한 서로 다른 두 쿼리 문자열들에 대해 가장 긴 공통된 접두사 길이를 계산하여 저장하는 단계; 및상기 쿼리 문자열들을 정렬된 순서대로 탐색하면서 상기 부분 문자열 편집 거리를 계산하는 단계를 포함하되, 상기 공통된 접두사에 대한 부분 문자열 편집 거리 계산은 중복하지 않고 공유하는,유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 방법.

6

제 4 항에 있어서,상기 Trie 기반 학습 데이터 생성 알고리즘(TEDDY)를 이용하는 경우,상기 쿼리 문자열들을 기반으로 Trie를 생성하는 단계;상기 Trie의 루트 노드부터 시작하여 깊이 우선 탐색을 실행하여, 상기 쿼리 문자열들의 가장 긴 공통된 접두사부터 상기 데이터 문자열에 대해 상기 부분 문자열 편집 거리를 계산하는 단계를 포함하는,유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 방법.

7

제 1 항에 있어서,상기 학습 데이터를 생성하는 단계는,상기 쿼리에 대해 접두사를 분류하여 복수의 접두사 쿼리를 생성하는 단계; 및상기 복수의 접두사 쿼리 각각에 대한 카디널리티를 계산하여 접두사 증강 학습 데이터를 생성하는 단계를 더 포함하는,유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 방법.

8

제 7 항에 있어서,상기 딥러닝 모델을 학습시키는 단계는,상기 접두사 증강 학습 데이터를 포함하는 상기 학습 데이터를 입력받는 단계;상기 학습 데이터에 부여된 인덱스 중 랜덤한 b개의 인덱스를 선택하여 인덱스 셋 I를 생성하는 단계;상기 인덱스 셋 I에 해당하는 학습데이터가 상기 딥러닝 모델의 파라미터를 학습시키는 단위에 기초하는 배치를 구성하는 단계; 및상기 배치 내에서 상기 쿼리 및 상기 복수의 접두사 쿼리에 대응하는 카디널리티들에 대한 손실 함수를 기반으로 상기 딥러닝 모델의 파라미터를 업데이트하는 단계를 포함하는,유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 방법.

9

프로세서; 및상기 프로세서와 연결되고, 상기 프로세서에서 수행되는 적어도 하나의 코드가 저장되는 메모리를 포함하고,상기 프로세서는,데이터베이스에 저장된 데이터 문자열의 집합에 대해 쿼리 문자열 집합을 입력받는 동작, 쿼리 문자열과, 상기 데이터 문자열에 대해 가능한 모든 부분 문자열 사이의 편집 거리 중 가장 가까운 거리로 정의되는 부분 문자열 편집 거리에 대한 최대 거리 임계값이 설정되는 동작, 상기 최대 거리 임계값 보다 부분 문자열 편집 거리가 작아야 하는 조건에 부합하는 쿼리와 상기 쿼리에 대한 카디널리티의 쌍으로 구성된 학습 데이터를 생성하는 동작, 및 학습 데이터를 이용하여 유사 부분 문자열 질의에 대한 카디널리티를 예측하도록 딥러닝 모델을 학습시키는 동작을 실행하는,유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 장치.

10

제 9 항에 있어서,상기 프로세서는,상기 학습 데이터를 생성하기 위해,상기 쿼리 문자열과 상기 데이터 문자열에 대한 부분 문자열 편집 거리를 계산하는 동작, 상기 부분 문자열 편집 거리와 상기 최대 거리 임계값을 비교하는 동작, 및 상기 비교의 결과에 따라 상기 최대 거리 임계값 보다 상기 부분 문자열 편집 거리가 작아야 하는 조건에 부합하는 데이터 문자열을 기반으로 카디널리티를 획득하는 동작을 실행하는,유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 장치.

11

제 10 항에 있어서,상기 프로세서는,상기 부분 문자열 편집 거리를 계산하는 동작 이전에, 상기 쿼리 문자열 집합 중 서로 다른 두 쿼리 문자열의 공통된 접두사를 탐색하는 동작을 실행하고,상기 쿼리 문자열과 상기 데이터 문자열에 대한 부분 문자열 편집 거리를 계산할 때, 상기 공통된 접두사에 대한 부분 문자열 편집 거리 계산은 중복하지 않고 공유하는,유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 장치.

12

제 11 항에 있어서,상기 프로세서는,상기 학습 데이터를 생성하기 위해, 정렬 기반 학습 데이터 생성 알고리즘(SODDY) 또는 Trie 기반 학습 데이터 생성 알고리즘(TEDDY)를 이용하는, 유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 장치.

13

제 12 항에 있어서,상기 프로세서는, 상기 정렬 기반 학습 데이터 생성 알고리즘(SODDY)을 이용하는 경우, 상기 쿼리 문자열 집합의 쿼리 문자열들을 알파벳 기준으로 정렬하는 동작, 인접한 서로 다른 두 쿼리 문자열들에 대해 가장 긴 공통된 접두사 길이를 계산하여 저장하는 동작, 및 상기 쿼리 문자열들을 정렬된 순서대로 탐색하면서 상기 부분 문자열 편집 거리를 계산하는 동작을 실행하되, 상기 공통된 접두사에 대한 부분 문자열 편집 거리 계산은 중복하지 않고 공유하는,유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 장치.

14

제 12 항에 있어서,상기 프로세서는, 상기 Trie 기반 학습 데이터 생성 알고리즘(TEDDY)를 이용하는 경우, 상기 쿼리 문자열들을 기반으로 Trie를 생성하는 동작, 상기 Trie의 루트 노드부터 시작하여 깊이 우선 탐색을 실행하여, 상기 쿼리 문자열들의 가장 긴 공통된 접두사부터 상기 데이터 문자열에 대해 상기 부분 문자열 편집 거리를 계산하는 동작을 실행하는,유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 장치.

15

제 9 항에 있어서,상기 프로세서는, 상기 학습 데이터를 생성하기 위해, 상기 쿼리에 대해 접두사를 분류하여 복수의 접두사 쿼리를 생성하는 동작, 및 상기 복수의 접두사 쿼리 각각에 대한 카디널리티를 계산하여 접두사 증강 학습 데이터를 생성하는 동작을 더 실행하는,유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 장치.

16

제 15 항에 있어서,상기 프로세서는,상기 딥러닝 모델을 학습시키기 위해, 상기 접두사 증강 학습 데이터를 포함하는 상기 학습 데이터를 입력받는 동작, 상기 학습 데이터에 부여된 인덱스 중 랜덤한 b개의 인덱스를 선택하여 인덱스 셋 I를 생성하는 동작, 상기 인덱스 셋 I에 해당하는 학습데이터가 상기 딥러닝 모델의 파라미터를 학습시키는 단위에 기초하는 배치를 구성하는 동작, 및 상기 배치 내에서 상기 쿼리 및 상기 복수의 접두사 쿼리에 대응하는 카디널리티들에 대한 손실 함수를 기반으로 상기 딥러닝 모델의 파라미터를 업데이트하는 동작을 실행하는,유사 부분 문자열 질의에 대한 카디널리티 예측 모델을 생성하는 장치.