KR101745604B1 - Item recommend system and method for recommending item - Google Patents
Item recommend system and method for recommending item Download PDFInfo
- Publication number
- KR101745604B1 KR101745604B1 KR1020160040454A KR20160040454A KR101745604B1 KR 101745604 B1 KR101745604 B1 KR 101745604B1 KR 1020160040454 A KR1020160040454 A KR 1020160040454A KR 20160040454 A KR20160040454 A KR 20160040454A KR 101745604 B1 KR101745604 B1 KR 101745604B1
- Authority
- KR
- South Korea
- Prior art keywords
- user
- information
- item
- items
- unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0255—Targeted advertisements based on user history
-
- G06F17/30144—
-
- G06F17/30522—
-
- G06F17/30554—
-
- G06F17/30651—
-
- G06F17/30699—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0278—Product appraisal
Landscapes
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Economics (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명의 일 실시예는 웹사이트에 접속하는 사용자의 복수의 정보를 저장하는 사용자 이용 정보 저장부, 상기 사용자 이용 정보 저장부에 저장된 정보를 전처리하여 그래프 데이터로 변환하는 사용자 이용 정보 전처리 수행부, 상기 사용자 이용 정보 전처리 수행부에서 전처리 수행되어 변환된 그래프 데이터를 저장하는 그래프 데이터 베이스, 상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 연산부 및 상기 연산부에서 선정한 상기 아이템을 상기 사용자에게 하나 이상의 방식으로 추천하는 추천부를 포함하는 아이템 추천 시스템을 개시한다. In one embodiment of the present invention, a user information storage unit for storing a plurality of information of a user accessing a web site, a user utilization information preprocessing unit for preprocessing the information stored in the user information storage unit and converting the information into graph data, A graph database for storing the graph data converted by the preprocessing unit in the user-used information preprocessing unit, a graph database for computing specific data among the items stored in the graph database, And an recommendation unit that recommends the item selected by the operation unit to the user in one or more ways.
Description
본 발명의 실시예들은 아이템 추천 시스템 및 아이템 추천 방법에 관한 것이다.Embodiments of the present invention relate to an item recommendation system and an item recommendation method.
전자 상거래의 급성장으로 소비자들은 오프라인 매장뿐만 아니라 온라인 매장을 동일한 수준에서 판단하거나, 경우에 따라서는 온라인 매장을 더 선호하는 경우도 많이 발생하고 있다. Due to the rapid growth of e - commerce, consumers often judge online stores at the same level as well as in - store stores, and in some cases they prefer online shops.
또한, 이러한 전자 상거래 기술의 발전으로 인하여, 단순 온라인 쇼핑몰 외에 온라인 경매 사이트, 오픈 마켓 또는 소셜 커머스 기타 다양한 형태의 구매 사이트가 온라인상에서 구현되고 있는 것이 현실이다. In addition, due to the development of such electronic commerce technology, online auction sites, open markets, social commerce, and various other types of purchase sites are being implemented on-line in addition to simple online shopping malls.
이러한 전자 상거래를 이용한 온라인 상에서의 구매 방법은 사용자가 직접 오프라인 매장을 방문하지 않아도 언제 어디에서도 쉽게 접근하여 상품, 티켓 기타 아이템들에 대한 접근, 방문 및 구매등을 용이하게 진행할 수 있으므로 시간이 갈수록 증가하고 그 방법도 확장되는 추세이다.The online purchase method using the e-commerce can easily access the goods, the tickets and other items, and can easily visit and purchase without any need of the user to visit the in-store, so that the time is getting longer And the method is also expanding.
다만, 전자 상거래를 이용한 온라인 상에서의 구매는 사용자가 직접 눈으로 실물을 보고 비교할 수 없고, 사용자가 해당 사이트를 방문하여 화면상에 제공된 정보만을 접하므로 사용자가 다양한 정보를 용이하게 제공받기는 용이하지 않다. 특히, 특정 사이트에 자주 방문하는 경우가 아닌 경우 또는 전자 상거래를 통한 구매에 익숙하지 않은 사용자의 경우엔 더욱 그러하다.However, online purchases using e-commerce can not be viewed by the user directly by eyes, and since the user visits the site and contacts only the information provided on the screen, it is easy for the user to easily receive various information not. This is especially true for users who are not frequent visitors to a particular site or who are not familiar with e-commerce purchases.
특히, 최근에는 온라인 상에서 구매할 수 있는 매장, 예를들면 해당 웹사이트 마다 이용하는 사용자의 수가 기하 급수적으로 증가하고, 해당 웹사이트에서 취급하는 아이템들도 많아져 사용자에게 특정 정보를 제공하기는 용이하지 않다.In particular, in recent years, the number of stores that can be purchased online, for example, the number of users who use the websites, increases exponentially, and the number of items handled by the websites increases, making it difficult to provide specific information to users .
그러므로 사용자들에게 적절한 아이템들을 추천해 줄 수 있는 시스템 및 그 방법의 필요성이 커지고 있다.Therefore, there is a growing need for a system and method for recommending appropriate items to users.
그러나, 즉, 웹사이트를 방문하는 사용자들과 웹사이트에서 제공하는 아이템들에 대한 정보를 원활하게 취급하고 가공하는 것이 용이하지 않고, 특히 사용자 및 아이템의 수의 증가를 통하여 효율적으로 사용자에게 추천 작업을 진행하는데 한계가 있다.However, it is not easy to handle and process the information about the users who visit the website and the items provided by the website, and in particular, by increasing the number of users and items, There is a limit to progress.
본 발명의 실시예들은 웹사이트를 방문하는 사용자들에게 아이템들에 대한 추천 작업을 용이하게 진행할 수 있는 아이템 추천 시스템 및 이를 이용한 아이템 추천 방법을 제공한다.Embodiments of the present invention provide an item recommendation system and an item recommendation method using the item recommendation system, which can facilitate recommendation work on items to users visiting a web site.
본 발명의 일 실시예는 웹사이트에 접속하는 사용자의 복수의 정보를 저장하는 사용자 이용 정보 저장부, 상기 사용자 이용 정보 저장부에 저장된 정보를 전처리하여 그래프 데이터로 변환하는 사용자 이용 정보 전처리 수행부, 상기 사용자 이용 정보 전처리 수행부에서 전처리 수행되어 변환된 그래프 데이터를 저장하는 그래프 데이터 베이스, 상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 연산부 및 상기 연산부에서 선정한 상기 아이템을 상기 사용자에게 하나 이상의 방식으로 추천하는 추천부를 포함하는 아이템 추천 시스템을 개시한다. In one embodiment of the present invention, a user information storage unit for storing a plurality of information of a user accessing a web site, a user utilization information preprocessing unit for preprocessing the information stored in the user information storage unit and converting the information into graph data, A graph database for storing the graph data converted by the preprocessing unit in the user-used information preprocessing unit, a graph database for computing specific data among the items stored in the graph database, And an recommendation unit that recommends the item selected by the operation unit to the user in one or more ways.
본 실시예에 있어서 상기 아이템들간의 유사도를 판단하는 유사도 판단부를 더 포함하고, 상기 연산부는 상기 유사도 판단부로부터 상기 아이템들간의 유사도를 이용하여 상기 특정 아이템을 선정할 수 있다.The similarity determination unit may further include a similarity determination unit that determines a similarity between the items in the embodiment, and the operation unit can select the particular item using the similarity between the items from the similarity determination unit.
본 실시예에 있어서 상기 유사도 판단부는 오프라인 배치 처리 방식으로 아이템들간 유사도를 계산할 수 있다.In the present embodiment, the similarity determination unit may calculate the similarity between items using an offline arrangement processing method.
본 실시예에 있어서 상기 연산부는 상기 사용자와 관련을 갖는 연관 사용자를 선정하는 연관 사용자 선정부 및 상기 연관 사용자와 관련을 갖는 연관 아이템을 선정하는 연관 아이템 선정부를 포함할 수 있다.In the present embodiment, the operation unit may include an associated user selecting unit for selecting an associated user related to the user, and an associated item selecting unit for selecting an associated item related to the related user.
본 실시예에 있어서 상기 연관 사용자 선정부가 선정한 상기 연관 사용자는 상기 사용자중 일 사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들과 관계를 갖는 타 사용자인 것을 특징으로 하고, 상기 연관 아이템 선정부가 선정한 상기 연관 아이템은 상기 타사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들 중 상기 일 사용자와 관계를 갖지 않는 아이템들인 것을 특징으로 할 수 있다.In the present embodiment, the related user selected by the associated user selecting unit is another user having a relationship with one of the users or items related to similar items, The associated item may be an item having a relationship with the other user or items similar to the one having no relation with the one user.
본 실시예에 있어서 상기 사용자 이용 정보 저장부는 서로 상이한 정보를 저장하는 사용자 이용 정보 제1 저장부 및 사용자 이용 정보 제2 저장부를 구비할 수 있다.In the present embodiment, the user information storage unit may include a user information first storage unit and a user information second storage unit for storing different information.
본 실시예에 있어서 상기 사용자 이용 정보 제1 저장부는 사용자의 기본 정보 및 사용자의 활동과 관련된 하나 이상의 정보를 저장할 수 있다.In the present embodiment, the user use information first storage unit may store basic information of a user and one or more information related to a user's activity.
본 실시예에 있어서 상기 사용자의 활동과 관련된 하나 이상의 정보는 구매 정보 또는 장바구니 정보를 포함할 수 있다.In this embodiment, one or more pieces of information related to the activity of the user may include purchase information or shopping cart information.
본 실시예에 있어서 상기 사용자 이용 정보 제2 저장부는 사용자의 방문 정보를 저장할 수 있다.In the present embodiment, the user-use-information second storage unit may store user's visit information.
본 실시예에 있어서 상기 사용자 방문 정보를 실시간으로 업데이트하는 실시간 처리부를 더 포함할 수 있다.In this embodiment, a real-time processing unit for updating the user visit information in real time may be further included.
본 실시예에 있어서 상기 실시간 처리부는 상기 사용자의 방문이 첫 방문인지를 판단할 수 있도록 처리할 수 있다.In the present embodiment, the real-time processing unit may process the visit to determine whether the visit of the user is the first visit.
본 실시예에 있어서 상기 사용자 이용 정보 저장부는 임시 저장부를 더 포함하고, 상기 임시 저장부는 상기 사용자 이용 정보 제1 저장부 및 상기 사용자 이용 정보 제2 저장부에 저장된 정보를 전달받아 임시로 저장하고 상기 사용자 이용 정보 전처리 수행부에 전달할 수 있다.In the present embodiment, the user-use-information storage unit may further include a temporary storage unit, and the temporary storage unit may receive the information stored in the first user-information storage unit and the second user- To the user use information preprocessing unit.
본 실시예에 있어서 상기 임시 저장부는 메시지큐 형태로 정보를 임시로 저장할 수 있다.In the present exemplary embodiment, the temporary storage unit may temporarily store information in the form of a message queue.
본 실시예에 있어서 상기 사용자 이용 정보 전처리 수행부는 상기 사용자 및 상기 웹사이트에서 제공하는 복수의 아이템들간의 관계(relation)를 형성하고, 이를 기초로 그래프 데이터로 변환할 수 있다.In the present embodiment, the user-utilization-information preprocessing unit forms a relation between the user and a plurality of items provided in the website, and can convert the relation into graph data on the basis of the relation.
본 발명의 다른 실시예는 웹사이트에 접속하는 사용자의 복수의 이용 정보를 획득하는 단계, 상기 사용자의 복수의 이용 정보를 전처리하여 그래프 데이터로 변환하는 단계, 상기 그래프 데이터를 그래프 데이터 베이스에 저장하는 단계, 상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 단계 및 상기 선정한 아이템을 상기 사용자에게 하나 이상의 방법으로 추천하는 단계를 포함하는 아이템 추천 방법을 개시한다. According to another embodiment of the present invention, there is provided a method of browsing a web site, comprising: acquiring a plurality of usage information of a user accessing a web site; converting a plurality of usage information of the user into preprocessed graph data; Selecting one or more specific items from items provided in the website by calculating specific data from the data stored in the graph database and recommending the selected item to the user in one or more ways; And starts an item recommendation method including the item.
본 실시예에 있어서 에 있어서 상기 아이템들간의 유사도를 계산하는 단계를 더 포함하고, 상기 특정 아이템을 선정하는 단계는 상기 아이템들간의 유사도를 이용하여 상기 특정 아이템을 선정할 수 있다.The method may further include calculating a degree of similarity between the items in the embodiment, and the step of selecting the specific item may select the specific item using the degree of similarity between the items.
본 실시예에 있어서 상기 특정 아이템을 선정하는 단계는, 상기 사용자중 일 사용자와 관계를 갖는 아이템을 파악하는 단계 및 상기 파악한 아이템과 유사도가 높은 아이템을 선정하는 단계를 포함할 수 있다.In the present embodiment, the step of selecting the specific item may include a step of identifying an item having a relationship with a user of the user, and a step of selecting an item having a similarity to the identified item.
본 실시예에 있어서 상기 아이템들간의 유사도를 계산하는 단계는 오프라인 배치 처리 방식으로 아이템들간 유사도를 계산할 수 있다.In this embodiment, the step of calculating the degree of similarity between the items may calculate the degree of similarity between the items by the offline placement processing method.
본 실시예에 있어서 상기 아이템들간의 유사도를 계산하는 단계는 상기 사용자 이용 정보 중 사용자의 암시적 선호도를 전달받고, 상기 암시적 선호도를 이용하여 아이템들간 유사도를 계산할 수 있다.In the present exemplary embodiment, the step of calculating the similarity between the items may receive the user's implicit preference of the user-use information, and may calculate the similarity between the items using the implicit preference.
본 실시예에 있어서 상기 암시적 선호도는 상기 사용자의 구매 정보 또는 방문 정보를 포함할 수 있다.In the present embodiment, the implicit preference may include purchase information or visit information of the user.
본 실시예에 있어서 상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 단계는, 상기 사용자와 관련을 갖는 연관 사용자를 선정하는 단계 및 상기 연관 사용자와 관련을 갖는 연관 아이템을 선정하는 단계를 포함할 수 있다.In the present exemplary embodiment, the step of selecting one or more specific items among the items provided in the website by searching specific data among the data stored in the graph database may include selecting an associated user related to the user And associating items associated with the associated user.
본 실시예에 있어서 상기 사용자와 관련을 갖는 연관 사용자를 선정하는 단계는 상기 사용자중 일 사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들과 관계를 갖는 타 사용자를 선정하는 것을 특징으로 하고, 상기 연관 아이템을 선정하는 단계는 상기 타사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들 중 상기 일 사용자와 관계를 갖지 않는 아이템들을 선정하는 것을 특징으로 할 수 있다.In the present exemplary embodiment, the step of selecting an associated user related to the user may include selecting an item having a relation with one of the users or another user having a relationship with similar items, And the step of selecting an item may include selecting items having no relationship with the one user among the items having a relationship with the other user or similar items.
본 실시예에 있어서 상기 사용자 이용 정보를 획득하는 단계는 사용자의 기본 정보 및 사용자의 활동과 관련된 하나 이상의 정보를 저장한 후 이용하는 단계를 포함할 수 있다.In the present embodiment, the step of acquiring the user use information may include storing and using one or more pieces of information related to the user's basic information and the user's activities.
본 실시예에 있어서 상기 사용자의 활동과 관련된 하나 이상의 정보는 구매 정보 또는 장바구니 정보를 포함할 수 있다.In this embodiment, one or more pieces of information related to the activity of the user may include purchase information or shopping cart information.
본 실시예에 있어서 상기 사용자 이용 정보를 획득하는 단계는 사용자의 방문 정보를 저장한 후 이용하는 단계를 포함할 수 있다.In the present embodiment, the step of acquiring the user use information may include a step of storing and using the visit information of the user.
본 실시예에 있어서 상기 사용자 이용 정보를 획득하는 단계는 상기 사용자 방문 정보를 실시간으로 업데이트하는 단계를 더 포함할 수 있다.In the present embodiment, the step of acquiring the user use information may further include updating the user visit information in real time.
본 실시예에 있어서 상기 사용자 방문 정보를 실시간으로 업데이트 하는 단계는 상기 사용자의 방문이 첫 방문인지를 판단할 수 있도록 처리하는 단계를 더 포함할 수 있다.In the present embodiment, the step of updating the user visit information in real time may further include a step of determining whether the visit of the user is a first visit.
본 실시예에 있어서 상기 웹사이트에 접속하는 사용자의 복수의 이용 정보를 획득한 후에 상기 이용 정보를 임시 저장부에 저장하는 단계를 더 포함하고, 상기 사용자의 복수의 이용 정보를 전처리하여 그래프 데이터로 형성하는 단계는 상기 임시 저장부에 저장된 정보를 이용하는 것을 특징으로 할 수 있다.The method may further include storing the usage information in a temporary storage unit after acquiring a plurality of usage information of a user connected to the web site in the present embodiment, And the forming step uses information stored in the temporary storage unit.
본 실시예에 있어서 상기 웹사이트에 접속하는 사용자의 복수의 이용 정보를 획득한 후에 상기 이용 정보를 임시 저장부에 저장하는 단계는 상기 사용자의 복수의 이용 정보를 취득한 후에 메시지큐 형태로 정보를 임시로 저장하는 단계를 포함할 수 있다.The step of storing the usage information in the temporary storage unit after acquiring a plurality of usage information of the user connected to the website may include acquiring a plurality of usage information of the user and temporarily storing the information in the form of a message queue As shown in FIG.
본 실시예에 있어서 상기 사용자의 복수의 이용 정보를 전처리하여 그래프 데이터로 형성하는 단계는, 상기 사용자들과 상기 웹사이트에서 제공하는 복수의 아이템들간의 관계(relation)을 형성하고, 이를 기초로 그래프 데이터로 변환하는 단계를 포함할 수 있다.In the present embodiment, the step of pre-processing a plurality of utilization information of the user and forming the user information as graph data comprises forming a relation between the users and a plurality of items provided by the website, And converting the data into data.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다. Other aspects, features, and advantages will become apparent from the following drawings, claims, and detailed description of the invention.
본 실시예에 관한 아이템 추천 시스템 및 이를 이용한 아이템 추천 방법은 웹사이트를 방문하는 사용자들에게 아이템들에 대한 추천 작업을 용이하게 진행할 수 있다.The item recommendation system and the item recommendation method using the item recommendation system according to the present embodiment can facilitate the recommendation work on the items to the users visiting the website.
도 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의 아이템 유사도 계산 단계를 설명하기 위한 도면이다.BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a schematic diagram for illustrating an item recommendation system and its operation according to an embodiment of the present invention. FIG.
FIG. 2 is a view showing an alternative embodiment of the user-used information storage unit of the item recommendation system of FIG. 1. FIG.
Fig. 3 is a diagram showing a modification of the item recommendation system of Fig. 1. Fig.
4 is a schematic flowchart sequentially illustrating a method of recommending an item using the item recommendation system of FIG.
5 is a flowchart illustrating an alternative embodiment of step S5 of FIG.
6 is a flowchart illustrating the modification of Fig.
FIG. 7 is a graph converted through the preprocessing step of FIG.
FIG. 8 is a diagram for explaining item similarity calculation of FIG. 4; FIG.
FIG. 9 is a view for schematically illustrating an item recommendation system and its operation according to another embodiment of the present invention.
FIG. 10 is a schematic flowchart sequentially illustrating a method of recommending an item using the item recommendation system of FIG. 9. FIG.
11 is a flowchart for explaining an alternative embodiment of step C5 of Fig.
12 is a graph converted through the preprocessing step of FIG.
13 is a diagram for schematically illustrating an item recommendation system and its operation according to another embodiment of the present invention.
14 is a schematic flowchart sequentially illustrating a method of recommending an item using the item recommendation system of FIG.
Figs. 15A and 15B are flowcharts illustrating respective alternative embodiments of step P5 of Fig. 14, respectively.
16 is a graph converted through the preprocessing step of FIG.
Fig. 17 is a diagram for explaining the item similarity degree calculating step of Fig. 14; Fig.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. BRIEF DESCRIPTION OF THE DRAWINGS The present invention is capable of various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. The effects and features of the present invention and methods of achieving them will be apparent with reference to the embodiments described in detail below with reference to the drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, wherein like reference numerals refer to like or corresponding components throughout the drawings, and a duplicate description thereof will be omitted .
이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. In the following embodiments, the terms first, second, and the like are used for the purpose of distinguishing one element from another element, not the limitative meaning.
이하의 실시예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. In the following examples, the singular forms "a", "an" and "the" include plural referents unless the context clearly dictates otherwise.
이하의 실시예에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. In the following embodiments, terms such as inclusive or possessive are intended to mean that a feature, or element, described in the specification is present, and does not preclude the possibility that one or more other features or elements may be added.
도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다. In the drawings, components may be exaggerated or reduced in size for convenience of explanation. For example, the size and thickness of each component shown in the drawings are arbitrarily shown for convenience of explanation, and thus the present invention is not necessarily limited to those shown in the drawings.
이하의 실시예에서, x축, y축 및 z축은 직교 좌표계 상의 세 축으로 한정되지 않고, 이를 포함하는 넓은 의미로 해석될 수 있다. 예를 들어, x축, y축 및 z축은 서로 직교할 수도 있지만, 서로 직교하지 않는 서로 다른 방향을 지칭할 수도 있다. In the following embodiments, the x-axis, the y-axis, and the z-axis are not limited to three axes on the orthogonal coordinate system, and can be interpreted in a broad sense including the three axes. For example, the x-axis, y-axis, and z-axis may be orthogonal to each other, but may refer to different directions that are not orthogonal to each other.
어떤 실시예가 달리 구현 가능한 경우에 특정한 공정 순서는 설명되는 순서와 다르게 수행될 수도 있다. 예를 들어, 연속하여 설명되는 두 공정이 실질적으로 동시에 수행될 수도 있고, 설명되는 순서와 반대의 순서로 진행될 수 있다. If certain embodiments are otherwise feasible, the particular process sequence may be performed differently from the sequence described. For example, two processes that are described in succession may be performed substantially concurrently, and may be performed in the reverse order of the order described.
도 1은 본 발명의 일 실시예에 관한 아이템 추천 시스템 및 이의 동작을 개략적으로 설명하기 위하여 도시한 도면이다.BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a schematic diagram for illustrating an item recommendation system and its operation according to an embodiment of the present invention. FIG.
도 1을 참조하면 복수의 사용자들(U1, U2, U3...Un)은 네트워크(NW)를 통하여 웹사이트(WS)에 접속한다. 아이템 추천 시스템(100)은 웹사이트(WS)와 연결되어 사용자와 관련된 복수의 정보를 전달받을 수 있다. 예를들면 웹사이트(WS)는 소셜 커머스 사이트, 온라인 쇼핑몰, 오픈 마켓 기타 다양한 전자 상거래를 포함하는 사이트일 수 있다. 네트워크(NW)는 복수의 사용자(U1, U2, U3...Un)과 웹사이트(WS)를 연결할 수 있는 다양한 형태일 수 있다.Referring to FIG. 1, a plurality of users U1, U2, U3,... Un accesses a web site WS via a network NW. The
도 1에는 아이템 추천 시스템(100)이 웹사이트(WS)와 별개로 도시되어 있으나, 이는 하나의 실시예이다. 즉, 선택적 실시예로서 아이템 추천 시스템(100)은 웹사이트(WS)와 일체로 형성되어 웹사이트(WS)내에 아이템 추천 시스템(100)이 구비될 수 있다. 또 다른 선택적 실시예로서, 아이템 추천 시스템(100) 및 웹사이트(WS)가 일부 기능을 겸할 수 있도록 형성될 수 있음은 물론이다.In FIG. 1, the
도 1을 참조하면 아이템 추천 시스템(100)은 크게, 사용자 이용 정보 저장부(110), 사용자 이용 정보 전처리 수행부(120), 그래프 데이터 베이스(130), 연산부(150), 유사도 판단부(160) 및 추천부(170)를 포함한다.Referring to FIG. 1, the
사용자 이용 정보 저장부(110)는 사용자 이용 정보 제1 저장부(101) 및 사용자 이용 정보 제2 저장부(102)를 구비한다. 사용자 이용 정보 제1 저장부(101) 및 사용자 이용 정보 제2 저장부(102)는 각각 서로 상이한 사용자 이용 관련 정보를 저장한다. 이에 대한 구체적인 내용은 후술한다.The user use
사용자 이용 정보 전처리 수행부(120)는 사용자 이용 정보 저장부(110)에 1차로 저장된 사용자 이용 정보를 그래프 데이터 베이스(130)에 저장하기 적합한 형태로 변형하기 위하여 전처리 단계를 진행한다. 보다 자세한 내용은 후술한다.The user use information
그래프 데이터 베이스(130)는 사용자 이용 정보 전처리 수행부(120)를 통하여 적절히 변형된 정보, 즉 그래프 형태로 변형된 정보를 저장한다. The
아이템 유사도 판단부(160)는 아이템들간의 유사도를 계산하여 판단한다.The item
연산부(150)는 필요한 때에 그래프 데이터 베이스(130)에 저장된 사용자 이용 정보 및 아이템 유사도 판단부(160)에서 판단된 아이템 유사도를 이용하여 연산하는 단계를 수행한다. The
본 실시예의 아이템 추천 시스템(100)에 대하여 좀 더 구체적으로 설명하기로 한다. The
사용자 이용 정보 저장부(110)의 사용자 이용 정보 제1 저장부(101)는 사용자의 기본 정보 및 사용자의 활동과 관련된 하나 이상의 정보를 저장한다. 사용자 이용 정보 제1 저장부(101)에 저장되는 상기의 사용자의 기본 정보는 사용자를 식별하는 정보일 수 있다. 예를들면 사용자의 기본 정보는 사용자의 이름, 사용자의 ID, nickname, password 또는 e-mail 계정일 수 있다. 사용자 이용 정보 제1 저장부(101)에 저장되는 상기의 사용자의 활동과 관련된 하나 이상의 정보는 사용자의 실시간적인 활동 정보일 수 있다. 예를들면 사용자의 활동과 관련된 하나 이상의 정보는 구매 정보 또는 장바구니 정보일 수 있다. 즉, 사용자의 활동과 관련된 하나 이상의 정보는 사용자가 웹사이트(WS)를 통하여 구매한 아이템, 사용자가 웹사이트(WS)를 통하여 장바구니에 저장한 아이템일 수 있다. 물론, 상기의 예는 본 실시예를 설명하기 위한 하나의 예시로서 사용자의 실시간 적인 다양한 활동 정보를 저장하는 것이 가능하다.The user use information
사용자 이용 정보 저장부(110)의 사용자 이용 정보 제2 저장부(102)는 사용자의 방문 정보를 저장할 수 있다. 즉, 사용자들이 네트워크(NW)를 통하여 웹사이트(WS)에 방문 시 방문 정보가 사용자 이용 정보 제2 저장부(102)에 저장될 수 있다.The user use information
사용자 이용 정보 저장부(110)는 다양한 형태를 가질 수 있다. The user use
도 2는 도 1의 아이템 추천 시스템(100)의 사용자 이용 정보 저장부(110)의 선택적인 실시예를 도시한 도면이다. 설명의 편의를 위하여 전술한 실시예에서 설명한 것과 상이한 것을 중심으로 설명하기로 한다.FIG. 2 is a diagram illustrating an alternative embodiment of the user-used
도 2를 참조하면 본 발명의 선택적 실시예의 사용자 이용 정보 저장부(110')는 사용자 이용 정보 제1 저장부(101'), 사용자 이용 정보 제2 저장부(102'), 실시간 처리부(SR) 및 임시 저장부(MQ)를 구비한다.Referring to FIG. 2, the user use information storage unit 110 'of the alternative embodiment of the present invention includes a user usage information first storage unit 101', a user usage information second storage unit 102 ', a real time processing unit (SR) And a temporary storage unit (MQ).
사용자 이용 정보 제1 저장부(101')는 사용자의 기본 정보 및 사용자의 활동과 관련된 하나 이상의 정보를 저장한다. 사용자 이용 정보 제1 저장부(101')는 이러한 정보를 용이하게 저장하도록 RDBMS(Relational Data Base Management System)을 포함할 수 있다. 또한, 선택적인 실시예로서 사용자 이용 정보 제1 저장부(101') 는 mongo DB를 포함하여 대용량의 데이터를 용이하게 처리할 수 있다.The user use information first storage unit 101 'stores basic information of a user and one or more information related to a user's activity. The user use information first storage unit 101 'may include a Relational Data Base Management System (RDBMS) to easily store such information. In addition, as an alternative embodiment, the user use information first storage unit 101 'can easily process a large amount of data including the mongo DB.
사용자 이용 정보 제2 저장부(102')는 사용자의 방문 정보를 저장할 수 있다. 예를들면 사용자 이용 정보 제2 저장부(102')는 웹로그(weblog)형태로 사용자의 방문 정보를 저장한다.The user use information second storage unit 102 'may store the visit information of the user. For example, the user use information second storage unit 102 'stores visit information of a user in the form of a weblog.
실시간 처리부(SR)는 사용자 이용 정보 제2 저장부(102')에 저장된 사용자의 방문 정보를 실시간으로 반영하여 업데이트한다. 또한, 실시간 처리부(SR)는 도 2에 도시된 것과 같은 복수의 사용자들(U1, U2, U3...Un)중 기존 방문 기록이 없는 사용자인지를 판단하여 방문 기록이 없는 사용자의 경우, 즉 첫방문자인 경우 첫 방문자임을 알 수 있도록 사용자의 방문 정보를 처리한 후 후술할 임시 저장부(MQ)에 저장한다. The real-time processing unit SR updates the visit information of the user stored in the user-used information second storage unit 102 'in real time. In addition, the real-time processing unit SR judges whether the user U1, U2, U3 ... Un has no existing visit record as shown in FIG. 2, In the case of the first visitor, the visiting information of the user is processed so as to know that it is the first visitor, and then stored in a temporary storage unit (MQ) to be described later.
임시 저장부(MQ)는 사용자 이용 정보 제1 저장부(101')에 저장된 정보, 즉 사용자의 기본 정보 및 사용자의 활동과 관련된 하나 이상의 정보를 전달받는다. 또한 임시 저장부(MQ)는 사용자 이용 정보 제2 저장부(102')에 저장된 사용자의 방문 정보를 실시간 처리부(SR)를 통하여 처리된 정보를 전달받는다. The temporary storage unit MQ receives information stored in the user-used information first storage unit 101 ', that is, one or more pieces of information related to the user's basic information and the user's activities. Also, the temporary storage unit (MQ) receives the information processed through the real-time processing unit (SR) of the visit information of the user stored in the second user storage unit 102 '.
임시 저장부(MQ)는 사용자의 정보들을 이용하여 사용자 이용 정보 전처리 수행부(120)에서 전처리를 수행하기 용이하도록 한다. 예를들면 임시 저장부(MQ)는 메시지큐 형태로서 사용자의 정보들을 임시로 저장할 수 있다.The temporary storage unit (MQ) makes it easy to perform preprocessing in the user-used
상기의 도 2에서 설명한 본 발명의 선택적 실시예로서의 사용자 이용 정보 저장부(110')는 본 발명의 아이템 추천 시스템(100)이 포함할 수 있는 다양한 예 중 하나이다. 즉, 도 2에 도시된 것과 일부 구성을 공유하는 구조 또는 도 2에 도시된 구성에 추가적으로 별도의 추가적인 구성을 더 포함하는 구조 기타 다양한 구조의 실시예를 포함할 수 있다.The user-used information storage unit 110 'as an optional embodiment of the present invention described above with reference to FIG. 2 is one of various examples that the
사용자 이용 정보 전처리 수행부(120)는 사용자 이용 정보 저장부(110)와 연결된다.The user-used
사용자 이용 정보 전처리 수행부(120)는 사용자 이용 정보 저장부(110)로부터 사용자 이용 정보를 가져와 사용자 이용 정보를 그래프 데이터 베이스(130)에 저장하기에 적합하도록 전처리를 수행한다. The user use information
사용자 이용 정보 전처리 수행부(120)는 도 1에 도시한 복수의 사용자들(U1, U2, U3...Un)과 복수의 아이템들간 관계(relation)을 형성하고, 이를 기초로 복수의 사용자들(U1, U2, U3...Un)과 복수의 아이템들간 관계(relation)를 그래프로 변형한다. The user use information
그래프 데이터 베이스(130)는 사용자 이용 정보 전처리 수행부(120)에서 변형된 그래프 데이터, 즉 사용자들과 복수의 아이템들간 관계를 그래프로 표시한 데이터를 저장한다. 그래프 데이터 베이스(130)에 저장되는 그래프 데이터는 사용자들과 아이템들간의 관계를 노드(node), 관계(relation), 속성(property)로 표시할 수 있다.The
이와 관련한 구체적인 내용은 후술할 도 7을 참조하면서 더 설명하기로 한다.The details of this will be further described with reference to FIG. 7 to be described later.
그래프 데이터 베이스(130)는 다양한 데이터 베이스를 이용할 수 있는데, 예를들면 자바 기반의 오픈형 DB인 Neo4J를 이용할 수 있다. The
또한, 사용자 이용 정보 전처리 수행부(120)는 도 1에 도시한 것과 같이 그래프 데이터 베이스(130)와 별개의 부재로 독립적으로 구성될 수 있다. 그러나, 본 실시예는 이에 한정되지 아니하고, 그래프 데이터 베이스(130)와 일체로 사용자 이용 정보 전처리 수행부(120)가 형성될 수도 있다.In addition, the user-used
유사도 판단부(160)는 아이템들간의 유사도를 계산 및 판단한다. 유사도 판단부(160)는 오프라인 배치(offline batch) 처리 방식으로 아이템들간의 유사도를 계산 및 판단할 수 있다.The
유사도 판단부(160)는 다양한 방식으로 아이템들간의 유사도를 계산 및 판단할 수 있는데, 예를들면 사용자의 암시적 선호도를 이용할 수 있다. 즉, 사용자의 구매, 방문 기타 암시적 선호도를 이용하여 아이템들간의 유사도를 계산 및 판단할 수 있다. 또한 유사도 판단부(160)는 주기적으로, 예를들면 1시간 간격으로 아이템들간 유사도를 오프라인 배치 처리 방식으로 계산할 수 있다. 이 때 사용자의 암시적 선호도를 가리키는 구매, 방문 정보등을 주기적으로 제공받아 아이템들간 유사도를 계산 및 판단할 수 있다.The
이를 위하여 유사도 판단부(160)는 다양한 선택적 실시예를 가질 수 있는데, 도 3에 도시한 것과 같이 유사도 판단부(160")가 사용자 이용 정보 저장부(110")와 연결되어 정보를 전달 받을 수 있다. 도 3은 도 1의 아이템 추천 시스템의 변형예를 도시한 도면이다.For this, the
도 3을 참조하면 아이템 추천 시스템(100")의 유사도 판단부(160")는 사용자 이용 정보 저장부(110")로부터 사용자 이용 정보, 즉 사용자의 구매 정보 및 사용자의 방문 정보등을 전달받을 수 있다. Referring to FIG. 3, the similarity determination unit 160 '' of the item recommendation system 100 '' receives user utilization information, that is, user purchase information and user's visit information from the user utilization information storage unit 110 ' have.
도 3의 아이템 추천 시스템(100")은 도 1과 마찬가지로 크게, 사용자 이용 정보 저장부(110"), 사용자 이용 정보 전처리 수행부(120"), 그래프 데이터 베이스(130"), 연산부(150"), 유사도 판단부(160") 및 추천부(170")를 포함한다. The
유사도 판단부(160")와 사용자 이용 정보 저장부(110")의 관계만을 제외하고는 도 1의 아이템 추천 시스템(100)과 동일하므로 나머지 부재들에 대한 구체적인 설명은 생략한다.Except for the relationship between the
유사도 판단부(160)의 아이템들간 유사도 계산 및 판단을 통하여 복수의 아이템들간에는 유사도가 결정되고 서로 유사도가 높은 아이템들은 도 8에 도시한 것과 같이 유사 아이템군으로 정할 수 있다. 도 8에 대한 설명은 후술할 실시예에서 더 구체적으로 하기로 한다.The degree of similarity between a plurality of items is determined through calculation and determination of similarities between items of the
*연산부(150)는 그래프 데이터 베이스(130)에 저장되어 있는 그래프 데이터 중 특정의 원하는 데이터를 원하는 때에 불러온다. 또한 연산부(150)는 유사도 판단부(160)에서 계산 및 판단하여 얻은 아이템 유사도 정보를 불러온다.* The
그리고, 이를 연산하여 가공 단계를 수행한다. 특히, 연산부(150)는 그래프 데이터 베이스(130)에 저장된 데이터들을 연산하여 실시간으로 다양한 작업을 수행할 수 있고, 특정 사용자를 기준으로 사용자와 관계(relation)지어진 아이템들을 추출하고, 추출된 아이템들과 유사도가 높은 아이템들을 용이하게 추출하는 연산을 수행할 수 있다.Then, this is calculated to perform the machining step. In particular, the
또한, 도시하지 않았으나, 선택적 실시예로서 유사도 판단부(160)는 사용자 이용 정보 전처리 수행부(120)와도 연결될 수 있다. 이를 통하여 유사도 판단부(160)에서 판단된 아이템 유사도에 대한 정보를 그래프 데이터로 변형시킬 수 있다. Also, although not shown, the
추천부(170)는 연산부(150)와 연결되어 연산부(150)에서 추출된 아이템들을 특정 사용자에게 추천할 수 있다. 즉, 특정 사용자와 구매, 방문등의 관계를 갖는 아이템들과 유사도가 높은 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템들에 대하여 추천을 수행할 수 있다. The
추천부(170)는 다양한 방식으로 추천 작업을 진행할 수 있다. 예를들면 추천부(170)는 상기 특정 사용자가 방문 시 웹사이트상에서 아이템이 표시되도록 팝업창을 형성하거나, 웹사이트의 화면상에 일부에 일시적 또는 지속적으로 아이템을 나타낼 수 있고, 이메일로 아이템들을 공지할 수도 있다. 그러나 본 실시예는 이에 한정되지 않고 다양한 방식으로 추천 과정을 진행하는 추천부(170)를 포함할 수 있음은 물론이다.The
도 4는 도 1의 아이템 추천 시스템을 이용하여 아이템을 추천하는 방법을 순차적으로 설명한 개략적인 순서도이다.4 is a schematic flowchart sequentially illustrating a method of recommending an item using the item recommendation system of FIG.
도 4를 참조하면 본 실시예의 아이템 추천 방법은 사용자 이용 정보 획득 단계(S1), 전처리 단계(S2), 저장 단계(S3), 아이템 유사도 계산 단계(S4), 연산 단계(S5) 및 추천 단계(S6)을 포함한다.Referring to FIG. 4, the item recommendation method of the present embodiment includes a step of acquiring user information (S1), a preprocessing step S2, a storing step S3, an item similarity calculating step S4, an operation step S5, S6).
사용자 이용 정보 획득 단계(S1)는 전술한 것과 같이 도 1의 아이템 추천 시스템(100)의 사용자 이용 정보 저장부(110)에서 진행한다. 즉, 사용자 이용 정보 저장부(110)의 사용자 이용 정보 제1 저장부(101) 및 사용자 이용 정보 제2 저장부(102)를 이용하여 사용자의 정보, 예를들면 사용자의 구매 정보, 장바구니 정보 또는 방문 정보를 획득한다.The user utilization information acquisition step S1 proceeds in the user utilization
예를들면 하기와 같은 표 1에 표시된 형태로 사용자 이용 정보 저장부(110)는 사용자의 이용 정보들을 저장할 수 있다.For example, in the form shown in Table 1 below, the user-use-
상기 표 1의 U1, U2, U3, U5는 웹사이트에 접속하는 각각 상이한 사용자를 가리킨다. 상기 표 1의 I(1), I(2), I(3), I(4)는 각각 웹사이트에서 제공하는 상이한 아이템들을 가리킨다.U1, U2, U3, and U5 in Table 1 refer to different users who access the Web site, respectively. I ( 1 ), I ( 2 ), I ( 3 ), and I ( 4 ) in Table 1 refer to the different items provided on the website, respectively.
즉, 표 1을 구체적으로 설명하면 아래와 같다. That is, Table 1 will be described in detail as follows.
사용자(U1)은 아이템(I(1))을 구매하고, 아이템(I(2))에 대하여는 방문을 하였다. 사용자(U2)은 아이템(I(2))을 구매하였다. 사용자(U3)은 아이템(I(4))에 대하여 방문하였다. 사용자(U5)은 아이템(I(3)) 및 아이템(I(4))에 대하여 구매하였다.The user U1 purchases the item I ( 1 ) and visits the item I ( 2 ). User U2 has purchased item I ( 2 ). The user U3 visited the item I ( 4 ). The user U5 has purchased items I ( 3 ) and I ( 4 ).
또한, 선택적 실시예로서 도시한 도 2의 사용자 이용 정보 저장부(110')를 적용할 경우 임시 저장부(MQ)에 상기의 정보를 저장할 수 있다.In addition, when the user-use-information storage unit 110 'shown in FIG. 2 is applied as an alternative embodiment, the information can be stored in the temporary storage unit MQ.
상기의 표 1에는 예시적으로 4명의 사용자 및 4개의 아이템을 개시하였다. 또한, 2가지 종류의 사용자 이용 정보, 즉 구매 및 방문 정보를 개시하였다. 이는 설명의 편의를 위한 것으로서 사용자 이용 정보 획득 단계(S1)에서 복수의 사용자 및 복수의 아이템에 대한 정보를 획득 및 저장할 수 있음은 물론이다. 또한, 사용자의 이용 정보로서 구매 및 방문 외에 장바구니 정보 또는 보관함 정보, wish list 정보 등 기타 정보를 이용할 수 있음은 물론이다.Table 1 above illustrates four users and four items by way of example. In addition, two kinds of user utilization information, namely purchase and visit information, are disclosed. It is needless to say that information for a plurality of users and a plurality of items can be acquired and stored in the user use information acquisition step S1 for convenience of explanation. It is also possible to use other information such as shopping cart information, storage box information, wish list information, and the like in addition to purchase and visit as user use information.
또한, 기타 사용자 이용 정보 저장과 관련된 내용은 전술한 실시예에서 설명한 바와 같다.The content related to storing other user-used information is as described in the above embodiments.
전처리 단계(S2)에서는 사용자 이용 정보 획득 단계(S1)에서 획득 및 저장한 단계를 사용자 이용 정보 전처리 수행부(120)를 이용하여 사용자들과 아이템들간의 관계를 형성하고 그래프로 변형한다. 즉 후술할 저장 단계(S3)에 적합하도록 정보 전처리를 수행한다.In the preprocessing step S2, the user-information-
도 7은 전처리 단계(S2)를 통하여 변화된 그래프이다.7 is a graph that is changed through the preprocessing step S2.
설명의 편의를 위하여 도 7은 상기 표 1의 정보를 그대로 이용하여 전처리한 그래프 데이터를 보여준다. For convenience of explanation, FIG. 7 shows graph data obtained by pre-processing using the information of Table 1 as it is.
도 7을 참조하면 그래프 데이터는 복수의 노드(node)를 포함하고, 복수의 노드들간에는 관계(relation)가 형성된다. 복수의 노드들은 각각 속성(property)을 갖는데, 도 7에서 각 노드들은 사용자들(U1, U2, U3, U5) 및 아이템(I(1), I(2), I(3), I(4))을 속성으로 갖는다. 또한 관계(relation)들은 구매(p) 및 방문(v)을 속성으로 갖는다. Referring to FIG. 7, the graph data includes a plurality of nodes, and a relation is formed between the plurality of nodes. Each node has properties U1, U2, U3, U5 and items I ( 1 ), I ( 2 ), I ( 3 ), I ( 4) )) As an attribute. Also, relations have attributes (p) and (v) as attributes.
도 7에는 관계(relation)가 단방향으로만 표시되어 있다. 그러나, 이는 하나의 예시로서 각 노드들간에 양방향 관계(relation)가 형성될 수 있음은 물론이다.In Fig. 7, the relationship is shown only in one direction. However, it goes without saying that a bi-directional relation may be formed between each node as an example.
도 7을 참조하면 상기 표 1에 기재된 데이터가 모두 표시되어 있다. 즉, 사용자(U1)가 아이템(I(1))을 구매하고, 아이템(I(2))에 대하여는 방문을 한 정보, 사용자(U2)가 아이템(I(2))에 대하여 구매한 정보, 사용자(U3)가 아이템(I(4))에 대하여 방문한 정보 및 사용자(U5)가 아이템(I(3)) 및 아이템(I(4))에 대하여 구매한 정보가 하나의 그래프 데이터로 표시된다.Referring to FIG. 7, all of the data shown in Table 1 are shown. That is, a user (U1) is purchased with respect to item (I (1)) purchased, and item to (I (2)) the item (I (2)) by the visit information, the user (U2) with respect to information, user (U3) the item (I (4)) visit information and the user (U5) with respect to item (I (3)) and the item (I (4)) the information is purchased is displayed as a graph the data with respect to the .
즉, 전처리 단계(S2)에서는 사용자 이용 정보 전처리 수행부(120)를 이용하여 표 1에 개시된 정보를 처리하여 표 1에 대응하는 그래프 데이터를 생성한다. That is, in the preprocessing step S2, the user utilization
그래프 데이터를 통하여 각 사용자(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)들간의 관계를 알 수 있다.The information between each user U1, U2, U3, U5 and each item I ( 1 ), I ( 2 ), I ( 3 ), I ( 4 ) can be easily known through the graph data. Information on the relation between each user U1, U2, U3 and U5 and each item I ( 1 ), I ( 2 ), I ( 3 ), I ( 4 ) The relationship between the users U1, U2, U3 and U5 can be known.
저장 단계(S3)에서는 이러한 사용자 이용 정보 전처리 수행부(120)를 이용하여 형성된 그래프 데이터를 그래프 데이터 베이스(130)에 저장한다. 전술한 실시예에서 설명한 바와 같이 사용자 이용 정보 전처리 수행부(120)와 그래프 데이터 베이스(130)는 별개의 독립된 부재일 수 있고, 다른 선택적 실시예로서 하나의 일체화된 형태일 수도 있다.In the storage step S3, the graph data formed using the user-used
아이템 유사도 계산 단계(S4)에서는 아이템들간의 유사도를 계산 및 판단한다. 아이템 유사도 계산 단계(S4)에서는 다양한 방법으로 아이템들간의 유사도를 계산한다. 즉, 전술한 대로 오프라인 배치(offline batch) 처리 방식으로 아이템들간의 유사도를 계산 및 판단할 수 있다.In the item similarity calculation step S4, the similarity between items is calculated and determined. In the item similarity calculation step S4, similarity between items is calculated by various methods. That is, as described above, the degree of similarity between items can be calculated and determined by an offline batch processing method.
또한, 사용자의 암시적 선호도를 이용할 수 있다. 즉, 사용자의 구매, 방문 기타 암시적 선호도를 이용하여 아이템들간의 유사도를 계산 및 판단할 수 있다. 또한 유사도 판단부(160)는 주기적으로, 예를들면 1시간 간격으로 아이템들간 유사도를 오프라인 배치 처리 방식으로 계산할 수 있다. 이 때 사용자의 암시적 선호도를 가리키는 구매, 방문 정보등을 주기적으로 제공받아 아이템들간 유사도를 계산 및 판단할 수 있다.In addition, the implicit preference of the user can be used. That is, the similarity degree between the items can be calculated and determined using the user's purchase, visit, or other implicit preferences. Also, the
이를 위하여 도 3에 도시한 것과 같이 유사도 판단부(160")가 사용자 이용 정보 저장부(110")와 연결되어 정보를 전달 받을 수 있다. 3, the
아이템 유사도 계산 단계(S4)를 통하여 도 8에 도시한 것과 같이 유사도가 높은 아이템별로 그룹을 선정할 수 있다.The item similarity calculation step S4 may be performed to select a group for each item having a high degree of similarity as shown in FIG.
도 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)...)은서로 유사도가 높은 아이템들이다.Referring to Figure 8 of the items contained in the group A (I (1), I ( 3), I (4), I (7), I (10), I (13) ...) the degree of similarity to eunseo Items I ( 2 ), I ( 5 ), I ( 6 ), I ( 15 ), I ( 19 ), I ( 20 ) Items.
유사도 계산 단계(S4)에서 계산된 아이템 유사도 및 이를 통하여 얻은 유사도가 높은 아이템별로 선정된 그룹은 소정의 저장소에 저장할 수 있다. 예를들면 도 1에 도시한 유사도 판단부(160)내에 저장할 수 있고, 도시하지 않은 별도의 저장소, 특히 임시 저장소에 저장할 수 있다. The group selected by the item similarity calculated in the similarity calculation step S4 and the similarity obtained through the similarity can be stored in a predetermined storage. For example, in the
또 다른 예로서, 도 2에 도시한 임시 저장부(MQ)에 저장할 수 있다. 이 경우, 선택적 실시예로서 임시 저장부(MQ)에 저장한 아이템 유사도 정보를 전처리 단계(S2)를 수행하여 전술한 그래프 데이터에 포함시킨 후 그래프 데이터로 저장 단계(S3)에서 저장하는 것도 가능하다.As another example, it can be stored in the temporary storage unit MQ shown in FIG. In this case, as an alternative embodiment, the item similarity information stored in the temporary storage unit MQ may be included in the above-described graph data by performing the preprocessing step S2 and stored in the graph data storage step S3 .
연산 단계(S5)에서는 저장 단계(S3) 및 아이템 유사도 계산 단계(S4)를 통하여 획득한 정보를 이용하여 연산을 수행한다. 특히, 연산 단계(S5)에서는 저장 단계(S3)에서 저장된 그래프 데이터를 연산하여 실시간으로 다양한 작업을 수행할 수 있고, 특정 사용자를 기준으로 사용자와 관계(relation)지어진 아이템들을 추출하고, 추출된 아이템들과 유사도가 높은 아이템들을 용이하게 추출하는 연산을 수행할 수 있다.In the calculation step S5, the calculation is performed using the information obtained through the storage step S3 and the item similarity calculation step S4. In particular, in the calculation step S5, the stored graph data is calculated in the storage step S3 to perform various operations in real time, and items related to the user are extracted based on a specific user, It is possible to easily perform an operation of extracting items having a high degree of similarity.
연산 단계(S5)는 다양한 형태를 가질 수 있는데, 도 5를 참조하면서 설명한다. 도 5는 도 4의 단계(S5)의 선택적 실시예를 설명하는 순서도이다.The calculation step S5 may take various forms, which will be described with reference to Fig. 5 is a flowchart illustrating an alternative embodiment of step S5 of FIG.
도 5를 참조하면 연산 단계(S5)는 사용자와 관계를 갖는 아이템을 파악하는 단계(S51) 및 S51단계에서 파악한 아이템과 유사도가 높은 아이템들을 파악하는 단계(S52)를 포함한다.Referring to FIG. 5, the operation step S5 includes a step S51 of recognizing an item having a relation with a user and a step S52 of identifying items having high similarity to the item obtained in the step S51.
사용자와 관계를 갖는 아이템을 파악하는 단계(S51)는 특정 사용자와 관계를 갖는 아이템을 파악하는 것으로서, 도 7을 참조하면 특정 사용자, 예를들면 사용자(U1)과 관계를 갖는 아이템들을 파악한다. 즉 사용자(U1)과 구매(p)의 관계를 갖는 아이템(I(1)) 및 사용자(U1)과 방문(v)의 관계를 갖는 아이템(I(2))를 파악한다. Step S51 of identifying an item having a relation with a user is to identify an item having a relation with a specific user, and referring to FIG. 7, it identifies items having a relation with a specific user, for example, the user U1. The item I ( 1 ) having the relationship between the user U1 and the purchase p and the item I ( 2 ) having the relationship between the user U1 and the visit v.
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)...)이다.In the step S52 of recognizing the items having high similarity to the items identified in the step S51, the items having the similarity with the items I ( 1 ) and the items having the similarity with the items I ( 2 ) . Referring to FIG. 8, items having similarity to items I ( 1 ) are items I ( 3 ), I ( 4 ), I ( 7 ), I ( 10 ), I ( 13 ) Items I ( 5 ), I ( 6 ), I ( 15 ), I ( 19 ), I ( 20 ) ...) are items having similarity to item I ( 2 ).
추천 단계(S6)에서는 연산 단계(S5)를 통하여 선별된 아이템들을 사용자에에 추천하는 작업을 진행한다. 즉, 사용자(U1)에게 아이템들(I(3), I(4), I(7), I(10), I(13)...) 중 적어도 하나를 추천하거나, 아이템들(I(5), I(6), I(15), I(19), I(20)...)중 적어도 하나를 추천할 수 있다.In the recommendation step S6, an operation for recommending the selected items to the user through the operation step S5 is performed. That is, the user (U1) Item (I (3), I ( 4), I (7), I (10), I (13) ...) at least one of a like or the item (I ( 5 ), I ( 6 ), I ( 15 ), I ( 19 ), I ( 20 )
추천 단계(S6)는 다양한 방식으로 추천할 수 있는데, 전술한 것과 마찬가지로 다양한 방식으로 진행할 수 있는데, 예를들면 특정 사용자(U1)가 방문 시 웹사이트상에서 아이템이 표시되도록 팝업창을 형성하거나, 웹사이트의 화면상에 일부에 일시적 또는 지속적으로 아이템을 나타낼 수 있고, 이메일로 아이템들을 공지할 수도 있다. 그러나 본 실시예는 이에 한정되지 않고 다양한 방식으로 추천 과정을 진행할 수 있음은 물론이다.The recommendation step S6 can be recommended in various ways, and it can be performed in various ways as described above. For example, a specific user U1 may form a pop-up window so that items are displayed on the website at the time of visiting, The user can temporarily or permanently display the item on a part of the screen of the mobile phone, or announce items by e-mail. However, the present embodiment is not limited to this, and it goes without saying that the recommendation process can be performed in various ways.
특정 사용자로서 사용자(U1)을 설명한 것은 설명의 편의를 위한 것으로서 다른 사용자들 중 어느 하나에 대하여 추천 작업을 수행할 수 있음은 물론이다. 또한, 본 실시예 및 도면에 표시된 사용자들의 수 및 아이템들의 수는 설명의 편의를 위한 것으로서 이에 제한되지 않음은 물론이다.It is needless to say that the description of the user U1 as a specific user is for convenience of explanation and can perform recommendation work for any one of the other users. It is needless to say that the number of users and the number of items shown in the present embodiment and drawings are for convenience of description and are not limited thereto.
본 발명의 실시예들의 아이템 추천 시스템(100) 및 이를 이용한 추천 방법은 사용자 이용 정보 저장부(110)를 통하여 사용자 이용 정보를 용이하게 저장할 수 있고, 선택적 실시예로서, 실시간으로 처리한 정보 및 첫 방문자임을 표시하여 저장할 수 있다. The
그리고, 이러한 사용자 이용 정보 저장부(110)에 저장된 정보를 사용자 이용 정보 전처리 수행부(120)에서 전처리하는 단계를 진행하여 사용자와 아이템들간의 관계(relation)을 단순화한 그래프 데이터로 변형한다. 그리고 이러한 그래프 데이터는 그래프 데이터 베이스(130)에 저장하는 단계를 진행한다. Then, the information stored in the user-use-
사용자와 아이템들간의 정보는 사용자 및 아이템들이 적을 때는 저장시 크게 문제되지 않으나, 사용자들의 수와 아이템들간의 수가 증가하고 관계의 방식(예, 구매, 방문)이 증가할 경우 저장하기도 용이하지 않고, 저장한다 하더라도 이러한 저장된 정보를 이용하기 용이하지 않다. The information between the user and the items is not a big problem when the user and the items are small. However, when the number of users and the number of items are increased and the relation type (for example, purchase, visit) increases, It is not easy to use such stored information.
그러나, 본 실시예에서는 사용자와 아이템들간의 정보를 그래프 데이터 베이스(130)에 그래프 데이터 형태로 저장한다. 이를 통하여 사용자들과 아이템들간의 관계를 용이하게 파악 및 분석할 수 있다. 특히, 그래프 데이터 베이스(130)내에는 그래프 데이터만을 저장할 뿐, 사용자들과 아이템들간의 관계에 대한 별도의 연산을 수행하지 않는다. 불필요한 연산 작업을 수행하지 않으므로 그래프 데이터 베이스(130)를 통한 사용자 이용 정보의 활용 능력을 향상할 수 있다.However, in the present embodiment, information between the user and the items is stored in the
또한, 그래프 데이터 베이스(130)를 이용하여 추가적인 정보를 노드(node) 및 관계(relation)등을 이용하여 용이하게 저장할 수 있다.Further, the
그리고, 연산부(150)는 가공 단계에서 위와 같이 용이한 방법으로 파악된 사용자들과 아이템들간의 관계를 이용하여 연산 작업을 진행하여 다양한 작업을 수행한다. 즉, 그래프 데이터 형태로 저장된 데이터들을 모두 연산하는 것이 아니고, 필요한 사용자 또는 필요한 아이템에 관련된 관계(relation)를 포함하는 정보만 불러와 이에 대한 연산만을 수행하여 작업을 수행한다.In addition, the
이를 통하여 실시간으로 신속한 연산이 가능하므로 원하는 때에 최신의 정보를 통한 연산, 예를들면 사용자와 아이템들 각각의 관계 정보 선별 작업을 용이하게 진행할 수 있다.Accordingly, it is possible to perform a quick calculation in real time, so that it is possible to easily carry out calculations based on the latest information at a desired time, for example, a relation information sorting operation for each user and items.
그리고, 아이템들간 유사도를 판단하여 아이템에 기반한 추천 작업을 진행하므로 추천 작업의 속도를 용이하게 증가할 수 있다.In addition, since the recommendation work based on the item is judged by judging the similarity between the items, the speed of recommendation work can be easily increased.
이 때, 본 실시예에서는 아이템들간 유사도를 계산하고, 선택적 실시예로서 오프라인 배치 방식으로 계산을 할 수 있고, 또한 고객의 암시적 선호도를 이용하여 용이하게 아이템들간 유사도를 계산할 수 있다. 이를 통하여 고객 추천 작업의 효율성을 증대할 수 있다.In this case, in the present embodiment, the degree of similarity between items can be calculated. In an alternative embodiment, the degree of similarity can be calculated by using an off-line arrangement method, and the degree of similarity between items can be easily calculated using the customer's implicit preference. This can increase the efficiency of customer referral work.
도 9는 본 발명의 다른 실시예에 관한 아이템 추천 시스템 및 이의 동작을 개략적으로 설명하기 위하여 도시한 도면이다.FIG. 9 is a view for schematically illustrating an item recommendation system and its operation according to another embodiment of the present invention.
설명의 편의를 위하여 전술한 실시예와 상이한 점을 중심으로 설명하기로 한다.For convenience of explanation, the description will be focused on the differences from the above-described embodiment.
도 9를 참조하면 복수의 사용자들(U1, U2, U3...Un)은 네트워크(NW)를 통하여 웹사이트(WS)에 접속한다. 아이템 추천 시스템(200)은 웹사이트(WS)와 연결되어 사용자와 관련된 복수의 정보를 전달받을 수 있다. 웹사이트(WS)관련된 내용은 전술한 실시예와 동일하므로 구체적인 설명은 생략한다.Referring to FIG. 9, a plurality of users U1, U2, U3 ... Un accesses a web site WS via a network NW. The
도 9를 참조하면 아이템 추천 시스템(200)은 크게, 사용자 이용 정보 저장부(210), 사용자 이용 정보 전처리 수행부(220), 그래프 데이터 베이스(230), 연산부(250) 및 추천부(270)를 포함한다. 연산부(250)는 연관 사용자 선정부(251) 및 연관 아이템 선정부(252)를 구비한다.9, the
사용자 이용 정보 저장부(210)는 사용자 이용 정보 제1 저장부(201) 및 사용자 이용 정보 제2 저장부(202)를 구비한다. 사용자 이용 정보 제1 저장부(201) 및 사용자 이용 정보 제2 저장부(202)는 각각 서로 상이한 사용자 이용 관련 정보를 저장한다. 이에 대한 구체적인 내용은 전술한 실시예와 동일하므로 생략한다.The user use
사용자 이용 정보 전처리 수행부(220)는 사용자 이용 정보 저장부(210)에 1차로 저장된 사용자 이용 정보를 그래프 데이터 베이스(230)에 저장하기 적합한 형태로 변형하기 위하여 전처리 단계를 진행한다. 구체적인 내용은 전술한 실시예와 동일하므로 생략한다.The user use information
그래프 데이터 베이스(230)는 사용자 이용 정보 전처리 수행부(220)를 통하여 적절히 변형된 정보를 저장한다. The
연산부(250)는 필요한 때에 그래프 데이터 베이스(230)에 저장된 사용자 이용 정보등을 이용하여 연산하는 단계를 수행한다. The
연산부(250)는 연관 사용자 선정부(251) 및 연관 아이템 선정부(252)를 구비한다. 연관 사용자 선정부(251)는 특정 사용자와 관계를 갖는 아이템들과 관계를 갖는 타 사용자를 선정한다. 연관 아이템 선정부(252)는 연관 사용자 선정부(251)에서 선정한 사용자와 관계를 갖는 아이템 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정한다. 이에 대한 구체적인 내용은 후술한다.The
도시하지 않았으나, 본 실시예의 아이템 추천 시스템(200)의 사용자 이용 정보 저장부(210)는 다양한 선택적 실시예를 가질 수 있고, 예를들면 전술한 도 2의 실시예를 가질 수 있다. 즉, 본 실시예의 아이템 추천 시스템(200)의 사용자 이용 정보 저장부(210)는 사용자 이용 정보 제1 저장부, 사용자 이용 정보 제2 저장부, 실시간 처리부 및 임시 저장부를 구비할 수 있다. 실시간 처리부 및 임시 저장부를 포함한 구체적인 내용은 전술한 도 2의 실시예와 동일하므로 구체적인 내용은 생략한다. Although not shown, the user-used
사용자 이용 정보 전처리 수행부(220)는 사용자 이용 정보 저장부(210)와 연결되어 사용자 이용 정보 저장부(210)로부터 사용자 이용 정보를 가져와 사용자 이용 정보를 그래프 데이터 베이스(230)에 저장하기에 적합하도록 전처리를 수행한다. The user use information
사용자 이용 정보 전처리 수행부(220)는 도 9에 도시한 복수의 사용자들(U1, U2, U3...Un)과 복수의 아이템들간 관계(relation)을 형성하고, 이를 기초로 복수의 사용자들(U1, U2, U3...Un)과 복수의 아이템들간 관계(relation)를 그래프로 변형한다. The user use information
그래프 데이터 베이스(230)는 사용자 이용 정보 전처리 수행부(220)에서 변형된 그래프 데이터, 즉 사용자들과 복수의 아이템들간 관계를 그래프로 표시한 데이터를 저장한다. 그래프 데이터 베이스(230)에 저장되는 그래프 데이터는 사용자들과 아이템들간의 관계를 노드(node), 관계(relation), 속성(property)로 표시할 수 있다.The
이와 관련한 구체적인 내용은 도 12를 참조하면서 더 설명하기로 한다.The details of this will be further described with reference to FIG.
그래프 데이터 베이스(230)의 예시는 전술한 실시예와 같다. 또한, 전술한 실시예와 마찬가지로 사용자 이용 정보 전처리 수행부(220)는 그래프 데이터 베이스(230)와 별개의 부재로 독립적으로 구성될 수 있고, 선택적 실시예로서, 그래프 데이터 베이스(230)와 일체로 사용자 이용 정보 전처리 수행부(220)가 형성될 수도 있다.An example of the
연산부(250)는 그래프 데이터 베이스(230)에 저장되어 있는 그래프 데이터 중 특정의 원하는 데이터를 원하는 때에 불러온다. The
그리고, 이를 연산하여 가공 단계를 수행한다. 특히, 연산부(250)는 그래프 데이터 베이스(230)에 저장된 데이터들을 연산하여 실시간으로 다양한 작업을 수행할 수 있다. 즉, 연관 사용자 선정부(251)는 특정 사용자와 관계를 갖는 아이템들을 파악하고, 이러한 아이템들과 관계를 갖는 타 사용자들을 선정한다. 그리고, 연관 아이템 선정부(252)는 이러한 타 사용자들과 관계를 갖는 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템들을 선정하는 연산을 수행할 수 있다.Then, this is calculated to perform the machining step. In particular, the
추천부(270)는 연산부(250)와 연결되어 연산부(250)에서 선정된 아이템들을 특정 사용자에에 추천할 수 있다. The
추천부(270)는 다양한 방식으로 추천 작업을 진행할 수 있다. 예를들면 추천부(270)는 상기 특정 사용자가 방문 시 웹사이트상에서 아이템이 표시되도록 팝업창을 형성하거나, 웹사이트의 화면상에 일부에 일시적 또는 지속적으로 아이템을 나타낼 수 있고, 이메일로 아이템들을 공지할 수도 있다. 그러나 본 실시예는 이에 한정되지 않고 다양한 방식으로 추천 과정을 진행하는 추천부(270)를 포함할 수 있음은 물론이다.The
도 10은 도 9의 아이템 추천 시스템을 이용하여 아이템을 추천하는 방법을 순차적으로 설명한 개략적인 순서도이다.FIG. 10 is a schematic flowchart sequentially illustrating a method of recommending an item using the item recommendation system of FIG. 9. FIG.
도 10을 참조하면 본 실시예의 아이템 추천 방법은 사용자 이용 정보 획득 단계(C1), 전처리 단계(C2), 저장 단계(C3), 연산 단계(C5) 및 추천 단계(C6)을 포함한다.Referring to FIG. 10, the item recommendation method of the present embodiment includes a user use information obtaining step C1, a preprocessing step C2, a storing step C3, an calculating step C5, and a recommending step C6.
사용자 이용 정보 획득 단계(C1)는 전술한 것과 같이 도 9의 아이템 추천 시스템(200)의 사용자 이용 정보 저장부(210)에서 진행한다. 즉, 사용자 이용 정보 저장부(210)의 사용자 이용 정보 제1 저장부(201) 및 사용자 이용 정보 제2 저장부(202)를 이용하여 사용자의 정보, 예를들면 사용자의 구매 정보, 장바구니 정보 또는 방문 정보를 획득한다.The user access information acquisition step C1 proceeds in the user access
예를들면 하기와 같은 표 2에 표시된 형태로 사용자 이용 정보 저장부(210)는 사용자의 이용 정보들을 저장할 수 있다.For example, in the form shown in Table 2 below, the user use
상기 표 2의 U1, U2, U3 는 웹사이트에 접속하는 각각 상이한 사용자를 가리킨다. 상기 표 2의 I(1), I(2), I(3), I(4)는 각각 웹사이트에서 제공하는 상이한 아이템들을 가리킨다.In Table 2, U1, U2, and U3 indicate different users who access the Web site, respectively. I ( 1 ), I ( 2 ), I ( 3 ), and I ( 4 ) in Table 2 refer to the different items provided on the website, respectively.
즉, 표 2를 구체적으로 설명하면 아래와 같다. That is, Table 2 will be described in detail as follows.
사용자(U1)은 아이템(I(1)) 및 아이템(I(3))을 구매하고, 아이템(I(2))에 대하여는 방문을 하였다. 사용자(U2)은 아이템(I(2)) 및 아이템(I(4))을 구매하고, 아이템(I(1))에 대하여 방문하였다. 사용자(U3)은 아이템(I(3))을 구매하고, 아이템(I(4))에 대하여 방문하였다. The user U1 purchases the item I ( 1 ) and the item I ( 3 ), and visits the item I ( 2 ). User U2 purchases item I ( 2 ) and item I ( 4 ) and visits item I ( 1 ). The user U3 purchases the item I ( 3 ) and visits the item I ( 4 ).
또한, 선택적 실시예로서 사용자 이용 정보 저장부(210)가 도 2의 선택적 실시예의 구조를 적용할 경우 임시 저장부에 상기의 정보를 저장할 수 있다.Also, as an alternative embodiment, when the user use
상기의 표 2에는 예시적으로 3명의 사용자 및 4개의 아이템을 개시하였다. 또한, 2가지 종류의 사용자 이용 정보, 즉 구매 및 방문 정보를 개시하였다. 이는 설명의 편의를 위한 것으로서 사용자 이용 정보 획득 단계(C1)에서 복수의 사용자 및 복수의 아이템에 대한 정보를 획득 및 저장할 수 있음은 물론이다. 또한, 사용자의 이용 정보로서 구매 및 방문 외에 장바구니 정보 또는 보관함 정보, wish list 정보 등 기타 정보를 이용할 수 있음은 물론이다.Table 2 above illustratively shows three users and four items. In addition, two kinds of user utilization information, namely purchase and visit information, are disclosed. It is needless to say that information for a plurality of users and a plurality of items can be acquired and stored in the user-use-information obtaining step C1 for convenience of explanation. It is also possible to use other information such as shopping cart information, storage box information, wish list information, and the like in addition to purchase and visit as user use information.
또한, 기타 사용자 이용 정보 저장과 관련된 내용은 전술한 실시예에서 설명한 바와 같다.The content related to storing other user-used information is as described in the above embodiments.
전처리 단계(C2)에서는 사용자 이용 정보 획득 단계(C1)에서 획득 및 저장한 단계를 사용자 이용 정보 전처리 수행부(220)를 이용하여 사용자들과 아이템들간의 관계를 형성하고 그래프로 변형한다. 즉 후술할 저장 단계(C3)에 적합하도록 정보 전처리를 수행한다.In the preprocessing step (C2), the user-information pre-processing unit (220) acquires and stores the acquired and stored information in the user-utilized information obtaining step (C1) to form a relationship between users and items and transforms the same into a graph. That is, the storage step C3, which will be described later.
도 12는 전처리 단계(C2)를 통하여 변화된 그래프이다.12 is a graph that is changed through the preprocessing step (C2).
설명의 편의를 위하여 도 12는 상기 표 2의 정보를 그대로 이용하여 전처리한 그래프 데이터를 보여준다. For convenience of explanation, FIG. 12 shows graph data obtained by pre-processing using the information of Table 2 as it is.
도 12를 참조하면 그래프 데이터는 복수의 노드(node)를 포함하고, 복수의 노드들간에는 관계(relation)가 형성된다. 복수의 노드들은 각각 속성(property)을 갖는데, 도 12에서는 각 노드들은 사용자들(U1, U2, U3) 및 아이템(I(1), I(2), I(3), I(4))을 속성으로 갖는다. 또한 관계(relation)들은 구매(p) 및 방문(v)을 속성으로 갖는다. Referring to FIG. 12, the graph data includes a plurality of nodes, and a relation is formed between the plurality of nodes. I2, U3, and I3, I ( 1 ), I ( 2 ), I ( 3 ), I ( 4 ) As an attribute. Also, relations have attributes (p) and (v) as attributes.
도 12에는 관계(relation)가 단방향으로만 표시되어 있다. 그러나, 이는 하나의 예시로서 각 노드들간에 양방향 관계(relation)가 형성될 수 있음은 물론이다.In Fig. 12, the relation is shown only in one direction. However, it goes without saying that a bi-directional relation may be formed between each node as an example.
도 12를 참조하면 상기 표 2에 기재된 데이터가 모두 표시되어 있다. 즉, 사용자(U1)가 아이템(I(1)) 및 아이템(I(3))을 구매하고, 아이템(I(2))에 대하여는 방문을 한 정보, 사용자(U2)가 아이템(I(2)) 및 아이템(I(4))을 구매하고, 아이템(I(1))에 대하여 방문한 정보, 사용자(U3)가 아이템(I(3))을 구매하고, 아이템(I(4))에 대하여 방문한 정보가 하나의 그래프 데이터로 표시된다.Referring to FIG. 12, all the data described in Table 2 are shown. That is, the user (U1) the item (I (1)) and the item (I (3)) purchase, the item (I (2)) is a the visit information, the user (U2) with respect to items of (I (2 )) and the item (I (4)) purchase, purchase an item (I (visit information, the user (U3) with respect to item 1)) (I (3) ) of, and the item (I (4)) to The visited information is displayed as one graph data.
즉, 전처리 단계(C2)에서는 사용자 이용 정보 전처리 수행부(220)를 이용하여 표 2에 개시된 정보를 처리하여 표 2에 대응하는 그래프 데이터를 생성한다. That is, in the preprocessing step (C2), the user
그래프 데이터를 통하여 각 사용자(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)들간의 관계를 알 수 있다.Information between each user U1, U2, U3 and each item I ( 1 ), I ( 2 ), I ( 3 ), I ( 4 ) can be easily known through the graph data. In addition, through the information for each user (U1, U2, U3) and for each item (I (1), I ( 2), I (3), I (4)) relationship (relation) between each user ( U1, U2, U3, U5.
저장 단계(C3)에서는 이러한 사용자 이용 정보 전처리 수행부(220)를 이용하여 형성된 그래프 데이터를 그래프 데이터 베이스(230)에 저장한다. 전술한 실시예에서 설명한 바와 같이 사용자 이용 정보 전처리 수행부(220)와 그래프 데이터 베이스(230)는 별개의 독립된 부재일 수 있고, 다른 선택적 실시예로서 하나의 일체화된 형태일 수도 있다.In the storage step (C3), the graph data formed using the user-utilization-
연산 단계(C5)에서는 저장 단계(C3)를 통하여 획득한 정보를 이용하여 연산을 수행한다. 특히, 연산 단계(C5)에서는 저장 단계(C3)에서 저장된 그래프 데이터를 연산하여 실시간으로 다양한 작업을 수행할 수 있고, 특정 사용자를 기준으로 사용자와 관계(relation)지어진 아이템들을 추출하고, 추출된 아이템들로부터 연관 사용자 및 연관 아이템들을 용이하게 선정하는 연산을 수행할 수 있다.In the operation step (C5), the operation is performed using the information obtained through the storage step (C3). In particular, in the operation step (C5), the stored graph data is calculated in the storage step (C3) to perform various operations in real time, and items related to the user are extracted based on a specific user, Lt; RTI ID = 0.0 > and / or < / RTI >
연산 단계(C5)는 다양한 형태를 가질 수 있는데, 도 11을 참조하면서 설명한다. 도 11은 도 10의 단계(C5)의 선택적 실시예를 설명하는 순서도이다.The computation step C5 can take various forms, which will be described with reference to Fig. 11 is a flowchart for explaining an alternative embodiment of step C5 of Fig.
도 11을 참조하면 연산 단계(C5)는 특정 사용자와 관계를 갖는 아이템을 파악하는 단계(C51), 상기 C51단계에서 파악한 아이템과 관계를 갖는 사용자들을 파악하는 단계(C52), 상기 C52단계에서 파악한 사용자들 중 상기 특정 사용자를 제외한 사용자들을 선정하는 단계(C53), 상기 C53단계에서 선정한 사용자들과 관계를 갖는 아이템들을 파악하는 단계(C54) 및 상기 C54단계에서 파악한 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정하는 단계(C55)를 포함한다.11, the operation step (C5) includes a step (C51) of identifying an item having a relation with a specific user, a step (C52) of identifying users having a relationship with the item identified at the step C51, (C53) of selecting users except for the specific user among the users, a step (C54) of identifying items having a relationship with the users selected in the step C53, and a step (C54) of correlating the items (Step C55) of selecting an item having no item.
사용자와 관계를 갖는 아이템을 파악하는 단계(C51)는 특정 사용자와 관계를 갖는 아이템을 파악하는 것으로서, 도 12를 참조하면 특정 사용자, 예를들면 사용자(U1)과 관계를 갖는 아이템들을 파악한다. 즉 사용자(U1)과 구매(p)의 관계를 갖는 아이템(I(1)) 및 아이템(I(3))을 파악하고, 사용자(U1)과 방문(v)의 관계를 갖는 아이템(I(2))을 파악한다. Step C51 of identifying an item having a relation with a user is to identify an item having a relation with a specific user, and referring to FIG. 12, it identifies items having a relation with a specific user, for example, the user U1. That is, items I ( 1 ) and I ( 3 ) having a relationship of the user U1 and purchase p and an item I ( 3 ) having the relationship of the user U1 and visit v, 2 ).
상기 C51단계에서 파악한 아이템과 관계를 갖는 사용자들을 파악하는 단계(C52)에서는, 상기 C51단계에서 파악된 아이템들, 즉, 아이템(I(1)), 아이템(I(2)) 및 아이템(I(3))과 관계를 갖는 사용자들을 파악한다. 즉, 아이템(I(1))과 관계를 갖는 사용자들인 사용자(U1) 및 사용자(U2)를 파악하고, 아이템(I(2))과 관계를 갖는 사용자들인 사용자(U1) 및 사용자(U2)를 파악하고, 아이템(I(3))과 관계를 갖는 사용자들인 사용자(U1) 및 사용자(U3)를 파악한다.In the step C52 of recognizing the users having relations with the items identified in the step C51, the items identified in the step C51, i.e., items I ( 1 ), I ( 2 ) ( 3 )). That is, the user U1 and the user U2 who are users who have relations with the item I ( 1 ) and those who have the relationship with the item I ( 2 ) And grasps the user U1 and the user U3 who are users who have a relationship with the item I ( 3 ).
상기 C52단계에서 파악한 사용자들 중 상기 특정 사용자를 제외한 사용자들을 선정하는 단계(C53)에서는, 상기 C52단계에서 파악된 사용자들, 즉 사용자(U1), 사용자(U2) 및 사용자(U3) 중 특정 사용자(U1)을 제외한 사용자인 사용자(U2) 및 사용자(U3)를 선정한다. 이러한 사용자들을 본 실시예에서는 연관 사용자라고 지칭한다. 즉 사용자(U1)의 연관 사용자들은 사용자(U2) 및 사용자(U3)이다. 이러한 연관사용자들을 선정하는 작업은 전술한 도 9의 아이템 추천 시스템(200)의 연관 사용자 선정부(251)가 수행할 수 있다.In step C53 of selecting the users other than the specific user among the users identified in step C52, the user identified in step C52, namely, the user U1, the user U2, and the user U3, The user U2 and the user U3 are selected as users excluding the user U1. These users are referred to in this embodiment as associated users. That is, the associated users of user U1 are user U2 and user U3. The task of selecting these related users can be performed by the related
상기 C53단계에서 선정한 사용자들과 관계를 갖는 아이템들을 파악하는 단계(C54)에서는 연관 사용자들인 사용자(U2) 및 사용자(U3)가 각각 관계를 갖는 아이템들을 파악한다. In step C54, items related to the users selected in the step C53 are identified by the users U2 and U3, which are related users, respectively.
먼저, 사용자(U2)와 관계를 갖는 아이템들을 파악하기로 한다. 도 12를 참조하면 사용자(U2)와 구매(p)의 관계를 갖는 아이템(I(2)) 및 아이템(I(4))을 파악하고, 사용자(U2)와 방문(v)의 관계를 갖는 아이템(I(1))을 파악한다. 그리고, 사용자(U3)과 구매(p)의 관계를 갖는 아이템(I(3)) 및 방문(v)의 관계를 갖는 아이템(I(4))을 파악한다. First, the items related to the user U2 will be grasped. Referring to FIG. 12, an item I ( 2 ) and an item I ( 4 ) having a relationship of a user U2 and a purchase p are grasped and a relationship between a user U2 and a visit v And grasps the item I ( 1 ). Then, identify your item (I (4)) having the relation of the item (I (3)) and landing (v) having a relationship of (U3) and purchasing (p).
상기 C54단계에서 파악한 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정하는 단계(C55)에서는 상기 파악된 아이템들, 즉 사용자(U2)와 관계를 갖는 아이템(I(1)), 아이템(I(2)) 및 아이템(I(4)), 그리고 사용자(U3)와 관계를 갖는 아이템(I(3)) 및 아이템(I(4)) 중에서 사용자(U1)와 관계를 갖지 않는 아이템을 선정한다. 편의상 본 실시예에서는 이러한 아이템들을 연관 아이템이라고 지칭한다. In the step C55 of selecting items not related to the specific user among the items identified in the step C54, the items identified as I (I ( 1 )), (item the I (2)) and the item (I (4)), and the user (according to item (I (3 having a relationship with the U3))) and the item (I (4)) items from having no relation with the user (U1) . For convenience, these items are referred to in this embodiment as associated items.
구체적으로 아이템(I(1)), 아이템(I(2)), 아이템(I(3)) 및 아이템(I(4)) 중 사용자(U1)와 관계를 갖지 않는 아이템인 아이템(I(4))을 선정한다. 이 경우 사용자(U1)의 연관 아이템은 아이템(I(4))이다. 이러한 연관 아이템들을 선정하는 작업은 전술한 도 9의 아이템 추천 시스템(200)의 연관 아이템 선정부(252)가 수행할 수 있다.Specifically, the item (I (1)), the item (I (2)), the item (I (3)) and the item (I (4)) of the item having no relation with the user (U1) Item (I (4 ). In this case, the associated item of the user U1 is the item I ( 4 ). The selection of these related items may be performed by the associated
추천 단계(C6)에서는 연산 단계(C5)를 통하여 선정된 아이템들을 사용자에게 추천하는 작업을 진행한다. 즉, 사용자(U1)에게 사용자(U1)의 연관 아이템인 아이템(아이템(I(4))을 추천할 수 있다.In the recommendation step (C6), an operation for recommending the selected items to the user is performed through the operation step (C5). That is, the item U ( 4 ) can be recommended to the user U1, which is an item associated with the user U1.
추천 단계(C6)는 다양한 방식으로 추천할 수 있는데, 전술한 것과 마찬가지로 다양한 방식으로 진행할 수 있는데, 예를들면 특정 사용자(U1)가 방문 시 웹사이트상에서 아이템이 표시되도록 팝업창을 형성하거나, 웹사이트의 화면상에 일부에 일시적 또는 지속적으로 아이템을 나타낼 수 있고, 이메일로 아이템들을 공지할 수도 있다. 그러나 본 실시예는 이에 한정되지 않고 다양한 방식으로 추천 과정을 진행할 수 있음은 물론이다.Recommendation step C6 may be recommended in a variety of ways, and may proceed in a variety of ways as described above, such as forming a pop-up window for a particular user U1 to display an item on the website at visit, The user can temporarily or permanently display the item on a part of the screen of the mobile phone, or announce items by e-mail. However, the present embodiment is not limited to this, and it goes without saying that the recommendation process can be performed in various ways.
특정 사용자로서 사용자(U1)을 설명한 것은 설명의 편의를 위한 것으로서 다른 사용자들 중 어느 하나에 대하여 추천 작업을 수행할 수 있음은 물론이다.It is needless to say that the description of the user U1 as a specific user is for convenience of explanation and can perform recommendation work for any one of the other users.
본 발명의 실시예들의 아이템 추천 시스템(200) 및 이를 이용한 추천 방법은 사용자 이용 정보 저장부(210)를 통하여 사용자 이용 정보를 용이하게 저장할 수 있고, 선택적 실시예로서, 실시간으로 처리한 정보 및 첫 방문자임을 표시하여 저장할 수 있다. The
그리고, 이러한 사용자 이용 정보 저장부(210)에 저장된 정보를 사용자 이용 정보 전처리 수행부(220)에서 전처리하는 단계를 진행하여 사용자와 아이템들간의 관계(relation)을 단순화한 그래프 데이터로 변형한다. 그리고 이러한 그래프 데이터는 그래프 데이터 베이스(230)에 저장하는 단계를 진행한다. The user
사용자와 아이템들간의 정보는 사용자 및 아이템들이 적을 때는 저 장시 크게 문제되지 않으나, 사용자들의 수와 아이템들간의 수가 증가하고 관계의 방식(예, 구매, 방문)이 증가할 경우 저장하기도 용이하지 않고, 저장한다 하더라도 이러한 저장된 정보를 이용하기 용이하지 않다. Information between users and items is not a big problem when users and items are small, but it is not easy to store them when the number of users and the number of items increases and the relationship type (for example, purchase, visit) increases, It is not easy to use such stored information.
그러나, 본 실시예에서는 사용자와 아이템들간의 정보를 그래프 데이터 베이스(230)에 그래프 데이터 형태로 저장한다. 이를 통하여 사용자들과 아이템들간의 관계를 용이하게 파악 및 분석할 수 있다. 특히, 그래프 데이터 베이스(230)내에는 그래프 데이터만을 저장할 뿐, 사용자들과 아이템들간의 관계에 대한 별도의 연산을 수행하지 않는다. 불필요한 연산 작업을 수행하지 않으므로 그래프 데이터 베이스(230)를 통한 사용자 이용 정보의 활용 능력을 향상할 수 있다.However, in the present embodiment, information between the user and the items is stored in the
또한, 그래프 데이터 베이스(230)를 이용하여 추가적인 정보를 노드(node) 및 관계(relation)등을 이용하여 용이하게 저장할 수 있다.Further, the
그리고, 연산부(250)는 가공 단계에서 위와 같이 용이한 방법으로 파악된 사용자들과 아이템들간의 관계를 이용하여 연산 작업을 진행하여 다양한 작업을 수행한다. 즉, 그래프 데이터 형태로 저장된 데이터들을 모두 연산하는 것이 아니고, 필요한 사용자 또는 필요한 아이템에 관련된 관계(relation)를 포함하는 정보만 불러와 이에 대한 연산만을 수행하여 작업을 수행한다.In addition, the
이를 통하여 실시간으로 신속한 연산이 가능하므로 원하는 때에 최신의 정보를 통한 연산, 예를들면 사용자와 아이템들 각각의 관계 정보 선별 작업을 용이하게 진행할 수 있다.Accordingly, it is possible to perform a quick calculation in real time, so that it is possible to easily carry out calculations based on the latest information at a desired time, for example, a relation information sorting operation for each user and items.
특히, 특정 사용자와 관계를 갖는 아이템들과 관계를 갖는 타 사용자들, 즉 연관 사용자를 선정하고, 연관 사용자와 관계를 갖는 아이템들 중 특정 사용자와 관계를 갖지 않는 아이템들, 즉 연관 아이템들을 선정하여 추천 작업을 진행하므로 실시간으로 효과적으로 추천 작업을 진행할 수 있다. 즉, 추천 작업을 진행할 사용자들에 대한 정보 및 이와 연관된 사용자들에 대한 정보만을 그래프 데이터 베이스에서 불러와 빠른 시간에 연산이 가능하므로 언제든지 실시간으로 원하는 추천 작업을 용이하게 진행할 수 있다.In particular, it is possible to select other users having an association with items having a relation with a specific user, i.e., an associated user, and select items having no relationship with a specific user, i.e., related items, Since recommendation work is carried out, recommendation work can be effectively performed in real time. That is, only the information about the users who will perform the recommendation work and the information about the users related thereto can be retrieved from the graph database and can be operated in a short time, so that the recommendation work can be easily performed in real time at any time.
도 13은 본 발명의 또 다른 실시예에 관한 아이템 추천 시스템 및 이의 동작을 개략적으로 설명하기 위하여 도시한 도면이다.13 is a diagram for schematically illustrating an item recommendation system and its operation according to another embodiment of the present invention.
설명의 편의를 위하여 전술한 실시예와 상이한 점을 중심으로 설명하기로 한다.For convenience of explanation, the description will be focused on the differences from the above-described embodiment.
도 13을 참조하면 복수의 사용자들(U1, U2, U3...Un)은 네트워크(NW)를 통하여 웹사이트(WS)에 접속한다. 아이템 추천 시스템(300)은 웹사이트(WS)와 연결되어 사용자와 관련된 복수의 정보를 전달받을 수 있다. 웹사이트(WS)관련된 내용은 전술한 실시예와 동일하므로 구체적인 설명은 생략한다.Referring to FIG. 13, a plurality of users U1, U2, U3,... Un accesses a web site WS via a network NW. The
도 13을 참조하면 아이템 추천 시스템(300)은 크게, 사용자 이용 정보 저장부(310), 사용자 이용 정보 전처리 수행부(320), 그래프 데이터 베이스(330), 연산부(350), 유사도 판단부(360) 및 추천부(370)를 포함한다. 연산부(350)는 연관 사용자 선정부(351) 및 연관 아이템 선정부(352)를 구비한다.Referring to FIG. 13, the
사용자 이용 정보 저장부(310)는 사용자 이용 정보 제1 저장부(301) 및 사용자 이용 정보 제2 저장부(302)를 구비한다. 사용자 이용 정보 제1 저장부(301) 및 사용자 이용 정보 제2 저장부(302)는 각각 서로 상이한 사용자 이용 관련 정보를 저장한다. 이에 대한 구체적인 내용은 전술한 실시예와 동일하므로 생략한다.The user use
사용자 이용 정보 전처리 수행부(320)는 사용자 이용 정보 저장부(310)에 1차로 저장된 사용자 이용 정보를 그래프 데이터 베이스(330)에 저장하기 적합한 형태로 변형하기 위하여 전처리 단계를 진행한다. 구체적인 내용은 전술한 실시예와 동일하므로 생략한다.The user use
그래프 데이터 베이스(330)는 사용자 이용 정보 전처리 수행부(320)를 통하여 적절히 변형된 정보를 저장한다. The
아이템 유사도 판단부(360)는 아이템들간의 유사도를 계산하여 판단한다.The item
연산부(350)는 필요한 때에 그래프 데이터 베이스(330)에 저장된 사용자 이용 정보 및 아이템 유사도 판단부(360)에서 판단한 아이템 유사도 정보등을 이용하여 연산하는 단계를 수행한다. The
연산부(350)는 연관 사용자 선정부(351) 및 연관 아이템 선정부(352)를 구비한다. 연관 사용자 선정부(351)는 특정 사용자와 관계를 갖는 아이템들과 관계를 갖는 타 사용자 또는 특정 사용자와 관계를 갖는 아이템과 유사한 아이템들과 관계를 갖는 타 사용자를 선정한다. 연관 아이템 선정부(352)는 연관 사용자 선정부(351)에서 선정한 사용자와 관계를 갖는 아이템 또는 이와 유사한 아이템 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정한다. 이에 대한 구체적인 내용은 후술한다.The
도시하지 않았으나, 본 실시예의 아이템 추천 시스템(300)의 사용자 이용 정보 저장부(310)는 다양한 선택적 실시예를 가질 수 있고, 예를들면 전술한 도 2의 실시예를 가질 수 있다. 즉, 본 실시예의 아이템 추천 시스템(300)의 사용자 이용 정보 저장부(310)는 사용자 이용 정보 제1 저장부, 사용자 이용 정보 제2 저장부, 실시간 처리부 및 임시 저장부를 구비할 수 있다. 실시간 처리부 및 임시 저장부를 포함한 구체적인 내용은 전술한 도 2의 실시예와 동일하므로 구체적인 내용은 생략한다. Although not shown, the user use
사용자 이용 정보 전처리 수행부(320)는 사용자 이용 정보 저장부(310)와 연결된다.The user-used
사용자 이용 정보 전처리 수행부(320)는 사용자 이용 정보 저장부(310)로부터 사용자 이용 정보를 가져와 사용자 이용 정보를 그래프 데이터 베이스(330)에 저장하기에 적합하도록 전처리를 수행한다. The user use
사용자 이용 정보 전처리 수행부(320)는 도 13에 도시한 복수의 사용자들(U1, U2, U3...Un)과 복수의 아이템들간 관계(relation)을 형성하고, 이를 기초로 복수의 사용자들(U1, U2, U3...Un)과 복수의 아이템들간 관계(relation)를 그래프로 변형한다. The user use
그래프 데이터 베이스(330)는 사용자 이용 정보 전처리 수행부(320)에서 변형된 그래프 데이터, 즉 사용자들과 복수의 아이템들간 관계를 그래프로 표시한 데이터를 저장한다. 그래프 데이터 베이스(330)에 저장되는 그래프 데이터는 사용자들과 아이템들간의 관계를 노드(node), 관계(relation), 속성(property)로 표시할 수 있다.The
이와 관련한 구체적인 내용은 후술한다.Details related to this will be described later.
그래프 데이터 베이스(330)의 예시는 전술한 실시예와 같다. 또한, 전술한 실시예와 마찬가지로 사용자 이용 정보 전처리 수행부(320)는 그래프 데이터 베이스(330)와 별개의 부재로 독립적으로 구성될 수 있고, 선택적 실시예로서, 그래프 데이터 베이스(330)와 일체로 사용자 이용 정보 전처리 수행부(320)가 형성될 수도 있다.An example of the
유사도 판단부(360)는 아이템들간의 유사도를 계산 및 판단한다. 유사도 판단부(360)는 오프라인 배치(offline batch) 처리 방식으로 아이템들간의 유사도를 계산 및 판단할 수 있다.The
유사도 판단부(360)는 다양한 방식으로 아이템들간의 유사도를 계산 및 판단할 수 있는데, 예를들면 사용자의 암시적 선호도를 이용할 수 있다. 즉, 사용자의 구매, 방문 기타 암시적 선호도를 이용하여 아이템들간의 유사도를 계산 및 판단할 수 있다. 또한 유사도 판단부(360)는 주기적으로, 예를들면 1시간 간격으로 아이템들간 유사도를 오프라인 배치 처리 방식으로 계산할 수 있다. 이 때 사용자의 암시적 선호도를 가리키는 구매, 방문 정보등을 주기적으로 제공받아 아이템들간 유사도를 계산 및 판단할 수 있다.The
이를 위하여 유사도 판단부(360)는 다양한 선택적 실시예를 가질 수 있는데, 전술한 도 3에 도시한 것과 같이 본 실시예의 유사도 판단부(360)도 선택적 실시예로서 유사도 판단부(360)가 사용자 이용 정보 저장부(310)와 연결되어 정보를 전달 받을 수도 있다. 구체적인 내용은 전술한 실시예와 동일하므로 생략한다. 3, the
유사도 판단부(360)의 아이템들간 유사도 계산 및 판단을 통하여 복수의 아이템들간에는 유사도가 결정되고 서로 유사도가 높은 아이템들은 도 17에 도시한 것과 같이 유사 아이템군으로 정할 수 있다. 도 17에 대한 설명은 후술할 실시예에서 더 구체적으로 하기로 한다.The degree of similarity between a plurality of items is determined through calculation and determination of similarity between items of the
연산부(350)는 그래프 데이터 베이스(330)에 저장되어 있는 그래프 데이터 중 특정의 원하는 데이터를 원하는 때에 불러온다. 또한 연산부(350)는 유사도 판단부(360)에서 계산 및 판단하여 얻은 아이템 유사도 정보를 불러온다.The
그리고, 이를 연산하여 가공 단계를 수행한다. 특히, 연산부(350)는 그래프 데이터 베이스(330)에 저장된 데이터들을 연산하여 실시간으로 다양한 작업을 수행할 수 있고, 특정 사용자를 기준으로 사용자와 관계(relation)지어진 아이템들을 추출하고, 추출된 아이템들과 유사도가 높은 아이템들을 용이하게 추출하는 연산을 수행할 수 있다. Then, this is calculated to perform the machining step. In particular, the
추천부(370)는 연산부(350)와 연결되어 연산부(350)에서 선정된 아이템들을 특정 사용자에에 추천할 수 있다. The
추천부(370)는 다양한 방식으로 추천 작업을 진행할 수 있다. 추천부(370)의 추천 방식의 예는 전술한 실시예에서 설명한 바와 동일 또는 이와 유사하게 변형 가능하므로 구체적인 설명은 생략한다.The
도 14는 도 13의 아이템 추천 시스템을 이용하여 아이템을 추천하는 방법을 순차적으로 설명한 개략적인 순서도이다.14 is a schematic flowchart sequentially illustrating a method of recommending an item using the item recommendation system of FIG.
도 14를 참조하면 본 실시예의 아이템 추천 방법은 사용자 이용 정보 획득 단계(P1), 전처리 단계(P2), 저장 단계(P3), 연산 단계(P5) 및 추천 단계(P6)을 포함한다.Referring to FIG. 14, the item recommendation method of the present embodiment includes a user utilization information acquisition step P1, a preprocessing step P2, a storage step P3, an operation step P5, and a recommendation step P6.
사용자 이용 정보 획득 단계(P1)는 전술한 것과 같이 도 13의 아이템 추천 시스템(300)의 사용자 이용 정보 저장부(310)에서 진행한다. 즉, 사용자 이용 정보 저장부(310)의 사용자 이용 정보 제1 저장부(301) 및 사용자 이용 정보 제2 저장부(302)를 이용하여 사용자의 정보, 예를들면 사용자의 구매 정보, 장바구니 정보 또는 방문 정보를 획득한다.The user utilization information acquisition step P1 proceeds in the user utilization
예를들면 하기와 같은 표 3에 표시된 형태로 사용자 이용 정보 저장부(310)는 사용자의 이용 정보들을 저장할 수 있다.For example, in the form shown in Table 3 below, the user-use-
상기 표 3의 U1, U2, U3 는 웹사이트에 접속하는 각각 상이한 사용자를 가리킨다. 상기 표 1의 I(1), I(2), I(3), I(4), I(5)는 각각 웹사이트에서 제공하는 상이한 아이템들을 가리킨다.In Table 3, U1, U2, and U3 indicate different users who access the Web site, respectively. I ( 1 ), I ( 2 ), I ( 3 ), I ( 4 ), and I ( 5 ) in Table 1 refer to the different items provided on the website, respectively.
즉, 표 3을 구체적으로 설명하면 아래와 같다. That is, Table 3 will be described in detail as follows.
사용자(U1)은 아이템(I(1)) 및 아이템(I(3))을 구매하고, 아이템(I(2))에 대하여는 방문을 하였다. 사용자(U2)은 아이템(I(2)) 및 아이템(I(4))을 구매하고, 아이템(I(1))에 대하여 방문하였다. 사용자(U3)은 아이템(I(3)) 및 아이템(I(5))을 구매하고, 아이템(I(4))에 대하여 방문하였다. The user U1 purchases the item I ( 1 ) and the item I ( 3 ), and visits the item I ( 2 ). User U2 purchases item I ( 2 ) and item I ( 4 ) and visits item I ( 1 ). The user U3 purchases item I ( 3 ) and item I ( 5 ) and visits item I ( 4 ).
또한, 선택적 실시예로서 사용자 이용 정보 저장부(310)가 도 2의 선택적 실시예의 구조를 적용할 경우 임시 저장부에 상기의 정보를 저장할 수 있다.Also, as an alternative embodiment, when the user use
상기의 표 3에는 예시적으로 3명의 사용자 및 5개의 아이템을 개시하였다. 또한, 2가지 종류의 사용자 이용 정보, 즉 구매 및 방문 정보를 개시하였다. 이는 설명의 편의를 위한 것으로서 사용자 이용 정보 획득 단계(P1)에서 복수의 사용자 및 복수의 아이템에 대한 정보를 획득 및 저장할 수 있음은 물론이다. 또한, 사용자의 이용 정보로서 구매 및 방문 외에 장바구니 정보 또는 보관함 정보, wish list 정보 등 기타 정보를 이용할 수 있음은 물론이다.Table 3 above illustratively shows three users and five items. In addition, two kinds of user utilization information, namely purchase and visit information, are disclosed. It is needless to say that information for a plurality of users and a plurality of items can be acquired and stored in the user-use-information obtaining step P1 for convenience of explanation. It is also possible to use other information such as shopping cart information, storage box information, wish list information, and the like in addition to purchase and visit as user use information.
또한, 기타 사용자 이용 정보 저장과 관련된 내용은 전술한 실시예에서 설명한 바와 같다.The content related to storing other user-used information is as described in the above embodiments.
전처리 단계(P2)에서는 사용자 이용 정보 획득 단계(P1)에서 획득 및 저장한 단계를 사용자 이용 정보 전처리 수행부(320)를 이용하여 사용자들과 아이템들간의 관계를 형성하고 그래프로 변형한다. 즉 후술할 저장 단계(P3)에 적합하도록 정보 전처리를 수행한다.In the preprocessing step P2, the user-information-preprocessing
도 12는 전처리 단계(P2)를 통하여 변화된 그래프이다.12 is a graph that is changed through the preprocessing step P2.
설명의 편의를 위하여 도 16은 상기 표 3의 정보를 그대로 이용하여 전처리한 그래프 데이터를 보여준다. For convenience of explanation, FIG. 16 shows graph data obtained by pre-processing using the information of Table 3 as it is.
도 16을 참조하면 그래프 데이터는 복수의 노드(node)를 포함하고, 복수의 노드들간에는 관계(relation)가 형성된다. 복수의 노드들은 각각 속성(property)을 갖는데, 도 16에서는 각 노드들은 사용자들(U1, U2, U3) 및 아이템(I(1), I(2), I(3), I(4), I(5))을 속성으로 갖는다. 또한 관계(relation)들은 구매(p) 및 방문(v)을 속성으로 갖는다. Referring to FIG. 16, the graph data includes a plurality of nodes, and a relation is formed between the plurality of nodes. Each node has properties U1, U2, U3 and items I ( 1 ), I ( 2 ), I ( 3 ), I ( 4 ) I ( 5 )). Also, relations have attributes (p) and (v) as attributes.
도 16에는 관계(relation)가 단방향으로만 표시되어 있다. 그러나, 이는 하나의 예시로서 각 노드들간에 양방향 관계(relation)가 형성될 수 있음은 물론이다.In Fig. 16, the relation is shown only in one direction. However, it goes without saying that a bi-directional relation may be formed between each node as an example.
도 16을 참조하면 상기 표 3에 기재된 데이터가 모두 표시되어 있다. 즉, 사용자(U1)가 아이템(I(1)) 및 아이템(I(3))을 구매하고, 아이템(I(2))에 대하여는 방문을 한 정보, 사용자(U2)가 아이템(I(2)) 및 아이템(I(4))을 구매하고, 아이템(I(1))에 대하여 방문한 정보, 사용자(U3)가 아이템(I(3)) 및 아이템(I(5))을 구매하고, 아이템(I(4))에 대하여 방문한 정보가 하나의 그래프 데이터로 표시된다.Referring to FIG. 16, all the data described in Table 3 are shown. That is, the user (U1) the item (I (1)) and the item (I (3)) purchase, the item (I (2)) is a the visit information, the user (U2) with respect to items of (I (2 ) And item I ( 4 ), information visited for item I ( 1 ), user U3 purchases item I ( 3 ) and item I ( 5 ) The information visited for the item I ( 4 ) is displayed as one graph data.
즉, 전처리 단계(P2)에서는 사용자 이용 정보 전처리 수행부(320)를 이용하여 표 3에 개시된 정보를 처리하여 표 3에 대응하는 그래프 데이터를 생성한다. That is, in the preprocessing step P2, the user
그래프 데이터를 통하여 각 사용자(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)들간의 관계를 알 수 있다.Through the graph data for each user (U1, U2, U3) and for each item (I (1), I ( 2), I (3), I (4), I (5)) easily know information between . Further, the information for each user (U1, U2, U3) and for each item (I (1), I ( 2), I (3), I (4), I (5)) relationship (relation) between the U1, U2, and U3 can be known through the user interface (U1, U2, U3).
저장 단계(P3)에서는 이러한 사용자 이용 정보 전처리 수행부(320)를 이용하여 형성된 그래프 데이터를 그래프 데이터 베이스(330)에 저장한다. 전술한 실시예에서 설명한 바와 같이 사용자 이용 정보 전처리 수행부(320)와 그래프 데이터 베이스(330)는 별개의 독립된 부재일 수 있고, 다른 선택적 실시예로서 하나의 일체화된 형태일 수도 있다.In the storing step P3, the graph data formed using the user-used
아이템 유사도 계산 단계(P4)에서는 아이템들간의 유사도를 계산 및 판단한다. 아이템 유사도 계산 단계(P4)에서는 다양한 방법으로 아이템들간의 유사도를 계산한다. 즉, 전술한 대로 오프라인 배치(offline batch) 처리 방식으로 아이템들간의 유사도를 계산 및 판단할 수 있다.In the item similarity calculation step P4, the degree of similarity between the items is calculated and determined. In the item similarity calculation step (P4), similarity between items is calculated by various methods. That is, as described above, the degree of similarity between items can be calculated and determined by an offline batch processing method.
또한, 사용자의 암시적 선호도를 이용할 수 있다. 즉, 사용자의 구매, 방문 기타 암시적 선호도를 이용하여 아이템들간의 유사도를 계산 및 판단할 수 있다. 또한 유사도 판단부(360)는 주기적으로, 예를들면 1시간 간격으로 아이템들간 유사도를 오프라인 배치 처리 방식으로 계산할 수 있다. 이 때 사용자의 암시적 선호도를 가리키는 구매, 방문 정보등을 주기적으로 제공받아 아이템들간 유사도를 계산 및 판단할 수 있다.In addition, the implicit preference of the user can be used. That is, the similarity degree between the items can be calculated and determined using the user's purchase, visit, or other implicit preferences. In addition, the
이를 위하여 전술한 것과 마찬가지로 선택적 실시예로서 유사도 판단부(360)가 사용자 이용 정보 저장부(310)와 연결되어 정보를 전달 받을 수도 있다. For this, the
아이템 유사도 계산 단계(P4)를 통하여 도 17에 도시한 것과 같이 유사도가 높은 아이템별로 그룹을 선정할 수 있다.The item similarity calculation step P4 can select the group for each item having a high degree of similarity as shown in FIG.
도 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)...)은 서로 유사도가 높은 아이템들이다.17, the items I ( 1 ), I ( 3 ), I ( 4 ), I ( 7 ), I ( 10 ), I ( 13 ) Items I ( 2 ), I ( 5 ), I ( 6 ), I ( 15 ), I ( 19 ), I ( 20 ) Items.
유사도 계산 단계(P4)에서 계산된 아이템 유사도 및 이를 통하여 얻은 유사도가 높은 아이템별로 선정된 그룹은 소정의 저장소에 저장할 수 있다. 예를들면 도 1에 도시한 유사도 판단부(360)내에 저장할 수 있고, 도시하지 않은 별도의 저장소, 특히 임시 저장소에 저장할 수 있다. The group selected by the item similarity calculated in the similarity calculation step P4 and the similarity obtained through the similarity can be stored in a predetermined storage. For example, within the
또 다른 예로서, 도 2에 도시한 실시예에서 설명한 대로 임시 저장부(MQ)에 이러한 정보를 저장할 수 있고, 또한 임시 저장부(MQ)에 저장한 아이템 유사도 정보를 전처리 단계(P2)를 수행하여 전술한 그래프 데이터에 포함시킨 후 그래프 데이터로 저장 단계(P3)에서 저장하는 것도 가능하다.As another example, the item similarity information stored in the temporary storage unit MQ can be stored in the temporary storage unit MQ as described in the embodiment shown in FIG. 2, and the preprocessing step P2 is performed And then stored in the graph data and stored in the graph data storage step P3.
연산 단계(P5)에서는 저장 단계(P3) 및 아이템 유사도 계산 단계(P4)를 통하여 획득한 정보를 이용하여 연산을 수행한다. 특히, 연산 단계(P5)에서는 저장 단계(P3)에서 저장된 그래프 데이터를 연산하여 실시간으로 다양한 작업을 수행할 수 있고, 특정 사용자를 기준으로 사용자와 관계(relation)지어진 아이템들을 추출하고, 추출된 아이템들로부터 연관 사용자 및 연관 아이템들을 용이하게 선정하는 연산을 수행할 수 있다.In the calculation step P5, the calculation is performed using the information obtained through the storage step P3 and the item similarity calculation step P4. In particular, in the calculation step P5, the stored graph data may be calculated in the storage step P3 to perform various operations in real time, and items related to the user may be extracted based on the specific user, Lt; RTI ID = 0.0 > and / or < / RTI >
연산 단계(P5)는 다양한 형태의 선택적 실시예들을 가질 수 있는데, 도 15a 및 도 15b는 도 14의 단계(P5)의 선택적 실시예들을 각각 설명하는 순서도들이다.Operation step P5 may have various alternative embodiments, which are flowcharts that respectively illustrate alternative embodiments of step P5 of Fig. 14, respectively.
먼저, 도 15a를 참조하면 연산 단계(P5)는 특정 사용자와 관계를 갖는 아이템을 파악하는 단계(P51), 상기 P51단계에서 파악한 아이템과 유사도가 높은 아이템들을 선정하는 단계(P52), 상기 P52단계에서 선정한 아이템과 관계를 갖는 사용자들 중 상기 특정 사용자를 제외한 사용자들을 선정하는 단계(P53), 상기 P53단계에서 선정한 사용자들과 관계를 갖는 아이템들을 파악하는 단계(P54) 및 상기 P54단계에서 파악한 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정하는 단계(P55)를 포함한다.Referring to FIG. 15A, the operation step (P5) includes a step (P51) of identifying an item having a relation with a specific user, a step (P52) of selecting items having high similarity to the item identified in the step P51, (P53) of selecting users who are related to the selected item from among the users having a relationship with the selected item in the step P53, determining (P54) items related to the users selected in the step P53, (P55) of selecting an item having no relationship with the specific user.
사용자와 관계를 갖는 아이템을 선정하는 단계(P51)는 특정 사용자와 관계를 갖는 아이템을 파악하는 것으로서, 도 16을 참조하면 특정 사용자, 예를들면 사용자(U1)과 관계를 갖는 아이템들을 파악한다. 즉 사용자(U1)와 구매(p)의 관계를 갖는 아이템(I(1)) 및 아이템(I(3))을 파악하고, 사용자(U1)과 방문(v)의 관계를 갖는 아이템(I(2))을 파악한다. The step P51 of selecting an item having a relation with the user is to grasp an item having a relation with a specific user, and referring to FIG. 16, it grasps items having a relation with a specific user, for example, the user U1. That is, items I ( 1 ) and I ( 3 ) having a relationship of the user U1 and purchase p, 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)...)이다.In step P52, items having similarity to the item identified in step P51 are compared with the items I ( 1 ), I ( 2 ), and I ( 3 ) To identify high-ranked items. Referring to FIG. 17, items having similarity to items I ( 1 ) and I ( 3 ) are items I ( 4 ), I ( 7 ), I ( 10 ), I ( 13 ) .), and the item (I (2)) and the degree of similarity is high items are the items (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)...)을 선정한다.That is, finally the item (I (4), I ( 7), I (10), I (13) ...) or the item (I (5), I ( 6), I (15), I ( 19 ), I ( 20 ) ...) are selected.
상기 P52단계에서 선정한 아이템과 관계를 갖는 사용자들 중 상기 특정 사용자를 제외한 사용자들을 선정하는 단계(P53)에서는, 상기 P52단계에서 선정된 아이템들, 즉 아이템(I(1)) 또는 아이템(I(3))과 유사도가 높은 아이템들, 예를들면 아이템 I(4) 또는 아이템(I(5))과 관계를 갖는 사용자들 중 사용자(U1)을 제외한 사용자들을 선정한다. 먼저, 아이템(I(4))과 관계를 갖는 사용자들은 사용자(U2) 및 사용자(U3)이다. 그리고, 아이템(I(5))과 관계를 갖는 사용자는 사용자(U3)이다. 그리고, 이러한 사용자들 중 사용자(U1)을 제외한다. 그러므로 최종적으로 사용자(U2) 및 사용자(U3)가 선정된다. In the step P53 of selecting users except for the specific user among the users having relations with the item selected in the above step P52, the user selects the items selected in the above step P52, that is, the item I ( 1 ) 3 )), for example, items other than the user U1 among the users having a relationship with the item I ( 4 ) or the item I ( 5 ). First, the users having a relationship with item I ( 4 ) are user U2 and user U3. And, the user having a relationship with the item I ( 5 ) is the user U3. Among these users, the user U1 is excluded. Therefore, the user U2 and the user U3 are finally selected.
전술한 연산부(350)의 연관 사용자 선정부(351)는 이러한 사용자(U2) 및 사용자(U3) 선정 작업을 수행할 수 있다. 즉, 특정 사용자(U1)과 관계를 갖는 아이템들과 관계를 갖는 아이템과 유사한 아이템들과 관계를 갖는 타 사용자(본 실시예에서 연관 사용자라고 지칭)를 선정하는 작업을 수행할 수 있다. The associated
상기 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))이다.In the step P54 of grasping items related to the users selected in the step P53, that is, the related users, items having relations with the selected users, i.e., the user U2 and the user U3 are identified . 16, the user U2 has a relation with the item I ( 1 ), the item I ( 2 ) and the item I ( 4 ), the user U3 has the relationship with the item I ( 3 ) Item I ( 4 ), and item I ( 5 ). That is, the items identified in step (P54) are items (I (1)), the item (I (2)), the item (I (3)), the item (I (4)) and the item (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)는 이러한 아이템 선정 작업을 수행한다. 즉, 연관 사용자와 관계를 갖는 아이템 중 상기 특정 사용자와 관계를 갖지 않는 아이템(본 실시예에서 연관 아이템이라고 지칭)을 선정한다.Of the items identified in the P54 step, step (P55) for selecting an item having no relationship with the particular user of the items identified in step (P54) (I (1) , I (2), I (3), I ( 4 ), I ( 5 )) that are not related to the user (U1). That is the item of the (I (1), I ( 2), I (3), I (4), I (5)) the item having a relationship with the user (U1) of the (I (1), I ( 2) I ( 4 ), I ( 5 )) excluding the items I ( 3 ) and I ( 3 ) The association
추천 단계(P6)에서는 연산 단계(P5)를 통하여 선정된 아이템들을 사용자에게 추천하는 작업을 진행한다. 즉, 사용자(U1)에게 사용자(U1)에게 아이템(I(4), I(5))을 추천할 수 있다.In the recommendation step P6, an operation for recommending the selected items to the user is performed through the operation step P5. That is, the user U1 can recommend items I ( 4 ) and I ( 5 ) to the user U1.
추천 단계(P6)는 다양한 방식으로 추천할 수 있는데, 전술한 실시예와 마찬가지인 바, 구체적인 내용은 생략한다.The recommendation step P6 can be recommended in various ways, which is the same as the above-described embodiment, and a detailed description thereof will be omitted.
특정 사용자로서 사용자(U1)을 설명한 것은 설명의 편의를 위한 것으로서 다른 사용자들 중 어느 하나에 대하여 추천 작업을 수행할 수 있음은 물론이다.It is needless to say that the description of the user U1 as a specific user is for convenience of explanation and can perform recommendation work for any one of the other users.
연산 단계(P5)의 다양한 형태의 선택적 실시예 중 다른 실시예를 설명하기로 한다.Another embodiment among the various types of selective embodiments of the calculation step P5 will be described.
도 15b를 참조하면 연산 단계(P5')는 특정 사용자와 관계를 갖는 아이템을 파악하는 단계(P51'), 상기 P51'단계에서 파악한 아이템과 관계를 갖는 사용자들 중 단계 P51'의 특정 사용자를 제외한 사용자를 선정하는 단계(P52'), 상기 P52'에서 선정된 사용자들과 관계를 갖는 아이템을 파악하는 단계(P53'), 상기 P53'에서 파악한 아이템과 유사도가 높은 아이템을 선정하는 단계(P54') 및 상기 P54'단계에서파악한 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정하는 단계(P55')를 포함한다.Referring to FIG. 15B, the operation step P5 'includes a step P51' of identifying an item having a relation with a specific user, a step P51 'of excluding users having a relationship with the item identified at the step P51' A step of selecting a user (P52 '), a step (P53') of identifying an item having a relationship with the users selected in the P52 ', a step (P54' And a step P55 'of selecting items not related to the specific user among the items identified in the step P54'.
사용자와 관계를 갖는 아이템을 선정하는 단계(P51')는 특정 사용자와 관계를 갖는 아이템을 파악하는 것으로서, 도 16을 참조하면 특정 사용자, 예를들면 사용자(U1)과 관계를 갖는 아이템들을 파악한다. 즉 사용자(U1)와 구매(p)의 관계를 갖는 아이템(I(1)) 및 아이템(I(3))을 파악하고, 사용자(U1)과 방문(v)의 관계를 갖는 아이템(I(2))을 파악한다. The step P51 'of selecting an item having a relation with the user is to identify an item having a relation with a specific user, and referring to FIG. 16, the item having a relationship with a specific user, for example, the user U1 is identified . That is, items I ( 1 ) and I ( 3 ) having a relationship of the user U1 and purchase p, 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)를 최종적으로 선정한다. In step P52 'of selecting a user other than the specific user in step P51' among the users having a relationship with the item identified in step P51 ', the items identified in step P51', that is, items I ( 1 ) ), Item (I ( 2 )), and item (I ( 3 )). That is, the user U1 and the user U2 who are users who have relations with the item I ( 1 ) and those who have the relationship with the item I ( 2 ) And grasps the user U1 and the user U3 who are users who have a relationship with the item I ( 3 ). The user (U2) and the user (U3) excluding the user U1, which is a specific user, are finally selected.
전술한 연산부(350)의 연관 사용자 선정부(351)는 이러한 사용자(U2) 및 사용자(U3) 선정 작업을 수행할 수 있다. 즉, 특정 사용자(U1)과 관계를 갖는 아이템들과 관계를 갖는 타 사용자(본 실시예에서 연관 사용자라고 지칭)를 선정하는 작업을 수행할 수 있다. The associated
상기 P52'에서 선정된 사용자들과 관계를 갖는 아이템을 파악하는 단계(P53')에서는, 사용자(U2) 및 사용자(U3)가 각각 관계를 갖는 아이템들을 파악한다. In the step P53 'of grasping the items related to the users selected in the step P52', the user U2 and the user U3 grasp the items having the respective relations.
먼저, 사용자(U2)와 관계를 갖는 아이템들을 파악하기로 한다. 도 16을 참조하면 사용자(U2)와 구매(p)의 관계를 갖는 아이템(I(2)) 및 아이템(I(4))을 파악하고, 사용자(U2)와 방문(v)의 관계를 갖는 아이템(I(1))을 파악하고, 사용자(U3)와 구매(p)의 관계를 갖는 아이템(I(3)), 아이템(I(5)) 및 방문(v)의 관계를 갖는 아이템(I(4))을 파악한다. First, the items related to the user U2 will be grasped. 16, an item I ( 2 ) and an item I ( 4 ) having a relation of a user U2 and a purchase p are grasped and a relationship between a user U2 and a visit v item (I (1)) to identify and user items with the relationship (U3) and purchasing (p) item (I (3)), the item (I (5)) and landing (v) having a relationship ( I ( 4 ).
*상기 P53'에서 파악한 아이템과 유사도가 높은 아이템을 선정하는 단계(P54')에서는 상기 파악한 아이템들, 즉 아이템(I(1)), 아이템(I(2)), 아이템(I(3)), 아이템(I(4)) 및 아이템(I(5))와 유사도가 높은 아이템들을 선정한다. The item I ( 1 ), the item I ( 2 ), and the item I ( 3 ) are selected in the step P54 'of selecting an item having a high degree of similarity to the item identified in the P53' , Items (I ( 4 )) and items (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)...)이다.Referring to Figure 17, the item (I (1)), the item (I (3)) or the item (I (4)) and the degree of similarity is high items are items of (I (7), I ( 10), I (13 ) ...), and the items having similarities to items I ( 2 ) and I ( 5 ) are items I ( 7 ), I ( 10 ), I ( 13 ) .
상기 P54'단계에서 파악한 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템을 선정하는 단계(P55') 에서는 상기 아이템 들 중 사용자(U1)과 관계를 갖지 않는 아이템을 선정한다. 그러므로 최종적으로, 아이템들(I(7), I(10), I(13)...) 및 아이템들(I(7), I(10), I(13)...)을 선정한다. 전술한 연산부(350)의 연관 아이템 선정부(352)는 이러한 아이템 선정 작업을 수행한다. 즉, 연관 사용자와 관계를 갖는 아이템과 유사한 아이템들 중 상기 특정 사용자와 관계를 갖지 않는 아이템(본 실시예에서 연관 아이템이라고 지칭)을 선정한다.In the step P55 'of selecting items not related to the specific user among the items identified in the step P54', an item having no relationship with the user U1 among the items is selected. Finally, the items I ( 7 ), I ( 10 ), I ( 13 ) ... and the items I ( 7 ), I ( 10 ), I ( 13 ) . The association
추천 단계(P6)에서는 연산 단계(P5)를 통하여 선정된 아이템들을 사용자에게 추천하는 작업을 진행한다. 즉, 사용자(U1)에게 아이템들(I(7), I(10), I(13)...) 및 아이템들(I(7), I(10), I(13)...)을 추천할 수 있다.In the recommendation step P6, an operation for recommending the selected items to the user is performed through the operation step P5. That is, the user (U1) Item (I (7), I ( 10), I (13) ...) and the item (I (7), I ( 10), I (13) ...) Can be recommended.
추천 단계(P6)는 다양한 방식으로 추천할 수 있는데, 전술한 실시예와 마찬가지인 바, 구체적인 내용은 생략한다.The recommendation step P6 can be recommended in various ways, which is the same as the above-described embodiment, and a detailed description thereof will be omitted.
특정 사용자로서 사용자(U1)을 설명한 것은 설명의 편의를 위한 것으로서 다른 사용자들 중 어느 하나에 대하여 추천 작업을 수행할 수 있음은 물론이다.It is needless to say that the description of the user U1 as a specific user is for convenience of explanation and can perform recommendation work for any one of the other users.
본 실시예의 아이템 추천 시스템(300) 및 이를 이용한 추천 방법은 전술한 실시예들과 마찬가지로 사용자 이용 정보 저장부(310)를 통하여 사용자 이용 정보를 용이하게 저장할 수 있고, 선택적 실시예로서, 실시간으로 처리한 정보 및 첫 방문자임을 표시하여 저장할 수 있다. The
즉, 연산부(350)를 통한 가공 단계에서 위와 같이 용이한 방법으로 파악된 사용자들과 아이템들간의 관계를 이용하여 연산 작업을 진행하여 다양한 작업을 수행한다. 즉, 그래프 데이터 형태로 저장된 데이터들을 모두 연산하는 것이 아니고, 필요한 사용자 또는 필요한 아이템에 관련된 관계(relation)를 포함하는 정보만 불러와 이에 대한 연산만을 수행하여 작업을 수행한다.That is, at the machining step through the
이를 통하여 실시간으로 신속한 연산이 가능하므로 원하는 때에 최신의 정보를 통한 연산, 예를들면 사용자와 아이템들 각각의 관계 정보 선별 작업을 용이하게 진행할 수 있다.Accordingly, it is possible to perform a quick calculation in real time, so that it is possible to easily carry out calculations based on the latest information at a desired time, for example, a relation information sorting operation for each user and items.
그리고, 아이템들간 유사도를 판단하여 아이템에 기반한 추천 작업을 진행하므로 추천 작업의 속도를 용이하게 증가할 수 있다. 이와 함께 특정 사용자와 관계를 갖는 아이템들과 관계를 갖는 타 사용자들, 즉 연관 사용자를 선정하고, 연관 사용자와 관계를 갖는 아이템들 중 특정 사용자와 관계를 갖지 않는 아이템들, 즉 연관 아이템들을 선정하여 추천 작업을 병행하여 진행할 수 있으므로 실시간으로 다양한 형태의 효과적인 추천 작업을 진행할 수 있다. 즉, 추천 작업을 진행할 사용자들에 대한 정보 및 이와 연관된 사용자들에 대한 정보만을 그래프 데이터 베이스에서 불러와 빠른 시간에 연산이 가능하므로 언제든지 실시간으로 원하는 추천 작업을 용이하게 진행할 수 있다.In addition, since the recommendation work based on the item is judged by judging the similarity between the items, the speed of recommendation work can be easily increased. At the same time, other users having a relationship with items related to a specific user, that is, an associated user, are selected, and items having no relationship with a specific user, i.e., related items, are selected Since recommendation work can be carried out in parallel, various types of recommendation work can be performed in real time. That is, only the information about the users who will perform the recommendation work and the information about the users related thereto can be retrieved from the graph database and can be operated in a short time, so that the recommendation work can be easily performed in real time at any time.
이와 같이 본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 당해 기술 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art . Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.
실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다.Embodiments may be represented by functional block configurations and various processing steps. These functional blocks may be implemented in a wide variety of hardware and / or software configurations that perform particular functions. For example, embodiments may include integrated circuit components such as memory, processing, logic, look-up tables, etc., that may perform various functions by control of one or more microprocessors or other control devices Can be employed.
본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다. Similar to the components of the present invention may be implemented with software programming or software components, embodiments may include various algorithms implemented in a combination of data structures, processes, routines, or other programming constructs, such as C, C ++ , Java (Java), assembler, and the like. Functional aspects may be implemented with algorithms running on one or more processors. The embodiments may also employ conventional techniques for electronic configuration, signal processing, and / or data processing. Terms such as "mechanism", "element", "means", "configuration" may be used broadly and are not limited to mechanical and physical configurations. The term may include the meaning of a series of routines of software in conjunction with a processor or the like.
실시예에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 실시 예의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, "필수적인", "중요하게" 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.The specific implementations described in the embodiments are, by way of example, not intended to limit the scope of the embodiments in any way. For brevity of description, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of such systems may be omitted. Also, the connections or connecting members of the lines between the components shown in the figures are illustrative of functional connections and / or physical or circuit connections, which may be replaced or additionally provided by a variety of functional connections, physical Connection, or circuit connections. Also, unless explicitly mentioned, such as "essential "," importantly ", etc., it may not be a necessary component for application of the present invention.
실시예의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 실시 예에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 실시 예에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 실시 예들이 한정되는 것은 아니다. 실시 예에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 실시 예를 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 실시 예의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.The use of the terms "above" and similar indication words in the description of the embodiments (in particular in the claims) may refer to both singular and plural. In addition, in the embodiment, when a range is described, it includes the invention to which the individual values belonging to the above range are applied (if there is no description to the contrary), the individual values constituting the above range are described in the detailed description . Finally, the steps may be performed in an appropriate order, unless explicitly stated or contrary to the description of the steps constituting the method according to the embodiment. The embodiments are not necessarily limited to the description order of the steps. The use of all examples or exemplary terms (e.g., etc.) in the examples is for the purpose of describing the embodiments in detail and is not intended to be limited by the scope of the claims, It is not. It will also be appreciated by those skilled in the art that various modifications, combinations, and alterations may be made depending on design criteria and factors within the scope of the appended claims or equivalents thereof.
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: 실시간 처리부100, 200, 300: Item recommendation system
110, 110 ' 210, 310:
101, 101 '201, and 301:
102, 102 ' 202, 302:
120, 220, and 320: a user use information pre-
130, 230, 330: a graph database
150, 250, and 350:
MQ: Temporary storage unit
SR: real-time processing unit
Claims (11)
상기 사용자 이용 정보 저장부의 임시 저장부로부터 정보를 전달받아 전처리하여 상기 사용자 및 상기 웹사이트에서 제공하는 복수의 아이템들간의 관계(relation)를 형성하고, 이를 기초로 그래프 데이터로 변환하는 사용자 이용 정보 전처리 수행부;
상기 사용자 이용 정보 전처리 수행부에서 전처리 수행되어 변환된 그래프 데이터를 저장하는 그래프 데이터 베이스;
상기 사용자 이용 정보 저장부에 연결되어 사용자의 구매 또는 방문을 포함하는 암시적 선호도를 이용하여 상기 아이템들간의 유사도를 설정된 시간 주기에 따라 오프라인 배치 처리 방식으로 판단하는 유사도 판단부;
상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터 및 상기 유사도 판단부에서 판단한 아이템 유사도 정보를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 연산부; 및
상기 연산부에서 선정한 상기 아이템을 상기 사용자에게 하나 이상의 방식으로 추천하는 추천부를 포함하고,
상기 사용자 이용 정보 전처리 수행부는 상기 사용자와 아이템들간의 상호 관련 정보를, 복수의 노드(node), 상기 복수의 노드들간의 관계(relation) 및 상기 노드 및 상기 관계가 갖는 하나 이상의 속성(property)으로 표시하여 그래프 데이터로 변환하고,
상기 사용자 및 상기 아이템들 각각은 상기 복수의 노드 각각의 속성에 대응되고,
상기 사용자를 속성으로 갖는 노드와 상기 아이템을 속성으로 갖는 노드 간의 관계는 상기 노드 간을 연결하는 선으로 표시하고,
상기 선으로 표시된 상기 노드 간의 관계는 상이한 하나 이상의 속성을 갖고, 상기 속성을 구별하여 표시하고,
상기 노드 간의 관계가 갖는 속성은, 상기 웹사이트의 접속을 통한 상기 사용자의 상기 아이템에 대한 하나 이상의 활동과 관련된 활동 정보에 대응하는 값으로서, 구매(P) 및 방문(V)중 하나이고,
상기 사용자를 속성으로 갖는 노드와 상기 아이템을 속성을 갖는 노드는 구매(P) 및 방문(V) 중 하나를 속성으로 하는 관계로 연결되고 상기 구매(P)를 속성으로 하는 관계와 상기 방문(V)을 속성으로 하는 관계는 구별되어 표시되는 것을 특징으로 하는 아이템 추천 시스템.A first user storage unit for storing basic information including identification information of a user accessing a web site and activity information in real time, a second user storage unit for storing visit information of the user, And a temporary storage unit for storing the information in the form of a message queue by receiving the information from the first storage unit and the second storage unit;
A pre-processing unit for receiving and pre-processing information from the temporary storage unit of the user-use-information storage unit to form a relation between a plurality of items provided by the user and the website, and converting the user- Performing part;
A graph database for storing pre-processed and transformed graph data in the user utilization information preprocessing unit;
A degree of similarity determination unit connected to the user-use-information storage unit and determining the degree of similarity between the items based on an implicit preference including purchase or visit of the user as an offline placement processing scheme according to a set time period;
An operation unit for retrieving specific data among the data stored in the graph database and the item similarity information determined by the similarity degree determination unit and selecting one or more specific items among the items provided in the website; And
And a recommendation unit for recommending the item selected by the operation unit to the user in one or more ways,
The user-utilization-information preprocessing unit may associate the mutual association information between the user and the items with a plurality of nodes, a relation between the plurality of nodes, and at least one property having the node and the relation And converts it into graph data,
Each of the user and the items corresponding to an attribute of each of the plurality of nodes,
Wherein a relationship between a node having the user as an attribute and a node having the attribute as an attribute is represented by a line connecting the nodes,
Wherein the relationship between the nodes indicated by the lines has one or more attributes different from each other,
Wherein the attribute of the relationship between the nodes is one of a purchase (P) and a visit (V), the value corresponding to activity information associated with one or more activities of the user on the item through connection to the website,
Wherein a node having the user as an attribute and a node having the attribute as an attribute are connected in a relationship having attributes of purchase (P) and visit (V) ) As attributes are displayed separately.
상기 연산부는 상기 사용자와 관련을 갖는 연관 사용자를 선정하는 연관 사용자 선정부 및 상기 연관 사용자와 관련을 갖는 연관 아이템을 선정하는 연관 아이템 선정부를 포함하는 아이템 추천 시스템.The method according to claim 1,
Wherein the operation unit includes an associated user selecting unit for selecting an associated user related to the user and an associated item selecting unit for selecting an associated item associated with the associated user.
상기 연관 사용자 선정부가 선정한 상기 연관 사용자는 상기 사용자 중 일 사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들과 관계를 갖는 타 사용자인 것을 특징으로 하고,
상기 연관 아이템 선정부가 선정한 상기 연관 아이템은 상기 타사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들 중 상기 일 사용자와 관계를 갖지 않는 아이템들인 것을 특징으로 하고,
상기 유사한 아이템들은, 상기 유사도 판단부를 통하여 아이템들간의 유사도를 판단한 후에, 상기 유사도 판단부를 통하여 판단된 유사도를 이용하여 상기 연산부에 의하여 결정되는 것을 포함하는 아이템 추천 시스템.3. The method of claim 2,
And the related user selected by the related user selecting unit is another user having a relationship with one of the users or a relationship with similar items,
The association item selected by the association item selection unit is items having no relationship with the one user among the items having the relation with the other user or similar items,
Wherein the similar items include those determined by the operation unit using similarity determined through the similarity determination unit after determining similarities between the items through the similarity determination unit.
상기 사용자의 활동과 관련된 하나 이상의 정보는 구매 정보 또는 장바구니 정보를 포함하는 아이템 추천 시스템. The method according to claim 1,
Wherein the at least one item of information related to the activity of the user includes purchase information or shopping cart information.
상기 실시간 처리부는 상기 사용자의 방문이 첫 방문인지를 판단할 수 있도록 처리하는 것을 특징으로 하는 아이템 추천 시스템. The method according to claim 1,
Wherein the real-time processing unit processes the item to determine whether the visit of the user is the first visit.
사용자 이용 정보 전처리 수행부를 이용하여 상기 임시 저장부로부터 정보를 전달받아 상기 사용자의 복수의 이용 정보를 전처리하여 상기 사용자와 상기 웹사이트에서 제공하는 복수의 아이템들간의 관계(relation)를 형성하고, 이를 기초로 그래프 데이터로 변환하는 단계;
상기 그래프 데이터를 그래프 데이터 베이스에 저장하는 단계;
상기 사용자 이용 정보 저장부의 정보를 이용하여 사용자의 구매 또는 방문을 포함하는 암시적 선호도를 이용하여 상기 아이템들간의 유사도를 설정된 시간 주기에 따라 오프라인 배치 처리 방식으로 판단하는 유사도 판단 단계;
상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터 및 상기 유사도 판단 단계에서 판단한 아이템 유사도 정보를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 단계; 및
네트워크를 통하여 추천부를 이용하여 상기 선정한 아이템을 상기 사용자가 인식하도록 상기 선정한 아이템을 상기 사용자에게 공지하는 하나 이상의 방법으로 추천하는 단계를 포함하고,
상기 그래프 데이터로 변환하는 단계는 상기 사용자와 아이템들의 간의 상호 관련 정보를, 복수의 노드(node), 상기 복수의 노드들간의 관계(relation) 및 상기 노드 및 상기 관계가 갖는 하나 이상의 속성(property)으로 표시하여 그래프 데이터로 변환하고,
상기 사용자 및 상기 아이템들 각각은 상기 복수의 노드 각각의 속성에 대응되고,
상기 사용자를 속성으로 갖는 노드와 상기 아이템을 속성으로 갖는 노드 간의 관계는 상기 노드 간을 연결하는 선으로 표시하고,
상기 선으로 표시된 상기 노드 간의 관계는 상이한 하나 이상의 속성을 갖고, 상기 속성을 구별하여 표시하고,
상기 노드 간의 관계가 갖는 속성은, 상기 웹사이트의 접속을 통한 상기 사용자의 상기 아이템에 대한 하나 이상의 활동과 관련된 활동 정보에 대응하는 값으로서, 구매(P) 및 방문(V)중 하나이고,
상기 사용자를 속성으로 갖는 노드와 상기 아이템을 속성을 갖는 노드는 구매(P) 및 방문(V) 중 하나를 갖는 속성으로 하는 관계로 연결되고, 상기 관계로 연결 시 상기 구매(P)를 속성으로 하는 관계와 상기 방문(V)을 속성으로 하는 관계는 구별되어 표시되는 것을 특징으로 하는 아이템 추천 방법.A first user storage unit storing basic information including identification information of a user accessing a website and real-time activity information, a second user storage unit storing user's visit information, And a temporary storage unit for receiving the information from the first storage unit and the second storage unit and storing the received information in a message queue form, Obtaining usage information;
A relation between a user and a plurality of items provided on the web site is formed by receiving information from the temporary storage unit using a user use information preprocessing unit and preprocessing a plurality of usage information of the user, Converting into graph data on a basis;
Storing the graph data in a graph database;
A degree of similarity determining step of determining the degree of similarity between the items using an implicit preference including a user's purchase or visit using the information of the user-use information storage unit as an offline placement processing method according to a set time period;
Selecting one or more specific items among the items provided in the website by searching for specific data among the data stored in the graph database and item similarity information determined in the similarity determination step; And
Recommending the selected item to one or more methods that inform the user that the selected item is recognized by the user using a recommendation section via a network,
Wherein the step of transforming the graph data into the graph data comprises: correlating information between the user and the items to a plurality of nodes, a relation between the plurality of nodes, and at least one property having the node and the relation. And converts it into graph data,
Each of the user and the items corresponding to an attribute of each of the plurality of nodes,
Wherein a relationship between a node having the user as an attribute and a node having the attribute as an attribute is represented by a line connecting the nodes,
Wherein the relationship between the nodes indicated by the lines has one or more attributes different from each other,
Wherein the attribute of the relationship between the nodes is one of a purchase (P) and a visit (V), the value corresponding to activity information associated with one or more activities of the user on the item through connection to the website,
The node having the attribute as the attribute and the node having the attribute as the attribute are connected in a relationship having attributes of one of purchase (P) and visit (V), and the connection And the relationship of the visit (V) as an attribute are distinguished and displayed.
상기 특정 아이템을 선정하는 단계는,
상기 사용자 중 일 사용자와 관계를 갖는 아이템을 파악하는 단계; 및
상기 파악한 아이템과 유사도가 높은 아이템을 선정하는 단계를 포함하는 아이템 추천 방법. The method according to claim 6,
Wherein the step of selecting the specific item comprises:
Identifying an item having a relationship with a user of the user; And
And selecting an item having a similarity to the identified item.
상기 그래프 데이터 베이스에 저장된 데이터 중 특정 데이터를 불러와 연산하여 상기 웹사이트에서 제공하는 아이템들 중 하나 이상의 특정 아이템을 선정하는 단계는,
상기 사용자와 관련을 갖는 연관 사용자를 선정하는 단계 및 상기 연관 사용자와 관련을 갖는 연관 아이템을 선정하는 단계를 포함하는 아이템 추천 방법.The method according to claim 6,
Wherein the step of selecting one or more specific items among the items provided by the web site by searching specific data among the data stored in the graph database,
Selecting an associated user associated with the user, and selecting an associated item associated with the associated user.
상기 사용자와 관련을 갖는 연관 사용자를 선정하는 단계는 상기 사용자 중 일 사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들과 관계를 갖는 타 사용자를 선정하는 것을 특징으로 하고,
상기 연관 아이템을 선정하는 단계는 상기 타사용자와 관계를 갖는 아이템들 또는 이와 유사한 아이템들 중 상기 일 사용자와 관계를 갖지 않는 아이템들을 선정하는 것을 특징으로 하고,
상기 유사한 아이템들은,
상기 유사도 판단 단계를 통하여 아이템들간의 유사도를 판단한 후에, 상기 유사도 판단 단계를 통하여 판단된 유사도를 이용하여 상기 하나 이상의 특정 아이템을 선정하는 단계에서 결정되는 것을 포함하는 아이템 추천 방법.9. The method of claim 8,
Wherein the step of selecting an associated user related to the user selects an item having a relationship with one of the users or another user having a relationship with similar items,
Wherein the step of selecting the associated item is to select items that are not related to the one user among items having a relationship with the other user or similar items,
The similar items include,
Determining the degree of similarity between the items through the similarity determination step, and then selecting the one or more specific items based on the degree of similarity determined through the similarity determination step.
상기 사용자의 활동과 관련된 하나 이상의 정보는 구매 정보 또는 장바구니 정보를 포함하는 아이템 추천 방법. The method according to claim 6,
Wherein the one or more pieces of information associated with the activity of the user includes purchase information or shopping cart information.
상기 사용자의 방문 정보를 실시간으로 업데이트 하는 단계는 상기 사용자의 방문이 첫 방문인지를 판단할 수 있도록 처리하는 단계를 더 포함하는 아이템 추천 방법. The method according to claim 6,
Wherein the step of updating the user's visit information in real time further includes processing the user's visit to determine whether the visit is the first visit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160040454A KR101745604B1 (en) | 2016-04-01 | 2016-04-01 | Item recommend system and method for recommending item |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160040454A KR101745604B1 (en) | 2016-04-01 | 2016-04-01 | Item recommend system and method for recommending item |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140048208A Division KR20150121945A (en) | 2014-04-22 | 2014-04-22 | Item recommend system and method for recommending item |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160043528A KR20160043528A (en) | 2016-04-21 |
KR101745604B1 true KR101745604B1 (en) | 2017-06-09 |
Family
ID=55918005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160040454A KR101745604B1 (en) | 2016-04-01 | 2016-04-01 | Item recommend system and method for recommending item |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101745604B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102307517B1 (en) * | 2019-09-17 | 2021-09-30 | 인하공업전문대학산학협력단 | Method and apparatus of recommending goods based on network |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014067180A (en) * | 2012-09-25 | 2014-04-17 | Nippon Telegr & Teleph Corp <Ntt> | Information recommendation device, method, and program |
-
2016
- 2016-04-01 KR KR1020160040454A patent/KR101745604B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014067180A (en) * | 2012-09-25 | 2014-04-17 | Nippon Telegr & Teleph Corp <Ntt> | Information recommendation device, method, and program |
Also Published As
Publication number | Publication date |
---|---|
KR20160043528A (en) | 2016-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9569499B2 (en) | Method and apparatus for recommending content on the internet by evaluating users having similar preference tendencies | |
KR20150121945A (en) | Item recommend system and method for recommending item | |
CN109559208A (en) | A kind of information recommendation method, server and computer-readable medium | |
CN105426528B (en) | A kind of retrieval ordering method and system of commodity data | |
CN106844407B (en) | Tag network generation method and system based on data set correlation | |
US9727906B1 (en) | Generating item clusters based on aggregated search history data | |
KR20180118597A (en) | Method and apparatus for identifying network access behavior, servers and storage media | |
CN110322300B (en) | Data processing method and device, electronic equipment and storage medium | |
KR102307517B1 (en) | Method and apparatus of recommending goods based on network | |
CN111090686B (en) | Data processing method, device, server and storage medium | |
CN110717097A (en) | Service recommendation method and device, computer equipment and storage medium | |
WO2020016204A1 (en) | Determining item relevancy | |
CN112825182A (en) | Method and device for determining recommended commodities | |
CN114936301A (en) | Intelligent household building material data management method, device, equipment and storage medium | |
KR20190081671A (en) | Method and server for searching for similar items on online shoppingmall integrated management system | |
CN110851737A (en) | Recommendation method and device, electronic equipment and computer storage medium | |
CN103353865A (en) | Barter electronic trading commodity recommendation method based on position | |
US20060117252A1 (en) | Systems and methods for document analysis | |
KR101745604B1 (en) | Item recommend system and method for recommending item | |
CN113469786A (en) | Method and device for recommending articles, computer equipment and storage medium | |
CN110827101A (en) | Shop recommendation method and device | |
CN110750238A (en) | Method and device for determining product requirements and electronic equipment | |
CN112036988B (en) | Label generation method and device, storage medium and electronic equipment | |
CN110992109B (en) | Real estate customer analysis method, apparatus and storage medium based on association rule | |
Vijayarani et al. | An efficient algorithm for mining frequent items in data streams |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
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 |