KR20200049696A - 클릭 그래프 상의 벡터 전파 모델에 기초한 지능형 고객 서비스 - Google Patents

클릭 그래프 상의 벡터 전파 모델에 기초한 지능형 고객 서비스 Download PDF

Info

Publication number
KR20200049696A
KR20200049696A KR1020197011610A KR20197011610A KR20200049696A KR 20200049696 A KR20200049696 A KR 20200049696A KR 1020197011610 A KR1020197011610 A KR 1020197011610A KR 20197011610 A KR20197011610 A KR 20197011610A KR 20200049696 A KR20200049696 A KR 20200049696A
Authority
KR
South Korea
Prior art keywords
user
query
candidate
vector representation
vpcg
Prior art date
Application number
KR1020197011610A
Other languages
English (en)
Other versions
KR102117796B1 (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 알리바바 그룹 홀딩 리미티드
Publication of KR20200049696A publication Critical patent/KR20200049696A/ko
Application granted granted Critical
Publication of KR102117796B1 publication Critical patent/KR102117796B1/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/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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • G06F16/337Profile generation, learning or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9536Search customisation based on social or collaborative filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/01Customer relationship services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/01Customer relationship services
    • G06Q30/015Providing customer assistance, e.g. assisting a customer within a business location or via helpdesk
    • G06Q30/016After-sales
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

사용자로부터 질의가 데이터 서비스 엔진에 수신된다. 질의는 문자열(string of characters)을 포함한다. 질의에 기초하여 데이터 서비스 엔진에 의해 복수의 후보 주제들(candidate topics)이 식별된다. 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG(Vector Propagation on a Click Graph: 클릭 그래프 상의 벡터 전파) 모델에 기초하여 질의와 복수의 후보 주제들 각각 사이에 유사성 점수가 산출된다. 유사성 점수에 기초하여 복수의 후보 주제들이 랭킹 매겨진다. 랭킹 매겨진 후보 주제들로부터 하나 이상의 주제가 선택된다. 선택된 주제가 사용자 인터페이스(UI)를 통하여 출력된다.

Description

클릭 그래프 상의 벡터 전파 모델에 기초한 지능형 고객 서비스
본 명세서는 전반적으로 자연어(natural language) 처리, 특히 지능형 고객 서비스에 있어서의 자연어 처리에 관한 것이다.
인공지능(AI)이 점점 인기를 더해감에 따라, 사람들은 로봇에 의한 글쓰기, 로봇에 의한 창작 또는 작곡, 및 자율주행 자동차와 같은 관련 제품 및 서비스를 점점 더 많이 기대하고 있다. 인공지능 분야의 대표적인 적용들 중 하나는 지능형 고객 서비스인데, 이는 사람들의 생활의 다양한 측면에 통합되고 있다. 지능형 고객 서비스는 사용자와 통신할 수 있으며, 고객 서비스 운영 비용을 절감할 수 있도록 제품 또는 서비스에 대한 사용자의 질문 또는 질의에 자동으로 응답할 수 있다.
자연어 처리 기술(natural language processing technology: NLP)은 기업체가 지능형 고객 서비스 로봇을 구축하는데 도움을 준다. NLP는 서비스 효율을 개선하고 노동 서비스 비용을 저감함으로써, 기업이 전통적인 콜센터로부터 지능형 고객 접촉 센터로의 성공적인 전환을 달성하는데 도움을 준다.
본 개시의 실시예는 전반적으로 지능형 고객 서비스에 있어서의 자연어 처리에 대한 것이다. 보다 구체적으로, 본 개시의 실시예는 클릭 그래프 상의 벡터 전파(Vector Propagation on a Click Graph: VPCG) 모델 기초의 지능형 고객 서비스에 대한 것이다.
포괄적인 실시예에서, 사용자로부터 데이터 서비스 엔진에 질의(query)가 수신된다. 이러한 질의는 문자열을 포함한다. 질의에 기초하여 데이터 서비스 엔진은 다수의 후보 주제들(candidate topics)을 식별한다. 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 해당 질의와 복수의 후보 주제들 각각 사이에 유사성 점수(similarity score)가 산출된다. 다수의 후보 주제들은 그 유사성 수치에 기초하여 랭킹이 정해진다. 랭킹이 매겨진 후보 주제들로부터 하나 이상의 주제가 선택된다. 선택된 주제들은 사용자 인터페이스(UI)를 통하여 출력된다.
본 개시에 기술된 발명의 특정 실시예는 이하의 이점들 중 하나 이상을 실현하도록 실시될 수 있다. 예를 들면, 기술된 발명은 고객의 요구사항 또는 의도에 대해 보다 더 연관성이 있으면서 정확한 예측을 제공하고 고객의 질문을 해결할 수 있음으로 인해, 사용자 경험과 사용자 만족도를 향상시키는데 도움을 준다.
본 개시에 따른 방법은 본 명세서에 기술된 특징 및 양태의 임의의 조합을 포함할 수 있음을 알 수 있다. 즉, 본 개시에 따른 방법은 본 명세서에 구체적으로 기술된 특징 및 양태의 조합에 국한되는 것이 아니라. 제공되는 특징 및 양태의 임의의 조합도 또한 포함할 수 있다.
본 개시의 하나 이상의 실시예의 구체사항은 첨부된 도면 및 이하의 발명의 설명에 명시되어 있다. 본 개시의 다른 특징 및 이점은 발명의 설명과 도면, 및 특허청구범위로부터 명확해질 것이다.
도 1은 본 개시의 일 실시예에 따른, VPCG(클릭 그래프 상의 벡터 전파) 모델 기초의 지능형 고객 서비스를 제공하는 일례의 환경을 보여주는 블록도.
도 2는 본 개시의 일 실시예에 따른, 사용자 클릭 데이터에 기초하여 VPCG 모델을 트레이닝하는 일례의 프로세스를 예시하는 블록도
도 3은 본 개시의 일 실시예에 따른, 트레이닝된 VPCG 모델을 사용하여 사용자 질의(q)와 후보 지식 포인트 주제(d)의 점수를 계산하는 일례의 프로세스를 예시하는 순서도.
도 4는 본 개시의 일 실시예에 따른, VPCG 모델 기초의 지능형 고객 서비스를 제공하는 일례의 시스템을 예시하는 블록도.
도 5는 본 개시의 일 실시예에 따른, VPCG 모델 기초의 지능형 고객 서비스를 제공하는 일례의 프로세스를 예시하는 순서도.
도 6은 본 개시의 일 실시예에 따른, VPCG 모델 기초의 지능형 고객 서비스와 DSSM(Deep-Semantic-Similarity-Model: 딥 시멘틱 유사성 모델) 사이의 성능 비교를 예시하는 그래프.
도 7은 본 개시의 일 실시예에 따른, 예시적인 개시에 기술된 알고리즘, 방법, 기능, 프로세스, 플로우, 및 절차와 연관된 전산 기능을 제공하는데 사용되는 일례의 컴퓨터 시스템을 예시하는 블록도.
여러 도면에 있어서 유사한 참조번호 및 명칭은 유사한 요소를 나타낸다.
이하의 상세한 설명은 VPCG(Vector Propagation On a Click Graph: 클릭 그래프 상의 벡터 전파) 모델 기초의 지능형 고객 서비스를 기술하며, 본 기술분야의 통상의 기술자가 하나 이상의 구체적인 실시예의 맥락에서 개시된 발명을 구현하고 이용할 수 있도록 제공되어 있다. 개시된 실시예의 다양한 수정, 변경, 및 치환이 이루어질 수 있고 이는 본 기술분야의 통상의 기술자에게는 자명할 것이며, 명시된 일반 원리들은 본 개시의 범위를 벗어남이 없이 다른 실시예 및 응용에도 적용될 수 있다. 몇몇 예시에서는, 개시된 발명을 이해하는데 불필요한 세부사항은 이러한 불필요한 세부사항에 의해서 하나 이상의 기술된 실시예가 모호해지지 않도록 하기 위해서 및 이러한 세부사항이 본 기술분야의 통상의 기술자의 기술의 범위 내에 있는 한 생략될 수 있다. 본 개시는 기술되거나 예시된 실시예에 국한하기 위한 것이 아니라, 기술된 원리 및 특징에 부합하는 가장 넓은 범위를 따르게 된다.
지능형 고객 서비스 시스템은 컴퓨터 구현 기법에 의해 고객(또는 사용자)과 상호 작용하여 자동 고객 서비스를 제공할 수 있다. 일례의 지능형 고객 서비스 시스템은 예를 들면, 고객 서비스 로봇 또는 Q&A(question and answer: 질의 및 응답) 시스템으로 구현될 수 있다.
기존의 기술은 전형적으로 먼저 입력 질문을 분석하고 그 질문이 무엇인지 이해하려고 하며, 그리고 나서 그 질문에 답하기 위해 어떤 방법을 사용할 지에 대한 사전 분석을 행한다. 소정의 사전 검색이 이어서 이루어질 수 있으며, 대안적인 답변이 생성될 수 있다. 생성된 모든 답변은 점수가 매겨진다. 최고 점수가 부여된 답변이 가장 유용한 것으로 간주되어 고객에게 회신될 수 있다. 어떤 Q&A 시스템은 사용자가 표현한 언어에만 의존하는 알고리즘을 사용하여 사용자 질문에 기초한 질문의 범주 또는 관련 지식 분야를 결정한다. 이들 시스템은 사용자의 의도에 대한 이해 또는 추측의 결핍으로 인해 만족스럽지 않은 범주화 결과를 초래한다. 예를 들면, 지능형 고객 서비스를 사용할 때, 사용자들은 고객 서비스 로봇과의 상호 작용시에 구어체와 단순화된 언어를 사용할 가능성이 더 높다. 고객이 묻는 질문의 50% 이상이 10개 이하의 단어를 포함하는데, 고객이 먼저 질문을 시도한 경우에 있어서는 더욱 그러하다. 고객의 문제를 해결하기 위해 사용자의 문자 그대로의 표현 및 전통적인 자연어 처리(NLP) 기법에만 의존하는 것은 난점이 있으며 한계가 있다. 전자 상거래(e-commerce)를 이용하는 고객의 수가 증가함에 따라, 고객이 묻는 질문의 수 및 이들 질문의 복잡도가 따라서 증가함으로써, 사용자의 요구사항을 충족시키는 지능형 고객 서비스를 제공하는데 추가적인 어려움이 발생한다.
본 개시의 실시예는 사용자의 질의에 응답하기 위해 사용자의 요구사항 또는 의도의 보다 정확한 예측 또는 결정을 제공할 수 있도록 VPCG 모델 기초의 지능형 고객 서비스를 도입한다. 여기에 기술된 실시예는 클릭 데이터에 기초하여 트레이닝된 VPCG 모델을 예를 들면, 고객의 질문 및 대응 답변의 점수를 계산하는 점수산정 프로세스(scoring process)에 적용한다. 개시된 실시예는 고객 서비스의 향상을 달성하기 위해 Q&A 엔진에 통합될 수도 있다.
몇몇 실시예에서는, 고객 서비스 Q&A 상호작용 시나리오에서, 고객의 질문에 대한 답변에 확신이 없을 때, 지능형 고객 서비스 시스템은 고객에게 다수(예를 들면, 3개)의 답변을 제공하여 그 고객이 자신의 질문에 가장 연관성이 있는 답변을 선택하도록 할 수 있다. 본 시스템은 그래서 상이한 사용자에 의해 제기된 다수의 상이한 질문 및 그들 각각의 클릭 또는 답변의 선택을 수집할 수 있다. 이러한 질문 및 선택된 답변의 수집체는 사용자 클릭 데이터를 구성한다. 개시된 기법은 이러한 데이터를 사용자의 의도를 파악하고 사용자가 원하는 정확한 주제 또는 내용에 매치시키는데 활용한다.
몇몇 실시예에서, 걔시된 시스템은 사용자 클릭 데이터를 모델화하기 위해 이분 그래프(bipartie graph)를 사용한다. 그에 따라 만들어진 이분 그래프는 클릭 그래프라 지칭될 수 있다. 사용자 질의와 후보 주제들(candicate topics)의 벡터 표현을 얻기 위해 벡터 전파(vector propagation)가 이 클릭 그래프에 적용될 수 있다. 주제들은 예컨대, 사용자의 질의에 나타난 주제 또는 다루어진 주제를 포함할 수 있다. 예를 들면, 주제들은 사용자의 질의에 있는 내용 또는 지식 포인트에 기초한 제목, 범주, 분류, 또는 다른 주제를 포함할 수 있다. 일례로서, 사용자 질의(q)는 "how to withdraw funds?(자금을 어떻게 인출할 것인가?)"일 수 있고, 그 주제는 "cash out(현금 인출)", "redemption(상환)", "bond(채권)" 및 다른 내용을 포함할 수 있다.
사용자 클릭 데이터에 기초하여, VPCG 모델은 사용자의 질의 및 어휘(vocabulary) 내의 단어 요소를 사용하여 주제 각각의 벡터 표현을 포함하도록 제작될 수 있다. 몇몇 실시예에서, VPCG 모델의 적용을 확대하기 위해, 어휘 내의 요소를 사용하는 각 ngram(엔그램; ngram 사전이라고도 함)의 벡터 표현을 얻기 위해 ngram의 집합이 사용자 클릭 데이터에 기초하여 또한 트레이닝될 수 있다. 전산 언어학 분야에서, ngram은 주어진 텍스트 또는 스피치(speech) 샘플로부터의 연속적인 시퀀스의 n개의 항목일 수 있다. 이들 항목은 적용에 따라, 음소(phoneme), 음절, 문자, 단어, 또는 기본 쌍(base pair)일 수 있다.
사용자로부터 새로운 질의를 수신하면, 본 개시된 시스템은 예를 들어, 그 얻어진 사용자 질의의 벡터 표현 또는 ngram의 벡터 표현에 기초한 VPCG 모델을 사용하여 새로운 질의의 벡터 표현을 예측할 수 있다. 새로운 질의의 벡터 표현에 기초하여 각 후보 주제의 벡터 표현에 대해 점수가 계산될 수 있다. 계산된 점수는 사용자의 질의에 대응하여 회신된 주제들 사이에서 더 우수한 매칭을 제공하는데 일조할 수 있도록 검색 및 랭킹 엔진(search and ranking engine)에 통합될 수 있다. 그 결과, 지능형 고객 서비스 시스템은 사용자의 요구사항과 의도에 대한 더 우수한 이해를 보여줌으로써 향상된 사용자 경험을 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따른, VPCG 모델 기초의 지능형 고객 서비스를 제공하는 일례의 환경(100)을 예시하는 블록도이다. 이 지능형 고객 서비스는 예를 들면, 고객에게 그들의 질문에 대한 답변을 제공하는 데이터 서비스 엔진에 의해 제공될 수 있다. 일례의 환경(100)은 사용자(102), 컴퓨터(104), 네트워크(106), 및 백엔드 시스템(108)을 포함한다. 일례의 환경(100)은 추가적인 사용자, 컴퓨터, 네트워크, 시스템, 또는 다른 컴포넌트를 포함할 수 있다. 일례의 환경(100)은 몇몇 실시예에서는 다른 방식으로 구성될 수도 있다.
몇몇 실시예에서, 네트워크(106)는 LAN(local area network), WAN(wide area network), 인터넷, 또는 이들 또는 다른 네트워크의 조합을 포함한다. 네트워크(106)는 하나 이상의 무선 네트워크 또는 유선 네트워크를 포함할 수 있다. 네트워크(106)는 컴퓨팅 장치(예를 들면, 컴퓨터(104))와 백엔드 시스템(예를 들면, 백엔드 시스템(108))을 연결한다. 몇몇 실시예에서, 네트워크(106)는 유선 및/또는 무선 통신 링크를 통하여 액세스될 수 있다.
도시된 예에서, 백엔드 시스템(108)은 적어도 하나의 서버 시스템(110)과 데이터 저장소(112)를 포함한다. 몇몇 실시예에서, 백엔드 시스템(110)은 컴퓨터(104)와 상호 작용하는 하나 이상의 컴퓨터 구현 데이터 서비스에 대한 액세스를 제공한다. 컴퓨터 구현 데이터 서비스는 예를 들면, 적어도 하나의 서버 시스템(110)과 데이터 저장소(112)에 호스팅될 수 있다. 컴퓨터 구현 데이터 서비스는 예를 들어, 사용자의 질문과 수집된 클릭 데이터에 기초하여 사용자에게 답변을 제공하기 위해 컴퓨터(104)에 의해 사용될 수 있는 Q&A 데이터 서비스를 포함할 수 있다. 예컨대, 전자 상거래 금융 서비스의 일부로서, 서버 시스템(110)은 소액 대출 서비스를 받는 것에 관한 사용자((102)의 질문에 대응하는 하나 이상의 답변을 생성할 수 있다.
몇몇 실시예에서, 컴퓨터(104)는 대응하는 답변을 얻기 위해 사용자(102)의 질문을 서버 시스템(110)에 전송한다. 서버 시스템(110)은 수신된 질문을 분석하고는 질문의 내용을 데이터 저장소(102)에 저장된 하나 이상의 주제와 매치시킨다. 서버 시스템(110)은 예를 들어, 실시간으로 매치되는 주제를 동적으로 검색함으로써, 일례의 환경(100)에서 VPCG 모델 기초의 지능형 고객 서비스를 제공할 수 있다.
몇몇 실시예에서, 백엔드 시스템(108)은 네트워크(106)를 통하여 액세스될 때 단일 풀(pool)의 심리스 리소스(seamless resource)로 동작하도록 클러스트화된 컴퓨터 및 컴포넌트를 채용하는 컴퓨터 시스템을 포함한다. 예를 들어, 이러한 실시예는 데이터 센터, 클라우드 컴퓨팅(cloud computing), SAN(storage area network), 및 NAS(network attached storage) 적용에 이용될 수 있다. 몇몇 실시예에서는, 백엔드 시스템(108)이 전개되어 버추얼 머신(virtual machine)을 통하여 컴퓨터 구현 서비스를 제공한다.
도 2는 본 개시의 일 실시예에 따른, 사용자 클릭 데이터에 기초하여 트레이닝된 일례의 VPCG 모델(200)을 예시하는 블록도이다. 도 2에 예시된 바와 같이, VPCG 모델(200)은 각각 사용자 질의 q1과 q2를 나타내는 노드 202a와 202b(총칭적으로, 질의 노드 202라 한다)의 집합 및 각각 주제 d1, d2, 및 d3를 나타내는 다른 노드 204a, 204b, 및 204c(총칭적으로, 주제 노드 204라 한다)의 집합을 갖는 클릭 그래프를 포함한다. 주제 d는 예를 들면, 지식 포인트 또는 맥락 기초의 주제를 나타내는 하나 이상의 단어, 구, 또는 단어 요소의 다른 집합체들일 수 있다. 예컨대, 주제 d1, d2, 및 d3는 각각 "cash out(현금 인출)", "redemption(상환)", 및 "bond(채권)"일 수 있다.
에지 206a, 206b, 206c, 206d, 또는 206e와 같은, 질의 노드 202와 주제 노드 204 사이의 각 에지는 사용자의 특정 질의에 대응하는 특정 주제(또는 내용)의 사용자 클릭(또는 선택)의 횟수를 나타내는 가중치 또는 수치를 갖는다. 상이한 사용자가 동일한 질문을 클릭하는 동작이 상이할 수 있기 때문에, 서로 다른 에지에 대한 가중치는 다를 수 있다.
도 2에 예시된 일례의 실시예에는, 사용자 질의 q1(202a)과 주제 d1(204a), d2(204b), 및 d3(204c)를 연결하는 3개의 에지 206a, 206b, 및 206c가 있다. 에지 206a는 가중치 4를 가지며, 에지 206b는 가중치 2를 갖고, 에지 206c는 가중치 1을 갖는다. 이는 동일한 질의 q1을 질문 받아서 후보 주제 d1, d2, 및 d3가 제시될 때, 4명의 사용자가 주제 d1(204a)을 클릭하고, 2명의 사용자가 주제 d2(204b)를 클릭하며, 1명의 사용자가 주제 d3(204c)를 클릭함을 나타낸다. 즉, 동일한 질의 q1에 대해, 4명의 사용자가 자신들의 질문에 주제 d1(204a)이 가장 연관성이 있다고 판단하고, 2명의 사용자가 자신들의 질문에 주제 d2(204b)가 가장 연관성이 있다고 판단하며, 1명의 사용자가 자신의 질문에 주제 d3(204c)가 가장 연관성이 있다고 판단함을 나타낸다.
상기 예에서, q1은 사용자로부터의 질의 "how to withdraw funds?(자금을 어떻게 인출할 것인가?)"를 나타내고, 후보 주제 d1, d2, 및 d3는 각각 "cash out(현금 인출)", "redemption(상환)", 및 "bond(채권)"일 수 있으며, 에지 206a, 206b, 및 206c에 대한 가중치는 각각 4, 2, 및 1이다. 이는 한 집단의 고객이 동일한 질문 "how to withdraw funds?"라고 물었을 때, 시스템은 3가지의 후보 지식 포인트 주제 "cash out", "depemption", 및 "bond"를 제시하여 고객들로 하여금 그들의 질문에 가장 연관성이 있는 것을 선택하도록 하였음을 나타낸다. 해당 집단의 고객들 중에서, 4명의 고객은 지식 포인트 주제 "cash out"을 선택하였고, 2명의 고객은 "redemption"을 선택하였으며, 1명의 고객은 "bond"를 선택하였다.
몇몇 실시예에서, 사용자 질의 q와 주제 d 각각은 어휘 내의 단어 요소의 벡터로 표현될 수 있다. 어휘는 더 긴 문자열(예를 들면, 질의, 주제, 또는 ngram)의 벡터 표현에 대한 기저(basis)를 형성하는 문자, 단어, 구, 또는 다른 항목의 사전을 포함할 수 있다. 몇몇 실시예에서, 각각의 사용자 질의 q의 벡터 표현은 원-핫 포맷(one-hot format) 또는 다른 방식으로 어휘 내의 단어 요소에 기초하여 초기화될 수 있다. 사용자 질의 qi를 예로 들어보자. 질의 qi가 세그먼트들로 분할되고 각 세그먼트에서 연관성이 없고 무의미한 문자들이 제거되고 난 후에, 질의 qi는 벡터 q1: w1,w2,w4,w6,wk∈W(k=1, 2, ..., v)로 표현될 수 있는데, 여기서 W는 어휘, 단어 요소의 집합이고, 이 집합 W의 사이즈 또는 차원은 v이다. 몇몇 실시예에서, 질의 qi는 희소 표현(sparse representation) qi: (w1:1, w2:1,w4:1, w6:1)를 가질 수 있다.
몇몇 실시예에서, 사용자 클릭 데이터에 각 사용자 질의 q1, q2, ..., qn의 벡터 표현이 생성되고 난 후에, 유사한 방식으로 클릭 이분 그래프에 기초하여 사용자 클릭 데이터에 각 주제 d의 벡터 표현이 또한 생성될 수 있다. 예를 들면, 주제 di는 동일 어휘 내의 단어 요소들에 기초한 단어 요소들의 벡터로 표현될 수 있다. 일례로서, 주제 di는 희소 표현 di: (wi:1, wj:1)를 가질 수 있으며, wi,wj∈W 이다.
몇몇 실시예에서, 각 사용자 질의 q와 주제 d의 벡터 표현은 반복 방식(iterative manner)으로 얻어질 수 있다. 예를 들면, 주제 d에 대해 생성된 벡터 표현은 사용자 질의 q의 벡터 표현을 업데이트하기 위해 역전파되며(reversely propagated), 이로서 하나의 반복(iteration)이 완료된다. 아래의 수학식 1 및 수학식 2는 n회차 반복에서의 사용자 질의 q와 주제 d의 벡터 표현의 예를 보여준다:
Figure pct00001
[수학식 1]
Figure pct00002
[수학식 2]
여기서 dj (n)과 qi (n)은 n회차 반복 후의 주제 dj와 사용자 질의 qi의 벡터 표현이다. 1회차이면, qi 0은 qi의 벡터 표현의 초기값을 나타낸다. Ci,j는 도 2의 이분 그래프(200)와 관련하여 설명된 바와 같이 사용자 클릭 데이터를 기초로 얻어진 qi와 dj 사이의 에지의 가중치를 나타낸다. 예를 들면, Ci,j는 사용자 클릭 데이터에서 사용자 질의 qi에 대한 주제 dj의 사용자 클릭 또는 선택의 총 횟수를 나타낸다. qi와 dj를 연결하는 에지가 없으면, 그 값은 0이다. Q는 사용자 클릭 데이터의 사용자 질의의 총 개수를 나타내는데, 즉 qi, i=1,2, ..., Q이다. D는 사용자 클릭 데이터의 주제(예를 들면, 지식 포인트 제목 벡터)의 총 개수를 나타내는데, 즉 dj, j=1,2, ..., D이다.
총 반복 횟수는 예를 들면, 사전 설정된다. 예를 들어, 반복 알고리즘은 n=5일 때 종료될 수 있는데, 즉 5회 반복될 수 있다. 반복 프로세스가 종료된 후에, 사용자 클릭 데이터에 각 사용자 질의 q와 주제 d의 벡터 표현들이 생성될 수 있다.
전형적으로, 상이한 사용자들로부터의 질의들은 다르다. 사용자 클릭 데이터의 사용자 질의들은 사용자가 질문할 수 있는 모든 가능한 질문들을 포함하지 않을 수 있다. 일반화하기 위해, 몇몇 실시예에서, 하나의 ngram 집합에 기초하여 새로운 사용자 질의가 표현될 수 있도록 해당 ngram 집합이 사용자 클릭 데이터의 사용자 질의에 기초하여 트레이닝될 수 있다. 예를 들면, 새로운 사용자 질의 q는 하나 이상의 ngram의 시퀀스, 가중합(weighted sum), 또는 다른 조합으로 표현될 수 있다. 도 2에 예시된 바와 같이, 노드 214a, 214b, 214c, 및 214d는 ngram1, ngram2, ngram3, 및 ngram4를 각각 나타낸다. ngram은 예를 들면, 고객의 질문에 자주 등장하는 완성된 단어 또는 구(phrase)일 수 있다. 일례로서, "how to withdraw funds"라는 질의는 2개의 ngram "how to"와 "withdraw fund"로 세그먼트화될 수 있다.
사용자 질의 q를 ngram 표현으로 변환하기 위해, ngram의 집합 G(즉, ngram 사전)이 획득될 수 있다. 이 집합 G는 사용자 질의 q의 표현을 위해 사용되는 후보 ngram의 전체 집합일 수 있다. 몇몇 실시예에서, ngram 각각은 최대 3개의 순서(order)를 갖는다. ngram은 그 발생 빈도수에 따라 정렬될 수 있다. 몇몇 실시예에서, 집합 G는 가장 높은 발생 빈도수를 갖는 다수의 ngram을 포함할 수 있다. 예컨대, 집합 G는 가장 흔히 발생하는 ngram g를 포함할 수 있다. 이 경우에, 집합 G의 크기는 g, 즉 |G|=g이다.
몇몇 실시예에서, 사용자 질의 q는 예를 들면, 포워드 최대 일치 알고리즘(forward maximum match algorithm) 또는 다른 알고리즘에 따라 집합 G 내의 ngram을 사용하여 표현될 수 있다. 몇몇 실시예에서, 사용자 질의 q는 ngram 집합 G 내의 ngram을 사용하여 표현될 수 있다. 도 2는 ngram1(214a), ngram2(214b), gram3(214c), 및 ngram4(214d)를 포함하는 ngram 집합 G를 보여준다. ngram 집합 G는 추가적인 ngram 또는 다른 ngram들을 포함할 수 있다. 예시된 바와 같이, q1은 ngram1, ngram2, 및 gram3를 사용하여 표현될 수 있고, q2는 ngram3와 gram4를 사용하여 표현될 수 있다.
전술한 반복 방법을 사용하여, q의 벡터 표현은 ngram으로 역전파될 수 있으며, 그 결과 사용자 질의 qi, i=1,2,...,N에 대해 ngram의 벡터 표현이 생성된다. 각각의 사용자 질의 q에 대한 벡터 표현은 예를 들면, 수학식 1 및 수학식 2와 관련하여 설명된 예시의 방법에 기초하여 복수 회의 반복 후에 생성되기 때문에, 사용자 질의 q의 벡터 표현은 완전하면서 충분한 것으로 간주될 수 있다. 몇몇 실시예에서는, 사용자 질의 qi, i=1,2,...,N를 사용하여 ngram의 벡터 표현을 생성하기 위해서는 단지 역전파만이 필요하다. 예를 들면, 도 2에 도시된 바와 같이, ngram3(214c)는 사용자 질의 q1(202a)과 사용자 질의 q2(202b)를 사용하여 표현될 수 있다.
몇몇 실시예에서, 사용자 질의는 각각 가중치를 갖는 집합 G 내의 ngram들로 표현될 수 있다. ngram에 대응하는 가중치는 예를 들면, 이 ngram을 사용한 후의 q의 벡터 표현이 어휘 W 내의 단어 요소들을 사용하는 q의 벡터 표현에 최대한 근사하도록 계산될 수 있다. 몇몇 실시예에서, ngram에 대응하는 가중치는 예를 들면, 아래의 수학식 3에 따라 이들 두 값 사이의 오류를 최소화하도록 계산될 수 있다:
Figure pct00003
[수학식 3]
여기서, uj는 (어휘 W 내의 단어 요소에 의한) ngram의 벡터 표현을 나타내고, j=1, ..., g이며, wj는 uj에 대응하는 가중치이고, qi는 반복 후의 질의의 벡터 표현을 나타내며, Gqi는 질의 qi 내의 ngram 집합을 나타낸다. 몇몇 실시예에서, 상기 수학식의 ngram 가중치 wj∈W는 예를 들어, 경사하강법(gradient descent method) 또는 다른 방법을 사용하여 반복적으로 계산될 수 있다. 도 2에 도시된 바와 같이, q1은 각각 가중치 w1, w2, 및 w3를 갖는 ngram1, ngram2, 및 gram3를 사용하여 표현될 수 있고, q2는 각각 가중치 w3과 w4를 갖는 ngram3와 gram4를 사용하여 표현될 수 있다.
도 3은 본 개시의 일 실시예에 따른, 트레이닝된 VPCG 모델을 사용하여 사용자 질의 q와 후보 지식 포인트 주제 d의 점수를 산출하는 일례의 프로세스 또는 방법(300)을 예시하는 순서도이다. 몇몇 실시예에서, 본 방법(300)의 다양한 단계들은 병렬로, 조합식으로, 루프 형태로, 또는 임의의 순서로 실행될 수 있다. 명료하게 제시하기 위해, 하기의 설명은 전반적으로 본 설명 내의 다른 특징들의 맥락에서 본 방법(300)을 기술한다. 하지만, 본 방법(300)은 예를 들면, 임의의 적절한 시스템, 환경, 소프트웨어, 및 하드웨어, 또는 적절히 시스템, 환경, 소프트웨어, 및 하드웨어의 조합으로도 수행될 수 있음을 이해할 것이다. 예를 들면, 본 방법(300)은 하나 이상의 프로세서를 포함하거나 이에 의해 구현될 수 있는 스코어 엔진(score engine) 또는 다른 데이터 처리 장치에 의해 수행될 수 있다.
단계 302에서, 사용자의 질의(query)와 다수의 후보 주제(candidate topics)가 수신된다. 사용자 질의는 Q&A 시스템 또는 다른 지능형 고객 서비스 플랫폼으로부터 수신된 새로운 사용자 질의일 수 있다. 후보 주제의 개수는 예를 들면, 사용자 질의 매칭에 사용되는 후보 주제의 전체 집합, (예를 들면, 대략적이거나 또는 예비 선택에 기초한) 사전 선택된 후보 주제의 집합, 또는 다른 사전 설정된 후보 주제의 개수일 수 있다. 몇몇 실시예에서, 후보 주제의 개수는 사용자 클릭 데이터에 기초한 주제들의 트레이닝된 벡터 표현을 포함하는 트레닝된 VPCG 모델로부터 얻어질 수 있다. 단계 302 후에, 본 프로세스(300)는 단계 304로 진행한다.
단계 304에서, 사용자의 질의는 전처리된다(pre-processed). 예를 들어, 질의는 세그먼트들로 분할되어서는, 각 세그먼트로부터 연관성이 없으면서 무의미한 단어는 제거된다. 단계 304 후에. 프로세스(300)는 단계 306으로 진행한다.
단계 306에서, 사용자의 질의가 사용자 클릭 데이터에 의해 트레이닝되어 VPCG 모델에 저장된 트레이닝된 사용자 질의와 매치되는지를 판단한다. 이 질의가 (예컨대, 도 2와 관련하여 설명된 기법에 따라) VPCG 모델에서 반복적으로 계산된 트레이닝된 사용자 질의와 매치된다고 판단하면, 사용자 질의에 대한 트레이닝된 벡터 표현은 예를 들면, 데이터 저장소로부터 트레이닝된 벡터 표현을 검색함으로써 직접 획득될 수 있으며, 본 방법(300)은 단게 312로 진행한다. 매치된다고 판단하지 않으면, 본 방법(300)은 단계 308로 진행한다.
단계 308에서, 사용자 질의가 VPCG 모델 내의 어떠한 트레이닝된 사용자 질의와도 매치되지 않는다고 판단하는 것에 응답하여, 예를 들면 포워드 최대 매칭 알고리즘 또는 다른 알고리즘에 의해 사용자 질의의 ngram 표현이 얻어질 수 있다. 즉, 사용자 질의는 사용자 클릭 데이터의 사용자 질의들에 기초하여 트레이닝된 ngram 집합 Gqi(예를 들면, 도 2와 관련하여 설명된 바와 같은 ngram 사전 G)내의 하나 이상의 ngram으로 표현된다. 즉, q: uj, uj∈Gqi 이다. 몇몇 실시예에서, 사용자 질의는 예를 들면, 다음의 수학식 4에 따른 가중합으로서 하나 이상의 ngram에 의한 벡터 표현을 사용하여 표현될 수 있다.
Figure pct00004
[수학식 4]
여기서, uj는 ngram의 벡터 표현을 나타내고 j=1, ..., g이며, g는 ngram 집합 Gqi의 크기를 나타내고, wj는 ngram uj에 대응하는 가중치를 나타내며, qi는 사용자 질의 i의 벡터 표현을 나타낸다. 단계 308 후에, 프로세스(300)는 단계 310으로 진행한다.
단계 310에서는, 사용자 질의의 ngram 표현에 기초하여 질의의 벡터 표현이 결정된다. 예를 들면, 질의의 벡터 표현은 사용자 질의의 ngram 표현에 사용된 ngram의 벡터 표현 및 가중치에 따라 결정될 수 있다. 수학식 4와 관련된 일례에 예시된 바와 같이, 어휘 내의 단어 요소를 사용한 사용자 질의 qi의 벡터 표현은 사용자 질의 qi를 ngrams {uj}의 가중합으로 변환함으로써 얻어지는데, 여기서 각 uj는 어휘 내의 단어 요소를 사용한 그 각각의 벡터 표현이다. 단계 310 후에, 프로세스(300)는 단계 312로 진행한다.
단계 312에서는, 다수의 후보 주제들 각각에 대한 벡터 표현이 얻어진다. 몇몇 실시예에서, 다수의 후보 주제들 각각에 대한 벡터 표현은 사용자 클릭 데이터에 기초한 주제의 트레이닝된 벡터 표현을 포함하는 트레이닝된 VPCG 모델로부터 검색될 수 있다. 몇몇 실시예에서, 다수의 후보 주제들 각각에 대한 벡터 표현은 사용자 질의와 관련하여 위에서 기술한 기법과 유사한 ngram 표현과 같은 다른 방식으로도 얻어질 수 있다. 단계 312 후에, 프로세스(300)은 단계 314로 진행한다.
단계 314에서는,질의와 후보 주제의 벡터 표현의 유사성 점수가 산출된다. 사용자 질의와 후보 주제들 각각을 그 각각의 벡터 표현으로 변환함으로써, 사용자 질의는 예를 들면, 그들 각각의 벡터 표현에 기초하여 그 둘의 상관 또는 거리 또는 오류 메트릭(distance or error metric)을 계산함으로써 후보 주제들 각각과 효율적으로 비교될 수 있다. 한 쌍을 이루는 사용자 질의와 후보 주제들 각각의 사이의 거리 또는 오류 메트릭은 사용자 질의와 후보 주제들 각각의 유사성 또는 매치를 결정하는데 사용되는 유사성 점수로 회신될 수 있다. 몇몇 실시예에서는, 출력되는 유사성 점수의 일례로서 사용자 질의와 후보 주제의 벡터 표현들 사이의 코사인 거리(cosine distance)가 계산된다. 단계 314 후에, 본 프로세스(300)는 종료된다.
도 4는 본 개시의 일 실시예에 따른, VPCG 모델 기초의 지능형 고객 서비스를 제공하는 일례의 시스템(400)을 예시하는 블록도이다. 본 시스템(400)은 검색 엔진(404)과, 정교한 랭킹 엔진(406), 및 재랭킹(re-ranking) 엔진(412)을 포함한다. 본 시스템(400)은 사용자 질의(402)를 수신하여, 예를 들면 유사성 점수를 기초로 사용자 질의(402)에 가장 연관성이 있는 미리 설정된 개수의 주제(예를 들면, 상위 3개의 주제(414 또는 416))를 출력할 수 있다. 본 시스템(400)은 예를 들면, 재랭킹 엔진(412) 기초의 일례의 프로세스(300)로부터 출력된 유사성 점수에 의해 수행된 재랭킹에 기초한 상위 3개의 주제(416)를 결정하기 위해, 사용자 클릭 데이터(410)에 기초하여 트레이닝된 VPCG 모델(408)를 또한 이용한다.
입력된 사용자 질의(402)는 텍스트(문자) 기초일 수 있다. 사용자는 문자로 또는 후속으로 문자로 변환되는 구두로(orally) 질의할 수 있다. 시스템(400)이 사용자 질의(402)를 수신하고 난 후에는, 검색 엔진(404)(예를 들면 Apache Lucene 검색 시스템)이 사용자 질의(402)와 관련하여 주제들 각각의 연관성에 따라 주제들의 대략적인 랭킹(또는 정렬)을 매길 수 있도록 시스템 데이터베이스 내에 저장된 모든 주제를 호출할 수 있다. 몇몇 실시예에서, 검색 엔진은 예를 들면, 정교한 랭킹 엔진(406)에 제동하기 위해 미리 설정된 개수의 주제(예를 들면, 상위 400개의 주제(405))를 검색할 수 있다. 검색 엔진(404) 내에서, 고객 질의(402)에 연관성이 있는 주제들이 필터링될 수 있다.
호출된 상위 400개의 주제(405)는 정료한 랭킹 엔진(406)에 의한 정교한 랭킹을 위한 후보 주제 역할을 한다. 사용자 질의(402) 및 주제들과 관련된 특징들이 추출될 수 있다. 이들 특징과 결부된, WMD(Word Mover's Distance) 점수, 2차 소트 점수(second sort score), 인텐션 트리 스코어(intention tree score) 등과 같은 랭킹 점수가 계산될 수 있다. 계산된 랭킹 점수는 예를 들면, LamdaMart 모델을 사용하여 정교한 랭킹 엔진(406)에 의해 정렬(sorting)될 수 있다. 다수의 상위 랭킹 주제들이 우수한 매치가 발견되었음을 나타내는 특정 기준을 만족하면(예를 들면, 점수들이 미리 설정된 신뢰도 문턱값을 초과하거나 충분히 높으면), 소정 개수의 상위 랭킹 주제(예컨대, 상위 3개의 주제(414))가 예를 들면 정교한 랭킹 매김 수행의 결과로서 사용자 인터페이스(UI)를 통하여 사용자에게 출력될 수 있다. 그렇지 않으면, 정교한 랭킹 엔진(406)은 VPCG 모델(408)에게 사용자 질의와 후부 주제들 각각의 유사성 점수(409)를 더 계산하라고 요청할 수 있다.
재랭킹 엔진(412)은 예를 들면, 도 3과 관련하여 설명된 기법에 따라 VPCG 모델(408) 기초으로 계산된 유사성 점수(409)를 수신할 수 있다. 재랭킹 엔진(412)은 유사성 점수(409)와 함께 랭킹 모델 예를 들면, LamdaMart와 같은 GBCT(Gradient Boosting Decision Tree) 모델 기초의 다른 랭킹 점수에 기초하여 후보 주제들의 랭킹을 다시 매긴다. 그 결과, 소정 개수의 상위 랭킹 주제(예컨대, 상위 3개의 주제(416))가 예를 들면, 재랭킹의 결과로서 사용자 인터페이스(UI)를 통하여 사용자에게 출력될 수 있다. 몇몇 실시예에서는, 사용자 클릭 데이터(410)도 예를 들면, 지니계수(Gini coefficient) 또는 다른 기준에 기초한 소정의 랭킹 특징의 중요도를 결정하기 위해, 랭킹 모델을 트레이닝하는데 사용될 수 있다. 몇몇 실시예에서는, 사용자 클릭 데이터(410)가 사용자로부터의 약 150만 회의 클릭 로그(click log)를 포함할 수 있다. VPCG 모델(408)과 재랭킹 엔진(412)은 그 각각의 트레이닝 프로세스에 사용자 클릭 데이터(410)를 사용할 수 있다.
도 5는 본 개시의 일 실시예에 따른, VPCG 모델 기초의 지능형 고객 서비스를 제공하는 일례의 방법(500)을 예시하는 순서도이다. 몇몇 실시예에서, 본 방법(500)의 다양한 단계들은 병렬로, 조합식으로, 루프 형태로, 또는 임의의 순서로 실행될 수 있다. 명료하게 제시하기 위해, 하기의 설명은 전반적으로 본 설명 내의 다른 특징들의 맥락에서 본 방법(500)을 기술한다. 하지만, 본 방법(500)은 예를 들면, 임의의 적절한 시스템, 환경, 소프트웨어, 및 하드웨어, 또는 적합한 한 시스템, 환경, 소프트웨어, 및 하드웨어의 조합으로도 수행될 수 있음을 이해할 것이다. 예를 들면, 본 방법(500)은 하나 이상의 프로세서를 포함하거나 이에 의해 구현될 수 있는 데이터 서비스 엔진 또는 다른 데이터 처리 장치에 의해 수행될 수 있다. 일례의 시스템(400)은 데이터 서비스 엔진의 일례이다.
단계 502에서, 사용자로부터 데이터 서비스 엔진에 질의가 수신된다. 이 질의는 문자열 예를 들면, 일련의 문자들 또는 단어 요소들을 포함할 수 있다. 질의는 예를 들면, Q&A 시스템 또는 다른 지능형 고객 서비스 플랫폼의 사용자 인터페이스(UI)로부터 수신될 수 있다. 사용자는 문자 기초의 질의 또는 구두 질의(verbal query)를 할 수 있는데, 후자의 경우에 구두 질의는 데이터 서비스 엔진에 수신되기 전에 문자로 변환될 수 있다. 단계 502 후에, 본 프로세스(500)는 단계 504로 진행한다.
단계 504에서, 데이터 서비스 엔진에 의해 질의를 기초로 소정 개수의 후보 주제가 식별된다. 소정 개수의 후보 주제를 식별하는 것은 예를 들면, 메모리 또는 다른 데이터 저장소(예컨대, 사용자 클릭 데이터에 기초한 주제들의 트레이닝된 벡터 표현을 포함하는 트레이닝된 VPCG 모델)로부터 소정 개수의 후보 주제들을 획득하는 것, 다른 소스(source)로부터 소정 개수의 후보 주제들을 검색하는 것, 디바이스로부터 후보 주제들을 검색하는 것, 또는 다른 방식으로 후보 주제들을 결정하는 것을 포함할 수 있다. 단계 504 후에, 프로세스(500)는 단계 506으로 진행한다.
단계 506에서는, 하나 이상의 주제를 선택하기 위해 첫 번째 랭킹 매김이 수행된다. 몇몇 실시예에서, 첫 번째 랭킹 매김은 예를 들면, 도 4와 관련하여 설명된 기법에 따라 질의에 대한 주제들 각각의 연관성을 기초로 한 주제들의 대략적인 랭킹(또는 정렬) 또는 사전 선택일 수 있다. 단계 506 후에, 본 프로세스(500)는 단계 508로 진행한다.
단계 508에서는, 하나 이상의 주제들이 특정 기준을 만족하는지를 판단한다. 하나 이상의 주제가 특정 기준을 만족한다는 판단(하나 이상의 주제가 도 4와 관련하여 설명된 기법에 따라 점수 및 신뢰도 문턱값과 같은 소정의 메트릭을 기초로 질의와 충분히 연관성이 있는지 여부)에 따라, 하나 이상의 주제는 예를 들면, 지능형 고객 서비스 플랫폼의 사용자 인터페이스(UI)를 통하여 사용자에게 출력될 수 있으며, 본 방법(500)은 단계 516으로 진행한다. 이와 달리, 어떠한 주제도 특정 기준을 만족하지 못한다고 판단하면, 하나 이상의 주제를 선택하기 위한 두 번째 랭킹 매김(예를 들면, 도 4와 관련하여 설명된 기법에 따른 정교한 랭킹 매김)이 수행되며, 본 방법(500)은 단계 510로 진행한다.
단계 510에서는, 사용자 클릭 데이터를 기초로 트레이닝된 VPCG 모델에 기초하여 질의와 소정 개수의 후보 주제들 각각 사이의 유사성 점수가 산출된다. 몇몇 실시예에서, 사용자 클릭 데이터는 복수의 사용자들로부터의 복수의 질의들에 대응한 복수의 사용자 선택들을 포함하는데, 복수의 사용자 선택들 각각은 사용자의 질의에 기초하여 사용자에게 제공된 복수의 후보 주제들 중에서 사용자의 질의에 연관성이 있는 주제라는 각각의 사용자의 선택을 포함한다.
VPCG 모델을 트레이닝하는 일례의 기법은 도 2와 관련하여 설명되어 있다. 몇몇 실시예서, VPCG 모델을 트레이닝하는 것은 사용자 클릭 데이터에서 복수의 사용자들로부터 복수의 질의를 식별하는 것과; 사용자 데이터에서 복수의 사용자들로부터의 복수의 질의에 대응한 복수의 사용자 선택들을 식별하는 것과; 어휘 내의 복수의 단어 요소들로 복수의 질의들 각각에 대한 벡터 표현을 결정하는 것; 및, 어휘 내의 복수의 단어 요소들에 관하여 복수의 후보 주제들 각각의 벡터 표현을 결정하는 것을 포함한다.
몇몇 실시예에서, 어휘 내의 복수의 단어 요소들에 관하여 복수의 질의들 각각의 벡터 표현을 결정하는 것은 복수의 후보 주제들을 사용하여 복수의 질의들 각각을 표현하는 것을 포함한다. 예를 들면, 복수의 질의들을 사용하여 복수의 후보 주제들 각각을 나타내는 것은 수학식 1에 따라 복수의 질의들 각각을 표현하는 것을 포함한다.
몇몇 실시예에서, 어휘 내의 복수의 단어 요소들에 관하여 복수의 후보 주제들 각각의 벡터 표현을 결정하는 것은 복수의 질의들을 사용하여 복수의 후보 주제들 각각을 표현하는 것을 포함한다. 예를 들면, 복수의 후보 주제들을 사용하여 복수의 질의들 각각을 나타내는 것은 수학식 2에 따라 복수의 질의들의 가중합에 의해 복수의 후보 주제들 각각을 표현하는 것을 포함한다.
몇몇 실시예에서, 유사성 점수를 산출하는 것은 예를 들면, 질의와 후보 주제들 각각을 그 각각의 벡터 표현으로 변환하는 것과, 그 각각의 벡터 표현에 기초하여 둘 사이의 거리 또는 오류 메트릭을 계산하는 것, 및 한 쌍을 이루는 사용자 질의와 후보 주제들 각각의 사이의 거리 또는 오류 메트릭을 그 유사성 점수로 회신하는 것을 포함한다. 몇몇 실시예에서는, 출력되는 유사성 점수의 일례로서 사용자 질의와 후보 주제의 벡터 표현들 사이의 코사인 거리가 계산된다.
예를 들어, 사용자 클릭 데이터를 기초로 트레이닝된 VPCG 모델에 기초하여 질의와 복수의 후보 주제들 각각의 사이에 유사성 점수를 산출하는 것은 어휘 내의 복수의 단어 요소들에 관하여 사용자로부터의 질의의 벡터 표현을 결정하는 것과; 어휘 내의 복수의 단어 요소들에 관하여 복수의 후보 주제들 각각의 벡터 표현을 결정하는 것; 및, 질의의 벡터 표현과 복수의 후보 주제들 각각의 벡터 표현 사이의 유사성 점수를 계산하는 것을 포함한다.
몇몇 실시예에서, 어휘 내의 복수의 단어 요소들에 관하여 사용자로부터의 질의의 벡터 표현을 결정하는 것은 사용자 클릭 데이터에 기초하여 트레이닝된 ngram의 집합을 기초로 사용자로부터의 질의를 표현하는 것을 포함한다. 몇몇 실시예에서, ngram의 집합은 사용자 클릭 데이터의 복수의 질의들 각각의 벡터 표현에 기초한 어휘 내의 복수의 단어 요소들에 관하여 ngram의 집합 내의 각 ngram의 벡터 표현을 포함한다.
몇몇 실시예에서, 사용자 클릭 데이터에 기초하여 트레이닝된 ngram 집합을 기초로 사용자로부터의 질의를 표현하는 것은 수학식 4에 따라 그 ngram 집합의 가중합으로 사용자로부터의 질의를 표현하는 것을 포함한다. 단계 510 후에, 본 프로세스(500)는 단계 512로 진행한다.
단계 512에서, 소정 개수의 후보 주제들은 그 유사성 점수에 따라 랭킹이 매겨진다. 몇몇 실시예에서, 데이터 서비스 엔진은 단계 510에서 산출된 유사성 점수를 수신하여 그 유사성 점수에 따라 후보 주제들의 랭킹을 결정하거나 랭킹을 재결정할 수 있다. 몇몇 실시예에서, 데이터 서비스 엔진은 예를 들면, 도 4와 관련하여 설명된 기법에 따라 후보 주제들을 랭킹 매길 때 랭킹 모델, 예를 들면 GDBP 모델을 기초로 한 다른 랭킹 점수를 또한 사용하게 된다. 단계 512 후에, 본 프로세스(500)는 단계 514로 진행한다.
단계 514에서는, 하나 이상의 주제들이 랭킹 매겨진 후보 주제들로부터 선택된다. 몇몇 실시예에서는, 예를 들면 소정 개수의 상위 랭크된 주제들(예를 들면, 상위 3개의 주제들)이 랭킹 매겨진 후보 주제들로부터 선택될 수 있다. 단계 514 후에, 본 프로세스(500)는 단계 516으로 진행한다.
단계 516에서, 선택된 주제들은 데이터 서비스 엔진의 사용자 인터페이스(UI)를 통하여 출력된다. 몇몇 실시예에서, 선택된 주제들은 GUI(graphic user inerface) 또는 다른 UI로 표, 채팅창, 팝업창 등에 디스플레이될 수 있다. 단계 516 후에, 본 프로세스(500)는 중지한다.
도 6은 본 개시의 일 실시예에 따른, VPCG 모델 기초의 지능형 고객 서비스와 DSSM(Deep-Semantic-Similarity-Model: 딥 시멘틱 유사성 모델) 사이의 성능 비교를 예시하는 그래프이다. 도 6에 예시된 바와 같이, VPCG 모델의 점수 플러그인(plug-in)은 C++ 코드 기초 모델의 서버 전개(server deployment) 기초으로 약 1ms(밀리초)의 평균 통화 지연을 갖는데 반해, DSSM은 거의 70ms가 소요되는데, 이는 VPCG 모델이 온라인 작업의 효율을 크게 향상시키고 알고리즘 지연을 감소시킴을 보여준다. 더 많은 후보 주제들이 주어지면, VPCG 모델 기초의 구현은 더 많은 시간의 절약을 달성할 수 있다. VPCG 모델 기초에서 재랭킹 엔진의 도입에 의하면, LambdaMart 정렬의 결과는 ndcg@1 표시기(ndce@1 indicator)를 2% 향상시키고, 온라인 테스트 단일 엔진 해결율(resolution rate)을 1.5% 증가시킨다.
표 1은 사용자 질의의 몇 개의 예시적인 벡터 표현을 보여준다. "벡터 표현" 컬럼(줄)에서, 콜론(:) 바로 앞의 각 단어 또는 구(예를 들면, "fund" 또는 "transfer out")는 어휘 내의 단어 요소를 나타낸다. 콜론(:) 바로 다음의 수치(예를 들면, "0.83" 및 "0.06")는 단어 요소에 대응하는 가중치를 나타낸다. 표 1에 예시된 바와 같이, VPCG 모델에 의하면, 사용자 질의의 내용은 단어 요소들에 의해 보다 더 포괄적으로 표현될 수 있는데, 사용자의 질의에 나타나지 않는 단어 요소들에서도 그러하다. VPCG 모델은 머신러닝(machine learning)을 통해서 다양한 벡터 표현을 또한 학습할 수 있다. 예를 들면, "How to redeem the fund(자금을 상환하는 방법)"라는 사용자 질의의 벡터 표현은 "sell", "transfer", "sale" 등의 단어 요소들을 포함함으로써, 사용자 질의의 의미(semantics)를 온전히 표현하게 된다. 이러한 표현은 사용자의 요구사항 또는 의도를 보다 더 잘 매치시킬 수 있으며, 그래서 사용자의 질의에 보다 더 적합하거나 효과적인 답변을 제공할 수 있다.
사용자 질의 벡터 표현
How to redeem the fund fund:0.83 how:0.36 sell:0.21 redeem:0.18 how:0.18 money:0.14 out:0.06 transfer out:0.06 sale:0.05 can:0.05 transfer:0.05
How to check all the bank transaction Bank card:0.62 transaction:0.41 how:0.26 check:0.22 bill :0.22 search:0.16 how is it:0.14 Alipay:0.13 record:0.11 all:0.08 money:0.08 view:0.08 card number:0.08 balance:0.06
Order payment has not arrived yet Order:0.36 not:0.36 arrive:0.33 payment:0.31 no:0.30 how:0.26 moeny:0.22 succeed:0.22 yet:0.21 pay:0.20 show:0.16 transaction:0.14
<VPCG 모델 기초의 사용자 질의의 예시적인 벡터 표현>
도 7은 일 실시예에 따라, 본 개시에 기술된 바와 같은 알고리즘, 방법, 기능, 프로세스, 플로우, 및 절차와 연관된 전산 기능을 제공하는데 사용되는 일례의 컴퓨터 시스템(700)의 블록도이다. 예시된 컴퓨터(702)는 서버, 데스크탑 컴퓨터, 랩탑/노트북 컴퓨터, 무선 데이터 포트, 스마트폰, PDA(personal data assistant), 태블릿 컴퓨팅 장치, 이들 장치에 내장된 하나 이상의 프로세서, 또는 컴퓨팅 장치의 물리적 또는 가상의 인스턴스(또는 양자 모두)를 포함하는 임의의 다른 적절한 프로세싱 장치와 같은 모든 전산 장치(computing device)를 포함하는 의미로 이해해야 한다. 부가적으로, 컴퓨터(702)는 키패드, 키보드, 터치스크린, 또는 사용자 정보를 받아들일 수 있는 다른 장치와 같은 입력 장치와, 디지털 데이터, 비쥬얼, 또는 오디어 정보(또는 정보의 조합)을 포함하여 컴퓨터(702)의 동작과 관련된 정보를 전달하는 출력 장치, 또는 그래픽 타입의 사용자 인터페이스(UI 또는 GUI)를 포함하는 컴퓨터를 구비할 수 있다.
컴퓨터(702)는 클라이언트, 네트워크 컴포넌트, 서버, 데이터베이스 또는 다른 퍼시스턴시(persistency), 또는 본 개시에 기술된 발명을 실시하기 위한 컴퓨터 시스템의 임의의 다른 컴포넌트(또는 역할의 조합)의 역할을 행할 수 있다. 예시된 컴퓨터(702)는 네트워크(730)에 통신 가능하게 결합된다. 몇몇 실시예에서, 컴퓨터(702)의 하나 이상의 컴포넌트들은 클라우드 컴퓨팅 기초, 로컬, 글로벌, 또는 다른 환경(또는 환경들의 조합)을 포함하는 환경 내에서 동작하도록 구성될 수 있다.
상위 레벨에서, 컴퓨터(702)는 본 개시에 기술된 내용과 연관된 데이터와 정보를 수신, 전송, 처리, 저장, 또는 관리도록 동작 가능한 전자 컴퓨팅 장치이다. 몇몇 실시예에 따르면, 컴퓨터(702)는 애플리케이션 서버, 이메일 서버, 웹 서버, 캐슁(caching) 서버, 스트리밍 데이터 서버, 또는 다른 서버(또는 서버의 조합)를 또한 포함하거나 이들에 통신 가능하게 결합될 수 있다.
컴퓨터(702)는 (예를 들면, 다른 컴퓨터(702)에서 실행되는) 클라이언트 애플리케이션으로부터 네트워크(730)를 통하여 요청(requests)을 수신하고는 적절한 소프트웨어 애플리케이션을 사용하여 수신된 요청을 처리함으로써 수신된 요청에 응답할 수 있다. 게다가, 요청은 또한 내부 사용자(예를 들면, 커맨드 콘솔로부터 또는 다른 적절한 액세스 방법에 의해), 외부 또는 제3자, 다른 자동 애플리케이션뿐만 아니라 임의의 다른 적절한 엔티티(entities), 개인, 시스템, 또는 컴퓨터로부터 컴퓨터(702)로 전송될 수도 있다.
컴퓨터(702)의 컴포넌트들 각각은 시스템 버스(703)를 사용하여 통신을 행할 수 있다. 몇몇 실시예에서, 컴퓨터(702)의 임의의 또는 모든 컴포넌트는 하드웨어든 소프트웨어든 간에(또는 하드웨어와 소프트웨어 양자 모두의 조합) API(application programming interface)(712) 또는 서비스 계층(713)(또는 API(712)와 서비스 계층(713)의 조합)을 사용한 시스템 버스(703)를 통하여 서로 또는 인터페이스(704)에(또는 양자 모두의 조합) 접속될 수 있다. API(712)는 루틴, 데이터 구조, 및 객체 클래스에 대한 사양을 포함할 수 있다. API(712)는 컴퓨터 언어 독립형이거나 또는 종속형일 수 있으며, 전체 인터페이스, 단일 기능, 또는 심지어는 API 집합을 지칭할 수 있다. 서비스 계층(713)은 컴퓨터(702) 또는 컴퓨터(702)에 통신 가능하게 결합된 다른 컴포넌트(예시되었던 예시되지 않았던 간에)에 소프트웨어 서비스를 제공한다. 컴퓨터(702)의 기능은 이 서비스 계층을 사용하여 모든 서비스 소비자들에게 액세스 가능할 수 있다. 서비스 계층(713)에 의해 제공되는 바와 같은 소프트웨어 서비스는 정의된 인터페이스를 통하여 재사용 가능한, 정의된 기능을 제공한다. 예를 들면, 인터페이스는 JAVA, C++, 또는 XML(extensible markup language) 포맷 또는 다른 적절한 포맷으로 데이터를 제공하는 다른 적절한 언어로 작성된 소프트웨어일 수 있다. 컴퓨터(702)에 통합된 컴포넌트로서 예시되긴 했으나, 다른 실시예에서는 API(712) 또는 서비스 계층(713)을 컴퓨터(702)의 다른 컴포넌트 또는 컴퓨터(702)에 통신 가능하게 결합된 다른 컴포넌트((예시되었던 예시되지 않았던 간에)에 대해 독립형의 컴포넌트로 예시할 수도 있다. 또한, API(712) 또는 서비스 계층(713)의 임의의 일부 또는 전부는 본 개시의 범위를 벗어남이 없이 다른 소프트웨어 모듈, 엔터프라이즈 애플리케이션, 또는 하드웨어 모듈의 차일드(child) 또는 서브모듈로 구현될 수도 있다.
컴퓨터(702)는 인터페이스(704)를 포함한다. 도 7에는 단일 인터페이스(704)로 예시되었으나, 컴퓨터(702)의 특정 요구, 바람직함, 또는 특정 구현에 따라 2개 이상의 인터페이스(704)가 사용될 수도 있다. 인터페이스(704)는 분산 환경에서 (예시되었던 예시되지 않았던 간에) 네트워크(730)에 연결된 다른 시스템들과 통신하기 위해 컴퓨터(702)에 의해 사용된다. 일반적으로, 인터페이스(704)는 소프트웨어 또는 하드웨어(또는 소프트웨어와 하드웨어의 조합)에 인코딩된 로직을 포함하며, 네트워크(730)와 통신하도록 동작할 수 있다. 보다 구체적으로, 인터페이스(704)는 네트워크(730) 또는 인터페이스의 하드웨어가 예시된 컴퓨터(702)의 내부 및 외부에서 물리적 신호를 통신하도록 동작할 수 있게 통신과 관련된 하나 이상의 통신 프로토콜을 지원하는 소프트웨어를 포함할 수 있다.
컴퓨터(702)는 프로세서(705)를 포함한다. 도 7에는 단일 프로세서(705)로 예시되었으나, 컴퓨터(702)의 특정 요구, 바람직함, 또는 특정 구현에 따라 2개 이상의 프로세서가 사용될 수도 있다. 일반적으로, 프로세서(705)는 컴퓨터(702)의 동작 및 본 개시에 기술된 임의의 알고리즘, 방법, 기능, 프로세스, 플로우, 및 절차들을 수행하기 위해, 명령을 실행하고 데이터를 처리한다.
컴퓨터(702)는 이 컴퓨터(702) 또는 (예시되었던 예시되지 않았던 간에) 네트워크(730)에 연결될 수 있는 다른 컴포넌트들(또는 양자 모두의 조합)을 위한 데이터를 보유할 수 있는 데이터베이스(706)를 또한 포함한다. 예를 들면, 데이터베이스(706)는 본 개시에 부합하는 인메모리(in-memory), 재래식, 또는 다른 유형의 데이터를 저장하는 데이터베이스일 수 있다. 몇몇 실시예에서, 데이터베이스(706)는 컴퓨터(702)의 특정 요구, 바람직함, 또는 특정 구현 및 기술된 기능에 따라 2가지 이상의 상이한 데이터베이스 유형의 조합(예를 들면, 인메모리와 재래식 데이터베이스의 하이브리드)일 수 있다. 도 7에는 단일 데이터베이스(706)로 예시되었으나, 컴퓨터(702)의 특정 요구, 바람직함, 또는 특정 구현 및 기술된 기능에 따라 2개 이상의 데이터베이스가 사용될 수도 있다. 데이터베이스(706)는 컴퓨터(702)의 일체형 컴포넌트로 예시되었으나, 다른 실시예에서는 데이터베이스(706)가 컴퓨터(706)의 외부에 있을 수도 있다. 예시된 바와 같이, 데이터베이스(706)는 사용자 질의, 후보 주제, ngram, 등을 포함할 수 있는 하나 이상의 벡터 표현 데이터(716), VPCG 모델 데이터(718), 및 클릭 데이터(726)를 보유할 수 있다.
컴퓨터(702)는 이 컴퓨터(702) 또는 (예시되었던 예시되지 않았던 간에) 네트워크(730)에 연결될 수 있는 다른 컴포넌트들(또는 양자 모두의 조합)을 위한 데이터를 보유할 수 있는 메모리(707)를 또한 포함한다. 메모리(707)는 본 개시에 부합되는 임의의 데이터를 저장할 수 있다. 몇몇 실시예에서, 메모리(707)는 컴퓨터(702)의 특정 요구, 바람직함, 또는 특정 구현 및 기술된 기능에 따라 2가지 이상의 상이한 유형의 메모리의 조합(예를 들면, 반도체와 자기저장장치의 조합)일 수 있다. 도 7에는 단일 메모리(707)로 예시되었으나, 컴퓨터(702)의 특정 요구, 바람직함, 또는 특정 구현 및 기술된 기능에 따라 (동일 유형 또는 상이한 유형의 조합인) 2개 이상의 메모리가 사용될 수도 있다. 메모리(707)는 컴퓨터(702)의 일체형 컴포넌트로 예시되었으나. 다른 실시예에서는 메모리(707)가 컴퓨터(702)의 외부에 있을 수도 있다.
애플리케이션(708)은 특히 본 개시에 기술된 기능과 관련하여, 컴퓨터(702)의 특정 요구, 바람직함, 또는 특정 구현에 따른 기능을 제공하는 알고리즘 소프트웨어 엔진이다. 예을 들면, 애플리케이션(708)은 하나 이상의 컴포넌트, 모듈, 또는 애플리케이션 기능을 할 수 있다. 또한, 단일 애플리케이션(708)으로 예시되었으나, 애플리케이션(708)은 컴퓨터(702) 상에서 복수의 애플리케이션으로 구현될 수도 있다. 또한, 컴퓨터(702)에 일체형으로 예시되었으나, 다른 실시예에서는 이 애플리케이션(708)이 컴퓨터(702)의 외부에 있을 수 있다.
컴퓨터(702)는 전원장치(파워 서플라이: 714)를 또한 포함할 수 있다. 전원장치(714)는 사용자가 교체할 수 있거나 교체할 수 없도록 구성될 수 있는 충전식 또는 비충전식 배터리를 포함할 수 있다. 몇몇 실시예에서, 전원장치(714)는 (충전, 대기, 다른 전원 관리 기능을 포함하는) 전력 변환 또는 관리 회로를 포함할 수 있다. 몇몇 실시예에서, 전원장치(714)는 예를 들면, 컴퓨터(702)에 전력을 인가하거나 또는 충전식 배터리를 재충전하기 위해 컴퓨터(702)를 벽 설치 콘센트 또는 다른 전원에 꽂을 수 있게 하는 파워 플러그를 포함할 수 있다.
컴퓨터(702)를 포함하는 컴퓨터 시스템과 연관되거나 또는 외부에 있는 임의의 개수의 컴퓨터(702)가 있을 수 있으며, 각 컴퓨터(702)는 네트워크(730)를 통하여 통신을 행한다. 또한, 본 개시의 범위를 벗어남이 없이 "클라이언트" 또는 "사용자"라는 용어 및 다른 적합한 용어가 적절히 상호 교환적으로 사용될 수 있다. 또한, 본 개시는 많은 사용자가 하나의 컴퓨터(702)를 사용할 수 있는 것, 또는 한 명의 사용자가 복수의 컴퓨터(702)를 사용할 수 있는 것을 고려한다.
본 발명의 상술한 실시예는 하나 이상의 특징을 단독으로 또는 조합하여 포함할 수 있다.
예를 들어, 제1의 실시예에서는, 컴퓨터 구현 방법이: 사용자로부터 문자열을 포함하는 질의를 데이터 서비스 엔진에서 수신하는 것과; 데이터 서비스 엔진에 의해 상기 질의에 기초하여 복수의 후보 주제들을 식별하는 것과; 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 질의와 복수의 후보 주제들 각각 사이의 유사성 점수를 산출하는 것과; 상기 유사성 점수에 따라 복수의 후보 주제들을 랭킹 매기는 것과; 랭킹 매겨진 후보 주제들로부터 하나 이상의 주제를 선택하는 것; 및, 선택된 주제를 사용자 인터페이스(UI)를 통하여 출력하는 것을 포함한다.
전술한 실시예 및 다른 상술한 실시예는 각각 선택적으로 이하의 특징들 중 하나 이상을 포함할 수 있다.
제1의 특징은, 이하의 특징들 중 어느 것과도 병합될 수 있으며, 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 질의와 각각의 후보 주제 사이의 유사성 점수를 산출하는 것 이전에, 복수의 후보 주제들로부터 제2의 하나 이상의 주제들을 선택하는 첫 번째 랭킹 매김을 수행하는 것을 더 포함한다. 제2의 하나 이상의 주제들 각각이 특정 기준을 만족하지 않는다는 판단에 응답하여, 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 두 번째 랭킹 매김을 수행하며, 두 번째 랭킹 매김을 수행하는 것은 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 질의와 각각의 후보 주제 사이의 유사성 점수를 산출하는 것과; 이 유사성 점수에 따라 복수의 후보 주제들을 랭킹 매기는 것을 포함한다.
제2의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 사용자 클릭 데이터는 복수의 사용자들로부터의 복수의 질의에 대응한 복수의 사용자 선택들을 포함하고, 복수의 사용자 선택들 각각은 사용자의 질의에 기초하여 사용자에게 제공된 복수의 후보 주제들 중에서 사용자의 질의에 연관성이 있는 주제라는 각각의 사용자의 선택을 포함한다.
제3의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 사용자 클릭 데이터에 기초하여 VPCG 모델을 트레이닝하는 것을 더 포함하며, VPCG 모델을 트레이닝하는 것은 사용자 클릭 데이터에서 복수의 사용자들로부터의 복수의 질의를 식별하는 것과; 사용자 데이터에서 복수의 사용자들로부터의 복수의 질의에 대응한 복수의 사용자 선택들을 식별하는 것과; 어휘 내의 복수의 단어 요소들에 관하여 복수의 질의들 각각의 벡터 표현을 결정하는 것; 및, 어휘 내의 복수의 단어 요소들에 관하여 복수의 후보 주제들 각각의 벡터 표현을 결정하는 것을 포함한다.
제4의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 어휘 내의 다수의 단어 요소들에 관하여 복수의 질의들 각각의 벡터 표현을 결정하는 것은 복수의 후보 주제들을 사용하여 다수의 질의들 각각을 표현하는 것을 포함하고; 어휘 내의 다수의 단어 요소들에 관하여 복수의 후보 주제들 각각의 벡터 표현을 결정하는 것은 복수의 질의들을 사용하여 다수의 후보 주제들 각각을 표현하는 것을 포함한다.
제5의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 복수의 후보 주제들을 사용하여 복수의 후보 주제들 각각을 표현하는 것은 수학식 1에 따라 복수의 질의들의 가중합에 의해 복수의 질의들 각각을 표현하는 것을 포함하고;
Figure pct00005
[수학식 1]
복수의 질의들을 사용하여 복수의 질의들 각각을 표현하는 것은 수학식 2에 따라 복수의 후보 주제들 각각을 표현하는 것을 포함한다.
Figure pct00006
[수학식 2]
수학식 1 및 수학식 2에서, dj (n)은 n회차 반복에서의 주제 dj의 벡터 표현을 나타내고; qi (n-1)은 n-1 회차 반복에서의 질의 qi의 벡터 표현을 나타내며; Ci,j는 사용자 클릭 데이터에서 질의 qi에 대한 주제 dj의 사용자 클릭 또는 선택의 총 횟수를 나타내고; Q는 사용자 클릭 데이터에서 사용자 질의의 총 개수를 나타내는데, 즉 qi, i=1,2, ..., Q이다. D는 사용자 클릭 데이터에서 주제의 총 개수를 나타내는데, 즉 dj, j=1,2, ..., D이다.
제6의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 사용자 클릭 데이터를 기초로 트레이닝된 VPCG 모델에 기초하여 질의와 복수의 후보 주제들 각각 사이의 유사성 점수를 산출하는 것은 어휘 내의 복수의 단어 요소들에 관하여 사용자로부터의 질의의 벡터 표현을 결정하는 것과; 어휘 내의 복수의 단어 요소들에 관하여 복수의 후보 주제들 각각의 벡터 표현을 결정하는 것; 및, 질의의 벡터 표현과 복수의 후보 주제들 각각의 벡터 표현 사이의 유사성 점수를 계산하는 것을 포함한다.
제7의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 어휘 내의 복수의 단어 요소들에 관하여 사용자로부터의 질의의 벡터 표현을 결정하는 것은 사용자 클릭 데이터에 기초하여 트레이닝된 ngram의 집합을 기초로 사용자로부터의 질의를 표현하는 것을 포함한다.
제8의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, ngram의 집합은 사용자 클릭 데이터 내의 복수의 질의들 각각의 벡터 표현에 기초한 어휘 내의 복수의 단어 요소들에 관하여 ngram의 집합 내의 각 ngram의 벡터 표현을 포함한다.
제9의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 사용자 클릭 데이터에 기초하여 트레이닝된 ngram의 집합을 기초로 사용자로부터의 질의를 표현하는 것은 수학식 4에 따라 ngram의 집합의 가중합으로 사용자로부터의 질의를 표현하는 것을 포함한다.
Figure pct00007
[수학식 4]
수학식 4에서, uj는 ngram j의 벡터 표현을 나타내고 j=1, ..., g이며; g는 ngram의 집합 내의 ngrams의 총 개수를 나타내고; wj는 uj에 대응하는 가중치를 나타내며; Gqi는 사용자 클릭 데이터를 기초로 트레이닝된 ngrams의 집합이다.
제2의 실시예에서, 컴퓨터 구현 시스템은: 하나 이상의 컴퓨터와; 상기 하나 이상의 컴퓨터에 상호 동작 가능하게 결합되고 상기 하나 이상의 컴퓨터에 의해 실행될 때 하기의 동작들을 수행하는 명령어들을 저장하는 유형이며(tangible) 비일시적인 기계 판독 가능 매체를 갖는 하나 이상의 컴퓨터 메모리 장치를 포함하며; 상기 동작들은: 사용자로부터 문자열을 포함하는 질의를 데이터 서비스 엔진에서 수신하는 것과; 데이터 서비스 엔진에 의해 상기 질의에 기초하여 복수의 후보 주제들을 식별하는 것과; 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 질의와 복수의 후보 주제들 각각 사이의 유사성 점수를 산출하는 것과; 상기 유사성 점수에 기초하여 복수의 후보 주제들을 랭킹 매기는 것과; 랭킹 매겨진 후보 주제들로부터 하나 이상의 주제를 선택하는 것; 및, 선택된 주제를 사용자 인터페이스(UI)를 통하여 출력하는 것을 포함한다.
전술한 실시예 및 다른 상술한 실시예는 각각 선택적으로 이하의 특징들 중 하나 이상을 포함할 수 있다.
제1의 특징은, 이하의 특징들 중 어느 것과도 병합될 수 있으며, 상기 동작들은: 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 질의와 각각의 후보 주제 사이의 유사성 점수를 산출하는 것 이전에, 복수의 후보 주제들로부터 제2의 하나 이상의 주제들을 선택하는 첫 번째 랭킹 매김을 수행하는 것과; 제2의 하나 이상의 주제들 각각이 특정 기준을 만족하지 않는다는 판단에 응답하여, 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 두 번째 랭킹 매김을 수행하는 것을 더 포함하며, 두 번째 랭킹 매김을 수행하는 것은 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 질의와 각각의 후보 주제 사이의 유사성 점수를 산출하는 것과; 이 유사성 점수에 따라 복수의 후보 주제들을 랭킹 매기는 것을 포함한다.
제2의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 사용자 클릭 데이터는 복수의 사용자로부터의 복수의 질의에 대응한 복수의 사용자 선택들을 포함하고, 복수의 사용자 선택들 각각은 사용자의 질의에 기초하여 사용자에게 제공된 복수의 후보 주제들 중에서 사용자의 질의에 연관성이 있는 주제라는 각각의 사용자의 선택을 포함한다.
제3의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 상기 동작들은 사용자 클릭 데이터에 기초하여 VPCG 모델을 트레이닝하는 것을 더 포함하며, VPCG 모델을 트레이닝하는 것은 사용자 클릭 데이터에서 복수의 사용자들로부터의 복수의 질의를 식별하는 것과; 사용자 데이터에서 복수의 사용자들로부터의 복수의 질의에 대응한 복수의 사용자 선택들을 식별하는 것과; 어휘 내의 복수의 단어 요소들에 관하여 복수의 질의들 각각의 벡터 표현을 결정하는 것; 및, 어휘 내의 복수의 단어 요소들에 관하여 복수의 후보 주제들 각각의 벡터 표현을 결정하는 것을 포함한다.
제4의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 어휘 내의 다수의 단어 요소들에 관하여 복수의 질의들 각각의 벡터 표현을 결정하는 것은 복수의 후보 주제들을 사용하여 다수의 질의들 각각을 표현하는 것을 포함하고; 어휘 내의 다수의 단어 요소들에 관하여 복수의 후보 주제들 각각의 벡터 표현을 결정하는 것은 복수의 질의들을 사용하여 다수의 후보 주제들 각각을 표현하는 것을 포함한다.
제5의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 복수의 후보 주제들을 사용하여 복수의 후보 주제들 각각을 표현하는 것은 수학식 1에 따라 복수의 질의들의 가중합에 의해 복수의 질의들 각각을 표현하는 것을 포함하고;
Figure pct00008
[수학식 1]
복수의 질의들을 사용하여 복수의 질의들 각각을 표현하는 것은 수학식 2에 따라 복수의 후보 주제들 각각을 표현하는 것을 포함한다.
Figure pct00009
[수학식 2]
수학식 1 및 수학식 2에서, dj (n)은 n회차 반복에서의 주제 dj의 벡터 표현을 나타내고; qi (n-1)은 n-1 회차 반복에서의 질의 qi의 벡터 표현을 나타내며; Ci,j는 사용자 클릭 데이터 내의 질의 qi에 대한 주제 dj의 사용자 클릭 또는 선택의 총 횟수를 나타내고; Q는 사용자 클릭 데이터 내의 사용자 질의의 총 개수를 나타내는데, 즉 qi, i=1,2, ..., Q이며, D는 사용자 클릭 데이터 내의 주제의 총 개수를 나타내는데, 즉 dj, j=1,2, ..., D이다.
제6의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 사용자 클릭 데이터를 기초로 트레이닝된 VPCG 모델에 기초하여 질의와 복수의 후보 주제들 각각의 사이에 유사성 점수를 산출하는 것은 어휘 내의 복수의 단어 요소들에 관하여 사용자로부터의 질의의 벡터 표현을 결정하는 것과; 어휘 내의 복수의 단어 요소들에 관하여 복수의 후보 주제들 각각의 벡터 표현을 결정하는 것; 및, 질의의 벡터 표현과 복수의 후보 주제들 각각의 벡터 표현 사이의 유사성 점수를 계산하는 것을 포함한다.
제7의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 어휘 내의 복수의 단어 요소들에 관하여 사용자로부터의 질의의 벡터 표현을 결정하는 것은 사용자 클릭 데이터에 기초하여 트레이닝된 ngram의 집합을 기초로 사용자로부터의 질의를 표현하는 것을 포함한다.
제8의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, ngram의 집합은 사용자 클릭 데이터 내의 복수의 질의들 각각의 벡터 표현에 기초한 어휘 내의 복수의 단어 요소들에 관하여 ngram의 집합 내의 각 ngram의 벡터 표현을 포함한다.
제9의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 사용자 클릭 데이터에 기초하여 트레이닝된 ngram의 집합을 기초로 사용자로부터의 질의를 표현하는 것은 수학식 4에 따라 ngram의 집합의 가중합으로 사용자로부터의 질의를 표현하는 것을 포함한다.
Figure pct00010
[수학식 4]
수학식 4에서, uj는 ngram의 벡터 표현을 나타내고 j=1, ..., g이며; g는 ngram의 집합 내의 ngrams의 총 개수를 나타내고; wj는 uj에 대응하는 가중치를 나타내며; Gqi는 사용자 클릭 데이터를 기초로 트레이닝된 ngrams의 집합이다.
제3의 실시예에서는, 사용자로부터 문자열을 포함하는 질의를 데이터 서비스 엔진에서 수신하는 것과; 데이터 서비스 엔진에 의해 상기 질의에 기초하여 복수의 후보 주제들을 식별하는 것과; 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 질의와 복수의 후보 주제들 각각 사이의 유사성 점수를 산출하는 것과; 상기 유사성 점수에 기초하여 복수의 후보 주제들을 랭킹 매기는 것과; 랭킹 매겨진 후보 주제들로부터 하나 이상의 주제를 선택하는 것; 및, 선택된 주제를 사용자 인터페이스(UI)를 통하여 출력하는 것을 포함하는, 동작을 수행하기 위해 컴퓨터 구현 시스템에 의해 실행 가능한 하나 이상의 명령어들을 저장하는 비일시적인 컴퓨터 판독 가능 매체이다.
전술한 실시예 및 다른 상술한 실시예는 각각 선택적으로 이하의 특징들 중 하나 이상을 포함할 수 있다.
제1의 특징은, 이하의 특징들 중 어느 것과도 병합될 수 있으며, 상기 동작들은: 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 질의와 각각의 후보 주제 사이의 유사성 점수를 산출하는 것 이전에, 복수의 후보 주제들로부터 제2의 하나 이상의 주제들을 선택하는 첫 번째 랭킹 매김을 수행하는 것과; 제2의 하나 이상의 주제들 각각이 특정 기준을 만족하지 않는다는 판단에 응답하여, 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 두 번째 랭킹 매김을 수행하는 것을 더 포함하며, 두 번째 랭킹 매김을 수행하는 것은 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 질의와 각각의 후보 주제 사이의 유사성 점수를 산출하는 것과; 이 유사성 점수에 따라 복수의 후보 주제들을 랭킹 매기는 것을 포함한다.
제2의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 사용자 클릭 데이터는 복수의 사용자로부터의 복수의 질의에 대응한 복수의 사용자 선택들을 포함하고, 복수의 사용자 선택들 각각은 사용자의 질의에 기초하여 사용자에게 제공된 복수의 후보 주제들 중에서 사용자의 질의에 연관성이 있는 주제라는 각각의 사용자의 선택을 포함한다.
제3의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 상기 동작들은 사용자 클릭 데이터에 기초하여 VPCG 모델을 트레이닝하는 것을 더 포함하며, VPCG 모델을 트레이닝하는 것은 사용자 클릭 데이터에서 복수의 사용자들로부터의 복수의 질의를 식별하는 것과; 사용자 데이터에서 복수의 사용자들로부터의 복수의 질의에 대응한 복수의 사용자 선택들을 식별하는 것과; 어휘 내의 복수의 단어 요소들에 관하여 복수의 질의들 각각의 벡터 표현을 결정하는 것; 및, 어휘 내의 복수의 단어 요소들에 관하여 복수의 후보 주제들 각각의 벡터 표현을 결정하는 것을 포함한다.
제4의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 어휘 내의 다수의 단어 요소들에 관하여 복수의 질의들 각각의 벡터 표현을 결정하는 것은 복수의 후보 주제들을 사용하여 다수의 질의들 각각을 표현하는 것을 포함하고; 어휘 내의 다수의 단어 요소들에 관하여 복수의 후보 주제들 각각의 벡터 표현을 결정하는 것은 복수의 질의들을 사용하여 다수의 후보 주제들 각각을 표현하는 것을 포함한다.
제5의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 복수의 후보 주제들을 사용하여 복수의 후보 주제들 각각을 표현하는 것은 수학식 1에 따라 복수의 질의들의 가중합에 의해 복수의 질의들 각각을 표현하는 것을 포함하고;
Figure pct00011
[수학식 1]
복수의 질의들을 사용하여 복수의 질의들 각각을 표현하는 것은 수학식 2에 따라 복수의 후보 주제들 각각을 표현하는 것을 포함한다.
Figure pct00012
[수학식 2]
수학식 1 및 수학식 2에서, dj (n)은 n회차 반복에서의 주제 dj의 벡터 표현을 나타내고; qi (n-1)은 n-1 회차 반복에서의 질의 qi의 벡터 표현을 나타내며; Ci,j는 사용자 클릭 데이터 내의 질의 qi에 대한 주제 dj의 사용자 클릭 또는 선택의 총 횟수를 나타내고; Q는 사용자 클릭 데이터 내의 사용자 질의의 총 개수를 나타내는데, 즉 qi, i=1,2, ..., Q이며, D는 사용자 클릭 데이터 내의 주제의 총 개수를 나타내는데, 즉 dj, j=1,2, ..., D이다.
제6의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 사용자 클릭 데이터를 기초로 트레이닝된 VPCG 모델에 기초하여 질의와 복수의 후보 주제들 각각의 사이에 유사성 점수를 산출하는 것은 어휘 내의 복수의 단어 요소들에 관하여 사용자로부터의 질의의 벡터 표현을 결정하는 것과; 어휘 내의 복수의 단어 요소들에 관하여 복수의 후보 주제들 각각의 벡터 표현을 결정하는 것; 및, 질의의 벡터 표현과 복수의 후보 주제들 각각의 벡터 표현 사이의 유사성 점수를 계산하는 것을 포함한다.
제7의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 어휘 내의 복수의 단어 요소들에 관하여 사용자로부터의 질의의 벡터 표현을 결정하는 것은 사용자 클릭 데이터에 기초하여 트레이닝된 ngram의 집합을 기초로 사용자로부터의 질의를 표현하는 것을 포함한다.
제8의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, ngram의 집합은 사용자 클릭 데이터 내의 복수의 질의들 각각의 벡터 표현에 기초한 어휘 내의 복수의 단어 요소들에 관하여 ngram의 집합 내의 각 ngram의 벡터 표현을 포함한다.
제9의 특징은, 전술한 특징들 또는 이하의 특징들 중 어느 것과도 병합될 수 있으며, 사용자 클릭 데이터에 기초하여 트레이닝된 ngram의 집합을 기초로 사용자로부터의 질의를 표현하는 것은 수학식 4에 따라 ngram의 집합의 가중합으로 사용자로부터의 질의를 표현하는 것을 포함한다.
Figure pct00013
[수학식 4]
수학식 4에서, uj는 ngram의 벡터 표현을 나타내고 j=1, ..., g이며; g는 ngram의 집합 내의 ngrams의 총 개수를 나타내고; wj는 uj에 대응하는 가중치를 나타내며; Gqi는 사용자 클릭 데이터를 기초로 트레이닝된 ngrams의 집합이다.
본 발명의 실시예 및 본 양태에 기술된 기능 동작은 디지털 전자 회로, 유형(有形)으로 실시된 컴퓨터 소프트웨어 또는 펌웨어, 본 양태에 개시된 구조 및 그 구조적 등가물을 포함하는 컴퓨터 하드웨어, 또는 이들의 하나 이상의 조합으로 구현될 수 있다. 기술된 발명의 소프트웨어 실시예는 하나 이상의 컴퓨터 프로그램으로, 즉 컴퓨터 또는 컴퓨터 구현 시스템에 의한 실행 또는 그 동작을 제어하기 위한 유형의 비일시적 컴퓨터 판독 가능 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로 구현될 수 있다. 이와 달리 또는 부가적으로, 프로그램 명령어들은 인공적으로 생성된 전파 신호(artificially generated propagated signal)에, 예를 들면 기계에 의해 생성된 전기, 광학, 또는 전자기 신호에 인코딩될 수 있는데, 이러한 신호는 컴퓨터 또는 컴퓨터 구현 시스템에 의해 실행될 수 있도록 수신 장치로의 전송을 위한 정보를 인코딩하기 위해 생성된다. 컴퓨터 저장 매체는 기계 판독 가능 저장 장치, 기계 판독 가능 저장 기판(substrate), 랜덤 또는 시리얼 액세스 메모리 장치, 또는 컴퓨터 저장 장치의 조합일 수 있다. 하나 이상의 컴퓨터를 구성한다는 것은 하나 이상의 컴퓨터에 의해 소프트웨어가 실행될 때, 특정 전산 동작이 수행될 수 있도록, 하나 이상의 컴퓨터에 하드웨어, 펌웨어, 또는 소프트웨어(또는 하드웨어, 펌웨어, 및 소프트웨어의 조합)가 설치됨을 의미한다.
"실시간(real-time, real time, 또는 realtime)", "실(고속)시간(real (fast) time:RFT)", "준실시간(near(ly) real-time: NRT)", "유사실시간(quasi real-time)"이라는 용어 또는 (본 기술분야의 통상의 기술자가 이해하는) 유사한 용어는, 개인이 동작과 응답이 실질적으로 동시에 발생한다고 인식할만큼 그 동작과 응답이 시간적으로 근접해 있음을 의미한다. 예를 들면, 데이터를 액세스하려는 개인의 동작에 따른 데이터의 디스플레이(또는 디스플레이의 개시)를 위한 응답에 걸리는 그 시간차는 l밀리초(ms) 미만, 1초 미만, 또는 5초 미만일 수 있다. 요청된 데이터가 즉시 디스플레이될(또는 디스플레이가 개시될) 필요는 없으나, 기술된 컴퓨팅 시스템의 처리 한계 및 예를 들면, 데이터의 수집, 정확한 측정, 분석, 처리, 저장, 또는 전송에 요구되는 시간을 고려하여, 어떠한 인위적인 지연도 없이 디스플레이된다(또는 디스플레이가 개시된다).
"데이터 처리 장치", "컴퓨터", 또는 "전자 컴퓨터 디바이스"라는 용어(또는 본 기술분야의 통상의 기술자가 이해하는 그 동등한 용어)는 데이터 처리 하드웨어를 지칭한다. 데이터 처리 하드웨어는, 예로서 프로그램 가능 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하는, 데이터 처리를 위한 모든 종류의 장치, 디바이스, 및 기계를 포함한다. 컴퓨터는 또한 전용 로직회로, 예를 들면 CPU(central processing unit), FPGA(field programmable gate array), 또는 ASIC(application-specific integrated circuit)이거나 이를 더 포함할 수 있다. 몇몇 실시예에서, 컴퓨터 또는 컴퓨터 구현 시스템 또는 전용 로직회로(또는 컴퓨터 또는 컴퓨터 구현 시스템과 전용 로직회로의 조합)은 하드웨어이거나 하드웨어 기초(또는 하드웨어와 하드웨어 기초 양자 모두의 조합)일 수 있다. 컴퓨터는 컴퓨터 프로그램의 실행 환경을 형성하는 코드, 예를 들면 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영체계, 또는 실행 환경의 조합을 구성하는 코드를 선택적으로 포함할 수 있다. 본 개시는 소정 유형의 운영체계, 예를 들면 LINUX, UNIX, WINDOWS, MAC OS, ANDROID, IOS, 다른 운영체계, 또는 운영체계의 조합을 갖는 컴퓨터 또는 컴퓨터 구현 시스템의 사용을 고려한다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 유닛, 모듈, 소프트웨어 모듈, 스크립트, 코드, 또는 다른 컴포넌트로도 지칭되거나 기술될 수 있는 컴퓨터 프로그램은 컴파일러형 또는 해석형 언어, 또는 선언형 또는 절차형 언어를 포함하는 임의의 형태의 프로그램밍 언어로 작성될 수 있으며, 전산 환경에서 사용할 수 있도록 예를 들면, 독립형 프로그램, 모듈, 컴포넌트, 또는 서브루틴으로 임의의 형태로 전개(deploy)될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있으나 꼭 그럴 필요는 없다. 그렇지 않을 수도 있다. 프로그램은 다른 프로그램 또는 데이터를 보유한 파일의 일부, 예를 들면 마크업 언어 문서에 저장된 하나 이상의 스크립트에, 해당 프로그램 전용의 단일 파일에, 또는 복수의 연계 파일(coordinated files), 예를 들면 하나 이상의 모듈, 서브프로그램, 또는 코드의 일부를 저장한 파일에 저장될 수 있다. 컴퓨터 프로그램은 단일 컴퓨터 상에서 또는 한 지점에 배치되거나 또는 복수의 지점에 걸쳐 분산되어 통신 네트워크로 상호 연결된 복수의 컴퓨터 상에서 실행되도록 전개될 수 있다.
다양한 도면에 예시된 프로그램들의 일부는 다양한 객체, 방법, 또는 다른 프로세스를 사용하여 기술된 특징과 기능을 구현하는 유닛 또는 모듈과 같은 개별 컴포넌트들로 예시될 수 있으나, 프로그램들은 대신에 적절히 다수의 서브유닛, 서브모듈, 제3자 서비스, 컴포넌트, 라이브러리, 및 다른 컴포넌트를 포함할 수 있다. 역으로, 다양한 컴포넌트들의 특징 및 기능은 적절히 단일 컴포넌트로 통합될 수도 있다. 전산 결정(computing determination)을 행하는데 사용되는 문턱값은 동적으로, 정적으로, 또는 동적 및 정적 양자 모두의 방식으로 결정될 수 있다.
기술된 방법, 프로세스, 또는 로직 플로우는 본 개시와 일치하는 기능의 하나 이상의 실례를 나타내며, 본 개시를 기술되거나 예시된 실시예에 국한시키기 위한 것이 아니라 기술된 원리와 특징에 일치하는 가장 넓은 범위에 부합하게 된다. 기술된 방법, 프로세스, 또는 로직 플로우는 입력 데이터에 대해 동작하고 출력 데이터를 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그램 가능 컴퓨터에 의해 수행될 수 있다. 본 방법, 프로세스, 또는 로직 플로우는 또한 전용 로직 회로, 예를 들면 CPU, FPGA, 또는 ASIC에 의해 수행될 수도 있고, 컴퓨터도 또한 이러한 전용 로직 회로, 예를 들면 CPU, FPGA, 또는 ASIC로 구현될 수도 있다.
컴퓨터 프로그램을 실행하기 위한 컴퓨터는 범용 또는 전용 마이크로프로세서, 양자 모두, 또는 다른 유형의 CPU 기초일 수 있다. 일반적으로, CPU는 명령어와 데이터를 메모리로부터 수신하고 또한 이에 기록한다. 컴퓨터의 필수 요소는 명령어를 실행하거나 수행하는 CPU와 명령어와 데이터를 저장하는 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 데이터 저장을 위한 하나 이상의 대용량 저장장치, 예를 들면 자기, 자기-광(magneto-optical) 디스크, 또는 광디스크를 포함하거나, 이들에 데이터를 송신 또는 수신 또는 송수신하기 위해 동작 가능하게 결합되게 된다. 하지만, 컴퓨터는 이러한 장치를 구비할 필요는 없다. 또한, 컴퓨터는 다른 장치, 예를 들면 휴대폰, PDA(personal digital assistant), 휴대용 오디오 또는 비디오 플레이어, 게임콘솔, GPS 수신기, 또는 이동형 메모리 저장장치에 내장될 수도 있다.
컴퓨터 프로그램 명령어와 데이터를 저장하기 위한 비일시적인 컴퓨터 판독 가능 매체는: 예로서 반도체 메모리 장치, 예를 들면 RAM(random access memory), ROM(read-only memory), PRAM(phase change memory), SRAM(static random access memory), DRAM(dynamic random access memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), 및 플래시 메모리 장치와; 광학 장치, 예를 들면 테이프, 카트리지, 카세트, 내장/착탈식 디스크; 자기-광 디스크; 및, 광학 메모리 장치, 예를 들면 DVD(digital versatile/video disc), CD(compact disc)-ROM, DVD+/-R, DVD-RAM, DVD-ROM, HD(high-definition/density)-DVD, 및 BD(BLU-RAY/BLU-RAY DISC), 및 다른 광학 메모리 기술을 포함하는 모든 형태의 영구/비영구 또는 휘발성/비휘발성 메모리, 매체, 및 메모리 장치를 포함할 수 있다. 메모리는 동적 정보, 또는 임의의 파라미터, 변수, 알고리즘, 명령어, 규칙, 제약, 또는 레퍼런스(reference)를 포함하는 다른 적절한 정보를 저장하는 캐시(caches), 클라스(classes), 프레임워크, 애플리케이션, 모듈, 백업 데이터, 잡(job), 웹 페이지, 웹 페이지 템플릿, 데이터 스트럭쳐, 데이터베이스 테이블, 리포지터리(repositories)를 포함하는, 다양한 객체 또는 데이터를 저장할 수 있다. 부가적으로, 메모리는 로그, 폴리시(policy), 보안 또는 액세스 데이터, 또는 리포팅 파일(reporting file)과 같은 다른 적절한 데이터를 포함할 수 있다. 프로세서와 메모리에는 전용 로직 회로가 부가되거나 또는 프로세서와 메모리가 이에 병합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 양태에 기술된 본 발명의 실시예는 사용자에게 정보를 디스플레이 하기 위한 디스플레이 장치, 예를 들면 CRT(cathode ray tube), LCD(liquid crystal display), LED(light emitting diode), 또는 플라즈마 모니터와, 사용자가 컴퓨터에 입력을 제공할 수 있게 해주는 키보드 및 포인팅 디바이스, 예를 들면 마우스, 트랙볼, 또는 트랙패드를 구비한 컴퓨터 상에서 구현될 수 있다. 감압식의 태블릿 컴퓨터 표면, 정전식 또는 전기 감지를 이용한 멀티 터치스크린, 또는 다른 유형의 터치스크린과 같은 터치스크린을 사용해서도 입력이 컴퓨터에 또한 제공될 수 있다. 다른 유형의 장치도 사용자와 상호 작용하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 (시각, 청각, 촉각, 또는 이들 피드백 유형의 조합과 같은) 임의의 형태의 감각 피드백(sensory feedback)일 수 있다. 사용자로부터의 입력은 음향, 음성언어(speech), 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자에 의해 사용되는 클라이언트 컴퓨팅 장치에 자료를 송신 및 수신함으로써(예를 들면, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 모바일 컴퓨팅 장치 상의 웹 브라우저에 웹 페이지를 전송함으로써) 사용자와 상호 작용할 수 있다.
"GUI(graphical user interface)"라는 용어는 하나 이상의 그래픽 사용자 인터페이스 및 특정 그래픽 사용자 인터페이스의 디스플레이 각각을 기술하기 위해 단수 또는 복수로 사용될 수 있다. 따라서, GUI는 정보를 처리하고 그 정보 결과를 사용자에게 효율적으로 제시하는 웹 브라우저, 터치스크린, 또는 CLI(command line interface)를 포함하나 이에 국한되지 않는 임의의 그래픽 사용자 인터페이스를 나타낼 수 있다. 일반적으로, GUI는 다수의 UI(user interface) 요소들을 포함할 수 있는데, 다수의 UI의 일부 또는 모두는 인터액티브 필드(interactive field), 풀다운(pull-down) 목록, 및 버튼과 같은 웹 브라우저와 연관된다. 이들 및 다른 UI 요소들은 웹 브라우저의 기능을 나타내거나 이에 관련될 수 있다.
본 양태에 기술된 본 발명의 실시예는, 예를 들면 데이터 서버로서의 백엔드(back-end) 컴포넌트를 포함하거나, 미들웨어(middleware) 컴포넌트, 예를 들면 애플리케이션 서버를 포함하거나, 프런트엔드(front-end) 컴포넌트, 예를 들면 사용자가 본 양태에 기술된 본 발명의 실시예와 상호 작용할 수 있게 하는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터를 포함하거나, 또는 하나 이상의 이러한 백엔드, 미들웨어, 또는 프런트엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템으로 구현될 수 있다. 시스템의 컴포넌트들은 유선 또는 무선 디지털 데이터 통신(또는 데이터 통신의 조합)의 임의의 형태 또는 매체, 예를 들면 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크의 예로는 LAN(local area network), RAN(radio access network), MAN(metropolitan area network), WAN(wide area network), WIMAX(Worldwide Interoperability for Microwave Access), 예를 들면 802.11 a/b/g/n 또는 802.20(또는 802.11x와 802.20의 조합 또는 본 개시에 부합하는 다른 프로토콜)을 이용한 WLAN(wireless local area network), 인터넷 전부 또는 일부, 다른 통신 네트워크, 또는 통신 네트워크의 조합이 포함된다. 통신 네트워크는 예를 들어, IP(Internet Protocol) 패킷, 프레임 릴레이 프레임, ATM(Asynchronous Transer Mode) 셀, 음성, 비디오, 데이터, 또는 네트워크 노드 사이의 다른 정보와 통신할 수 있다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 전형적으로 통신 네트워크를 통하여 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터 상에서 실행되며 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생된다.
본 양태가 많은 구체적인 실시 상세 사항을 포함하고 있으나, 이들은 어떤 발명의 개념의 범위도 또는 청구범위도 제한하는 것으로 해석되어서는 안되며, 오히려 특정 발명의 개념의 특정 실시예에 고유한 특징에 대한 기술(記述)로 해석되어야 한다. 별개의 실시예의 맥락에서 본 양태에 기술된 어떤 특징들은 통합적으로 단일 실시예로 구현될 수도 있다. 역으로, 단일 실시예의 맥락에서 기술된 다양한 특징들은 또한 별개로 또는 임의의 하부 조합의 형태로 복수의 실시예로 구현될 수도 있다. 또한, 전술한 특징들은 소정의 조합으로 동작하는 것으로 기술되고 심지어 초기에는 그렇게 청구되었으나, 청구된 조합으로부터의 하나 이상의 특징이 몇몇 경우에는 그 조합으로부터 제거될 수 있으며, 그래서 청구된 조합은 하부 조합 또는 하부 조합의 변형이 될 수 있다.
본 발명의 특정 실시예가 기술되었다. 기술된 실시예의 다른 실시예, 변경, 및 치환도 후속하는 특허청구범위의 범위 내에 있으며, 이는 본 기술분야의 통상의 기술자에게 자명하다 할 것이다. 동작들이 도면이나 특허청구범위에서는 특정 순서로 서술되었으나, 바람직한 결과를 달성하기 위해 이러한 동작들이 예시된 특정 순서로 또는 순차적으로 수행되거나, 모든 예시된 동작들이 수행되어야 함(어떤 동작들은 선택적인 것으로 간주될 수 있음)이 필수적인 것으로 이해되어서는 안 된다. 어떤 상황에서는, 멀티태스킹 또는 병렬 처리(또는 멀티태스킹과 병렬 처리의 조합)이 유익할 수 있으며 이렇게 수행되는 것이 적절한 것으로 여겨진다.
또한, 전술한 실시예에서의 다양한 시스템 모듈과 컴포넌트들의 분리 또는 통합이 모든 실시예에서 이러한 분리 또는 통합이 필수적인 것으로 이해되어서는 안 되며, 기술된 프로그램 컴포넌트들과 시스템은 전체적으로 단일 소트트웨어 제품으로 서로 통합되거나 또는 복수의 소프트웨어 제품으로 패키지화될 수 있음이 이해되어야 한다.
따라서, 전술한 실례의 실시예는 본 개시를 한정하거나 제한하지 않는다. 본 개시의 사상과 범위를 벗어남이 없이 다른 변경, 대체, 및 변형이 또한 가능하다.
모든 청구된 실시예는 적어도 컴퓨터 구현 방법; 컴퓨터 구현 방법을 수행하기 위한 컴퓨터 판독 가능 명령어들을 저장한 비일시적인 컴퓨터 판독 가능 매체; 및, 컴퓨터 구현 방법 또는 비일시적인, 컴퓨터 판독 가능 매체에 저장된 명령어들을 수행하도록 구성된 하드웨어 프로세서와 상호 동작 가능하게 결합된 컴퓨터 메모리를 포함하는 컴퓨터 시스템에 적용 가능한 것으로 여겨진다.
100: 본 개시의 일례의 환경 102: 사용자
104: 컴퓨터 106: 네트워크
108: 백엔드 시스템 110: 서버 시스템
112: 데이터 저장소 200: VPCG 모델
300: 본 개시의 프로세스 또는 방법 400: 본 개시의 시스템
402: 사용자 질의 404: 검색 엔진
406: 정교한 랭킹 엔진 412: 재랭킹 엔진
700: 컴퓨터 시스템 702: 컴퓨터
703: 시스템 버스 704: 인터페이스
705: 프로세서 706: 데이터베이스
707: 메모리

Claims (20)

  1. 컴퓨터 구현 방법에 있어서,
    데이터 서비스 엔진에서, 사용자로부터 문자열(string of characters)을 포함하는 질의(query)를 수신하는 단계;
    상기 데이터 서비스 엔진에 의해 상기 질의에 기초하여 복수의 후보 주제들(candidate topics)을 식별하는 단계;
    사용자 클릭 데이터에 기초하여 트레이닝된 VPCG(Vector Propagation On a Click Graph: 클릭 그래프 상의 벡터 전파) 모델에 기초하여 상기 질의와 상기 복수의 후보 주제들 각각 사이의 유사성 점수를 결정하는 단계;
    상기 유사성 점수에 기초하여 상기 복수의 후보 주제들을 랭킹 매기는 단계;
    상기 랭킹 매겨진 후보 주제들로부터 하나 이상의 주제를 선택하는 단계; 및
    상기 선택된 주제를 사용자 인터페이스(UI)를 통하여 출력하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 상기 질의와 각각의 후보 주제 사이의 유사성 점수를 결정하는 단계 이전에, 상기 복수의 후보 주제들로부터 제2의 하나 이상의 주제들을 선택하는 첫 번째 랭킹 매김을 수행하는 단계;
    상기 제2의 하나 이상의 주제들 각각이 특정 기준을 만족하지 않는다는 결정에 응답하여, 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 두 번째 랭킹 매김을 수행하는 단계
    를 더 포함하며,
    두 번째 랭킹 매김을 수행하는 단계는,
    사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 상기 질의와 각각의 후보 주제 사이의 유사성 점수를 결정하는 단계; 및
    상기 유사성 점수에 기초하여 상기 복수의 후보 주제들을 랭킹 매기는 단계
    를 포함하는 것인, 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 사용자 클릭 데이터는 복수의 사용자들로부터의 복수의 질의들에 응답하는 복수의 사용자 선택들을 포함하고,
    상기 복수의 사용자 선택들 각각은, 사용자의 질의에 기초하여 사용자에게 제공되는 복수의 후보 주제들 중에서 상기 사용자의 질의에 연관성이 있는 주제의 각각의 사용자의 선택을 포함하는 것인, 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 사용자 클릭 데이터에 기초하여 상기 VPCG 모델을 트레이닝하는 단계를 더 포함하며,
    상기 VPCG 모델을 트레이닝하는 단계는,
    상기 사용자 클릭 데이터에서 복수의 사용자들로부터의 복수의 질의를 식별하는 단계;
    상기 사용자 데이터에서 상기 복수의 사용자들로부터의 복수의 질의에 응답하는 복수의 사용자 선택들을 식별하는 단계;
    어휘(vocabulary) 내의 복수의 단어 요소들에 관하여 상기 복수의 질의들 각각의 벡터 표현(vector representation)을 결정하는 단계; 및
    상기 어휘 내의 복수의 단어 요소들에 관하여 상기 복수의 후보 주제들 각각의 벡터 표현을 결정하는 단계
    를 포함하는 것인, 컴퓨터 구현 방법.
  5. 제4항에 있어서,
    상기 어휘 내의 복수의 단어 요소들에 관하여 상기 복수의 질의들 각각의 벡터 표현을 결정하는 단계는, 상기 복수의 후보 주제들을 사용하여 상기 복수의 질의들 각각을 표현하는 단계를 포함하고;
    상기 어휘 내의 복수의 단어 요소들에 관하여 상기 복수의 후보 주제들 각각의 벡터 표현을 결정하는 단계는, 상기 복수의 질의들을 사용하여 상기 복수의 후보 주제들 각각을 표현하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    상기 복수의 후보 주제들을 사용하여 상기 복수의 후보 주제들 각각을 표현하는 단계는, 다음의 수학식에 따라 상기 복수의 질의들의 가중합(weighted sum)에 의해 상기 복수의 질의들 각각을 표현하는 단계를 포함하고;
    Figure pct00014

    상기 복수의 질의들을 사용하여 상기 복수의 질의들 각각을 표현하는 단계는 다음의 수학식에 따라 상기 복수의 후보 주제들 각각을 표현하는 단계를 포함하며;
    Figure pct00015

    상기 수학식들에서,
    dj (n)은 n회차 반복(iteration)에서의 주제 dj의 벡터 표현을 나타내고;
    qi (n-1)은 n-1 회차 반복에서의 질의 qi의 벡터 표현을 나타내며;
    Ci,j는 상기 사용자 클릭 데이터에서 상기 질의 qi에 대한 상기 주제 dj의 사용자 클릭 또는 선택의 총 횟수를 나타내고;
    Q는 상기 사용자 클릭 데이터 내의 사용자 질의의 총 개수를 나타내는데, 즉 qi, i=1,2, ..., Q이고,
    D는 상기 사용자 클릭 데이터 내의 주제의 총 개수를 나타내는데, 즉 dj, j=1,2, ..., D인 것인, 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 상기 질의와 상기 복수의 후보 주제들 각각 사이의 유사성 점수를 결정하는 단계는,
    어휘 내의 복수의 단어 요소들에 관하여 상기 사용자로부터의 질의의 벡터 표현을 결정하는 단계;
    상기 어휘 내의 복수의 단어 요소들에 관하여 상기 복수의 후보 주제들 각각의 벡터 표현을 결정하는 단계; 및
    상기 질의의 벡터 표현과 상기 복수의 후보 주제들 각각의 벡터 표현 사이의 유사성 점수를 계산하는 단계
    를 포함하는 것인, 컴퓨터 구현 방법.
  8. 제7항에 있어서,
    상기 어휘 내의 복수의 단어 요소들에 관하여 상기 사용자로부터의 질의의 벡터 표현을 결정하는 단계는, 상기 사용자 클릭 데이터에 기초하여 트레이닝된 ngram(엔그람)의 집합에 기초하여 상기 사용자로부터의 질의를 표현하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    상기 ngram의 집합은, 상기 사용자 클릭 데이터 내의 복수의 질의들 각각의 벡터 표현에 기초한 상기 어휘 내의 복수의 단어 요소들에 관한 상기 ngram의 집합 내의 각 ngram의 벡터 표현을 포함하는 것인, 컴퓨터 구현 방법.
  10. 제8항에 있어서,
    상기 사용자 클릭 데이터에 기초하여 트레이닝된 ngram의 집합에 기초하여 상기 사용자로부터의 질의를 표현하는 단계는, 다음의 수학식에 따라 상기 ngram의 집합의 가중합으로서 상기 사용자로부터의 질의를 표현하는 단계를 포함하며;
    Figure pct00016

    상기 수학식에서,
    uj는 ngram j의 벡터 표현을 나타내고, j=1, ..., g이며;
    g는 상기 ngram의 집합 내의 ngram의 총 개수를 나타내고;
    wj는 uj에 대응하는 가중치를 나타내며;
    Gqi는 상기 사용자 클릭 데이터에 기초하여 트레이닝된 상기 ngram의 집합인 것인, 컴퓨터 구현 방법.
  11. 컴퓨터 구현 시스템에 있어서,
    하나 이상의 컴퓨터; 및
    상기 하나 이상의 컴퓨터에 상호 동작 가능하게 결합되고, 상기 하나 이상의 컴퓨터에 의해 실행될 때 동작들을 수행하는 명령어들이 저장된 유형의 비일시적 기계 판독 가능 매체
    를 포함하고,
    상기 동작들은,
    데이터 서비스 엔진에서, 사용자로부터 문자열을 포함하는 질의를 수신하는 동작;
    상기 데이터 서비스 엔진에 의해 상기 질의에 기초하여 복수의 후보 주제들을 식별하는 동작;
    사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 상기 질의와 상기 복수의 후보 주제들 각각 사이의 유사성 점수를 결정하는 동작;
    상기 유사성 점수에 기초하여 상기 복수의 후보 주제들을 랭킹 매기는 동작;
    상기 랭킹 매겨진 후보 주제들로부터 하나 이상의 주제를 선택하는 동작; 및
    상기 선택된 주제를 사용자 인터페이스(UI)를 통하여 출력하는 동작
    을 포함하는 것인, 컴퓨터 구현 시스템.
  12. 제11항에 있어서,
    상기 동작들은,
    상기 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 상기 질의와 각각의 후보 주제 사이의 유사성 점수를 결정하는 동작 이전에, 상기 복수의 후보 주제들로부터 제2의 하나 이상의 주제들을 선택하는 첫 번째 랭킹 매김을 수행하는 동작; 및
    상기 제2의 하나 이상의 주제들 각각이 특정 기준을 만족하지 않는다는 결정에 응답하여, 상기 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 두 번째 랭킹 매김을 수행하는 동작
    을 더 포함하며,
    상기 두 번째 랭킹 매김을 수행하는 동작은,
    사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 상기 질의와 각각의 후보 주제 사이의 유사성 점수를 결정하는 동작; 및
    상기 유사성 점수에 기초하여 상기 복수의 후보 주제들을 랭킹 매기는 동작
    을 포함하는 것인, 컴퓨터 구현 시스템.
  13. 제11항에 있어서,
    상기 사용자 클릭 데이터는 복수의 사용자들로부터의 복수의 질의들에 응답하는 복수의 사용자 선택들을 포함하고,
    상기 복수의 사용자 선택들 각각은 사용자의 질의에 기초하여 사용자에게 제공되는 복수의 후보 주제들 중에서 상기 사용자의 질의에 연관성이 있는 주제의 각각의 사용자의 선택을 포함하는 것인, 컴퓨터 구현 시스템.
  14. 제11항에 있어서,
    상기 사용자 클릭 데이터에 기초하여 상기 VPCG 모델을 트레이닝하는 동작을 더 포함하며,
    상기 VPCG 모델을 트레이닝하는 동작은,
    상기 사용자 클릭 데이터에서 복수의 사용자들로부터의 복수의 질의를 식별하는 동작;
    상기 사용자 데이터에서 상기 복수의 사용자들로부터의 복수의 질의에 응답하는 복수의 사용자 선택들을 식별하는 동작;
    어휘 내의 복수의 단어 요소들에 관하여 상기 복수의 질의들 각각의 벡터 표현을 결정하는 동작; 및
    상기 어휘 내의 복수의 단어 요소들에 관하여 상기 복수의 후보 주제들 각각의 벡터 표현을 결정하는 동작
    을 포함하는 것인, 컴퓨터 구현 시스템.
  15. 제11항에 있어서,
    상기 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 상기 질의와 상기 복수의 후보 주제들 각각 사이의 유사성 점수를 결정하는 동작은,
    어휘 내의 복수의 단어 요소들에 관하여 상기 사용자로부터의 질의의 벡터 표현을 결정하는 동작;
    상기 어휘 내의 복수의 단어 요소들에 관하여 상기 복수의 후보 주제들 각각의 벡터 표현을 결정하는 동작; 및
    상기 질의의 벡터 표현과 상기 복수의 후보 주제들 각각의 벡터 표현 사이의 유사성 점수를 계산하는 동작
    을 포함하는 것인, 컴퓨터 구현 시스템.
  16. 동작들을 수행하기 위해 컴퓨터 구현 시스템에 의해 실행 가능한 하나 이상의 명령어들이 저장된 비일시적인 컴퓨터 판독 가능 매체에 있어서,
    상기 동작들은,
    데이터 서비스 엔진에서, 사용자로부터 문자열을 포함하는 질의를 수신하는 동작;
    상기 데이터 서비스 엔진에 의해, 상기 질의에 기초하여 복수의 후보 주제들을 식별하는 동작;
    사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 상기 질의와 상기 복수의 후보 주제들 각각 사이의 유사성 점수를 결정하는 동작;
    상기 유사성 점수에 기초하여 상기 복수의 후보 주제들을 랭킹 매기는 동작;
    상기 랭킹 매겨진 후보 주제들로부터 하나 이상의 주제를 선택하는 동작; 및
    상기 선택된 주제를 사용자 인터페이스(UI)를 통하여 출력하는 동작
    을 포함하는 것인, 비일시적인 컴퓨터 판독 가능 매체.
  17. 제16항에 있어서,
    상기 동작들은,
    상기 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 상기 질의와 각각의 후보 주제 사이의 유사성 점수를 결정하는 동작 이전에, 상기 복수의 후보 주제들로부터 제2의 하나 이상의 주제들을 선택하는 첫 번째 랭킹 매김을 수행하는 동작; 및
    상기 제2의 하나 이상의 주제들 각각이 특정 기준을 만족하지 않는다는 결정에 응답하여, 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 두 번째 랭킹 매김을 수행하는 동작
    을 더 포함하며,
    상기 두 번째 랭킹 매김을 수행하는 동작은,
    사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 상기 질의와 각각의 후보 주제 사이의 유사성 점수를 결정하는 동작; 및
    상기 유사성 점수에 기초하여 상기 복수의 후보 주제들을 랭킹 매기는 동작
    을 포함하는 것인, 비일시적인 컴퓨터 판독 가능 매체.
  18. 제16항에 있어서,
    상기 사용자 클릭 데이터는 복수의 사용자들로부터의 복수의 질의들에 응답하는 복수의 사용자 선택들을 포함하고,
    상기 복수의 사용자 선택들 각각은 사용자의 질의에 기초하여 상기 사용자에게 제공되는 복수의 후보 주제들 중에서 상기 사용자의 질의에 연관성이 있는 주제의 각각의 사용자의 선택을 포함하는 것인, 비일시적인 컴퓨터 판독 가능 매체.
  19. 제16항에 있어서,
    상기 동작들은 상기 사용자 클릭 데이터에 기초하여 상기 VPCG 모델을 트레이닝하는 동작을 더 포함하며,
    상기 VPCG 모델을 트레이닝하는 동작은,
    상기 사용자 클릭 데이터에서 복수의 사용자들로부터의 복수의 질의를 식별하는 동작;
    상기 사용자 데이터에서 상기 복수의 사용자들로부터의 복수의 질의에 응답하는 복수의 사용자 선택들을 식별하는 동작;
    어휘 내의 복수의 단어 요소들에 관하여 상기 복수의 질의들 각각의 벡터 표현을 결정하는 동작; 및
    상기 어휘 내의 복수의 단어 요소들에 관하여 상기 복수의 후보 주제들 각각의 벡터 표현을 결정하는 동작
    을 포함하는 것인, 비일시적인 컴퓨터 판독 가능 매체.
  20. 제16항에 있어서,
    상기 사용자 클릭 데이터에 기초하여 트레이닝된 VPCG 모델에 기초하여 상기 질의와 상기 복수의 후보 주제들 각각 사이의 유사성 점수를 결정하는 동작은,
    어휘 내의 복수의 단어 요소들에 관하여 상기 사용자로부터의 질의의 벡터 표현을 결정하는 동작;
    상기 어휘 내의 복수의 단어 요소들에 관하여 상기 복수의 후보 주제들 각각의 벡터 표현을 결정하는 동작; 및
    상기 질의의 벡터 표현과 상기 복수의 후보 주제들 각각의 벡터 표현 사이의 유사성 점수를 계산하는 동작
    을 포함하는 것인, 비일시적인 컴퓨터 판독 가능 매체.
KR1020197011610A 2018-10-24 2018-10-24 클릭 그래프 상의 벡터 전파 모델에 기초한 지능형 고객 서비스 KR102117796B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/111714 WO2020082272A1 (en) 2018-10-24 2018-10-24 Intelligent customer services based on a vector propagation on a click graph model

Publications (2)

Publication Number Publication Date
KR20200049696A true KR20200049696A (ko) 2020-05-08
KR102117796B1 KR102117796B1 (ko) 2020-06-02

Family

ID=66850329

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197011610A KR102117796B1 (ko) 2018-10-24 2018-10-24 클릭 그래프 상의 벡터 전파 모델에 기초한 지능형 고객 서비스

Country Status (9)

Country Link
US (2) US10592555B1 (ko)
EP (1) EP3665598A1 (ko)
JP (1) JP6799152B1 (ko)
KR (1) KR102117796B1 (ko)
CN (1) CN110582761B (ko)
MY (1) MY195969A (ko)
PH (1) PH12019500886A1 (ko)
SG (1) SG11201903588RA (ko)
WO (1) WO2020082272A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220037065A (ko) * 2020-09-17 2022-03-24 주식회사 포티투마루 질의 응답을 위한 페러프레이저 모델 생성 방법, 장치, 및 시스템
KR20220037064A (ko) * 2020-09-17 2022-03-24 주식회사 포티투마루 페러프레이저 모델을 이용한 질의 응답 검색 방법 및 검색 장치

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11032217B2 (en) * 2018-11-30 2021-06-08 International Business Machines Corporation Reusing entities in automated task-based multi-round conversation
US10909317B2 (en) * 2019-07-26 2021-02-02 Advanced New Technologies Co., Ltd. Blockchain-based text similarity detection method, apparatus and electronic device
US11947604B2 (en) * 2020-03-17 2024-04-02 International Business Machines Corporation Ranking of messages in dialogs using fixed point operations
US11327969B2 (en) * 2020-07-15 2022-05-10 Oracle International Corporation Term vector modeling of database workloads
JP7309669B2 (ja) * 2020-07-28 2023-07-18 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
CN112131491B (zh) * 2020-11-20 2021-02-26 震坤行网络技术(南京)有限公司 分层排序方法、计算设备和计算机可读存储介质
CN112329928B (zh) * 2020-12-30 2021-04-30 四川新网银行股份有限公司 基于异构模型的用户满意度分析方法
KR102389671B1 (ko) 2021-02-08 2022-04-25 주식회사 잡쇼퍼 인공지능 기반의 학업 탐구 주제 데이터베이스 생성 방법
US20230138579A1 (en) * 2021-10-29 2023-05-04 Microsoft Technology Licensing, Llc Anchor-based collaborative filtering

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070038146A (ko) * 2004-07-13 2007-04-09 구글, 인코포레이티드 검색 결과에서 배치 내용 정렬의 개인화

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089226B1 (en) * 2001-06-28 2006-08-08 Microsoft Corporation System, representation, and method providing multilevel information retrieval with clarification dialog
CN100418093C (zh) * 2006-04-13 2008-09-10 北大方正集团有限公司 一种基于簇排列的面向主题或查询的多文档摘要方法
US7836058B2 (en) * 2008-03-27 2010-11-16 Microsoft Corporation Web searching
US20100114929A1 (en) * 2008-11-06 2010-05-06 Yahoo! Inc. Diverse query recommendations using clustering-based methodology
US20100114928A1 (en) * 2008-11-06 2010-05-06 Yahoo! Inc. Diverse query recommendations using weighted set cover methodology
US9336315B2 (en) * 2010-01-19 2016-05-10 Ebay Inc. Personalized recommendation of a volatile item
US8260664B2 (en) * 2010-02-05 2012-09-04 Microsoft Corporation Semantic advertising selection from lateral concepts and topics
US20110270828A1 (en) * 2010-04-29 2011-11-03 Microsoft Corporation Providing search results in response to a search query
US8762326B1 (en) 2010-09-23 2014-06-24 Google Inc. Personalized hot topics
US8977625B2 (en) * 2010-12-15 2015-03-10 Microsoft Technology Licensing, Llc Inference indexing
CN102883841B (zh) 2011-05-10 2015-01-28 住友电工硬质合金株式会社 表面被覆切削工具
US8838564B2 (en) * 2011-05-19 2014-09-16 Yahoo! Inc. Method to increase content relevance using insights obtained from user activity updates
US8700544B2 (en) * 2011-06-17 2014-04-15 Microsoft Corporation Functionality for personalizing search results
US9129606B2 (en) * 2011-09-23 2015-09-08 Microsoft Technology Licensing, Llc User query history expansion for improving language model adaptation
US20140006012A1 (en) * 2012-07-02 2014-01-02 Microsoft Corporation Learning-Based Processing of Natural Language Questions
US9171083B2 (en) * 2013-03-14 2015-10-27 FortyTwo, Inc. Expert network in a method and apparatus for keeping and finding information
US9400840B2 (en) * 2013-03-25 2016-07-26 Salesforce.Com, Inc. Combining topic suggestions from different topic sources to assign to textual data items
US9355088B2 (en) * 2013-07-12 2016-05-31 Microsoft Technology Licensing, Llc Feature completion in computer-human interactive learning
US20150339573A1 (en) * 2013-09-30 2015-11-26 Manyworlds, Inc. Self-Referential Semantic-based Method, System, and Device
CN103699625B (zh) * 2013-12-20 2017-05-10 北京百度网讯科技有限公司 基于关键词进行检索的方法及装置
US9892208B2 (en) * 2014-04-02 2018-02-13 Microsoft Technology Licensing, Llc Entity and attribute resolution in conversational applications
JP2017514256A (ja) 2014-04-24 2017-06-01 セマンティック・テクノロジーズ・プロプライエタリー・リミテッド オントロジアライナ方法、セマンティックマッチング方法及び装置
US9679558B2 (en) * 2014-05-15 2017-06-13 Microsoft Technology Licensing, Llc Language modeling for conversational understanding domains using semantic web resources
CN104765769B (zh) * 2015-03-06 2018-04-27 大连理工大学 一种基于词矢量的短文本查询扩展及检索方法
CN104899322B (zh) * 2015-06-18 2021-09-17 百度在线网络技术(北京)有限公司 搜索引擎及其实现方法
US9471668B1 (en) 2016-01-21 2016-10-18 International Business Machines Corporation Question-answering system
CN106997379B (zh) * 2017-03-20 2020-08-04 杭州电子科技大学 一种基于图片文本点击量的相近文本的合并方法
CN108804443A (zh) * 2017-04-27 2018-11-13 安徽富驰信息技术有限公司 一种基于多特征融合的司法类案搜索方法
CN108345672A (zh) * 2018-02-09 2018-07-31 平安科技(深圳)有限公司 智能应答方法、电子装置及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070038146A (ko) * 2004-07-13 2007-04-09 구글, 인코포레이티드 검색 결과에서 배치 내용 정렬의 개인화

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220037065A (ko) * 2020-09-17 2022-03-24 주식회사 포티투마루 질의 응답을 위한 페러프레이저 모델 생성 방법, 장치, 및 시스템
KR20220037064A (ko) * 2020-09-17 2022-03-24 주식회사 포티투마루 페러프레이저 모델을 이용한 질의 응답 검색 방법 및 검색 장치
KR20220145318A (ko) * 2020-09-17 2022-10-28 주식회사 포티투마루 페러프레이저 모델을 이용한 질의 응답 검색 방법 및 검색 장치

Also Published As

Publication number Publication date
CN110582761B (zh) 2023-05-30
US10824679B2 (en) 2020-11-03
US10592555B1 (en) 2020-03-17
SG11201903588RA (en) 2020-05-28
KR102117796B1 (ko) 2020-06-02
MY195969A (en) 2023-02-27
PH12019500886A1 (en) 2019-06-17
US20200183985A1 (en) 2020-06-11
JP2021501378A (ja) 2021-01-14
CN110582761A (zh) 2019-12-17
WO2020082272A1 (en) 2020-04-30
EP3665598A4 (en) 2020-06-17
EP3665598A1 (en) 2020-06-17
JP6799152B1 (ja) 2020-12-09

Similar Documents

Publication Publication Date Title
KR102117796B1 (ko) 클릭 그래프 상의 벡터 전파 모델에 기초한 지능형 고객 서비스
US11914962B2 (en) Reduced training intent recognition techniques
US20190236204A1 (en) Predicting Intent of a User from Anomalous Profile Data
US20190237068A1 (en) Customizing Responses to Users in Automated Dialogue Systems
US10623573B2 (en) Personalized support routing based on paralinguistic information
US11645470B2 (en) Automated testing of dialog systems
US11531858B2 (en) Cognitive conversational agent for providing personalized insights on-the-fly
US20170206891A1 (en) Material selection for language model customization in speech recognition for speech analytics
US11243991B2 (en) Contextual help recommendations for conversational interfaces based on interaction patterns
US10943070B2 (en) Interactively building a topic model employing semantic similarity in a spoken dialog system
US11276099B2 (en) Multi-perceptual similarity detection and resolution
US9972308B1 (en) Splitting utterances for quick responses
US20220138770A1 (en) Method and apparatus for analyzing sales conversation based on voice recognition
US20220156582A1 (en) Generating Knowledge Graphs From Conversational Data
US20210150486A1 (en) Dynamic determination of job requirements and candidate assessment
US11775894B2 (en) Intelligent routing framework
US20230072171A1 (en) System and method for training and refining machine learning models
CN116583837A (zh) 用于自然语言处理的基于距离的logit值
KR20220103147A (ko) 대조적인 시간 패턴들에 대한 가상 에이전트 대화 시스템의 대화 로그들 검색
KR20210009266A (ko) 음성 인식 기반의 세일즈 대화 분석 방법 및 장치
US11727921B2 (en) Self-improving intent classification
CN114281990A (zh) 文档分类方法及装置、电子设备和介质
US20230316101A1 (en) Knowledge Graph Driven Content Generation
US20170116629A1 (en) System for searching existing customer experience information through cross-industries from text descriptions on a customer experience
US20240127026A1 (en) Shallow-deep machine learning classifier and method

Legal Events

Date Code Title Description
GRNT Written decision to grant