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

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

Info

Publication number
KR20150121945A
KR20150121945A KR1020140048208A KR20140048208A KR20150121945A KR 20150121945 A KR20150121945 A KR 20150121945A KR 1020140048208 A KR1020140048208 A KR 1020140048208A KR 20140048208 A KR20140048208 A KR 20140048208A KR 20150121945 A KR20150121945 A KR 20150121945A
Authority
KR
South Korea
Prior art keywords
user
information
items
item
unit
Prior art date
Application number
KR1020140048208A
Other languages
English (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 KR1020140048208A priority Critical patent/KR20150121945A/ko
Publication of KR20150121945A publication Critical patent/KR20150121945A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 일 실시예는 웹사이트에 접속하는 사용자의 복수의 정보를 저장하는 사용자 이용 정보 저장부, 상기 사용자 이용 정보 저장부에 저장된 정보를 전처리하여 그래프 데이터로 변환하는 사용자 이용 정보 전처리 수행부, 상기 사용자 이용 정보 전처리 수행부에서 전처리 수행되어 변환된 그래프 데이터를 저장하는 그래프 데이터 베이스, 상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 연산부 및 상기 연산부에서 선정한 상기 아이템을 상기 사용자에게 하나 이상의 방식으로 추천하는 추천부를 포함하는 아이템 추천 시스템을 개시한다.

Description

아이템 추천 시스템 및 아이템 추천 방법{Item recommend system and method for recommending item}
본 발명의 실시예들은 아이템 추천 시스템 및 아이템 추천 방법에 관한 것이다.
전자 상거래의 급성장으로 소비자들은 오프라인 매장뿐만 아니라 온라인 매장을 동일한 수준에서 판단하거나, 경우에 따라서는 온라인 매장을 더 선호하는 경우도 많이 발생하고 있다.
또한, 이러한 전자 상거래 기술의 발전으로 인하여, 단순 온라인 쇼핑몰 외에 온라인 경매 사이트, 오픈 마켓 또는 소셜 커머스 기타 다양한 형태의 구매 사이트가 온라인상에서 구현되고 있는 것이 현실이다.
이러한 전자 상거래를 이용한 온라인 상에서의 구매 방법은 사용자가 직접 오프라인 매장을 방문하지 않아도 언제 어디에서도 쉽게 접근하여 상품, 티켓 기타 아이템들에 대한 접근, 방문 및 구매등을 용이하게 진행할 수 있으므로 시간이 갈수록 증가하고 그 방법도 확장되는 추세이다.
다만, 전자 상거래를 이용한 온라인 상에서의 구매는 사용자가 직접 눈으로 실물을 보고 비교할 수 없고, 사용자가 해당 사이트를 방문하여 화면상에 제공된 정보만을 접하므로 사용자가 다양한 정보를 용이하게 제공받기는 용이하지 않다. 특히, 특정 사이트에 자주 방문하는 경우가 아닌 경우 또는 전자 상거래를 통한 구매에 익숙하지 않은 사용자의 경우엔 더욱 그러하다.
특히, 최근에는 온라인 상에서 구매할 수 있는 매장, 예를들면 해당 웹사이트 마다 이용하는 사용자의 수가 기하 급수적으로 증가하고, 해당 웹사이트에서 취급하는 아이템들도 많아져 사용자에게 특정 정보를 제공하기는 용이하지 않다.
그러므로 사용자들에게 적절한 아이템들을 추천해 줄 수 있는 시스템 및 그 방법의 필요성이 커지고 있다.
그러나, 즉, 웹사이트를 방문하는 사용자들과 웹사이트에서 제공하는 아이템들에 대한 정보를 원활하게 취급하고 가공하는 것이 용이하지 않고, 특히 사용자 및 아이템의 수의 증가를 통하여 효율적으로 사용자에게 추천 작업을 진행하는데 한계가 있다.
본 발명의 실시예들은 웹사이트를 방문하는 사용자들에게 아이템들에 대한 추천 작업을 용이하게 진행할 수 있는 아이템 추천 시스템 및 이를 이용한 아이템 추천 방법을 제공한다.
본 발명의 일 실시예는 웹사이트에 접속하는 사용자의 복수의 정보를 저장하는 사용자 이용 정보 저장부, 상기 사용자 이용 정보 저장부에 저장된 정보를 전처리하여 그래프 데이터로 변환하는 사용자 이용 정보 전처리 수행부, 상기 사용자 이용 정보 전처리 수행부에서 전처리 수행되어 변환된 그래프 데이터를 저장하는 그래프 데이터 베이스, 상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 연산부 및 상기 연산부에서 선정한 상기 아이템을 상기 사용자에게 하나 이상의 방식으로 추천하는 추천부를 포함하는 아이템 추천 시스템을 개시한다.
본 실시예에 있어서 상기 아이템들간의 유사도를 판단하는 유사도 판단부를 더 포함하고, 상기 연산부는 상기 유사도 판단부로부터 상기 아이템들간의 유사도를 이용하여 상기 특정 아이템을 선정할 수 있다.
본 실시예에 있어서 상기 유사도 판단부는 오프라인 배치 처리 방식으로 아이템들간 유사도를 계산할 수 있다.
본 실시예에 있어서 상기 연산부는 상기 사용자와 관련을 갖는 연관 사용자를 선정하는 연관 사용자 선정부 및 상기 연관 사용자와 관련을 갖는 연관 아이템을 선정하는 연관 아이템 선정부를 포함할 수 있다.
본 실시예에 있어서 상기 연관 사용자 선정부가 선정한 상기 연관 사용자는 상기 사용자중 일 사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들과 관계를 갖는 타 사용자인 것을 특징으로 하고, 상기 연관 아이템 선정부가 선정한 상기 연관 아이템은 상기 타사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들 중 상기 일 사용자와 관계를 갖지 않는 아이템들인 것을 특징으로 할 수 있다.
본 실시예에 있어서 상기 사용자 이용 정보 저장부는 서로 상이한 정보를 저장하는 사용자 이용 정보 제1 저장부 및 사용자 이용 정보 제2 저장부를 구비할 수 있다.
본 실시예에 있어서 상기 사용자 이용 정보 제1 저장부는 사용자의 기본 정보 및 사용자의 활동과 관련된 하나 이상의 정보를 저장할 수 있다.
본 실시예에 있어서 상기 사용자의 활동과 관련된 하나 이상의 정보는 구매 정보 또는 장바구니 정보를 포함할 수 있다.
본 실시예에 있어서 상기 사용자 이용 정보 제2 저장부는 사용자의 방문 정보를 저장할 수 있다.
본 실시예에 있어서 상기 사용자 방문 정보를 실시간으로 업데이트하는 실시간 처리부를 더 포함할 수 있다.
본 실시예에 있어서 상기 실시간 처리부는 상기 사용자의 방문이 첫 방문인지를 판단할 수 있도록 처리할 수 있다.
본 실시예에 있어서 상기 사용자 이용 정보 저장부는 임시 저장부를 더 포함하고, 상기 임시 저장부는 상기 사용자 이용 정보 제1 저장부 및 상기 사용자 이용 정보 제2 저장부에 저장된 정보를 전달받아 임시로 저장하고 상기 사용자 이용 정보 전처리 수행부에 전달할 수 있다.
본 실시예에 있어서 상기 임시 저장부는 메시지큐 형태로 정보를 임시로 저장할 수 있다.
본 실시예에 있어서 상기 사용자 이용 정보 전처리 수행부는 상기 사용자 및 상기 웹사이트에서 제공하는 복수의 아이템들간의 관계(relation)를 형성하고, 이를 기초로 그래프 데이터로 변환할 수 있다.
본 발명의 다른 실시예는 웹사이트에 접속하는 사용자의 복수의 이용 정보를 획득하는 단계, 상기 사용자의 복수의 이용 정보를 전처리하여 그래프 데이터로 변환하는 단계, 상기 그래프 데이터를 그래프 데이터 베이스에 저장하는 단계, 상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 단계 및 상기 선정한 아이템을 상기 사용자에게 하나 이상의 방법으로 추천하는 단계를 포함하는 아이템 추천 방법을 개시한다.
본 실시예에 있어서 에 있어서 상기 아이템들간의 유사도를 계산하는 단계를 더 포함하고, 상기 특정 아이템을 선정하는 단계는 상기 아이템들간의 유사도를 이용하여 상기 특정 아이템을 선정할 수 있다.
본 실시예에 있어서 상기 특정 아이템을 선정하는 단계는, 상기 사용자중 일 사용자와 관계를 갖는 아이템을 파악하는 단계 및 상기 파악한 아이템과 유사도가 높은 아이템을 선정하는 단계를 포함할 수 있다.
본 실시예에 있어서 상기 아이템들간의 유사도를 계산하는 단계는 오프라인 배치 처리 방식으로 아이템들간 유사도를 계산할 수 있다.
본 실시예에 있어서 상기 아이템들간의 유사도를 계산하는 단계는 상기 사용자 이용 정보 중 사용자의 암시적 선호도를 전달받고, 상기 암시적 선호도를 이용하여 아이템들간 유사도를 계산할 수 있다.
본 실시예에 있어서 상기 암시적 선호도는 상기 사용자의 구매 정보 또는 방문 정보를 포함할 수 있다.
본 실시예에 있어서 상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 단계는, 상기 사용자와 관련을 갖는 연관 사용자를 선정하는 단계 및 상기 연관 사용자와 관련을 갖는 연관 아이템을 선정하는 단계를 포함할 수 있다.
본 실시예에 있어서 상기 사용자와 관련을 갖는 연관 사용자를 선정하는 단계는 상기 사용자중 일 사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들과 관계를 갖는 타 사용자를 선정하는 것을 특징으로 하고, 상기 연관 아이템을 선정하는 단계는 상기 타사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들 중 상기 일 사용자와 관계를 갖지 않는 아이템들을 선정하는 것을 특징으로 할 수 있다.
본 실시예에 있어서 상기 사용자 이용 정보를 획득하는 단계는 사용자의 기본 정보 및 사용자의 활동과 관련된 하나 이상의 정보를 저장한 후 이용하는 단계를 포함할 수 있다.
본 실시예에 있어서 상기 사용자의 활동과 관련된 하나 이상의 정보는 구매 정보 또는 장바구니 정보를 포함할 수 있다.
본 실시예에 있어서 상기 사용자 이용 정보를 획득하는 단계는 사용자의 방문 정보를 저장한 후 이용하는 단계를 포함할 수 있다.
본 실시예에 있어서 상기 사용자 이용 정보를 획득하는 단계는 상기 사용자 방문 정보를 실시간으로 업데이트하는 단계를 더 포함할 수 있다.
본 실시예에 있어서 상기 사용자 방문 정보를 실시간으로 업데이트 하는 단계는 상기 사용자의 방문이 첫 방문인지를 판단할 수 있도록 처리하는 단계를 더 포함할 수 있다.
본 실시예에 있어서 상기 웹사이트에 접속하는 사용자의 복수의 이용 정보를 획득한 후에 상기 이용 정보를 임시 저장부에 저장하는 단계를 더 포함하고, 상기 사용자의 복수의 이용 정보를 전처리하여 그래프 데이터로 형성하는 단계는 상기 임시 저장부에 저장된 정보를 이용하는 것을 특징으로 할 수 있다.
본 실시예에 있어서 상기 웹사이트에 접속하는 사용자의 복수의 이용 정보를 획득한 후에 상기 이용 정보를 임시 저장부에 저장하는 단계는 상기 사용자의 복수의 이용 정보를 취득한 후에 메시지큐 형태로 정보를 임시로 저장하는 단계를 포함할 수 있다.
본 실시예에 있어서 상기 사용자의 복수의 이용 정보를 전처리하여 그래프 데이터로 형성하는 단계는, 상기 사용자들과 상기 웹사이트에서 제공하는 복수의 아이템들간의 관계(relation)을 형성하고, 이를 기초로 그래프 데이터로 변환하는 단계를 포함할 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 실시예에 관한 아이템 추천 시스템 및 이를 이용한 아이템 추천 방법은 웹사이트를 방문하는 사용자들에게 아이템들에 대한 추천 작업을 용이하게 진행할 수 있다.
도 1은 본 발명의 일 실시예에 관한 아이템 추천 시스템 및 이의 동작을 개략적으로 설명하기 위하여 도시한 도면이다.
도 2는 도 1의 아이템 추천 시스템의 사용자 이용 정보 저장부의 선택적인 실시예를 도시한 도면이다.
도 3은 도 1의 아이템 추천 시스템의 변형예를 도시한 도면이다.
도 4는 도 1의 아이템 추천 시스템을 이용하여 아이템을 추천하는 방법을 순차적으로 설명한 개략적인 순서도이다.
도 5는 도 4의 단계(S5)의 선택적 실시예를 설명하는 순서도이다.
도 6은 도 4의 변형예를 설명한 순서도이다.
도 7은 도 4의 전처리 단계를 통하여 변환된 그래프이다.
도 8은 도 4의 아이템 유사도 계산을 설명하기 위한 도면이다.
도 9는 본 발명의 다른 실시예에 관한 아이템 추천 시스템 및 이의 동작을 개략적으로 설명하기 위하여 도시한 도면이다.
도 10은 도 9의 아이템 추천 시스템을 이용하여 아이템을 추천하는 방법을 순차적으로 설명한 개략적인 순서도이다.
도 11은 도 10의 단계(C5)의 선택적 실시예를 설명하는 순서도이다.
도 12는 도 10의 전처리 단계를 통하여 변환된 그래프이다.
도 13은 본 발명의 또 다른 실시예에 관한 아이템 추천 시스템 및 이의 동작을 개략적으로 설명하기 위하여 도시한 도면이다.
도 14는 도 13의 아이템 추천 시스템을 이용하여 아이템을 추천하는 방법을 순차적으로 설명한 개략적인 순서도이다.
도 15a 및 도 15b는 도 14의 단계(P5)의 선택적 실시예들을 각각 설명하는 순서도들이다.
도 16은 도14의 전처리 단계를 통하여 변환된 그래프이다.
도 17은 도 14의 아이템 유사도 계산 단계를 설명하기 위한 도면이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다.
이하의 실시예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하의 실시예에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다.
도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.
이하의 실시예에서, x축, y축 및 z축은 직교 좌표계 상의 세 축으로 한정되지 않고, 이를 포함하는 넓은 의미로 해석될 수 있다. 예를 들어, x축, y축 및 z축은 서로 직교할 수도 있지만, 서로 직교하지 않는 서로 다른 방향을 지칭할 수도 있다.
어떤 실시예가 달리 구현 가능한 경우에 특정한 공정 순서는 설명되는 순서와 다르게 수행될 수도 있다. 예를 들어, 연속하여 설명되는 두 공정이 실질적으로 동시에 수행될 수도 있고, 설명되는 순서와 반대의 순서로 진행될 수 있다.
도 1은 본 발명의 일 실시예에 관한 아이템 추천 시스템 및 이의 동작을 개략적으로 설명하기 위하여 도시한 도면이다.
도 1을 참조하면 복수의 사용자들(U1, U2, U3...Un)은 네트워크(NW)를 통하여 웹사이트(WS)에 접속한다. 아이템 추천 시스템(100)은 웹사이트(WS)와 연결되어 사용자와 관련된 복수의 정보를 전달받을 수 있다. 예를들면 웹사이트(WS)는 소셜 커머스 사이트, 온라인 쇼핑몰, 오픈 마켓 기타 다양한 전자 상거래를 포함하는 사이트일 수 있다. 네트워크(NW)는 복수의 사용자(U1, U2, U3...Un)과 웹사이트(WS)를 연결할 수 있는 다양한 형태일 수 있다.
도 1에는 아이템 추천 시스템(100)이 웹사이트(WS)와 별개로 도시되어 있으나, 이는 하나의 실시예이다. 즉, 선택적 실시예로서 아이템 추천 시스템(100)은 웹사이트(WS)와 일체로 형성되어 웹사이트(WS)내에 아이템 추천 시스템(100)이 구비될 수 있다. 또 다른 선택적 실시예로서, 아이템 추천 시스템(100) 및 웹사이트(WS)가 일부 기능을 겸할 수 있도록 형성될 수 있음은 물론이다.
도 1을 참조하면 아이템 추천 시스템(100)은 크게, 사용자 이용 정보 저장부(110), 사용자 이용 정보 전처리 수행부(120), 그래프 데이터 베이스(130), 연산부(150), 유사도 판단부(160) 및 추천부(170)를 포함한다.
사용자 이용 정보 저장부(110)는 사용자 이용 정보 제1 저장부(101) 및 사용자 이용 정보 제2 저장부(102)를 구비한다. 사용자 이용 정보 제1 저장부(101) 및 사용자 이용 정보 제2 저장부(102)는 각각 서로 상이한 사용자 이용 관련 정보를 저장한다. 이에 대한 구체적인 내용은 후술한다.
사용자 이용 정보 전처리 수행부(120)는 사용자 이용 정보 저장부(110)에 1차로 저장된 사용자 이용 정보를 그래프 데이터 베이스(130)에 저장하기 적합한 형태로 변형하기 위하여 전처리 단계를 진행한다. 보다 자세한 내용은 후술한다.
그래프 데이터 베이스(130)는 사용자 이용 정보 전처리 수행부(120)를 통하여 적절히 변형된 정보, 즉 그래프 형태로 변형된 정보를 저장한다.
아이템 유사도 판단부(160)는 아이템들간의 유사도를 계산하여 판단한다.
연산부(150)는 필요한 때에 그래프 데이터 베이스(130)에 저장된 사용자 이용 정보 및 아이템 유사도 판단부(160)에서 판단된 아이템 유사도를 이용하여 연산하는 단계를 수행한다.
본 실시예의 아이템 추천 시스템(100)에 대하여 좀 더 구체적으로 설명하기로 한다.
사용자 이용 정보 저장부(110)의 사용자 이용 정보 제1 저장부(101)는 사용자의 기본 정보 및 사용자의 활동과 관련된 하나 이상의 정보를 저장한다. 사용자 이용 정보 제1 저장부(101)에 저장되는 상기의 사용자의 기본 정보는 사용자를 식별하는 정보일 수 있다. 예를들면 사용자의 기본 정보는 사용자의 이름, 사용자의 ID, nickname, password 또는 e-mail 계정일 수 있다. 사용자 이용 정보 제1 저장부(101)에 저장되는 상기의 사용자의 활동과 관련된 하나 이상의 정보는 사용자의 실시간적인 활동 정보일 수 있다. 예를들면 사용자의 활동과 관련된 하나 이상의 정보는 구매 정보 또는 장바구니 정보일 수 있다. 즉, 사용자의 활동과 관련된 하나 이상의 정보는 사용자가 웹사이트(WS)를 통하여 구매한 아이템, 사용자가 웹사이트(WS)를 통하여 장바구니에 저장한 아이템일 수 있다. 물론, 상기의 예는 본 실시예를 설명하기 위한 하나의 예시로서 사용자의 실시간 적인 다양한 활동 정보를 저장하는 것이 가능하다.
사용자 이용 정보 저장부(110)의 사용자 이용 정보 제2 저장부(102)는 사용자의 방문 정보를 저장할 수 있다. 즉, 사용자들이 네트워크(NW)를 통하여 웹사이트(WS)에 방문 시 방문 정보가 사용자 이용 정보 제2 저장부(102)에 저장될 수 있다.
사용자 이용 정보 저장부(110)는 다양한 형태를 가질 수 있다.
도 2는 도 1의 아이템 추천 시스템(100)의 사용자 이용 정보 저장부(110)의 선택적인 실시예를 도시한 도면이다. 설명의 편의를 위하여 전술한 실시예에서 설명한 것과 상이한 것을 중심으로 설명하기로 한다.
도 2를 참조하면 본 발명의 선택적 실시예의 사용자 이용 정보 저장부(110')는 사용자 이용 정보 제1 저장부(101'), 사용자 이용 정보 제2 저장부(102'), 실시간 처리부(SR) 및 임시 저장부(MQ)를 구비한다.
사용자 이용 정보 제1 저장부(101')는 사용자의 기본 정보 및 사용자의 활동과 관련된 하나 이상의 정보를 저장한다. 사용자 이용 정보 제1 저장부(101')는 이러한 정보를 용이하게 저장하도록 RDBMS(Relational Data Base Management System)을 포함할 수 있다. 또한, 선택적인 실시예로서 사용자 이용 정보 제1 저장부(101') 는 mongo DB를 포함하여 대용량의 데이터를 용이하게 처리할 수 있다.
사용자 이용 정보 제2 저장부(102')는 사용자의 방문 정보를 저장할 수 있다. 예를들면 사용자 이용 정보 제2 저장부(102')는 웹로그(weblog)형태로 사용자의 방문 정보를 저장한다.
실시간 처리부(SR)는 사용자 이용 정보 제2 저장부(102')에 저장된 사용자의 방문 정보를 실시간으로 반영하여 업데이트한다. 또한, 실시간 처리부(SR)는 도 2에 도시된 것과 같은 복수의 사용자들(U1, U2, U3...Un)중 기존 방문 기록이 없는 사용자인지를 판단하여 방문 기록이 없는 사용자의 경우, 즉 첫방문자인 경우 첫 방문자임을 알 수 있도록 사용자의 방문 정보를 처리한 후 후술할 임시 저장부(MQ)에 저장한다.
임시 저장부(MQ)는 사용자 이용 정보 제1 저장부(101')에 저장된 정보, 즉 사용자의 기본 정보 및 사용자의 활동과 관련된 하나 이상의 정보를 전달받는다. 또한 임시 저장부(MQ)는 사용자 이용 정보 제2 저장부(102')에 저장된 사용자의 방문 정보를 실시간 처리부(SR)를 통하여 처리된 정보를 전달받는다.
임시 저장부(MQ)는 사용자의 정보들을 이용하여 사용자 이용 정보 전처리 수행부(120)에서 전처리를 수행하기 용이하도록 한다. 예를들면 임시 저장부(MQ)는 메시지큐 형태로서 사용자의 정보들을 임시로 저장할 수 있다.
상기의 도 2에서 설명한 본 발명의 선택적 실시예로서의 사용자 이용 정보 저장부(110')는 본 발명의 아이템 추천 시스템(100)이 포함할 수 있는 다양한 예 중 하나이다. 즉, 도 2에 도시된 것과 일부 구성을 공유하는 구조 또는 도 2에 도시된 구성에 추가적으로 별도의 추가적인 구성을 더 포함하는 구조 기타 다양한 구조의 실시예를 포함할 수 있다.
사용자 이용 정보 전처리 수행부(120)는 사용자 이용 정보 저장부(110)와 연결된다.
사용자 이용 정보 전처리 수행부(120)는 사용자 이용 정보 저장부(110)로부터 사용자 이용 정보를 가져와 사용자 이용 정보를 그래프 데이터 베이스(130)에 저장하기에 적합하도록 전처리를 수행한다.
사용자 이용 정보 전처리 수행부(120)는 도 1에 도시한 복수의 사용자들(U1, U2, U3...Un)과 복수의 아이템들간 관계(relation)을 형성하고, 이를 기초로 복수의 사용자들(U1, U2, U3...Un)과 복수의 아이템들간 관계(relation)를 그래프로 변형한다.
그래프 데이터 베이스(130)는 사용자 이용 정보 전처리 수행부(120)에서 변형된 그래프 데이터, 즉 사용자들과 복수의 아이템들간 관계를 그래프로 표시한 데이터를 저장한다. 그래프 데이터 베이스(130)에 저장되는 그래프 데이터는 사용자들과 아이템들간의 관계를 노드(node), 관계(relation), 속성(property)로 표시할 수 있다.
이와 관련한 구체적인 내용은 후술할 도 7을 참조하면서 더 설명하기로 한다.
그래프 데이터 베이스(130)는 다양한 데이터 베이스를 이용할 수 있는데, 예를들면 자바 기반의 오픈형 DB인 Neo4J를 이용할 수 있다.
또한, 사용자 이용 정보 전처리 수행부(120)는 도 1에 도시한 것과 같이 그래프 데이터 베이스(130)와 별개의 부재로 독립적으로 구성될 수 있다. 그러나, 본 실시예는 이에 한정되지 아니하고, 그래프 데이터 베이스(130)와 일체로 사용자 이용 정보 전처리 수행부(120)가 형성될 수도 있다.
유사도 판단부(160)는 아이템들간의 유사도를 계산 및 판단한다. 유사도 판단부(160)는 오프라인 배치(offline batch) 처리 방식으로 아이템들간의 유사도를 계산 및 판단할 수 있다.
유사도 판단부(160)는 다양한 방식으로 아이템들간의 유사도를 계산 및 판단할 수 있는데, 예를들면 사용자의 암시적 선호도를 이용할 수 있다. 즉, 사용자의 구매, 방문 기타 암시적 선호도를 이용하여 아이템들간의 유사도를 계산 및 판단할 수 있다. 또한 유사도 판단부(160)는 주기적으로, 예를들면 1시간 간격으로 아이템들간 유사도를 오프라인 배치 처리 방식으로 계산할 수 있다. 이 때 사용자의 암시적 선호도를 가리키는 구매, 방문 정보등을 주기적으로 제공받아 아이템들간 유사도를 계산 및 판단할 수 있다.
이를 위하여 유사도 판단부(160)는 다양한 선택적 실시예를 가질 수 있는데, 도 3에 도시한 것과 같이 유사도 판단부(160")가 사용자 이용 정보 저장부(110")와 연결되어 정보를 전달 받을 수 있다. 도 3은 도 1의 아이템 추천 시스템의 변형예를 도시한 도면이다.
도 3을 참조하면 아이템 추천 시스템(100")의 유사도 판단부(160")는 사용자 이용 정보 저장부(110")로부터 사용자 이용 정보, 즉 사용자의 구매 정보 및 사용자의 방문 정보등을 전달받을 수 있다.
도 3의 아이템 추천 시스템(100")은 도 1과 마찬가지로 크게, 사용자 이용 정보 저장부(110"), 사용자 이용 정보 전처리 수행부(120"), 그래프 데이터 베이스(130"), 연산부(150"), 유사도 판단부(160") 및 추천부(170")를 포함한다.
유사도 판단부(160")와 사용자 이용 정보 저장부(110")의 관계만을 제외하고는 도 1의 아이템 추천 시스템(100)과 동일하므로 나머지 부재들에 대한 구체적인 설명은 생략한다.
유사도 판단부(160)의 아이템들간 유사도 계산 및 판단을 통하여 복수의 아이템들간에는 유사도가 결정되고 서로 유사도가 높은 아이템들은 도 8에 도시한 것과 같이 유사 아이템군으로 정할 수 있다. 도 8에 대한 설명은 후술할 실시예에서 더 구체적으로 하기로 한다.
연산부(150)는 그래프 데이터 베이스(130)에 저장되어 있는 그래프 데이터 중 특정의 원하는 데이터를 원하는 때에 불러온다. 또한 연산부(150)는 유사도 판단부(160)에서 계산 및 판단하여 얻은 아이템 유사도 정보를 불러온다.
그리고, 이를 연산하여 가공 단계를 수행한다. 특히, 연산부(150)는 그래프 데이터 베이스(130)에 저장된 데이터들을 연산하여 실시간으로 다양한 작업을 수행할 수 있고, 특정 사용자를 기준으로 사용자와 관계(relation)지어진 아이템들을 추출하고, 추출된 아이템들과 유사도가 높은 아이템들을 용이하게 추출하는 연산을 수행할 수 있다.
또한, 도시하지 않았으나, 선택적 실시예로서 유사도 판단부(160)는 사용자 이용 정보 전처리 수행부(120)와도 연결될 수 있다. 이를 통하여 유사도 판단부(160)에서 판단된 아이템 유사도에 대한 정보를 그래프 데이터로 변형시킬 수 있다.
추천부(170)는 연산부(150)와 연결되어 연산부(150)에서 추출된 아이템들을 특정 사용자에게 추천할 수 있다. 즉, 특정 사용자와 구매, 방문등의 관계를 갖는 아이템들과 유사도가 높은 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템들에 대하여 추천을 수행할 수 있다.
추천부(170)는 다양한 방식으로 추천 작업을 진행할 수 있다. 예를들면 추천부(170)는 상기 특정 사용자가 방문 시 웹사이트상에서 아이템이 표시되도록 팝업창을 형성하거나, 웹사이트의 화면상에 일부에 일시적 또는 지속적으로 아이템을 나타낼 수 있고, 이메일로 아이템들을 공지할 수도 있다. 그러나 본 실시예는 이에 한정되지 않고 다양한 방식으로 추천 과정을 진행하는 추천부(170)를 포함할 수 있음은 물론이다.
도 4는 도 1의 아이템 추천 시스템을 이용하여 아이템을 추천하는 방법을 순차적으로 설명한 개략적인 순서도이다.
도 4를 참조하면 본 실시예의 아이템 추천 방법은 사용자 이용 정보 획득 단계(S1), 전처리 단계(S2), 저장 단계(S3), 아이템 유사도 계산 단계(S4), 연산 단계(S5) 및 추천 단계(S6)을 포함한다.
사용자 이용 정보 획득 단계(S1)는 전술한 것과 같이 도 1의 아이템 추천 시스템(100)의 사용자 이용 정보 저장부(110)에서 진행한다. 즉, 사용자 이용 정보 저장부(110)의 사용자 이용 정보 제1 저장부(101) 및 사용자 이용 정보 제2 저장부(102)를 이용하여 사용자의 정보, 예를들면 사용자의 구매 정보, 장바구니 정보 또는 방문 정보를 획득한다.
예를들면 하기와 같은 표 1에 표시된 형태로 사용자 이용 정보 저장부(110)는 사용자의 이용 정보들을 저장할 수 있다.
I(1) I(2) I(3) I(4)
U1 구매 방문
U2 구매
U3 방문
U5 구매 구매
상기 표 1의 U1, U2, U3, U5는 웹사이트에 접속하는 각각 상이한 사용자를 가리킨다. 상기 표 1의 I(1), I(2), I(3), I(4)는 각각 웹사이트에서 제공하는 상이한 아이템들을 가리킨다.
즉, 표 1을 구체적으로 설명하면 아래와 같다.
사용자(U1)은 아이템(I(1))을 구매하고, 아이템(I(2))에 대하여는 방문을 하였다. 사용자(U2)은 아이템(I(2))을 구매하였다. 사용자(U3)은 아이템(I(4))에 대하여 방문하였다. 사용자(U5)은 아이템(I(3)) 및 아이템(I(4))에 대하여 구매하였다.
또한, 선택적 실시예로서 도시한 도 2의 사용자 이용 정보 저장부(110')를 적용할 경우 임시 저장부(MQ)에 상기의 정보를 저장할 수 있다.
상기의 표 1에는 예시적으로 4명의 사용자 및 4개의 아이템을 개시하였다. 또한, 2가지 종류의 사용자 이용 정보, 즉 구매 및 방문 정보를 개시하였다. 이는 설명의 편의를 위한 것으로서 사용자 이용 정보 획득 단계(S1)에서 복수의 사용자 및 복수의 아이템에 대한 정보를 획득 및 저장할 수 있음은 물론이다. 또한, 사용자의 이용 정보로서 구매 및 방문 외에 장바구니 정보 또는 보관함 정보, wish list 정보 등 기타 정보를 이용할 수 있음은 물론이다.
또한, 기타 사용자 이용 정보 저장과 관련된 내용은 전술한 실시예에서 설명한 바와 같다.
전처리 단계(S2)에서는 사용자 이용 정보 획득 단계(S1)에서 획득 및 저장한 단계를 사용자 이용 정보 전처리 수행부(120)를 이용하여 사용자들과 아이템들간의 관계를 형성하고 그래프로 변형한다. 즉 후술할 저장 단계(S3)에 적합하도록 정보 전처리를 수행한다.
도 7은 전처리 단계(S2)를 통하여 변화된 그래프이다.
설명의 편의를 위하여 도 7은 상기 표 1의 정보를 그대로 이용하여 전처리한 그래프 데이터를 보여준다.
도 7을 참조하면 그래프 데이터는 복수의 노드(node)를 포함하고, 복수의 노드들간에는 관계(relation)가 형성된다. 복수의 노드들은 각각 속성(property)을 갖는데, 도 7에서 각 노드들은 사용자들(U1, U2, U3, U5) 및 아이템(I(1), I(2), I(3), I(4))을 속성으로 갖는다. 또한 관계(relation)들은 구매(p) 및 방문(v)을 속성으로 갖는다.
도 7에는 관계(relation)가 단방향으로만 표시되어 있다. 그러나, 이는 하나의 예시로서 각 노드들간에 양방향 관계(relation)가 형성될 수 있음은 물론이다.
도 7을 참조하면 상기 표 1에 기재된 데이터가 모두 표시되어 있다. 즉, 사용자(U1)가 아이템(I(1))을 구매하고, 아이템(I(2))에 대하여는 방문을 한 정보, 사용자(U2)가 아이템(I(2))에 대하여 구매한 정보, 사용자(U3)가 아이템(I(4))에 대하여 방문한 정보 및 사용자(U5)가 아이템(I(3)) 및 아이템(I(4))에 대하여 구매한 정보가 하나의 그래프 데이터로 표시된다.
즉, 전처리 단계(S2)에서는 사용자 이용 정보 전처리 수행부(120)를 이용하여 표 1에 개시된 정보를 처리하여 표 1에 대응하는 그래프 데이터를 생성한다.
그래프 데이터를 통하여 각 사용자(U1, U2, U3, U5)들과 각 아이템(I(1), I(2), I(3), I(4))들간의 정보를 용이하게 알 수 있다. 또한, 각 사용자(U1, U2, U3, U5)들과 각 아이템(I(1), I(2), I(3), I(4))들간의 관계(relation)에 대한 정보를 통하여 각 사용자(U1, U2, U3, U5)들간의 관계를 알 수 있다.
저장 단계(S3)에서는 이러한 사용자 이용 정보 전처리 수행부(120)를 이용하여 형성된 그래프 데이터를 그래프 데이터 베이스(130)에 저장한다. 전술한 실시예에서 설명한 바와 같이 사용자 이용 정보 전처리 수행부(120)와 그래프 데이터 베이스(130)는 별개의 독립된 부재일 수 있고, 다른 선택적 실시예로서 하나의 일체화된 형태일 수도 있다.
아이템 유사도 계산 단계(S4)에서는 아이템들간의 유사도를 계산 및 판단한다. 아이템 유사도 계산 단계(S4)에서는 다양한 방법으로 아이템들간의 유사도를 계산한다. 즉, 전술한 대로 오프라인 배치(offline batch) 처리 방식으로 아이템들간의 유사도를 계산 및 판단할 수 있다.
또한, 사용자의 암시적 선호도를 이용할 수 있다. 즉, 사용자의 구매, 방문 기타 암시적 선호도를 이용하여 아이템들간의 유사도를 계산 및 판단할 수 있다. 또한 유사도 판단부(160)는 주기적으로, 예를들면 1시간 간격으로 아이템들간 유사도를 오프라인 배치 처리 방식으로 계산할 수 있다. 이 때 사용자의 암시적 선호도를 가리키는 구매, 방문 정보등을 주기적으로 제공받아 아이템들간 유사도를 계산 및 판단할 수 있다.
이를 위하여 도 3에 도시한 것과 같이 유사도 판단부(160")가 사용자 이용 정보 저장부(110")와 연결되어 정보를 전달 받을 수 있다.
아이템 유사도 계산 단계(S4)를 통하여 도 8에 도시한 것과 같이 유사도가 높은 아이템별로 그룹을 선정할 수 있다.
도 8을 참조하면 A그룹 내에 포함된 아이템들(I(1), I(3), I(4), I(7), I(10), I(13)...)은서로 유사도가 높은 아이템들이고, B그룹 내에 포함된 아이템들(I(2), I(5), I(6), I(15), I(19), I(20)...)은서로 유사도가 높은 아이템들이다.
유사도 계산 단계(S4)에서 계산된 아이템 유사도 및 이를 통하여 얻은 유사도가 높은 아이템별로 선정된 그룹은 소정의 저장소에 저장할 수 있다. 예를들면 도 1에 도시한 유사도 판단부(160)내에 저장할 수 있고, 도시하지 않은 별도의 저장소, 특히 임시 저장소에 저장할 수 있다.
또 다른 예로서, 도 2에 도시한 임시 저장부(MQ)에 저장할 수 있다. 이 경우, 선택적 실시예로서 임시 저장부(MQ)에 저장한 아이템 유사도 정보를 전처리 단계(S2)를 수행하여 전술한 그래프 데이터에 포함시킨 후 그래프 데이터로 저장 단계(S3)에서 저장하는 것도 가능하다.
연산 단계(S5)에서는 저장 단계(S3) 및 아이템 유사도 계산 단계(S4)를 통하여 획득한 정보를 이용하여 연산을 수행한다. 특히, 연산 단계(S5)에서는 저장 단계(S3)에서 저장된 그래프 데이터를 연산하여 실시간으로 다양한 작업을 수행할 수 있고, 특정 사용자를 기준으로 사용자와 관계(relation)지어진 아이템들을 추출하고, 추출된 아이템들과 유사도가 높은 아이템들을 용이하게 추출하는 연산을 수행할 수 있다.
연산 단계(S5)는 다양한 형태를 가질 수 있는데, 도 5를 참조하면서 설명한다. 도 5는 도 4의 단계(S5)의 선택적 실시예를 설명하는 순서도이다.
도 5를 참조하면 연산 단계(S5)는 사용자와 관계를 갖는 아이템을 파악하는 단계(S51) 및 S51단계에서 파악한 아이템과 유사도가 높은 아이템들을 파악하는 단계(S52)를 포함한다.
사용자와 관계를 갖는 아이템을 파악하는 단계(S51)는 특정 사용자와 관계를 갖는 아이템을 파악하는 것으로서, 도 7을 참조하면 특정 사용자, 예를들면 사용자(U1)과 관계를 갖는 아이템들을 파악한다. 즉 사용자(U1)과 구매(p)의 관계를 갖는 아이템(I(1)) 및 사용자(U1)과 방문(v)의 관계를 갖는 아이템(I(2))를 파악한다.
S51단계에서 파악한 아이템과 유사도가 높은 아이템들을 파악하는 단계(S52)에서는, 상기 아이템들, 즉 아이템(I(1))과 유사도가 높은 아이템들 및 아이템(I(2))과 유사도가 높은 아이템들을 파악한다. 도 8을 참조하면 아이템(I(1))과 유사도가 높은 아이템들은 아이템들(I(3), I(4), I(7), I(10), I(13)...)이고, 아이템(I(2))과 유사도가 높은 아이템들은 아이템들(I(5), I(6), I(15), I(19), I(20)...)이다.
추천 단계(S6)에서는 연산 단계(S5)를 통하여 선별된 아이템들을 사용자에에 추천하는 작업을 진행한다. 즉, 사용자(U1)에게 아이템들(I(3), I(4), I(7), I(10), I(13)...) 중 적어도 하나를 추천하거나, 아이템들(I(5), I(6), I(15), I(19), I(20)...)중 적어도 하나를 추천할 수 있다.
추천 단계(S6)는 다양한 방식으로 추천할 수 있는데, 전술한 것과 마찬가지로 다양한 방식으로 진행할 수 있는데, 예를들면 특정 사용자(U1)가 방문 시 웹사이트상에서 아이템이 표시되도록 팝업창을 형성하거나, 웹사이트의 화면상에 일부에 일시적 또는 지속적으로 아이템을 나타낼 수 있고, 이메일로 아이템들을 공지할 수도 있다. 그러나 본 실시예는 이에 한정되지 않고 다양한 방식으로 추천 과정을 진행할 수 있음은 물론이다.
특정 사용자로서 사용자(U1)을 설명한 것은 설명의 편의를 위한 것으로서 다른 사용자들 중 어느 하나에 대하여 추천 작업을 수행할 수 있음은 물론이다. 또한, 본 실시예 및 도면에 표시된 사용자들의 수 및 아이템들의 수는 설명의 편의를 위한 것으로서 이에 제한되지 않음은 물론이다.
본 발명의 실시예들의 아이템 추천 시스템(100) 및 이를 이용한 추천 방법은 사용자 이용 정보 저장부(110)를 통하여 사용자 이용 정보를 용이하게 저장할 수 있고, 선택적 실시예로서, 실시간으로 처리한 정보 및 첫 방문자임을 표시하여 저장할 수 있다.
그리고, 이러한 사용자 이용 정보 저장부(110)에 저장된 정보를 사용자 이용 정보 전처리 수행부(120)에서 전처리하는 단계를 진행하여 사용자와 아이템들간의 관계(relation)을 단순화한 그래프 데이터로 변형한다. 그리고 이러한 그래프 데이터는 그래프 데이터 베이스(130)에 저장하는 단계를 진행한다.
사용자와 아이템들간의 정보는 사용자 및 아이템들이 적을 때는 저장시 크게 문제되지 않으나, 사용자들의 수와 아이템들간의 수가 증가하고 관계의 방식(예, 구매, 방문)이 증가할 경우 저장하기도 용이하지 않고, 저장한다 하더라도 이러한 저장된 정보를 이용하기 용이하지 않다.
그러나, 본 실시예에서는 사용자와 아이템들간의 정보를 그래프 데이터 베이스(130)에 그래프 데이터 형태로 저장한다. 이를 통하여 사용자들과 아이템들간의 관계를 용이하게 파악 및 분석할 수 있다. 특히, 그래프 데이터 베이스(130)내에는 그래프 데이터만을 저장할 뿐, 사용자들과 아이템들간의 관계에 대한 별도의 연산을 수행하지 않는다. 불필요한 연산 작업을 수행하지 않으므로 그래프 데이터 베이스(130)를 통한 사용자 이용 정보의 활용 능력을 향상할 수 있다.
또한, 그래프 데이터 베이스(130)를 이용하여 추가적인 정보를 노드(node) 및 관계(relation)등을 이용하여 용이하게 저장할 수 있다.
그리고, 연산부(150)는 가공 단계에서 위와 같이 용이한 방법으로 파악된 사용자들과 아이템들간의 관계를 이용하여 연산 작업을 진행하여 다양한 작업을 수행한다. 즉, 그래프 데이터 형태로 저장된 데이터들을 모두 연산하는 것이 아니고, 필요한 사용자 또는 필요한 아이템에 관련된 관계(relation)를 포함하는 정보만 불러와 이에 대한 연산만을 수행하여 작업을 수행한다.
이를 통하여 실시간으로 신속한 연산이 가능하므로 원하는 때에 최신의 정보를 통한 연산, 예를들면 사용자와 아이템들 각각의 관계 정보 선별 작업을 용이하게 진행할 수 있다.
그리고, 아이템들간 유사도를 판단하여 아이템에 기반한 추천 작업을 진행하므로 추천 작업의 속도를 용이하게 증가할 수 있다.
이 때, 본 실시예에서는 아이템들간 유사도를 계산하고, 선택적 실시예로서 오프라인 배치 방식으로 계산을 할 수 있고, 또한 고객의 암시적 선호도를 이용하여 용이하게 아이템들간 유사도를 계산할 수 있다. 이를 통하여 고객 추천 작업의 효율성을 증대할 수 있다.
도 9는 본 발명의 다른 실시예에 관한 아이템 추천 시스템 및 이의 동작을 개략적으로 설명하기 위하여 도시한 도면이다.
설명의 편의를 위하여 전술한 실시예와 상이한 점을 중심으로 설명하기로 한다.
도 9를 참조하면 복수의 사용자들(U1, U2, U3...Un)은 네트워크(NW)를 통하여 웹사이트(WS)에 접속한다. 아이템 추천 시스템(200)은 웹사이트(WS)와 연결되어 사용자와 관련된 복수의 정보를 전달받을 수 있다. 웹사이트(WS)관련된 내용은 전술한 실시예와 동일하므로 구체적인 설명은 생략한다.
도 9를 참조하면 아이템 추천 시스템(200)은 크게, 사용자 이용 정보 저장부(210), 사용자 이용 정보 전처리 수행부(220), 그래프 데이터 베이스(230), 연산부(250) 및 추천부(270)를 포함한다. 연산부(250)는 연관 사용자 선정부(251) 및 연관 아이템 선정부(252)를 구비한다.
사용자 이용 정보 저장부(210)는 사용자 이용 정보 제1 저장부(201) 및 사용자 이용 정보 제2 저장부(202)를 구비한다. 사용자 이용 정보 제1 저장부(201) 및 사용자 이용 정보 제2 저장부(202)는 각각 서로 상이한 사용자 이용 관련 정보를 저장한다. 이에 대한 구체적인 내용은 전술한 실시예와 동일하므로 생략한다.
사용자 이용 정보 전처리 수행부(220)는 사용자 이용 정보 저장부(210)에 1차로 저장된 사용자 이용 정보를 그래프 데이터 베이스(230)에 저장하기 적합한 형태로 변형하기 위하여 전처리 단계를 진행한다. 구체적인 내용은 전술한 실시예와 동일하므로 생략한다.
그래프 데이터 베이스(230)는 사용자 이용 정보 전처리 수행부(220)를 통하여 적절히 변형된 정보를 저장한다.
연산부(250)는 필요한 때에 그래프 데이터 베이스(230)에 저장된 사용자 이용 정보등을 이용하여 연산하는 단계를 수행한다.
연산부(250)는 연관 사용자 선정부(251) 및 연관 아이템 선정부(252)를 구비한다. 연관 사용자 선정부(251)는 특정 사용자와 관계를 갖는 아이템들과 관계를 갖는 타 사용자를 선정한다. 연관 아이템 선정부(252)는 연관 사용자 선정부(251)에서 선정한 사용자와 관계를 갖는 아이템 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정한다. 이에 대한 구체적인 내용은 후술한다.
도시하지 않았으나, 본 실시예의 아이템 추천 시스템(200)의 사용자 이용 정보 저장부(210)는 다양한 선택적 실시예를 가질 수 있고, 예를들면 전술한 도 2의 실시예를 가질 수 있다. 즉, 본 실시예의 아이템 추천 시스템(200)의 사용자 이용 정보 저장부(210)는 사용자 이용 정보 제1 저장부, 사용자 이용 정보 제2 저장부, 실시간 처리부 및 임시 저장부를 구비할 수 있다. 실시간 처리부 및 임시 저장부를 포함한 구체적인 내용은 전술한 도 2의 실시예와 동일하므로 구체적인 내용은 생략한다.
사용자 이용 정보 전처리 수행부(220)는 사용자 이용 정보 저장부(210)와 연결되어 사용자 이용 정보 저장부(210)로부터 사용자 이용 정보를 가져와 사용자 이용 정보를 그래프 데이터 베이스(230)에 저장하기에 적합하도록 전처리를 수행한다.
사용자 이용 정보 전처리 수행부(220)는 도 9에 도시한 복수의 사용자들(U1, U2, U3...Un)과 복수의 아이템들간 관계(relation)을 형성하고, 이를 기초로 복수의 사용자들(U1, U2, U3...Un)과 복수의 아이템들간 관계(relation)를 그래프로 변형한다.
그래프 데이터 베이스(230)는 사용자 이용 정보 전처리 수행부(220)에서 변형된 그래프 데이터, 즉 사용자들과 복수의 아이템들간 관계를 그래프로 표시한 데이터를 저장한다. 그래프 데이터 베이스(230)에 저장되는 그래프 데이터는 사용자들과 아이템들간의 관계를 노드(node), 관계(relation), 속성(property)로 표시할 수 있다.
이와 관련한 구체적인 내용은 도 12를 참조하면서 더 설명하기로 한다.
그래프 데이터 베이스(230)의 예시는 전술한 실시예와 같다. 또한, 전술한 실시예와 마찬가지로 사용자 이용 정보 전처리 수행부(220)는 그래프 데이터 베이스(230)와 별개의 부재로 독립적으로 구성될 수 있고, 선택적 실시예로서, 그래프 데이터 베이스(230)와 일체로 사용자 이용 정보 전처리 수행부(220)가 형성될 수도 있다.
연산부(250)는 그래프 데이터 베이스(230)에 저장되어 있는 그래프 데이터 중 특정의 원하는 데이터를 원하는 때에 불러온다.
그리고, 이를 연산하여 가공 단계를 수행한다. 특히, 연산부(250)는 그래프 데이터 베이스(230)에 저장된 데이터들을 연산하여 실시간으로 다양한 작업을 수행할 수 있다. 즉, 연관 사용자 선정부(251)는 특정 사용자와 관계를 갖는 아이템들을 파악하고, 이러한 아이템들과 관계를 갖는 타 사용자들을 선정한다. 그리고, 연관 아이템 선정부(252)는 이러한 타 사용자들과 관계를 갖는 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템들을 선정하는 연산을 수행할 수 있다.
추천부(270)는 연산부(250)와 연결되어 연산부(250)에서 선정된 아이템들을 특정 사용자에에 추천할 수 있다.
추천부(270)는 다양한 방식으로 추천 작업을 진행할 수 있다. 예를들면 추천부(270)는 상기 특정 사용자가 방문 시 웹사이트상에서 아이템이 표시되도록 팝업창을 형성하거나, 웹사이트의 화면상에 일부에 일시적 또는 지속적으로 아이템을 나타낼 수 있고, 이메일로 아이템들을 공지할 수도 있다. 그러나 본 실시예는 이에 한정되지 않고 다양한 방식으로 추천 과정을 진행하는 추천부(270)를 포함할 수 있음은 물론이다.
도 10은 도 9의 아이템 추천 시스템을 이용하여 아이템을 추천하는 방법을 순차적으로 설명한 개략적인 순서도이다.
도 10을 참조하면 본 실시예의 아이템 추천 방법은 사용자 이용 정보 획득 단계(C1), 전처리 단계(C2), 저장 단계(C3), 연산 단계(C5) 및 추천 단계(C6)을 포함한다.
사용자 이용 정보 획득 단계(C1)는 전술한 것과 같이 도 9의 아이템 추천 시스템(200)의 사용자 이용 정보 저장부(210)에서 진행한다. 즉, 사용자 이용 정보 저장부(210)의 사용자 이용 정보 제1 저장부(201) 및 사용자 이용 정보 제2 저장부(202)를 이용하여 사용자의 정보, 예를들면 사용자의 구매 정보, 장바구니 정보 또는 방문 정보를 획득한다.
예를들면 하기와 같은 표 2에 표시된 형태로 사용자 이용 정보 저장부(210)는 사용자의 이용 정보들을 저장할 수 있다.
I(1) I(2) I(3) I(4)
U1 구매 방문 구매
U2 방문 구매 구매
U3 구매 방문
상기 표 2의 U1, U2, U3 는 웹사이트에 접속하는 각각 상이한 사용자를 가리킨다. 상기 표 2의 I(1), I(2), I(3), I(4)는 각각 웹사이트에서 제공하는 상이한 아이템들을 가리킨다.
즉, 표 2를 구체적으로 설명하면 아래와 같다.
사용자(U1)은 아이템(I(1)) 및 아이템(I(3))을 구매하고, 아이템(I(2))에 대하여는 방문을 하였다. 사용자(U2)은 아이템(I(2)) 및 아이템(I(4))을 구매하고, 아이템(I(1))에 대하여 방문하였다. 사용자(U3)은 아이템(I(3))을 구매하고, 아이템(I(4))에 대하여 방문하였다.
또한, 선택적 실시예로서 사용자 이용 정보 저장부(210)가 도 2의 선택적 실시예의 구조를 적용할 경우 임시 저장부에 상기의 정보를 저장할 수 있다.
상기의 표 2에는 예시적으로 3명의 사용자 및 4개의 아이템을 개시하였다. 또한, 2가지 종류의 사용자 이용 정보, 즉 구매 및 방문 정보를 개시하였다. 이는 설명의 편의를 위한 것으로서 사용자 이용 정보 획득 단계(C1)에서 복수의 사용자 및 복수의 아이템에 대한 정보를 획득 및 저장할 수 있음은 물론이다. 또한, 사용자의 이용 정보로서 구매 및 방문 외에 장바구니 정보 또는 보관함 정보, wish list 정보 등 기타 정보를 이용할 수 있음은 물론이다.
또한, 기타 사용자 이용 정보 저장과 관련된 내용은 전술한 실시예에서 설명한 바와 같다.
전처리 단계(C2)에서는 사용자 이용 정보 획득 단계(C1)에서 획득 및 저장한 단계를 사용자 이용 정보 전처리 수행부(220)를 이용하여 사용자들과 아이템들간의 관계를 형성하고 그래프로 변형한다. 즉 후술할 저장 단계(C3)에 적합하도록 정보 전처리를 수행한다.
도 12는 전처리 단계(C2)를 통하여 변화된 그래프이다.
설명의 편의를 위하여 도 12는 상기 표 2의 정보를 그대로 이용하여 전처리한 그래프 데이터를 보여준다.
도 12를 참조하면 그래프 데이터는 복수의 노드(node)를 포함하고, 복수의 노드들간에는 관계(relation)가 형성된다. 복수의 노드들은 각각 속성(property)을 갖는데, 도 12에서는 각 노드들은 사용자들(U1, U2, U3) 및 아이템(I(1), I(2), I(3), I(4))을 속성으로 갖는다. 또한 관계(relation)들은 구매(p) 및 방문(v)을 속성으로 갖는다.
도 12에는 관계(relation)가 단방향으로만 표시되어 있다. 그러나, 이는 하나의 예시로서 각 노드들간에 양방향 관계(relation)가 형성될 수 있음은 물론이다.
도 12를 참조하면 상기 표 2에 기재된 데이터가 모두 표시되어 있다. 즉, 사용자(U1)가 아이템(I(1)) 및 아이템(I(3))을 구매하고, 아이템(I(2))에 대하여는 방문을 한 정보, 사용자(U2)가 아이템(I(2)) 및 아이템(I(4))을 구매하고, 아이템(I(1))에 대하여 방문한 정보, 사용자(U3)가 아이템(I(3))을 구매하고, 아이템(I(4))에 대하여 방문한 정보가 하나의 그래프 데이터로 표시된다.
즉, 전처리 단계(C2)에서는 사용자 이용 정보 전처리 수행부(220)를 이용하여 표 2에 개시된 정보를 처리하여 표 2에 대응하는 그래프 데이터를 생성한다.
그래프 데이터를 통하여 각 사용자(U1, U2, U3)들과 각 아이템(I(1), I(2), I(3), I(4))들간의 정보를 용이하게 알 수 있다. 또한, 각 사용자(U1, U2, U3)들과 각 아이템(I(1), I(2), I(3), I(4))들간의 관계(relation)에 대한 정보를 통하여 각 사용자(U1, U2, U3, U5)들간의 관계를 알 수 있다.
저장 단계(C3)에서는 이러한 사용자 이용 정보 전처리 수행부(220)를 이용하여 형성된 그래프 데이터를 그래프 데이터 베이스(230)에 저장한다. 전술한 실시예에서 설명한 바와 같이 사용자 이용 정보 전처리 수행부(220)와 그래프 데이터 베이스(230)는 별개의 독립된 부재일 수 있고, 다른 선택적 실시예로서 하나의 일체화된 형태일 수도 있다.
연산 단계(C5)에서는 저장 단계(C3)를 통하여 획득한 정보를 이용하여 연산을 수행한다. 특히, 연산 단계(C5)에서는 저장 단계(C3)에서 저장된 그래프 데이터를 연산하여 실시간으로 다양한 작업을 수행할 수 있고, 특정 사용자를 기준으로 사용자와 관계(relation)지어진 아이템들을 추출하고, 추출된 아이템들로부터 연관 사용자 및 연관 아이템들을 용이하게 선정하는 연산을 수행할 수 있다.
연산 단계(C5)는 다양한 형태를 가질 수 있는데, 도 11을 참조하면서 설명한다. 도 11은 도 10의 단계(C5)의 선택적 실시예를 설명하는 순서도이다.
도 11을 참조하면 연산 단계(C5)는 특정 사용자와 관계를 갖는 아이템을 파악하는 단계(C51), 상기 C51단계에서 파악한 아이템과 관계를 갖는 사용자들을 파악하는 단계(C52), 상기 C52단계에서 파악한 사용자들 중 상기 특정 사용자를 제외한 사용자들을 선정하는 단계(C53), 상기 C53단계에서 선정한 사용자들과 관계를 갖는 아이템들을 파악하는 단계(C54) 및 상기 C54단계에서 파악한 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정하는 단계(C55)를 포함한다.
사용자와 관계를 갖는 아이템을 파악하는 단계(C51)는 특정 사용자와 관계를 갖는 아이템을 파악하는 것으로서, 도 12를 참조하면 특정 사용자, 예를들면 사용자(U1)과 관계를 갖는 아이템들을 파악한다. 즉 사용자(U1)과 구매(p)의 관계를 갖는 아이템(I(1)) 및 아이템(I(3))을 파악하고, 사용자(U1)과 방문(v)의 관계를 갖는 아이템(I(2))을 파악한다.
상기 C51단계에서 파악한 아이템과 관계를 갖는 사용자들을 파악하는 단계(C52)에서는, 상기 C51단계에서 파악된 아이템들, 즉, 아이템(I(1)), 아이템(I(2)) 및 아이템(I(3))과 관계를 갖는 사용자들을 파악한다. 즉, 아이템(I(1))과 관계를 갖는 사용자들인 사용자(U1) 및 사용자(U2)를 파악하고, 아이템(I(2))과 관계를 갖는 사용자들인 사용자(U1) 및 사용자(U2)를 파악하고, 아이템(I(3))과 관계를 갖는 사용자들인 사용자(U1) 및 사용자(U3)를 파악한다.
상기 C52단계에서 파악한 사용자들 중 상기 특정 사용자를 제외한 사용자들을 선정하는 단계(C53)에서는, 상기 C52단계에서 파악된 사용자들, 즉 사용자(U1), 사용자(U2) 및 사용자(U3) 중 특정 사용자(U1)을 제외한 사용자인 사용자(U2) 및 사용자(U3)를 선정한다. 이러한 사용자들을 본 실시예에서는 연관 사용자라고 지칭한다. 즉 사용자(U1)의 연관 사용자들은 사용자(U2) 및 사용자(U3)이다. 이러한 연관사용자들을 선정하는 작업은 전술한 도 9의 아이템 추천 시스템(200)의 연관 사용자 선정부(251)가 수행할 수 있다.
상기 C53단계에서 선정한 사용자들과 관계를 갖는 아이템들을 파악하는 단계(C54)에서는 연관 사용자들인 사용자(U2) 및 사용자(U3)가 각각 관계를 갖는 아이템들을 파악한다.
먼저, 사용자(U2)와 관계를 갖는 아이템들을 파악하기로 한다. 도 12를 참조하면 사용자(U2)와 구매(p)의 관계를 갖는 아이템(I(2)) 및 아이템(I(4))을 파악하고, 사용자(U2)와 방문(v)의 관계를 갖는 아이템(I(1))을 파악한다. 그리고, 사용자(U3)과 구매(p)의 관계를 갖는 아이템(I(3)) 및 방문(v)의 관계를 갖는 아이템(I(4))을 파악한다.
상기 C54단계에서 파악한 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정하는 단계(C55)에서는 상기 파악된 아이템들, 즉 사용자(U2)와 관계를 갖는 아이템(I(1)), 아이템(I(2)) 및 아이템(I(4)), 그리고 사용자(U3)와 관계를 갖는 아이템(I(3)) 및 아이템(I(4)) 중에서 사용자(U1)와 관계를 갖지 않는 아이템을 선정한다. 편의상 본 실시예에서는 이러한 아이템들을 연관 아이템이라고 지칭한다.
구체적으로 아이템(I(1)), 아이템(I(2)), 아이템(I(3)) 및 아이템(I(4)) 중 사용자(U1)와 관계를 갖지 않는 아이템인 아이템(I(4))을 선정한다. 이 경우 사용자(U1)의 연관 아이템은 아이템(I(4))이다. 이러한 연관 아이템들을 선정하는 작업은 전술한 도 9의 아이템 추천 시스템(200)의 연관 아이템 선정부(252)가 수행할 수 있다.
추천 단계(C6)에서는 연산 단계(C5)를 통하여 선정된 아이템들을 사용자에게 추천하는 작업을 진행한다. 즉, 사용자(U1)에게 사용자(U1)의 연관 아이템인 아이템(아이템(I(4))을 추천할 수 있다.
추천 단계(C6)는 다양한 방식으로 추천할 수 있는데, 전술한 것과 마찬가지로 다양한 방식으로 진행할 수 있는데, 예를들면 특정 사용자(U1)가 방문 시 웹사이트상에서 아이템이 표시되도록 팝업창을 형성하거나, 웹사이트의 화면상에 일부에 일시적 또는 지속적으로 아이템을 나타낼 수 있고, 이메일로 아이템들을 공지할 수도 있다. 그러나 본 실시예는 이에 한정되지 않고 다양한 방식으로 추천 과정을 진행할 수 있음은 물론이다.
특정 사용자로서 사용자(U1)을 설명한 것은 설명의 편의를 위한 것으로서 다른 사용자들 중 어느 하나에 대하여 추천 작업을 수행할 수 있음은 물론이다.
본 발명의 실시예들의 아이템 추천 시스템(200) 및 이를 이용한 추천 방법은 사용자 이용 정보 저장부(210)를 통하여 사용자 이용 정보를 용이하게 저장할 수 있고, 선택적 실시예로서, 실시간으로 처리한 정보 및 첫 방문자임을 표시하여 저장할 수 있다.
그리고, 이러한 사용자 이용 정보 저장부(210)에 저장된 정보를 사용자 이용 정보 전처리 수행부(220)에서 전처리하는 단계를 진행하여 사용자와 아이템들간의 관계(relation)을 단순화한 그래프 데이터로 변형한다. 그리고 이러한 그래프 데이터는 그래프 데이터 베이스(230)에 저장하는 단계를 진행한다.
사용자와 아이템들간의 정보는 사용자 및 아이템들이 적을 때는 저 장시 크게 문제되지 않으나, 사용자들의 수와 아이템들간의 수가 증가하고 관계의 방식(예, 구매, 방문)이 증가할 경우 저장하기도 용이하지 않고, 저장한다 하더라도 이러한 저장된 정보를 이용하기 용이하지 않다.
그러나, 본 실시예에서는 사용자와 아이템들간의 정보를 그래프 데이터 베이스(230)에 그래프 데이터 형태로 저장한다. 이를 통하여 사용자들과 아이템들간의 관계를 용이하게 파악 및 분석할 수 있다. 특히, 그래프 데이터 베이스(230)내에는 그래프 데이터만을 저장할 뿐, 사용자들과 아이템들간의 관계에 대한 별도의 연산을 수행하지 않는다. 불필요한 연산 작업을 수행하지 않으므로 그래프 데이터 베이스(230)를 통한 사용자 이용 정보의 활용 능력을 향상할 수 있다.
또한, 그래프 데이터 베이스(230)를 이용하여 추가적인 정보를 노드(node) 및 관계(relation)등을 이용하여 용이하게 저장할 수 있다.
그리고, 연산부(250)는 가공 단계에서 위와 같이 용이한 방법으로 파악된 사용자들과 아이템들간의 관계를 이용하여 연산 작업을 진행하여 다양한 작업을 수행한다. 즉, 그래프 데이터 형태로 저장된 데이터들을 모두 연산하는 것이 아니고, 필요한 사용자 또는 필요한 아이템에 관련된 관계(relation)를 포함하는 정보만 불러와 이에 대한 연산만을 수행하여 작업을 수행한다.
이를 통하여 실시간으로 신속한 연산이 가능하므로 원하는 때에 최신의 정보를 통한 연산, 예를들면 사용자와 아이템들 각각의 관계 정보 선별 작업을 용이하게 진행할 수 있다.
특히, 특정 사용자와 관계를 갖는 아이템들과 관계를 갖는 타 사용자들, 즉 연관 사용자를 선정하고, 연관 사용자와 관계를 갖는 아이템들 중 특정 사용자와 관계를 갖지 않는 아이템들, 즉 연관 아이템들을 선정하여 추천 작업을 진행하므로 실시간으로 효과적으로 추천 작업을 진행할 수 있다. 즉, 추천 작업을 진행할 사용자들에 대한 정보 및 이와 연관된 사용자들에 대한 정보만을 그래프 데이터 베이스에서 불러와 빠른 시간에 연산이 가능하므로 언제든지 실시간으로 원하는 추천 작업을 용이하게 진행할 수 있다.
도 13은 본 발명의 또 다른 실시예에 관한 아이템 추천 시스템 및 이의 동작을 개략적으로 설명하기 위하여 도시한 도면이다.
설명의 편의를 위하여 전술한 실시예와 상이한 점을 중심으로 설명하기로 한다.
도 13을 참조하면 복수의 사용자들(U1, U2, U3...Un)은 네트워크(NW)를 통하여 웹사이트(WS)에 접속한다. 아이템 추천 시스템(300)은 웹사이트(WS)와 연결되어 사용자와 관련된 복수의 정보를 전달받을 수 있다. 웹사이트(WS)관련된 내용은 전술한 실시예와 동일하므로 구체적인 설명은 생략한다.
도 13을 참조하면 아이템 추천 시스템(300)은 크게, 사용자 이용 정보 저장부(310), 사용자 이용 정보 전처리 수행부(320), 그래프 데이터 베이스(330), 연산부(350), 유사도 판단부(360) 및 추천부(370)를 포함한다. 연산부(350)는 연관 사용자 선정부(351) 및 연관 아이템 선정부(352)를 구비한다.
사용자 이용 정보 저장부(310)는 사용자 이용 정보 제1 저장부(301) 및 사용자 이용 정보 제2 저장부(302)를 구비한다. 사용자 이용 정보 제1 저장부(301) 및 사용자 이용 정보 제2 저장부(302)는 각각 서로 상이한 사용자 이용 관련 정보를 저장한다. 이에 대한 구체적인 내용은 전술한 실시예와 동일하므로 생략한다.
사용자 이용 정보 전처리 수행부(320)는 사용자 이용 정보 저장부(310)에 1차로 저장된 사용자 이용 정보를 그래프 데이터 베이스(330)에 저장하기 적합한 형태로 변형하기 위하여 전처리 단계를 진행한다. 구체적인 내용은 전술한 실시예와 동일하므로 생략한다.
그래프 데이터 베이스(330)는 사용자 이용 정보 전처리 수행부(320)를 통하여 적절히 변형된 정보를 저장한다.
아이템 유사도 판단부(360)는 아이템들간의 유사도를 계산하여 판단한다.
연산부(350)는 필요한 때에 그래프 데이터 베이스(330)에 저장된 사용자 이용 정보 및 아이템 유사도 판단부(360)에서 판단한 아이템 유사도 정보등을 이용하여 연산하는 단계를 수행한다.
연산부(350)는 연관 사용자 선정부(351) 및 연관 아이템 선정부(352)를 구비한다. 연관 사용자 선정부(351)는 특정 사용자와 관계를 갖는 아이템들과 관계를 갖는 타 사용자 또는 특정 사용자와 관계를 갖는 아이템과 유사한 아이템들과 관계를 갖는 타 사용자를 선정한다. 연관 아이템 선정부(352)는 연관 사용자 선정부(351)에서 선정한 사용자와 관계를 갖는 아이템 또는 이와 유사한 아이템 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정한다. 이에 대한 구체적인 내용은 후술한다.
도시하지 않았으나, 본 실시예의 아이템 추천 시스템(300)의 사용자 이용 정보 저장부(310)는 다양한 선택적 실시예를 가질 수 있고, 예를들면 전술한 도 2의 실시예를 가질 수 있다. 즉, 본 실시예의 아이템 추천 시스템(300)의 사용자 이용 정보 저장부(310)는 사용자 이용 정보 제1 저장부, 사용자 이용 정보 제2 저장부, 실시간 처리부 및 임시 저장부를 구비할 수 있다. 실시간 처리부 및 임시 저장부를 포함한 구체적인 내용은 전술한 도 2의 실시예와 동일하므로 구체적인 내용은 생략한다.
사용자 이용 정보 전처리 수행부(320)는 사용자 이용 정보 저장부(310)와 연결된다.
사용자 이용 정보 전처리 수행부(320)는 사용자 이용 정보 저장부(310)로부터 사용자 이용 정보를 가져와 사용자 이용 정보를 그래프 데이터 베이스(330)에 저장하기에 적합하도록 전처리를 수행한다.
사용자 이용 정보 전처리 수행부(320)는 도 13에 도시한 복수의 사용자들(U1, U2, U3...Un)과 복수의 아이템들간 관계(relation)을 형성하고, 이를 기초로 복수의 사용자들(U1, U2, U3...Un)과 복수의 아이템들간 관계(relation)를 그래프로 변형한다.
그래프 데이터 베이스(330)는 사용자 이용 정보 전처리 수행부(320)에서 변형된 그래프 데이터, 즉 사용자들과 복수의 아이템들간 관계를 그래프로 표시한 데이터를 저장한다. 그래프 데이터 베이스(330)에 저장되는 그래프 데이터는 사용자들과 아이템들간의 관계를 노드(node), 관계(relation), 속성(property)로 표시할 수 있다.
이와 관련한 구체적인 내용은 후술한다.
그래프 데이터 베이스(330)의 예시는 전술한 실시예와 같다. 또한, 전술한 실시예와 마찬가지로 사용자 이용 정보 전처리 수행부(320)는 그래프 데이터 베이스(330)와 별개의 부재로 독립적으로 구성될 수 있고, 선택적 실시예로서, 그래프 데이터 베이스(330)와 일체로 사용자 이용 정보 전처리 수행부(320)가 형성될 수도 있다.
유사도 판단부(360)는 아이템들간의 유사도를 계산 및 판단한다. 유사도 판단부(360)는 오프라인 배치(offline batch) 처리 방식으로 아이템들간의 유사도를 계산 및 판단할 수 있다.
유사도 판단부(360)는 다양한 방식으로 아이템들간의 유사도를 계산 및 판단할 수 있는데, 예를들면 사용자의 암시적 선호도를 이용할 수 있다. 즉, 사용자의 구매, 방문 기타 암시적 선호도를 이용하여 아이템들간의 유사도를 계산 및 판단할 수 있다. 또한 유사도 판단부(360)는 주기적으로, 예를들면 1시간 간격으로 아이템들간 유사도를 오프라인 배치 처리 방식으로 계산할 수 있다. 이 때 사용자의 암시적 선호도를 가리키는 구매, 방문 정보등을 주기적으로 제공받아 아이템들간 유사도를 계산 및 판단할 수 있다.
이를 위하여 유사도 판단부(360)는 다양한 선택적 실시예를 가질 수 있는데, 전술한 도 3에 도시한 것과 같이 본 실시예의 유사도 판단부(360)도 선택적 실시예로서 유사도 판단부(360)가 사용자 이용 정보 저장부(310)와 연결되어 정보를 전달 받을 수도 있다. 구체적인 내용은 전술한 실시예와 동일하므로 생략한다.
유사도 판단부(360)의 아이템들간 유사도 계산 및 판단을 통하여 복수의 아이템들간에는 유사도가 결정되고 서로 유사도가 높은 아이템들은 도 17에 도시한 것과 같이 유사 아이템군으로 정할 수 있다. 도 17에 대한 설명은 후술할 실시예에서 더 구체적으로 하기로 한다.
연산부(350)는 그래프 데이터 베이스(330)에 저장되어 있는 그래프 데이터 중 특정의 원하는 데이터를 원하는 때에 불러온다. 또한 연산부(350)는 유사도 판단부(360)에서 계산 및 판단하여 얻은 아이템 유사도 정보를 불러온다.
그리고, 이를 연산하여 가공 단계를 수행한다. 특히, 연산부(350)는 그래프 데이터 베이스(330)에 저장된 데이터들을 연산하여 실시간으로 다양한 작업을 수행할 수 있고, 특정 사용자를 기준으로 사용자와 관계(relation)지어진 아이템들을 추출하고, 추출된 아이템들과 유사도가 높은 아이템들을 용이하게 추출하는 연산을 수행할 수 있다.
추천부(370)는 연산부(350)와 연결되어 연산부(350)에서 선정된 아이템들을 특정 사용자에에 추천할 수 있다.
추천부(370)는 다양한 방식으로 추천 작업을 진행할 수 있다. 추천부(370)의 추천 방식의 예는 전술한 실시예에서 설명한 바와 동일 또는 이와 유사하게 변형 가능하므로 구체적인 설명은 생략한다.
도 14는 도 13의 아이템 추천 시스템을 이용하여 아이템을 추천하는 방법을 순차적으로 설명한 개략적인 순서도이다.
도 14를 참조하면 본 실시예의 아이템 추천 방법은 사용자 이용 정보 획득 단계(P1), 전처리 단계(P2), 저장 단계(P3), 연산 단계(P5) 및 추천 단계(P6)을 포함한다.
사용자 이용 정보 획득 단계(P1)는 전술한 것과 같이 도 13의 아이템 추천 시스템(300)의 사용자 이용 정보 저장부(310)에서 진행한다. 즉, 사용자 이용 정보 저장부(310)의 사용자 이용 정보 제1 저장부(301) 및 사용자 이용 정보 제2 저장부(302)를 이용하여 사용자의 정보, 예를들면 사용자의 구매 정보, 장바구니 정보 또는 방문 정보를 획득한다.
예를들면 하기와 같은 표 3에 표시된 형태로 사용자 이용 정보 저장부(310)는 사용자의 이용 정보들을 저장할 수 있다.
I(1) I(2) I(3) I(4) I(5)
U1 구매 방문 구매
U2 방문 구매 구매
U3 구매 방문 구매
상기 표 3의 U1, U2, U3 는 웹사이트에 접속하는 각각 상이한 사용자를 가리킨다. 상기 표 1의 I(1), I(2), I(3), I(4), I(5)는 각각 웹사이트에서 제공하는 상이한 아이템들을 가리킨다.
즉, 표 3을 구체적으로 설명하면 아래와 같다.
사용자(U1)은 아이템(I(1)) 및 아이템(I(3))을 구매하고, 아이템(I(2))에 대하여는 방문을 하였다. 사용자(U2)은 아이템(I(2)) 및 아이템(I(4))을 구매하고, 아이템(I(1))에 대하여 방문하였다. 사용자(U3)은 아이템(I(3)) 및 아이템(I(5))을 구매하고, 아이템(I(4))에 대하여 방문하였다.
또한, 선택적 실시예로서 사용자 이용 정보 저장부(310)가 도 2의 선택적 실시예의 구조를 적용할 경우 임시 저장부에 상기의 정보를 저장할 수 있다.
상기의 표 3에는 예시적으로 3명의 사용자 및 5개의 아이템을 개시하였다. 또한, 2가지 종류의 사용자 이용 정보, 즉 구매 및 방문 정보를 개시하였다. 이는 설명의 편의를 위한 것으로서 사용자 이용 정보 획득 단계(P1)에서 복수의 사용자 및 복수의 아이템에 대한 정보를 획득 및 저장할 수 있음은 물론이다. 또한, 사용자의 이용 정보로서 구매 및 방문 외에 장바구니 정보 또는 보관함 정보, wish list 정보 등 기타 정보를 이용할 수 있음은 물론이다.
또한, 기타 사용자 이용 정보 저장과 관련된 내용은 전술한 실시예에서 설명한 바와 같다.
전처리 단계(P2)에서는 사용자 이용 정보 획득 단계(P1)에서 획득 및 저장한 단계를 사용자 이용 정보 전처리 수행부(320)를 이용하여 사용자들과 아이템들간의 관계를 형성하고 그래프로 변형한다. 즉 후술할 저장 단계(P3)에 적합하도록 정보 전처리를 수행한다.
도 12는 전처리 단계(P2)를 통하여 변화된 그래프이다.
설명의 편의를 위하여 도 16은 상기 표 3의 정보를 그대로 이용하여 전처리한 그래프 데이터를 보여준다.
도 16을 참조하면 그래프 데이터는 복수의 노드(node)를 포함하고, 복수의 노드들간에는 관계(relation)가 형성된다. 복수의 노드들은 각각 속성(property)을 갖는데, 도 16에서는 각 노드들은 사용자들(U1, U2, U3) 및 아이템(I(1), I(2), I(3), I(4), I(5))을 속성으로 갖는다. 또한 관계(relation)들은 구매(p) 및 방문(v)을 속성으로 갖는다.
도 16에는 관계(relation)가 단방향으로만 표시되어 있다. 그러나, 이는 하나의 예시로서 각 노드들간에 양방향 관계(relation)가 형성될 수 있음은 물론이다.
도 16을 참조하면 상기 표 3에 기재된 데이터가 모두 표시되어 있다. 즉, 사용자(U1)가 아이템(I(1)) 및 아이템(I(3))을 구매하고, 아이템(I(2))에 대하여는 방문을 한 정보, 사용자(U2)가 아이템(I(2)) 및 아이템(I(4))을 구매하고, 아이템(I(1))에 대하여 방문한 정보, 사용자(U3)가 아이템(I(3)) 및 아이템(I(5))을 구매하고, 아이템(I(4))에 대하여 방문한 정보가 하나의 그래프 데이터로 표시된다.
즉, 전처리 단계(P2)에서는 사용자 이용 정보 전처리 수행부(320)를 이용하여 표 3에 개시된 정보를 처리하여 표 3에 대응하는 그래프 데이터를 생성한다.
그래프 데이터를 통하여 각 사용자(U1, U2, U3)들과 각 아이템(I(1), I(2), I(3), I(4), I(5))들간의 정보를 용이하게 알 수 있다. 또한, 각 사용자(U1, U2, U3)들과 각 아이템(I(1), I(2), I(3), I(4), I(5))들간의 관계(relation)에 대한 정보를 통하여 각 사용자(U1, U2, U3)들간의 관계를 알 수 있다.
저장 단계(P3)에서는 이러한 사용자 이용 정보 전처리 수행부(320)를 이용하여 형성된 그래프 데이터를 그래프 데이터 베이스(330)에 저장한다. 전술한 실시예에서 설명한 바와 같이 사용자 이용 정보 전처리 수행부(320)와 그래프 데이터 베이스(330)는 별개의 독립된 부재일 수 있고, 다른 선택적 실시예로서 하나의 일체화된 형태일 수도 있다.
아이템 유사도 계산 단계(P4)에서는 아이템들간의 유사도를 계산 및 판단한다. 아이템 유사도 계산 단계(P4)에서는 다양한 방법으로 아이템들간의 유사도를 계산한다. 즉, 전술한 대로 오프라인 배치(offline batch) 처리 방식으로 아이템들간의 유사도를 계산 및 판단할 수 있다.
또한, 사용자의 암시적 선호도를 이용할 수 있다. 즉, 사용자의 구매, 방문 기타 암시적 선호도를 이용하여 아이템들간의 유사도를 계산 및 판단할 수 있다. 또한 유사도 판단부(360)는 주기적으로, 예를들면 1시간 간격으로 아이템들간 유사도를 오프라인 배치 처리 방식으로 계산할 수 있다. 이 때 사용자의 암시적 선호도를 가리키는 구매, 방문 정보등을 주기적으로 제공받아 아이템들간 유사도를 계산 및 판단할 수 있다.
이를 위하여 전술한 것과 마찬가지로 선택적 실시예로서 유사도 판단부(360)가 사용자 이용 정보 저장부(310)와 연결되어 정보를 전달 받을 수도 있다.
아이템 유사도 계산 단계(P4)를 통하여 도 17에 도시한 것과 같이 유사도가 높은 아이템별로 그룹을 선정할 수 있다.
도 17을 참조하면 A그룹 내에 포함된 아이템들(I(1), I(3), I(4), I(7), I(10), I(13)...)은서로 유사도가 높은 아이템들이고, B그룹 내에 포함된 아이템들(I(2), I(5), I(6), I(15), I(19), I(20)...)은 서로 유사도가 높은 아이템들이다.
유사도 계산 단계(P4)에서 계산된 아이템 유사도 및 이를 통하여 얻은 유사도가 높은 아이템별로 선정된 그룹은 소정의 저장소에 저장할 수 있다. 예를들면 도 1에 도시한 유사도 판단부(360)내에 저장할 수 있고, 도시하지 않은 별도의 저장소, 특히 임시 저장소에 저장할 수 있다.
또 다른 예로서, 도 2에 도시한 실시예에서 설명한 대로 임시 저장부(MQ)에 이러한 정보를 저장할 수 있고, 또한 임시 저장부(MQ)에 저장한 아이템 유사도 정보를 전처리 단계(P2)를 수행하여 전술한 그래프 데이터에 포함시킨 후 그래프 데이터로 저장 단계(P3)에서 저장하는 것도 가능하다.
연산 단계(P5)에서는 저장 단계(P3) 및 아이템 유사도 계산 단계(P4)를 통하여 획득한 정보를 이용하여 연산을 수행한다. 특히, 연산 단계(P5)에서는 저장 단계(P3)에서 저장된 그래프 데이터를 연산하여 실시간으로 다양한 작업을 수행할 수 있고, 특정 사용자를 기준으로 사용자와 관계(relation)지어진 아이템들을 추출하고, 추출된 아이템들로부터 연관 사용자 및 연관 아이템들을 용이하게 선정하는 연산을 수행할 수 있다.
연산 단계(P5)는 다양한 형태의 선택적 실시예들을 가질 수 있는데, 도 15a 및 도 15b는 도 14의 단계(P5)의 선택적 실시예들을 각각 설명하는 순서도들이다.
먼저, 도 15a를 참조하면 연산 단계(P5)는 특정 사용자와 관계를 갖는 아이템을 파악하는 단계(P51), 상기 P51단계에서 파악한 아이템과 유사도가 높은 아이템들을 선정하는 단계(P52), 상기 P52단계에서 선정한 아이템과 관계를 갖는 사용자들 중 상기 특정 사용자를 제외한 사용자들을 선정하는 단계(P53), 상기 P53단계에서 선정한 사용자들과 관계를 갖는 아이템들을 파악하는 단계(P54) 및 상기 P54단계에서 파악한 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정하는 단계(P55)를 포함한다.
사용자와 관계를 갖는 아이템을 선정하는 단계(P51)는 특정 사용자와 관계를 갖는 아이템을 파악하는 것으로서, 도 16을 참조하면 특정 사용자, 예를들면 사용자(U1)과 관계를 갖는 아이템들을 파악한다. 즉 사용자(U1)와 구매(p)의 관계를 갖는 아이템(I(1)) 및 아이템(I(3))을 파악하고, 사용자(U1)과 방문(v)의 관계를 갖는 아이템(I(2))을 파악한다.
상기 P51단계에서 파악한 아이템과 유사도가 높은 아이템들을 선정하는 단계(P52)에서는, 상기 아이템들, 즉 아이템(I(1)), 아이템(I(2)) 및 아이템(I(3))과 유사도가 높은 아이템들을 파악한다. 도 17을 참조하면 아이템(I(1)) 또는 아이템(I(3))과 유사도가 높은 아이템들은 아이템들(I(4), I(7), I(10), I(13)...)이고, 아이템(I(2))와 유사도가 높은 아이템들은 아이템들(I(5), I(6), I(15), I(19), I(20)...)이다.
즉, 최종적으로 아이템들(I(4), I(7), I(10), I(13)...) 또는 아이템들(I(5), I(6), I(15), I(19), I(20)...)을 선정한다.
상기 P52단계에서 선정한 아이템과 관계를 갖는 사용자들 중 상기 특정 사용자를 제외한 사용자들을 선정하는 단계(P53)에서는, 상기 P52단계에서 선정된 아이템들, 즉 아이템(I(1)) 또는 아이템(I(3))과 유사도가 높은 아이템들, 예를들면 아이템 I(4) 또는 아이템(I(5))과 관계를 갖는 사용자들 중 사용자(U1)을 제외한 사용자들을 선정한다. 먼저, 아이템(I(4))과 관계를 갖는 사용자들은 사용자(U2) 및 사용자(U3)이다. 그리고, 아이템(I(5))과 관계를 갖는 사용자는 사용자(U3)이다. 그리고, 이러한 사용자들 중 사용자(U1)을 제외한다. 그러므로 최종적으로 사용자(U2) 및 사용자(U3)가 선정된다.
전술한 연산부(350)의 연관 사용자 선정부(351)는 이러한 사용자(U2) 및 사용자(U3) 선정 작업을 수행할 수 있다. 즉, 특정 사용자(U1)과 관계를 갖는 아이템들과 관계를 갖는 아이템과 유사한 아이템들과 관계를 갖는 타 사용자(본 실시예에서 연관 사용자라고 지칭)를 선정하는 작업을 수행할 수 있다.
상기 P53단계에서 선정한 사용자들, 즉 연관 사용자들과 관계를 갖는 아이템들을 파악하는 단계(P54)에서는 상기 선정된 사용자들, 즉 사용자(U2) 및 사용자(U3)들과 관계를 갖는 아이템들을 파악한다. 도 16을 참조하면 사용자(U2)는 아이템(I(1)), 아이템(I(2)) 및 아이템(I(4))와 관계를 갖고, 사용자(U3)는 아이템(I(3)), 아이템(I(4)) 및 아이템(I(5))와 관계를 갖는다. 즉, 단계(P54)에서 파악한 아이템들은 아이템(I(1)), 아이템(I(2)), 아이템(I(3)), 아이템(I(4)) 및 아이템(I(5))이다.
상기 P54단계에서 파악한 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정하는 단계(P55)에서는 상기 단계(P54)에서 파악한 아이템들(I(1), I(2), I(3), I(4), I(5)) 중 사용자(U1)와 관계를 갖지 않는 아이템을 선정한다. 즉 아이템들(I(1), I(2), I(3), I(4), I(5)) 중 사용자(U1)와 관계를 갖는 아이템들(I(1), I(2), I(3))를 제외한 아이템(I(4), I(5))을 선정한다. 전술한 연산부(350)의 연관 아이템 선정부(352)는 이러한 아이템 선정 작업을 수행한다. 즉, 연관 사용자와 관계를 갖는 아이템 중 상기 특정 사용자와 관계를 갖지 않는 아이템(본 실시예에서 연관 아이템이라고 지칭)을 선정한다.
추천 단계(P6)에서는 연산 단계(P5)를 통하여 선정된 아이템들을 사용자에게 추천하는 작업을 진행한다. 즉, 사용자(U1)에게 사용자(U1)에게 아이템(I(4), I(5))을 추천할 수 있다.
추천 단계(P6)는 다양한 방식으로 추천할 수 있는데, 전술한 실시예와 마찬가지인 바, 구체적인 내용은 생략한다.
특정 사용자로서 사용자(U1)을 설명한 것은 설명의 편의를 위한 것으로서 다른 사용자들 중 어느 하나에 대하여 추천 작업을 수행할 수 있음은 물론이다.
연산 단계(P5)의 다양한 형태의 선택적 실시예 중 다른 실시예를 설명하기로 한다.
도 15b를 참조하면 연산 단계(P5')는 특정 사용자와 관계를 갖는 아이템을 파악하는 단계(P51'), 상기 P51'단계에서 파악한 아이템과 관계를 갖는 사용자들 중 단계 P51'의 특정 사용자를 제외한 사용자를 선정하는 단계(P52'), 상기 P52'에서 선정된 사용자들과 관계를 갖는 아이템을 파악하는 단계(P53'), 상기 P53'에서 파악한 아이템과 유사도가 높은 아이템을 선정하는 단계(P54') 및 상기 P54'단계에서파악한 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정하는 단계(P55')를 포함한다.
사용자와 관계를 갖는 아이템을 선정하는 단계(P51')는 특정 사용자와 관계를 갖는 아이템을 파악하는 것으로서, 도 16을 참조하면 특정 사용자, 예를들면 사용자(U1)과 관계를 갖는 아이템들을 파악한다. 즉 사용자(U1)와 구매(p)의 관계를 갖는 아이템(I(1)) 및 아이템(I(3))을 파악하고, 사용자(U1)과 방문(v)의 관계를 갖는 아이템(I(2))을 파악한다.
상기 P51'단계에서 파악한 아이템과 관계를 갖는 사용자들 중 단계 P51'의 특정 사용자를 제외한 사용자를 선정하는 단계(P52')에서는 상기 P51' 단계에서 파악된 아이템들, 즉, 아이템(I(1)), 아이템(I(2)) 및 아이템(I(3))과 관계를 갖는 사용자들을 파악한다. 즉, 아이템(I(1))과 관계를 갖는 사용자들인 사용자(U1) 및 사용자(U2)를 파악하고, 아이템(I(2))과 관계를 갖는 사용자들인 사용자(U1) 및 사용자(U2)를 파악하고, 아이템(I(3))과 관계를 갖는 사용자들인 사용자(U1) 및 사용자(U3)를 파악한다. 이 중 특정 사용자인 사용자(U1)를 제외한 사용자들, 즉 사용자(U2) 및 사용자(U3)를 최종적으로 선정한다.
전술한 연산부(350)의 연관 사용자 선정부(351)는 이러한 사용자(U2) 및 사용자(U3) 선정 작업을 수행할 수 있다. 즉, 특정 사용자(U1)과 관계를 갖는 아이템들과 관계를 갖는 타 사용자(본 실시예에서 연관 사용자라고 지칭)를 선정하는 작업을 수행할 수 있다.
상기 P52'에서 선정된 사용자들과 관계를 갖는 아이템을 파악하는 단계(P53')에서는, 사용자(U2) 및 사용자(U3)가 각각 관계를 갖는 아이템들을 파악한다.
먼저, 사용자(U2)와 관계를 갖는 아이템들을 파악하기로 한다. 도 16을 참조하면 사용자(U2)와 구매(p)의 관계를 갖는 아이템(I(2)) 및 아이템(I(4))을 파악하고, 사용자(U2)와 방문(v)의 관계를 갖는 아이템(I(1))을 파악하고, 사용자(U3)와 구매(p)의 관계를 갖는 아이템(I(3)), 아이템(I(5)) 및 방문(v)의 관계를 갖는 아이템(I(4))을 파악한다.
상기 P53'에서 파악한 아이템과 유사도가 높은 아이템을 선정하는 단계(P54')에서는 상기 파악한 아이템들, 즉 아이템(I(1)), 아이템(I(2)), 아이템(I(3)), 아이템(I(4)) 및 아이템(I(5))와 유사도가 높은 아이템들을 선정한다.
도 17을 참조하면 아이템(I(1)), 아이템(I(3)) 또는 아이템(I(4))과 유사도가 높은 아이템들은 아이템들(I(7), I(10), I(13)...)이고, 아이템(I(2)) 또는 아이템(I(5))과 유사도가 높은 아이템들은 아이템들(I(7), I(10), I(13)...)이다.
상기 P54'단계에서 파악한 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정하는 단계(P55') 에서는 상기 아이템 들 중 사용자(U1)과 관계를 갖지 않는 아이템을 선정한다. 그러므로 최종적으로, 아이템들(I(7), I(10), I(13)...) 및 아이템들(I(7), I(10), I(13)...)을 선정한다. 전술한 연산부(350)의 연관 아이템 선정부(352)는 이러한 아이템 선정 작업을 수행한다. 즉, 연관 사용자와 관계를 갖는 아이템과 유사한 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템(본 실시예에서 연관 아이템이라고 지칭)을 선정한다.
추천 단계(P6)에서는 연산 단계(P5)를 통하여 선정된 아이템들을 사용자에게 추천하는 작업을 진행한다. 즉, 사용자(U1)에게 아이템들(I(7), I(10), I(13)...) 및 아이템들(I(7), I(10), I(13)...)을 추천할 수 있다.
추천 단계(P6)는 다양한 방식으로 추천할 수 있는데, 전술한 실시예와 마찬가지인 바, 구체적인 내용은 생략한다.
특정 사용자로서 사용자(U1)을 설명한 것은 설명의 편의를 위한 것으로서 다른 사용자들 중 어느 하나에 대하여 추천 작업을 수행할 수 있음은 물론이다.
본 실시예의 아이템 추천 시스템(300) 및 이를 이용한 추천 방법은 전술한 실시예들과 마찬가지로 사용자 이용 정보 저장부(310)를 통하여 사용자 이용 정보를 용이하게 저장할 수 있고, 선택적 실시예로서, 실시간으로 처리한 정보 및 첫 방문자임을 표시하여 저장할 수 있다.
즉, 연산부(350)를 통한 가공 단계에서 위와 같이 용이한 방법으로 파악된 사용자들과 아이템들간의 관계를 이용하여 연산 작업을 진행하여 다양한 작업을 수행한다. 즉, 그래프 데이터 형태로 저장된 데이터들을 모두 연산하는 것이 아니고, 필요한 사용자 또는 필요한 아이템에 관련된 관계(relation)를 포함하는 정보만 불러와 이에 대한 연산만을 수행하여 작업을 수행한다.
이를 통하여 실시간으로 신속한 연산이 가능하므로 원하는 때에 최신의 정보를 통한 연산, 예를들면 사용자와 아이템들 각각의 관계 정보 선별 작업을 용이하게 진행할 수 있다.
그리고, 아이템들간 유사도를 판단하여 아이템에 기반한 추천 작업을 진행하므로 추천 작업의 속도를 용이하게 증가할 수 있다. 이와 함께 특정 사용자와 관계를 갖는 아이템들과 관계를 갖는 타 사용자들, 즉 연관 사용자를 선정하고, 연관 사용자와 관계를 갖는 아이템들 중 특정 사용자와 관계를 갖지 않는 아이템들, 즉 연관 아이템들을 선정하여 추천 작업을 병행하여 진행할 수 있으므로 실시간으로 다양한 형태의 효과적인 추천 작업을 진행할 수 있다. 즉, 추천 작업을 진행할 사용자들에 대한 정보 및 이와 연관된 사용자들에 대한 정보만을 그래프 데이터 베이스에서 불러와 빠른 시간에 연산이 가능하므로 언제든지 실시간으로 원하는 추천 작업을 용이하게 진행할 수 있다.
이와 같이 본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 당해 기술 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다.
본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
실시예에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 실시 예의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, "필수적인", "중요하게" 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
실시예의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 실시 예에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 실시 예에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 실시 예들이 한정되는 것은 아니다. 실시 예에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 실시 예를 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 실시 예의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
100, 200, 300: 아이템 추천 시스템
110, 110' 210, 310: 사용자 이용 정보 저장부
101, 101' 201, 301: 사용자 이용 정보 제1 저장부
102, 102' 202, 302: 사용자 이용 정보 제2 저장부
120, 220, 320: 사용자 이용 정보 전처리 수행부
130, 230, 330: 그래프 데이터 베이스
150, 250, 350: 연산부
MQ: 임시 저장부
SR: 실시간 처리부

Claims (30)

  1. 웹사이트에 접속하는 사용자의 복수의 정보를 저장하는 사용자 이용 정보 저장부;
    상기 사용자 이용 정보 저장부에 저장된 정보를 전처리하여 그래프 데이터로 변환하는 사용자 이용 정보 전처리 수행부;
    상기 사용자 이용 정보 전처리 수행부에서 전처리 수행되어 변환된 그래프 데이터를 저장하는 그래프 데이터 베이스;
    상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 연산부; 및
    상기 연산부에서 선정한 상기 아이템을 상기 사용자에게 하나 이상의 방식으로 추천하는 추천부를 포함하는 아이템 추천 시스템.
  2. 제1 항에 있어서,
    상기 아이템들간의 유사도를 판단하는 유사도 판단부를 더 포함하고,
    상기 연산부는 상기 유사도 판단부로부터 상기 아이템들간의 유사도를 이용하여 상기 특정 아이템을 선정하는 아이템 추천 시스템.
  3. 제2 항에 있어서,
    상기 유사도 판단부는 오프라인 배치 처리 방식으로 아이템들간 유사도를 계산하는 아이템 추천 시스템.
  4. 제1 항에 있어서,
    상기 연산부는 상기 사용자와 관련을 갖는 연관 사용자를 선정하는 연관 사용자 선정부 및 상기 연관 사용자와 관련을 갖는 연관 아이템을 선정하는 연관 아이템 선정부를 포함하는 아이템 추천 시스템.
  5. 제4 항에 있어서,
    상기 연관 사용자 선정부가 선정한 상기 연관 사용자는 상기 사용자중 일 사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들과 관계를 갖는 타 사용자인 것을 특징으로 하고,
    상기 연관 아이템 선정부가 선정한 상기 연관 아이템은 상기 타사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들 중 상기 일 사용자와 관계를 갖지 않는 아이템들인 것을 특징으로 하는 아이템 추천 시스템.
  6. 제1 항에 있어서,
    상기 사용자 이용 정보 저장부는 서로 상이한 정보를 저장하는 사용자 이용 정보 제1 저장부 및 사용자 이용 정보 제2 저장부를 구비하는 아이템 추천 시스템.
  7. 제6 항에 있어서,
    상기 사용자 이용 정보 제1 저장부는 사용자의 기본 정보 및 사용자의 활동과 관련된 하나 이상의 정보를 저장하는 아이템 추천 시스템.
  8. 제7 항에 있어서,
    상기 사용자의 활동과 관련된 하나 이상의 정보는 구매 정보 또는 장바구니 정보를 포함하는 아이템 추천 시스템.
  9. 제6 항에 있어서,
    상기 사용자 이용 정보 제2 저장부는 사용자의 방문 정보를 저장하는 아이템 추천 시스템.
  10. 제9 항에 있어서,
    상기 사용자 방문 정보를 실시간으로 업데이트하는 실시간 처리부를 더 포함하는 아이템 추천 시스템.
  11. 제10 항에 있어서,
    상기 실시간 처리부는 상기 사용자의 방문이 첫 방문인지를 판단할 수 있도록 처리하는 것을 특징으로 하는 아이템 추천 시스템.
  12. 제6 항에 있어서,
    상기 사용자 이용 정보 저장부는 임시 저장부를 더 포함하고,
    상기 임시 저장부는 상기 사용자 이용 정보 제1 저장부 및 상기 사용자 이용 정보 제2 저장부에 저장된 정보를 전달받아 임시로 저장하고 상기 사용자 이용 정보 전처리 수행부에 전달하는 아이템 추천 시스템.
  13. 제12 항에 있어서,
    상기 임시 저장부는 메시지큐 형태로 정보를 임시로 저장하는 아이템 추천 시스템.
  14. 제1 항에 있어서,
    상기 사용자 이용 정보 전처리 수행부는 상기 사용자 및 상기 웹사이트에서 제공하는 복수의 아이템들간의 관계(relation)를 형성하고, 이를 기초로 그래프 데이터로 변환하는 것을 특징으로 하는 아이템 추천 시스템.
  15. 웹사이트에 접속하는 사용자의 복수의 이용 정보를 획득하는 단계;
    상기 사용자의 복수의 이용 정보를 전처리하여 그래프 데이터로 변환하는 단계;
    상기 그래프 데이터를 그래프 데이터 베이스에 저장하는 단계;
    상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 단계; 및
    상기 선정한 아이템을 상기 사용자에게 하나 이상의 방법으로 추천하는 단계를 포함하는 아이템 추천 방법.
  16. 제15 항에 있어서,
    상기 아이템들간의 유사도를 계산하는 단계를 더 포함하고,
    상기 특정 아이템을 선정하는 단계는 상기 아이템들간의 유사도를 이용하여 상기 특정 아이템을 선정하는 아이템 추천 방법.
  17. 제16 항에 있어서,
    상기 특정 아이템을 선정하는 단계는,
    상기 사용자중 일 사용자와 관계를 갖는 아이템을 파악하는 단계; 및
    상기 파악한 아이템과 유사도가 높은 아이템을 선정하는 단계를 포함하는 아이템 추천 방법.
  18. 제16 항에 있어서,
    상기 아이템들간의 유사도를 계산하는 단계는 오프라인 배치 처리 방식으로 아이템들간 유사도를 계산하는 아이템 추천 방법.
  19. 제16 항에 있어서,
    상기 아이템들간의 유사도를 계산하는 단계는 상기 사용자 이용 정보 중 사용자의 암시적 선호도를 전달받고, 상기 암시적 선호도를 이용하여 아이템들간 유사도를 계산하는 아이템 추천 방법.
  20. 제19 항에 있어서,
    상기 암시적 선호도는 상기 사용자의 구매 정보 또는 방문 정보를 포함하는 아이템 추천 방법.
  21. 제15 항에 있어서,
    상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 단계는,
    상기 사용자와 관련을 갖는 연관 사용자를 선정하는 단계 및 상기 연관 사용자와 관련을 갖는 연관 아이템을 선정하는 단계를 포함하는 아이템 추천 방법.
  22. 제21 항에 있어서,
    상기 사용자와 관련을 갖는 연관 사용자를 선정하는 단계는 상기 사용자중 일 사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들과 관계를 갖는 타 사용자를 선정하는 것을 특징으로 하고,
    상기 연관 아이템을 선정하는 단계는 상기 타사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들 중 상기 일 사용자와 관계를 갖지 않는 아이템들을 선정하는 것을 특징으로 하는 아이템 추천 방법.
  23. 제15 항에 있어서,
    상기 사용자 이용 정보를 획득하는 단계는 사용자의 기본 정보 및 사용자의 활동과 관련된 하나 이상의 정보를 저장한 후 이용하는 단계를 포함하는 아이템 추천 방법.
  24. 제23 항에 있어서,
    상기 사용자의 활동과 관련된 하나 이상의 정보는 구매 정보 또는 장바구니 정보를 포함하는 아이템 추천 방법.
  25. 제15 항에 있어서,
    상기 사용자 이용 정보를 획득하는 단계는 사용자의 방문 정보를 저장한 후 이용하는 단계를 포함하는 아이템 추천 방법.
  26. 제25 항에 있어서,
    상기 사용자 이용 정보를 획득하는 단계는 상기 사용자 방문 정보를 실시간으로 업데이트하는 단계를 더 포함하는 아이템 추천 방법.
  27. 제26 항에 있어서,
    상기 사용자 방문 정보를 실시간으로 업데이트 하는 단계는 상기 사용자의 방문이 첫 방문인지를 판단할 수 있도록 처리하는 단계를 더 포함하는 아이템 추천 방법.
  28. 제15 항에 있어서,
    상기 웹사이트에 접속하는 사용자의 복수의 이용 정보를 획득한 후에 상기 이용 정보를 임시 저장부에 저장하는 단계를 더 포함하고,
    상기 사용자의 복수의 이용 정보를 전처리하여 그래프 데이터로 형성하는 단계는 상기 임시 저장부에 저장된 정보를 이용하는 것을 특징으로 하는 아이템 추천 방법.
  29. 제28 항에 있어서,
    상기 웹사이트에 접속하는 사용자의 복수의 이용 정보를 획득한 후에 상기 이용 정보를 임시 저장부에 저장하는 단계는 상기 사용자의 복수의 이용 정보를 취득한 후에 메시지큐 형태로 정보를 임시로 저장하는 단계를 포함하는 아이템 추천 방법.
  30. 제15 항에 있어서,
    상기 사용자의 복수의 이용 정보를 전처리하여 그래프 데이터로 형성하는 단계는, 상기 사용자들과 상기 웹사이트에서 제공하는 복수의 아이템들간의 관계(relation)을 형성하고, 이를 기초로 그래프 데이터로 변환하는 단계를 포함하는 아이템 추천 방법.
KR1020140048208A 2014-04-22 2014-04-22 아이템 추천 시스템 및 아이템 추천 방법 KR20150121945A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140048208A KR20150121945A (ko) 2014-04-22 2014-04-22 아이템 추천 시스템 및 아이템 추천 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140048208A KR20150121945A (ko) 2014-04-22 2014-04-22 아이템 추천 시스템 및 아이템 추천 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020160040454A Division KR101745604B1 (ko) 2016-04-01 2016-04-01 아이템 추천 시스템 및 아이템 추천 방법

Publications (1)

Publication Number Publication Date
KR20150121945A true KR20150121945A (ko) 2015-10-30

Family

ID=54430914

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140048208A KR20150121945A (ko) 2014-04-22 2014-04-22 아이템 추천 시스템 및 아이템 추천 방법

Country Status (1)

Country Link
KR (1) KR20150121945A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200088131A (ko) * 2019-01-14 2020-07-22 카페24 주식회사 그래프 데이터베이스를 이용한 상품 추천 방법 및 장치
KR102264540B1 (ko) 2020-07-20 2021-06-15 한화생명보험(주) 관계 분석 네트워크를 이용한 판매시스템 및 그 방법
KR102270332B1 (ko) * 2020-08-18 2021-06-28 한화생명보험(주) 영업기회정보 추천 서버 및 그 방법
WO2022005140A1 (ko) * 2020-06-30 2022-01-06 카페24 주식회사 통합 고객 식별자 생성을 기반으로 하는 고객 빅데이터 구축 방법, 장치 및 시스템
KR20220001617A (ko) * 2020-06-30 2022-01-06 카페24 주식회사 고객 빅데이터를 활용한 상품 추천 방법, 장치 및 시스템
WO2022025465A1 (ko) * 2020-07-27 2022-02-03 주식회사 엔터프라이즈블록체인 구매자 가치를 예측하는 영업기회정보 판매 서버 및 그 방법

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200088131A (ko) * 2019-01-14 2020-07-22 카페24 주식회사 그래프 데이터베이스를 이용한 상품 추천 방법 및 장치
WO2022005140A1 (ko) * 2020-06-30 2022-01-06 카페24 주식회사 통합 고객 식별자 생성을 기반으로 하는 고객 빅데이터 구축 방법, 장치 및 시스템
KR20220001617A (ko) * 2020-06-30 2022-01-06 카페24 주식회사 고객 빅데이터를 활용한 상품 추천 방법, 장치 및 시스템
KR102264540B1 (ko) 2020-07-20 2021-06-15 한화생명보험(주) 관계 분석 네트워크를 이용한 판매시스템 및 그 방법
WO2022019527A1 (ko) * 2020-07-20 2022-01-27 주식회사 엔터프라이즈블록체인 관계 분석 네트워크를 이용한 판매시스템 및 그 방법
WO2022025465A1 (ko) * 2020-07-27 2022-02-03 주식회사 엔터프라이즈블록체인 구매자 가치를 예측하는 영업기회정보 판매 서버 및 그 방법
KR102270332B1 (ko) * 2020-08-18 2021-06-28 한화생명보험(주) 영업기회정보 추천 서버 및 그 방법
WO2022039446A1 (ko) * 2020-08-18 2022-02-24 주식회사 엔터프라이즈블록체인 영업기회정보 추천 서버 및 그 방법

Similar Documents

Publication Publication Date Title
CN109559208B (zh) 一种信息推荐方法、服务器及计算机可读介质
US9569499B2 (en) Method and apparatus for recommending content on the internet by evaluating users having similar preference tendencies
KR20150121945A (ko) 아이템 추천 시스템 및 아이템 추천 방법
JP6293642B2 (ja) 推薦エンジンに基づく汎用グラフ、ルール及び空間構造
US9727906B1 (en) Generating item clusters based on aggregated search history data
KR20180118597A (ko) 네트워크 액세스 행동을 식별하는 방법 및 장치, 서버와 저장 매체
CN106407349A (zh) 一种产品推荐方法及装置
EP3217296A1 (en) Data query method and apparatus
KR102307517B1 (ko) 네트워크 기반 상품 추천 방법 및 장치
JP2021517315A (ja) データ処理方法、装置、電子機器、プログラム、及び記憶媒体
CN114936301A (zh) 智能家居建材数据的管理方法、装置、设备及存储介质
CN108512674B (zh) 用于输出信息的方法、装置和设备
CN103353865A (zh) 一种基于位置的易货电子交易商品推荐方法
KR20190081671A (ko) 온라인 쇼핑몰 통합 관리 시스템에서의 유사상품을 검색하는 방법 및 그 서버
US20210272178A1 (en) Determining item relevancy
CN110851737A (zh) 推荐方法、装置、电子设备及计算机存储介质
Zhang et al. CRUC: Cold-start recommendations using collaborative filtering in internet of things
KR101745604B1 (ko) 아이템 추천 시스템 및 아이템 추천 방법
CN110827101B (zh) 一种店铺推荐的方法和装置
CN110827044A (zh) 提取用户兴趣模式的方法和装置
CN112036988B (zh) 标签生成方法和装置、存储介质及电子设备
CN110992109B (zh) 基于关联规则的房地产客户分析方法、装置及存储介质
Vijayarani et al. An efficient algorithm for mining frequent items in data streams
CN112966098A (zh) 一种产品及其配套用品关系可视化方法和系统
KR20150121944A (ko) 사용자 이용 정보 가공 시스템 및 이를 이용한 사용자 이용 정보 가공 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
A107 Divisional application of patent