KR102640369B1 - Method, computer device, and computer program to search for products based on embedding similarity - Google Patents

Method, computer device, and computer program to search for products based on embedding similarity Download PDF

Info

Publication number
KR102640369B1
KR102640369B1 KR1020210087850A KR20210087850A KR102640369B1 KR 102640369 B1 KR102640369 B1 KR 102640369B1 KR 1020210087850 A KR1020210087850 A KR 1020210087850A KR 20210087850 A KR20210087850 A KR 20210087850A KR 102640369 B1 KR102640369 B1 KR 102640369B1
Authority
KR
South Korea
Prior art keywords
product
embedding
query
products
search
Prior art date
Application number
KR1020210087850A
Other languages
Korean (ko)
Other versions
KR20220151521A (en
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/en
Publication of KR20220151521A publication Critical patent/KR20220151521A/en
Application granted granted Critical
Publication of KR102640369B1 publication Critical patent/KR102640369B1/en

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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Finance (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Strategic Management (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

임베딩 유사도에 기반한 상품 검색 방법, 컴퓨터 장치, 및 컴퓨터 프로그램이 개시된다. 상품 검색 방법은, 상품 검색 서비스 상에서 출현하는 텍스트를 이용하여 질의와 상품 간의 임베딩 매칭을 기반으로 상품을 검색하는 임베딩 기반 검색 모델을 생성하는 단계; 및 입력 질의에 대해 상기 임베딩 기반 검색 모델을 이용하여 상기 입력 질의의 임베딩과 매칭되는 상품 검색 결과를 제공하는 단계를 포함할 수 있다.A product search method, computer device, and computer program based on embedding similarity are disclosed. The product search method includes generating an embedding-based search model that searches for a product based on embedding matching between a query and a product using text appearing on a product search service; And it may include providing a product search result that matches the embedding of the input query using the embedding-based search model for the input query.

Description

임베딩 유사도에 기반한 상품 검색 방법, 컴퓨터 장치, 및 컴퓨터 프로그램{METHOD, COMPUTER DEVICE, AND COMPUTER PROGRAM TO SEARCH FOR PRODUCTS BASED ON EMBEDDING SIMILARITY}Product search method based on embedding similarity, computer device, and computer program {METHOD, COMPUTER DEVICE, AND COMPUTER PROGRAM TO SEARCH FOR PRODUCTS BASED ON EMBEDDING SIMILARITY}

아래의 설명은 상품을 검색하는 기술에 관한 것이다.The explanation below is about the technology for searching for products.

일반적인 상품 검색은 질의와 상품의 텀(term)을 분석하여 질의의 텀과 매칭되는 상품을 검색 결과로 제공한다.General product search analyzes the terms of the query and product and provides products that match the term of the query as search results.

상품 검색 기술의 일례로, 한국 공개특허공보 제10-2007-0097720호(공개일 2007년 10월 05일)에는 질의어 매칭을 통한 상품 검색 결과를 제공하는 기술이 개시되어 있다.As an example of product search technology, Korean Patent Publication No. 10-2007-0097720 (published on October 5, 2007) discloses a technology that provides product search results through query matching.

텀 매칭 기반 상품 검색의 경우 질의의 텀과 동일한 의미이지만 다른 형태의 텀으로 표현된 상품을 검색 결과로 제공할 수 없다.In the case of term matching-based product search, products that have the same meaning as the term of the query but are expressed in a different form of term cannot be provided as search results.

검색 빈도가 낮은 질의나 자연어에 가까운 질의에 대해서는 연관 상품이 존재하더라도 질의와의 텀 매칭이 어려워 상품 검색 결과를 제공하지 못하는 경우가 있다.For queries with low search frequency or queries close to natural language, even if a related product exists, product search results may not be provided due to difficulty in term matching with the query.

질의와 상품을 텀 단위가 아닌 임베딩 단위로 분석하여 매칭 및 랭킹에 적용할 수 있는 방법 및 장치를 제공한다.Provides methods and devices that can be applied to matching and ranking by analyzing queries and products in embedding units rather than term units.

질의와 상품 간의 임베딩 유사도에 기반하여 상품을 검색할 수 있는 방법 및 장치를 제공한다.Provides a method and device for searching products based on embedding similarity between queries and products.

컴퓨터 장치에서 실행되는 상품 검색 방법에 있어서, 상기 컴퓨터 장치는 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 상품 검색 방법은, 상기 적어도 하나의 프로세서에 의해, 상품 검색 서비스 상에서 출현하는 텍스트를 이용하여 질의와 상품 간의 임베딩 매칭을 기반으로 상품을 검색하는 임베딩 기반 검색 모델을 생성하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 입력 질의에 대해 상기 임베딩 기반 검색 모델을 이용하여 상기 입력 질의의 임베딩과 매칭되는 상품 검색 결과를 제공하는 단계를 포함하는 상품 검색 방법을 제공한다.In a product search method executed on a computer device, the computer device includes at least one processor configured to execute computer-readable instructions included in a memory, and the product search method includes, by the at least one processor, a product Creating an embedding-based search model that searches for a product based on embedding matching between the query and the product using text appearing on the search service; and providing, by the at least one processor, a product search result that matches an embedding of the input query using the embedding-based search model for the input query.

일 측면에 따르면, 상기 상품 검색 결과를 제공하는 단계는, 상기 임베딩 기반 검색 모델과 함께 질의와 상품 간의 텀 매칭을 기반으로 상품을 검색하는 텀 매칭 검색 모델을 연동하여 임베딩 매칭 상품과 텀 매칭 상품을 상기 상품 검색 결과로 제공할 수 있다.According to one aspect, the step of providing the product search results includes linking a term matching search model that searches for products based on term matching between the query and the product with the embedding-based search model to create an embedding matching product and a term matching product. It can be provided as a result of the above product search.

다른 측면에 따르면, 상기 임베딩 기반 검색 모델을 생성하는 단계는, 상품 정보를 유지하는 상품 데이터베이스와 사용자로부터 등록된 상품 리뷰나 질의의 텍스트로 구성된 쇼핑 문서 집합(shopping corpus) 및 쇼핑 도메인에서 출력하는 텍스트로 구성된 쇼핑 어휘 사전(shopping vocabulary) 중 적어도 하나로부터 텍스트를 추출하여 상기 임베딩 기반 검색 모델을 생성하기 위한 학습 데이터로 이용하되 수치형 필드의 경우 텍스트로 변환하여 상기 학습 데이터로 이용하는 단계를 포함할 수 있다.According to another aspect, the step of generating the embedding-based search model includes a product database that maintains product information, a shopping document set (shopping corpus) consisting of text of product reviews or queries registered by users, and text output from the shopping domain. Extracting text from at least one of the shopping vocabulary consisting of and using it as learning data for creating the embedding-based search model, but in the case of a numeric field, converting it to text and using it as the learning data. there is.

또 다른 측면에 따르면, 상기 임베딩 기반 검색 모델을 생성하는 단계는, 질의와 상품 간 클릭 로그에 기초하여 연관도에 따른 질의-상품 쌍 데이터를 파인튜닝 데이터로 생성하는 단계; 및 상기 파인튜닝 데이터를 이용하여 상기 임베딩 기반 검색 모델을 추가 학습하는 단계를 포함할 수 있다.According to another aspect, the step of generating the embedding-based search model includes generating query-product pair data according to the degree of relevance based on click logs between the query and the product as fine tuning data; and further learning the embedding-based search model using the fine tuning data.

또 다른 측면에 따르면, 상기 파인튜닝 데이터로 생성하는 단계는, 질의와 상품 간의 연관도에 대응되는 레이블을 상기 질의-상품 쌍 데이터에 부여하는 단계를 포함할 수 있다.According to another aspect, the step of generating the fine tuning data may include assigning a label corresponding to the degree of association between the query and the product to the query-product pair data.

또 다른 측면에 따르면, 상기 파인튜닝 데이터로 생성하는 단계는, 질의와 상품 간의 연관도를 나타내는 지표에 기초하여 상기 질의-상품 쌍 데이터의 중요도를 차등 적용하는 단계를 포함할 수 있다.According to another aspect, the step of generating the fine tuning data may include differentially applying the importance of the query-product pair data based on an indicator indicating the degree of association between the query and the product.

또 다른 측면에 따르면, 상기 파인튜닝 데이터로 생성하는 단계는, 질의에 대한 클릭 상품과 유사한 상품 중 질의의 텀과 매칭되지 않은 상품을 네거티브 샘플링(negative sampling)하여 질의와 상품 간에 연관도가 낮은 질의-상품 쌍 데이터로 생성하는 단계를 포함할 수 있다.According to another aspect, the step of generating the fine tuning data involves negative sampling of products that do not match the term of the query among products that are similar to the product clicked on for the query, and generates a query with a low correlation between the query and the product. -May include steps for generating product pair data.

또 다른 측면에 따르면, 상기 상품 검색 결과를 제공하는 단계는, 상품 임베딩 집합으로 학습된 클러스터 센트로이드(cluster centroid)에서 상품의 임베딩에 대응되는 센트로이드로 상품을 색인하는 단계; 및 색인된 상품 중 상기 입력 질의의 임베딩에 대응되는 센트로이드와 동일한 센트로이드의 상품을 검색하는 단계를 포함할 수 있다.According to another aspect, the step of providing the product search results includes indexing the product with a centroid corresponding to the embedding of the product in a cluster centroid learned as a product embedding set; And it may include searching for a product of the same centroid as the centroid corresponding to the embedding of the input query among the indexed products.

또 다른 측면에 따르면, 상기 상품 검색 결과를 제공하는 단계는, 상품 임베딩 집합으로 학습된 PQ(product quantization) 코드북을 이용하여 상기 입력 질의의 임베딩에 대응되는 PQ 코드와 동일한 PQ 코드의 상품을 검색하는 단계를 더 포함할 수 있다.According to another aspect, the step of providing the product search results involves searching for products with the same PQ code as the PQ code corresponding to the embedding of the input query using a PQ (product quantization) codebook learned as a product embedding set. Additional steps may be included.

또 다른 측면에 따르면, 상기 상품을 검색하는 단계는, 상기 입력 질의의 임베딩에 대응되는 센트로이드의 품질에 따라 상기 상품 검색 결과에서 상기 임베딩 기반 검색 모델에 의한 임베딩 매칭 상품을 제외시키는 단계를 포함할 수 있다.According to another aspect, the step of searching for the product may include excluding an embedding matching product by the embedding-based search model from the product search result according to the quality of the centroid corresponding to the embedding of the input query. You can.

또 다른 측면에 따르면, 상기 상품 검색 결과를 제공하는 단계는, 상기 임베딩 기반 검색 모델에 의한 임베딩 매칭 상품에 대한 가중치와 상기 텀 매칭 검색 모델에 의한 텀 매칭 상품에 대한 가중치를 상기 입력 질의에 따라 적응적으로 설정하는 단계를 포함할 수 있다.According to another aspect, the step of providing the product search results includes adapting the weight for the embedding matching product by the embedding-based search model and the weight for the term matching product by the term matching search model according to the input query. It may include the step of setting it as an enemy.

또 다른 측면에 따르면, 상기 상품 검색 결과를 제공하는 단계는, 상기 임베딩 기반 검색 모델을 통한 상기 입력 질의와의 임베딩 유사도와 상기 텀 매칭 검색 모델을 통한 상기 입력 질의와의 텀 유사도를 이용하여 상기 상품 검색 결과에 대한 랭킹을 제공하는 단계를 포함하고, 상기 상품 검색 결과에 대한 랭킹을 제공하는 단계는, 상기 임베딩 유사도에 대한 가중치와 상기 텀 유사도에 대한 가중치를 상기 입력 질의에 따라 적응적으로 설정하는 단계를 포함할 수 있다.According to another aspect, the step of providing the product search results includes searching for the product using embedding similarity with the input query through the embedding-based search model and term similarity with the input query through the term matching search model. A step of providing rankings for search results, wherein the step of providing rankings for product search results includes adaptively setting a weight for the embedding similarity and a weight for the term similarity according to the input query. May include steps.

상기 상품 검색 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독가능한 기록 매체에 저장되는 컴퓨터 프로그램을 제공한다.A computer program stored in a computer-readable recording medium is provided to execute the product search method on a computer device.

컴퓨터 장치에 있어서, 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상품 검색 서비스 상에서 출현하는 텍스트를 이용하여 질의와 상품 간의 임베딩 매칭을 기반으로 상품을 검색하는 임베딩 기반 검색 모델을 생성하고, 입력 질의에 대해 상기 임베딩 기반 검색 모델을 이용하여 상기 입력 질의의 임베딩과 매칭되는 상품 검색 결과를 제공하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.A computer device comprising: at least one processor configured to execute computer readable instructions included in a memory, wherein the at least one processor performs embedding matching between a query and a product using text appearing on a product search service. A computer device is provided that generates an embedding-based search model for searching products, and provides product search results that match the embedding of the input query using the embedding-based search model for an input query.

본 발명의 실시예들에 따르면, 질의의 임베딩과 유사한 임베딩을 가지는 상품을 검색 결과로 제공함으로써 질의에 대해 보다 정확한 상품 검색 결과를 제공할 수 있다.According to embodiments of the present invention, more accurate product search results for a query can be provided by providing products with embeddings similar to the embedding of the query as search results.

본 발명의 실시예들에 따르면, 질의와 상품 간의 임베딩 유사도를 검색 결과의 랭킹을 결정하기 위한 피처(feature)로 활용함으로써 검색 랭킹의 품질을 개선할 수 있다.According to embodiments of the present invention, the quality of search ranking can be improved by using the embedding similarity between the query and the product as a feature for determining the ranking of the search results.

도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따른 컴퓨터 장치의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 컴퓨터 장치가 수행할 수 있는 방법의 예를 도시한 순서도이다.
도 5는 본 발명의 일실시예에 있어서 상품 검색을 위한 기본 모델을 사전학습하는 과정을 설명하기 위한 예시 도면이다.
도 6은 본 발명의 일실시예에 있어서 기본 모델을 파인튜닝하여 임베딩 검색 모델을 생성하는 과정을 설명하기 위한 예시 도면이다.
도 7 내지 도 9는 본 발명의 일실시예에 있어서 임베딩 유사도를 기반으로 상품을 검색하는 과정을 설명하기 위한 예시 도면이다.
도 10은 본 발명의 일실시예에 있어서 다른 검색 모델과의 앙상블을 통해 검색 결과를 제공하는 과정을 설명하기 위한 예시 도면이다.
1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
Figure 2 is a block diagram showing an example of a computer device according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating an example of components that a processor of a computer device according to an embodiment of the present invention may include.
Figure 4 is a flowchart showing an example of a method that can be performed by a computer device according to an embodiment of the present invention.
Figure 5 is an example diagram illustrating the process of pre-learning a basic model for product search in one embodiment of the present invention.
Figure 6 is an example diagram illustrating the process of generating an embedding search model by fine-tuning a basic model in one embodiment of the present invention.
Figures 7 to 9 are example diagrams for explaining the process of searching for products based on embedding similarity in one embodiment of the present invention.
Figure 10 is an example diagram illustrating a process for providing search results through ensemble with other search models in one embodiment of the present invention.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.

본 발명의 실시예들은 질의와 연관된 상품을 매칭 및 랭킹하는 상품 검색 기술에 관한 것이다.Embodiments of the present invention relate to product search technology for matching and ranking products related to a query.

본 명세서에서 구체적으로 개시되는 것들을 포함하는 실시예들은 질의와 상품의 임베딩을 기반으로 검색 결과를 제공하기 위한 매칭 및 랭킹 작업을 수행할 수 있고, 이를 통해 검색의 효율성, 정확성, 품질 등의 측면에 있어서 상당한 장점들을 달성할 수 있다.Embodiments including those specifically disclosed in this specification can perform matching and ranking operations to provide search results based on query and product embedding, thereby improving search efficiency, accuracy, and quality. Significant advantages can be achieved.

본 발명의 실시예들에 따른 상품 검색 장치는 적어도 하나의 컴퓨터 장치에 의해 구현될 수 있으며, 본 발명의 실시예들에 따른 상품 검색 방법은 상품 검색 장치에 포함되는 적어도 하나의 컴퓨터 장치를 통해 수행될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 상품 검색 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 상품 검색 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.The product search device according to embodiments of the present invention may be implemented by at least one computer device, and the product search method according to embodiments of the present invention is performed through at least one computer device included in the product search device. It can be. At this time, the computer program according to an embodiment of the present invention may be installed and driven in the computer device, and the computer device may perform the product search method according to the embodiments of the present invention under the control of the driven computer program. . The above-described computer program can be combined with a computer device and stored in a computer-readable recording medium to execute the product search method on the computer.

도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다. 또한, 도 1의 네트워크 환경은 본 실시예들에 적용 가능한 환경들 중 하나의 예를 설명하는 것일 뿐, 본 실시예들에 적용 가능한 환경이 도 1의 네트워크 환경으로 한정되는 것은 아니다.1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention. The network environment in FIG. 1 shows an example including a plurality of electronic devices 110, 120, 130, and 140, a plurality of servers 150 and 160, and a network 170. Figure 1 is an example for explaining the invention, and the number of electronic devices or servers is not limited as in Figure 1. In addition, the network environment in FIG. 1 only explains one example of environments applicable to the present embodiments, and the environment applicable to the present embodiments is not limited to the network environment in FIG. 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)와 통신할 수 있는 다양한 물리적인 컴퓨터 장치들 중 하나를 의미할 수 있다.The plurality of electronic devices 110, 120, 130, and 140 may be fixed terminals or mobile terminals implemented as computer devices. Examples of the plurality of electronic devices 110, 120, 130, and 140 include smart phones, mobile phones, navigation devices, computers, laptops, digital broadcasting terminals, Personal Digital Assistants (PDAs), and Portable Multimedia Players (PMPs). ), tablet PC, etc. For example, in FIG. 1, the shape of a smartphone is shown as an example of the electronic device 110. However, in embodiments of the present invention, the electronic device 110 actually communicates with other devices through the network 170 using a wireless or wired communication method. It may refer to one of various physical computer devices capable of communicating with electronic devices 120, 130, 140 and/or servers 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) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.The communication method is not limited, and may include not only a communication method utilizing a communication network that the network 170 may include (for example, a mobile communication network, wired Internet, wireless Internet, and a broadcast network), but also short-range wireless communication between devices. For example, the network 170 may include a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), and a broadband network (BBN). , may include one or more arbitrary networks such as the Internet. Additionally, the network 170 may include any one or more of network topologies including a bus network, star network, ring network, mesh network, star-bus network, tree or hierarchical network, etc. Not limited.

서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 서비스(일례로, 상품 검색 서비스 등)를 제공하는 시스템일 수 있다.Each of the servers 150 and 160 is a computer device or a plurality of computers that communicate with a plurality of electronic devices 110, 120, 130, 140 and a network 170 to provide commands, codes, files, content, services, etc. It can be implemented with devices. For example, the server 150 may be a system that provides a service (for example, a product search service, etc.) to a plurality of electronic devices 110, 120, 130, and 140 connected through the network 170.

도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 앞서 설명한 복수의 전자 기기들(110, 120, 130, 140) 각각이나 서버들(150, 160) 각각은 도 2를 통해 도시된 컴퓨터 장치(200)에 의해 구현될 수 있다.Figure 2 is a block diagram showing an example of a computer device according to an embodiment of the present invention. Each of the plurality of electronic devices 110, 120, 130, and 140 described above or each of the servers 150 and 160 may be implemented by the computer device 200 shown in FIG. 2.

이러한 컴퓨터 장치(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)에 로딩될 수 있다.As shown in FIG. 2, this computer device 200 may include a memory 210, a processor 220, a communication interface 230, and an input/output interface 240. The memory 210 is a computer-readable recording medium and may include a non-permanent mass storage device such as random access memory (RAM), read only memory (ROM), and a disk drive. Here, non-perishable large-capacity recording devices such as ROM and disk drives may be included in the computer device 200 as a separate permanent storage device that is distinct from the memory 210. Additionally, an operating system and at least one program code may be stored in the memory 210. These software components may be loaded into the memory 210 from a computer-readable recording medium separate from the memory 210. Such separate computer-readable recording media may include computer-readable recording media such as floppy drives, disks, tapes, DVD/CD-ROM drives, and memory cards. In another embodiment, software components may be loaded into the memory 210 through the communication interface 230 rather than a computer-readable recording medium. For example, software components may be loaded into memory 210 of computer device 200 based on computer programs installed by files received over network 170.

프로세서(220)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(210) 또는 통신 인터페이스(230)에 의해 프로세서(220)로 제공될 수 있다. 예를 들어 프로세서(220)는 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The processor 220 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Commands may be provided to the processor 220 by the memory 210 or the communication interface 230. For example, processor 220 may be configured to execute received instructions according to program code stored in a recording device such as memory 210.

통신 인터페이스(230)는 네트워크(170)를 통해 컴퓨터 장치(200)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(200)의 프로세서(220)가 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(230)의 제어에 따라 네트워크(170)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(170)를 거쳐 컴퓨터 장치(200)의 통신 인터페이스(230)를 통해 컴퓨터 장치(200)로 수신될 수 있다. 통신 인터페이스(230)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(220)나 메모리(210)로 전달될 수 있고, 파일 등은 컴퓨터 장치(200)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.The communication interface 230 may provide a function for the computer device 200 to communicate with other devices (eg, the storage devices described above) through the network 170. For example, a request, command, data, file, etc. generated by the processor 220 of the computer device 200 according to a program code stored in a recording device such as memory 210 is transmitted to the network ( 170) and can be transmitted to other devices. Conversely, signals, commands, data, files, etc. from other devices may be received by the computer device 200 through the communication interface 230 of the computer device 200 via the network 170. Signals, commands, data, etc. received through the communication interface 230 may be transmitted to the processor 220 or memory 210, and files, etc. may be stored in a storage medium (as described above) that the computer device 200 may further include. It can be stored as a permanent storage device).

입출력 인터페이스(240)는 입출력 장치(250)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(240)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(250)는 컴퓨터 장치(200)와 하나의 장치로 구성될 수도 있다.The input/output interface 240 may be a means for interfacing with the input/output device 250. For example, input devices may include devices such as a microphone, keyboard, or mouse, and output devices may include devices such as displays and speakers. As another example, the input/output interface 240 may be a means for interfacing with a device that integrates input and output functions, such as a touch screen. The input/output device 250 may be configured as a single device with the computer device 200.

또한, 다른 실시예들에서 컴퓨터 장치(200)는 도 2의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(200)는 상술한 입출력 장치(250) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.Additionally, in other embodiments, computer device 200 may include fewer or more components than those of FIG. 2 . However, there is no need to clearly show most prior art components. For example, the computer device 200 may be implemented to include at least some of the input/output devices 250 described above, or may further include other components such as a transceiver, a database, etc.

이하에서는 임베딩 유사도를 기반으로 상품을 검색하는 방법 및 장치의 구체적인 실시예를 설명하기로 한다.Hereinafter, specific embodiments of a method and device for searching products based on embedding similarity will be described.

본 실시예에서는 상품 검색 결과의 커버리지를 확장하기 위해 질의와 상품을 텀 단위가 아닌 임베딩 단위로 분석하여 상품 매칭과 상품 랭킹을 수행할 수 있다. 다시 말해, 본 실시예들은 질의의 임베딩과 유사한 임베딩을 가지는 상품을 검색 결과로 제공할 수 있다.In this embodiment, in order to expand the coverage of product search results, product matching and product ranking can be performed by analyzing queries and products in embedding units rather than term units. In other words, these embodiments can provide products with embeddings similar to the query embeddings as search results.

도 3은 본 발명의 일실시예에 따른 컴퓨터 장치의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 4는 본 발명의 일실시예에 따른 컴퓨터 장치가 수행할 수 있는 방법의 예를 도시한 흐름도이다.FIG. 3 is a block diagram showing an example of components that a processor of a computer device may include according to an embodiment of the present invention, and FIG. 4 is a method that the computer device may perform according to an embodiment of the present invention. This is a flowchart showing an example.

본 실시예에 따른 컴퓨터 장치(200)는 클라이언트를 대상으로 클라이언트 상에 설치된 전용 어플리케이션이나 컴퓨터 장치(200)와 관련된 웹/모바일 사이트 접속을 통해 상품 검색 서비스를 제공할 수 있다. 컴퓨터 장치(200)에는 컴퓨터로 구현된 상품 검색 장치가 구성될 수 있다.The computer device 200 according to this embodiment can provide a product search service to clients through a dedicated application installed on the client or through access to a web/mobile site related to the computer device 200. The computer device 200 may be configured with a computer-implemented product search device.

컴퓨터 장치(200)의 프로세서(220)는 도 4에 따른 상품 검색 방법을 수행하기 위한 구성요소로서 도 3에 도시된 바와 같이, 모델 학습부(310), 모델 튜닝부(320), 및 상품 검색부(330)를 포함할 수 있다. 실시예에 따라 프로세서(220)의 구성요소들은 선택적으로 프로세서(220)에 포함되거나 제외될 수도 있다. 또한, 실시예에 따라 프로세서(220)의 구성요소들은 프로세서(220)의 기능의 표현을 위해 분리 또는 병합될 수도 있다.The processor 220 of the computer device 200 is a component for performing the product search method according to FIG. 4, and as shown in FIG. 3, the model learning unit 310, the model tuning unit 320, and the product search It may include unit 330. Depending on the embodiment, components of the processor 220 may be selectively included in or excluded from the processor 220. Additionally, depending on the embodiment, components of the processor 220 may be separated or merged to express the functions of the processor 220.

이러한 프로세서(220) 및 프로세서(220)의 구성요소들은 도 3의 상품 검색 방법이 포함하는 단계들(S410 내지 S440)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다. 예를 들어, 프로세서(220) 및 프로세서(220)의 구성요소들은 메모리(210)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다.The processor 220 and the components of the processor 220 can control the computer device 200 to perform steps S410 to S440 included in the product search method of FIG. 3. For example, the processor 220 and its components may be implemented to execute instructions according to the code of an operating system included in the memory 210 and the code of at least one program.

여기서, 프로세서(220)의 구성요소들은 컴퓨터 장치(200)에 저장된 프로그램 코드가 제공하는 명령에 따라 프로세서(220)에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 컴퓨터 장치(200)가 쇼핑 모델을 학습하도록 상술한 명령에 따라 컴퓨터 장치(200)를 제어하는 프로세서(220)의 기능적 표현으로서 모델 학습부(310)가 이용될 수 있다.Here, the components of the processor 220 may be expressions of different functions performed by the processor 220 according to instructions provided by program codes stored in the computer device 200. For example, the model learning unit 310 may be used as a functional representation of the processor 220 that controls the computer device 200 according to the above-described commands so that the computer device 200 learns a shopping model.

프로세서(220)는 컴퓨터 장치(200)의 제어와 관련된 명령이 로딩된 메모리(210)로부터 필요한 명령을 읽어들일 수 있다. 이 경우, 상기 읽어들인 명령은 프로세서(220)가 이후 설명될 단계들(S410 내지 S440)을 실행하도록 제어하기 위한 명령을 포함할 수 있다.The processor 220 may read necessary instructions from the memory 210 where instructions related to controlling the computer device 200 are loaded. In this case, the read command may include a command for controlling the processor 220 to execute steps S410 to S440 that will be described later.

이후 설명될 단계들(S410 내지 S440)은 도 4에 도시된 순서와 다른 순서로 수행될 수 있으며, 단계들(S410 내지 S440) 중 일부가 생략되거나 추가의 과정이 더 포함될 수 있다.Steps S410 to S440 to be described later may be performed in an order different from the order shown in FIG. 4, and some of the steps S410 to S440 may be omitted or additional processes may be included.

도 4를 참조하면, 단계(S410)에서 모델 학습부(310)는 상품 검색 서비스를 제공하는 쇼핑 도메인의 텍스트를 이용하여 상품 검색을 위한 기본 모델을 사전학습(pretraining)할 수 있다. 예를 들면, 모델 학습부(310)는 BERT(Bidirectional Encoder Representations from Transformer) 모델을 기반으로 쇼핑 도메인의 텍스트를 잘 이해하는 모델을 생성할 수 있다. 이때, 모델 학습부(310)는 상품 정보를 유지하는 상품 데이터베이스와 상품 구매자로부터 등록된 상품 리뷰나 질의 등으로부터 텍스트를 추출하여 쇼핑 문서 집합(shopping corpus)을 생성할 수 있다. 그리고, 모델 학습부(310)는 쇼핑 도메인에서 빈번하게 출현하는 단어나 구 등의 텍스트를 추출하여 쇼핑 어휘 사전(shopping vocabulary)을 생성할 수 있다. 모델 학습부(310)는 쇼핑 문서 집합과 쇼핑 어휘 사전 중 적어도 하나를 이용하여 BERT 모델을 사전학습하는 방식을 통해 기본 모델을 생성할 수 있다. BERT 모델뿐만 아니라, 임베딩을 추출할 수 있고 텍스트의 의미를 학습할 수 있는 임의의 사전학습 언어 모델(PLM ; pretrained language model)을 활용하여 기본 모델을 만들 수 있다.Referring to FIG. 4, in step S410, the model learning unit 310 may pretrain a basic model for product search using text from a shopping domain that provides a product search service. For example, the model learning unit 310 may generate a model that well understands text in the shopping domain based on the BERT (Bidirectional Encoder Representations from Transformer) model. At this time, the model learning unit 310 may generate a shopping corpus by extracting text from a product database that maintains product information and product reviews or inquiries registered from product buyers. Additionally, the model learning unit 310 may generate a shopping vocabulary dictionary by extracting text such as words or phrases that frequently appear in the shopping domain. The model learning unit 310 may generate a basic model by pre-training the BERT model using at least one of a shopping document set and a shopping vocabulary dictionary. In addition to the BERT model, a basic model can be created using an arbitrary pretrained language model (PLM) that can extract embeddings and learn the meaning of the text.

단계(S420)에서 모델 튜닝부(320)는 질의와 상품의 임베딩을 기초로 기본 모델을 파인튜닝(finetuning)함으로써 실제 상품 검색에 활용할 수 있는 임베딩 매칭 기반 상품 검색 모델(이하, '임베딩 검색 모델'이라 칭함)을 생성할 수 있다. 일례로, 모델 튜닝부(320)는 질의와 상품 간 클릭 로그(질의에 대한 검색 결과로 제공된 상품 중 클릭된 상품)와 상품 데이터베이스를 분석하여 질의에 대해 연관도가 높은 상품과 연관도가 낮은 상품을 구분하여 파인튜닝 데이터를 생성할 수 있다. 모델 튜닝부(320)는 파인튜닝 데이터로 생성된 질의와 상품을 기본 모델에 입력하여 질의의 임베딩 벡터와 상품의 임베딩 벡터를 생성할 수 있다. 이때, 질의에 대해 연관도가 높은 상품은 임베딩 벡터 간의 유사도(예를 들어, 코사인 유사도)가 증가하도록 기본 모델을 학습하고, 반대로 연관도가 낮은 상품은 임베딩 벡터 간의 유사도(예를 들어, 코사인 유사도)가 감소하도록 기본 모델을 학습할 수 있다. 모델 튜닝부(320)는 기본 모델에 파인튜닝 데이터를 이용한 학습 과정을 거침으로써 임베딩 검색 모델을 생성할 수 있다.In step S420, the model tuning unit 320 fine-tunes the basic model based on the query and the embedding of the product, thereby creating an embedding matching-based product search model (hereinafter referred to as 'embedding search model') that can be used for actual product search. ) can be created. For example, the model tuning unit 320 analyzes the click log between the query and the product (products clicked among products provided as search results for the query) and the product database to determine which products are highly relevant and which are low related to the query. Fine tuning data can be generated by distinguishing between . The model tuning unit 320 may input the query and product generated from fine tuning data into the basic model to generate an embedding vector of the query and an embedding vector of the product. At this time, products with a high degree of relevance to the query learn the basic model to increase the similarity (e.g., cosine similarity) between the embedding vectors, and conversely, products with a low degree of correlation learn the basic model to increase the similarity between the embedding vectors (e.g., cosine similarity). ) can be learned to reduce the basic model. The model tuning unit 320 may generate an embedding search model by going through a learning process using fine tuning data on the basic model.

단계(S430)에서 상품 검색부(330)는 실시간 검색 과정에서 질의가 주어지는 경우 주어진 질의의 임베딩과 유사한 임베딩을 가지는 상품을 검색할 수 있다. 상품 검색을 위해 먼저, 상품 검색부(330)는 임베딩 검색 모델을 활용하여 전체 상품에 대한 임베딩을 추출할 수 있고, 상품 임베딩에 K-평균 클러스터링(K-means clustering) 알고리즘을 적용하여 적절한 개수의 클러스터 센트로이드(cluster centroid)를 학습할 수 있다. 상품 검색부(330)는 오프라인 색인 단계에서 상품 각각에 대하여 해당 상품과 가장 가까운 센트로이드 아이디를 활용한 상품 센트로이드 텀을 추출하여 색인할 수 있다. 이후, 상품 검색부(330)는 실시간 검색 단계에서 입력된 질의의 임베딩에 해당하는 질의 센트로이드 텀과 동일한 상품 센트로이드 텀을 가지는 상품을 매칭하여 검색할 수 있다. 아울러, 상품 검색부(330)는 상품 임베딩 집합으로부터 학습된 PQ(product quantization) 코드북을 활용하여 질의 임베딩의 PQ 코드와 동일한 PQ 코드를 가지는 상품을 매칭하여 검색할 수 있다.In step S430, when a query is given in a real-time search process, the product search unit 330 may search for products having an embedding similar to the embedding of the given query. First, for product search, the product search unit 330 can extract embeddings for all products using an embedding search model, and apply the K-means clustering algorithm to the product embeddings to find an appropriate number of products. Cluster centroids can be learned. In the offline indexing step, the product search unit 330 may extract and index a product centroid term using the centroid ID closest to the product for each product. Thereafter, the product search unit 330 may search by matching products having the same product centroid term as the query centroid term corresponding to the embedding of the query entered in the real-time search step. In addition, the product search unit 330 can use a PQ (product quantization) codebook learned from a set of product embeddings to match and search products having the same PQ code as the PQ code of the query embedding.

단계(S440)에서 상품 검색부(330)는 임베딩 검색 모델을 이용한 검색 결과를 질의와 상품 간의 임베딩 유사도를 기준으로 랭킹(순위화)할 수 있다. 다시 말해, 상품 검색부(330)는 질의와 상품 간의 임베딩 유사도를 검색 결과의 랭킹을 결정하기 위한 피처로 활용할 수 있다.In step S440, the product search unit 330 may rank search results using an embedding search model based on embedding similarity between the query and the product. In other words, the product search unit 330 can use the embedding similarity between the query and the product as a feature to determine the ranking of the search results.

더 나아가, 상품 검색부(330)는 상품 매칭(S430)과 상품 랭킹(S440)에 있어 질의에 따라 임베딩 검색 모델과 적어도 하나의 다른 검색 모델을 적응적으로 앙상블(ensemble)할 수 있다. 일례로, 상품 검색부(330)는 주어진 질의에 대해 임베딩 검색 모델과 함께, 질의의 텀과 동일한 텀을 가지는 상품을 검색하는 텀 매칭 검색 모델을 연동하여 검색 결과를 제공할 수 있다. 이때, 상품 검색부(330)는 상품 매칭 관점에서 텀 매칭으로 검색된 상품에 대한 가중치와 임베딩 매칭으로 검색된 상품에 대한 가중치를 질의에 따라 적응적으로 설정할 수 있다. 경우에 따라서는 검색 결과에 대한 정확도를 높은 수준으로 유지하기 위해 질의의 임베딩과 가장 가까운 센트로이드의 품질에 따라 임베딩 검색 모델을 이용한 검색을 생략하는 로직을 적용할 수 있다. 그리고, 상품 검색부(330)는 질의와 상품 간의 텀 유사도와 임베딩 유사도를 랭킹 피처로 활용함에 있어 텀 유사도에 대한 가중치와 임베딩 유사도에 대한 가중치를 질의에 따라 적응적으로 설정할 수 있다.Furthermore, the product search unit 330 may adaptively ensemble the embedding search model and at least one other search model according to the query in product matching (S430) and product ranking (S440). For example, the product search unit 330 may provide search results by linking an embedding search model for a given query with a term matching search model that searches for products having the same term as the term of the query. At this time, from the product matching perspective, the product search unit 330 may adaptively set the weight for the product searched through term matching and the weight for the product searched through embedding matching according to the query. In some cases, in order to maintain the accuracy of search results at a high level, logic can be applied to omit the search using the embedding search model depending on the quality of the centroid closest to the query embedding. Additionally, when using the term similarity and embedding similarity between the query and the product as ranking features, the product search unit 330 can adaptively set the weight for the term similarity and the weight for the embedding similarity according to the query.

도 5는 본 발명의 일실시예에 있어서 상품 검색을 위한 기본 모델을 사전학습하는 과정을 설명하기 위한 예시 도면이다.Figure 5 is an example diagram to explain the process of pre-learning a basic model for product search in one embodiment of the present invention.

실제 서비스에서는 질의와 상품의 임베딩을 추출하는 작업이 빠르게 동작할 수 있도록 모델 구조를 경량화하는 것이 필요하다. 임베딩 추출 과정에서 요구되는 목표 실시간 처리속도와 처리량 지표를 설정한 후 설정된 지표를 달성할 수 있는 수준의 모델 구조를 설계한다.In actual services, it is necessary to lighten the model structure so that the task of extracting query and product embeddings can operate quickly. After setting the target real-time processing speed and throughput indicators required in the embedding extraction process, design a model structure at a level that can achieve the set indicators.

일례로, 도 5를 참조하면 BERT 모델(50)로부터 목표 지표를 만족하는 경량화 모델의 파라미터를 증류(distillation)하거나 혹은 파라미터가 초기화된 경량화 모델로 구성된 BERT 모델(50)에 학습 문서인 쇼핑 어휘 사전(501)과 쇼핑 문서 집합(502)을 직접 사전학습하는 방식을 적용할 수 있다.For example, referring to Figure 5, the parameters of a lightweight model that satisfies the target index are distilled from the BERT model 50, or the shopping vocabulary dictionary, which is a learning document, is added to the BERT model 50 consisting of a lightweight model with initialized parameters. A method of directly pre-learning the (501) and shopping document set (502) can be applied.

여러 버전의 모델 구조로 경량화된 BERT 모델(50)에 쇼핑 도메인의 텍스트로 이루어진 쇼핑 어휘 사전(501)과 쇼핑 문서 집합(502)을 전이 학습(transfer learning)하는 과정을 통해서 다운스트림 작업(downstream task)의 성능을 비교하여 가장 좋은 성능의 모델을 기본 모델(510)로 선택할 수 있다.Downstream tasks are performed through the process of transfer learning a shopping vocabulary dictionary (501) and a shopping document set (502) consisting of text from the shopping domain to the lightweight BERT model (50) with multiple versions of the model structure. ), the model with the best performance can be selected as the basic model (510).

모델 학습부(310)는 쇼핑 어휘 사전(501)과 쇼핑 문서 집합(502)을 이용하여 경량화된 구조의 BERT 모델(50)을 사전학습하는 방식으로 기본 모델(510)을 생성할 수 있다.The model learning unit 310 may generate the basic model 510 by pre-training the lightweight BERT model 50 using the shopping vocabulary dictionary 501 and the shopping document set 502.

모델 학습부(310)는 쇼핑 문서 집합(502)을 생성하는 과정에서 일반적인 웹 문서가 아닌 쇼핑 도메인의 특성을 활용할 수 있다. 모델 학습부(310)는 상품 데이터베이스와 상품 리뷰 등으로부터 질의와의 텀 매칭에 활용 가능한 모든 필드의 텍스트를 추출한 후 형태소 분석기를 사용하여 추출된 텍스트를 전처리 및 정규화할 수 있다. 모델 학습부(310)는 예를 들어, 상품의 가격, 사이즈, 카테고리 아이디, 색상 코드, 제조사 일련번호 등 텀 매칭에 활용하기 어려운 수치형 필드를 텍스트로 추출하여 학습에 활용할 수 있다. 예를 들어, 상품 가격이 11000원인 경우 '1만원대' 등과 같이 가격대를 나타내는 텍스트로 변환하여 학습에 활용할 수 있다.The model learning unit 310 may utilize the characteristics of a shopping domain rather than a general web document in the process of generating the shopping document set 502. The model learning unit 310 extracts the text of all fields that can be used for term matching with queries from the product database and product reviews, and then preprocesses and normalizes the extracted text using a morphological analyzer. For example, the model learning unit 310 can extract numerical fields that are difficult to use for term matching, such as product price, size, category ID, color code, and manufacturer serial number, as text and use them for learning. For example, if the price of a product is 11,000 won, it can be converted into text indicating the price range, such as '10,000 won range', and used for learning.

쇼핑 문서 집합(502)을 생성하는 과정에서 상품 데이터베이스만을 활용하는 것이 아니라, 사용자가 입력한 리뷰나 질의 등으로부터 얻은 데이터를 함께 활용할 수 있다. 예를 들어, 사용자 질의에 포함되는 가격대 정보의 분포를 분석하여 가격대 텍스트를 추출하는 구간과 간격을 학습할 수 있다.In the process of creating the shopping document set 502, not only the product database can be used, but also data obtained from reviews or queries entered by users can also be used. For example, by analyzing the distribution of price range information included in user queries, the section and interval for extracting price range text can be learned.

본 실시예에서는 쇼핑 도메인의 특징을 고려하여 기본 모델(510)을 생성하기 위한 사전학습 데이터를 구성할 수 있다.In this embodiment, pre-learning data for generating the basic model 510 can be configured by considering the characteristics of the shopping domain.

도 6은 본 발명의 일실시예에 있어서 기본 모델을 파인튜닝하여 임베딩 검색 모델을 생성하는 과정을 설명하기 위한 예시 도면이다.Figure 6 is an example diagram illustrating the process of generating an embedding search model by fine-tuning a basic model in one embodiment of the present invention.

도 6을 참조하면, 모델 튜닝부(320)는 기본 모델(510)에 파인튜닝 과정을 적용하여 질의와 상품의 임베딩을 추출하는데 활용할 수 있는 임베딩 검색 모델(620)을 생성할 수 있다.Referring to FIG. 6, the model tuning unit 320 can apply a fine tuning process to the basic model 510 to create an embedding search model 620 that can be used to extract embeddings of queries and products.

본 실시예에 따른 파인튜닝 과정에서는 주로 검색 결과 내에서 클릭된 상품 데이터를 활용할 수 있다. 질의의 검색 결과에서 클릭된 상품 클릭 로그와 상품 데이터베이스를 조인 및 분석하여 질의에 대해 연관도가 높은 상품과 연관도가 낮은 상품을 구분하여 연관도가 높은 질의-상품 쌍 데이터와 연관도가 낮은 질의-상품 쌍 데이터를 파인튜닝 데이터로 생성할 수 있다.In the fine tuning process according to this embodiment, product data clicked within the search results can mainly be utilized. By joining and analyzing product click logs and product databases clicked on in the search results of a query, products with a high relevance to a query are distinguished from products with a low relevance, and the query-product pair data with a high relevance and a query with a low correlation are classified. -Product pair data can be created as fine tuning data.

모델 튜닝부(320)는 기본 모델(510)에 파인튜닝 데이터를 입력하여 질의와 상품의 임베딩 벡터 품질을 높일 수 있는 방향으로 학습을 진행한다. 도 6을 참조하면, 질의에 대해 적합한 상품의 경우 질의와 상품의 임베딩으로부터 계산된 코사인 유사도를 높이는 방향으로 기본 모델(510)을 학습하고, 질의에 대해 적합하지 않은 상품의 경우 질의와 상품의 임베딩으로부터 계산된 코사인 유사도를 낮추는 방향으로 기본 모델(510)을 학습할 수 있다.The model tuning unit 320 inputs fine tuning data into the basic model 510 and performs learning to improve the quality of the embedding vectors of queries and products. Referring to FIG. 6, for products that are suitable for the query, the basic model 510 is learned to increase the cosine similarity calculated from the embedding of the query and the product, and for products that are not suitable for the query, the embedding of the query and the product is learned. The basic model 510 can be learned in the direction of lowering the cosine similarity calculated from .

마찬가지로, 파인튜닝 과정에서 상품의 임베딩을 추출할 때 쇼핑 도메인의 특성을 활용할 수 있다. 문장들의 나열 형태로 모델링하는 일반적인 문서 임베딩과 달리, 쇼핑 상품은 여러가지의 텍스트 필드와 수치형 필드 등으로 구성될 수 있다. 일반적인 텀 매칭에서 활용되는 주요 텍스트 필드(예를 들어, 상품명, 카테고리명, 브랜드, 상점명, 상품 리뷰 등)를 활용하는 것은 물론이고, 가격이나 사이즈, 각종 코드 등 텀 매칭에서 활용하기 어려운 수치형 필드 또한 텍스트 형태로 변환하여 상품 임베딩에 활용할 수 있다.Likewise, the characteristics of the shopping domain can be utilized when extracting product embeddings during the fine tuning process. Unlike general document embedding, which is modeled as a list of sentences, shopping products can be composed of various text fields and numeric fields. In addition to utilizing major text fields used in general term matching (e.g., product name, category name, brand, store name, product review, etc.), numeric fields that are difficult to utilize in term matching such as price, size, and various codes Additionally, it can be converted to text format and used for product embedding.

임베딩 검색 모델(620)의 품질을 높이기 위한 기술의 일례로, 질의-상품 쌍 데이터에 차등적인 레이블을 부여하여 파인튜닝 데이터로 사용할 수 있다. 이분법적인 연관 유무에 따른 레이블로 학습 데이터를 구성하는 것이 아니라, 질의와 상품(쇼핑 도메인)에 대해서 상품이 질의와 어느 정도의 연관도를 가지고 있는지를 차등적인 레이블로 부여하여 학습 데이터를 구성할 수 있다. 상품의 텍스트 필드와 질의가 얼마나 연관되는지를 수치화하여 이를 바탕으로 레이블을 생성할 수 있다. 예를 들어, 질의 'xx 노트북'에 대해 xx 브랜드의 노트북 상품은 '매우 연관'에 해당되는 레이블, xx 브랜드와 다른 브랜드의 노트북 상품은 '연관'에 해당되는 레이블, 냉장고나 의류 등과 같이 전혀 다른 상품은 '연관 없음'에 해당되는 레이블이 부여될 수 있다.As an example of a technology to improve the quality of the embedding search model 620, differential labels can be assigned to query-product pair data and used as fine tuning data. Rather than configuring learning data with labels according to the presence or absence of a dichotomous association, learning data can be configured by assigning differential labels to queries and products (shopping domain) to indicate the degree to which the product is related to the query. there is. You can quantify how the product's text field is related to the query and create a label based on this. For example, for the query 'xx laptop', laptop products of brand xx are labeled 'very related', laptop products of brand xx and other brands are labeled 'related', and completely different labels such as refrigerators or clothing are labeled. A product may be given a label corresponding to 'unrelated'.

다른 예로, 질의에 대하여 검색 결과로 제공된 상품의 클릭 횟수와 CTR(노출 대비 클릭 비율) 등 질의와의 연관도를 나타내는 지표를 활용하여 질의-상품 쌍 데이터의 중요도를 차등 적용할 수 있다. 예를 들어, 질의에 대해 많이 클릭되고 CTR이 높은 상품일수록 해당 질의와 상품 간의 유사도가 더 높아지는 방향으로 모델 파라미터를 업데이트할 수 있다.As another example, the importance of query-product pair data can be differentially applied by using indicators that indicate the degree of relevance to the query, such as the number of clicks on the product provided as a search result and CTR (click-to-exposure ratio). For example, model parameters can be updated so that the more clicks a query has on a product and the higher the CTR, the higher the similarity between the query and the product.

또 다른 예로, 네거티브 샘플링 기법을 통해 연관도가 낮은 질의-상품 쌍 데이터를 구성할 수 있다. 단순히 질의에 대해 클릭되지 않은 상품을 랜덤하게 샘플링하는 경우 좋은 품질의 임베딩 검색 모델(620)을 확보하기 어렵다. 질의와 무관한 상품이 아니라, 질의와 적절한 연관성을 가지고 있되 텍스트 매칭 측면에서 연관도가 낮은 상품들을 네거티브 샘플링하여 연관도가 낮은 질의-상품 쌍 데이터로 활용할 수 있다. 예를 들어, 질의에 대해 많이 클릭된 상품과 동일한 브랜드나 판매처의 상품, 혹은 유사한 가격대나 카테고리의 상품 중에서 질의 텀을 구성하는 중요한 텀과 매칭되지 않은 상품을 네거티브 샘플링할 수 있다. 네거티브 샘플링으로 구성된 질의-상품 쌍 데이터에 대해 질의와 상품 간에 매칭되지 않은 텀들의 중요도에 따라 레이블을 설정한 후 설정된 레이블에 따라 코사인 유사도를 감소하는 정도를 조절하는 방식으로 학습할 수 있다.As another example, negative sampling techniques can be used to construct query-product pair data with low correlation. It is difficult to secure a good quality embedding search model (620) if you simply randomly sample products that were not clicked on in response to the query. Rather than products that are unrelated to the query, products that have an appropriate correlation with the query but have a low correlation in terms of text matching can be negatively sampled and used as query-product pair data with a low correlation. For example, among products of the same brand or seller as the most clicked products in response to the query, or products in a similar price range or category, products that do not match the important terms that make up the query term can be negatively sampled. For query-product pair data composed of negative sampling, you can learn by setting a label according to the importance of terms that do not match between the query and the product, and then adjusting the degree to which the cosine similarity is reduced according to the set label.

따라서, 모델 튜닝부(320)는 쇼핑 도메인의 특성을 고려하여 연관도가 높은 질의-상품 쌍 데이터와 연관도가 낮은 질의-상품 쌍 데이터를 파인튜닝 데이터로 생성한 후 파인튜닝 데이터의 레이블과 코사인 유사도 예측 값 사이의 상관계수가 수렴하는 임베딩 검색 모델(620)을 만들 수 있다.Therefore, the model tuning unit 320 considers the characteristics of the shopping domain and generates query-product pair data with a high degree of correlation and query-product pair data with a low degree of correlation as fine tuning data, and then creates the label and cosine of the fine tuning data. An embedding search model 620 in which the correlation coefficient between similarity prediction values converges can be created.

도 7 내지 도 9는 본 발명의 일실시예에 있어서 임베딩 유사도를 기반으로 상품을 검색하는 과정을 설명하기 위한 예시 도면이다.Figures 7 to 9 are example diagrams to explain the process of searching for products based on embedding similarity in one embodiment of the present invention.

도 7을 참조하면, 상품 검색부(330)는 오프라인 처리 방식으로 임베딩 검색 모델(620)을 이용하여 상품 데이터베이스에 존재하는 모든 상품에 대한 임베딩을 추출할 수 있다. 상품의 텀을 역인덱스로 구성하여 빠르게 검색하는 것과 동일한 방식을 적용할 수 있다.Referring to FIG. 7, the product search unit 330 can extract embeddings for all products existing in the product database using the embedding search model 620 through offline processing. You can apply the same method of quickly searching by organizing the product term into a reverse index.

상품 검색부(330)는 K-평균 클러스터링을 통해서 적절한 개수의 클러스터 센트로이드를 학습한 다음에 상품의 임베딩을 색인하기 위해 사용할 수 있다. 센트로이드를 반복 학습하는 과정에서 품질 지표를 이용하여 최선의 모델 파라미터를 튜닝할 수 있다. 이때, 품질 지표로는 클러스터링 품질 지표인 실루엣 계수와, 상품의 주요 필드에 대한 엔트로피(entropy) 및 불순도(impurity)를 활용할 수 있다. 클러스터에 군집된 상품의 주요 필드별 엔트로피와 불순도는 쇼핑 도메인의 특성을 고려하여 상품 클러스터링 측면에서 추가적으로 확인 가능한 품질 지표라 할 수 있다.The product search unit 330 can learn an appropriate number of cluster centroids through K-means clustering and then use them to index the embedding of the product. In the process of repeatedly learning centroids, quality indicators can be used to tune the best model parameters. At this time, the silhouette coefficient, which is a clustering quality indicator, and the entropy and impurity of the main fields of the product can be used as quality indicators. The entropy and impurity of each major field of products clustered in a cluster can be considered additional quality indicators that can be confirmed in terms of product clustering, considering the characteristics of the shopping domain.

상품 검색부(330)는 오프라인 색인 단계에서 각 상품과 가장 가까운 센트로이드 아이디를 활용한 상품 센트로이드 텀을 추출하여 색인할 수 있다. 예를 들어, 도 8에 도시한 바와 같이 특정 상품의 임베딩이 614번째 센트로이드와 가장 가깝다고 가정하면 'cent614'라는 일종의 텀을 역인덱스에 추가할 수 있다. 상품 검색부(330)는 실시간 검색 단계에서 입력된 질의의 임베딩에 해당하는 질의 센트로이드 텀과 동일한 상품 센트로이드 텀을 가지는 상품을 매칭하여 검색할 수 있다. 사용자 질의로부터 실시간으로 추출한 임베딩에 대해서도 마찬가지로 질의의 임베딩과 가장 가까운 센트로이드로 색인된 상품들을 빠르게 부분 탐색할 수 있다.The product search unit 330 may extract and index the product centroid term using the centroid ID closest to each product in the offline indexing step. For example, as shown in Figure 8, assuming that the embedding of a specific product is closest to the 614th centroid, a term called 'cent614' can be added to the inverse index. The product search unit 330 may search by matching products having the same product centroid term as the query centroid term corresponding to the embedding of the query entered in the real-time search step. Likewise, for embeddings extracted in real time from user queries, products indexed by centroids closest to the embeddings in the query can be quickly partially searched.

도 9를 참조하면, 상품 검색부(330)는 클러스터 센트로이드와 비슷한 방식으로, 질의 임베딩의 PQ 코드와 동일한 PQ 코드의 상품을 빠르게 부분 탐색하는 방식을 함께 적용할 수 있다. 내부적으로는 질의 임베딩과 상품 임베딩 간의 코사인 유사도 근사치를 빠르게 계산할 때에도 별도의 PQ 코드북을 학습하여 활용할 수 있다.Referring to FIG. 9, the product search unit 330 can apply a method of quickly partially searching products with the same PQ code as the PQ code of the query embedding in a manner similar to the cluster centroid. Internally, a separate PQ codebook can be learned and utilized when quickly calculating the cosine similarity approximation between query embedding and product embedding.

검색 결과에 대한 정확도를 높은 수준으로 유지하기 위해 질의의 임베딩과 가장 가까운 센트로이드의 품질이 일정 레벨 이하인 경우 임베딩 검색 모델을 이용한 검색을 활용하지 않을 수 있다. 센트로이드에 할당된 상품들의 카테고리에 기초하여 센트로이드의 품질이 결정될 수 있다. 예를 들어, 동일 센트로이드에 서로 연관성이 낮은 카테고리의 상품들이 할당될수록 해당 센트로이드의 품질이 낮은 것으로 판단할 수 있다.In order to maintain the accuracy of search results at a high level, if the quality of the centroid closest to the query embedding is below a certain level, search using the embedding search model may not be used. The quality of a centroid may be determined based on the categories of products assigned to the centroid. For example, the more products in categories that are less related to each other are assigned to the same centroid, the lower the quality of the centroid may be judged to be.

상품 검색부(330)는 질의 임베딩에 대한 실시간 추출 작업의 효율성을 높이기 위해 사전에 덤프한 임베딩 매트릭스를 조회하는 방법을 활용할 수 있다. 일종의 캐싱 형태로, 자주 유입되는 질의에 대해 사전에 임베딩을 추출한 후 추출된 임베딩과 해당 임베딩의 인덱스를 덤프할 수 있다. 상품 검색부(330)는 사전에 덤프된 질의가 유입되는 경우 트라이(trie)와 같은 자료 구조를 활용하여 유입된 질의의 임베딩 인덱스를 조회한 후 해당 인덱스를 통해서 임베딩 매트릭스를 조회함으로써 질의 임베딩을 실시간으로 추출할 수 있다.The product search unit 330 can utilize a method of querying a pre-dumped embedding matrix to increase the efficiency of real-time extraction work for query embedding. As a form of caching, it is possible to extract embeddings in advance for frequently incoming queries and then dump the extracted embeddings and the indices of the embeddings. When a pre-dumped query is received, the product search unit 330 searches the embedding index of the incoming query using a data structure such as a trie, and then searches the embedding matrix through the index to perform query embedding in real time. It can be extracted with

도 10은 본 발명의 일실시예에 있어서 다른 검색 모델과의 앙상블을 통해 검색 결과를 제공하는 과정을 설명하기 위한 예시 도면이다.Figure 10 is an example diagram for explaining a process of providing search results through ensemble with other search models in one embodiment of the present invention.

상품 검색부(330)는 입력된 질의에 대해 임베딩 검색 모델과 텀 매칭 검색 모델을 연동하여 검색 결과를 제공할 수 있다. 임베딩 검색 모델을 상품 매칭에 적용하는 경우 텀 매칭만으로 검색되지 못하는 상품을 추가적으로 검색할 수 있다.The product search unit 330 may provide search results by linking an embedding search model and a term matching search model for the input query. When applying the embedding search model to product matching, products that cannot be searched through term matching alone can be additionally searched.

도 10을 참조하면, 상품 검색부(330)는 주어진 질의에 따라 텀 매칭 검색 모델에 의한 텀 매칭 상품(1010)과 임베딩 검색 모델에 의한 임베딩 매칭 상품(1020) 간의 가중치를 적응적으로 설정할 수 있다. 임베딩 매칭 상품(1020)의 가중치는 센트로이드의 품질 지표에 기초하여 결정될 수 있다. 예를 들어, 질의의 임베딩과 가장 가까운 센트로이드가 해당 질의의 카테고리와 일치하는 정도가 높은 경우 임베딩 매칭 상품(1020)의 가중치를 텀 매칭 상품(1010)보다 상대적으로 높게 설정할 수 있다. 반면에, 질의의 임베딩과 가장 가까운 센트로이드에 할당된 상품들이 너무 다양하고 해당 질의의 카테고리와 일치하는 정도가 낮은 경우 임베딩 매칭 상품(1020)의 가중치를 텀 매칭 상품(1010)보다 상대적으로 낮게 설정할 수 있다. 실시예에 따라서는 질의의 임베딩과 가장 가까운 센트로이드의 품질(실루엣 계수, 엔트로피, 불순도 등)에 따라 검색 결과에서 임베딩 매칭 상품(1020)을 제외시킬 수 있다.Referring to FIG. 10, the product search unit 330 can adaptively set the weight between the term matching product 1010 by the term matching search model and the embedding matching product 1020 by the embedding search model according to the given query. . The weight of the embedding matching product 1020 may be determined based on the quality index of the centroid. For example, if the centroid closest to the embedding of the query matches the category of the query to a high degree, the weight of the embedding matching product 1020 can be set to be relatively higher than that of the term matching product 1010. On the other hand, if the products assigned to the centroid closest to the embedding of the query are too diverse and the degree of matching with the category of the query is low, the weight of the embedding matching product (1020) can be set relatively lower than that of the term matching product (1010). You can. Depending on the embodiment, the embedding matching product 1020 may be excluded from the search results depending on the quality (silhouette coefficient, entropy, impurity, etc.) of the centroid closest to the embedding of the query.

또한, 상품 검색부(330)는 질의와 상품 간의 텀 유사도와 임베딩 유사도를 랭킹 피처로 활용할 수 있다. 임베딩 검색 모델에서는 텀 매칭 검색 모델에서 활용할 수 없었던 임베딩 유사도를 랭킹 피처로 제공할 수 있다. 일례로, 상품 검색부(330)는 질의와의 임베딩 유사도를 텀 유사도와 더하는 방식을 적용하여 상품 랭킹을 결정할 수 있다. 임베딩 유사도와 텀 유사도를 더하는 방식으로 상품 랭킹을 제공하는 경우 임베딩 매칭과 텀 매칭이 동시에 적용되는 상품에 지나치게 많은 유사도가 부여될 수 있다. 이러한 이슈를 해결하기 위한 다른 예로, 상품 검색부(330)는 텀 유사도에 대한 가중치와 임베딩 유사도에 대한 가중치를 질의에 따라 다르게 설정할 수 있다. 상품 검색부(330)는 질의와 상품 간 클릭 로그를 이용한 질의 레벨 LTR(learning to rank) 기법을 통해서 상품 랭킹에 반영할 임베딩 유사도의 가중치를 학습함으로써 주어진 질의에 따라 임베딩 유사도의 가중치를 결정할 수 있다.Additionally, the product search unit 330 can use the term similarity and embedding similarity between the query and the product as ranking features. In the embedding search model, embedding similarity, which could not be used in the term matching search model, can be provided as a ranking feature. For example, the product search unit 330 may determine the product ranking by adding the embedding similarity with the query to the term similarity. If product ranking is provided by adding embedding similarity and term similarity, too much similarity may be given to products to which embedding matching and term matching are applied simultaneously. As another example to solve this issue, the product search unit 330 may set the weight for term similarity and the weight for embedding similarity differently depending on the query. The product search unit 330 can determine the weight of embedding similarity according to a given query by learning the weight of embedding similarity to be reflected in product ranking through a query level LTR (learning to rank) technique using click logs between queries and products. .

이처럼 본 발명의 실시예들에 따르면, 질의의 임베딩과 유사한 임베딩을 가지는 상품을 검색 결과로 제공함으로써 질의에 대해 보다 정확한 상품 검색 결과를 제공할 수 있고, 질의와 상품 간의 임베딩 유사도를 검색 결과의 랭킹을 결정하기 위한 피처로 활용함으로써 검색 랭킹의 품질을 개선할 수 있다.In this way, according to embodiments of the present invention, more accurate product search results can be provided for queries by providing products with embeddings similar to the embedding of the query as search results, and the embedding similarity between the query and the product can be used to rank the search results. The quality of search ranking can be improved by using it as a feature to determine.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented with hardware components, software components, and/or a combination of hardware components and software components. For example, the devices and components described in the embodiments include a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), and a programmable logic unit (PLU). It may be implemented using one or more general-purpose or special-purpose computers, such as a logic unit, microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. Additionally, a processing device may access, store, manipulate, process, and generate data in response to the execution of software. For ease of understanding, a single processing device may be described as being used; however, those skilled in the art will understand that a processing device includes multiple processing elements and/or multiple types of processing elements. It can be seen that it may include. For example, a processing device may include a plurality of processors or one processor and one controller. Additionally, other processing configurations, such as parallel processors, are possible.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing unit to operate as desired, or may be processed independently or collectively. You can command the device. The software and/or data may be embodied in any type of machine, component, physical device, computer storage medium or device for the purpose of being interpreted by or providing instructions or data to the processing device. there is. Software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. At this time, the medium may continuously store a computer-executable program, or temporarily store it for execution or download. In addition, the medium may be a variety of recording or storage means in the form of a single or several pieces of hardware combined. It is not limited to a medium directly connected to a computer system and may be distributed over a network. Examples of media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, And there may be something configured to store program instructions, including ROM, RAM, flash memory, etc. Additionally, examples of other media include recording or storage media managed by app stores that distribute applications, sites or servers that supply or distribute various other software, etc.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited examples and drawings, various modifications and variations can be made by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or components of the described system, structure, device, circuit, etc. are combined or combined in a different form than the described method, or other components are used. Alternatively, appropriate results may be achieved even if substituted or substituted by an equivalent.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims also fall within the scope of the claims described below.

Claims (15)

컴퓨터 장치에서 실행되는 상품 검색 방법에 있어서,
상기 컴퓨터 장치는 메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,
상기 상품 검색 방법은,
상기 적어도 하나의 프로세서에 의해, 입력 질의에 대해 임베딩 기반 검색 모델을 이용하여 상기 입력 질의의 임베딩과 매칭되는 상품 검색 결과를 제공하는 단계
를 포함하고,
상기 상품 검색 결과를 제공하는 단계는,
상품 임베딩 집합으로 학습된 클러스터 센트로이드(cluster centroid)에서 상품의 임베딩에 대응되는 센트로이드로 상품을 색인하는 단계; 및
색인된 상품 중 상기 입력 질의의 임베딩에 대응되는 센트로이드와 동일한 센트로이드의 상품을 검색하는 단계
를 포함하는 상품 검색 방법.
In a product search method executed on a computer device,
The computer device includes at least one processor configured to execute computer-readable instructions contained in a memory,
The product search method is:
providing, by the at least one processor, product search results matching an embedding of the input query using an embedding-based search model for the input query.
Including,
The step of providing the product search results is,
Indexing a product from a cluster centroid learned as a set of product embeddings into a centroid corresponding to the embedding of the product; and
Searching for products of the same centroid as the centroid corresponding to the embedding of the input query among the indexed products.
Product search method including.
제1항에 있어서,
상기 상품 검색 결과를 제공하는 단계는,
상기 임베딩 기반 검색 모델과 함께 질의와 상품 간의 텀 매칭을 기반으로 상품을 검색하는 텀 매칭 검색 모델을 연동하여 임베딩 매칭 상품과 텀 매칭 상품을 상기 상품 검색 결과로 제공하는 것
을 특징으로 하는 상품 검색 방법.
According to paragraph 1,
The step of providing the product search results is,
Linking the term matching search model, which searches for products based on term matching between queries and products, with the embedding-based search model to provide embedding-matched products and term-matched products as the product search results.
A product search method characterized by .
제1항에 있어서,
상기 임베딩 기반 검색 모델은,
상품 정보를 유지하는 상품 데이터베이스와 사용자로부터 등록된 상품 리뷰나 질의의 텍스트로 구성된 쇼핑 문서 집합(shopping corpus) 및 쇼핑 도메인에서 출력하는 텍스트로 구성된 쇼핑 어휘 사전(shopping vocabulary) 중 적어도 하나로부터 추출한 텍스트를 학습 데이터로 이용하되 수치형 필드의 경우 텍스트로 변환하여 상기 학습 데이터로 이용하는 것
을 특징으로 하는 상품 검색 방법.
According to paragraph 1,
The embedding-based search model is,
Text extracted from at least one of a product database that maintains product information, a shopping document set (shopping corpus) consisting of the text of product reviews or queries registered by users, and a shopping vocabulary (shopping vocabulary) consisting of text output from a shopping domain. Use it as learning data, but in the case of numeric fields, convert them to text and use them as the learning data.
A product search method characterized by .
제3항에 있어서,
상기 임베딩 기반 검색 모델은,
질의와 상품 간 클릭 로그에 기초하여 연관도에 따른 질의-상품 쌍 데이터를 파인튜닝 데이터로 이용하는 것
을 특징으로 하는 상품 검색 방법.
According to paragraph 3,
The embedding-based search model is,
Using query-product pair data according to the degree of correlation based on click logs between queries and products as fine tuning data
A product search method characterized by .
제4항에 있어서,
상기 파인튜닝 데이터는,
질의와 상품 간의 연관도에 대응되는 레이블을 상기 질의-상품 쌍 데이터에 부여한 것
을 특징으로 하는 상품 검색 방법.
According to paragraph 4,
The fine tuning data is,
A label corresponding to the degree of correlation between the query and the product is assigned to the query-product pair data.
A product search method characterized by .
제4항에 있어서,
상기 파인튜닝 데이터는,
질의와 상품 간의 연관도를 나타내는 지표에 기초하여 상기 질의-상품 쌍 데이터의 중요도를 차등 적용하는 것
을 특징으로 하는 상품 검색 방법.
According to paragraph 4,
The fine tuning data is,
Differentially applying the importance of the query-product pair data based on an indicator indicating the degree of correlation between the query and the product.
A product search method characterized by .
제4항에 있어서,
상기 파인튜닝 데이터는,
질의에 대한 클릭 상품과 유사한 상품 중 질의의 텀과 매칭되지 않은 상품을 네거티브 샘플링(negative sampling)하여 질의와 상품 간에 연관도가 낮은 질의-상품 쌍 데이터로 생성하는 것
을 특징으로 하는 상품 검색 방법.
According to paragraph 4,
The fine tuning data is,
Generating query-product pair data with a low correlation between the query and the product by negative sampling products that are similar to the product clicked on in response to the query but do not match the term of the query.
A product search method characterized by .
삭제delete 제1항에 있어서,
상기 상품 검색 결과를 제공하는 단계는,
상품 임베딩 집합으로 학습된 PQ(product quantization) 코드북을 이용하여 상기 입력 질의의 임베딩에 대응되는 PQ 코드와 동일한 PQ 코드의 상품을 검색하는 단계
를 더 포함하는 상품 검색 방법.
According to paragraph 1,
The step of providing the product search results is,
Searching for products with the same PQ code as the PQ code corresponding to the embedding of the input query using a PQ (product quantization) codebook learned as a set of product embeddings.
A product search method that further includes.
제1항에 있어서,
상기 상품을 검색하는 단계는,
상기 입력 질의의 임베딩에 대응되는 센트로이드의 품질에 따라 상기 상품 검색 결과에서 상기 임베딩 기반 검색 모델에 의한 임베딩 매칭 상품을 제외시키는 단계
를 포함하는 상품 검색 방법.
According to paragraph 1,
The step of searching for the product is,
Excluding embedded matching products by the embedding-based search model from the product search results according to the quality of the centroid corresponding to the embedding of the input query.
Product search method including.
제2항에 있어서,
상기 상품 검색 결과를 제공하는 단계는,
상기 임베딩 기반 검색 모델에 의한 임베딩 매칭 상품에 대한 가중치와 상기 텀 매칭 검색 모델에 의한 텀 매칭 상품에 대한 가중치를 상기 입력 질의에 따라 적응적으로 설정하는 단계
를 포함하는 상품 검색 방법.
According to paragraph 2,
The step of providing the product search results is,
Adaptively setting a weight for an embedding matching product by the embedding-based search model and a weight for a term matching product by the term matching search model according to the input query.
Product search method including.
제2항에 있어서,
상기 상품 검색 결과를 제공하는 단계는,
상기 임베딩 기반 검색 모델을 통한 상기 입력 질의와의 임베딩 유사도와 상기 텀 매칭 검색 모델을 통한 상기 입력 질의와의 텀 유사도를 이용하여 상기 상품 검색 결과에 대한 랭킹을 제공하는 단계
를 포함하고,
상기 상품 검색 결과에 대한 랭킹을 제공하는 단계는,
상기 임베딩 유사도에 대한 가중치와 상기 텀 유사도에 대한 가중치를 상기 입력 질의에 따라 적응적으로 설정하는 단계
를 포함하는 상품 검색 방법.
According to paragraph 2,
The step of providing the product search results is,
Providing a ranking for the product search results using embedding similarity with the input query through the embedding-based search model and term similarity with the input query through the term matching search model.
Including,
The step of providing rankings for the product search results is:
Adaptively setting the weight for the embedding similarity and the weight for the term similarity according to the input query.
Product search method including.
제1항 내지 제7항, 제9항 내지 제12항 중 어느 한 항의 상품 검색 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독가능한 기록 매체에 저장되는 컴퓨터 프로그램.A computer program stored in a computer-readable recording medium for executing the product search method of any one of claims 1 to 7 and 9 to 12 on a computer device. 컴퓨터 장치에 있어서,
메모리에 포함된 컴퓨터 판독가능한 명령들을 실행하도록 구성된 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서는,
입력 질의에 대해 임베딩 기반 검색 모델을 이용하여 상기 입력 질의의 임베딩과 매칭되는 상품 검색 결과를 제공하는 과정
을 처리하고,
상기 적어도 하나의 프로세서는,
상품 임베딩 집합으로 학습된 클러스터 센트로이드(cluster centroid)에서 상품의 임베딩에 대응되는 센트로이드로 상품을 색인하고,
색인된 상품 중 상기 입력 질의의 임베딩에 대응되는 센트로이드와 동일한 센트로이드의 상품을 검색하는 것
을 특징으로 하는 컴퓨터 장치.
In computer devices,
At least one processor configured to execute computer readable instructions contained in memory
Including,
The at least one processor,
A process of providing product search results matching the embedding of the input query using an embedding-based search model for the input query.
Process it,
The at least one processor,
Index products into the centroid corresponding to the product embedding in the cluster centroid learned from the product embedding set,
Searching for products of the same centroid as the centroid corresponding to the embedding of the input query among the indexed products.
A computer device characterized by a.
제14항에 있어서,
상기 적어도 하나의 프로세서는,
상기 임베딩 기반 검색 모델과 함께 질의와 상품 간의 텀 매칭을 기반으로 상품을 검색하는 텀 매칭 검색 모델을 연동하여 임베딩 매칭 상품과 텀 매칭 상품을 상기 상품 검색 결과로 제공하는 것
을 특징으로 하는 컴퓨터 장치.
According to clause 14,
The at least one processor,
Linking the term matching search model, which searches for products based on term matching between queries and products, with the embedding-based search model to provide embedding-matched products and term-matched products as the product search results.
A computer device characterized by a.
KR1020210087850A 2021-05-06 2021-07-05 Method, computer device, and computer program to search for products based on embedding similarity KR102640369B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022066748A JP7343649B2 (en) 2021-05-06 2022-04-14 Product search method, computer device, and computer program based on embedded similarity

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 KR20220151521A (en) 2022-11-15
KR102640369B1 true KR102640369B1 (en) 2024-02-27

Family

ID=84041759

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210087850A KR102640369B1 (en) 2021-05-06 2021-07-05 Method, computer device, and computer program to search for products based on embedding similarity

Country Status (2)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115544242B (en) * 2022-12-01 2023-04-18 深圳市智加云栖科技有限公司 Big data-based similar commodity model selection recommendation method
KR102593134B1 (en) * 2022-12-16 2023-10-24 고려대학교산학협력단 Method for resizing embedding table for user devices and apparatus for same

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102099561B1 (en) * 2019-04-25 2020-04-09 김진성 System for providing machine learning based textile product searching service including advanced matching algorithm

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101958729B1 (en) * 2017-04-06 2019-03-18 네이버 주식회사 Auto-extraction and structuring for sub-topic of subject inquiry
KR101923650B1 (en) * 2017-05-16 2018-11-29 동아대학교 산학협력단 System and Method for Sentence Embedding and Similar Question Retrieving
CN111625619B (en) * 2019-02-28 2024-03-01 北京沃东天骏信息技术有限公司 Query omission method, device, computer readable medium and electronic equipment
CN111737418B (en) * 2020-07-20 2021-05-14 北京每日优鲜电子商务有限公司 Method, apparatus and storage medium for predicting relevance of search term and commodity

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102099561B1 (en) * 2019-04-25 2020-04-09 김진성 System for providing machine learning based textile product searching service including advanced matching algorithm

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
JP7343649B2 (en) 2023-09-12
KR20220151521A (en) 2022-11-15
JP2022173084A (en) 2022-11-17

Similar Documents

Publication Publication Date Title
CN107832414B (en) Method and device for pushing information
CN109815308B (en) Method and device for determining intention recognition model and method and device for searching intention recognition
US20200073953A1 (en) Ranking Entity Based Search Results Using User Clusters
US11900064B2 (en) Neural network-based semantic information retrieval
KR101754473B1 (en) Method and system for automatically summarizing documents to images and providing the image-based contents
WO2016049437A9 (en) Techniques for similarity analysis and data enrichment using knowledge sources
KR102640369B1 (en) Method, computer device, and computer program to search for products based on embedding similarity
US20220083874A1 (en) Method and device for training search model, method for searching for target object, and storage medium
KR102569760B1 (en) Language detection of user input text for online gaming
Bukhari et al. A web service search engine for large-scale web service discovery based on the probabilistic topic modeling and clustering
US11556590B2 (en) Search systems and methods utilizing search based user clustering
US11086941B2 (en) Generating suggestions for extending documents
US11726997B2 (en) Multiple stage filtering for natural language query processing pipelines
KR20220147550A (en) Method and apparatus for training multi-target image-text matching model, and image-text retrieval method and apparatus
JP2020513128A (en) Topic structuring method, search result providing method, computer program and topic structuring system
US20230325384A1 (en) Interactive assistance for executing natural language queries to data sets
Sellam et al. Cluster-driven navigation of the query space
KR20210137643A (en) Method and system for extracting product attribute for shopping search
JP2022091986A (en) Intelligent interactive method, device, electronic apparatus and storage medium
CN115248839A (en) Knowledge system-based long text retrieval method and device
CN114756570A (en) Vertical search method, device and system for purchase scene
Prasanth et al. Effective big data retrieval using deep learning modified neural networks
CN113569578B (en) User intention recognition method and device and computer equipment
KR20230151704A (en) Method, computer device, and computer program to provide recommendation based on local knowledge graph
WO2021196470A1 (en) Information pushing method and apparatus, device, and storage medium

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