KR20220151521A - 임베딩 유사도에 기반한 상품 검색 방법, 컴퓨터 장치, 및 컴퓨터 프로그램 - Google Patents

임베딩 유사도에 기반한 상품 검색 방법, 컴퓨터 장치, 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20220151521A
KR20220151521A KR1020210087850A KR20210087850A KR20220151521A KR 20220151521 A KR20220151521 A KR 20220151521A KR 1020210087850 A KR1020210087850 A KR 1020210087850A KR 20210087850 A KR20210087850 A KR 20210087850A KR 20220151521 A KR20220151521 A KR 20220151521A
Authority
KR
South Korea
Prior art keywords
product
embedding
query
search
model
Prior art date
Application number
KR1020210087850A
Other languages
English (en)
Other versions
KR102640369B1 (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 JP2022066748A priority Critical patent/JP7343649B2/ja
Publication of KR20220151521A publication Critical patent/KR20220151521A/ko
Application granted granted Critical
Publication of KR102640369B1 publication Critical patent/KR102640369B1/ko

Links

Images

Classifications

    • 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/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • 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/36Creation of semantic tools, e.g. ontology or thesauri
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • 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)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Computational Linguistics (AREA)
  • Finance (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Accounting & Taxation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Economics (AREA)
  • Computing Systems (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

임베딩 유사도에 기반한 상품 검색 방법, 컴퓨터 장치, 및 컴퓨터 프로그램이 개시된다. 상품 검색 방법은, 상품 검색 서비스 상에서 출현하는 텍스트를 이용하여 질의와 상품 간의 임베딩 매칭을 기반으로 상품을 검색하는 임베딩 기반 검색 모델을 생성하는 단계; 및 입력 질의에 대해 상기 임베딩 기반 검색 모델을 이용하여 상기 입력 질의의 임베딩과 매칭되는 상품 검색 결과를 제공하는 단계를 포함할 수 있다.

Description

임베딩 유사도에 기반한 상품 검색 방법, 컴퓨터 장치, 및 컴퓨터 프로그램{METHOD, COMPUTER DEVICE, AND COMPUTER PROGRAM TO SEARCH FOR PRODUCTS BASED ON EMBEDDING SIMILARITY}
아래의 설명은 상품을 검색하는 기술에 관한 것이다.
일반적인 상품 검색은 질의와 상품의 텀(term)을 분석하여 질의의 텀과 매칭되는 상품을 검색 결과로 제공한다.
상품 검색 기술의 일례로, 한국 공개특허공보 제10-2007-0097720호(공개일 2007년 10월 05일)에는 질의어 매칭을 통한 상품 검색 결과를 제공하는 기술이 개시되어 있다.
텀 매칭 기반 상품 검색의 경우 질의의 텀과 동일한 의미이지만 다른 형태의 텀으로 표현된 상품을 검색 결과로 제공할 수 없다.
검색 빈도가 낮은 질의나 자연어에 가까운 질의에 대해서는 연관 상품이 존재하더라도 질의와의 텀 매칭이 어려워 상품 검색 결과를 제공하지 못하는 경우가 있다.
질의와 상품을 텀 단위가 아닌 임베딩 단위로 분석하여 매칭 및 랭킹에 적용할 수 있는 방법 및 장치를 제공한다.
질의와 상품 간의 임베딩 유사도에 기반하여 상품을 검색할 수 있는 방법 및 장치를 제공한다.
컴퓨터 장치에서 실행되는 상품 검색 방법에 있어서, 상기 컴퓨터 장치는 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 상품 검색 방법은, 상기 적어도 하나의 프로세서에 의해, 상품 검색 서비스 상에서 출현하는 텍스트를 이용하여 질의와 상품 간의 임베딩 매칭을 기반으로 상품을 검색하는 임베딩 기반 검색 모델을 생성하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 입력 질의에 대해 상기 임베딩 기반 검색 모델을 이용하여 상기 입력 질의의 임베딩과 매칭되는 상품 검색 결과를 제공하는 단계를 포함하는 상품 검색 방법을 제공한다.
일 측면에 따르면, 상기 상품 검색 결과를 제공하는 단계는, 상기 임베딩 기반 검색 모델과 함께 질의와 상품 간의 텀 매칭을 기반으로 상품을 검색하는 텀 매칭 검색 모델을 연동하여 임베딩 매칭 상품과 텀 매칭 상품을 상기 상품 검색 결과로 제공할 수 있다.
다른 측면에 따르면, 상기 임베딩 기반 검색 모델을 생성하는 단계는, 상품 정보를 유지하는 상품 데이터베이스와 사용자로부터 등록된 상품 리뷰나 질의의 텍스트로 구성된 쇼핑 문서 집합(shopping corpus) 및 쇼핑 도메인에서 출력하는 텍스트로 구성된 쇼핑 어휘 사전(shopping vocabulary) 중 적어도 하나로부터 텍스트를 추출하여 상기 임베딩 기반 검색 모델을 생성하기 위한 학습 데이터로 이용하되 수치형 필드의 경우 텍스트로 변환하여 상기 학습 데이터로 이용하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 임베딩 기반 검색 모델을 생성하는 단계는, 질의와 상품 간 클릭 로그에 기초하여 연관도에 따른 질의-상품 쌍 데이터를 파인튜닝 데이터로 생성하는 단계; 및 상기 파인튜닝 데이터를 이용하여 상기 임베딩 기반 검색 모델을 추가 학습하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 파인튜닝 데이터로 생성하는 단계는, 질의와 상품 간의 연관도에 대응되는 레이블을 상기 질의-상품 쌍 데이터에 부여하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 파인튜닝 데이터로 생성하는 단계는, 질의와 상품 간의 연관도를 나타내는 지표에 기초하여 상기 질의-상품 쌍 데이터의 중요도를 차등 적용하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 파인튜닝 데이터로 생성하는 단계는, 질의에 대한 클릭 상품과 유사한 상품 중 질의의 텀과 매칭되지 않은 상품을 네거티브 샘플링(negative sampling)하여 질의와 상품 간에 연관도가 낮은 질의-상품 쌍 데이터로 생성하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 상품 검색 결과를 제공하는 단계는, 상품 임베딩 집합으로 학습된 클러스터 센트로이드(cluster centroid)에서 상품의 임베딩에 대응되는 센트로이드로 상품을 색인하는 단계; 및 색인된 상품 중 상기 입력 질의의 임베딩에 대응되는 센트로이드와 동일한 센트로이드의 상품을 검색하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 상품 검색 결과를 제공하는 단계는, 상품 임베딩 집합으로 학습된 PQ(product quantization) 코드북을 이용하여 상기 입력 질의의 임베딩에 대응되는 PQ 코드와 동일한 PQ 코드의 상품을 검색하는 단계를 더 포함할 수 있다.
또 다른 측면에 따르면, 상기 상품을 검색하는 단계는, 상기 입력 질의의 임베딩에 대응되는 센트로이드의 품질에 따라 상기 상품 검색 결과에서 상기 임베딩 기반 검색 모델에 의한 임베딩 매칭 상품을 제외시키는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 상품 검색 결과를 제공하는 단계는, 상기 임베딩 기반 검색 모델에 의한 임베딩 매칭 상품에 대한 가중치와 상기 텀 매칭 검색 모델에 의한 텀 매칭 상품에 대한 가중치를 상기 입력 질의에 따라 적응적으로 설정하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 상품 검색 결과를 제공하는 단계는, 상기 임베딩 기반 검색 모델을 통한 상기 입력 질의와의 임베딩 유사도와 상기 텀 매칭 검색 모델을 통한 상기 입력 질의와의 텀 유사도를 이용하여 상기 상품 검색 결과에 대한 랭킹을 제공하는 단계를 포함하고, 상기 상품 검색 결과에 대한 랭킹을 제공하는 단계는, 상기 임베딩 유사도에 대한 가중치와 상기 텀 유사도에 대한 가중치를 상기 입력 질의에 따라 적응적으로 설정하는 단계를 포함할 수 있다.
상기 상품 검색 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독가능한 기록 매체에 저장되는 컴퓨터 프로그램을 제공한다.
컴퓨터 장치에 있어서, 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상품 검색 서비스 상에서 출현하는 텍스트를 이용하여 질의와 상품 간의 임베딩 매칭을 기반으로 상품을 검색하는 임베딩 기반 검색 모델을 생성하고, 입력 질의에 대해 상기 임베딩 기반 검색 모델을 이용하여 상기 입력 질의의 임베딩과 매칭되는 상품 검색 결과를 제공하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.
본 발명의 실시예들에 따르면, 질의의 임베딩과 유사한 임베딩을 가지는 상품을 검색 결과로 제공함으로써 질의에 대해 보다 정확한 상품 검색 결과를 제공할 수 있다.
본 발명의 실시예들에 따르면, 질의와 상품 간의 임베딩 유사도를 검색 결과의 랭킹을 결정하기 위한 피처(feature)로 활용함으로써 검색 랭킹의 품질을 개선할 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따른 컴퓨터 장치의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 컴퓨터 장치가 수행할 수 있는 방법의 예를 도시한 순서도이다.
도 5는 본 발명의 일실시예에 있어서 상품 검색을 위한 기본 모델을 사전학습하는 과정을 설명하기 위한 예시 도면이다.
도 6은 본 발명의 일실시예에 있어서 기본 모델을 파인튜닝하여 임베딩 검색 모델을 생성하는 과정을 설명하기 위한 예시 도면이다.
도 7 내지 도 9는 본 발명의 일실시예에 있어서 임베딩 유사도를 기반으로 상품을 검색하는 과정을 설명하기 위한 예시 도면이다.
도 10은 본 발명의 일실시예에 있어서 다른 검색 모델과의 앙상블을 통해 검색 결과를 제공하는 과정을 설명하기 위한 예시 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명의 실시예들은 질의와 연관된 상품을 매칭 및 랭킹하는 상품 검색 기술에 관한 것이다.
본 명세서에서 구체적으로 개시되는 것들을 포함하는 실시예들은 질의와 상품의 임베딩을 기반으로 검색 결과를 제공하기 위한 매칭 및 랭킹 작업을 수행할 수 있고, 이를 통해 검색의 효율성, 정확성, 품질 등의 측면에 있어서 상당한 장점들을 달성할 수 있다.
본 발명의 실시예들에 따른 상품 검색 장치는 적어도 하나의 컴퓨터 장치에 의해 구현될 수 있으며, 본 발명의 실시예들에 따른 상품 검색 방법은 상품 검색 장치에 포함되는 적어도 하나의 컴퓨터 장치를 통해 수행될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 상품 검색 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 상품 검색 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.
도 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), 모델 튜닝부(320), 및 상품 검색부(330)를 포함할 수 있다. 실시예에 따라 프로세서(220)의 구성요소들은 선택적으로 프로세서(220)에 포함되거나 제외될 수도 있다. 또한, 실시예에 따라 프로세서(220)의 구성요소들은 프로세서(220)의 기능의 표현을 위해 분리 또는 병합될 수도 있다.
이러한 프로세서(220) 및 프로세서(220)의 구성요소들은 도 3의 상품 검색 방법이 포함하는 단계들(S410 내지 S440)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다. 예를 들어, 프로세서(220) 및 프로세서(220)의 구성요소들은 메모리(210)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다.
여기서, 프로세서(220)의 구성요소들은 컴퓨터 장치(200)에 저장된 프로그램 코드가 제공하는 명령에 따라 프로세서(220)에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 컴퓨터 장치(200)가 쇼핑 모델을 학습하도록 상술한 명령에 따라 컴퓨터 장치(200)를 제어하는 프로세서(220)의 기능적 표현으로서 모델 학습부(310)가 이용될 수 있다.
프로세서(220)는 컴퓨터 장치(200)의 제어와 관련된 명령이 로딩된 메모리(210)로부터 필요한 명령을 읽어들일 수 있다. 이 경우, 상기 읽어들인 명령은 프로세서(220)가 이후 설명될 단계들(S410 내지 S440)을 실행하도록 제어하기 위한 명령을 포함할 수 있다.
이후 설명될 단계들(S410 내지 S440)은 도 4에 도시된 순서와 다른 순서로 수행될 수 있으며, 단계들(S410 내지 S440) 중 일부가 생략되거나 추가의 과정이 더 포함될 수 있다.
도 4를 참조하면, 단계(S410)에서 모델 학습부(310)는 상품 검색 서비스를 제공하는 쇼핑 도메인의 텍스트를 이용하여 상품 검색을 위한 기본 모델을 사전학습(pretraining)할 수 있다. 예를 들면, 모델 학습부(310)는 BERT(Bidirectional Encoder Representations from Transformer) 모델을 기반으로 쇼핑 도메인의 텍스트를 잘 이해하는 모델을 생성할 수 있다. 이때, 모델 학습부(310)는 상품 정보를 유지하는 상품 데이터베이스와 상품 구매자로부터 등록된 상품 리뷰나 질의 등으로부터 텍스트를 추출하여 쇼핑 문서 집합(shopping corpus)을 생성할 수 있다. 그리고, 모델 학습부(310)는 쇼핑 도메인에서 빈번하게 출현하는 단어나 구 등의 텍스트를 추출하여 쇼핑 어휘 사전(shopping vocabulary)을 생성할 수 있다. 모델 학습부(310)는 쇼핑 문서 집합과 쇼핑 어휘 사전 중 적어도 하나를 이용하여 BERT 모델을 사전학습하는 방식을 통해 기본 모델을 생성할 수 있다. BERT 모델뿐만 아니라, 임베딩을 추출할 수 있고 텍스트의 의미를 학습할 수 있는 임의의 사전학습 언어 모델(PLM ; pretrained language model)을 활용하여 기본 모델을 만들 수 있다.
단계(S420)에서 모델 튜닝부(320)는 질의와 상품의 임베딩을 기초로 기본 모델을 파인튜닝(finetuning)함으로써 실제 상품 검색에 활용할 수 있는 임베딩 매칭 기반 상품 검색 모델(이하, '임베딩 검색 모델'이라 칭함)을 생성할 수 있다. 일례로, 모델 튜닝부(320)는 질의와 상품 간 클릭 로그(질의에 대한 검색 결과로 제공된 상품 중 클릭된 상품)와 상품 데이터베이스를 분석하여 질의에 대해 연관도가 높은 상품과 연관도가 낮은 상품을 구분하여 파인튜닝 데이터를 생성할 수 있다. 모델 튜닝부(320)는 파인튜닝 데이터로 생성된 질의와 상품을 기본 모델에 입력하여 질의의 임베딩 벡터와 상품의 임베딩 벡터를 생성할 수 있다. 이때, 질의에 대해 연관도가 높은 상품은 임베딩 벡터 간의 유사도(예를 들어, 코사인 유사도)가 증가하도록 기본 모델을 학습하고, 반대로 연관도가 낮은 상품은 임베딩 벡터 간의 유사도(예를 들어, 코사인 유사도)가 감소하도록 기본 모델을 학습할 수 있다. 모델 튜닝부(320)는 기본 모델에 파인튜닝 데이터를 이용한 학습 과정을 거침으로써 임베딩 검색 모델을 생성할 수 있다.
단계(S430)에서 상품 검색부(330)는 실시간 검색 과정에서 질의가 주어지는 경우 주어진 질의의 임베딩과 유사한 임베딩을 가지는 상품을 검색할 수 있다. 상품 검색을 위해 먼저, 상품 검색부(330)는 임베딩 검색 모델을 활용하여 전체 상품에 대한 임베딩을 추출할 수 있고, 상품 임베딩에 K-평균 클러스터링(K-means clustering) 알고리즘을 적용하여 적절한 개수의 클러스터 센트로이드(cluster centroid)를 학습할 수 있다. 상품 검색부(330)는 오프라인 색인 단계에서 상품 각각에 대하여 해당 상품과 가장 가까운 센트로이드 아이디를 활용한 상품 센트로이드 텀을 추출하여 색인할 수 있다. 이후, 상품 검색부(330)는 실시간 검색 단계에서 입력된 질의의 임베딩에 해당하는 질의 센트로이드 텀과 동일한 상품 센트로이드 텀을 가지는 상품을 매칭하여 검색할 수 있다. 아울러, 상품 검색부(330)는 상품 임베딩 집합으로부터 학습된 PQ(product quantization) 코드북을 활용하여 질의 임베딩의 PQ 코드와 동일한 PQ 코드를 가지는 상품을 매칭하여 검색할 수 있다.
단계(S440)에서 상품 검색부(330)는 임베딩 검색 모델을 이용한 검색 결과를 질의와 상품 간의 임베딩 유사도를 기준으로 랭킹(순위화)할 수 있다. 다시 말해, 상품 검색부(330)는 질의와 상품 간의 임베딩 유사도를 검색 결과의 랭킹을 결정하기 위한 피처로 활용할 수 있다.
더 나아가, 상품 검색부(330)는 상품 매칭(S430)과 상품 랭킹(S440)에 있어 질의에 따라 임베딩 검색 모델과 적어도 하나의 다른 검색 모델을 적응적으로 앙상블(ensemble)할 수 있다. 일례로, 상품 검색부(330)는 주어진 질의에 대해 임베딩 검색 모델과 함께, 질의의 텀과 동일한 텀을 가지는 상품을 검색하는 텀 매칭 검색 모델을 연동하여 검색 결과를 제공할 수 있다. 이때, 상품 검색부(330)는 상품 매칭 관점에서 텀 매칭으로 검색된 상품에 대한 가중치와 임베딩 매칭으로 검색된 상품에 대한 가중치를 질의에 따라 적응적으로 설정할 수 있다. 경우에 따라서는 검색 결과에 대한 정확도를 높은 수준으로 유지하기 위해 질의의 임베딩과 가장 가까운 센트로이드의 품질에 따라 임베딩 검색 모델을 이용한 검색을 생략하는 로직을 적용할 수 있다. 그리고, 상품 검색부(330)는 질의와 상품 간의 텀 유사도와 임베딩 유사도를 랭킹 피처로 활용함에 있어 텀 유사도에 대한 가중치와 임베딩 유사도에 대한 가중치를 질의에 따라 적응적으로 설정할 수 있다.
도 5는 본 발명의 일실시예에 있어서 상품 검색을 위한 기본 모델을 사전학습하는 과정을 설명하기 위한 예시 도면이다.
실제 서비스에서는 질의와 상품의 임베딩을 추출하는 작업이 빠르게 동작할 수 있도록 모델 구조를 경량화하는 것이 필요하다. 임베딩 추출 과정에서 요구되는 목표 실시간 처리속도와 처리량 지표를 설정한 후 설정된 지표를 달성할 수 있는 수준의 모델 구조를 설계한다.
일례로, 도 5를 참조하면 BERT 모델(50)로부터 목표 지표를 만족하는 경량화 모델의 파라미터를 증류(distillation)하거나 혹은 파라미터가 초기화된 경량화 모델로 구성된 BERT 모델(50)에 학습 문서인 쇼핑 어휘 사전(501)과 쇼핑 문서 집합(502)을 직접 사전학습하는 방식을 적용할 수 있다.
여러 버전의 모델 구조로 경량화된 BERT 모델(50)에 쇼핑 도메인의 텍스트로 이루어진 쇼핑 어휘 사전(501)과 쇼핑 문서 집합(502)을 전이 학습(transfer learning)하는 과정을 통해서 다운스트림 작업(downstream task)의 성능을 비교하여 가장 좋은 성능의 모델을 기본 모델(510)로 선택할 수 있다.
모델 학습부(310)는 쇼핑 어휘 사전(501)과 쇼핑 문서 집합(502)을 이용하여 경량화된 구조의 BERT 모델(50)을 사전학습하는 방식으로 기본 모델(510)을 생성할 수 있다.
모델 학습부(310)는 쇼핑 문서 집합(502)을 생성하는 과정에서 일반적인 웹 문서가 아닌 쇼핑 도메인의 특성을 활용할 수 있다. 모델 학습부(310)는 상품 데이터베이스와 상품 리뷰 등으로부터 질의와의 텀 매칭에 활용 가능한 모든 필드의 텍스트를 추출한 후 형태소 분석기를 사용하여 추출된 텍스트를 전처리 및 정규화할 수 있다. 모델 학습부(310)는 예를 들어, 상품의 가격, 사이즈, 카테고리 아이디, 색상 코드, 제조사 일련번호 등 텀 매칭에 활용하기 어려운 수치형 필드를 텍스트로 추출하여 학습에 활용할 수 있다. 예를 들어, 상품 가격이 11000원인 경우 '1만원대' 등과 같이 가격대를 나타내는 텍스트로 변환하여 학습에 활용할 수 있다.
쇼핑 문서 집합(502)을 생성하는 과정에서 상품 데이터베이스만을 활용하는 것이 아니라, 사용자가 입력한 리뷰나 질의 등으로부터 얻은 데이터를 함께 활용할 수 있다. 예를 들어, 사용자 질의에 포함되는 가격대 정보의 분포를 분석하여 가격대 텍스트를 추출하는 구간과 간격을 학습할 수 있다.
본 실시예에서는 쇼핑 도메인의 특징을 고려하여 기본 모델(510)을 생성하기 위한 사전학습 데이터를 구성할 수 있다.
도 6은 본 발명의 일실시예에 있어서 기본 모델을 파인튜닝하여 임베딩 검색 모델을 생성하는 과정을 설명하기 위한 예시 도면이다.
도 6을 참조하면, 모델 튜닝부(320)는 기본 모델(510)에 파인튜닝 과정을 적용하여 질의와 상품의 임베딩을 추출하는데 활용할 수 있는 임베딩 검색 모델(620)을 생성할 수 있다.
본 실시예에 따른 파인튜닝 과정에서는 주로 검색 결과 내에서 클릭된 상품 데이터를 활용할 수 있다. 질의의 검색 결과에서 클릭된 상품 클릭 로그와 상품 데이터베이스를 조인 및 분석하여 질의에 대해 연관도가 높은 상품과 연관도가 낮은 상품을 구분하여 연관도가 높은 질의-상품 쌍 데이터와 연관도가 낮은 질의-상품 쌍 데이터를 파인튜닝 데이터로 생성할 수 있다.
모델 튜닝부(320)는 기본 모델(510)에 파인튜닝 데이터를 입력하여 질의와 상품의 임베딩 벡터 품질을 높일 수 있는 방향으로 학습을 진행한다. 도 6을 참조하면, 질의에 대해 적합한 상품의 경우 질의와 상품의 임베딩으로부터 계산된 코사인 유사도를 높이는 방향으로 기본 모델(510)을 학습하고, 질의에 대해 적합하지 않은 상품의 경우 질의와 상품의 임베딩으로부터 계산된 코사인 유사도를 낮추는 방향으로 기본 모델(510)을 학습할 수 있다.
마찬가지로, 파인튜닝 과정에서 상품의 임베딩을 추출할 때 쇼핑 도메인의 특성을 활용할 수 있다. 문장들의 나열 형태로 모델링하는 일반적인 문서 임베딩과 달리, 쇼핑 상품은 여러가지의 텍스트 필드와 수치형 필드 등으로 구성될 수 있다. 일반적인 텀 매칭에서 활용되는 주요 텍스트 필드(예를 들어, 상품명, 카테고리명, 브랜드, 상점명, 상품 리뷰 등)를 활용하는 것은 물론이고, 가격이나 사이즈, 각종 코드 등 텀 매칭에서 활용하기 어려운 수치형 필드 또한 텍스트 형태로 변환하여 상품 임베딩에 활용할 수 있다.
임베딩 검색 모델(620)의 품질을 높이기 위한 기술의 일례로, 질의-상품 쌍 데이터에 차등적인 레이블을 부여하여 파인튜닝 데이터로 사용할 수 있다. 이분법적인 연관 유무에 따른 레이블로 학습 데이터를 구성하는 것이 아니라, 질의와 상품(쇼핑 도메인)에 대해서 상품이 질의와 어느 정도의 연관도를 가지고 있는지를 차등적인 레이블로 부여하여 학습 데이터를 구성할 수 있다. 상품의 텍스트 필드와 질의가 얼마나 연관되는지를 수치화하여 이를 바탕으로 레이블을 생성할 수 있다. 예를 들어, 질의 'xx 노트북'에 대해 xx 브랜드의 노트북 상품은 '매우 연관'에 해당되는 레이블, xx 브랜드와 다른 브랜드의 노트북 상품은 '연관'에 해당되는 레이블, 냉장고나 의류 등과 같이 전혀 다른 상품은 '연관 없음'에 해당되는 레이블이 부여될 수 있다.
다른 예로, 질의에 대하여 검색 결과로 제공된 상품의 클릭 횟수와 CTR(노출 대비 클릭 비율) 등 질의와의 연관도를 나타내는 지표를 활용하여 질의-상품 쌍 데이터의 중요도를 차등 적용할 수 있다. 예를 들어, 질의에 대해 많이 클릭되고 CTR이 높은 상품일수록 해당 질의와 상품 간의 유사도가 더 높아지는 방향으로 모델 파라미터를 업데이트할 수 있다.
또 다른 예로, 네거티브 샘플링 기법을 통해 연관도가 낮은 질의-상품 쌍 데이터를 구성할 수 있다. 단순히 질의에 대해 클릭되지 않은 상품을 랜덤하게 샘플링하는 경우 좋은 품질의 임베딩 검색 모델(620)을 확보하기 어렵다. 질의와 무관한 상품이 아니라, 질의와 적절한 연관성을 가지고 있되 텍스트 매칭 측면에서 연관도가 낮은 상품들을 네거티브 샘플링하여 연관도가 낮은 질의-상품 쌍 데이터로 활용할 수 있다. 예를 들어, 질의에 대해 많이 클릭된 상품과 동일한 브랜드나 판매처의 상품, 혹은 유사한 가격대나 카테고리의 상품 중에서 질의 텀을 구성하는 중요한 텀과 매칭되지 않은 상품을 네거티브 샘플링할 수 있다. 네거티브 샘플링으로 구성된 질의-상품 쌍 데이터에 대해 질의와 상품 간에 매칭되지 않은 텀들의 중요도에 따라 레이블을 설정한 후 설정된 레이블에 따라 코사인 유사도를 감소하는 정도를 조절하는 방식으로 학습할 수 있다.
따라서, 모델 튜닝부(320)는 쇼핑 도메인의 특성을 고려하여 연관도가 높은 질의-상품 쌍 데이터와 연관도가 낮은 질의-상품 쌍 데이터를 파인튜닝 데이터로 생성한 후 파인튜닝 데이터의 레이블과 코사인 유사도 예측 값 사이의 상관계수가 수렴하는 임베딩 검색 모델(620)을 만들 수 있다.
도 7 내지 도 9는 본 발명의 일실시예에 있어서 임베딩 유사도를 기반으로 상품을 검색하는 과정을 설명하기 위한 예시 도면이다.
도 7을 참조하면, 상품 검색부(330)는 오프라인 처리 방식으로 임베딩 검색 모델(620)을 이용하여 상품 데이터베이스에 존재하는 모든 상품에 대한 임베딩을 추출할 수 있다. 상품의 텀을 역인덱스로 구성하여 빠르게 검색하는 것과 동일한 방식을 적용할 수 있다.
상품 검색부(330)는 K-평균 클러스터링을 통해서 적절한 개수의 클러스터 센트로이드를 학습한 다음에 상품의 임베딩을 색인하기 위해 사용할 수 있다. 센트로이드를 반복 학습하는 과정에서 품질 지표를 이용하여 최선의 모델 파라미터를 튜닝할 수 있다. 이때, 품질 지표로는 클러스터링 품질 지표인 실루엣 계수와, 상품의 주요 필드에 대한 엔트로피(entropy) 및 불순도(impurity)를 활용할 수 있다. 클러스터에 군집된 상품의 주요 필드별 엔트로피와 불순도는 쇼핑 도메인의 특성을 고려하여 상품 클러스터링 측면에서 추가적으로 확인 가능한 품질 지표라 할 수 있다.
상품 검색부(330)는 오프라인 색인 단계에서 각 상품과 가장 가까운 센트로이드 아이디를 활용한 상품 센트로이드 텀을 추출하여 색인할 수 있다. 예를 들어, 도 8에 도시한 바와 같이 특정 상품의 임베딩이 614번째 센트로이드와 가장 가깝다고 가정하면 'cent614'라는 일종의 텀을 역인덱스에 추가할 수 있다. 상품 검색부(330)는 실시간 검색 단계에서 입력된 질의의 임베딩에 해당하는 질의 센트로이드 텀과 동일한 상품 센트로이드 텀을 가지는 상품을 매칭하여 검색할 수 있다. 사용자 질의로부터 실시간으로 추출한 임베딩에 대해서도 마찬가지로 질의의 임베딩과 가장 가까운 센트로이드로 색인된 상품들을 빠르게 부분 탐색할 수 있다.
도 9를 참조하면, 상품 검색부(330)는 클러스터 센트로이드와 비슷한 방식으로, 질의 임베딩의 PQ 코드와 동일한 PQ 코드의 상품을 빠르게 부분 탐색하는 방식을 함께 적용할 수 있다. 내부적으로는 질의 임베딩과 상품 임베딩 간의 코사인 유사도 근사치를 빠르게 계산할 때에도 별도의 PQ 코드북을 학습하여 활용할 수 있다.
검색 결과에 대한 정확도를 높은 수준으로 유지하기 위해 질의의 임베딩과 가장 가까운 센트로이드의 품질이 일정 레벨 이하인 경우 임베딩 검색 모델을 이용한 검색을 활용하지 않을 수 있다. 센트로이드에 할당된 상품들의 카테고리에 기초하여 센트로이드의 품질이 결정될 수 있다. 예를 들어, 동일 센트로이드에 서로 연관성이 낮은 카테고리의 상품들이 할당될수록 해당 센트로이드의 품질이 낮은 것으로 판단할 수 있다.
상품 검색부(330)는 질의 임베딩에 대한 실시간 추출 작업의 효율성을 높이기 위해 사전에 덤프한 임베딩 매트릭스를 조회하는 방법을 활용할 수 있다. 일종의 캐싱 형태로, 자주 유입되는 질의에 대해 사전에 임베딩을 추출한 후 추출된 임베딩과 해당 임베딩의 인덱스를 덤프할 수 있다. 상품 검색부(330)는 사전에 덤프된 질의가 유입되는 경우 트라이(trie)와 같은 자료 구조를 활용하여 유입된 질의의 임베딩 인덱스를 조회한 후 해당 인덱스를 통해서 임베딩 매트릭스를 조회함으로써 질의 임베딩을 실시간으로 추출할 수 있다.
도 10은 본 발명의 일실시예에 있어서 다른 검색 모델과의 앙상블을 통해 검색 결과를 제공하는 과정을 설명하기 위한 예시 도면이다.
상품 검색부(330)는 입력된 질의에 대해 임베딩 검색 모델과 텀 매칭 검색 모델을 연동하여 검색 결과를 제공할 수 있다. 임베딩 검색 모델을 상품 매칭에 적용하는 경우 텀 매칭만으로 검색되지 못하는 상품을 추가적으로 검색할 수 있다.
도 10을 참조하면, 상품 검색부(330)는 주어진 질의에 따라 텀 매칭 검색 모델에 의한 텀 매칭 상품(1010)과 임베딩 검색 모델에 의한 임베딩 매칭 상품(1020) 간의 가중치를 적응적으로 설정할 수 있다. 임베딩 매칭 상품(1020)의 가중치는 센트로이드의 품질 지표에 기초하여 결정될 수 있다. 예를 들어, 질의의 임베딩과 가장 가까운 센트로이드가 해당 질의의 카테고리와 일치하는 정도가 높은 경우 임베딩 매칭 상품(1020)의 가중치를 텀 매칭 상품(1010)보다 상대적으로 높게 설정할 수 있다. 반면에, 질의의 임베딩과 가장 가까운 센트로이드에 할당된 상품들이 너무 다양하고 해당 질의의 카테고리와 일치하는 정도가 낮은 경우 임베딩 매칭 상품(1020)의 가중치를 텀 매칭 상품(1010)보다 상대적으로 낮게 설정할 수 있다. 실시예에 따라서는 질의의 임베딩과 가장 가까운 센트로이드의 품질(실루엣 계수, 엔트로피, 불순도 등)에 따라 검색 결과에서 임베딩 매칭 상품(1020)을 제외시킬 수 있다.
또한, 상품 검색부(330)는 질의와 상품 간의 텀 유사도와 임베딩 유사도를 랭킹 피처로 활용할 수 있다. 임베딩 검색 모델에서는 텀 매칭 검색 모델에서 활용할 수 없었던 임베딩 유사도를 랭킹 피처로 제공할 수 있다. 일례로, 상품 검색부(330)는 질의와의 임베딩 유사도를 텀 유사도와 더하는 방식을 적용하여 상품 랭킹을 결정할 수 있다. 임베딩 유사도와 텀 유사도를 더하는 방식으로 상품 랭킹을 제공하는 경우 임베딩 매칭과 텀 매칭이 동시에 적용되는 상품에 지나치게 많은 유사도가 부여될 수 있다. 이러한 이슈를 해결하기 위한 다른 예로, 상품 검색부(330)는 텀 유사도에 대한 가중치와 임베딩 유사도에 대한 가중치를 질의에 따라 다르게 설정할 수 있다. 상품 검색부(330)는 질의와 상품 간 클릭 로그를 이용한 질의 레벨 LTR(learning to rank) 기법을 통해서 상품 랭킹에 반영할 임베딩 유사도의 가중치를 학습함으로써 주어진 질의에 따라 임베딩 유사도의 가중치를 결정할 수 있다.
이처럼 본 발명의 실시예들에 따르면, 질의의 임베딩과 유사한 임베딩을 가지는 상품을 검색 결과로 제공함으로써 질의에 대해 보다 정확한 상품 검색 결과를 제공할 수 있고, 질의와 상품 간의 임베딩 유사도를 검색 결과의 랭킹을 결정하기 위한 피처로 활용함으로써 검색 랭킹의 품질을 개선할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, 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 (15)

  1. 컴퓨터 장치에서 실행되는 상품 검색 방법에 있어서,
    상기 컴퓨터 장치는 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,
    상기 상품 검색 방법은,
    상기 적어도 하나의 프로세서에 의해, 상품 검색 서비스 상에서 출현하는 텍스트를 이용하여 질의와 상품 간의 임베딩 매칭을 기반으로 상품을 검색하는 임베딩 기반 검색 모델을 생성하는 단계; 및
    상기 적어도 하나의 프로세서에 의해, 입력 질의에 대해 상기 임베딩 기반 검색 모델을 이용하여 상기 입력 질의의 임베딩과 매칭되는 상품 검색 결과를 제공하는 단계
    를 포함하는 상품 검색 방법.
  2. 제1항에 있어서,
    상기 상품 검색 결과를 제공하는 단계는,
    상기 임베딩 기반 검색 모델과 함께 질의와 상품 간의 텀 매칭을 기반으로 상품을 검색하는 텀 매칭 검색 모델을 연동하여 임베딩 매칭 상품과 텀 매칭 상품을 상기 상품 검색 결과로 제공하는 것
    을 특징으로 하는 상품 검색 방법.
  3. 제1항에 있어서,
    상기 임베딩 기반 검색 모델을 생성하는 단계는,
    상품 정보를 유지하는 상품 데이터베이스와 사용자로부터 등록된 상품 리뷰나 질의의 텍스트로 구성된 쇼핑 문서 집합(shopping corpus) 및 쇼핑 도메인에서 출력하는 텍스트로 구성된 쇼핑 어휘 사전(shopping vocabulary) 중 적어도 하나로부터 텍스트를 추출하여 상기 임베딩 기반 검색 모델을 생성하기 위한 학습 데이터로 이용하되 수치형 필드의 경우 텍스트로 변환하여 상기 학습 데이터로 이용하는 단계
    를 포함하는 상품 검색 방법.
  4. 제3항에 있어서,
    상기 임베딩 기반 검색 모델을 생성하는 단계는,
    질의와 상품 간 클릭 로그에 기초하여 연관도에 따른 질의-상품 쌍 데이터를 파인튜닝 데이터로 생성하는 단계; 및
    상기 파인튜닝 데이터를 이용하여 상기 임베딩 기반 검색 모델을 추가 학습하는 단계
    를 포함하는 상품 검색 방법.
  5. 제4항에 있어서,
    상기 파인튜닝 데이터로 생성하는 단계는,
    질의와 상품 간의 연관도에 대응되는 레이블을 상기 질의-상품 쌍 데이터에 부여하는 단계
    를 포함하는 상품 검색 방법.
  6. 제4항에 있어서,
    상기 파인튜닝 데이터로 생성하는 단계는,
    질의와 상품 간의 연관도를 나타내는 지표에 기초하여 상기 질의-상품 쌍 데이터의 중요도를 차등 적용하는 단계
    를 포함하는 상품 검색 방법.
  7. 제4항에 있어서,
    상기 파인튜닝 데이터로 생성하는 단계는,
    질의에 대한 클릭 상품과 유사한 상품 중 질의의 텀과 매칭되지 않은 상품을 네거티브 샘플링(negative sampling)하여 질의와 상품 간에 연관도가 낮은 질의-상품 쌍 데이터로 생성하는 단계
    를 포함하는 상품 검색 방법.
  8. 제1항에 있어서,
    상기 상품 검색 결과를 제공하는 단계는,
    상품 임베딩 집합으로 학습된 클러스터 센트로이드(cluster centroid)에서 상품의 임베딩에 대응되는 센트로이드로 상품을 색인하는 단계; 및
    색인된 상품 중 상기 입력 질의의 임베딩에 대응되는 센트로이드와 동일한 센트로이드의 상품을 검색하는 단계
    를 포함하는 상품 검색 방법.
  9. 제8항에 있어서,
    상기 상품 검색 결과를 제공하는 단계는,
    상품 임베딩 집합으로 학습된 PQ(product quantization) 코드북을 이용하여 상기 입력 질의의 임베딩에 대응되는 PQ 코드와 동일한 PQ 코드의 상품을 검색하는 단계
    를 더 포함하는 상품 검색 방법.
  10. 제8항에 있어서,
    상기 상품을 검색하는 단계는,
    상기 입력 질의의 임베딩에 대응되는 센트로이드의 품질에 따라 상기 상품 검색 결과에서 상기 임베딩 기반 검색 모델에 의한 임베딩 매칭 상품을 제외시키는 단계
    를 포함하는 상품 검색 방법.
  11. 제2항에 있어서,
    상기 상품 검색 결과를 제공하는 단계는,
    상기 임베딩 기반 검색 모델에 의한 임베딩 매칭 상품에 대한 가중치와 상기 텀 매칭 검색 모델에 의한 텀 매칭 상품에 대한 가중치를 상기 입력 질의에 따라 적응적으로 설정하는 단계
    를 포함하는 상품 검색 방법.
  12. 제2항에 있어서,
    상기 상품 검색 결과를 제공하는 단계는,
    상기 임베딩 기반 검색 모델을 통한 상기 입력 질의와의 임베딩 유사도와 상기 텀 매칭 검색 모델을 통한 상기 입력 질의와의 텀 유사도를 이용하여 상기 상품 검색 결과에 대한 랭킹을 제공하는 단계
    를 포함하고,
    상기 상품 검색 결과에 대한 랭킹을 제공하는 단계는,
    상기 임베딩 유사도에 대한 가중치와 상기 텀 유사도에 대한 가중치를 상기 입력 질의에 따라 적응적으로 설정하는 단계
    를 포함하는 상품 검색 방법.
  13. 제1항 내지 제12항 중 어느 한 항의 상품 검색 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독가능한 기록 매체에 저장되는 컴퓨터 프로그램.
  14. 컴퓨터 장치에 있어서,
    메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    상품 검색 서비스 상에서 출현하는 텍스트를 이용하여 질의와 상품 간의 임베딩 매칭을 기반으로 상품을 검색하는 임베딩 기반 검색 모델을 생성하고,
    입력 질의에 대해 상기 임베딩 기반 검색 모델을 이용하여 상기 입력 질의의 임베딩과 매칭되는 상품 검색 결과를 제공하는 것
    을 특징으로 하는 컴퓨터 장치.
  15. 제14항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 임베딩 기반 검색 모델과 함께 질의와 상품 간의 텀 매칭을 기반으로 상품을 검색하는 텀 매칭 검색 모델을 연동하여 임베딩 매칭 상품과 텀 매칭 상품을 상기 상품 검색 결과로 제공하는 것
    을 특징으로 하는 컴퓨터 장치.
KR1020210087850A 2021-05-06 2021-07-05 임베딩 유사도에 기반한 상품 검색 방법, 컴퓨터 장치, 및 컴퓨터 프로그램 KR102640369B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022066748A JP7343649B2 (ja) 2021-05-06 2022-04-14 埋め込み類似度に基づく商品検索方法、コンピュータ装置、およびコンピュータプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210058633 2021-05-06
KR1020210058633 2021-05-06

Publications (2)

Publication Number Publication Date
KR20220151521A true KR20220151521A (ko) 2022-11-15
KR102640369B1 KR102640369B1 (ko) 2024-02-27

Family

ID=84041759

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210087850A KR102640369B1 (ko) 2021-05-06 2021-07-05 임베딩 유사도에 기반한 상품 검색 방법, 컴퓨터 장치, 및 컴퓨터 프로그램

Country Status (2)

Country Link
JP (1) JP7343649B2 (ko)
KR (1) KR102640369B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102593134B1 (ko) * 2022-12-16 2023-10-24 고려대학교산학협력단 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115544242B (zh) * 2022-12-01 2023-04-18 深圳市智加云栖科技有限公司 基于大数据的同类商品选型推荐方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180113438A (ko) * 2017-04-06 2018-10-16 네이버 주식회사 주제별 질의의 서브토픽 자동 추출 및 구조화
KR20180125746A (ko) * 2017-05-16 2018-11-26 동아대학교 산학협력단 문장 임베딩 및 유사 질문 검색을 위한 장치 및 방법
KR102099561B1 (ko) * 2019-04-25 2020-04-09 김진성 기계학습 기반 고도화된 매칭 알고리즘을 포함한 섬유제품 검색 서비스 제공 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625619B (zh) 2019-02-28 2024-03-01 北京沃东天骏信息技术有限公司 查询省略方法、装置、计算机可读介质及电子设备
CN111737418B (zh) 2020-07-20 2021-05-14 北京每日优鲜电子商务有限公司 搜索词和商品的相关性预测方法、设备和存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180113438A (ko) * 2017-04-06 2018-10-16 네이버 주식회사 주제별 질의의 서브토픽 자동 추출 및 구조화
KR20180125746A (ko) * 2017-05-16 2018-11-26 동아대학교 산학협력단 문장 임베딩 및 유사 질문 검색을 위한 장치 및 방법
KR102099561B1 (ko) * 2019-04-25 2020-04-09 김진성 기계학습 기반 고도화된 매칭 알고리즘을 포함한 섬유제품 검색 서비스 제공 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
자연어처리를 위한 딥러닝 사전학습현황 및 한국어 적용 방안-구글 BERT 사례를 중심으로, 임수종 외1 (2019.10.11.)* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102593134B1 (ko) * 2022-12-16 2023-10-24 고려대학교산학협력단 사용자 디바이스를 위한 임베딩 테이블 크기를 조절하는 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
JP7343649B2 (ja) 2023-09-12
JP2022173084A (ja) 2022-11-17
KR102640369B1 (ko) 2024-02-27

Similar Documents

Publication Publication Date Title
CN107832414B (zh) 用于推送信息的方法和装置
KR101778679B1 (ko) 딥러닝을 이용하여 텍스트 단어 및 기호 시퀀스를 값으로 하는 복수 개의 인자들로 표현된 데이터를 자동으로 분류하는 방법 및 시스템
KR101754473B1 (ko) 문서를 이미지 기반 컨텐츠로 요약하여 제공하는 방법 및 시스템
US11900064B2 (en) Neural network-based semantic information retrieval
US9268767B2 (en) Semantic-based search system and search method thereof
Bukhari et al. A web service search engine for large-scale web service discovery based on the probabilistic topic modeling and clustering
JP7150090B2 (ja) ショッピング検索のための商品属性抽出方法
KR102640369B1 (ko) 임베딩 유사도에 기반한 상품 검색 방법, 컴퓨터 장치, 및 컴퓨터 프로그램
CN105531701A (zh) 个性化趋势图像搜索建议
CN111966914A (zh) 基于人工智能的内容推荐方法、装置和计算机设备
US11086941B2 (en) Generating suggestions for extending documents
Su et al. Hybrid recommender system based on deep learning model
Dwivedi et al. Survey on fake news detection techniques
KR102277240B1 (ko) 키워드 관계 구조를 이용한 동의어 추출 방법 및 시스템
CN114218948A (zh) 关键词识别方法及其装置、设备、介质、产品
Prasanth et al. Effective big data retrieval using deep learning modified neural networks
Tang et al. Casegnn: Graph neural networks for legal case retrieval with text-attributed graphs
Dutta et al. Automated Data Harmonization (ADH) using Artificial Intelligence (AI)
CN113569578B (zh) 一种用户意图识别方法、装置和计算机设备
KR20200097949A (ko) 키워드 관계 구조를 이용한 동의어 추출 방법 및 시스템
KR20230151704A (ko) 지역 지식 그래프를 기반으로 추천 정보를 제공하는 방법, 컴퓨터 장치, 및 컴퓨터 프로그램
KR20220107737A (ko) 재구성된 질의를 생성하기 위한 방법, 시스템, 및 컴퓨터 판독가능한 기록 매체
KR20220104984A (ko) 문서 유사도 학습에 기반한 딥러닝 모델의 전이 학습 방법 및 시스템
CN111061939A (zh) 基于深度学习的科研学术新闻关键字匹配推荐方法
CN113627161B (zh) 数据处理方法及装置、存储介质、电子设备

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant