KR102525918B1 - 기계 학습을 이용한 응답 시간 예측을 통해 검색 시스템을 운영하는 방법 및 장치 - Google Patents

기계 학습을 이용한 응답 시간 예측을 통해 검색 시스템을 운영하는 방법 및 장치 Download PDF

Info

Publication number
KR102525918B1
KR102525918B1 KR1020200159511A KR20200159511A KR102525918B1 KR 102525918 B1 KR102525918 B1 KR 102525918B1 KR 1020200159511 A KR1020200159511 A KR 1020200159511A KR 20200159511 A KR20200159511 A KR 20200159511A KR 102525918 B1 KR102525918 B1 KR 102525918B1
Authority
KR
South Korea
Prior art keywords
search
response time
machine learning
word
search request
Prior art date
Application number
KR1020200159511A
Other languages
English (en)
Other versions
KR20220072179A (ko
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 KR1020200159511A priority Critical patent/KR102525918B1/ko
Priority to JP2021187675A priority patent/JP7329028B2/ja
Publication of KR20220072179A publication Critical patent/KR20220072179A/ko
Application granted granted Critical
Publication of KR102525918B1 publication Critical patent/KR102525918B1/ko

Links

Images

Classifications

    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

기계 학습을 이용한 응답 시간 예측을 통해 검색 시스템을 운영하는 방법 및 장치가 개시된다. 검색 시스템 운영 방법은, 검색과 관련된 피처에 기반한 기계 학습 예측 모델을 이용하여 주어진 검색 요청에 대한 응답 시간을 예측하는 단계; 및 상기 응답 시간의 예측 결과에 기초하여 상기 검색 요청을 처리하기 위한 연산 리소스를 제어하는 단계를 포함한다.

Description

기계 학습을 이용한 응답 시간 예측을 통해 검색 시스템을 운영하는 방법 및 장치{METHOD AND APPARATUS TO OPERATE SEARCH SYSTEM THROUGH RESPONSE TIME USING MACHINE LEARNING}
아래의 설명은 검색 시스템의 효율성과 안정성을 향상시키기 위한 운영 기술에 관한 것이다.
인터넷의 상용화로 인해 많은 사용자들이 인터넷을 이용하여 다양한 주제의 정보를 간편하고 신속하게 검색할 수 있다.
인터넷을 이용하는 대부분의 사용자는 브라우저를 통하여 인터넷에 접속한 후 인터넷 포털 사이트를 통하여 정보를 검색한다.
사용자가 인터넷 포털의 검색창에 검색어를 입력하면 인터넷 포털은 데이터베이스에서 검색어에 대응하는 다양한 정보를 추출하여 검색 결과로서 사용자에게 제공한다.
검색 기술의 일례로, 한국 공개특허공보 제10-2008-0060462호(공개일 2008년 07월 02일)에는 사용자로부터 입력된 검색어를 분석하여 사용자 의도에 부응하는 검색 결과를 제공할 수 있는 검색 시스템 및 방법이 개시되어 있다.
기계 학습 예측 모델을 이용하여 더욱 효율적이고 안정적인 자동화된 검색 환경을 제공할 수 있는 방법 및 장치를 제공한다.
기계 학습 예측 모델을 통해 검색 요청에 대한 응답 시간을 보다 정밀하게 예측할 수 있는 방법 및 장치를 제공한다.
컴퓨터 장치에서 실행되는 검색 시스템 운영 방법에 있어서, 상기 컴퓨터 장치는 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 검색 시스템 운영 방법은, 상기 적어도 하나의 프로세서에 의해, 검색과 관련된 피처에 기반한 기계 학습 예측 모델을 이용하여 주어진 검색 요청에 대한 응답 시간을 예측하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 상기 응답 시간의 예측 결과에 기초하여 상기 검색 요청을 처리하기 위한 연산 리소스를 제어하는 단계를 포함하는 검색 시스템 운영 방법을 제공한다.
일 측면에 따르면, 상기 제어하는 단계는, 상기 응답 시간이 기준치를 초과하는 슬로우 쿼리(slow query)로 예측되는 경우 상기 검색 요청에 대한 랭킹 연산 부하를 조절할 수 있다.
다른 측면에 따르면, 상기 제어하는 단계는, 상기 응답 시간이 기준치를 초과하는 슬로우 쿼리로 예측되는 경우 상기 검색 요청에 대한 랭킹 연산을 두 단계로 나누어 처리하는 연산 방식을 적용하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 제어하는 단계는, 상기 응답 시간이 기준치를 초과하는 슬로우 쿼리로 예측되는 경우 상기 검색 요청에 대한 랭킹 연산에 참여하는 피처 중 일부를 제외시키는 랭킹 피처 손실(ranking feature dropout) 방식을 적용하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 제어하는 단계는, 상기 응답 시간이 기준치를 초과하는 슬로우 쿼리로 예측되는 경우 상기 검색 요청에 대한 랭킹 연산을 위한 캐시 만료 시간(cache expire time)을 연장하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 제어하는 단계는, 상기 응답 시간이 기준치를 초과하는 슬로우 쿼리로 예측되는 경우 상기 검색 요청에 따른 트래픽을 차단하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 예측하는 단계는, 상기 기계 학습 예측 모델을 이용하여 상기 검색 요청에 대한 검색 결과 유무를 예측하는 단계를 포함하고, 상기 제어하는 단계는, 상기 검색 결과 유무의 예측 결과에 기초하여 상기 검색 요청에 대한 랭킹 연산 부하를 조절하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 예측하는 단계는, 상기 검색 요청에 대응되는 검색 유형에 따라 상기 기계 학습 예측 모델로 구축된 복수 개의 모델 중 어느 하나의 모델을 선택하여 상기 응답 시간을 예측할 수 있다.
또 다른 측면에 따르면, 상기 예측하는 단계는, 상기 검색 요청에 포함된 검색어가 단일 색인어로 이루어진 경우 색인어 DF(document frequency)에 기반한 기계 학습 예측 모델을 이용하여 상기 응답 시간을 예측하는 단계; 및 상기 검색어가 다중 색인어로 이루어진 경우 색인어 워드임베딩(word embedding)에 기반한 기계 학습 예측 모델을 이용하여 상기 응답 시간을 예측하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 기계 학습 예측 모델은 검색 로그에서 추출된 데이터로 응답 시간에 영향을 미치는 적어도 하나의 검색 파라미터를 학습 데이터로 이용한 모델로 구성될 수 있다.
또 다른 측면에 따르면, 상기 기계 학습 예측 모델은 검색 로그에서 추출된 색인어의 워드임베딩을 학습 데이터로 이용한 딥러닝 모델로 구성될 수 있다.
또 다른 측면에 따르면, 상기 기계 학습 예측 모델은 상기 색인어의 워드임베딩과 함께, 상기 검색 로그에서 추출 가능한 검색 방식(search method), 쿼리 분석 유형(query analyze type), 랭킹 피처 조합(ranking feature combination), 후처리 유형(post processing type) 중 적어도 하나의 파라미터를 상기 학습 데이터로 이용할 수 있다.
또 다른 측면에 따르면, 상기 기계 학습 예측 모델은 검색 로그에서 추출된 색인어의 DF 값을 학습 데이터로 이용한 회귀 모델로 구성될 수 있다.
또 다른 측면에 따르면, 상기 기계 학습 예측 모델은 선형 회귀(linear regression) 모델, 또는 다중 회귀(multiple regression) 모델, 또는 다중 로지스틱 회귀(multiple logistic regression) 모델로 구성될 수 있다.
또 다른 측면에 따르면, 상기 기계 학습 예측 모델은 상기 색인어의 DF 값과 함께, 상기 검색 로그에서 추출 가능한 검색 방식, 쿼리 분석 유형, 랭킹 피처 조합, 후처리 유형 중 적어도 하나의 파라미터를 상기 학습 데이터로 이용할 수 있다.
상기 검색 시스템 운영 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독가능한 기록 매체에 저장되는 컴퓨터 프로그램을 제공한다.
컴퓨터 장치에 있어서, 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 검색과 관련된 피처에 기반한 기계 학습 예측 모델을 이용하여 주어진 검색 요청에 대한 응답 시간을 예측하는 응답 예측부; 및 상기 응답 시간의 예측 결과에 기초하여 상기 검색 요청을 처리하기 위한 연산 리소스를 제어하는 리소스 제어부를 포함하는 컴퓨터 장치를 제공한다.
본 발명의 실시예들에 따르면, 기계 학습 예측 모델을 통해 검색 요청에 대한 응답 시간을 정밀하게 예측함으로써 검색 시스템의 효율성과 안정성을 향상시킬 수 있다.
본 발명의 실시예들에 따르면, 기계 학습 예측 모델을 통해 검색 요청에 대한 응답 시간을 예측하여 슬로우 쿼리(slow query)로 예측되는 경우 검색 연산 부하를 조절하거나 시스템 가용성을 방어할 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따른 컴퓨터 장치의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 컴퓨터 장치가 수행할 수 있는 방법의 예를 도시한 순서도이다.
도 5는 본 발명의 일실시예에 있어서 기계 학습 예측 모델이 포함된 검색 시스템의 전체 구조를 도시한 것이다.
도 6은 본 발명의 일실시예에 있어서 색인어 DF 기반 선형 회귀 모델 구조를 도시한 예시 도면이다.
도 7 내지 도 8은 본 발명의 일실시예에 있어서 색인어 DF 기반 다중 회귀 모델 구조를 도시한 예시 도면이다.
도 9 내지 도 10은 본 발명의 일실시예에 있어서 색인어 DF 기반 다중 로지스틱 회귀 모델 구조를 도시한 예시 도면이다.
도 11 내지 도 12는 본 발명의 일실시예에 있어서 색인어 워드임베딩 기반 CNN 모델 구조를 도시한 예시 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명의 실시예들에 따른 검색 시스템 운영 장치는 적어도 하나의 컴퓨터 장치에 의해 구현될 수 있으며, 본 발명의 실시예들에 따른 검색 시스템 운영 방법은 검색 시스템 운영 장치에 포함되는 적어도 하나의 컴퓨터 장치를 통해 수행될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 검색 시스템 운영 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 검색 시스템 운영 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다. 또한, 도 1의 네트워크 환경은 본 실시예들에 적용 가능한 환경들 중 하나의 예를 설명하는 것일 뿐, 본 실시예들에 적용 가능한 환경이 도 1의 네트워크 환경으로 한정되는 것은 아니다.
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 내비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 도 1에서는 전자 기기(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 전자 기기(110)는 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 물리적인 컴퓨터 장치들 중 하나를 의미할 수 있다.
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 서비스(일례로, 검색 서비스, 컨텐츠 제공 서비스, 소셜 네트워크 서비스, 지도 서비스, 번역 서비스, 금융 서비스, 등)를 제공하는 시스템일 수 있다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 앞서 설명한 복수의 전자 기기들(110, 120, 130, 140) 각각이나 서버들(150, 160) 각각은 도 2를 통해 도시된 컴퓨터 장치(200)에 의해 구현될 수 있다.
이러한 컴퓨터 장치(200)는 도 2에 도시된 바와 같이, 메모리(210), 프로세서(220), 통신 인터페이스(230) 그리고 입출력 인터페이스(240)를 포함할 수 있다. 메모리(210)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(210)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(200)에 포함될 수도 있다. 또한, 메모리(210)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(210)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(210)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(230)를 통해 메모리(210)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(170)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(200)의 메모리(210)에 로딩될 수 있다.
프로세서(220)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(210) 또는 통신 인터페이스(230)에 의해 프로세서(220)로 제공될 수 있다. 예를 들어 프로세서(220)는 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 인터페이스(230)는 네트워크(170)를 통해 컴퓨터 장치(200)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(200)의 프로세서(220)가 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(230)의 제어에 따라 네트워크(170)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(170)를 거쳐 컴퓨터 장치(200)의 통신 인터페이스(230)를 통해 컴퓨터 장치(200)로 수신될 수 있다. 통신 인터페이스(230)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(220)나 메모리(210)로 전달될 수 있고, 파일 등은 컴퓨터 장치(200)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.
입출력 인터페이스(240)는 입출력 장치(250)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(240)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(250)는 컴퓨터 장치(200)와 하나의 장치로 구성될 수도 있다.
또한, 다른 실시예들에서 컴퓨터 장치(200)는 도 2의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(200)는 상술한 입출력 장치(250) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
이하에서는 기계 학습을 이용한 응답 시간 예측을 통해 검색 시스템을 운영하는 방법 및 시스템의 구체적인 실시예를 설명하기로 한다.
도 3은 본 발명의 일실시예에 따른 컴퓨터 장치의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 4는 본 발명의 일실시예에 따른 컴퓨터 장치가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
본 실시예에 따른 컴퓨터 장치(200)는 클라이언트를 대상으로 클라이언트 상에 설치된 전용 어플리케이션이나 컴퓨터 장치(200)와 관련된 웹/모바일 사이트 접속을 통해 검색 서비스를 제공할 수 있다. 컴퓨터 장치(200)에는 컴퓨터로 구현된 검색 시스템 운영 장치가 구성될 수 있다.
컴퓨터 장치(200)의 프로세서(220)는 도 4에 따른 검색 시스템 운영 방법을 수행하기 위한 구성요소로서 도 3에 도시된 바와 같이, 응답 예측부(310), 및 리소스 제어부(340)를 포함할 수 있다. 실시예에 따라 프로세서(220)의 구성요소들은 선택적으로 프로세서(220)에 포함되거나 제외될 수도 있다. 또한, 실시예에 따라 프로세서(220)의 구성요소들은 프로세서(220)의 기능의 표현을 위해 분리 또는 병합될 수도 있다.
이러한 프로세서(220) 및 프로세서(220)의 구성요소들은 도 3의 검색 시스템 운영 방법이 포함하는 단계들(S410 내지 S420)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다. 예를 들어, 프로세서(220) 및 프로세서(220)의 구성요소들은 메모리(210)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다.
여기서, 프로세서(220)의 구성요소들은 컴퓨터 장치(200)에 저장된 프로그램 코드가 제공하는 명령에 따라 프로세서(220)에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 컴퓨터 장치(200)가 검색 요청에 대한 응답 시간을 예측하도록 상술한 명령에 따라 컴퓨터 장치(200)를 제어하는 프로세서(220)의 기능적 표현으로서 응답 예측부(310)가 이용될 수 있다.
프로세서(220)는 컴퓨터 장치(200)의 제어와 관련된 명령이 로딩된 메모리(210)로부터 필요한 명령을 읽어들일 수 있다. 이 경우, 상기 읽어들인 명령은 프로세서(220)가 이후 설명될 단계들(S410 내지 S420)을 실행하도록 제어하기 위한 명령을 포함할 수 있다.
이후 설명될 단계들(S410 내지 S420)은 도 4에 도시된 순서와 다른 순서로 수행될 수 있으며, 단계들(S410 내지 S420) 중 일부가 생략되거나 추가의 과정이 더 포함될 수 있다.
도 4를 참조하면, 단계(S410)에서 응답 예측부(310)는 주어진 검색 요청에 대해 기계 학습 예측 모델을 이용하여 응답 시간을 예측할 수 있다. 응답 예측부(310)는 검색 시스템의 응용 계층(search application server)에서 검색 계층(search collection server)으로 검색을 수행할 때 응용 계층에서 검색 계층의 응답 시간을 예측할 수 있다.
사용자가 프론트엔드(front-end)에서 검색어를 입력하는 경우 백엔드(back-end)에서는 수만 대의 검색 서버가 복잡한 연산 과정을 거쳐 검색어에 대응되는 검색 결과를 제공하게 된다. 그러나, 검색 요청에 포함되는 검색어에 따라 색인어(term) DF(document frequency), 검색 방식(search method), 쿼리 분석 유형(query analyze type), 랭킹 피처 조합(ranking feature combination), 후처리 유형(post processing type) 등이 다르기 때문에 검색 요청을 처리하는 시간, 즉 응답 시간 또한 달라지게 된다. 검색 서버에서 검색되는 문서의 양이 많을수록, 검색 스펙(로직)이 복잡할수록, 문서 랭킹 연산이 많을수록 더 많은 시스템 리소스를 소모함에 따라 응답 시간이 길어지게 된다.
이러한 응답 시간이 기준치를 초과하는 슬로우 쿼리의 경우 사용자가 느끼는 서비스 품질(QoS)이 현저히 떨어지게 되고, 슬로우 쿼리가 순간적으로 대량 유입되는 경우 검색 시스템의 정지 상태(outage)를 유발할 수 있기 때문에, 슬로우 쿼리에 대한 방어 조치가 필요하다.
이를 위해, 응답 예측부(310)는 기계 학습 예측 모델을 이용하여 검색 요청의 응답 시간을 미리 예측할 수 있다. 컴퓨터 장치(200)는 응답 시간과 연관성을 가진 적어도 하나의 피처를 학습 데이터로 이용하여 응답 시간을 예측하는 기계 학습 예측 모델을 포함할 수 있으며, 응답 예측부(310)는 컴퓨터 장치(200) 상의 기계 학습 예측 모델을 통해 주어진 검색 요청의 응답 시간을 미리 예측할 수 있다. 일례로, 응답 예측부(310)는 색인어 DF를 학습 데이터로 하여 구축된 선형 회귀(linear regression) 모델을 이용하여 응답 시간을 예측할 수 있다. 다른 예로, 응답 예측부(310)는 색인어 DF와 함께 검색 방식, 쿼리 분석 유형, 랭킹 피처 조합, 후처리 유형 중 적어도 하나의 다른 피처를 학습 데이터로 하여 구축된 다중 회귀(multiple regression) 모델을 이용하여 응답 시간을 예측할 수 있다. 또 다른 예로, 응답 예측부(310)는 색인어 DF와 함께 검색 방식, 쿼리 분석 유형, 랭킹 피처 조합, 후처리 유형 중 적어도 하나의 다른 피처를 학습 데이터로 하여 구축된 다중 로지스틱 회귀(multiple logistic regression) 모델을 이용하여 응답 시간을 예측할 수 있다. 또 다른 예로, 응답 예측부(310)는 색인어 DF가 아닌, 색인어 자체의 워드임베딩(word embedding)을 학습 데이터로 하는 딥러닝 모델로서, 색인어 워드임베딩과 함께 검색 방식, 쿼리 분석 유형, 랭킹 피처 조합, 후처리 유형 중 적어도 하나의 다른 피처를 학습 데이터로 하여 구축된 CNN(convolutional neural network) 모델을 이용하여 응답 시간을 예측할 수 있다.
컴퓨터 장치(200)는 응답 시간 예측 모델로 구축된 복수 개의 기계 학습 예측 모델을 포함할 수 있으며, 응답 예측부(310)는 기계 학습 예측 모델 중에서 검색 요청에 대응되는 검색 유형에 따라 적절한 모델을 선택적으로 이용하여 응답 시간을 예측할 수 있다. 일례로, 응답 예측부(310)는 검색어가 단일 색인어로 이루어진 경우 색인어 DF를 기반으로 한 기계 학습 예측 모델을 통해 응답 시간을 예측하고, 검색어가 다중 색인어로 이루어진 경우 색인어 워드임베딩을 기반으로 한 기계 학습 예측 모델을 통해 응답 시간을 예측할 수 있다.
더 나아가, 응답 예측부(310)는 검색 요청에 대한 응답 시간을 예측하는 것은 물론이고, 검색 결과 유무를 예측할 수 있다. 응답 시간을 예측하는 기계 학습 예측 모델과 마찬가지로, 검색 결과 유무와 연관성을 가진 적어도 하나의 피처를 학습 데이터로 이용하여 검색 결과 유무를 예측하는 기계 학습 예측 모델을 구축할 수 있으며, 응답 예측부(310)는 컴퓨터 장치(200) 상에 구축된 기계 학습 예측 모델을 통해 주어진 검색 요청에 대한 검색 결과 유무를 미리 예측할 수 있다.
단계(S420)에서 리소스 제어부(320)는 응답 시간 예측 결과에 기초하여 검색 요청을 처리하기 위한 연산 리소스를 제어할 수 있다.
리소스 제어부(320)는 검색 시스템의 효율성을 향상시키기 위해 슬로우 쿼리로 예측되는 경우 검색 품질을 해치지 않는 선에서 검색 계층의 랭킹 연산 부하를 조절하여 경량화된 검색을 수행할 수 있다. 일례로, 리소스 제어부(320)는 응답 시간 예측 결과에 따라 슬로우 쿼리로 예측되는 경우, 한번에 랭킹 연산을 처리하는 방식이 아닌, 2단계로 나누어 랭킹 연산을 처리하는 2단계 랭킹(2-phase ranking) 연산 방식을 적용할 수 있다. 2단계 랭킹 연산 방식은 검색 랭킹 연산 비용, 즉 문서의 스코어 값을 계산하는 컴퓨팅 비용이 적게 드는 알고리즘을 통해 1차 정렬을 수행하여 검색 결과에 해당되는 문서의 후보군을 선별한 후 선별한 후보군에 대하여 정상적인 쿼리에 대한 검색 방식으로 합의된 알고리즘을 통해 2차 정렬(최종 검색 결과)을 수행하는 방법이다. 다른 예로, 리소스 제어부(320)는 응답 시간 예측 결과에 따라 슬로우 쿼리로 예측되는 경우, 검색 랭킹 연산에 참여하는 피처 중 일부를 제외시키는 랭킹 피처 손실(ranking feature dropout) 방식을 적용할 수 있다. 랭킹 피처 손실 방식은 문서의 스코어 값을 계산하는 랭킹 연산을 수행하는 과정에서 랭킹 연산에 참여하는 피처 중에서 중요도가 떨어지거나 컴퓨팅 리소스를 많이 차지하는 일부 피처를 제외시키는 방법이다. 또 다른 예로, 리소스 제어부(320)는 응답 시간 예측 결과에 따라 슬로우 쿼리로 예측되는 경우, 랭킹 연산을 위한 캐시 만료 시간(cache expire time)을 연장할 수 있다. 검색 서버에서는 캐시 만료 시간을 동적으로 설정할 수 있으며, 리소스 제어부(320)는 슬로우 쿼리로 예측되면 검색 서버에 설정된 캐시 만료 시간을 동적으로 조절할 수 있다.
리소스 제어부(320)는 검색 시스템의 안정성을 향상시키기 위한 방법으로 검색 계층의 가용성을 방어할 수 있다. 일례로, 리소스 제어부(320)는 트래픽 급증과 같은 유사시 상황에서 검색 시스템에 기준치 이상의 부하를 주는 슬로우 쿼리를 선택적으로 차단함(blocking)으로써 검색 시스템의 가용성을 보장할 수 있다. 다시 말해, 리소스 제어부(320)는 유사시에 검색 시스템의 응용 계층에서 검색 계층으로 전달되는 슬로우 쿼리 트래픽을 차단할 수 있다.
리소스 제어부(320)는 검색 요청에 대한 예측 결과로서 검색 결과 유무를 확인할 수 있으며, 검색 결과 유무에 기초하여 정상적인 쿼리의 검색 방식으로 합의된 알고리즘을 대신하여, 2단계 랭킹 연산 방식 또는 랭킹 피처 손실 방식을 이용한 경량화된 검색을 수행할 수 있다.
따라서, 본 실시예에서는 기계 학습 예측 모델을 이용하여 검색 요청의 응답 시간을 미리 예측하여 슬로우 쿼리로 예측되는 경우 검색 비용을 조절하여 타임아웃 가능성을 최소화할 수 있고, 유사시에는 슬로우 쿼리 트래픽을 선택적으로 차단하여 검색 시스템을 방어할 수 있다.
이하에서는 응답 시간과 검색 결과 유무를 예측하는 모델을 구체적으로 설명하기로 한다.
도 5는 본 발명의 일실시예에 있어서 기계 학습 예측 모델이 포함된 검색 시스템의 전체 구조를 도시한 것이다.
도 5를 참조하면, 검색 시스템(500)의 응용 계층인 SAS(search application server)(520)에서는 표준화된 입출력 인터페이스가 적용될 수 있다. 호출 서버(510)는 검색 요청을 처리하기 위해 SAS(520)를 호출하게 되는데, 이때 검색어, 검색 방식, 후처리 유형, 정렬 등과 같이 SAS(520)를 호출할 때 반드시 존재해야 하는 필수 파라미터와 선택적으로 존재하는 파라미터까지 수십 가지의 SAS 요청 파라미터가 존재한다.
검색 시스템(500)은 기계 학습 예측 모델을 구축하기 위한 딥러닝 분산 플랫폼(530)을 포함할 수 있다. 딥러닝 분산 플랫폼(530)은 SAS(520)의 로그를 활용하여 응답 시간을 예측하는 기계 학습 예측 모델을 구축할 수 있다.
딥러닝 분산 플랫폼(530)은 SAS(520)의 로그에서 SAS(520)를 호출한 URL과 해당 URL을 처리하는데 소요된 응답 시간을 추출할 수 있으며, 응답 시간과 연관성이 있는 검색 피처로서 적어도 하나의 SAS 요청 파라미터를 획득할 수 있다.
딥러닝 분산 플랫폼(530)은 SAS(520)의 로그 데이터를 학습 데이터 포맷으로 변경할 수 있다. 모델 구축을 위한 학습 데이터는 각 검색 피처의 성격과 설계할 모델에 적합한 형태로 가공한다. 데이터의 성격은 크게 수치형 데이터와 범주형 데이터로 구분될 수 있으며, 예를 들어 색인어 DF는 수치형 데이터에 해당되고, 검색 방식과 후처리 유형 파라미터는 범주형 데이터에 해당된다. 수치형 데이터의 경우 스케일링(scaling) 변환에 따른 정규화를 통해 데이터를 가공할 수 있고, 범주형 데이터의 경우 바이너리(binary) 포맷이나 원-핫 인코딩(one-hot encoding) 포맷으로 변환하는 작업을 통해 데이터를 가공할 수 있다. 딥러닝 분산 플랫폼(530)은 가공된 데이터의 산점도, 분포, 통계 등을 분석하여 노이즈 데이터를 제거함으로써 학습 데이터로 활용할 데이터를 선별할 수 있다.
딥러닝 분산 플랫폼(530)은 SAS(520)의 로그로부터 획득한 학습 데이터를 이용하여 기계 학습 예측 모델을 학습할 수 있으며, 학습된 모델을 서빙 플랫폼(540)을 이용하여 검색 시스템(500) 상에 응답 시간이나 검색 결과 유무를 예측하기 위한 모델로 등록함으로써 실시간 API를 기반으로 동적 인퍼런스가 가능한 환경을 만들 수 있다.
기계 학습 예측 모델이 구축된 이후, SAS(520)가 주어진 검색 요청에 대해 검색 엔진(550)을 호출하면, 검색 엔진(550)은 검색 요청에 해당되는 입력 문자열을 기계 학습 예측 모델의 입력 데이터 포맷으로 변환하여 서빙 플랫폼(540)으로 전달할 수 있다. 서빙 플랫폼(540)은 검색 엔진(550)으로부터 전달 받은 입력 데이터에 대해 기계 학습 예측 모델을 이용하여 해당 검색 요청의 응답 시간을 예측한 후 예측 결과를 검색 엔진(550)을 통해 SAS(520)로 반환할 수 있다.
SAS(520)는 응답 시간 예측 결과에 따라 슬로우 쿼리로 예측되는 경우 검색 환경을 최적화할 수 있는 로직의 경량화된 검색을 수행할 수 있다.
슬로우 쿼리로 예측되어 경량화된 검색을 수행한 검색 요청의 로그를 모델에 반영하게 되면 이후 동일한 검색 요청이 슬로우 쿼리로 예측되지 않는 피드백 루프 문제가 발생할 수 있다.
SAS(520)에서 검색 요청과 관련된 로그를 저장함에 있어 슬로우 쿼리로 예측된 검색 요청의 로그에 대해서는 정상적인 검색 요청과 구분되는 별도 플래깅(flagging)을 처리함으로써 피드백 루프 문제를 해결할 수 있다.
도 6은 색인어 DF를 기반으로 응답 시간을 예측하는 선형 회귀 모델(600)을 나타내고 있다.
색인어 DF는 색인에서 해당 색인어가 등장하는 문서의 수, 다시 말해 포스팅 목록의 길이를 의미한다. TF-IDF(Term Frequency - Inverse Document Frequency) 기반 정보 검색 모델에서 색인어 DF는 검색어에 여러 색인어가 있을 때 특정 색인어의 중요도를 가리는 척도가 된다. 쉽게 말해, DF가 높으면 해당 색인어가 여러 문서에 분포하므로 주제를 특정하기에 좋지 않고, 반대로 DF가 낮으면 구체적인 의미를 가지므로 주제를 특정하기에 좋은 색인어에 해당된다. 색인어 DF는 검색 요청을 처리하는 과정에서 생성되는 것이 아니라, 문서 컬렉션에서 검색 볼륨을 생성하는 시점에 만들어지는 값이므로 검색 시점에 상대적으로 저비용으로 구할 수 있는 값이다.
예를 들어, 도 6을 참조하면 응답 시간을 예측하는 기계 학습 예측 모델의 일례로 선형 회귀 모델(600)은 색인어 DF(611)를 나타내는 수치형 데이터를 입력 피처로 하고 응답 시간(620)을 출력 피처의 레이블로 하는 학습 모델 구조를 가진다.
선형 회귀 모델(600)은 하나의 입력 레이어(input layer)와 하나의 히든 레이어(hidden layer) 및 하나의 출력 레이어(output layer)로 이루어진 모델 구조로 구현될 수 있다.
도 7은 색인어 DF를 기반으로 응답 시간을 예측하는 다중 회귀 모델(700)을 나타내고 있다.
응답 시간 예측 정확도를 향상시키기 위해서는 색인어 DF와 함께, 검색 로그에서 취득 가능한 해시(hash)나 인덱스(index), 예를 들어 검색 방식, 쿼리 분석 유형, 랭킹 피처 조합, 후처리 유형 중 적어도 하나의 피처를 추가할 수 있다.
응답 시간을 예측하는 기계 학습 예측 모델의 일례로 적어도 하나의 히든 레이어로 구성된 다중 회귀 모델(700)을 적용할 수 있다. 예를 들어, 도 7을 참조하면, 다중 회귀 모델(700)은 색인어 DF(711), 검색 방식(712), 쿼리 분석 유형(713), 랭킹 피처 조합(714), 후처리 유형(715)을 입력 피처로 하고 응답 시간(720)을 출력 피처의 레이블로 하는 학습 모델 구조를 가진다.
검색 방식(712), 쿼리 분석 유형(713), 랭킹 피처 조합(714), 후처리 유형(715)은 각 파라미터의 유형이 n개인 경우 사이즈가 n인 희소 벡터(sparse vector)로 구성될 수 있다. 검색 방식(712)이나 후처리 유형(715)과 같은 범주형 데이터는 바이너리 또는 원-핫 인코딩으로 벡터화하고, 색인어 DF(711)는 정규화를 통해 하나의 수치 벡터로 표현할 수 있다.
도 8에 도시한 바와 같이, 다중 회귀 모델(700)은 복수 개의 입력 레이어와 하나의 히든 레이어 및 하나의 출력 레이어로 이루어진 모델 구조로, 응답 시간에 영향을 미치는 복수 개의 파라미터를 입력 피처로 하여 입력 피처 간의 인과 관계에 대한 확률을 출력 피처로 표현하는 모델로 구현될 수 있다.
도 9는 색인어 DF를 기반으로 응답 시간을 예측하는 다중 로지스틱 회귀 모델(900)을 나타내고 있다.
다중 클래스 분류 문제에 사용되는 로지스틱 회귀를 적용하여 응답 시간을 예측하기 위한 기계 학습 예측 모델, 즉 다중 로지스틱 회귀 모델(900)을 구축할 수 있다.
도 9를 참조하면, 다중 로지스틱 회귀 모델(900)은 도 7의 다중 회귀 모델(700)과 동일하고, 다만 입력 피처로 사용되는 색인어 DF(911)와 출력 피처로 사용되는 응답 시간(920) 또한 원-핫 인코딩으로 벡터화할 수 있다. 출력 레이블이 되는 응답 시간(920)은 0.1초 구간으로 나누어 총 101 사이즈를 가지는 벡터로 표현될 수 있다.
도 10에 도시한 바와 같이, 다중 로지스틱 회귀 모델(900)은 복수 개의 입력 레이어와 복수 개의 히든 레이어 및 복수 개의 출력 레이어로 이루어진 모델 구조로, 응답 시간에 영향을 주는 복수 개의 파라미터를 입력 피처로 하여 입력 피처 간의 인과 관계에 대한 101가지 확률을 출력 피처로 표현하는 모델로 구현될 수 있다.
색인어 DF를 기반으로 한 예측 모델(600, 700, 900)의 경우 다중 색인어로 이루어진 검색 요청 혹은 제한 검색 요청(필터링)에서는 응답 시간 예측 정확도가 떨어질 수 있다.
다중 색인어로 이루어진 검색 요청 혹은 제한 검색 요청(필터링)에 대한 응답 시간 예측 정확도를 향상시키기 위해서는 색인어 DF가 아닌 색인어 자체를 워드임베딩하여 모델에 적용할 수 있다.
도 11은 색인어 워드임베딩을 기반으로 응답 시간을 예측하는 CNN 모델(1100)을 나타내고 있다.
회귀 방식과 달리, SAS(520)의 로그를 문장 정보 형태로 표현하여 CNN 모델(1100)을 통해 응답 시간을 분류하는 다중 분류(multi classification) 방식을 적용할 수 있다.
워드임베딩을 기반으로 하는 CNN 모델(1100)은 각 레이어의 입출력 데이터의 형상을 유지할 수 있으며, 단어의 공간 정보를 유지하면서 인접 단어와의 특징을 효과적으로 인식할 수 있다. 또한, CNN 모델(1100)은 복수의 필터로 문장의 특징을 추출 및 학습할 수 있고, 추출된 문장의 특징을 강화시킬 수 있고 데이터의 크기를 줄이는 풀링 레이어(pooling layer)를 적용할 수 있다.
예를 들어, 도 11을 참조하면, CNN 모델(1100)은 색인어 워드임베딩(1111), 검색 방식(1112), 쿼리 분석 유형(1113), 랭킹 피처 조합(1114), 후처리 유형(1115)을 입력 피처로 하고 응답 시간(1120)을 출력 피처의 레이블로 하는 학습 모델 구조를 가진다.
검색 방식(1112), 쿼리 분석 유형(1113), 랭킹 피처 조합(1114), 후처리 유형(1115)은 각 파라미터의 유형이 n개인 경우 사이즈가 n인 희소 벡터(sparse vector)로 구성될 수 있다. 색인어 워드임베딩(1111)은 색인어 자체를 벡터로 표현하여 ID화한 것이고, 출력 레이블이 되는 응답 시간(1120)은 0.1초 구간으로 나누어 총 101 사이즈를 가지는 벡터로 표현될 수 있다.
CNN 모델(1100)은 검색 로그에서 취득 가능한 데이터를 벡터화하여 벡터화된 데이터에 대한 응답 시간을 예측하는 지도 학습 모델로서 구현될 수 있다.
도 12에 도시한 바와 같이, CNN 모델(1100)은 컨볼루션, 맥스풀링(maxpooling), 평탄화(flatten), FC(fully-connected)를 포함하는 모델 구조로, 응답 시간에 영향을 주는 복수 개의 파라미터를 입력 피처로 하여 입력 피처 간의 인과 관계에 대한 101가지 확률을 출력 피처로 표현하는 모델로 구현될 수 있다.
색인어 워드임베딩 기반 CNN 모델(1100)의 경우 검색 요청에 대한 응답 시간을 예측할 수 있으며, 다시 말해 컨볼루션과 맥스풀링을 반복 수행하여 문장의 특성을 추출하고 추출된 특성에 대해 FC 레이어를 거쳐 응답 시간 확률을 나타내는 101가지의 클래스를 구할 수 있다.
검색 결과 유무를 예측하는 기계 학습 예측 모델을 색인어 워드임베딩 기반 CNN 모델(1100)로 구축할 수 있으며, 프로세서(220)는 해당 CNN 모델(1100)을 이용하여 주어진 검색 요청에 대한 검색 결과 유무를 미리 예측하는 것 또한 가능하다. 검색 결과 유무를 예측하는 CNN 모델(1100)의 경우 검색 결과 유무를 나타내는 2가지의 클래스를 구할 수 있다.
이처럼 본 발명의 실시예들에 따르면, 기계 학습 예측 모델을 통해 검색 요청에 대한 응답 시간을 예측함으로써 보다 정확한 예측을 제공할 수 있으며, 특히 응답 시간 예측 결과에 따라 슬로우 쿼리로 예측되는 경우 검색 연산 부하를 조절하거나 시스템 가용성을 방어함으로써 검색 시스템의 효율성과 안정성을 향상시킬 수 있다. 그리고, 본 발명의 실시예들에 따르면, 색인어 DF와 함께 추가의 검색 파라미터를 학습 데이터로 이용하거나 색인어 DF가 아닌 색인어 자체의 워드임베딩을 학습 데이터로 이용하는 예측 모델을 적용함으로써 검색 요청의 응답 시간을 더욱 정밀하게 예측할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 컴퓨터 장치에서 실행되는 검색 시스템 운영 방법에 있어서,
    상기 컴퓨터 장치는 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,
    상기 검색 시스템 운영 방법은,
    상기 적어도 하나의 프로세서에 의해, 검색과 관련된 피처에 기반한 기계 학습 예측 모델을 이용하여 주어진 검색 요청에 대한 응답 시간을 예측하는 단계; 및
    상기 적어도 하나의 프로세서에 의해, 상기 응답 시간의 예측 결과에 기초하여 상기 검색 요청을 처리하기 위한 연산 리소스를 제어하는 단계
    를 포함하고,
    상기 컴퓨터 장치는 상기 기계 학습 예측 모델로 구축된 복수 개의 응답 시간 예측 모델을 포함하고,
    상기 예측하는 단계는,
    상기 검색 요청에 포함된 검색어의 유형에 따라 상기 복수 개의 응답 시간 예측 모델 중 어느 하나의 모델을 선택하여 선택된 모델을 통해 상기 응답 시간을 예측하고,
    상기 검색어의 유형은 단일 색인어로 이루어진 검색어와 다중 색인어로 이루어진 검색어를 포함하는 것
    을 특징으로 하는 검색 시스템 운영 방법.
  2. 제1항에 있어서,
    상기 제어하는 단계는,
    상기 응답 시간이 기준치를 초과하는 슬로우 쿼리(slow query)로 예측되는 경우 상기 검색 요청에 대한 랭킹 연산 부하를 조절하는 것
    을 특징으로 하는 검색 시스템 운영 방법.
  3. 제1항에 있어서,
    상기 제어하는 단계는,
    상기 응답 시간이 기준치를 초과하는 슬로우 쿼리로 예측되는 경우 상기 검색 요청에 대한 랭킹 연산을 두 단계로 나누어 처리하는 연산 방식을 적용하는 단계
    를 포함하는 검색 시스템 운영 방법.
  4. 제1항에 있어서,
    상기 제어하는 단계는,
    상기 응답 시간이 기준치를 초과하는 슬로우 쿼리로 예측되는 경우 상기 검색 요청에 대한 랭킹 연산에 참여하는 피처 중 일부를 제외시키는 랭킹 피처 손실(ranking feature dropout) 방식을 적용하는 단계
    를 포함하는 검색 시스템 운영 방법.
  5. 제1항에 있어서,
    상기 제어하는 단계는,
    상기 응답 시간이 기준치를 초과하는 슬로우 쿼리로 예측되는 경우 상기 검색 요청에 대한 랭킹 연산을 위한 캐시 만료 시간(cache expire time)을 연장하는 단계
    를 포함하는 검색 시스템 운영 방법.
  6. 제1항에 있어서,
    상기 제어하는 단계는,
    상기 응답 시간이 기준치를 초과하는 슬로우 쿼리로 예측되는 경우 상기 검색 요청에 따른 트래픽을 차단하는 단계
    를 포함하는 검색 시스템 운영 방법.
  7. 제1항에 있어서,
    상기 예측하는 단계는,
    상기 기계 학습 예측 모델을 이용하여 상기 검색 요청에 대한 검색 결과 유무를 예측하는 단계
    를 포함하고,
    상기 제어하는 단계는,
    상기 검색 결과 유무의 예측 결과에 기초하여 상기 검색 요청에 대한 랭킹 연산 부하를 조절하는 단계
    를 포함하는 검색 시스템 운영 방법.
  8. 삭제
  9. 제1항에 있어서,
    상기 예측하는 단계는,
    상기 검색 요청에 포함된 검색어가 상기 단일 색인어로 이루어진 경우 상기 복수 개의 응답 시간 예측 모델 중 색인어 DF(document frequency)에 기반한 기계 학습 예측 모델을 이용하여 상기 응답 시간을 예측하는 단계; 및
    상기 검색어가 상기 다중 색인어로 이루어진 경우 상기 복수 개의 응답 시간 예측 모델 중 색인어 워드임베딩(word embedding)에 기반한 기계 학습 예측 모델을 이용하여 상기 응답 시간을 예측하는 단계
    를 포함하는 검색 시스템 운영 방법.
  10. 제1항에 있어서,
    상기 기계 학습 예측 모델은 검색 로그에서 추출된 데이터로 응답 시간에 영향을 미치는 적어도 하나의 검색 파라미터를 학습 데이터로 이용한 모델로 구성되는 것
    을 특징으로 하는 검색 시스템 운영 방법.
  11. 제1항에 있어서,
    상기 기계 학습 예측 모델은 검색 로그에서 추출된 색인어의 워드임베딩을 학습 데이터로 이용한 딥러닝 모델로 구성되는 것
    을 특징으로 하는 검색 시스템 운영 방법.
  12. 제11항에 있어서,
    상기 기계 학습 예측 모델은 상기 색인어의 워드임베딩과 함께, 상기 검색 로그에서 추출 가능한 검색 방식(search method), 쿼리 분석 유형(query analyze type), 랭킹 피처 조합(ranking feature combination), 후처리 유형(post processing type) 중 적어도 하나의 파라미터를 상기 학습 데이터로 이용하는 것
    을 특징으로 하는 검색 시스템 운영 방법.
  13. 제11항에 있어서,
    상기 기계 학습 예측 모델은 검색 로그에서 추출된 색인어의 DF 값을 학습 데이터로 이용한 회귀 모델로 구성되는 것
    을 특징으로 하는 검색 시스템 운영 방법.
  14. 제13항에 있어서,
    상기 기계 학습 예측 모델은 선형 회귀(linear regression) 모델, 또는 다중 회귀(multiple regression) 모델, 또는 다중 로지스틱 회귀(multiple logistic regression) 모델로 구성되는 것
    을 특징으로 하는 검색 시스템 운영 방법.
  15. 제13항에 있어서,
    상기 기계 학습 예측 모델은 상기 색인어의 DF 값과 함께, 상기 검색 로그에서 추출 가능한 검색 방식, 쿼리 분석 유형, 랭킹 피처 조합, 후처리 유형 중 적어도 하나의 파라미터를 상기 학습 데이터로 이용하는 것
    을 특징으로 하는 검색 시스템 운영 방법.
  16. 제1항 내지 제7항, 제9항 내지 제15항 중 어느 한 항의 검색 시스템 운영 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독가능한 기록 매체에 저장되는 컴퓨터 프로그램.
  17. 컴퓨터 장치에 있어서,
    메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    검색과 관련된 피처에 기반한 기계 학습 예측 모델을 이용하여 주어진 검색 요청에 대한 응답 시간을 예측하는 응답 예측부; 및
    상기 응답 시간의 예측 결과에 기초하여 상기 검색 요청을 처리하기 위한 연산 리소스를 제어하는 리소스 제어부
    를 포함하고,
    상기 컴퓨터 장치는 상기 기계 학습 예측 모델로 구축된 복수 개의 응답 시간 예측 모델을 포함하고,
    상기 응답 예측부는,
    상기 검색 요청에 포함된 검색어의 유형에 따라 상기 복수 개의 응답 시간 예측 모델 중 어느 하나의 모델을 선택하여 선택된 모델을 통해 상기 응답 시간을 예측하고,
    상기 검색어의 유형은 단일 색인어로 이루어진 검색어와 다중 색인어로 이루어진 검색어를 포함하는 것
    을 특징으로 하는 컴퓨터 장치.
  18. 제17항에 있어서,
    상기 리소스 제어부는,
    상기 응답 시간이 기준치를 초과하는 슬로우 쿼리로 예측되는 경우 상기 검색 요청에 대한 랭킹 연산을 두 단계로 나누어 처리하는 연산 방식을 적용하는 것
    을 특징으로 하는 컴퓨터 장치.
  19. 제17항에 있어서,
    상기 리소스 제어부는,
    상기 응답 시간이 기준치를 초과하는 슬로우 쿼리로 예측되는 경우 상기 검색 요청에 대한 랭킹 연산에 참여하는 피처 중 일부를 제외시키는 방식을 적용하는 것
    을 특징으로 하는 컴퓨터 장치.
  20. 제17항에 있어서,
    상기 응답 예측부는,
    상기 검색 요청에 포함된 검색어가 상기 단일 색인어로 이루어진 경우 상기 복수 개의 응답 시간 예측 모델 중 색인어 DF에 기반한 기계 학습 예측 모델을 이용하여 상기 응답 시간을 예측하고,
    상기 검색어가 상기 다중 색인어로 이루어진 경우 상기 복수 개의 응답 시간 예측 모델 중 색인어 워드임베딩에 기반한 기계 학습 예측 모델을 이용하여 상기 응답 시간을 예측하는 것
    을 특징으로 하는 컴퓨터 장치.
KR1020200159511A 2020-11-25 2020-11-25 기계 학습을 이용한 응답 시간 예측을 통해 검색 시스템을 운영하는 방법 및 장치 KR102525918B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200159511A KR102525918B1 (ko) 2020-11-25 2020-11-25 기계 학습을 이용한 응답 시간 예측을 통해 검색 시스템을 운영하는 방법 및 장치
JP2021187675A JP7329028B2 (ja) 2020-11-25 2021-11-18 機械学習を利用した応答時間予測によって検索システムを運営する方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200159511A KR102525918B1 (ko) 2020-11-25 2020-11-25 기계 학습을 이용한 응답 시간 예측을 통해 검색 시스템을 운영하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20220072179A KR20220072179A (ko) 2022-06-02
KR102525918B1 true KR102525918B1 (ko) 2023-04-26

Family

ID=81855576

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200159511A KR102525918B1 (ko) 2020-11-25 2020-11-25 기계 학습을 이용한 응답 시간 예측을 통해 검색 시스템을 운영하는 방법 및 장치

Country Status (2)

Country Link
JP (1) JP7329028B2 (ko)
KR (1) KR102525918B1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013160721A1 (en) * 2012-04-26 2013-10-31 Amadeus S.A.S. Database system using batch-oriented computation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
M. Milicevic et al., Application of Machine Learning Algorithms for the Query Performance Prediction, Adv. Electr. Comput. Eng. Vol.15, pp33-44(2015)*
S. Uttarwar et al., Machine learning based review on Development and Classification of Question-Answering Systems, ICCMC 2019, pp359-366(2019)*

Also Published As

Publication number Publication date
JP7329028B2 (ja) 2023-08-17
JP2022083997A (ja) 2022-06-06
KR20220072179A (ko) 2022-06-02

Similar Documents

Publication Publication Date Title
CN111406267B (zh) 使用性能预测神经网络的神经架构搜索
US11080340B2 (en) Systems and methods for classifying electronic information using advanced active learning techniques
US20180018562A1 (en) Platform for providing task based on deep learning
WO2019118388A1 (en) Fast indexing with graphs and compact regression codes on online social networks
US11355123B2 (en) Network data aligning
US20170344822A1 (en) Semantic representation of the content of an image
US11360927B1 (en) Architecture for predicting network access probability of data files accessible over a computer network
KR20200046145A (ko) 예측 모델 훈련 관리 시스템, 예측 모델 훈련 관리 방법, 예측 모델 학습 관리를 위한 마스터 장치 및 슬레이브 장치
US10824694B1 (en) Distributable feature analysis in model training system
US20190228297A1 (en) Artificial Intelligence Modelling Engine
CN116057518A (zh) 使用机器学习模型的自动查询谓词选择性预测
Shan et al. Collaborative Intelligence: Accelerating Deep Neural Network Inference via Device‐Edge Synergy
KR20220073600A (ko) 최적 파라미터 결정 방법 및 시스템
KR20230152629A (ko) 재구성된 질의를 생성하기 위한 방법, 시스템, 및 컴퓨터 판독가능한 기록 매체
CN116484105B (zh) 业务处理方法、装置及计算机设备、存储介质、程序产品
US11783221B2 (en) Data exposure for transparency in artificial intelligence
KR102525918B1 (ko) 기계 학습을 이용한 응답 시간 예측을 통해 검색 시스템을 운영하는 방법 및 장치
CN116932906A (zh) 一种搜索词推送方法、装置、设备及存储介质
KR102511225B1 (ko) 인공지능 추론모델을 경량화하는 방법 및 시스템
US20230140828A1 (en) Machine Learning Methods And Systems For Cataloging And Making Recommendations Based On Domain-Specific Knowledge
US20220284319A1 (en) Intelligent guidance using machine learning for user navigation of multiple web pages
US11734602B2 (en) Methods and systems for automated feature generation utilizing formula semantification
CN117136366A (zh) 基于变换器的模型知识图链接预测
CN113868481A (zh) 组件获取方法、装置及电子设备和存储介质
US11042538B2 (en) Predicting queries using neural networks

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right