KR102061331B1 - 아이템 추천 방법 및 시스템 - Google Patents

아이템 추천 방법 및 시스템 Download PDF

Info

Publication number
KR102061331B1
KR102061331B1 KR1020180033298A KR20180033298A KR102061331B1 KR 102061331 B1 KR102061331 B1 KR 102061331B1 KR 1020180033298 A KR1020180033298 A KR 1020180033298A KR 20180033298 A KR20180033298 A KR 20180033298A KR 102061331 B1 KR102061331 B1 KR 102061331B1
Authority
KR
South Korea
Prior art keywords
item
user
items
processor
value
Prior art date
Application number
KR1020180033298A
Other languages
English (en)
Other versions
KR20190111313A (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 KR1020180033298A priority Critical patent/KR102061331B1/ko
Priority to JP2019044710A priority patent/JP6725718B2/ja
Publication of KR20190111313A publication Critical patent/KR20190111313A/ko
Application granted granted Critical
Publication of KR102061331B1 publication Critical patent/KR102061331B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/69Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/609Methods for processing data by generating or executing the game program for unlocking hidden game elements, e.g. features, items, levels

Landscapes

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

Abstract

아이템 추천 방법 및 시스템을 제공한다. 본 발명의 실시예들에 따른 아이템 추천 방법은 추천하고자 하는 분야에 대해 등록된 아이템들 중 사용자에게 개인화된 아이템을 딥 러닝(deep learning) 또는 매트릭스 팩토라이제이션(Matrix Factorization)에 기반하여 선정할 수 있다.

Description

아이템 추천 방법 및 시스템{METHOD AND SYSTEM FOR ITEM RECOMMENDATION}
아래의 설명은 아이템 추천 방법 및 시스템에 관한 것으로, 보다 자세하게는, 추천하고자 하는 분야에 대해 등록된 아이템들 중 사용자에게 개인화된 아이템을 딥 러닝(deep learning) 또는 매트릭스 팩토라이제이션(Matrix Factorization)에 기반하여 선정할 수 있는 아이템 추천 방법, 상기 아이템 추천 방법을 수행하는 컴퓨터 장치, 컴퓨터와 결합되어 상기 아이템 추천 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램 및 그 기록매체이다.
사용자에게 알맞은 아이템을 추천해주기 위한 다양한 종래기술들이 존재한다. 일반적으로, 검색 엔진에서 사용자의 검색 조건에 알맞은 검색 결과를 제공하는 다양한 기술들을 고려할 수 있다. 한편, 사용자가 별도의 검색 조건을 지정하지 않더라도 서비스의 목적 및/또는 사용자의 의도에 따라 알맞은 아이템을 추천해주기도 한다. 예를 들어, 한국공개특허 제10-2014-0010679호는 추천 시스템 및 추천 방법에 관한 것으로, 식사에 대한 복수의 키워드들 중 추천 키워드를 선정하여, 추천 키워드에 관련된 맛집을 사용자에게 추천하는 기술을 개시하고 있다.
그러나, 이러한 종래기술들은 사용자에게 개인화된 아이템을 추천해주기 어렵다는 문제점이 있다. 예를 들어, 많은 사용자가 추천한 아이템(일례로, 특정 맛집)이라 하더라도 이는 해당 아이템에 대한 종합적인 평가일 뿐, 이러한 종합적인 평가가 특정 사용자에게는 알맞지 않을 수 있다. 예를 들어, 많은 사용자가 추천한 중식당을 추천하는 것은, 중식을 좋아하지 않는 사용자에게는 의미 없는 추천이 될 뿐만 아니라, 오히려 사용자의 해당 서비스에 대한 품질을 하락시키는 요인이 될 수 있다.
추천하고자 하는 분야에 대해 등록된 아이템들 중 사용자에게 개인화된 아이템을 딥 러닝(deep learning) 또는 매트릭스 팩토라이제이션(Matrix Factorization)에 기반하여 선정할 수 있는 아이템 추천 방법, 상기 아이템 추천 방법을 수행하는 컴퓨터 장치, 컴퓨터와 결합되어 상기 아이템 추천 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램 및 그 기록매체를 제공한다.
추천 분야에 대해 등록된 복수의 아이템들을 복수의 테마 각각에 대해 분류하는 단계; 상기 복수의 테마 각각에 대해 분류된 아이템들의 리스트 및 리스트에 대응하는 테마를 입력으로 갖는 딥 러닝을 통해 상기 등록된 복수의 아이템들 각각에 대한 아이템 벡터를 생성하는 단계; 사용자의 검색기록에 기초하여 상기 사용자와 연관된 복수의 아이템들을 식별하는 단계; 상기 식별된 복수의 아이템들 각각의 아이템 벡터를 추출하는 단계; 상기 추출된 아이템 벡터들에 기초하여 상기 사용자의 사용자 벡터를 생성하는 단계; 및 상기 생성된 사용자 벡터를 이용하여 상기 추천 분야에 대한 추천 아이템을 결정하는 단계를 포함하는 것을 특징으로 하는 아이템 추천 방법을 제공한다.
추천 분야에 대해 등록된 복수의 아이템들과 상기 등록된 복수의 아이템들 중 적어도 하나와 연관된 복수의 사용자들을 통해 행(row)과 열(column)을 구분하는 순위 매트릭스(rating matrix)를 생성하는 단계; 상기 순위 매트릭스의 엔트리들 중 일부 엔트리의 순위값을 아이템과 사용자간의 연관도 값으로 결정하는 단계; 상기 순위 매트릭스의 엔트리들 중 아이템과 사용자간의 연관도 값이 결정되지 않아 순위값이 결정되지 않은 엔트리의 순위값을 매트릭스 팩토라이제이션(Matrix Factorization)을 통해 예측하는 단계; 및 상기 순위 매트릭스에서의 특정 사용자에 대응하는 아이템들 각각의 순위값에 기초하여 상기 특정 사용자를 위한 적어도 하나의 아이템을 선택하는 단계를 포함하는 것을 특징으로 하는 아이템 추천 방법을 제공한다.
컴퓨터와 결합하여 상기 아이템 추천 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.
상기 아이템 추천 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체를 제공한다.
컴퓨터 장치에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 추천 분야에 대해 등록된 복수의 아이템들을 복수의 테마 각각에 대해 분류하고, 상기 복수의 테마 각각에 대해 분류된 아이템들의 리스트 및 리스트에 대응하는 테마를 입력으로 갖는 딥 러닝을 통해 상기 등록된 복수의 아이템들 각각에 대한 아이템 벡터를 생성하고, 사용자의 검색기록에 기초하여 상기 사용자와 연관된 복수의 아이템들을 식별하고, 상기 식별된 복수의 아이템들 각각의 아이템 벡터를 추출하고, 상기 추출된 아이템 벡터들에 기초하여 상기 사용자의 사용자 벡터를 생성하고, 상기 생성된 사용자 벡터를 이용하여 상기 추천 분야에 대한 추천 아이템을 결정하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.
컴퓨터 장치에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 추천 분야에 대해 등록된 복수의 아이템들과 상기 등록된 복수의 아이템들 중 적어도 하나와 연관된 복수의 사용자들을 통해 행(row)과 열(column)을 구분하는 순위 매트릭스(rating matrix)를 생성하고, 상기 순위 매트릭스의 엔트리들 중 일부 엔트리의 순위값을 아이템과 사용자간의 연관도 값으로 결정하고, 상기 순위 매트릭스의 엔트리들 중 아이템과 사용자간의 연관도 값이 결정되지 않아 순위값이 결정되지 않은 엔트리의 순위값을 매트릭스 팩토라이제이션(Matrix Factorization)을 통해 예측하고, 상기 순위 매트릭스에서의 특정 사용자에 대응하는 아이템들 각각의 순위값에 기초하여 상기 특정 사용자를 위한 적어도 하나의 아이템을 선택하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.
추천하고자 하는 분야에 대해 등록된 아이템들 중 사용자에게 개인화된 아이템을 딥 러닝(deep learning) 또는 매트릭스 팩토라이제이션(Matrix Factorization)에 기반하여 선정할 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따른 아이템 추천 방법의 예를 도시한 흐름도이다.
도 4는 본 발명의 일실시예에 있어서, 특정 아이템에 대한 아이템 벡터를 생성하는 예를 도시한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 사용자 벡터를 생성하는 예를 도시한 도면이다.
도 6은 본 발명의 다른 실시예에 따른 아이템 추천 방법의 예를 도시한 흐름도이다.
도 7은 본 발명의 다른 실시예에 있어서, 순위 매트릭스의 예를 도시한 도면이다.
도 8은 본 발명의 다른 실시예에 있어서, 순위값을 결정하는 예를 도시한 흐름도이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
본 발명의 실시예들에 따른 아이템 추천 방법은 이후 설명될 서버와 같은 컴퓨터 장치를 통해 구현될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 실시예들에 따른 아이템 추천 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 상품 추천 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다.
도 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에서는 전자 기기 1(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 전자 기기 1(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)에 의해 구현되는 상품 추천 시스템에 의해 수행될 수 있다.
이러한 컴퓨터 장치(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은 본 발명의 일실시예에 따른 아이템 추천 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 아이템 추천 방법은 일례로 앞서 설명한 서버(150)를 구현하는 컴퓨터 장치(200)에 의해 수행될 수 있다. 예를 들어, 컴퓨터 장치(200)의 프로세서(220)는 메모리(210)가 포함하는 운영체제의 코드나 적어도 하나의 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(220)는 컴퓨터 장치(200)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(200)가 도 3의 방법이 포함하는 단계들(310 내지 360)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다.
단계(310)에서 컴퓨터 장치(200)는 추천 분야에 대해 등록된 복수의 아이템들을 복수의 테마 각각에 대해 분류할 수 있다. 추천 분야는 실시예에 따라 다양하게 설정될 수 있다. 예를 들어, 추천 분야가 "맛집"인 경우 등록된 복수의 아이템들은 복수의 음식점들일 수 있다. 이 경우, 테마는 "정자동", "분당", "강남", "고급스러운", "분위기 좋은", "어르신 생신", "중식당", "일식당" 등과 같이 추천 분야인 '맛집'을 분류하기 위한 다양한 단어 또는 단어들의 조합에 의해 생성될 수 있다. 다른 예로, 추천 분야가 '자동차'인 경우, 등록된 복수의 아이템들은 복수의 자동차들일 수 있다. 이 경우, 테마는 '중고', 'SUV', '국산차', '수입차', '자동차용품', '세단' 등과 같이 추천 분야인 '자동차'를 분류하기 위한 다양한 단어 또는 단어들의 조합에 의해 생성될 수 있다. 이처럼, 컴퓨터 장치(200)는 특정 추천 분야와 관련하여 등록된 복수의 아이템들을 다양한 테마별로 미리 분류해놓을 수 있다. 일례로, 컴퓨터 장치(200)는 사용자들의 검색어들(일례로, "aa동 중식당")과 사용자들이 해당 검색어를 통해 제공되는 검색 결과 중 사용자들에 의해 선택된 아이템(일례로, "음식점 bb")간의 관계에 기초하여 테마별 아이템을 분류할 수 있다.
단계(320)에서 컴퓨터 장치(200)는 복수의 테마 각각에 대해 분류된 아이템들의 리스트 및 리스트에 대응하는 테마를 입력으로 갖는 딥 러닝을 통해 등록된 복수의 아이템들 각각에 대한 아이템 벡터를 생성할 수 있다. 일례로, 딥 러닝 모델로는 단어 임베딩(word embedding)을 생성하기 위해 활용되는 모델인 'Word2vec'가 활용될 수 있다. 예를 들어, 컴퓨터 장치(200)는 복수의 테마들과 테마 각각에 대응하는 아이템들에 대한 정보를 'Word2vec'와 같이 딥 러닝 모델에 입력하고, 아이템들 각각에 대해 테마(또는 테마의 단어)별 연관도 값을 포함하는 아이템 벡터를 출력받을 수 있다. 다시 말해, 아이템 벡터는 복수의 테마 각각 또는 복수의 테마가 포함하는 복수의 단어 각각에 대응하는 복수의 연관도 값들을 포함할 수 있다. 예를 들어, 상술한 추천 분야 "맛집"에 대한 아이템 "음식점 bb")의 예에서, 딥 러닝 모델은 "정자동", "분당", "강남", "고급스러운", "분위기 좋은", "어르신 생신", "중식당", "일식당" 등과 같이 테마들(또는 테마들의 단어들) 각각에 대해 {"정자동", 9.0}, {"분당", 8.0}, {"강남", 0.4}, {"고급", 4.4}, {"분위기", 3.2}, {"어르신", 2.0}, {"생신", 2.4}, {"중식", 7.9}, {"일식", 0.0}와 같은 점수를 출력할 수 있으며, 이러한 점수들로 형성된 벡터가 아이템 "음식점 bb"에 대한 아이템 벡터로서 생성될 수 있다. 이러한 아이템 벡터는 등록된 아이템들 각각에 대해 생성될 수 있다.
단계(330)에서 컴퓨터 장치(200)는 사용자의 검색기록에 기초하여 사용자와 연관된 복수의 아이템들을 식별할 수 있다. 예를 들어, 컴퓨터 장치(200)는 검색기록에서 사용자가 검색 및 클릭한 아이템들을 찾아 사용자와 연관된 아이템들로서 식별할 수 있다. 이때, 식별되는 복수의 아이템들은 추천 분야에 대응하는 아이템들일 수 있다. 예를 들어, 추천 분야 '맛집'에 대해 식별되는 아이템들은 추천 분야 '맛집'에 대응하는 음식점들과 같은 아이템들일 수 있다. 다른 예로, 추천 분야 '자동차'에 대해 식별되는 아이템들은 추천 분야 '자동차'에 대응하는 자동차들과 같은 아이템들일 수 있다.
단계(340)에서 컴퓨터 장치(200)는 식별된 복수의 아이템들 각각의 아이템 벡터를 추출할 수 있다. 추출되는 아이템 벡터들은 앞서 단계(320)에서 생성된 아이템 벡터들 중 단계(330)에서 식별된 아이템들에 대한 아이템 벡터들일 수 있다.
단계(350)에서 컴퓨터 장치(200)는 추출된 아이템 벡터들에 기초하여 사용자의 사용자 벡터를 생성할 수 있다. 일례로, 컴퓨터 장치(200)는 추출된 아이템 벡터들에서 동일한 테마의 연관도 값들의 평균값 또는 동일한 단어의 연관도 값들의 평균값을 계산하고, 복수의 테마 각각 또는 복수의 단어 각각에 대해 계산된 평균값들을 복수의 테마 각각 또는 복수의 단어 각각에 대한 연관도 값들로서 포함하는 사용자 벡터를 사용자에 대해 생성할 수 있다. 예를 들어, 추천 분야 '맛집'에 대해, 사용자 1의 검색기록에서 '음식점 a', '음식점 b', '음식점 c'의 세 개의 아이템들이 식별되었다고 가정한다. 이때, 세 개의 아이템들의 아이템 벡터들에서 테마(또는 테마의 단어) "고급"에 대한 연관도 값이 각각 '3', '9', '6'인 경우, 사용자 벡터에서 테마 "고급"에 대한 연관도 값은 평균값인 '6((3+9+6)/3)'이 될 수 있다. 이처럼, 컴퓨터 장치(200)는 추출된 아이템 벡터들에서 테마마다(또는 테마의 단어마다) 평균값을 계산함으로써 사용자 벡터를 생성할 수 있다. 이러한 사용자 벡터는 대응하는 사용자의 테마별 평균 선호도를 의미할 수 있다.
단계(360)에서 컴퓨터 장치(200)는 생성된 사용자 벡터를 이용하여 추천 분야에 대한 추천 아이템을 결정할 수 있다. 예를 들어, 컴퓨터 장치(200)는 생성된 사용자 벡터가 포함하는 연관도 값들과, 등록된 복수의 아이템들의 아이템 벡터들 각각이 포함하는 연관도 값들을 비교하여 등록된 복수의 아이템들 중에서 추천 분야를 위한 추천 아이템을 결정할 수 있다. 다시 말해, 컴퓨터 장치(200)는 사용자 벡터와 테마별로 연관도 값들이 서로 동일 또는 유사한 아이템 벡터를 가진 아이템들을 추천 아이템으로 결정할 수 있다. 이 경우, 컴퓨터 장치(200)는 단순히 사용자들의 추천이 많은 아이템이나 특정 테마에 대한 아이템이 아닌, 하나의 아이템과 관련하여 추천 분야에서 다수의 테마들 각각에 대해 사용자에게 알맞은 아이템을 사용자에게 추천할 수 있게 된다.
도 4는 본 발명의 일실시예에 있어서, 특정 아이템에 대한 아이템 벡터를 생성하는 예를 도시한 도면이다. 도 4는 추천 분야 '맛집'과 관련하여 아이템의 아이템 벡터를 생성하는 예를 나타내고 있다. 도 4에서 제1 점선박스(410)는 사용자들로부터 입력되는 검색어들의 예를 나타내고 있으며, 제2 점선박스(420)는 해당 검색어를 통해 검색결과로 제공되어 사용자에 의해 선택된 아이템들에 대한 정보를 나타내고 있다. 이때, 컴퓨터 장치(200)는 검색어들로부터 테마를 추출할 수 있으며, 선택된 아이템들로부터 아이템을 추출하여 서로 대응되는 테마와 아이템을 딥 러닝 모델(430)에 입력할 수 있다. 이때, 딥 러닝 모델(430)은 앞서 설명한 'Word2vec' 모델과 같이 단어 임베딩을 생성하도록 학습될 수 있으며, 일례로 본 실시예에서와 같이 하나의 아이템에 대해 테마별로 연관도 값을 추출하도록 미리 학습될 수 있다. 도 4의 제3 점선박스(440)는 음식점 2의 아이템 벡터로서 다수의 테마(일례로, 300개) 각각에 대한 연관도 값들의 벡터를 나타내고 있다.
도 5는 본 발명의 일실시예에 있어서, 사용자 벡터를 생성하는 예를 도시한 도면이다. 도 5는 특정 사용자의 검색기록(510)으로부터 추천 분야 '맛집'에 대해 특정 사용자가 선택(일례로, 검색결과에 포함된 특정 아이템에 대한 웹사이트의 링크를 특정 사용자가 클릭하여 해당 웹사이트를 방문)한 아이템들로서 '음식적 2', '음식점 15', '음식점 31' 및 '음식점 45'의 네 개의 아이템들, 그리고 네 개의 아이템들 각각에 대해 생성된 아이템 벡터들을 각각 나타내고 있다. 이때, 사용자 벡터는 이미 설명한 바와 같이 테마별 평균값을 통해 생성될 수 있다. 예를 들어, 사용자 벡터에서 테마 '분위기'에 대응하는 연관도 값 1.1은 네 개의 아이템 벡터들 각각의 테마 '분위기'에 대응하는 연관도 값들(3.2, 0.0, 0.0, 1.2)의 평균값일 수 있다. 이와 유사하게 사용자 벡터에서 테마 '중식'에 대응하는 연관도 값 2.0은 네 개의 아이템 벡터들 각각의 테마 '중식'에 대응하는 연관도 값들(3.9, 4.1, 0.0, 0.0)의 평균값일 수 있다. 이처럼 테마 각각에 대한 평균값들이 사용자 벡터에서 테마들 각각을 위한 연관도 값으로서 계산됨에 따라 특정 사용자를 위한 사용자 벡터가 생성될 수 있다.
예를 들어, 사용자 벡터의 연관도 값과 테마별로 동일하거나 또는 기설정된 범위(일례로, 사용자 벡터의 연관도 값에 대한 ±1의 범위) 내에서 사용자 벡터의 연관도 값과 테마별로 유사한 연관도 값을 갖는 아이템 벡터가 선택될 수 있으며, 선택된 아이템 벡터에 대응하는 아이템이 해당 사용자에게 추천하기 위한 추천 아이템으로서 결정될 수 있다.
이러한 사용자 벡터는 아이템에 대한 종합적인 선호도나 하나의 특정한 테마에 대한 선호도가 아닌 다수의 테마들 각각에 따른 선호도를 나타낼 수 있다. 따라서 단순히 사용자들의 추천수가 많은 아이템들이 아니라 사용자가 선호하는 테마의 아이템들을 해당 사용자에게 추천할 수 있게 된다.
도 6은 본 발명의 다른 실시예에 따른 아이템 추천 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 아이템 추천 방법은 일례로 앞서 설명한 서버(150)를 구현하는 컴퓨터 장치(200)에 의해 수행될 수 있다. 예를 들어, 컴퓨터 장치(200)의 프로세서(220)는 메모리(210)가 포함하는 운영체제의 코드나 적어도 하나의 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(220)는 컴퓨터 장치(200)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(200)가 도 6의 방법이 포함하는 단계들(610 내지 640)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다.
단계(610)에서 컴퓨터 장치(200)는 추천 분야에 대해 등록된 복수의 아이템들과 등록된 복수의 아이템들 중 적어도 하나와 연관된 복수의 사용자들을 통해 행(row)과 열(column)을 구분하는 순위 매트릭스(rating matrix)를 생성할 수 있다. 예를 들어, M(M은 자연수) 개의 아이템들과 N(N은 자연수) 명의 사용자들을 통해 행과 열을 구분하는 순위 매트릭스는 MХN 크기 또는 NХM 크기를 가질 수 있으며, 각각의 엔트리들은 대응하는 아이템과 사용자간의 연관도 값을 순위값으로서 가질 수 있다.
단계(620)에서 컴퓨터 장치(200)는 순위 매트릭스의 엔트리들 중 일부 엔트리의 순위값을 아이템과 사용자간의 연관도 값으로 결정할 수 있다. 이때, 아이템과 사용자간의 연관도 값은 사용자의 아이템 선택(일례로, 검색결과에 포함된 특정 아이템에 대한 웹사이트의 링크를 특정 사용자가 클릭하여 해당 웹사이트를 방문)함에 기초하여 생성될 수 있다. 다만, 복수의 아이템들 중 특정 사용자가 선택하지 않은 아이템의 경우에는 대응하는 엔트리에 대한 순위값을 결정할 수 없기 때문에 단계(620)에서 컴퓨터 장치(200)는 일부 엔트리에 대해 순위값을 결정할 수 있다. 단계(620)에서 일부 엔트리의 순위값은 기본적으로 사용자와 아이템간의 실제 연관도에 기초하여 결정될 수 있다. 이러한 순위값을 결정하는 과정에 대해서는 도 7 및 도 8을 통해 더욱 자세히 설명한다.
단계(630)에서 컴퓨터 장치(200)는 순위 매트릭스의 엔트리들 중 아이템과 사용자간의 연관도 값이 결정되지 않아 순위값이 결정되지 않은 엔트리의 순위값을 매트릭스 팩토라이제이션(Matrix Factorization)을 통해 예측할 수 있다. 매트릭스 팩토라이제이션을 이용한 추천은 주어진 순위 매트릭스에서 비어 있는 순위(rating)를 채우기 위해 이용될 수 있으며, 앞서 설명한 바와 같이, 본 실시예에서는 아직 사용자와 아이템간에 특정한 연관이 생기지 않은 사용자와 아이템에 대한 순위 매트릭스의 엔트리의 순위값을 단계(620)에서 결정된 일부의 엔트리에 대한 순위값과 매트릭스 팩토라이제이션을 통해 예측할 수 있다. 매트릭스 팩토라이제이션을 통해 순위 매트릭스의 비어 있는 순위값을 채우는 기술은 이미 잘 알려져 있기 때문에 자세한 설명은 생략한다.
단계(640)에서 컴퓨터 장치(200)는 순위 매트릭스에서의 특정 사용자에 대응하는 아이템들 각각의 순위값에 기초하여 특정 사용자를 위한 적어도 하나의 아이템을 선택할 수 있다. 이때, 순위 매트릭스가 포함하는 엔트리의 순위값들은 특정 사용자와 특정 아이템간의 직접적인 연관도 값에 의해 설정되거나, 복수의 사용자들과 복수의 아이템들간의 실제 연관도 값에 기반하여 예측된 값으로 설정된다. 예를 들어, 하나의 사용자에 대해 순위값이 높은 순서로 기설정된 수의 아이템들이 해당 사용자에게 추천될 수 있다. 이처럼, 컴퓨터 장치(200)는 이러한 순위 매트릭스의 순위값에 따라, 단순히 사용자들의 추천수가 많은 아이템이 아닌 사용자와 연관도가 실제로 높거나 또는 높을 것으로 예측된 아이템을 사용자에게 추천할 수 있게 된다.
도 7은 본 발명의 다른 실시예에 있어서, 순위 매트릭스의 예를 도시한 도면이다. 도 7의 표(710)는 네 가지 아이템들과 다섯 명의 사용자들에 의해 행과 열이 구분되는 순위 매트릭스의 예를 나타내고 있다. 이때, 사용자 1과 아이템 2간의 순위값 1.26은 사용자 1과 아이템 2간의 연관도 값으로 결정될 수 있다. 일례로, 연관도 값은 클릭 여부와 가중치에 의해 계산될 수 있다. 여기서, 클릭 여부는 사용자 1이 아이템 2에 대한 클릭을 발생시켰는지 여부에 따라 결정될 수 있으며, 도 7에서는 클릭이 발생된 이력이 존재하는 경우에 '1'의 값을, 클릭이 발생된 이력이 존재하지 않는 경우에 '0'의 값을 부여한 예를 나타내고 있다. 또한, 가중치는 다양하게 설정될 수 있으며, 도 7에서는 지역 관심도에 따른 가중치를 부여하였다. 예를 들어, 추천 분야 '맛집'과 관련하여 사용자의 현재 지역이나 사용자의 활동 지역, 그리고 아이템으로서의 음식점의 위치 지역은 '맛집' 추천에 큰 영향을 미친다. 예를 들어, 지역 a에 사는 사용자에게 지역 a의 음식점을 추천하는 것이 다른 지역 b의 음식점을 추천하는 것보다 가중치가 더 높을 수 있다. 이러한 관점에서 도 7은 지역에 따라 서로 다른 가중치를 부여한 예를 나타내고 있다. 예를 들어, 도 7에서 가중치는 {사용자, 아이템}에 대해, {지역 a, 지역 a}, {지역 a, 지역 b}, {지역 b, 지역 a}, {지역 b, 지역 b} 각각에 대해 서로 다른 가중치가 부여될 수 있다. 이러한 가중치는 추천 분야에 따라 서로 다른 종류의 가중치가 부여될 수 있다. 본 실시예에서는 추천 분야의 세부 분야 중 하나로서 지역을 설정하고, 지역에 따라 서로 다른 가중치를 부여하는 예를 설명하고 있다. 만약, 추천 분야가 온라인 게임 서비스와 같이 지역에 영향을 받지 않는 분야라면 세부 분야로서 '게임 장르'와 같이 다른 분야가 설정되고, '게임 장르'에 따른 가중치가 활용될 수도 있다.
일례로, 순위값은 아래 수학식 1 또는 수학식 2를 통해 계산될 수 있다.
Figure 112018028819810-pat00001
여기서 R(i, j)는 수학식 1에 따라 계산되는 순위 매트릭스의 엔트리 eij의 순위값을 의미할 수 있으며, 가중치는 세부 분야에 따라 설정되는 가중치를, 'click'은 클릭 여부에 따라 설정된 값을 각각 의미할 수 있다.
Figure 112018028819810-pat00002
여기서, C(i, j)는 수학식 2에 따라 계산되는 순위 매트릭스의 엔트리 eij의 순위값을 의미할 수 있다. 이때, 'a'는 신뢰 레벨로서 click의 고유횟수값이 선호도에 미치는 영향을 낮춰주기 위해 사용하며 실험을 통해 0에서 1 사이의 값으로 미리 설정될 수 있다. 이용자 평점과 달리 클릭은 선호도를 직접 나타내지 않는 암묵적 피드백이므로 a를 사용하여 선호도와 암묵적 피드백간의 연관성을 높여줄 수 있다. 도 7의 표(710)에 나타난 순위값들은 이러한 수학식 2를 통해 계산된 예를 나타내고 있다.
도 8은 본 발명의 다른 실시예에 있어서, 순위값을 결정하는 예를 도시한 흐름도이다. 도 8에 도시된 단계들(810 내지 840)은 도 6을 통해 설명한 단계(620)에 포함되어 수행될 수 있다.
단계(810)에서 컴퓨터 장치(200)는 복수의 사용자들 중 제1 사용자의 클릭 로그에 기초하여 복수의 아이템들 중 제1 아이템에 대한 제1 사용자의 클릭 여부를 식별할 수 있다. 컴퓨터 장치(200)는 순위값을 결정함에 있어서 하나의 아이템에 대한 클릭수 보다는 해당 아이템에 대한 클릭 여부를 활용할 수 있다.
단계(820)에서 컴퓨터 장치(200)는 추천 분야가 포함하는 세부 분야들 중 제1 사용자에 대응하는 세부 분야와 제1 아이템에 대응하는 세부 분야에 따른 가중치에 식별할 수 있다. 앞서 도 7에서는 '지역'이라는 세부 분야에 따른 가중치를 설명하였다. 이때, 사용자와 아이템간에 동일한 세부 분야에 대해서는 더 높은 가중치가 설정될 수 있다.
단계(830)에서 컴퓨터 장치(200)는 클릭 여부와 가중치간의 연산에 기초하여 제1 사용자의 제1 아이템과의 연관도 값을 계산할 수 있다. 연관도 값의 계산은 앞서 설명한 수학식 1 또는 2와 같이 클릭 여부와 가중치간의 연산에 기초할 수 있다.
단계(840)에서 컴퓨터 장치(200)는 계산된 연관도 값으로 매트릭스의 제1 사용자 및 제1 아이템에 의해 식별되는 엔트리의 순위값을 결정할 수 있다. 결정된 순위값은 도 7에 나타난 바와 같이 해당 엔트리의 순위값으로 입력될 수 있다.
이후, 도 6을 통해 설명한 단계(630)를 통해 매트릭스 팩토라이제이션을 통해 순위 매트릭스의 나머지 엔트리들의 순위값들이 예측될 수 있으며, 이러한 순위값들을 통해 사용자에게 추천될 아이템이 선택될 수 있다.
이처럼 본 발명의 실시예들에 따르면, 추천하고자 하는 분야에 대해 등록된 아이템들 중 사용자에게 개인화된 아이템을 딥 러닝(deep learning) 또는 매트릭스 팩토라이제이션(Matrix Factorization)에 기반하여 선정할 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (16)

  1. 적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 아이템 추천 방법에 있어서,
    상기 적어도 하나의 프로세서에 의해, 추천 분야에 대해 등록된 복수의 아이템들을 복수의 테마 각각에 대해 분류하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 복수의 테마 각각에 대해 분류된 아이템들의 리스트 및 리스트에 대응하는 테마를 입력으로 갖는 딥 러닝을 통해 동일한 테마로 분류된 복수의 아이템들 각각에 대해 상기 동일한 테마가 포함하는 복수의 단어들 각각에 대응하는 복수의 연관도 값들을 포함하는 아이템 벡터를 생성하는 단계;
    상기 적어도 하나의 프로세서에 의해, 사용자의 검색기록에 기초하여 상기 사용자와 연관된 동일한 테마의 복수의 아이템들을 식별하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 식별된 복수의 아이템들 각각에 대해 생성된 아이템 벡터들을 추출하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 추출된 아이템 벡터들에 기초하여 상기 사용자의 사용자 벡터를 생성하는 단계; 및
    상기 적어도 하나의 프로세서에 의해, 상기 생성된 사용자 벡터를 이용하여 상기 추천 분야에 대한 추천 아이템을 결정하는 단계
    를 포함하는 것을 특징으로 하는 아이템 추천 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 사용자 벡터를 생성하는 단계는,
    상기 추출된 아이템 벡터들에서 동일한 테마의 연관도 값들의 평균값 또는 동일한 단어의 연관도 값들의 평균값을 계산하고, 상기 복수의 테마 각각 또는 상기 복수의 단어들 각각에 대해 계산된 평균값들을 상기 복수의 테마 각각 또는 상기 복수의 단어들 각각에 대한 연관도 값들로서 포함하는 사용자 벡터를 상기 사용자에 대해 생성하는 것을 특징으로 하는 아이템 추천 방법.
  4. 제1항에 있어서,
    상기 추천 아이템을 결정하는 단계는,
    상기 생성된 사용자 벡터가 포함하는 연관도 값들과, 상기 등록된 복수의 아이템들의 아이템 벡터들 각각이 포함하는 연관도 값들을 비교하여 상기 등록된 복수의 아이템들 중에서 상기 추천 분야를 위한 상기 추천 아이템을 결정하는 것을 특징으로 하는 아이템 추천 방법.
  5. 적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 아이템 추천 방법에 있어서,
    상기 적어도 하나의 프로세서에 의해, 추천 분야에 대해 등록된 복수의 아이템들과 상기 등록된 복수의 아이템들 중 적어도 하나와 연관된 복수의 사용자들을 통해 행(row)과 열(column)을 구분하는 순위 매트릭스(rating matrix)를 생성하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 순위 매트릭스의 엔트리들 중 일부 엔트리의 순위값을 아이템과 사용자간의 연관도 값으로 결정하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 순위 매트릭스의 엔트리들 중 아이템과 사용자간의 연관도 값이 결정되지 않아 순위값이 결정되지 않은 엔트리의 순위값을 매트릭스 팩토라이제이션(Matrix Factorization)을 통해 예측하는 단계; 및
    상기 적어도 하나의 프로세서에 의해, 상기 순위 매트릭스에서의 특정 사용자에 대응하는 아이템들 각각의 순위값에 기초하여 상기 특정 사용자를 위한 적어도 하나의 아이템을 선택하는 단계
    를 포함하는 것을 특징으로 하는 아이템 추천 방법.
  6. 제5항에 있어서,
    상기 일부 엔트리는 제1 사용자 및 상기 제1 사용자에 의해 클릭이 발생한 제1 아이템에 의해 식별되는 엔트리를 포함하는 것을 특징으로 하는 아이템 추천 방법.
  7. 제5항에 있어서,
    상기 일부의 순위값을 아이템과 사용자간의 연관도 값으로 결정하는 단계는,
    상기 복수의 사용자들 중 제1 사용자의 클릭 로그에 기초하여 상기 복수의 아이템들 중 제1 아이템에 대한 상기 제1 사용자의 클릭 여부를 식별하는 단계;
    상기 추천 분야가 포함하는 세부 분야들 중 상기 제1 사용자에 대응하는 세부 분야와 상기 제1 아이템에 대응하는 세부 분야에 따른 가중치에 식별하는 단계;
    상기 클릭 여부와 상기 가중치간의 연산에 기초하여 상기 제1 사용자의 상기 제1 아이템과의 연관도 값을 계산하는 단계; 및
    상기 계산된 연관도 값으로 상기 순위 매트릭스의 상기 제1 사용자 및 상기 제1 아이템에 의해 식별되는 엔트리의 순위값을 결정하는 단계
    를 포함하는 것을 특징으로 하는 아이템 추천 방법.
  8. 컴퓨터와 결합되어 제1항 또는 제3항 내지 제7항 중 어느 한 항의 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  9. 제1항 또는 제3항 내지 제7항 중 어느 한 항의 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체.
  10. 컴퓨터 장치에 있어서,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서에 의해,
    추천 분야에 대해 등록된 복수의 아이템들을 복수의 테마 각각에 대해 분류하고,
    상기 복수의 테마 각각에 대해 분류된 아이템들의 리스트 및 리스트에 대응하는 테마를 입력으로 갖는 딥 러닝을 통해 동일한 테마로 분류된 복수의 아이템들 각각에 대해 상기 동일한 테마가 포함하는 복수의 단어들 각각에 대응하는 복수의 연관도 값들을 포함하는 아이템 벡터를 생성하고,
    사용자의 검색기록에 기초하여 상기 사용자와 연관된 동일한 테마의 복수의 아이템들을 식별하고,
    상기 식별된 복수의 아이템들 각각에 대해 생성된 아이템 벡터들을 추출하고,
    상기 추출된 아이템 벡터들에 기초하여 상기 사용자의 사용자 벡터를 생성하고,
    상기 생성된 사용자 벡터를 이용하여 상기 추천 분야에 대한 추천 아이템을 결정하는 것
    을 특징으로 하는 컴퓨터 장치.
  11. 삭제
  12. 제10항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    상기 추출된 아이템 벡터들에서 동일한 테마의 연관도 값들의 평균값 또는 동일한 단어의 연관도 값들의 평균값을 계산하고,
    상기 복수의 테마 각각 또는 상기 복수의 단어들 각각에 대해 계산된 평균값들을 상기 복수의 테마 각각 또는 상기 복수의 단어들 각각에 대한 연관도 값들로서 포함하는 사용자 벡터를 상기 사용자에 대해 생성하는 것
    을 특징으로 하는 컴퓨터 장치.
  13. 제10항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    상기 생성된 사용자 벡터가 포함하는 연관도 값들과, 상기 등록된 복수의 아이템들의 아이템 벡터들 각각이 포함하는 연관도 값들을 비교하여 상기 등록된 복수의 아이템들 중에서 상기 추천 분야를 위한 상기 추천 아이템을 결정하는 것
    을 특징으로 하는 컴퓨터 장치.
  14. 컴퓨터 장치에 있어서,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서에 의해,
    추천 분야에 대해 등록된 복수의 아이템들과 상기 등록된 복수의 아이템들 중 적어도 하나와 연관된 복수의 사용자들을 통해 행(row)과 열(column)을 구분하는 순위 매트릭스(rating matrix)를 생성하고,
    상기 순위 매트릭스의 엔트리들 중 일부 엔트리의 순위값을 아이템과 사용자간의 연관도 값으로 결정하고,
    상기 순위 매트릭스의 엔트리들 중 아이템과 사용자간의 연관도 값이 결정되지 않아 순위값이 결정되지 않은 엔트리의 순위값을 매트릭스 팩토라이제이션(Matrix Factorization)을 통해 예측하고,
    상기 순위 매트릭스에서의 특정 사용자에 대응하는 아이템들 각각의 순위값에 기초하여 상기 특정 사용자를 위한 적어도 하나의 아이템을 선택하는 것
    을 특징으로 하는 컴퓨터 장치.
  15. 제14항에 있어서,
    상기 일부 엔트리는 제1 사용자 및 상기 제1 사용자에 의해 클릭이 발생한 제1 아이템에 의해 식별되는 엔트리를 포함하는 것을 특징으로 하는 컴퓨터 장치.
  16. 제14항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    상기 복수의 사용자들 중 제1 사용자의 클릭 로그에 기초하여 상기 복수의 아이템들 중 제1 아이템에 대한 상기 제1 사용자의 클릭 여부를 식별하고,
    상기 추천 분야가 포함하는 세부 분야들 중 상기 제1 사용자에 대응하는 세부 분야와 상기 제1 아이템에 대응하는 세부 분야에 따른 가중치에 식별하고,
    상기 클릭 여부와 상기 가중치간의 연산에 기초하여 상기 제1 사용자의 상기 제1 아이템과의 연관도 값을 계산하고,
    상기 계산된 연관도 값으로 상기 순위 매트릭스의 상기 제1 사용자 및 상기 제1 아이템에 의해 식별되는 엔트리의 순위값을 결정하는 것
    을 특징으로 하는 컴퓨터 장치.
KR1020180033298A 2018-03-12 2018-03-22 아이템 추천 방법 및 시스템 KR102061331B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180033298A KR102061331B1 (ko) 2018-03-22 2018-03-22 아이템 추천 방법 및 시스템
JP2019044710A JP6725718B2 (ja) 2018-03-12 2019-03-12 位置基盤情報探索方法およびコンピュータ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180033298A KR102061331B1 (ko) 2018-03-22 2018-03-22 아이템 추천 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20190111313A KR20190111313A (ko) 2019-10-02
KR102061331B1 true KR102061331B1 (ko) 2019-12-31

Family

ID=68422780

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180033298A KR102061331B1 (ko) 2018-03-12 2018-03-22 아이템 추천 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102061331B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11853901B2 (en) 2019-07-26 2023-12-26 Samsung Electronics Co., Ltd. Learning method of AI model and electronic apparatus

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259222B (zh) * 2020-01-22 2023-08-22 北京百度网讯科技有限公司 物品推荐方法、系统、电子设备及存储介质
KR102655723B1 (ko) * 2021-01-28 2024-04-09 네이버 주식회사 장소 추천 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013029872A (ja) * 2009-10-19 2013-02-07 Nec Corp 情報推薦システム、方法、及び、プログラム
JP2018018504A (ja) * 2016-07-27 2018-02-01 富士ゼロックス株式会社 推奨生成方法、プログラム、及びサーバ装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013029872A (ja) * 2009-10-19 2013-02-07 Nec Corp 情報推薦システム、方法、及び、プログラム
JP2018018504A (ja) * 2016-07-27 2018-02-01 富士ゼロックス株式会社 推奨生成方法、プログラム、及びサーバ装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11853901B2 (en) 2019-07-26 2023-12-26 Samsung Electronics Co., Ltd. Learning method of AI model and electronic apparatus

Also Published As

Publication number Publication date
KR20190111313A (ko) 2019-10-02

Similar Documents

Publication Publication Date Title
US10853360B2 (en) Searchable index
KR101778679B1 (ko) 딥러닝을 이용하여 텍스트 단어 및 기호 시퀀스를 값으로 하는 복수 개의 인자들로 표현된 데이터를 자동으로 분류하는 방법 및 시스템
CN106446005B (zh) 因子分解模型
US11188830B2 (en) Method and system for user profiling for content recommendation
US20200110842A1 (en) Techniques to process search queries and perform contextual searches
JP6725718B2 (ja) 位置基盤情報探索方法およびコンピュータ装置
KR102061331B1 (ko) 아이템 추천 방법 및 시스템
CN110955831B (zh) 物品推荐方法、装置、计算机设备及存储介质
JP6629935B2 (ja) 文書のカテゴリ分類のためのディープラーニング学習方法およびそのシステム
US11659247B2 (en) Systems and methods for evaluating models that generate recommendations
US20190304573A1 (en) Adaptive weighting of similarity metrics for predictive analytics of a cognitive system
KR101747532B1 (ko) 여행성 질의에 대응하는 검색 결과로 코스를 추천하는 방법 및 시스템
US9785676B2 (en) Systems and methods for providing ordered results for search queries
Kashevnik et al. Context-driven tour planning service: an approach based on synthetic coordinates recommendation
JP2023162154A (ja) 地域知識グラフに基づいて推薦情報を提供する方法、コンピュータ装置、およびコンピュータプログラム
JP7012803B2 (ja) 急上昇検索語提供方法およびシステム
US20200364769A1 (en) Exploration for interactive recommendation systems
JP7399216B2 (ja) ユーザ嗜好に基づいた場所個人化推薦のための方法、コンピュータシステム、およびコンピュータプログラム
JP7354330B2 (ja) 趣向による場所関連推薦を提供する方法、システム、およびコンピュータプログラム
JP7492994B2 (ja) 検索結果提供方法、システム、およびコンピュータプログラム
KR102240454B1 (ko) 키워드 관계 구조 기반의 질의 분석을 이용한 복합키워드 동의어 추출 방법 및 시스템
KR101944404B1 (ko) 주가정보를 제공하는 방법 및 시스템
KR20230032811A (ko) 검색 질의에 따라 검색 결과에 포함된 아이템 별 하위 아이템 추천 목록을 동적으로 제공할 수 있는 방법, 시스템, 및 컴퓨터 프로그램
KR20230114440A (ko) 관심 주제 기반 개인화 추천을 위한 방법, 시스템, 및 컴퓨터 프로그램
KR20230113079A (ko) 관심 지역에 대한 개인화 추천을 위한 방법, 시스템, 및 컴퓨터 프로그램

Legal Events

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