KR102359661B1 - 데이터 관리 방법 - Google Patents
데이터 관리 방법 Download PDFInfo
- Publication number
- KR102359661B1 KR102359661B1 KR1020200036670A KR20200036670A KR102359661B1 KR 102359661 B1 KR102359661 B1 KR 102359661B1 KR 1020200036670 A KR1020200036670 A KR 1020200036670A KR 20200036670 A KR20200036670 A KR 20200036670A KR 102359661 B1 KR102359661 B1 KR 102359661B1
- Authority
- KR
- South Korea
- Prior art keywords
- sentence
- cluster
- input
- sentences
- vector
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 38
- 239000013598 vector Substances 0.000 claims abstract description 116
- 238000004590 computer program Methods 0.000 claims abstract description 27
- 238000003672 processing method Methods 0.000 claims abstract description 25
- 238000013528 artificial neural network Methods 0.000 claims description 54
- 230000008569 process Effects 0.000 claims description 14
- 238000013523 data management Methods 0.000 claims description 8
- 230000001131 transforming effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000012549 training Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000009223 counseling Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000007670 refining Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000013498 data listing Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- 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)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 개시의 일 실시예에 따라, 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 하나 이상의 프로세서에서 실행되는 경우, 데이터를 관리하기 위한 이하의 동작들을 수행하도록 하며, 상기 동작들은: 하나 이상의 문장들이 벡터화 되어 클러스터링 된, 벡터 공간에서 입력 문장이 속하는 클러스터를 식별하는 동작; 상기 입력 문장이 속하는 클러스터에서 상기 클러스터를 대표하는 기준 문장과 상기 입력 문장 각각에 대한 벡터 간 거리를 연산하는 동작; 및 상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나에 관한 처리 방법을 결정하는 동작을 포함할 수 있다.
Description
본 개시는 데이터를 관리하기 위한 기술에 관한 것으로서, 보다 구체적으로 챗봇 관련데이터를 관리하기 위한 기술에 관한 것이다.
인터넷 및 모바일 산업의 성장으로 인하여 기존 데이터베이스 관리 도구로 수집, 관리, 저장 및 분석할 수 있는 규모를 넘어서는 대용량의 정형 또는 비정형 데이터를 의미하는 빅데이터(big data) 환경이 도래하고 있다. 이러한 빅데이터는 디지털 환경에서 생성되는 다양한 형태의 방대한 규모의 데이터로서, 기업 등의 미래의 경쟁력 확보를 좌우할 수 있는 핵심 자원으로 여겨지고 있다.
보험업계도 빅데이터를 해당 기업의 경쟁력 확보를 위해 활용할 수 있다. 예를 들어, 보험 회사는 콜센터에서 고객을 응대하기 위하여 빅데이터를 활용할 수 있다. 콜센터에서의 전화 상담은 많은 인력이 소요되며, 상담원의 개인 역량에 따라서 상담의 품질도 변경될 수 있다. 따라서, 인력 및 비용 소모를 절감하고, 그리고 상담 품질을 재고하기 위해서 상담 챗봇의 도입이 활발하게 이루어지고 있다. 이때, 챗봇 구동의 기초가 되는 데이터들을 관리하는 방법에 따라 챗봇의 성능 및 구동 속도가 변경될 수 있다. 구체적으로, 효율적으로 압축된 데이터들을 이용하는 경우, 챗봇의 성능이 향상될 수 있으며, 반대로 정제되지 않은 데이터들을 이용하는 경우, 챗봇의 성능이 하락될 수 있다. 따라서, 챗봇의 상담 효율 및 정확도 재고를 위하여 데이터를 효율적으로 관리하는 방법에 관한 요구가 당업계에 존재한다.
대한민국 등록특허 제10-1949427호는 상담내용 자동 평가 시스템에 관하여 개시한다.
본 개시는 전술한 배경기술에 대응하여 안출된 것으로, 데이터를 관리하기 위한 방법을 제공하기 위함이다.
전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따라 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 컴퓨터 프로그램은 하나 이상의 프로세서에서 실행되는 경우, 데이터를 관리하기 위한 이하의 동작들을 수행하도록 하며, 상기 동작들은: 하나 이상의 문장들이 벡터화 되어 클러스터링 된, 벡터 공간에서 입력 문장이 속하는 클러스터를 식별하는 동작; 상기 입력 문장이 속하는 클러스터에서 상기 클러스터를 대표하는 기준 문장과 상기 입력 문장 각각에 대한 벡터 간 거리를 연산하는 동작; 및 상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나에 관한 처리 방법을 결정하는 동작을 포함할 수 있다.
데이터를 관리하기 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 처리 방법은: 상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나를 삭제하거나, 또는 변형할 수 있다.
데이터를 관리하기 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나에 관한 처리 방법을 결정하는 동작은: 상기 기준 문장의 클러스터 크기, 상기 기준 문장의 클러스터에 포함된 변형 문장의 개수, 상기 기준 문장의 클러스터에 포함된 변형 문장의 밀도 또는 상기 기준 문장의 클러스터에 포함된 변형 문장의 클러스터 내 위치에 따른 밀도 중 적어도 하나에 기초하여 결정되는 거리 임계 값에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나를 처리할 것을 결정하는 동작을 포함할 수 있다.
데이터를 관리하기 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 기준 문장의 클러스터에 포함된 하나 이상의 변형 문장과 상기 입력 문장 각각에 대한 벡터 간 거리를 연산하는 동작을 더 포함할 수 있다.
데이터를 관리하기 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나에 관한 처리 방법을 결정하는 동작은: 상기 기준 문장 및 상기 입력 문장 각각에 대한 의미들을 포함할 수 있는 새로운 변형 문장을 생성하는 동작을 포함할 수 있다.
데이터를 관리하기 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 새로운 변형 문장은 상기 기준 문장 및 상기 입력 문장 각각에 대한 벡터들의 평균 또는 가중 합에 기초하여 생성될 수 있다.
데이터를 관리하기 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 새로운 변형 문장은: 기준 문장 벡터 및 입력 문장 벡터 각각에 가중치가 매칭되어 연산 된 합 벡터에 기초하여 생성되고, 그리고 상기 가중치는: 상기 기준 문장 벡터 및 상기 입력 문장 벡터 각각의 서브 클러스터 밀도에 기초하여 결정될 수 있다.
데이터를 관리하기 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 벡터 공간에서 상기 기준 문장의 클러스터에 포함된 변형 문장들의 밀도를 식별하는 동작; 상기 벡터 공간에서 밀도가 낮은 공간을 식별하는 동작; 및 상기 밀도가 낮은 공간에 대응되는 새로운 변형 문장을 생성하는 동작을 더 포함할 수 있다.
데이터를 관리하기 위한 이하의 동작들을 수행하도록 하는 컴퓨터 프로그램 동작들의 대안적인 실시예에서, 상기 입력 문장이 속하는 클러스터가 식별되지 않는 경우, 상기 입력 문장과 벡터 공간 상에서 사전 결정된 거리 이하에 위치하는 다른 입력 문장 벡터를 식별함으로써, 새로운 클러스터를 생성하는 동작을 더 포함할 수 있다.
전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따라 데이터 관리 방법이 개시된다. 데이터 관리 방법은: 하나 이상의 문장들이 벡터화 되어 클러스터링 된, 벡터 공간에서 입력 문장이 속하는 클러스터를 식별하는 단계; 상기 입력 문장이 속하는 클러스터에서 상기 클러스터를 대표하는 기준 문장과 상기 입력 문장 각각에 대한 벡터 간 거리를 연산하는 단계; 및 상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나에 관한 처리 방법을 결정하는 단계;를 포함할 수 있다.
전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따라 데이터를 관리하기 위한 서버가 개시된다. 상기 서버는 하나 이상의 코어를 포함하는 프로세서; 및 메모리를 포함하고, 상기 프로세서는, 하나 이상의 문장들이 벡터화 되어 클러스터링 된, 벡터 공간에서 입력 문장이 속하는 클러스터를 식별하고, 상기 입력 문장이 속하는 클러스터에서 상기 클러스터를 대표하는 기준 문장과 상기 입력 문장 각각에 대한 벡터 간 거리를 연산하고, 그리고 상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나에 관한 처리 방법을 결정할 수 있다.
전술한 바와 같은 과제를 실현하기 위한 본 개시의 일 실시예에 따라 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램이 개시된다. 뉴럴 네트워크의 파라미터의 적어도 일부를 업데이트 하는 학습 과정과 관련된 가공된 데이터에 대응하는 데이터 구조가 저장된 컴퓨터 판독가능한 저장 매체로서, 상기 뉴럴 네트워크의 동작은 상기 파라미터에 적어도 부분적으로 기초하고, 상기 데이터 가공 방법은, 하나 이상의 문장들이 벡터화 되어 클러스터링 된, 벡터 공간에서 입력 문장이 속하는 클러스터를 식별하는 단계; 상기 입력 문장이 속하는 클러스터에서 상기 클러스터를 대표하는 기준 문장과 상기 입력 문장 각각에 대한 벡터 간 거리를 연산하는 단계; 및 상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나에 관한 처리 방법을 결정하는 단계를 포함할 수 있다.
본 개시는 데이터 관리 방법을 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따른 데이터 관리를 위한 동작을 수행하는 컴퓨팅 장치의 블록 구성도를 도시한 도면이다.
도 2는 본 개시의 일 실시예에 따른 데이터들을 예시적으로 도시한 도면이다.
도 3은 본 개시의 일 실시예에 따른 데이터들을 예시적으로 도시한 도면이다.
도 4는 본 개시의 일 실시예에 따른 데이터들을 예시적으로 도시한 도면이다.
도 5는 본 개시의 일 실시예에 따른 데이터들을 예시적으로 도시한 도면이다.
도 6은 본 개시의 일 실시예에 따른 데이터 관리 방법의 순서도이다.
도 2는 본 개시의 일 실시예에 따른 데이터들을 예시적으로 도시한 도면이다.
도 3은 본 개시의 일 실시예에 따른 데이터들을 예시적으로 도시한 도면이다.
도 4는 본 개시의 일 실시예에 따른 데이터들을 예시적으로 도시한 도면이다.
도 5는 본 개시의 일 실시예에 따른 데이터들을 예시적으로 도시한 도면이다.
도 6은 본 개시의 일 실시예에 따른 데이터 관리 방법의 순서도이다.
다양한 실시예들이 이제 도면을 참조하여 설명된다. 본 명세서에서, 다양한 설명들이 본 개시의 이해를 제공하기 위해서 제시된다. 그러나, 이러한 실시예들은 이러한 구체적인 설명 없이도 실행될 수 있음이 명백하다.
도 1에 도시된 컴퓨팅 장치(100)는 챗봇 시스템을 구동하기 위한 컴퓨팅 장치, 챗봇 시스템 서버, 상담 수행 서버 등일 수 있다. 컴퓨팅 장치(100)는 네트워크부(110), 프로세서(120) 및 메모리(130)를 포함할 수 있다. 네트워크부(110)는 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있다. 프로세서(120)는 하나 이상의 코어로 구성될 수 있으며, 컴퓨팅 장치의 중앙 처리 장치(CPU: central processing unit), 범용 그래픽 처리 장치(GPGPU: general purpose graphics processing unit), 텐서 처리 장치(TPU: tensor processing unit) 등의 챗봇 관련 데이터 처리를 위한 프로세서로 구성될 수 있다. 본 개시의 일 실시예에 따르면, 메모리(130)는 프로세서(120)가 생성하거나 결정한 임의의 형태의 정보 및 네트워크부(110)가 수신한 임의의 형태의 정보를 저장할 수 있다.
컴퓨팅 장치(100)의 메모리(130)에는 사용자의 입력 문장을 분류하기 위해서, 복수의 카테고리들이 저장되어 있을 수 있다. 예를 들어, 보험 회사의 챗봇 구동을 위한 메모리(130)에는 “약관 대출”, “신용 대출”, “보험 계약” 등의 카테고리가 저장되어 있을 수 있다. 전술한 카테고리에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
카테고리는 하나의 기준 문장과 관련될 수 있고, 그리고 하나 이상의 변형 문장과 관련될 수 있다. 컴퓨팅 장치(100)의 메모리(130)는 기준 문장과 변형 문장을 저장할 수 있다.
기준 문장은 사용자의 입력 문장을 분류하기 위한 문장일 수 있다. 기준 문장은 카테고리를 대표하는 문장일 수 있다. 메모리(130)에 저장된 복수의 기준 문장은 각각 카테고리와 연관될 수 있다. 예를 들어, "약관 대출은 무엇인가요?"라는 기준 문장은 "약관 대출" 카테고리와 매칭되어 저장될 수 있다. "약관 대출은 무엇인가요?"라는 기준 문장은 기준 문장 벡터와 연관되어 저장될 수 있다. 전술한 기준 문장의 구체적인 기재는 예시일 뿐, 본 개시는 이에 제한되지 않는다.
변형 문장은 기준 문장의 변형일 수 있다. 변형 문장은 기준 문장과 함께 데이터베이스 또는 메모리(130)에 저장될 수 있다. 사용자들이 입력하는 입력 문장을 식별하기 위해서, 기준 문장 이외에도 동일한 카테고리에 대해, 기준 문장에서 변형된 질문들을 메모리(130)에 저장해 놓을 수 있다. 예를 들어, “약관 대출” 카테고리에 "약관 대출은 무엇인가요?"라는 기준 문장과 "약대가 뭐야?", "약관 대출 알려줘"라는 변형 문장들이 연관되어 저장되어 있을 수 있다. 전술한 문장의 구체적인 기재는 예시일 뿐, 본 개시는 이에 제한되지 않는다.
프로세서(120)는 입력 문장이 들어오는 경우, 메모리(130)에 저장된 기준 문장과 변형 문장을 이용하여 입력 문장에 대한 답변을 생성할 수 있다. 프로세서(120)는 입력 문장과 기준 문장 또는 변형 문장을 비교할 수 있다. 프로세서(120)는 메모리(130)에 저장된 기준 문장 또는 변형 문장들 중, 입력 문장과 유사도가 임계 값 이상인 문장을 결정할 수 있다. 유사도 판단 방법에 관해서는 후술하여 상세히 설명한다. 프로세서(120)는 입력 문장과 유사도가 임계 값 이상인 문장에 매칭되어 저장된 답변을, 입력 문장에 대한 답변으로 결정할 수 있다.
입력 문장에 대한 답변의 정확도를 향상시키기 위해서, 메모리(130)에는 새로운 기준 문장 또는 새로운 변형 문장이 저장될 수 있다. 또는, 메모리(130)에 저장된 기준 문장 또는 변형 문장들을 정제할 수 있다. 본 개시의 실시예에 따른 프로세서(120)는 챗봇 시스템 구동의 정확성을 높이기 위한 데이터 베이스의 정제 방법을 제공할 수 있다.
프로세서(120)는 하나 이상의 문장들이 벡터화 되어 클러스터링 된, 벡터 공간에서 입력 문장이 속하는 클러스터를 식별할 수 있다. 하나 이상의 문장들은 각각 워드투벡터(Word2Vec) 등의 알고리즘에 기초하여 벡터화 될 수 있다. 메모리(130)에 저장된 기준 문장 및 변형 문장은 각각 벡터화 될 수 있다. 벡터 공간은 기준 문장 및 변형 문장들이 벡터화 된 유클리드 공간일 수 있다. 하나의 클러스터는 하나의 카테고리와 연관될 수 있다. 하나의 클러스터는 하나의 카테고리에 포함된 기준 문장 및 변형 문장들의 벡터들의 집합일 수 있다. 즉, 벡터 공간에는 둘 이상의 카테고리에 대응되는 클러스터가 포함될 수 있고, 각각의 클러스터는 카테고리에 속하는 문장들의 벡터 집합일 수 있다. 도 2를 참조하여 예를 들어 설명하면, 제 1 클러스터(210)는 “약관 대출” 카테고리와 연관될 수 있고, 그리고 제 2 클러스터(220)는 “보험 계약” 카테고리와 연관될 수 있다. 제 1 클러스터(210)는 벡터화 된 기준 문장(212) 및 벡터화 된 변형 문장들(214, 216)을 포함할 수 있다. 전술한 벡터 공간 및 벡터화 된 문장에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
본 개시의 일 실시예에 따른 입력 문장은 메모리(130)에 저장되어 있지 않던 새로운 문장일 수 있다. 새로운 문장과 기존에 저장되어 있던 문장의 유사도를 판단하여, 프로세서(120)는 새로운 문장을 챗봇 시스템 데이터베이스에 추가하거나, 또는 기존에 저장되어 있던 문장을 삭제 또는 변경할 수 있다.
본 개시의 일 실시예에 따른 입력 문장은 메모리(130)에 저장되어 있던 기준 문장 또는 변형 문장일 수도 있다. 프로세서(120)는 메모리(130)에 기존에 저장되어 있던 문장들 간의 유사도를 판단하여, 일부 문장을 삭제하거나 또는 변형하여 데이터베이스를 정제할 수 있다.
프로세서(120)는 입력 문장을 벡터화 하여 입력 문장이 속하는 클러스터를 벡터 공간 내에서 식별할 수 있다.
프로세서(120)는 입력 문장이 속하는 클러스터에서 클러스터를 대표하는 기준 문장과 입력 문장 각각에 대한 벡터 간 거리를 연산할 수 있다. 프로세서(120)는 벡터화 된 입력 문장과, 벡터화 된 기준 문장 간의 거리를 연산할 수 있다.
프로세서(120)는 기준 문장의 클러스터에 포함된 하나 이상의 변형 문장과 입력 문장 각각에 대한 벡터 간 거리를 연산할 수 있다. 프로세서(120)는 벡터화 된 입력 문장과, 벡터화 된 변형 문장들 간의 거리를 각각 연산할 수 있다.
도 2는 입력 문장, 기준 문장, 그리고 변형 문장 각각을 벡터 공간에 표시한 것을 도시한 도면이다. 프로세서(120)는 벡터화 된 입력 문장이 제 1 카테고리에 연관된 제 1 클러스터(210)에 속하는 것으로 결정할 수 있다. 프로세서(120)는 입력 문장(214)과 기준 문장(212) 간의 거리를 연산할 수 있다. 프로세서(120)는 입력 문장(214)과 제 1 변형 문장(214) 간의 거리 및 제 2 변형 문장(216) 간의 거리를 연산할 수 있다.
프로세서(120)는 기준 문장과 입력 문장 각각에 대한 벡터 간 거리, 또는 기준 문장의 클러스터에 포함된 하나 이상의 변형 문장과 입력 문장 각각에 대한 벡터 간 거리에 기초하여 기준 문장, 변형 문장 또는 입력 문장 중 적어도 하나에 관한 처리 방법을 결정할 수 있다.
프로세서(120)는 기준 문장과 입력 문장에 대한 벡터 간 거리와 거리 임계 값을 비교할 수 있다. 프로세서(120)는 기준 문장의 클러스터에 포함된 하나 이상의 변형 문장과 입력 문장 각각에 대한 벡터 간 거리와 거리 임계 값을 비교할 수 있다. 프로세서(120)는 비교 결과에 따라 기준 문장, 변형 문장 또는 입력 문장 중 적어도 하나에 관한 처리 방법을 결정할 수 있다. 프로세서(120)는 문장들의 벡터 간 거리가 거리 임계 값 보다 작은 경우, 적어도 하나의 문장을 처리(삭제, 변경 등)할 것을 결정할 수 있다. 문장들의 벡터 간 거리가 거리 임계 값 보다 작은 경우, 새로운 입력 문장을 데이터베이스에 추가하더라도, 기존에 알지 못하던 문장에 대한 분류를 새롭게 하는 것이 아니며, 연산 량만 많아 지기 때문에, 문장을 정제할 필요성이 있을 수 있다.
거리 임계 값은 기준 문장의 클러스터 크기, 기준 문장의 클러스터에 포함된 변형 문장의 개수, 기준 문장의 클러스터에 포함된 변형 문장의 밀도 또는 기준 문장의 클러스터에 포함된 변형 문장의 클러스터 내 위치에 따른 밀도 중 적어도 하나에 기초하여 결정될 수 있다.
기준 문장의 클러스터 크기가 큰 경우, 클러스터 내에 포함된 변형 문장들 간의 거리가 큰 것일 수 있다. 변형 문장들 간의 거리가 큰 경우, 변형 문장들 사이의 빈 공간에 새로운 문장들을 추가할 필요성이 있을 수 있다. 따라서, 기준 문장의 클러스터 크기가 클수록 거리 임계 값이 작을 수 있다.
기준 문장의 클러스터에 포함된 변형 문장의 개수가 적을수록, 해당 카테고리에 대한 다양한 변형(variation)을 가지는 문장들을 추가할 필요성이 있을 수 있다. 따라서, 클러스터에 포함된 변형 문장의 개수가 적을수록, 거리 임계 값이 작을 수 있다.
클러스터에 포함된 변형 문장의 밀도가 낮을수록, 밀도가 낮은 공간에 새로운 문장을 추가하여, 해당 공간에 대응되는 입력 문장을 식별할 필요성이 있을 수 있으므로, 거리 임계 값이 작을 수 있다.
클러스터에 포함된 변형 문장들의 서브 클러스터가 형성될 수 있다. 일부 서브 클러스터의 경우 밀도가 높을 수도 있고, 그리고 일부 서브 클러스터의 경우 밀도가 낮을 수도 있다. 밀도가 낮은 서브 클러스터에 문장들이 포함되어 있을 경우, 거리 임계 값을 작을 수 있다. 밀도가 높은 서브 클러스터에 문장들이 포함되어 있을 경우, 새로운 문장을 추가할 필요성이 낮기 때문에 거리 임계 값이 클 수 있다.
처리 방법은 거리에 기초하여 기준 문장, 변형 문장 또는 상기 입력 문장 중 적어도 하나를 삭제하는 동작 또는 변형하는 동작 중 적어도 하나를 포함할 수 있다. 즉, 문장들 간의 거리가 임계 값 보다 작은 경우, 새로운 문장을 추가하여도 챗봇의 성능 향상에 기여하지 못할 것으로 결정하여 문장을 삭제할 수 있다. 또는, 두개의 문장을 하나로 통합하거나, 또는 하나의 문장을 삭제하고 다른 하나의 문장을 변경하여, 문장들의 의미를 모두 포괄하면서, 불필요한 문장 추가가 생기지 않도록 할 수 있다.
프로세서(120)는 두개 문장 간의 거리가 가까운 경우, 적어도 하나의 문장을 삭제할 수 있다. 프로세서(120)는 도 2에 도시된 벡터화 된 기준 문장(212)과 벡터화 된 입력 문장(214)을 비교할 수 있다. 두 문장 간의 거리가 임계 값 보다 작은 경우, 적어도 하나의 문장을 삭제할 수 있다. 도 3은 벡터화 된 기준 문장(212)과 벡터화 된 입력 문장(214)의 거리가 임계 값 보다 작아, 벡터화 된 입력 문장(214)을 삭제한 것을 도시한 도면이다.
프로세서(120)는 기준 문장 및 입력 문장 각각에 대한 의미들을 포함할 수 있는 새로운 변형 문장을 생성할 수 있다. 또는, 프로세서(120)는 변형 문장 및 입력 문장 각각에 대한 의미들을 포함할 수 있는 새로운 변형 문장을 생성할 수 있다. 즉, 프로세서(120)는 두개의 문장 간의 거리가 가까운 경우, 두개의 문장을 모두 데이터베이스에 저장하지 않고, 두개의 문장을 모두 포함할 수 있는 하나의 새로운 문장만을 저장할 수 있다.
도 4는 벡터화 된 기준 문장(212)과 벡터화 된 입력 문장(214)의 거리가 임계 값 보다 작아, 기존 두개의 문장을 삭제하고, 그리고 새로운 변형 문장을 생성한 것을 나타낸 도면이다. 도 4는 벡터화 된 기준 문장(212)과 벡터화 된 입력 문장(214)이 벡터 공간에서 삭제된 것을 도시한다. 도 4는 그리고, 벡터화 된 새로운 변형 문장(219)이 벡터 공간에 추가된 것을 도시한다.
본 개시의 일 실시예에 따라 새로운 변형 문장은 기준 문장 및 입력 문장 각각에 대한 벡터들의 평균에 기초하여 생성될 수 있다. 또는, 새로운 변형 문장은 변형 문장 및 입력 문장 각각에 대한 벡터들의 평균에 기초하여 생성될 수 있다. 프로세서(120)는 거리가 가까운 두개의 문장들의 평균 벡터에 대응되는 문장 만을 데이터베이스에 저장하고, 그리고 두개의 문장들은 삭제할 수 있다. 프로세서(120)는 두개의 벡터의 평균을 구하는 알고리즘을 이용하여 새로운 변형 문장에 대응되는 벡터를 생성할 수 있다. 프로세서(120)는 평균 벡터에 기초하여 새로운 변형 문장을 결정할 수 있다.
본 개시의 일 실시예에 따라 새로운 변형 문장은 기준 문장(또는, 변형 문장) 및 입력 문장 각각에 대한 벡터들의 가중 합에 기초하여 생성될 수 있다. 새로운 변형 문장은 기준 문장 벡터(또는, 변형 문장 벡터) 및 입력 문장 벡터 각각에 가중치가 매칭되어 연산 된 합 벡터에 기초하여 생성될 수 있다. 가중치는 기준 문장 벡터(또는, 변형 문장 벡터) 및 입력 문장 벡터 각각의 서브 클러스터 밀도에 기초하여 결정될 수 있다. 서브 클러스터의 밀도가 높은 경우, 해당 서브 클러스터 주변에 새로운 문장 벡터를 추가할 필요성이 낮을 수 있다. 따라서, 문장이 속한 서브 클러스터의 밀도가 높은 경우, 해당 문장 벡터에 대한 가중치를 낮게 둘 수 있다. 반대로, 서브 클러스터의 밀도가 낮은 경우, 해당 서브 클러스터 주변에 새로운 문장 벡터를 추가할 필요성이 높을 수 있다. 이 경우, 해당 문장 벡터에 대한 가중치를 높게 둘 수 있다. 예를 들어, 기준 문장 벡터가 포함된 서브 클러스터의 밀도가, 입력 문장 벡터가 포함된 서브 클러스터의 밀도 보다 낮은 경우, 기준 문장 벡터에 더 낮은 가중치를 두어, 기준 문장 벡터와 입력 문장 벡터의 가중 합 연산을 수행하여, 새로운 변형 문장 벡터를 생성할 수 있다. 전술한 변형 문장 벡터 연산에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
프로세서(120)는 벡터 공간에서 기준 문장의 클러스터에 포함된 변형 문장들의 밀도를 식별할 수 있다. 프로세서(120)는 벡터 공간에서 밀도가 낮은 공간을 식별할 수 있다. 프로세서(120)는 밀도가 낮은 공간에 대응되는 새로운 변형 문장을 생성할 수 있다. 밀도가 낮은 공간에 대한 입력 문장 벡터가 입력되는 경우, 해당 입력 문장 벡터를 분류하는데 어려움이 있을 수 있다. 따라서, 입력 문장이 입력되었을 때, 분류가 제대로 되지 않는 경우를 없애기 위해서, 빈 공간에 대응되는 새로운 변형 문장 벡터를 생성할 수 있다. 프로세서(120)는 밀도가 임계 값 이하인 공간이 있을 경우, 해당 공간에 대응되는 문장 벡터를 생성할 수 있다. 프로세서(120)는 생성된 문장 벡터에 기초한 문장을, 새로운 변형 문장으로 데이터베이스에 저장할 수 있다.
본 개시의 일 실시예에 따라, 프로세서(120)는 생성된 둘 이상의 새로운 변형 문장 중 사용자 선택 입력에 따른 변형 문장을 저장할 수 있다. 프로세서(120)는 둘 이상의 새로운 변형 문장을 생성할 수 있다. 프로세서(120)는 빈 공간 또는 밀도가 낮은 공간에 포함되는 새로운 문장 벡터들을 생성할 수 있다. 프로세서(120)는 새로운 문장 벡터들에 기초해서 새로운 변형 문장들을 생성할 수 있다. 프로세서(120)는 새로운 변형 문장들을 사용자에게 전송하거나, 또는 디스플레이 해 줄 수 있다. 프로세서(120)는 사용자로부터 적어도 하나의 새로운 변형 문장에 대한 선택 입력을 수신할 수 있다. 즉, 사용자는 새로운 변형 문장들 중에서, 데이터베이스에 저장할 문장을 선택할 수 있다. 사용자가 생성된 변형 문장들 중에서 일부의 변형 문장들을 선택하도록 함으로써, 어색하거나 또는 오류가 있는 변형 문장이 저장되는 것을 방지할 수 있다. 프로세서(120) 둘 이상의 새로운 변형 문장 중 선택된 적어도 하나의 새로운 변형 문장을 저장할 수 있다. 프로세서(120)는 챗봇 시스템의 구동 시, 새롭게 저장된 새로운 변형 문장을 이용할 수 있다.
본 개시의 일 실시예에 따라, 프로세서(120)는 문장들의 벡터 공간에서의 위치를 시각화 하여 표시할 수 있다. 도 2 내지 도 5는 시각화 된 벡터 공간의 예시이다. 시각화는 다양한 방법으로 수행될 수 있으며, 벡터 간의 거리, 밀도 또는 개수 중 적어도 하나를 사용자가 파악할 수 있도록 표시될 수 있다.
프로세서(120)는 벡터 공간에 포함된 적어도 하나의 빈 공간에 대한 선택 입력의 응답으로, 선택 입력된 빈 공간에 대응되는 새로운 변형 문장을 생성할 수 있다. 사용자는 시각화 된 벡터 공간을 확인하고, 그리고 빈 공간을 선택할 수 있다. 프로세서(120)는 클러스터 내에서의 일부 공간에 대한 사용자 선택 입력을 수신할 수 있다. 프로세서(120)는 예를 들어, 도 5에 도시된 일부 공간(310)에 대한 사용자 선택 입력을 수신할 수 있다. 사용자는 시각화 된 벡터 공간 내의 제 2 클러스터(220)에서 빈 공간으로 판단된 공간(310)을 선택할 수 있다. 프로세서(120)는 해당 공간에 대응되는 문장 벡터를 생성할 수 있고, 그리고 문장 벡터에 기초한 새로운 변형 문장을 생성할 수 있다. 전술한 변형 문장 생성에 대한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
프로세서(120)는 입력 문장이 속하는 클러스터가 식별되지 않는 경우, 입력 문장과 벡터 공간 상에서 사전 결정된 거리 이하에 위치하는 다른 입력 문장 벡터를 식별함으로써, 새로운 클러스터를 생성할 수 있다. 사용자들이 챗봇에 입력하는 문장들 중에서, 사전에 데이터베이스에 카테고리화 되지 않은 새로운 입력 문장이 들어올 수 있다. 도 5는 카테고리화 되지 않은 새로운 입력 문장에 대한 문장 벡터(320)를 도시한다. 프로세서(120)는 클러스터가 식별되지 않는 입력 문장들을 그룹핑 할 수 있다. 프로세서(120)는 클러스터가 식별되지 않는 입력 문장들 중에서, 사전 결정된 거리 이하에 위치하는 입력 문장을 동일한 클러스터에 해당하는 것으로 식별할 수 있다. 프로세서(120)는 사전 결정된 거리 이하에 위치하는 입력 문장을 포함하는 새로운 클러스터를 형성할 수 있다. 프로세서(120)는 새로운 클러스터에 포함되는 입력 문장들을 사용자에게 디스플레이 할 수 있다. 프로세서(120)는 새로운 클러스터에 대한 새로운 카테고리를 사용자로부터 입력 받을 수 있다. 예를 들어, 기존의 데이터베이스에 저장되어 있던 카테고리는 “약관 대출”, “보험 계약” 두가지일 수 있다. 사용자는 “약관 대출”, “보험 계약” 카테고리에 포함되지 않는, “보험금 지급 절차가 어떻게 되나요?”라는 입력 문장을 입력할 수 있다. 프로세서(120)는 일 사용자가 입력한 “보험금 지급 절차가 어떻게 되나요?”라는 입력 문장과, 또 다른 사용자가 입력한 “미성년자를 대리해서 보험금을 청구하려고 합니다”라는 입력 문장의 벡터간 거리가 가까운 것으로 판단할 수 있다. 프로세서(120)는 기존 카테고리에 포함되지 않는 새로운 두개의 문장을 그룹핑 하여 “보험금 청구” 카테고리에 대한 새로운 클러스터를 형성할 수 있다. 전술한 클러스터 형성에 관한 구체적인 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
본 개시의 실시예에 따른 문장들은 데이터베이스에 저장될 수 있다. 본 개시의 실시예에 따른 정제된 문장들은 데이터베이스에 저장될 수 있다. 정제된 문장들은 기존에 저장되어 있던 기준 문장, 변형 문장들 중 적어도 일부 및 새로운 변형 문장을 포함할 수 있다. 프로세서(120)는 정제된 문장들을 이용하여 챗봇 시스템의 구동을 위한 뉴럴 네트워크 모델을 학습시킬 수 있다. 프로세서(120)는 정제된 문장들 중 적어도 일부를 포함하는 학습 데이터 세트를 생성할 수 있다. 프로세서(120)는 학습 데이터 세트를 이용하여 뉴럴 네트워크 모델을 학습시킬 수 있다.
데이터 구조는 특정 문제 해결을 위한 데이터의 조직을 의미할 수 있다. 본 개시의 실시예에 따른 데이터 구조는 정제된 문장들을 포함할 수 있다. 데이터 구조는 정제된 문장들에 기초하여 생성된 학습 데이터 세트를 포함할 수 있다. 데이터 구조는 학습 데이터 세트를 이용하여 학습된 뉴럴 네트워크 모델의 구조 또는 가중치를 포함할 수 있다. 본 개시의 실시예에 따른 컴퓨팅 장치(100)는 상기 데이터 구조를 통해 챗봇 시스템의 구동을 위한 연산, 읽기, 삽입, 삭제, 비교, 교환, 검색의 효율성을 높일 수 있다.
본 개시의 실시예에 따라 프로세서(120)가 메모리(130)에 저장된 데이터를 정제하는 경우, 불필요한 데이터의 삭제로 인해 챗봇 시스템의 속도가 향상될 수 있다. 프로세서(120)는 챗봇 시스템의 구동 시, 사용자가 입력한 입력 문장과 메모리(130)에 저장된 문장들을 비교하는데, 이때 메모리(130)에 불필요한 문장들이 삭제되는 경우, 문장들 간의 비교 연산 량이 감소될 수 있다. 또한, 메모리(130)에 저장된 데이터를 정제하는 경우, 메모리(130)에 저장된 데이터들을 포함하는 학습 데이터 세트의 크기가 작아질 수 있다. 학습 데이터 세트의 크기가 작아지는 경우, 학습 데이터 세트를 이용한 뉴럴 네트워크 모델의 학습에 소요되는 시간 및 비용이 감소될 수 있다.
본 개시의 실시예에 따라 프로세서(120)가 메모리(130)에 저장된 데이터를 정제하는 경우, 챗봇 시스템의 정확성을 향상시킬 수 있다. 메모리(130)에 다른 주제 또는 카테고리에 속하는 문장들이, 가까운 거리에 저장되어 있을 경우, 입력 문장의 답변을 위한 기준 문장 또는 변형 문장을 선택할 때, 잘못된 주제 또는 카테고리에 대한 답변을 생성할 수 있다. 본 개시의 일 실시예에 따라 메모리(130)에 저장된 가까운 거리의 문장들을 정제함으로써, 다른 주제 또는 카테고리에 속하는 문장들은 더 잘 구별하도록 할 수 있다.
도 6은 본 개시의 일 실시예에 따른 데이터 관리 방법의 순서도이다.
컴퓨팅 장치(100)는 하나 이상의 문장들이 벡터화 되어 클러스터링 된, 벡터 공간에서 입력 문장이 속하는 클러스터를 식별(410)할 수 있다.
컴퓨팅 장치(100)는 입력 문장이 속하는 클러스터에서 클러스터를 대표하는 기준 문장과 입력 문장 각각에 대한 벡터 간 거리를 연산(420)할 수 있다. 컴퓨팅 장치(100)는 기준 문장의 클러스터에 포함된 하나 이상의 변형 문장과 입력 문장 각각에 대한 벡터 간 거리를 연산할 수 있다.
컴퓨팅 장치(100)는 거리에 기초하여 기준 문장 또는 입력 문장 중 적어도 하나에 관한 처리 방법을 결정(430)할 수 있다. 처리 방법은 거리에 기초하여 기준 문장 또는 입력 문장 중 적어도 하나를 삭제하거나, 또는 변형하는 동작을 포함할 수 있다.
컴퓨팅 장치(100)는 기준 문장의 클러스터 크기, 기준 문장의 클러스터에 포함된 변형 문장의 개수, 기준 문장의 클러스터에 포함된 변형 문장의 밀도 또는 기준 문장의 클러스터에 포함된 변형 문장의 클러스터 내 위치에 따른 밀도 중 적어도 하나에 기초하여 결정되는 거리 임계 값에 기초하여 기준 문장 또는 입력 문장 중 적어도 하나를 처리할 것을 결정할 수 있다.
컴퓨팅 장치(100)는 기준 문장 및 상기 입력 문장 각각에 대한 의미들을 포함할 수 있는 새로운 변형 문장을 생성할 수 있다. 새로운 변형 문장은 기준 문장 및 입력 문장 각각에 대한 벡터들의 평균 또는 가중 합에 기초하여 생성된 문장일 수 있다. 새로운 변형 문장은 기준 문장 벡터 및 입력 문장 벡터 각각에 가중치가 매칭되어 연산 된 합 벡터에 기초하여 생성될 수 있다. 가중치는 기준 문장 벡터 및 입력 문장 벡터 각각의 서브 클러스터 밀도에 기초하여 결정될 수 있다.
컴퓨팅 장치(100)는 벡터 공간에서 기준 문장의 클러스터에 포함된 변형 문장들의 밀도를 식별할 수 있다. 컴퓨팅 장치(100)는 벡터 공간에서 밀도가 낮은 공간을 식별할 수 있다. 컴퓨팅 장치(100)는 밀도가 낮은 공간에 대응되는 새로운 변형 문장을 생성할 수 있다.
본 개시의 일 실시예에 따라 데이터 구조를 저장한 컴퓨터 판독가능 매체가 개시된다.
데이터 구조는 데이터에 효율적인 접근 및 수정을 가능하게 하는 데이터의 조직, 관리, 저장을 의미할 수 있다. 데이터 구조는 특정 문제(예를 들어, 최단 시간으로 데이터 검색, 데이터 저장, 데이터 수정) 해결을 위한 데이터의 조직을 의미할 수 있다. 데이터 구조는 특정한 데이터 처리 기능을 지원하도록 설계된, 데이터 요소들 간의 물리적이거나 논리적인 관계로 정의될 수도 있다. 데이터 요소들 간의 논리적인 관계는 사용자가 생각하는 데이터 요소들 간의 연결관계를 포함할 수 있다. 데이터 요소들 간의 물리적인 관계는 컴퓨터 판독가능 저장매체(예를 들어, 하드 디스크)에 물리적으로 저장되어 있는 데이터 요소들 간의 실제 관계를 포함할 수 있다. 데이터 구조는 구체적으로 데이터의 집합, 데이터 간의 관계, 데이터에 적용할 수 있는 함수 또는 명령어를 포함할 수 있다. 효과적으로 설계된 데이터 구조를 통해 컴퓨팅 장치는 컴퓨팅 장치의 자원을 최소한으로 사용하면서 연산을 수행할 수 있다. 구체적으로 컴퓨팅 장치는 효과적으로 설계된 데이터 구조를 통해 연산, 읽기, 삽입, 삭제, 비교, 교환, 검색의 효율성을 높일 수 있다.
데이터 구조는 데이터 구조의 형태에 따라 선형 데이터 구조와 비선형 데이터 구조로 구분될 수 있다. 선형 데이터 구조는 하나의 데이터 뒤에 하나의 데이터만이 연결되는 구조일 수 있다. 선형 데이터 구조는 리스트(List), 스택(Stack), 큐(Queue), 데크(Deque)를 포함할 수 있다. 리스트는 내부적으로 순서가 존재하는 일련의 데이터 집합을 의미할 수 있다. 리스트는 연결 리스트(Linked List)를 포함할 수 있다. 연결 리스트는 각각의 데이터가 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터가 연결된 데이터 구조일 수 있다. 연결 리스트에서 포인터는 다음이나 이전 데이터와의 연결 정보를 포함할 수 있다. 연결 리스트는 형태에 따라 단일 연결 리스트, 이중 연결 리스트, 원형 연결 리스트로 표현될 수 있다. 스택은 제한적으로 데이터에 접근할 수 있는 데이터 나열 구조일 수 있다. 스택은 데이터 구조의 한 쪽 끝에서만 데이터를 처리(예를 들어, 삽입 또는 삭제)할 수 있는 선형 데이터 구조일 수 있다. 스택에 저장된 데이터는 늦게 들어갈수록 빨리 나오는 데이터 구조(LIFO-Last in First Out)일 수 있다. 큐는 제한적으로 데이터에 접근할 수 있는 데이터 나열 구조로서, 스택과 달리 늦게 저장된 데이터일수록 늦게 나오는 데이터 구조(FIFO-First in First Out)일 수 있다. 데크는 데이터 구조의 양 쪽 끝에서 데이터를 처리할 수 있는 데이터 구조일 수 있다.
비선형 데이터 구조는 하나의 데이터 뒤에 복수개의 데이터가 연결되는 구조일 수 있다. 비선형 데이터 구조는 그래프(Graph) 데이터 구조를 포함할 수 있다. 그래프 데이터 구조는 정점(Vertex)과 간선(Edge)으로 정의될 수 있으며 간선은 서로 다른 두개의 정점을 연결하는 선을 포함할 수 있다. 그래프 데이터 구조 트리(Tree) 데이터 구조를 포함할 수 있다. 트리 데이터 구조는 트리에 포함된 복수개의 정점 중에서 서로 다른 두개의 정점을 연결시키는 경로가 하나인 데이터 구조일 수 있다. 즉 그래프 데이터 구조에서 루프(loop)를 형성하지 않는 데이터 구조일 수 있다.
본 명세서에 걸쳐, 연산 모델, 신경망, 네트워크 함수, 뉴럴 네트워크(neural network)는 동일한 의미로 사용될 수 있다. (이하에서는 신경망으로 통일하여 기술한다.) 데이터 구조는 신경망을 포함할 수 있다. 그리고 신경망을 포함한 데이터 구조는 컴퓨터 판독가능 매체에 저장될 수 있다. 신경망을 포함한 데이터 구조는 또한 신경망에 입력되는 데이터, 신경망의 가중치, 신경망의 하이퍼 파라미터, 신경망으로부터 획득한 데이터, 신경망의 각 노드 또는 레이어와 연관된 활성 함수, 신경망의 학습을 위한 손실 함수를 포함할 수 있다. 신경망을 포함한 데이터 구조는 상기 개시된 구성들 중 임의의 구성 요소들을 포함할 수 있다. 즉 신경망을 포함한 데이터 구조는 신경망에 입력되는 데이터, 신경망의 가중치, 신경망의 하이퍼 파라미터, 신경망으로부터 획득한 데이터, 신경망의 각 노드 또는 레이어와 연관된 활성 함수, 신경망의 트레이닝을 위한 손실 함수 등 전부 또는 이들의 임의의 조합을 포함하여 구성될 수 있다. 전술한 구성들 이외에도, 신경망을 포함한 데이터 구조는 신경망의 특성을 결정하는 임의의 다른 정보를 포함할 수 있다. 또한, 데이터 구조는 신경망의 연산 과정에 사용되거나 발생되는 모든 형태의 데이터를 포함할 수 있으며 전술한 사항에 제한되는 것은 아니다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 기록 매체 및/또는 컴퓨터 판독가능 전송 매체를 포함할 수 있다. 신경망은 일반적으로 노드라 지칭될 수 있는 상호 연결된 계산 단위들의 집합으로 구성될 수 있다. 이러한 노드들은 뉴런(neuron)들로 지칭될 수도 있다. 신경망은 적어도 하나 이상의 노드들을 포함하여 구성된다.
데이터 구조는 신경망에 입력되는 데이터를 포함할 수 있다. 신경망에 입력되는 데이터를 포함하는 데이터 구조는 컴퓨터 판독가능 매체에 저장될 수 있다. 신경망에 입력되는 데이터는 신경망 학습 과정에서 입력되는 학습 데이터 및/또는 학습이 완료된 신경망에 입력되는 입력 데이터를 포함할 수 있다. 신경망에 입력되는 데이터는 전처리(pre-processing)를 거친 데이터 및/또는 전처리 대상이 되는 데이터를 포함할 수 있다. 전처리는 데이터를 신경망에 입력시키기 위한 데이터 처리 과정을 포함할 수 있다. 따라서 데이터 구조는 전처리 대상이 되는 데이터 및 전처리로 발생되는 데이터를 포함할 수 있다. 전술한 데이터 구조는 예시일 뿐 본 개시는 이에 제한되지 않는다.
데이터 구조는 신경망의 가중치를 포함할 수 있다. (본 명세서에서 가중치, 파라미터는 동일한 의미로 사용될 수 있다.) 그리고 신경망의 가중치를 포함한 데이터 구조는 컴퓨터 판독가능 매체에 저장될 수 있다. 신경망은 복수개의 가중치를 포함할 수 있다. 가중치는 가변적일 수 있으며, 신경망이 원하는 기능을 수행하기 위해, 사용자 또는 알고리즘에 의해 가변 될 수 있다. 예를 들어, 하나의 출력 노드에 하나 이상의 입력 노드가 각각의 링크에 의해 상호 연결된 경우, 출력 노드는 상기 출력 노드와 연결된 입력 노드들에 입력된 값들 및 각각의 입력 노드들에 대응하는 링크에 설정된 파라미터에 기초하여 출력 노드 값을 결정할 수 있다. 전술한 데이터 구조는 예시일 뿐 본 개시는 이에 제한되지 않는다.
제한이 아닌 예로서, 가중치는 신경망 학습 과정에서 가변되는 가중치 및/또는 신경망 학습이 완료된 가중치를 포함할 수 있다. 신경망 학습 과정에서 가변되는 가중치는 학습 사이클이 시작되는 시점의 가중치 및/또는 학습 사이클 동안 가변되는 가중치를 포함할 수 있다. 신경망 학습이 완료된 가중치는 학습 사이클이 완료된 가중치를 포함할 수 있다. 따라서 신경망의 가중치를 포함한 데이터 구조는 신경망 학습 과정에서 가변되는 가중치 및/또는 신경망 학습이 완료된 가중치를 포함한 데이터 구조를 포함할 수 있다. 그러므로 상술한 가중치 및/또는 각 가중치의 조합은 신경망의 가중치를 포함한 데이터 구조에 포함되는 것으로 한다. 전술한 데이터 구조는 예시일 뿐 본 개시는 이에 제한되지 않는다.
신경망의 가중치를 포함한 데이터 구조는 직렬화(serialization) 과정을 거친 후 컴퓨터 판독가능 저장 매체(예를 들어, 메모리, 하드 디스크)에 저장될 수 있다. 직렬화는 데이터 구조를 동일하거나 다른 컴퓨팅 장치에 저장하고 나중에 다시 재구성하여 사용할 수 있는 형태로 변환하는 과정일 수 있다. 컴퓨팅 장치는 데이터 구조를 직렬화하여 네트워크를 통해 데이터를 송수신할 수 있다. 직렬화된 신경망의 가중치를 포함한 데이터 구조는 역직렬화(deserialization)를 통해 동일한 컴퓨팅 장치 또는 다른 컴퓨팅 장치에서 재구성될 수 있다. 신경망의 가중치를 포함한 데이터 구조는 직렬화에 한정되는 것은 아니다. 나아가 신경망의 가중치를 포함한 데이터 구조는 컴퓨팅 장치의 자원을 최소한으로 사용하면서 연산의 효율을 높이기 위한 데이터 구조(예를 들어, 비선형 데이터 구조에서 B-Tree, Trie, m-way search tree, AVL tree, Red-Black Tree)를 포함할 수 있다. 전술한 사항은 예시일 뿐 본 개시는 이에 제한되지 않는다.
데이터 구조는 신경망의 하이퍼 파라미터(Hyper-parameter)를 포함할 수 있다. 그리고 신경망의 하이퍼 파라미터를 포함한 데이터 구조는 컴퓨터 판독가능 매체에 저장될 수 있다. 하이퍼 파라미터는 사용자에 의해 가변되는 변수일 수 있다. 하이퍼 파라미터는 예를 들어, 학습률(learning rate), 비용 함수(cost function), 학습 사이클 반복 횟수, 가중치 초기화(Weight initialization)(예를 들어, 가중치 초기화 대상이 되는 가중치 값의 범위 설정), Hidden Unit 개수(예를 들어, 히든 레이어의 개수, 히든 레이어의 노드 수)를 포함할 수 있다. 전술한 데이터 구조는 예시일 뿐 본 개시는 이에 제한되지 않는다.
제시된 실시예들에 대한 설명은 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 이용하거나 또는 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 개시는 여기에 제시된 실시예들로 한정되는 것이 아니라, 여기에 제시된 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 할 것이다.
Claims (12)
- 컴퓨터 판독가능 저장 매체 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 하나 이상의 프로세서에서 실행되는 경우, 데이터를 관리하기 위한 이하의 동작들을 수행하도록 하며, 상기 동작들은:
하나 이상의 문장들이 벡터화 되어 클러스터링 된, 벡터 공간에서 입력 문장이 속하는 클러스터를 식별하는 동작;
상기 입력 문장이 속하는 클러스터에서 상기 클러스터를 대표하는 기준 문장과 상기 입력 문장 각각에 대한 벡터 간 거리를 연산하는 동작; 및
상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나에 관한 처리 방법을 결정하는 동작;
을 포함하고,
상기 처리 방법은,
상기 기준 문장 또는 상기 입력 문장 중 적어도 하나를 데이터베이스에서 삭제하는 동작을 포함하는,
컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램.
- 제 1 항에 있어서,
상기 처리 방법은:
상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나를 변형하는,
컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램.
- 제 1 항에 있어서,
상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나에 관한 처리 방법을 결정하는 동작은:
상기 기준 문장의 클러스터 크기, 상기 기준 문장의 클러스터에 포함된 변형 문장의 개수, 상기 기준 문장의 클러스터에 포함된 변형 문장의 밀도 또는 상기 기준 문장의 클러스터에 포함된 변형 문장의 클러스터 내 위치에 따른 밀도 중 적어도 하나에 기초하여 결정되는 거리 임계 값에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나를 처리할 것을 결정하는 동작;
을 포함하는,
컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램.
- 제 1 항에 있어서,
상기 기준 문장의 클러스터에 포함된 하나 이상의 변형 문장과 상기 입력 문장 각각에 대한 벡터 간 거리를 연산하는 동작;
을 더 포함하는,
컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램.
- 제 1 항에 있어서,
상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나에 관한 처리 방법을 결정하는 동작은:
상기 기준 문장 및 상기 입력 문장 각각에 대한 의미들을 포함할 수 있는 새로운 변형 문장을 생성하는 동작;
을 포함하는,
컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램.
- 제 5 항에 있어서,
상기 새로운 변형 문장은:
상기 기준 문장 및 상기 입력 문장 각각에 대한 벡터들의 평균 또는 가중 합에 기초하여 생성된,
컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램.
- 제 5 항에 있어서,
상기 새로운 변형 문장은:
기준 문장 벡터 및 입력 문장 벡터 각각에 가중치가 매칭되어 연산 된 합 벡터에 기초하여 생성되고, 그리고
상기 가중치는:
상기 기준 문장 벡터 및 상기 입력 문장 벡터 각각의 서브 클러스터 밀도에 기초하여 결정되는,
컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램.
- 제 1 항에 있어서,
벡터 공간에서 상기 기준 문장의 클러스터에 포함된 변형 문장들의 밀도를 식별하는 동작;
상기 벡터 공간에서 밀도가 낮은 공간을 식별하는 동작; 및
상기 밀도가 낮은 공간에 대응되는 새로운 변형 문장을 생성하는 동작;
을 더 포함하는,
컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램.
- 제 1 항에 있어서,
상기 입력 문장이 속하는 클러스터가 식별되지 않는 경우, 상기 입력 문장과 벡터 공간 상에서 사전 결정된 거리 이하에 위치하는 다른 입력 문장 벡터를 식별함으로써, 새로운 클러스터를 생성하는 동작;
을 더 포함하는,
컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램.
- 서버의 프로세서에 의해 수행되는 데이터 관리 방법으로서,
하나 이상의 문장들이 벡터화 되어 클러스터링 된, 벡터 공간에서 입력 문장이 속하는 클러스터를 식별하는 단계;
상기 입력 문장이 속하는 클러스터에서 상기 클러스터를 대표하는 기준 문장과 상기 입력 문장 각각에 대한 벡터 간 거리를 연산하는 단계; 및
상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나에 관한 처리 방법을 결정하는 단계;
를 포함하고,
상기 처리 방법은,
상기 기준 문장 또는 상기 입력 문장 중 적어도 하나를 데이터베이스에서 삭제하는 동작을 포함하는,
서버의 프로세서에 의해 수행되는 데이터 관리 방법.
- 데이터를 관리하기 위한 서버로서,
하나 이상의 코어를 포함하는 프로세서; 및
메모리;
를 포함하고,
상기 프로세서는,
하나 이상의 문장들이 벡터화 되어 클러스터링 된, 벡터 공간에서 입력 문장이 속하는 클러스터를 식별하고,
상기 입력 문장이 속하는 클러스터에서 상기 클러스터를 대표하는 기준 문장과 상기 입력 문장 각각에 대한 벡터 간 거리를 연산하고, 그리고
상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나에 관한 처리 방법을 결정하고,
상기 처리 방법은,
상기 기준 문장 또는 상기 입력 문장 중 적어도 하나를 데이터베이스에서 삭제하는 동작을 포함하는,
데이터를 관리하기 위한 서버.
- 뉴럴 네트워크의 파라미터의 적어도 일부를 업데이트 하는 학습 과정과 관련된 가공된 데이터에 대응하는 데이터 구조가 저장된 컴퓨터 판독가능한 저장 매체로서, 상기 뉴럴 네트워크의 동작은 상기 파라미터에 적어도 부분적으로 기초하고, 상기 뉴럴 네트워크의 동작은,
하나 이상의 문장들이 벡터화 되어 클러스터링 된, 벡터 공간에서 입력 문장이 속하는 클러스터를 식별하는 단계;
상기 입력 문장이 속하는 클러스터에서 상기 클러스터를 대표하는 기준 문장과 상기 입력 문장 각각에 대한 벡터 간 거리를 연산하는 단계; 및
상기 거리에 기초하여 상기 기준 문장 또는 상기 입력 문장 중 적어도 하나에 관한 처리 방법을 결정하는 단계;
를 포함하고,
상기 처리 방법은,
상기 기준 문장 또는 상기 입력 문장 중 적어도 하나를 데이터베이스에서 삭제하는 동작을 포함하는,
컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200036670A KR102359661B1 (ko) | 2020-03-26 | 2020-03-26 | 데이터 관리 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200036670A KR102359661B1 (ko) | 2020-03-26 | 2020-03-26 | 데이터 관리 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210120236A KR20210120236A (ko) | 2021-10-07 |
KR102359661B1 true KR102359661B1 (ko) | 2022-02-07 |
Family
ID=78114944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200036670A KR102359661B1 (ko) | 2020-03-26 | 2020-03-26 | 데이터 관리 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102359661B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004341948A (ja) * | 2003-05-16 | 2004-12-02 | Ricoh Co Ltd | 概念抽出システム、概念抽出方法、プログラム及び記憶媒体 |
KR101891492B1 (ko) * | 2017-11-03 | 2018-08-24 | 주식회사 머니브레인 | 답변을 변형하여 상황에 맞는 자연어 대화를 제공하는 방법, 컴퓨터 장치 및 컴퓨터 판독가능 기록 매체 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0736897A (ja) * | 1993-07-22 | 1995-02-07 | Sharp Corp | 文書分類装置 |
JPH11110409A (ja) * | 1997-10-07 | 1999-04-23 | Ntt Data Corp | 情報分類方法及び装置 |
US9442929B2 (en) * | 2013-02-12 | 2016-09-13 | Microsoft Technology Licensing, Llc | Determining documents that match a query |
-
2020
- 2020-03-26 KR KR1020200036670A patent/KR102359661B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004341948A (ja) * | 2003-05-16 | 2004-12-02 | Ricoh Co Ltd | 概念抽出システム、概念抽出方法、プログラム及び記憶媒体 |
KR101891492B1 (ko) * | 2017-11-03 | 2018-08-24 | 주식회사 머니브레인 | 답변을 변형하여 상황에 맞는 자연어 대화를 제공하는 방법, 컴퓨터 장치 및 컴퓨터 판독가능 기록 매체 |
Also Published As
Publication number | Publication date |
---|---|
KR20210120236A (ko) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11922308B2 (en) | Generating neighborhood convolutions within a large network | |
CN110263227B (zh) | 基于图神经网络的团伙发现方法和系统 | |
Varol Altay et al. | Performance analysis of multi-objective artificial intelligence optimization algorithms in numerical association rule mining | |
JP2021518024A (ja) | 機械学習アルゴリズムのためのデータを生成する方法、システム | |
Pratt et al. | Employee attrition estimation using random forest algorithm | |
CN103336790A (zh) | 基于Hadoop的邻域粗糙集快速属性约简方法 | |
Cao et al. | Data mining for business applications | |
CN103336791B (zh) | 基于Hadoop的粗糙集快速属性约简方法 | |
US11640493B1 (en) | Method for dialogue summarization with word graphs | |
Zhang et al. | HCBC: A hierarchical case-based classifier integrated with conceptual clustering | |
CN115661550A (zh) | 基于生成对抗网络的图数据类别不平衡分类方法及装置 | |
Wang et al. | GP-based approach to comprehensive quality-aware automated semantic web service composition | |
CN109635119A (zh) | 一种基于本体融合的工业大数据集成系统 | |
KR20210138893A (ko) | 아이템 추천 방법 | |
CN108829846A (zh) | 一种基于用户特征的业务推荐平台数据聚类优化系统及方法 | |
KR102359661B1 (ko) | 데이터 관리 방법 | |
KR102430482B1 (ko) | 금지 영역 정보를 기반으로 반도체 소자를 배치하는 방법 | |
Zhang et al. | Attribute index and uniform design based multiobjective association rule mining with evolutionary algorithm | |
CN113537731B (zh) | 基于强化学习的设计资源能力评估方法 | |
CN115905293A (zh) | 作业执行引擎的切换方法及装置 | |
CN115599918A (zh) | 一种基于图增强的互学习文本分类方法及系统 | |
KR20230090959A (ko) | 사업자 활동 데이터 분석 방법 | |
Ghosh et al. | Understanding machine learning | |
KR20040028081A (ko) | 유전자 알고리즘에 있어서 효율적인 적응도 함수 계산을위한 데이터 분류 방법 | |
Carmichael et al. | Learning Debuggable Models Through Multi-Objective NAS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |