WO2014178536A1 - Method for providing recommendation item, and recording medium for recording program and apparatus for same - Google Patents

Method for providing recommendation item, and recording medium for recording program and apparatus for same Download PDF

Info

Publication number
WO2014178536A1
WO2014178536A1 PCT/KR2014/002552 KR2014002552W WO2014178536A1 WO 2014178536 A1 WO2014178536 A1 WO 2014178536A1 KR 2014002552 W KR2014002552 W KR 2014002552W WO 2014178536 A1 WO2014178536 A1 WO 2014178536A1
Authority
WO
WIPO (PCT)
Prior art keywords
item
recommendation
log data
user
recommended
Prior art date
Application number
PCT/KR2014/002552
Other languages
French (fr)
Korean (ko)
Inventor
이채현
박소라
정헌
Original Assignee
에스케이플래닛 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이플래닛 주식회사 filed Critical 에스케이플래닛 주식회사
Publication of WO2014178536A1 publication Critical patent/WO2014178536A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4667Processing of monitored end-user data, e.g. trend analysis based on the log file of viewer selections

Abstract

Disclosed are a method for providing a recommendation item, a recording medium for recording a program for the same, and an apparatus for the same. In detail, user log data relating to a web site is collected from a terminal which has accessed a web site through a script inserted into the web site, a recommendation result for one or more recommendation items relating to each source item provided from the web site is calculated using a recommendation algorithm on the basis of the user log data, and a recommendation item list relating to a source item requested from the recommendation result is extracted in response to a recommendation item list request received from a web server of the web site, and is transmitted to the web server.

Description

추천 아이템 제공 방법, 이를 위한 프로그램을 기록한 기록 매체 및 장치Method for providing recommended item, recording medium and apparatus for recording program therefor
본 발명은 추천 아이템 제공 방법에 관한 것으로서, 보다 상세하게 웹 사이트에서 서비스하는 아이템과 관련된 다른 아이템을 추천하기 위한 추천 아이템 제공 방법, 이를 위한 프로그램을 기록한 기록 매체 및 장치에 관한 것이다.The present invention relates to a method for providing a recommendation item, and more particularly, to a method for providing a recommendation item for recommending another item related to an item served by a web site, a recording medium, and an apparatus for recording a program therefor.
인터넷 사용이 보편화되면서 사용자들은 인터넷을 통하여 뉴스, 지식 문서, 게임, 동영상 등 다양한 분야와 관련된 컨텐츠를 획득할 수 있게 되었다. 또한, 많은 서비스 업체들이 쇼핑몰을 개설하고 사용자들에게 다양하고 막대한 양의 상품, 서비스들을 제공하고 있다.As the use of the Internet becomes more common, users can acquire contents related to various fields such as news, knowledge documents, games, and videos through the Internet. In addition, many service companies have opened shopping malls and provide users with a huge variety of products and services.
다만, 인터넷을 통해 획득할 수 있는 정보, 상품, 서비스 등은 기하급수적으로 증가하고 있기 때문에, 소비자가 자신이 진정으로 희망하는 정보나 상품을 찾으려면 많은 시간이 필요하다. 이에 따라 각종 인터넷 사이트에서는 방문한 사용자에게 관련 동영상 추천, 상품 추천 등 적절한 추천 정보를 제공하는 서비스를 제공하고 있으며, 추천 시스템을 솔루션으로 제공하는 업체들도 존재한다. 하지만, 이러한 추천 시스템을 도입하기 위해서는, 기본적으로 대용량 데이터를 처리할 수 있는 다수의 서버가 필요하며, 또한 추천 결과를 실제 서비스에 연동하기 위한 추가 개발 또한 필요하다.However, since information, products, and services that can be acquired through the Internet are increasing exponentially, a lot of time is required for consumers to find information or products that they really want. Accordingly, various Internet sites provide services that provide appropriate recommendation information such as related video recommendation and product recommendation to visited users, and there are companies that provide a recommendation system as a solution. However, in order to introduce such a recommendation system, a large number of servers capable of processing a large amount of data are basically required, and further development is required to link the recommendation result to an actual service.
본 발명의 목적은 각종 컨텐츠, 상품 내지 서비스를 제공하는 웹 사이트에 별도의 추가 개발 없이 자체 서비스에 바로 적용이 가능한 추천 아이템 제공 방법, 이를 위한 프로그램을 기록한 기록 매체 및 장치를 제안한다.Disclosure of Invention An object of the present invention is to propose a method for providing a recommendation item that can be directly applied to its own service without additional development on a web site that provides various contents, products or services, and a recording medium and a device recording a program therefor.
또한, 본 발명의 목적은 사용자로부터 발생되는 피드백을 추천 결과에 반영함으로써 보다 적합한 아이템을 추천할 수 있는 추천 아이템 제공 방법, 이를 위한 프로그램을 기록한 기록 매체 및 장치를 제안한다.In addition, an object of the present invention is to propose a method for providing a recommended item that can recommend a more suitable item by reflecting the feedback generated from the user in the recommendation result, a recording medium and a device recording a program therefor.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned above will be clearly understood by those skilled in the art from the following description. Could be.
본 발명의 일 양상은, 서비스 장치에 있어서, 데이터 송수신을 위한 통신부, 사용자 로그 데이터, 추천 결과를 저장하는 저장부 및 웹 사이트에 삽입된 스크립트(script)를 통해 웹 사이트에 접속한 단말로부터 웹 사이트와 관련된 사용자 로그 데이터를 수집하고, 사용자 로그 데이터를 기반으로 추천 알고리즘을 이용하여 웹 사이트에서 서비스하는 각 소스 아이템과 관련된 하나 이상의 추천 아이템에 대한 추천 결과를 산출하고, 웹 사이트의 웹 서버로부터 수신한 추천 아이템 리스트 요청에 대한 응답으로 추천 결과에서 요청된 소스 아이템과 관련된 추천 아이템 리스트를 추출하여 웹 서버에 전송하는 제어부를 포함한다.In one aspect of the present invention, a service apparatus, comprising: a communication unit for data transmission and reception, a user log data, a storage unit storing a recommendation result, and a website from a terminal connected to a website through a script inserted in the website; Collecting user log data related to the related data, using the recommendation algorithm based on the user log data, calculating recommendation results for one or more recommended items related to each source item serviced by the website, and receiving the result from the web server of the website. And a control unit for extracting a recommendation item list related to the requested source item from the recommendation result in response to the recommendation item list request and transmitting the same to the web server.
바람직하게, 제어부는, 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 소스 아이템과 관련된 추천 아이템에 대한 클릭률을 계산할 수 있다.Preferably, the controller may calculate a click rate for the recommendation item associated with each source item through the click log data and the view log data for the recommendation item.
바람직하게, 제어부는, 클릭률이 일정 기간 동안 계속하여 임계값 미만인 추천 아이템을 추천 결과에서 제외할 수 있다.Preferably, the controller may exclude a recommendation item whose clickthrough rate is lower than a threshold value for a predetermined period of time from the recommendation result.
바람직하게, 제어부는, 사용자 로그 데이터를 미리 정해진 조건 혹은 임의로 복수의 그룹으로 구분하고, 각 그룹 별로 서로 다른 추천 알고리즘을 이용하여 추천 결과를 산출할 수 있다.Preferably, the controller may classify the user log data into a predetermined condition or arbitrarily into a plurality of groups, and calculate a recommendation result by using a different recommendation algorithm for each group.
바람직하게, 제어부는, 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 그룹 별로 클릭률을 계산하고, 클릭률이 가장 높은 그룹에 이용된 추천 알고리즘으로 추천 결과를 산출할 수 있다.Preferably, the controller may calculate a click rate for each group through the click log data and the view log data of the recommended item, and calculate a recommendation result using a recommendation algorithm used for the group having the highest click rate.
바람직하게, 제어부는, 서비스 장치로 연결되는 추천 아이템의 링크를 통해 단말이 접속되면, 단말의 접속 URL을 통해 추천 아이템에 대한 클릭 로그 데이터를 획득할 수 있다.Preferably, when the terminal is connected through a link of the recommended item connected to the service device, the controller may obtain click log data for the recommended item through the access URL of the terminal.
바람직하게, 제어부는, 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)에서 미리 정해진 파라미터 값이 포함되어 있는 사용자 데이터를 추출하여 추천 아이템에 대한 클릭 로그 데이터로 획득할 수 있다.Preferably, the controller may extract user data including a predetermined parameter value from a visited URL (Uniform Resource Locator) included in the user log data and obtain the click log data for the recommended item.
바람직하게, 제어부는, 상 웹 서버의 추천 아이템 리스트 요청이 있으면, 추천 아이템 리스트를 통해 추천 아이템에 대한 뷰 로그 데이터를 획득할 수 있다.Preferably, if there is a recommendation item list request from the web server, the controller may obtain view log data for the recommendation item through the recommendation item list.
바람직하게, 제어부는, 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)로부터 방문 URL 상에 표시되는 아이템 정보 및 방문 URL에서 단말의 동작과 관련된 동작 정보를 추출할 수 있다.Preferably, the controller may extract operation information related to the operation of the terminal from the item information displayed on the visit URL and the visit URL from the visit URL (Uniform Resource Locator) included in the user log data.
바람직하게, 제어부는, 각 소스 아이템 별로 추천 결과를 구분하여 저장하되, 웹 사이트를 구분하기 위한 서비스 식별자, 소스 아이템에 대한 아이템 식별자 및 소스 아이템과 관련된 추천 아이템에 대한 추천 아이템 식별자를 합한 문자열에 해쉬(hash) 함수를 적용하여 계산한 값을 추천 결과와 함께 저장할 수 있다.Preferably, the controller divides and stores the recommendation result for each source item, and hashes the string including a service identifier for identifying a website, an item identifier for the source item, and a recommendation item identifier for the recommendation item related to the source item. By applying the hash function, you can store the calculated value with the recommended result.
바람직하게, 제어부는, 요청된 소스 아이템과 관련된 추천 아이템 리스트를 JSON(JavaScript Object Notation) 포맷 또는 아이프레임(iframe) 포맷으로 전송할 수 있다.Preferably, the controller may transmit a list of recommended items related to the requested source item in a JavaScript Object Notation (JSON) format or an iframe format.
바람직하게, 사용자 로그 데이터는 웹 사이트의 도메인, 단말의 방문 URL(Uniform Resource Locator), 사용자 식별자 및 방문 시각 정보를 포함할 수 있다.Preferably, the user log data may include a domain of a web site, a visit URL (Uniform Resource Locator) of the terminal, a user identifier, and visit time information.
바람직하게, 사용자 식별자는 단말의 웹 브라우저 쿠키에 의하여 생성되며, 임의의 숫자와 생성 시각을 조합하여 생성될 수 있다.Preferably, the user identifier is generated by a web browser cookie of the terminal, and may be generated by combining a random number and a generation time.
본 발명의 다른 양상은, 추천 아이템 제공 방법에 있어서, 서비스 장치가 웹 사이트에 삽입된 스크립트(script)를 통해 웹 사이트에 접속한 단말로부터 웹 사이트와 관련된 사용자 로그 데이터를 수집하는 단계, 서비스 장치가 사용자 로그 데이터를 기반으로 추천 알고리즘을 이용하여 웹 사이트에서 서비스하는 각 소스 아이템과 관련된 하나 이상의 추천 아이템에 대한 추천 결과를 산출하는 단계 및 서비스 장치가 웹 사이트의 웹 서버로부터 수신한 추천 아이템 리스트 요청에 대한 응답으로 추천 결과에서 요청된 소스 아이템과 관련된 추천 아이템 리스트를 추출하여 웹 서버에 전송하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method for providing a recommendation item, wherein the service device collects user log data related to a web site from a terminal connected to the web site through a script inserted into the web site. Calculating a recommendation result for at least one recommendation item associated with each source item served by the website using a recommendation algorithm based on the user log data; and requesting the recommendation item list request received from the web server of the website by the service apparatus. And in response to extracting a recommendation item list related to the requested source item from the recommendation result and transmitting it to the web server.
바람직하게, 서비스 장치가 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 소스 아이템과 관련된 추천 아이템에 대한 클릭률을 계산하는 단계를 더 포함할 수 있다.Preferably, the service device may further include calculating a click rate for the recommendation item associated with each source item through the click log data and the view log data for the recommendation item.
바람직하게, 서비스 장치가 클릭률이 일정 기간 동안 계속하여 임계값 미만인 추천 아이템을 추천 결과에서 제외하는 단계를 더 포함할 수 있다.Preferably, the service device may further include the step of excluding a recommendation item whose recommendation rate is lower than a threshold value for a predetermined period from the recommendation result.
바람직하게, 추천 결과를 산출하는 단계는, 서비스 장치가 사용자 로그 데이터를 미리 정해진 조건 혹은 임의로 복수의 그룹으로 구분하고, 각 그룹 별로 서로 다른 추천 알고리즘을 이용하여 추천 결과를 산출할 수 있다.Preferably, in the calculating of the recommendation result, the service device may classify the user log data into a predetermined condition or arbitrarily into a plurality of groups, and calculate the recommendation result by using a different recommendation algorithm for each group.
바람직하게, 추천 결과를 산출하는 단계는, 서비스 장치가 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 그룹 별로 클릭률을 계산하고, 클릭률이 가장 높은 그룹에 이용된 추천 알고리즘으로 추천 결과를 산출할 수 있다.Preferably, the step of calculating the recommendation result, the service device calculates the clickthrough rate for each group through the click log data and view log data for the recommended item, and calculates the recommendation result by the recommendation algorithm used for the group having the highest click rate. can do.
바람직하게, 서비스 장치가 서비스 장치로 연결되는 추천 아이템의 링크를 통해 단말이 접속되면, 단말의 접속 URL을 통해 추천 아이템에 대한 클릭 로그 데이터를 획득하는 단계를 더 포함할 수 있다.Preferably, when the terminal is connected through a link of the recommended item to which the service device is connected to the service device, the method may further include obtaining click log data for the recommended item through the access URL of the terminal.
바람직하게, 서비스 장치가 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)에서 미리 정해진 파라미터 값이 포함되어 있는 사용자 데이터를 추출하여 추천 아이템에 대한 클릭 로그 데이터로 획득하는 단계를 더 포함할 수 있다.Preferably, the method may further include extracting, by the service apparatus, user data including a predetermined parameter value from a visit URL (Uniform Resource Locator) included in the user log data, as the click log data for the recommended item. .
바람직하게, 서비스 장치가 웹 서버의 추천 아이템 리스트 요청이 있으면, 추천 아이템 리스트를 통해 추천 아이템에 대한 뷰 로그 데이터를 획득하는 단계를 더 포함할 수 있다.Preferably, the service device may further include acquiring view log data for the recommended item through the recommended item list when there is a recommendation item list request from the web server.
바람직하게, 사용자 장치가 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)로부터 방문 URL 상에 표시되는 아이템 정보 및 방문 URL에서 단말의 동작과 관련된 동작 정보를 추출하는 단계를 더 포함할 수 있다.Preferably, the user device may further include extracting operation information related to the operation of the terminal from the item information displayed on the visit URL and the visit URL from the visit URL (Uniform Resource Locator) included in the user log data.
바람직하게, 서비스 장치가 각 소스 아이템 별로 추천 결과를 구분하여 저장하되, 웹 사이트를 구분하기 위한 서비스 식별자, 소스 아이템에 대한 아이템 식별자 및 소스 아이템과 관련된 추천 아이템에 대한 추천 아이템 식별자를 합한 문자열에 해쉬(hash) 함수를 적용하여 계산한 값을 추천 결과와 함께 저장하는 단계를 더 포함할 수 있다.Preferably, the service device stores and stores the recommended results for each source item, but hashes a string including a service identifier for identifying a website, an item identifier for the source item, and a recommended item identifier for the recommended item related to the source item. The method may further include storing a value calculated by applying the (hash) function together with the recommended result.
본 발명의 실시예에 따르면, 각종 컨텐츠, 상품 내지 서비스를 제공하는 웹 사이트에 별도의 추가 개발을 하지 않아도 자체 서비스에 바로 적용이 가능하다.According to an embodiment of the present invention, it is possible to directly apply to its own service without additional development on the web site providing various contents, products or services.
또한, 본 발명의 실시예에 따르면, 사용자로부터 발생되는 클릭/뷰 로그 데이터를 기반으로 피드백을 추천 결과에 반영하여 제공함으로써 보다 적합한 아이템을 추천할 수 있다.In addition, according to an embodiment of the present invention, it is possible to recommend a more suitable item by providing feedback reflected in the recommendation result based on the click / view log data generated from the user.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present invention are not limited to the above-mentioned effects, and other effects not mentioned will be clearly understood by those skilled in the art from the following description. .
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, included as part of the detailed description in order to provide a thorough understanding of the present invention, provide embodiments of the present invention and together with the description, describe the technical features of the present invention.
도 1은 본 발명의 일 실시예에 따른 추천 아이템 제공 서비스 장치가 적용될 수 있는 시스템을 개략적으로 예시하는 도면이다.1 is a diagram schematically illustrating a system to which a recommended item providing service apparatus according to an embodiment of the present invention may be applied.
도 2는 본 발명의 일 실시예에 따른 서비스 장치의 구성을 예시하는 도면이다.2 is a diagram illustrating a configuration of a service device according to an embodiment of the present invention.
도 3은 본 발명의 일 실시예에 따른 추천 아이템 제공 방법을 예시하는 도면이다.3 is a diagram illustrating a method for providing a recommended item according to an embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따른 사용자 로그 데이터 수집 방법을 예시하는 도면이다.4 is a diagram illustrating a user log data collection method according to an embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 사용자 로그 데이터 수집 방법을 예시하는 도면이다.5 is a diagram illustrating a user log data collection method according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 추천 아이템 리스트를 제공하는 방법을 예시하는 도면이다.6 is a diagram illustrating a method of providing a recommendation item list according to an embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따른 아이프레임(iframe) 포맷으로 제공되는 추천 아이템 리스트를 예시하는 도면이다.7 is a diagram illustrating a list of recommended items provided in an iframe format according to an embodiment of the present invention.
도 8은 본 발명의 일 실시예에 따른 아이프레임(iframe) 포맷으로 제공되는 추천 아이템 리스트가 웹 페이지 상에 표시되는 예시를 나타낸다.8 illustrates an example of displaying a recommendation item list provided in an iframe format on a web page according to an embodiment of the present invention.
도 9는 본 발명의 일 실시예에 따른 클릭 로그 데이터를 수집하는 방법을 예시하는 도면이다.9 is a diagram illustrating a method of collecting click log data according to an embodiment of the present invention.
도 10은 본 발명의 일 실시예에 따른 각 추천 아이템 별 클릭률을 예시하는 도면이다.10 is a diagram illustrating a click rate for each recommended item according to an embodiment of the present invention.
도 11은 본 발명의 일 실시예에 따른 알고리즘 별 추천률을 예시하는 도면이다.11 is a diagram illustrating a recommendation rate for each algorithm according to an embodiment of the present invention.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 이하의 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 당업자는 본 발명이 이러한 구체적 세부사항 없이도 실시될 수 있음을 안다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. The detailed description, which will be given below with reference to the accompanying drawings, is intended to explain exemplary embodiments of the present invention and is not intended to represent the only embodiments in which the present invention may be practiced. The following detailed description includes specific details in order to provide a thorough understanding of the present invention. However, one of ordinary skill in the art appreciates that the present invention may be practiced without these specific details.
몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시될 수 있다.In some instances, well-known structures and devices may be omitted or shown in block diagram form centering on the core functions of the structures and devices in order to avoid obscuring the concepts of the present invention.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.Throughout the specification, when a part is said to "comprising" (or including) a component, this means that it may further include other components, except to exclude other components unless specifically stated otherwise. do. In addition, the terms “… unit”, “… unit”, “module”, etc. described in the specification mean a unit that processes at least one function or operation, which may be implemented by hardware or software or a combination of hardware and software. have. Also, "a or an", "one", "the", and the like are used differently in the context of describing the present invention (particularly in the context of the following claims). Unless otherwise indicated or clearly contradicted by context, it may be used in the sense including both the singular and the plural.
이하의 설명에서 사용되는 특정 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.Specific terms used in the following description are provided to help the understanding of the present invention, and the use of such specific terms may be changed to other forms without departing from the technical spirit of the present invention.
이하 본 발명에서 사용자에게 추천하는 결과물로서, 유무선 네트워크를 통해 유통될 수 있는 각종 재화나 서비스, 디지털 방식으로 생성된 문자, 음향, 이미지, 동영상 등과 같은 컨텐츠, 컴퓨터 프로그램이나 어플리케이션 등과 같은 소프트웨어를 모두 포함할 수 있으며, 이하 설명의 편의를 위하여 '아이템(item)'으로 통칭하여 설명한다.As a result recommended by the present invention to the user, the present invention includes all kinds of goods and services that can be distributed through wired and wireless networks, content such as digitally generated texts, sounds, images, videos, software such as computer programs or applications, and the like. For the convenience of the following description, the term "item" will be described collectively.
도 1은 본 발명의 일 실시예에 따른 추천 아이템 제공 서비스 장치가 적용될 수 있는 시스템을 개략적으로 예시하는 도면이다.1 is a diagram schematically illustrating a system to which a recommended item providing service apparatus according to an embodiment of the present invention may be applied.
도 1을 참조하면, 본 발명의 실시예에 따른 추천 아이템 제공 서비스 장치가 적용될 수 있는 시스템은 다수의 단말(10), 웹 서버(20), 서비스 장치(30) 및 네트워크(40)를 포함하여 구성될 수 있다.Referring to FIG. 1, a system to which a recommended item providing service apparatus according to an embodiment of the present invention may be applied includes a plurality of terminals 10, a web server 20, a service apparatus 30, and a network 40. Can be configured.
단말(10)은 네트워크(40)를 통해 웹 서버(20) 및/또는 서비스 장치(30)와 정보를 송수신하며, 이러한 정보를 표시하거나 사용자로부터 정보를 입력 받는 사용자가 이용 가능한 장치를 의미한다. 특히, 본 발명에서 있어서, 단말(30)은 웹 서버(20)에 접속하여 아이템에 관한 각종 정보 및 서비스 장치(30)에 의하여 제공된 추천 아이템 리스트를 제공 받을 수 있다. 여기서, 추천 아이템는 특정 아이템과 관련된 하나 이상의 추천 아이템에 대한 리스트를 의미하며, 서비스 장치(30)가 웹 서버(20) 및/또는 단말(10)로부터 수집한 사용자 로그 데이터를 기반으로 생성될 수 있다.The terminal 10 transmits and receives information to and from the web server 20 and / or the service device 30 through the network 40, and refers to a device that can be used by a user who displays such information or receives information from the user. In particular, in the present invention, the terminal 30 may access the web server 20 and receive various information about the item and a list of recommended items provided by the service device 30. Here, the recommended item refers to a list of one or more recommended items related to a specific item, and may be generated based on user log data collected by the service device 30 from the web server 20 and / or the terminal 10. .
또한, 단말(10)은 사용자에 의하여 선택된 아이템에 대한 선택 정보를 웹 서버(20)에 전송함으로써, 선택된 아이템을 이용(예를 들어, 구매, 장바구니 저장, 다운로드, 다른 단말에 전달 등)하기 위한 각종 기능을 수행할 수 있다. 또한, 단말(10)은 서비스 장치(30)에 사용자 로그 데이터를 전송하는 기능을 수행할 수도 있으며, 이에 관한 상세한 설명은 후술한다. 바람직하게, 단말(10)은 내부에 저장된 웹 브라우저를 통해 웹 서버(20) 및/또는 서비스 장치(30)와 정보를 송수신할 수 있으나, 반드시 이에 한정되는 것은 아니다.In addition, the terminal 10 transmits the selection information on the item selected by the user to the web server 20, thereby using the selected item (for example, purchasing, storing a shopping cart, downloading, transferring to another terminal, etc.). Various functions can be performed. In addition, the terminal 10 may perform a function of transmitting user log data to the service device 30, which will be described later. Preferably, the terminal 10 may transmit / receive information with the web server 20 and / or the service device 30 through a web browser stored therein, but is not limited thereto.
도 1에서 도시된 바와 같이 본 명세서에서 설명되는 단말은 다양한 형태로 구현될 수 있다. 예를 들어, 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, 태블릿 PC(Tablet PC), PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어 등의 이동 단말기는 물론, 스마트 TV(Smart TV), 셋탑박스(set-top box), 데스크탑 컴퓨터 등과 같은 고정 단말기가 사용될 수 있으며, 네트워크를 통해 다른 사용자와 메시지를 송수신할 수 있는 단말이라면, 그 어떠한 장치도 본 발명의 단말로 적용 가능하다.As illustrated in FIG. 1, the terminal described herein may be implemented in various forms. For example, mobile phones, smart phones, laptop computers, digital broadcasting terminals, tablet PCs, PDAs (Personal Digital Assistants), PMPs (Portable Multimedia Players), navigation, MP3 players, etc. In addition to the mobile terminal of, a fixed terminal such as a smart TV (Smart TV), a set-top box, a desktop computer, etc. can be used, and any terminal that can send and receive messages with other users over a network, The device is also applicable to the terminal of the present invention.
웹 서버(20)는 웹 상에서 각종 서비스를 제공하는 서비스 제공자의 서버들을 통칭하며, 물리적으로 특정 서버 혹은 특정 서비스를 제공하는 서버로 한정되지 않는다. 특히, 본 발명에 있어서, 웹 서버(20)는 앞서 설명한 아이템과 해당 아이템에 대한 각종 정보를 웹 서버(20)에 접속한 단말(10)에게 제공하고, 단말(10)(즉, 사용자)에 의하여 선택된 아이템에 대한 추천 아이템 리스트를 서비스 장치(30)로부터 수신하여 단말(10)에게 제공할 수 있다. 또한, 웹 서버(20)는 서비스 장치(30)에 사용자 로그 데이터를 전송하는 기능을 수행할 수도 있으며, 이에 관한 상세한 설명은 후술한다.The web server 20 collectively refers to servers of a service provider that provides various services on the web, and is not limited to a specific server or a server that provides a specific service. In particular, in the present invention, the web server 20 provides the above-described item and various information about the item to the terminal 10 connected to the web server 20, the terminal 10 (that is, the user) The recommended item list for the selected item may be received from the service device 30 and provided to the terminal 10. In addition, the web server 20 may perform a function of transmitting user log data to the service device 30, which will be described later.
서비스 장치(30)는 웹 서버(20)에서 제공하는 다양한 아이템에 대한 추천 아이템 리스트를 웹 서버(20)에 제공하기 위한 기능을 수행하는 장치를 의미한다. 특히, 본 발명에 있어서, 서비스 장치(30)는 단말(10) 및/또는 웹 서버(20)로부터 사용자 로그 데이터를 수집 및 가공하고 각 아이템에 따른 추천 아이템 리스트를 산출하여 웹 서버(20)에 제공할 수 있다. 여기서, 사용자 로그 데이터는 어떠한 단말(10)(즉, 사용자)가 언제 어떠한 웹 서버에서 어떠한 아이템에 대하여 어떠한 동작을 하였는지 등의 이력을 나타내는 정보의 집합을 의미한다.The service device 30 refers to a device that performs a function for providing the web server 20 with a list of recommended items for various items provided by the web server 20. In particular, in the present invention, the service device 30 collects and processes user log data from the terminal 10 and / or the web server 20 and calculates a list of recommended items for each item to the web server 20. Can provide. Here, the user log data refers to a set of information indicating a history such as which terminal 10 (ie, user) performed what operation on which item on which web server and when.
또한, 서비스 장치(30)는 단말(10) 및/또는 웹 서버(20)로부터 혹은 수집된 사용자 로그 데이터로부터 뷰(view) 로그 데이터 및/또는 클릭(click) 로그 데이터를 수집하여 제공되는 추천 결과를 재처리함으로써 사용자의 방문 내지 동작에 따라 피드백이 반영된 추천 아이템 리스트를 제공할 수 있다. 여기서, 뷰(view) 로그 데이터는 단말(10)(즉, 사용자)의 웹 서버(20)를 접속함으로써, 특정 아이템을 표시하는 웹 페이지가 단말(10)에게 제공된 이력을 나타내는 정보의 집합을 의미한다. 그리고, 클릭(click) 로그 데이터는 서비스 장치(30)에 의해 웹 서버(20)에 제공된 추천 아이템 리스트를 단말(10)(즉, 사용자)가 클릭함으로써, 단말(10)이 추천 아이템 리스트에 포함된 링크(예를 들어, 하이퍼링크 혹은 핫링크 등)를 통해 클릭된 추천 아이템을 표시하는 웹 페이지가 단말(10)에게 제공된 이력을 나타내는 정보의 집합을 의미한다.In addition, the service device 30 collects view log data and / or click log data from the terminal 10 and / or the web server 20 or from the collected user log data. The reprocessing may provide a list of recommended items in which feedback is reflected according to a user's visit or operation. Here, the view log data refers to a set of information indicating a history of providing a web page displaying a specific item to the terminal 10 by connecting the web server 20 of the terminal 10 (that is, the user). do. The click log data is included in the recommendation item list by the terminal 10 (that is, the user) by clicking on the recommendation item list provided to the web server 20 by the service device 30. A web page displaying a recommendation item clicked through a link (for example, a hyperlink or a hot link, etc.) means a set of information representing a history provided to the terminal 10.
이러한 서비스 장치(30)는 상술한 동작을 지원하기 위해 다양한 장치의 집합으로 구현될 수 있다. 예컨대 로그 데이터(예를 들어, 사용자 로그, 뷰 로그, 클릭 로그 데이터)를 저장하고 관리할 수 있는 저장부 서버, 로그 데이터를 수집하는 수집 서버, 로그 데이터를 변환 내지 가공하는 클러스터링(clustering) 서버, 추천 아이템 리스트를 산출하고 추천 아이템 리스트를 웹 서버에 제공하는 API(Application Program Interface) 서버, 피드백 결과에 기반하여 추천 아이템 리스트를 수정하거나 추천 알고리즘을 선정하는 피드백 처리 서버 등을 포함하여 구현될 수 있다. 또한, 상술한 동작에 대응되는 기능을 수행하는 각각의 모듈들이 하나의 서비스 장치(30) 내에 구현될 수도 있다. 이하, 설명의 편의를 위하여 하나의 서비스 장치(30)로 구현되는 경우를 가정하여 설명한다.The service device 30 may be implemented as a set of various devices to support the above-described operation. For example, a storage server capable of storing and managing log data (eg, user logs, view logs, click log data), a collection server that collects log data, a clustering server that converts or processes log data, It may be implemented including an API (Application Program Interface) server for calculating a list of recommended items and providing a list of recommended items to a web server, a feedback processing server for modifying a list of recommended items based on a feedback result, or selecting a recommendation algorithm. . In addition, each module performing a function corresponding to the above-described operation may be implemented in one service device 30. Hereinafter, it will be described on the assumption that it is implemented by one service device 30 for convenience of description.
이러한 단말(10), 웹 서버(20) 및 서비스 장치(30)는 네트워크(40)를 통해 관련된 다양한 정보를 송수신하게 되며, 이때의 네트워크(40)는 다양한 형태의 네트워크가 이용될 수 있다. 예컨대, 3세대 이동통신, 4세대 이동통신, WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access) 등의 무선 통신 방식 또는 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coaxial Cable), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신 방식을 이용할 수 있으며, 이들의 조합으로 구현될 수도 있다. 또한, 상술한 통신 방식 이외에도 기타 널리 공지되었거나 향후 개발될 모든 형태의 통신 방식을 포함할 수 있다.The terminal 10, the web server 20, and the service device 30 transmit and receive various related information through the network 40. In this case, the network 40 may use various types of networks. For example, 3G mobile communication, 4G mobile communication, WLAN (Wireless LAN), Wi-Fi, Wibro, Wimax, High Speed Downlink Packet Access (HSDPA), or Ethernet Wired communication methods such as Ethernet, xDSL (ADSL, VDSL), Hybrid Fiber Coaxial Cable (HFC), Fiber to The Curb (FTTC), and Fiber To The Home (FTTH) can be used. It may be. Further, in addition to the above-described communication method, it may include all other types of communication methods that are well known or developed in the future.
도 2는 본 발명의 일 실시예에 따른 서비스 장치의 구성을 예시하는 도면이다.2 is a diagram illustrating a configuration of a service device according to an embodiment of the present invention.
도 2에서 도시된 서비스 장치(30)의 구성은, 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 어느 하나 이상의 구성이 실제 물리적으로는 서로 통합되어 구현될 수도 있다.The configuration of the service device 30 illustrated in FIG. 2 illustrates functionally divided functional elements, and any one or more components may be implemented by being physically integrated with each other.
도 2를 참조하면, 본 발명의 일 실시예에 따른 서비스 장치(30)는 통신부(210), 제어부(220) 및 저장부(230)를 포함하여 구성될 수 있다. 서비스 장치(30)를 구성하는 통신부(210), 제어부(220) 및 저장부(230)는 본 발명에 따른 기능을 수행하기 위하여 상호 기능적으로 연결될 수 있다.2, the service device 30 according to an embodiment of the present invention may include a communication unit 210, a control unit 220, and a storage unit 230. The communication unit 210, the control unit 220, and the storage unit 230 constituting the service device 30 may be functionally connected to each other to perform a function according to the present invention.
각 구성 요소에 대해 보다 구체적으로 설명하면, 통신부(210)는 하나 이상의 단말(10) 및/또는 웹 서버(20)와 유/무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 특히, 본 발명에 있어서, 통신부(210)는 하나 이상의 단말(10) 및/또는 웹 서버(20)로부터 사용자 로그 데이터를 수신할 수 있다. 또한, 통신부(210)는 웹 서버(20)로부터 추천 아이템 리스트 요청 메시지를 수신할 수 있으며, 추천 아이템 리스트 요청 메시지에 대응하여 추천 아이템 리스트를 웹 서버(20)에 전송할 수 있다. 또한, 웹 서버(20)에서 제공하는 웹 페이지 상에서 사용자의 추천 아이템 클릭에 의하여 단말(10)로부터 접속 요청을 수신하면, 접속 요청한 해당 단말(10)에 리다이렉트(redirect) URL(Uniform Resource Locator)을 전송할 수 있다.In more detail with respect to each component, the communication unit 210 may include one or more modules that enable wired / wireless communication with one or more terminals 10 and / or the web server 20. In particular, in the present invention, the communication unit 210 may receive the user log data from the one or more terminals 10 and / or the web server 20. In addition, the communication unit 210 may receive a recommendation item list request message from the web server 20, and transmit the recommendation item list to the web server 20 in response to the recommendation item list request message. In addition, when a connection request is received from the terminal 10 by clicking on a user's recommendation item on a web page provided by the web server 20, a redirect URL (Reform) Uniform Resource Locator (URL) is provided to the corresponding terminal 10 requesting the connection. Can transmit
제어부(220)는 서비스 장치(30)의 전반적인 제어를 수행하는 구성으로, 통신부(210) 및 저장부(250)의 기능 수행을 기능 수행을 위한 신호의 흐름을 제어하게 된다. 이때, 제어부(220)는 운영 체제(OS: Operation System), 응용 프로그램 및 각 구성을 구동시키는 프로세스 장치, 예컨대, 중앙처리장치(CPU: Central Processing Unit)로 이루어질 수 있다.The controller 220 is configured to perform overall control of the service device 30, and controls the flow of signals for performing the functions of the communication unit 210 and the storage unit 250. In this case, the controller 220 may include an operating system (OS), an application program, and a process device for driving each component, for example, a central processing unit (CPU).
특히, 본 발명에 있어서, 제어부(220)는 데이터 수집부(221), 데이터 처리부(222), 추천 계산부(223), 추천 결과 제공부(224) 및 피드백 처리부(225)를 포함하여 구성될 수 있다.In particular, in the present invention, the controller 220 may include a data collector 221, a data processor 222, a recommendation calculator 223, a recommendation result provider 224, and a feedback processor 225. Can be.
데이터 수집부(221)는 단말(10) 및/또는 웹 서버(20)로부터 상술한 사용자 로그 데이터를 수집하여 저장부(230)에 저장하는 기능을 수행할 수 있다.The data collector 221 may perform a function of collecting the above-described user log data from the terminal 10 and / or the web server 20 and storing the user log data in the storage 230.
데이터 처리부(222)는 데이터 수집부(221)에 의하여 수집 및 저장된 사용자 로그 데이터로부터 추천 아이템을 계산하기 위하여 계산에 필요한 데이터들을 추출하고, 추출된 데이터들을 계산에 적합한 데이터 포맷으로 변환 내지 가공하여 변환된 사용자 로그 데이터를 저장부(230)에 저장하는 기능을 수행할 수 있다. 또한, 추천 계산부(223)에 의하여 계산되어 저장된 추천 계산 결과를 인터넷을 통해 웹 서버(20)에 제공하기 위한 포맷으로 변환 내지 가공한 추천 결과를 데이터 베이스(230)에 저장하는 기능을 수행할 수 있다.The data processor 222 extracts data necessary for calculation in order to calculate the recommended item from the user log data collected and stored by the data collector 221, and converts or processes the extracted data into a data format suitable for calculation. The stored user log data may be stored in the storage 230. In addition, a function of converting or processing the recommendation calculation result calculated and stored by the recommendation calculation unit 223 into a format for providing the web server 20 through the Internet to the database 230 may be stored in the database 230. Can be.
추천 계산부(223)는 데이터 처리부(222)에 의하여 처리된 변환된 사용자 로그 데이터로부터 다양한 추천 알고리즘을 이용하여 추천 아이템을 계산하고, 추천 아이템을 계산한 추천 계산 결과를 저장부(230)에 저장하는 기능을 수행할 수 있다.The recommendation calculator 223 calculates a recommendation item using various recommendation algorithms from the converted user log data processed by the data processor 222, and stores the recommendation calculation result of calculating the recommendation item in the storage 230. To perform the function.
추천 결과 제공부(224)는 웹 서버(20)로부터 특정 아이템에 대한 추천 아이템 리스트 요청 메시지를 수신하면, 해당 아이템에 대한 추천 아이템 리스트를 저장부(230)의 추천 결과로부터 추출하여 웹 서버(20)에 전송하는 기능을 수행할 수 있다. 또한, 추천이 금지되는 아이템을 추천 결과(혹은 추천 아이템 리스트)에서 삭제하거나 새로운 추천 아이템을 추천 결과(혹은 추천 아이템 리스트)에 추가하거나 추천 결과(혹은 추천 아이템 리스트)에 부가적인 정보를 추가하는 등 추천 결과(혹은 추천 아이템 리스트)를 후처리하는 기능을 수행할 수 있다.When the recommendation result providing unit 224 receives the recommendation item list request message for the specific item from the web server 20, the recommendation item list extraction unit 224 extracts the recommendation item list for the corresponding item from the recommendation result of the storage unit 230 and the web server 20. ) Can be sent. Also, remove items from the recommendation result (or recommendation item list), add new recommendation items to the recommendation result (or recommendation item list), add additional information to the recommendation result (or recommendation item list), etc. Postprocessing the recommendation result (or recommendation item list) may be performed.
피드백 처리부(225)는 클릭 로그 데이터 및/또는 뷰 로그 데이터를 수집하고, 수집된 클릭 로그 데이터 및/또는 뷰 로그 데이터를 기반으로 추천 결과(혹은 추천 아이템 리스트)를 재처리하거나 추천 계산부(223)에서 추천 계산에 이용하는 추천 알고리즘을 결정하는 기능을 수행할 수 있다.The feedback processor 225 collects click log data and / or view log data, reprocesses the recommendation result (or recommendation item list) based on the collected click log data and / or view log data, or recommends the calculator 223. ) May determine a recommendation algorithm used for recommendation calculation.
먼저, 클릭 로그 데이터를 수집하기 위하여, 피드백 처리부(225)는 웹 서버(20)에서 제공하는 웹 페이지 상에서 사용자의 추천 아이템 클릭에 의하여 단말(10)로부터 접속 요청을 수신하면, 이를 클릭 로그 데이터로 저장부(230)에 저장하는 기능을 수행하며, 접속 요청한 해당 단말(10)에 리다이렉트(redirect) URL을 전송하는 기능을 수행할 수 있다. 또한, 이와 상이하게, 피드백 처리부(225)는 사용자 로그 데이터로부터 특정 파라미터 내지 형식을 가지는 데이터를 추출하여 이를 클릭 로그 데이터로 저장부(230)에 저장하는 기능을 수행할 수 있다.First, in order to collect click log data, the feedback processing unit 225 receives a connection request from the terminal 10 by clicking on a user's recommendation item on a web page provided by the web server 20, and uses the click log data as the click log data. It performs a function of storing in the storage unit 230, it may perform a function of transmitting a redirect (redirect) URL to the corresponding terminal 10, the connection request. In addition, the feedback processing unit 225 may perform a function of extracting data having a specific parameter or format from the user log data and storing the data in the storage unit 230 as click log data.
또한, 뷰 로그 데이터를 수집하기 위하여, 피드백 처리부(225)는 웹 서버(20)로부터 추천 아이템 리스트 요청 메시지를 수신하면, 이를 뷰 로그 데이터로 데이터 베이스(230)에 저장하는 기능을 수행할 수 있다.In addition, in order to collect the view log data, the feedback processor 225 may receive a recommendation item list request message from the web server 20, and store the same in the database 230 as view log data. .
한편, 도 2의 예시에서는 데이터 수집부(221), 데이터 처리부(222), 추천 계산부(223), 추천 결과 제공부(224) 및 피드백 처리부(225)를 각각의 블록으로 도시하였으나, 물리적으로 하나의 장치로 통합되어 구현될 수도 있으며, 상술한 바와 같이 일부 또는 그 각각이 물리적으로 서로 다른 장치에 구현될 수도 있다. 또한, 동일한 기능을 수행하는 복수 개의 장치가 병렬적으로 구현될 수도 있다. Meanwhile, in the example of FIG. 2, the data collector 221, the data processor 222, the recommendation calculator 223, the recommendation result provider 224, and the feedback processor 225 are illustrated as respective blocks. It may be integrated into one device and implemented, or as described above, some or each of them may be implemented in physically different devices. In addition, a plurality of devices that perform the same function may be implemented in parallel.
저장부(230)는 서비스 장치(30)의 동작에 필요한 데이터 및 프로그램을 저장하는 수단으로서, 기본적으로 서비스 장치(30)에 의해 실행될 운영 프로그램 및 응용 프로그램을 저장한다. 특히, 본 발명에 있어서, 저장부(230)는 데이터 수집부(241)에 의하여 수집된 사용자 로그 데이터, 데이터 처리부(222)에 의하여 처리된 변환된 사용자 로그 데이터와 추천 결과, 추천 계산부(223)에 의하여 계산된 추천 계산 결과 및 피드백 수집부(245)에 의하여 수집된 뷰 로그 데이터와 클릭 로그 데이터를 저장할 수 있다.The storage unit 230 is a means for storing data and programs necessary for the operation of the service device 30, and basically stores an operating program and an application program to be executed by the service device 30. In particular, in the present invention, the storage unit 230 is the user log data collected by the data collection unit 241, the converted user log data processed by the data processing unit 222 and the recommendation results, recommendation calculation unit 223 The recommendation calculation result calculated by) and the view log data and the click log data collected by the feedback collector 245 may be stored.
이러한, 저장부(250)는 다양한 저장 수단으로 구현될 수 있다. 예를 들어, 저장부(250)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM: Random Access Memory), SRAM(Static Random Access Memory), 롬(ROM: Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 저장부(250)는 제어부(220) 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 제어부(220)와 연결될 수 있다.Such a storage unit 250 may be implemented by various storage means. For example, the storage unit 250 may include a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (for example, SD or XD). Memory (RAM), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EPEROM), programmable read-only memory (PROM) At least one type of storage medium may include a magnetic memory, a magnetic disk, and an optical disk. The storage unit 250 may be inside or outside the controller 220 and may be connected to the controller 220 by various well-known means.
이하, 설명의 명확히 하기 위하여, 데이터 수집부(221)에 의하여 수집된 '사용자 로그 데이터'와 구분하여 데이터 처리부(222)에 의하여 가공된 사용자 로그 데이터를 '변환된 사용자 로그 데이터'로 지칭한다. 또한, 추천 계산부(223)에 의하여 계산된 결과를 '추천 계산 결과'로 지칭하며, 데이터 처리부(222)에 의하여 가공된 추천 계산 결과를 '추천 결과'로 지칭한다. 또한, 추천 결과 제공부(224)가 추천 결과에서 웹 서버(20)가 요청한 특정 아이템에 관하여 제공하는 추천 결과를 '추천 아이템 리스트'로 지칭한다. 즉, 추천 결과는 모든 아이템에 대하여 추천되는 추천 아이템 리스트를 포괄한다.Hereinafter, for clarity of explanation, the user log data processed by the data processing unit 222 is referred to as 'converted user log data' separately from the 'user log data' collected by the data collection unit 221. In addition, the result calculated by the recommendation calculation unit 223 is referred to as a 'recommended calculation result', and the recommendation calculation result processed by the data processing unit 222 is referred to as a 'recommended result'. Also, the recommendation result provided by the recommendation result providing unit 224 about the specific item requested by the web server 20 in the recommendation result is referred to as a 'recommended item list'. That is, the recommendation result encompasses a list of recommended items recommended for all items.
이하, 서비스 장치(30)에서 추천 아이템을 제공하기 위한 동작에 관하여 도 3을 참조하여 설명한다.Hereinafter, an operation for providing a recommendation item in the service device 30 will be described with reference to FIG. 3.
도 3은 본 발명의 일 실시예에 따른 추천 아이템 제공 방법을 예시하는 도면이다.3 is a diagram illustrating a method for providing a recommended item according to an embodiment of the present invention.
도 3을 참조하면, 서비스 장치(30)는 단말(10) 및/또는 웹 서버(20)로부터 상술한 사용자 로그 데이터를 수집할 수 있다(S301). 여기서, 서비스 장치(30)는 단말(10) 및/또는 웹 서버(20)로부터 동기적(즉, 실시간 수집) 혹은 비동기적(예를 들어, 특정 주기에 수집)으로 사용자 로그 데이터를 수집할 수 있으며, 수집 방식과 무관하게 계속적으로 단말(10) 및/또는 웹 서버(20)로부터 사용자 로그 데이터를 수집할 수 있다.Referring to FIG. 3, the service device 30 may collect the above-described user log data from the terminal 10 and / or the web server 20 (S301). Here, the service device 30 may collect user log data from the terminal 10 and / or the web server 20 synchronously (ie, real time collection) or asynchronously (eg, collecting at a specific period). The user log data may be continuously collected from the terminal 10 and / or the web server 20 regardless of the collection method.
서비스 장치(30)는 S301 단계에서 수집된 사용자 로그 데이터로부터 추천 아이템을 계산하기 위하여 추천 계산에 필요한 데이터들을 추출하고, 추출된 데이터들을 추천 계산에 적합한 데이터 포맷으로 변환하여 저장할 수 있다(S303). 여기서, S301 단계에서 다수의 단말(10) 및/또는 다수의 웹 서버(20)로부터 수집한 사용자 로그 데이터의 포맷이 동일하며, 추천 아이템 계산에 적합하다면, 서비스 장치(30)는 데이터 변환 단계를 수행하지 않을 수 있으며, 즉 S303 단계는 생략될 수 있다.The service device 30 may extract data necessary for the recommendation calculation in order to calculate the recommendation item from the user log data collected in operation S301, and convert the extracted data into a data format suitable for the recommendation calculation (S303). Here, if the format of the user log data collected from the plurality of terminals 10 and / or the plurality of web servers 20 is the same in step S301 and is suitable for calculating the recommended items, the service device 30 performs the data conversion step. It may not be performed, that is, step S303 may be omitted.
서비스 장치(30)는 S303에서 변환된 사용자 로그 데이터를 이용하여 다양한 추천 알고리즘을 이용하여 추천 아이템을 계산하고, 추천 계산 결과를 저장할 수 있다(S305). 여기서, 서비스 장치(30)는 모든 아이템에 대하여 각 추천 알고리즘 별로 추천 아이템을 계산할 수 있다. 또한, 사용자 로그 데이터를 임의로 혹은 특정 기준에 따라 복수의 그룹으로 구분하고 각 그룹 별로 서로 다른 추천 알고리즘을 이용하여 추천 아이템을 계산할 수 있다. 또한, 서비스 장치(30)가 추천 아이템을 계산하는 시점은 S301 단계에서 사용자 로그 데이터를 수집하는 시점과 동일하거나 동일하지 않을 수 있으며, 일정 주기를 가지고 계산될 수 있다.The service device 30 may calculate a recommendation item using various recommendation algorithms using the user log data converted in S303 and store the recommendation calculation result in operation S305. Here, the service device 30 may calculate a recommendation item for each recommendation algorithm for all items. In addition, the user log data may be arbitrarily divided into a plurality of groups according to a specific criterion, and a recommendation item may be calculated using a different recommendation algorithm for each group. In addition, the time point at which the service device 30 calculates the recommended item may or may not be the same as the time point at which the user log data is collected in step S301, and may be calculated with a certain period.
서비스 장치(30)는 S305 단계에서 계산된 추천 계산 결과를 인터넷을 통해 웹 서버(20)에 제공하기 위하여 적합한 데이터 포맷으로 변환할 수 있다(S307). 상술한 바와 같이, S303 단계에서 서비스 장치(30)가 데이터 변환 단계를 수행하지 않는 다면, S307 단계 또한 생략될 수 있다.The service device 30 may convert the recommendation calculation result calculated in step S305 into a suitable data format in order to provide the web server 20 through the Internet (S307). As described above, if the service device 30 does not perform the data conversion step in step S303, step S307 may also be omitted.
서비스 장치(30)는 계산된 추천 결과(혹은 추천 아이템 리스트)에 대하여 후처리를 수행한 후, 사용자 로그 데이터를 수집한 해당 웹 서버(20)에 추천 아이템 리스트를 제공할 수 있다(S309). 이때, 서비스 장치(30)는 일정 주기를 가지고 추천 아이템 리스트를 웹 서버(20)에 제공하거나, 서비스 장치(30)가 웹 서버(20)로부터 특정 아이템에 대한 추천 아이템 리스트를 요청 받아 해당 아이템에 대한 추천 아이템 리스트를 웹 서버(20)에 전송할 수도 있다.The service device 30 may perform post-processing on the calculated recommendation result (or recommendation item list), and then provide the recommendation item list to the corresponding web server 20 collecting user log data (S309). In this case, the service device 30 may provide the recommendation item list to the web server 20 at regular intervals, or the service device 30 may request a recommendation item list for a specific item from the web server 20 to the corresponding item. The recommended item list may be transmitted to the web server 20.
서비스 장치(30)는 사용자의 피드백을 수집하여 이를 추천에 반영할 수 있다(S311). 즉, 서비스 장치(30)는 수집된 클릭 로그 데이터 및/또는 뷰 로그 데이터를 기반으로 추천 결과(혹은 추천 아이템 리스트)를 재처리하거나(S309 단계로 분기), 추천 계산부(223)에서 추천 계산에 이용하는 추천 알고리즘을 결정할 수 있다(S305 단계로 분기)(S311).The service device 30 may collect the user's feedback and reflect it in the recommendation (S311). That is, the service device 30 reprocesses the recommendation result (or recommendation item list) based on the collected click log data and / or view log data (branch to step S309), or the recommendation calculation unit 223 calculates the recommendation. A recommendation algorithm to be used can be determined (branch to step S305) (S311).
이하, 도 3의 예시에서 설명한 각 단계에 관하여 보다 상세히 설명한다.Hereinafter, each step described in the example of FIG. 3 will be described in more detail.
서비스 장치(30)(특히, 데이터 수집부(221))는 단말(10) 및/또는 웹 서버(20)로부터 상술한 사용자 로그 데이터를 수집할 수 있다(S301).The service device 30 (particularly, the data collection unit 221) may collect the above-described user log data from the terminal 10 and / or the web server 20 (S301).
상술한 바와 같이, 사용자 로그 데이터는 어떠한 사용자가 언제 어떠한 웹 서버에서 어떠한 아이템에 대하여 어떠한 행동을 하였는지 등을 나타내는 정보의 집합을 의미한다. 이외에도 사용자 로그 데이터는 사용자가 사용하는 단말(10)에 탑재된 브라우저를 식별할 수 있는 정보, 기타 아이템에 대하여 특정 사용자에게 노출을 제한하기 위한 정보, 웹 서버(20)에서 관리하는 사용자의 회원 아이디(ID: Identifier) 정보 등을 포함할 수 있다.As described above, the user log data refers to a set of information indicating which user performed what action on which item on which web server and when. In addition, the user log data includes information for identifying a browser mounted on the terminal 10 used by the user, information for limiting exposure to a specific user for other items, and a member ID of the user managed by the web server 20. (ID: Identifier) information and the like.
표 1은 본 발명에 따른 사용자 로그 데이터에 포함될 수 있는 정보를 예시한다.Table 1 illustrates information that may be included in user log data according to the present invention.
표 1
사용자 식별정보 상품 식별정보 동작 식별정보 동작 발생 시각
사용자A 상품2 장바구니 20XX-YY-ZZ aa:bb:cc
사용자B 상품3 구매 20XX-YY-ZZ aa:bb:cc
사용자B 상품5 방문 20XX-YY-ZZ aa:bb:cc
Table 1
User Identification Information Product identification Motion identification Motion occurrence time
User A Goods 2 shopping basket 20XX-YY-ZZ aa: bb: cc
User B Goods 3 purchase 20XX-YY-ZZ aa: bb: cc
User B Item 5 visit 20XX-YY-ZZ aa: bb: cc
서비스 장치(30)는 이러한 사용자 로그 데이터를 수집하기 위하여 다음과 같은 방법을 이용할 수 있다.The service device 30 may use the following method for collecting such user log data.
먼저, 서비스 장치(30)는 웹 서버(20)에 접속하여 사용자 로그 데이터를 추출하여 획득하거나, 웹 서버(20)로부터 전송되는 사용자 로그 데이터를 수신하여 획득할 수 있으며, 이에 관하여 아래 도 4를 참조하여 설명한다.First, the service device 30 may access the web server 20 to extract and obtain user log data, or may receive and obtain user log data transmitted from the web server 20. It demonstrates with reference.
도 4는 본 발명의 일 실시예에 따른 사용자 로그 데이터 수집 방법을 예시하는 도면이다.4 is a diagram illustrating a user log data collection method according to an embodiment of the present invention.
도 4를 참조하면, 웹 서버(20)는 단말(10)이 접속하여 특정 동작을 수행하면, 특정 동작이 수행되었음을 서비스 장치(30)에 알리기 위하여 사용자 로그 데이터가 포함된 웹 페이지의 접근 경로 정보를 포함하는 접속 요청 메시지를 서비스 장치(30)에 전송할 수 있다(S401). 여기서, 웹 서버(20)는 POST HTTP 프로토콜을 이용하여 서비스 장치(30)에 접속 요청 메시지를 전송할 수 있다.Referring to FIG. 4, when the terminal 10 is connected and performs a specific operation, the web server 20 access path information of the web page including the user log data to inform the service device 30 that the specific operation has been performed. A connection request message including a may be transmitted to the service device 30 (S401). Here, the web server 20 may transmit a connection request message to the service device 30 using the POST HTTP protocol.
서비스 장치(30)는 웹 서버(20)로부터 접속 요청 메시지를 수신하면, 접속 요청 메시지에 포함된 웹 페이지의 접근 경로 정보를 기반으로 웹 서버(20)에 접속하여 해당 웹 페이지에 포함된 사용자 로그 데이터를 추출하여 획득한다(S403). 여기서, 서비스 장치(30)는 GET HTTP 프로토콜을 이용하여 웹 서버(20)로부터 사용자 로그 데이터를 추출할 수 있다.When the service device 30 receives the access request message from the web server 20, the service device 30 accesses the web server 20 based on the access path information of the web page included in the access request message and logs the user included in the web page. The data is extracted and obtained (S403). Here, the service device 30 may extract user log data from the web server 20 using the GET HTTP protocol.
이어, 서비스 장치(30)는 획득한 사용자 로그 데이터를 저장한다(S405).Subsequently, the service device 30 stores the obtained user log data (S405).
또한, 도 4의 예시와 상이하게, 웹 서버(20)에서 해당 웹 서버(20)에 접속된 사용자 단말(10)의 동작에 관한 사용자 로그 데이터를 TCP/IP 프로토콜을 통해 서비스 장치(30)로 전송함으로써, 서비스 장치(30)에서 사용자 로그 데이터를 획득할 수도 있다.In addition, unlike the example of FIG. 4, the user log data on the operation of the user terminal 10 connected to the web server 20 from the web server 20 is transferred to the service device 30 through the TCP / IP protocol. By transmitting, the user log data may be obtained from the service device 30.
다음으로, 서비스 장치(30)는 웹 서버(20)에서 서비스하는 웹 사이트에 스크립트(script)를 삽입하고, 삽입한 스크립트를 통해 사용자 단말(10)로부터 사용자 로그 데이터를 획득할 수도 있으며, 이에 관하여 아래 도 5를 참조하여 설명한다.Next, the service device 30 may insert a script into a web site serviced by the web server 20 and obtain user log data from the user terminal 10 through the inserted script. A description with reference to FIG. 5 below.
도 5는 본 발명의 일 실시예에 따른 사용자 로그 데이터 수집 방법을 예시하는 도면이다.5 is a diagram illustrating a user log data collection method according to an embodiment of the present invention.
도 5를 참조하면, 서비스 장치(30)는 웹 서버(20)에서 제공하는 웹 사이트에 스크립트를 삽입할 수 있다(S501). 예를 들어, 서비스 장치(30)는 웹 서버(20)에서 제공하는 웹 페이지에 "<script src=http://collector.recopick.com/plugin.js></script>"와 같은 스크립트를 삽입할 수 있다.Referring to FIG. 5, the service device 30 may insert a script into a web site provided by the web server 20 (S501). For example, the service device 30 inserts a script such as "<script src = http: //collector.recopick.com/plugin.js> </ script>" into a web page provided by the web server 20. can do.
이후, 단말(10)이 웹 서버(20)에 접속하여(S503), 해당 웹 서버(20)에서 제공하는 웹 페이지를 방문하면 해당 웹 페이지 내에 삽입된 스크립트를 실행하면(S505). 해당 스크립트에 의하여 자동으로 사용자에 대한 로그 데이터를 서비스 장치(30)에 전송할 수 있다(S507). 예를 들어, 단말(10)에 탑재된 웹 브라우저에서 앞서 예시한 스크립트를 실행하게 되면, 단말(10)이 방문한 웹 페이지의 URL 정보, 방문 시각, 스크립트에 포함된 파라미터들에 대한 값 등을 서비스 장치(30)에 전송하게 된다.Thereafter, when the terminal 10 accesses the web server 20 (S503) and visits a web page provided by the web server 20, the terminal 10 executes a script inserted in the web page (S505). The log data of the user may be automatically transmitted to the service device 30 by the script (S507). For example, if the above-described script is executed in a web browser mounted on the terminal 10, the terminal 10 provides information on URLs, visit times, and values of parameters included in the script. To the device 30.
상술한 스크립트를 이용하여 서비스 장치(30)가 단말(10)로부터 수집하는 정보는 다음과 같다.Information collected by the service device 30 from the terminal 10 by using the above-described script is as follows.
- 웹 브라우저 쿠키 기반으로 생성된 사용자 식별자(UID: User IDentifier)-User IDentifier (UID) generated based on web browser cookie
- 사용자의 방문 URL 정보-Visit URL information of the user
- 사용자의 방문 참조 주소(Referrer) 정보-The user's referrer information
- 접속 시각 정보Connection time information
- 웹 브라우저의 사용자 에이전트(User Agent) 정보-User Agent Information of Web Browser
- 기타 메타(Meta) 정보-Other Meta Information
사용자 식별자(UID)는 사용자를 구별하기 위한 값을 의미한다. 단말(10)이 스크립트를 실행하게 되면, 먼저 단말(10)은 웹 브라우저의 쿠키(Cookie)에 사용자 식별자(user identifier) 값이 저장되어 있는지 찾고, 사용자 식별자가 저장되어 있는 경우 해당 값을 서비스 장치(30)에 전송한다. 반면, 웹 브라우저의 쿠키에 사용자 식별자가 저장되어 있지 않다면 임의의 숫자 값과 생성 시각을 조합(예를 들어, 33619442.1366005959274)함으로써 사용자를 식별할 수 있는 정보를 생성하여 이를 서비스 장치(30)에 전송한다.The user identifier (UID) means a value for distinguishing a user. When the terminal 10 executes the script, the terminal 10 first finds whether a user identifier value is stored in a cookie of a web browser, and if the user identifier is stored, the value is a service device. Transfer to 30. On the other hand, if the user identifier is not stored in the cookie of the web browser, a random numeric value and a creation time are combined (for example, 33619442.1366005959274) to generate information that can identify the user, and transmit the generated information to the service device 30. .
방문 URL 정보는 접속한 웹 서버(20)의 해당 웹 페이지에 대한 URL 정보를 의미한다. 그리고, 참조 주소(referrer) 정보는 링크를 통해서 웹 서버(20)의 해당 웹 페이지에 방문한 경우에 이전에 방문하였던 웹 페이지에 대한 URL 정보를 의미한다. 그리고, 접속 시각 정보는 단말(10)이 웹 서버(20)의 웹 페이지에 방문한 시각 정보를 의미한다. 웹 브라우저의 사용자 에이전트(User Agent) 정보는 웹 서버(20)에 접속 시 단말(10)에서 이용한 웹 브라우저를 구별하기 위한 정보를 의미한다. 일례로, 단말(10)에서 이용한 웹 브라우저가 모바일 장치 용 웹 브라우저인지, 데스크탑 용 웹 브라우저인지 식별하기 위한 정보가 이에 해당될 수 있다. 이러한 정보들은 단말(10)에 탑재된 웹 브라우저에서 수집하여 전체 정보를 동기적 혹은 비동기적으로 서비스 장치(30)에 전송할 수 있다.Visit URL information means URL information on the web page of the web server 20 to which the access. And, the reference address (referrer) information means the URL information about the previously visited web page when visiting the web page of the web server 20 through a link. The access time information means time information that the terminal 10 visits a web page of the web server 20. The user agent information of the web browser refers to information for distinguishing the web browser used by the terminal 10 when accessing the web server 20. For example, the information for identifying whether the web browser used in the terminal 10 is a web browser for a mobile device or a web browser for a desktop may correspond thereto. Such information may be collected by a web browser mounted on the terminal 10 to transmit the entire information synchronously or asynchronously to the service device 30.
그리고, 메타 정보는 서비스 장치(30)가 추천 아이템을 산출할 때 고려해야 되는 기타 추가적인 정보를 의미하며, 그 일례로, 웹 서버가 운영하는 웹 사이트에 회원 정보와 같이 보다 정확하게 사용자를 구별할 수 있는 정보 혹은 아이템이 성인 인증이 필요한지 여부에 관한 정보 등이 해당될 수 있다. 이러한 메타 정보는 웹 서버(20)의 웹 페이지에 삽입된 스크립트가 메타(Meta) 정보를 요구하는 형식을 가지는 경우에는 스크립트에서 요구하는 메타 정보를 단말(10)이 서비스 장치(30)에 전송한다. 예를 들어, 삽입된 스크립트가 "plugin.js?key=value&key2=value2" 형태를 가지게 되면, 단말(10)에서 각각의 파라미터(key, key2)에 대한 값(value1, value2)을 서비스 장치(30)에 전송한다.The meta information means other additional information to be considered when the service device 30 calculates a recommendation item. For example, the meta information may identify a user more accurately, such as member information, on a web site operated by a web server. Information or information on whether an item requires adult certification may be applicable. Such meta information is transmitted to the service device 30 by the terminal 10 when the script embedded in the web page of the web server 20 has a format for requesting meta information. . For example, when the inserted script has a form of "plugin.js? Key = value & key2 = value2", the terminal 10 transmits values (value1, value2) for each parameter (key, key2) to the service device 30. To be sent).
앞서 설명한 방식으로 단말(10)로부터 사용자 로그 데이터를 수신한 서비스 장치(30)는 획득한 사용자 로그 데이터를 저장한다(S509).The service device 30 that receives the user log data from the terminal 10 in the manner described above stores the obtained user log data (S509).
앞서 도 4 내지 도 5의 예시와 같은 방법을 통해 수집한 사용자 로그 데이터를 예시하면 아래 표 2와 같다.If the user log data collected through the same method as the example of Figs. 4 to 5 are illustrated in Table 2 below.
표 2는 서비스 장치(30)가 수집한 사용자 로그 데이터를 예시한다.Table 2 illustrates user log data collected by the service device 30.
표 2
KEY VALUE
ref http://vanillashu.co.kr/front/php/product.php?product_no=13806&main_cate_no=1
site vanillashu.co.kr
uid 44209103.136609
url http://vanillashu.co.kr/front/php/category.php?cate_no=30
time 20XX-YY-ZZ aa:bb:cc
TABLE 2
KEY VALUE
ref http://vanillashu.com/front/php/product.php?product_no=13806&main_cate_no=1
site vanillashu.co.kr
uid 44209103.136609
url http://vanillashu.co.kr/front/php/category.php?cate_no=30
time 20XX-YY-ZZ aa: bb: cc
서비스 장치(30)(특히, 데이터 처리부(222))는 S301 단계에서 수집된 사용자 로그 데이터로부터 추천 아이템을 계산하기 위하여 추천 계산에 필요한 데이터들을 추출(extract)하고, 추출된 데이터들을 계산에 추천 적합한 데이터 포맷으로 변환(transform)하여 저장(load)할 수 있다(S303).The service device 30 (particularly, the data processing unit 222) extracts data necessary for the recommendation calculation in order to calculate the recommendation item from the user log data collected in step S301, and recommends the extracted data for the calculation. The data format may be transformed and stored (S303).
먼저, 서비스 장치(30)는 수집한 사용자 로그 데이터에서 방문 URL 정보의 도메인을 이용하여 서비스 식별자(SERVICE_ID)를 추출한다. 예를 들어, 방문 URL 정보가 "http://www.foodfly.co.kr/restaurants/show/11378"인 경우, 서비스 장치(30)는 단말(10)이 방문한 도메인 "www.foodfly.co.kr"와 대응되는 서비스 식별자로써, 1을 부여할 수 있다(SERVICE_ID=1). 이때, 각각의 웹 서버(20)에서 운영하는 웹 사이트의 도메인과 서비스 식별자는 일대일로 매핑될 수 있다. 또한, 이와 같이 웹 사이트의 도메인과 서비스 식별자가 매핑된 테이블 정보가 서비스 장치(30)에 저장되어 있을 수 있으며, 이러한 경우 서비스 장치(30)는 미리 저장된 테이블을 참조하여 서비스 식별자 값을 추출할 수 있다.First, the service device 30 extracts the service identifier SERVICE_ID from the collected user log data by using the domain of the visited URL information. For example, when the visit URL information is "http://www.foodfly.co.kr/restaurants/show/11378", the service device 30 may check the domain "www.foodfly.co. As a service identifier corresponding to "kr", 1 may be assigned (SERVICE_ID = 1). At this time, the domain and service identifier of the web site operated by each web server 20 may be mapped one-to-one. In addition, the table information in which the domain of the web site and the service identifier are mapped may be stored in the service device 30. In this case, the service device 30 may extract the service identifier value by referring to the previously stored table. have.
그리고, 서비스 장치(30)는 각 서비스 식별자(SERVICE_ID) 별로 미리 정의된 정규식을 이용하여 방문 URL 정보에서 아이템 식별자(ITEM_ID)와 동작 식별자(ACTION_ID)를 추출한다. 여기서, 정규식은 URL 정보에서 필요한 파라미터의 값을 추출하기 위한 공식을 의미하며, 각각의 서비스 식별자 및/또는 동작 식별자 별로 상이한 정규식이 이용될 수 있다. 예를 들어, 앞서 예시한 서비스 식별자 1(SERVICE_ID=1)을 가지는 URL에서 '방문(VISIT)' 동작을 추출하기 위한 정규식으로 "/restaurants\/show\/(.*)$/"이 이용될 수 있으며, 이 경우, '/restaurants\/show\/' 경로는 '방문(VISIT)' 동작을 나타내고(ACTION_ID=VISIT), 해당 경로 다음에 위치하는 파라미터 값인 11378은 아이템 식별자를 나타낸다(ITEM_ID=11378). 여기서, \는 정규식에 복수의 경로가 포함되는 경우에 각 경로를 구분하기 위한 '/'가 존재함을 나타내는 변수이고, $는 정규식이 끝났음을 나타내는 변수이다. 또한, 동일한 서비스 식별자(SERVICE_ID=1)를 가지는 "http://www.foodfly.co.kr/order/11378"와 같은 URL에서 '구매(PURCHASE)' 정규식으로 "/order\/(.*)$/"이 이용될 수 있으며, 이 경우, '/order\/' 경로는 '구매(PURCHASE)' 동작을 나타내고(action_id=purchase), 해당 경로 다음에 위치하는 파라미터 값인 11378은 아이템 식별자를 나타낸다(item_id=11378).In addition, the service device 30 extracts an item identifier (ITEM_ID) and an action identifier (ACTION_ID) from the visited URL information by using a regular expression predefined for each service identifier (SERVICE_ID). Here, the regular expression means a formula for extracting a value of a required parameter from URL information, and a different regular expression may be used for each service identifier and / or operation identifier. For example, "/restaurants\/show\/(.*)$/" is used as a regular expression for extracting a 'VISIT' operation from a URL having the service identifier 1 (SERVICE_ID = 1). In this case, the path '/ restaurants \ / show \ /' indicates a 'VISIT' operation (ACTION_ID = VISIT), and the parameter value 11378 located after the path indicates an item identifier (ITEM_ID = 11378). ). Here, \ is a variable indicating that '/' exists to distinguish each path when a plurality of paths are included in the regular expression, and $ is a variable indicating that the regular expression is finished. In addition, "/order\/(.*) as a" PURCHASE "regular expression at a URL such as" http://www.foodfly.com/order/11378 "with the same service identifier (SERVICE_ID = 1). $ / "May be used, in which case the '/ order \ /' path indicates a 'PURCHASE' action (action_id = purchase), and the parameter value 11378, located after the path, indicates the item identifier ( item_id = 11378).
한편, 서비스 장치(30)는 앞서 사용자 로그 데이터 수집 단계(S301)에서 메타 정보로 웹 서버(20)의 사용자 회원 아이디 값이 전달되어 저장되었다면, 해당 회원 아이디를 사용자 식별자(USER_ID)로 사용하고, 전달되지 않았다면, 단말(10)에서 웹 브라우저 쿠키를 기반으로 생성한 사용자 식별자 (USER_IDENTIFIER)를 사용자 식별자(USER_ID)로 사용한다.Meanwhile, if the user member ID value of the web server 20 is transmitted and stored as meta information in the user log data collection step (S301), the service device 30 uses the corresponding member ID as the user identifier (USER_ID), If not, the terminal 10 uses the user identifier USER_IDENTIFIER generated based on the web browser cookie as the user identifier USER_ID.
그리고, 서비스 장치(30)는 앞서 설명한 방법을 통해 추출하거나 획득한 사용자 식별자(USER_ID), 아이템 식별자(ITEM_ID)를 미리 정의된 숫자 식별자로 변환하며, 추출한 동작 식별자(ACTION_ID)에 미리 정의된 숫자 식별자를 부여한다. 이때, 서비스 장치(30)는 도메인과 서비스 식별자의 일대일 매핑 관계와 같이 각 사용자 식별자, 동작 식별자, 아이템 식별자 별로 미리 정해진 숫자 식별자로 변환할 수 있으며 혹은 임의로 연속된 정수값을 가지는 숫자 식별자로 변환(혹은 부여)할 수 있다.In addition, the service device 30 converts the user identifier USER_ID and the item identifier ITEM_ID extracted or acquired through the above-described method into a predefined numeric identifier, and the numeric identifier predefined in the extracted operation identifier ACTION_ID. To give. In this case, the service device 30 may convert each user identifier, an operation identifier, and an item identifier into a predetermined numeric identifier, such as a one-to-one mapping relationship between a domain and a service identifier, or optionally convert to a numeric identifier having a continuous integer value ( Or grant).
표 3은 변환된 사용자 식별자 테이블을 예시한다. Table 3 illustrates the converted user identifier table.
표 3
서비스 식별자(SERVICE_ID) 원본 사용자 식별자(ORG_USER_ID) 변환된 사용자 식별자(CONVERTED_USER_ID)
1 chaehyun 1
1 44209103.136609 2
1 68709103.015529 3
TABLE 3
Service identifier (SERVICE_ID) Original user identifier (ORG_USER_ID) Converted User Identifier (CONVERTED_USER_ID)
One chaehyun One
One 44209103.136609 2
One 68709103.015529 3
표 3에서 원본 식별자가 'chaehyun'는 웹 서버(20)의 사용자 회원 정보 값이 전달되어 이를 사용자 식별자로 사용한 경우를 나타내며, '44209103.136609' 혹은 '68709103.015529'는 단말(10)의 웹 브라우저 쿠키를 기반으로 생성한 값을 사용자 식별자로 사용한 경우를 나타낸다.In Table 3, the original identifier 'chaehyun' indicates a case where the user member information value of the web server 20 is delivered and used as the user identifier, and '44209103.136609' or '68709103.015529' is based on the web browser cookie of the terminal 10. This is the case that the generated value is used as a user identifier.
표 4는 변환된 아이템 식별자 테이블을 예시한다.Table 4 illustrates the converted item identifier table.
표 4
서비스 식별자(SERVICE_ID) 원본 아이템 식별자(ORG_ITEM_ID) 변환된 아이템 식별자(CONVERTED_ITEM_ID)
1 11378 1
1 1245 2
1 21456 3
Table 4
Service identifier (SERVICE_ID) Original item identifier (ORG_ITEM_ID) Converted Item Identifier (CONVERTED_ITEM_ID)
One 11378 One
One 1245 2
One 21456 3
표 5는 변환된 동작 식별자 테이블을 예시한다.Table 5 illustrates the translated action identifier table.
표 5
동작 명칭(ACTION_NAME) 동작 식별자(ACTION_ID)
방문(VISIT) 1
구매(PURCHASE) 101
추천 알고리즘 2(RECOMMEND_VISIT_ALGORITHM_2) 2
추천 알고리즘 3(RECOMMEND_VISIT_ALGORITHM_3) 3
장바구니(BASKET) 201
Table 5
Action Name (ACTION_NAME) Action Identifier (ACTION_ID)
VISIT One
PURCHASE 101
Recommended algorithm 2 (RECOMMEND_VISIT_ALGORITHM_2) 2
Recommended algorithm 3 (RECOMMEND_VISIT_ALGORITHM_3) 3
BASKET 201
표 5에서 추천 알고리즘 x(RECOMMEND_VISIT_ALGORITHM_x)은 해당 추천 알고리즘(x)을 이용하여 계산된 추천 아이템 리스트 제공 결과를 통해 사용자 단말(10)이 해당 서비스 식별자를 가지는 웹 서버(20)에 접속한 동작을 나타낸다.In Table 5, the recommendation algorithm x (RECOMMEND_VISIT_ALGORITHM_x) represents an operation in which the user terminal 10 accesses the web server 20 having the corresponding service identifier through a recommendation item list calculation result calculated using the recommendation algorithm x. .
이와 같이 최종적으로 변환된 사용자 로그 데이터는 아래 표 6과 같다.The user log data finally converted as described above is shown in Table 6 below.
표 6은 변환된 사용자 로그 데이터를 예시한다.Table 6 illustrates the converted user log data.
표 6
버전(VERSION) 변환된 사용자 식별자(CONVERTED_USER_ID) 변환된 아이템 식별자(CONVERTED_ITEM_ID) 서비스 식별자(SERVICE_ID) 동작 식별자(ACTION_ID) 시각(TIME)
0 36368996 1404200 4 1 20XX-YY-ZZ aa:bb:cc
0 36346053 39861 4 1 20XX-YY-ZZ aa:bb:cc
0 4093797 46666 8 1 20XX-YY-ZZ aa:bb:cc
0 36352376 29640 4 1 20XX-YY-ZZ aa:bb:cc
0 4093800 97415 8 1 20XX-YY-ZZ aa:bb:cc
0 36344208 39160 4 1 20XX-YY-ZZ aa:bb:cc
0 36343108 3812418 4 1 20XX-YY-ZZ aa:bb:cc
0 36356140 3841659 4 1 20XX-YY-ZZ aa:bb:cc
0 36395318 3856063 4 1 20XX-YY-ZZ aa:bb:cc
Table 6
Version (VERSION) Converted User Identifier (CONVERTED_USER_ID) Converted Item Identifier (CONVERTED_ITEM_ID) Service identifier (SERVICE_ID) Action Identifier (ACTION_ID) TIME
0 36368996 1404200 4 One 20XX-YY-ZZ aa: bb: cc
0 36346053 39861 4 One 20XX-YY-ZZ aa: bb: cc
0 4093797 46666 8 One 20XX-YY-ZZ aa: bb: cc
0 36352376 29640 4 One 20XX-YY-ZZ aa: bb: cc
0 4093800 97415 8 One 20XX-YY-ZZ aa: bb: cc
0 36344208 39160 4 One 20XX-YY-ZZ aa: bb: cc
0 36343108 3812418 4 One 20XX-YY-ZZ aa: bb: cc
0 36356140 3841659 4 One 20XX-YY-ZZ aa: bb: cc
0 36395318 3856063 4 One 20XX-YY-ZZ aa: bb: cc
표 6을 참조하면, 서비스 장치(30)는 변환된 사용자 로그 데이터에 포함되는 정보들의 항목에 따라 변환된 사용자 로그 데이터를 구분하기 위하여 상이한 버전(version) 정보를 부여할 수 있다. 예를 들어, 표 6의 예시와 같이, 버전 0을 가지는 변환된 사용자 로그 데이터의 경우, 변환된 사용자 식별자, 변환된 아이템 식별자, 서비스 식별자, 동작 식별자, 시각 항목을 포함하나, 버전 1을 가지는 변환된 사용자 로그 데이터의 경우에는 버전 0에 포함된 정보 항목 중 일부가 제외되거나 포함되지 않은 이외의 정보 항목이 추가될 수도 있다.Referring to Table 6, the service device 30 may assign different version information to distinguish the converted user log data according to the items of the information included in the converted user log data. For example, in the case of the converted user log data having version 0, as shown in the example of Table 6, the converted user identifier, the converted item identifier, the service identifier, the operation identifier, the time item, but the conversion having the version 1 In the case of the user log data, information items other than those included or not included in version 0 may be added.
서비스 장치(30)(특히, 추천 계산부(223))는 S303에서 변환된 사용자 로그 데이터를 이용하여 다양한 추천 알고리즘을 이용하여 추천 아이템을 계산하고, 추천 계산 결과를 저장할 수 있다(S305).The service device 30 (particularly, the recommendation calculator 223) may calculate the recommendation item using various recommendation algorithms using the user log data converted in S303, and store the recommendation calculation result (S305).
서비스 장치(30)는 추천 결과를 제공하는 웹 서버(20)가 제공하는 서비스의 성격에 적합하고 효과적인 추천 알고리즘을 적용할 수 있도록 다양한 추천 알고리즘을 각각 적용하여 추천 아이템을 계산할 수 있다. 즉, 수집된 전체 변환된 사용자 로그 데이터를 기반으로 다양한 추천 알고리즘을 각각 적용하여 각각의 추천 알고리즘에 따른 추천 아이템을 계산하거나, 수집된 전체 변환된 사용자 로그 데이터를 임의로 혹은 특정 조건에 따라 그룹핑하고, 각 그룹 별로 서로 다른 추천 알고리즘에 따른 추천 아이템을 계산할 수 있다. 예를 들어, 사용자 식별자(USER_ID)가 홀수인 변환된 사용자 로그 데이터와 짝수인 변환된 사용자 로그 데이터를 구분하고, 각각 A 추천 알고리즘과 B 추천 알고리즘을 이용하여 추천 아이템을 계산할 수 있다.The service device 30 may calculate a recommendation item by applying various recommendation algorithms so as to apply a recommendation algorithm suitable for the nature of the service provided by the web server 20 providing the recommendation result. In other words, based on the collected total user log data collected by applying a variety of recommendation algorithms to calculate the recommended items according to each recommendation algorithm, or group the collected total converted user log data arbitrarily or according to a specific condition, Each group may calculate recommendation items according to different recommendation algorithms. For example, the converted user log data having an odd user identifier (USER_ID) and the converted user log data having an even number may be distinguished, and a recommended item may be calculated using an A recommendation algorithm and a B recommendation algorithm, respectively.
서비스 장치(30)는 정해진 범위(즉, 전체 혹은 그룹)에 포함되는 변환된 사용자 로그 데이터에 속하는 모든 아이템에 대하여 해당 아이템을 제외한 이외의 모든 아이템과의 유사도를 각각 계산한다. 예를 들어, 정해진 범위 내 변환된 사용자 로그 데이터에 총 100개의 아이템이 속하는 경우, 첫 번째 아이템과 해당 아이템 이외의 99개의 아이템 간의 유사도를 각각 계산하고, 두 번째 아이템과 해당 아이템 이외의 99개의 아이템 간의 유사도를 각각 계산하는 방식으로 모든 아이템에 대하여 다른 아이템과의 유사도를 계산한다.The service device 30 calculates similarity with all items except for the corresponding items for all items belonging to the converted user log data included in the predetermined range (ie, all or groups). For example, if a total of 100 items belong to the converted user log data within a predetermined range, the similarity between the first item and 99 items other than the corresponding item is calculated, and the 99 items other than the second item and the corresponding item are calculated. The similarity with other items is calculated for all items by calculating the similarity between them.
서비스 장치(30)는 두 개의 아이템 간의 유사도(similarity)를 계산하기 위하여 다양한 추천 알고리즘을 이용할 수 있다. 그 일례로, 자카드 유사도(similarity), 로그-우도 유사도(Log Likelihood Similarity), 피어슨 상관(Pearson correlation) 등을 이용할 수 있다. 이러한 유사도 계산 방법들은 이미 공지된 방법들로 이하 상세한 설명을 생략한다. 이하, 설명의 편의를 위하여 추천 알고리즘으로 자카드 유사도를 이용한다고 가정하여 설명하며, 자카드 유사도는 아래 수학식 1과 같이 정의된다.The service device 30 may use various recommendation algorithms to calculate the similarity between two items. For example, jacquard similarity, log likelihood similarity, Pearson correlation, or the like may be used. These similarity calculation methods are already known methods and will not be described in detail below. Hereinafter, description will be made on the assumption that jacquard similarity is used as a recommendation algorithm for convenience of description, and jacquard similarity is defined as in Equation 1 below.
수학식 1
Figure PCTKR2014002552-appb-M000001
Equation 1
Figure PCTKR2014002552-appb-M000001
수학식 1을 참조하면, 두 개의 아이템 간의 자카드 유사도는 두 아이템을 모두 방문한 사용자 수(두 아이템을 표시하는 웹 페이지 모두 접속한 사용자들의 수)를 두 아이템을 방문한 사용자들의 합집합의 수(두 아이템을 표시하는 웹 페이지 중 어느 하나 이상에 접속한 사용자들의 수 두 아이템을 표시하는 웹 페이지 모두 접속한 사용자들의 수)로 나누어 계산되며, 결국 두 아이템을 모두 방문한 사용자들이 많을수록 양 아이템 간의 유사도가 커지게 된다. 예를 들어, A 아이템을 표시하는 웹 페이지에 접속한 사용자들의 수가 20이고, B 아이템을 표시하는 웹 페이지에 접속한 사용자들의 수가 10이며, A와 B 아이템을 표시하는 웹 페이지에 모두 방문한 사용자들의 수가 5인 경우, 자카드 유사도의 계산 결과는 5/(20+10-5)=1/5과 같다.Referring to Equation 1, the jacquard similarity between two items is determined by the number of users who visited both items (the number of users who accessed both web pages displaying both items) and the number of unions of users who visited both items (the two items The number of users who have access to any one or more of the displayed web pages is calculated by dividing the number of users who have accessed both web pages displaying two items), and as a result, the more users who visit both items, the greater the similarity between the two items. . For example, the number of users who access the web page displaying item A is 20, the number of users who access the web page displaying item B is 10, and the number of users who visited both the web pages displaying item A and B If the number is 5, the result of calculating the jacquard similarity is equal to 5 / (20 + 10-5) = 1/5.
서비스 장치(30)는 추천 알고리즘을 이용하여 정해진 범위 내(전체 혹은 그룹) 변환된 사용자 로그 데이터에 속하는 모든 아이템에 대하여 유사도를 모두 계산한 후, 각 아이템 별로 유사도가 큰 순서대로 n 개의 아이템을 추천 아이템으로 산출한다. 이때, 서비스 장치(30)는 모든 아이템에 대하여 유사도를 모두 계산한 후, 특정 조건(예를 들어, 두 아이템을 모두 방문한 사용자들의 수>= 50 이며 유사도 > 0.1)을 만족하는 아이템을 추출한 후 추출된 아이템 중에서 각 아이템 별로 유사도가 큰 순서대로 n 개의 아이템을 추천 아이템으로 산출할 수도 있다.The service device 30 calculates all similarities for all items belonging to the user log data converted within a predetermined range (all or in a group) using the recommendation algorithm, and then recommends n items in the order of similarity for each item. Calculate it as an item. In this case, the service device 30 calculates all similarities for all items, extracts an item satisfying a specific condition (for example, the number of users who visited both items> = 50 and the similarity> 0.1) and then extracts the items. N items may be calculated as recommended items in order of similarity for each item among the items.
상술한 자카드 유사도를 이용하여 추천 아이템을 계산하는 방법은 하나의 예시에 불과하며, 상술한 바와 같이 서비스 장치(30)는 다양한 추천 알고리즘을 이용하여 각 아이템에 대한 추천 아이템을 계산할 수 있다. 또한, 서로 다른 추천 알고리즘을 이용하여 각 아이템에 대한 추천 아이템의 추천 점수를 계산하더라도 추천 점수는 모두 동일한 수준(예를 들어, 0 내지 1 사이)으로 정해질 수 있다. 이와 같이 각각의 추천 알고리즘에 따른 추천 계산 결과는 아래 표 7과 같다.The method of calculating the recommendation item using the jacquard similarity described above is just one example, and as described above, the service device 30 may calculate the recommendation item for each item using various recommendation algorithms. In addition, even when the recommendation scores of the recommended items for each item are calculated using different recommendation algorithms, the recommendation scores may all be set at the same level (eg, between 0 and 1). As described above, the result of recommendation calculation according to each recommendation algorithm is shown in Table 7 below.
표 7은 각각의 추천 알고리즘에 따라 계산된 추천 계산 결과를 예시한다.Table 7 illustrates the recommendation calculation results calculated according to each recommendation algorithm.
표 7
변환된 아이템 식별자(CONVERTED_ITEM_ID) 변환된 추천 아이템 식별자(RECOMMENDED_ITEM_ID) 추천 점수(SCORE) 방법(METHOD)
1 11 0.05511811023622047 2
1 164 0.0894854586129754 2
1 218 0.04025423728813559 2
1 272 0.11278195488721804 2
TABLE 7
Converted Item Identifier (CONVERTED_ITEM_ID) Translated suggestion item identifier (RECOMMENDED_ITEM_ID) Referral Score (SCORE) Method (METHOD)
One 11 0.05511811023622047 2
One 164 0.0894854586129754 2
One 218 0.04025423728813559 2
One 272 0.11278195488721804 2
표 7을 참조하면, 추천 점수(SCORE) 값은 추천 알고리즘에 따라 해당 아이템과 추천 아이템 간의 유사도를 계산한 값을 나타내고, 방법(METHOD)은 유사도 계산에 이용된 추천 알고리즘에 대한 식별 번호를 나타낸다.Referring to Table 7, the SCORE value indicates a value for calculating the similarity between the item and the recommended item according to the recommendation algorithm, and the method METHOD indicates an identification number for the recommendation algorithm used for the similarity calculation.
서비스 장치(30)(특히, 데이터 처리부(222))는 S305 단계에서 계산된 추천 계산 결과를 웹 서버(20)에 제공하기 위하여 적합한 데이터 포맷으로 변환할 수 있다(S307).The service device 30 (particularly, the data processor 222) may convert the recommendation calculation result calculated in step S305 into a suitable data format in order to provide the web server 20 (S307).
먼저, 서비스 장치(30)는 추천 계산 결과에서 변환된 아이템의 식별자를 원본 식별자로 변경하고, 서비스 식별자와 결과를 계산한 날짜를 추가하여 저장한다.First, the service device 30 changes the identifier of the item converted from the recommendation calculation result to the original identifier, and adds and stores the service identifier and the calculated date.
표 8은 추천 계산 결과의 변환된 포맷을 예시한다.Table 8 illustrates the converted format of the recommendation calculation result.
표 8
원본 아이템 식별자(ORG_ITEM_ID) 원본 추천 아이템 식별자(ORG_RECOMMENDED_ITEM_ID) 추천 점수(SCORE) 방법(METHOD) 서비스 식별자(SERVICE_ID) 날짜(DATE)
123 11149 0.055118 2 1 20XX-YY-ZZ
123 11113 0.089485 2 1 20XX-YY-ZZ
123 740 0.040254 2 1 20XX-YY-ZZ
123 179 0.112782 2 1 20XX-YY-ZZ
Table 8
Original item identifier (ORG_ITEM_ID) Original suggested item identifier (ORG_RECOMMENDED_ITEM_ID) Referral Score (SCORE) Method (METHOD) Service identifier (SERVICE_ID) DATE
123 11149 0.055118 2 One 20XX-YY-ZZ
123 11113 0.089485 2 One 20XX-YY-ZZ
123 740 0.040254 2 One 20XX-YY-ZZ
123 179 0.112782 2 One 20XX-YY-ZZ
이어, 서비스 장치(30)는 최종적으로 인터넷을 통해 웹 서버(20)에 제공하기에 적합한 데이터 포맷으로 추천 계산 결과를 변환하여 저장할 수 있다. 이때, 서비스 장치(30) 아래 표 9와 같은 JSON(JavaScript Object Notation) 포맷으로 저장할 수 있다. 다만, JSON 포맷은 하나의 예시에 불과하며, 서비스 장치(30)는 확장성 마크업 언어(XML: Extensible Markup Language) 포맷이나 YAML(YAML Ain't Markup Language) 포맷 등과 같이 다양한 데이터 포맷으로 저장할 수 있다. 이하, JSON 포맷을 가정하여 설명한다.Subsequently, the service device 30 may convert and store the recommendation calculation result into a data format suitable for finally providing the web server 20 through the Internet. At this time, the service device 30 may be stored in the JSON (JavaScript Object Notation) format as shown in Table 9 below. However, the JSON format is just one example, and the service device 30 may store the data in various data formats such as Extensible Markup Language (XML) format or YAML Ain't Markup Language (YAML) format. have. The following description assumes the JSON format.
표 9는 최종적으로 변환되어 저장되는 추천 결과 포맷을 예시한다.Table 9 illustrates the recommended result format that is finally converted and stored.
표 9
해쉬(HASH) 서비스 식별자(SERVICE_ID) 원본 아이템 식별자(ORG_ITEM_ID) 카운트(COUNT) JSON 시각 (TIME)
4cfc30c5e1c1bbcf 1 11057 3 [{"id":"11649","score":0.059867, "method":"2"}, {"id":"11480","score":0.052219, "method":"2"}, {"id":"12116","score":0.052083, "method":"2"}] 20XX-YY-ZZ aa:bb:cc
c000365f48786906 1 11078 2 [{"id":"11822","score":0.055385, "method":"2"}, {"id":"11021","score":0.033816, "method":"2"}] 20XX-YY-ZZ aa:bb:cc
96028a9562ba33de 1 11099 10 [{"id":"325","score":0.100656, "method":"2"}, {"id":"553","score":0.061425, "method":"2"}, {"id":"849","score":0.055133, "method":"2"}, {"id":"622","score":0.051887, "method":"2"}, {"id":"464","score":0.051515, "method":"2"}, {"id":"435","score":0.050532, "method":"2"}, {"id":"11614","score":0.046632, "method":"2"}, {"id":"786","score":0.044872, "method":"2"}, {"id":"11456","score":0.041322, "method":"2"}, {"id":"11771","score":0.040925, "method":"2"}] 20XX-YY-ZZ aa:bb:cc
Table 9
HASH Service identifier (SERVICE_ID) Original item identifier (ORG_ITEM_ID) COUNT JSON TIME
4cfc30c5e1c1bbcf One 11057 3 [{"id": "11649", "score": 0.059867, "method": "2"}, {"id": "11480", "score": 0.052219, "method": "2"}, { "id": "12116", "score": 0.052083, "method": "2"}] 20XX-YY-ZZ aa: bb: cc
c000365f48786906 One 11078 2 [{"id": "11822", "score": 0.055385, "method": "2"}, {"id": "11021", "score": 0.033816, "method": "2"}] 20XX-YY-ZZ aa: bb: cc
96028a9562ba33de One 11099 10 [{"id": "325", "score": 0.100656, "method": "2"}, {"id": "553", "score": 0.061425, "method": "2"}, { "id": "849", "score": 0.055133, "method": "2"}, {"id": "622", "score": 0.051887, "method": "2"}, {"id ":" 464 "," score ": 0.051515," method ":" 2 "}, {" id ":" 435 "," score ": 0.050532," method ":" 2 "}, {" id ": "11614", "score": 0.046632, "method": "2"}, {"id": "786", "score": 0.044872, "method": "2"}, {"id": "11456 "," score ": 0.041322," method ":" 2 "}, {" id ":" 11771 "," score ": 0.040925," method ":" 2 "}] 20XX-YY-ZZ aa: bb: cc
표 9를 참조하면, 해쉬 값은 특정 아이템에 관하여 추천되는 추천 아이템 리스트가 동일한 경우, 해당 아이템에 관한 추천 아이템 리스트를 중복해서 저장하지 않기 위하여 계산된 값을 의미하며, 서비스 식별자(SERVICE_ID), 아이템 식별자(ITEM_ID) 및 추천 아이템 식별자(RECOMMENDED_ITEM_ID)들을 하나의 문자열로 합친 다음, 합친 문자열에 해쉬 함수를 적용하여 계산된다. 이와 같은 해쉬 값을 사용함으로써, 특정 아이템에 대한 추천 아이템 리스트에 속하는 추천 아이템의 순위가 변경되거나 추천 아이템 리스트에 속하는 추천 아이템이 변경되지 않는 한 추천 아이템 리스트에 속한 추천 아이템들의 추천 점수가 변경되더라도 추천 아이템 리스트를 갱신하지 않을 수 있다. 즉, 해쉬 값을 계산하기 위한 변수로 추천 아이템에 대한 추천 점수가 포함되지 않으므로, 만약 다음 날 다시 추천 아이템 리스트를 계산했을 때, 추천 아이템의 추천 점수가 변경되더라도, 추천되는 아이템의 수가 바뀌거나, 순서가 변경되지 않으면, 해쉬 값은 변경되지 않기 때문이다.Referring to Table 9, the hash value means a value calculated so as not to store the recommended item list for the corresponding item when the recommended item list recommended for the specific item is the same, and the service identifier (SERVICE_ID) and the item. The identifier (ITEM_ID) and the recommended item identifier (RECOMMENDED_ITEM_ID) are combined into one string, and then calculated by applying a hash function to the combined string. By using such a hash value, even if the recommendation item of the recommendation item list for a specific item is changed or the recommendation item of the recommendation item list is not changed unless the recommendation item of the recommendation item list is recommended, the recommendation is changed. The item list may not be updated. That is, since the recommendation score for the recommendation item is not included as a variable for calculating the hash value, when the recommendation item list is calculated the next day, even if the recommendation score of the recommendation item is changed, the number of recommended items is changed, If the order does not change, the hash value does not change.
그리고, 카운트(COUNT) 값은 특정 아이템에 관하여 몇 개의 아이템이 추천되었는지 추천 아이템의 개수를 나타낸다. JSON 값은 카운트 값에 해당하는 개수의 추천 아이템에 대한 정보를 포함하며, 그 일례로, 추천 아이템 식별자, 추천 점수 및 추천 알고리즘 정보를 포함할 수 있다.The count value indicates the number of recommended items and how many items are recommended for a particular item. The JSON value includes information on the number of recommended items corresponding to the count value. For example, the JSON value may include a recommendation item identifier, a recommendation score, and recommendation algorithm information.
서비스 장치(30)(특히, 추천 결과 제공부(224))는 계산된 추천 결과(혹은 추천 아이템 리스트)에 대하여 후처리를 수행한 후, 사용자 로그 데이터를 수집한 해당 웹 서버(20)에 추천 아이템 리스트를 제공할 수 있다(S309).The service device 30 (particularly, the recommendation result providing unit 224) performs post-processing on the calculated recommendation result (or recommendation item list), and then recommends to the corresponding web server 20 that has collected user log data. An item list may be provided (S309).
이에 관하여 아래 도 6을 참조하여 보다 상세히 설명한다.This will be described in more detail with reference to FIG. 6 below.
도 6은 본 발명의 일 실시예에 따른 추천 아이템 리스트를 제공하는 방법을 예시하는 도면이다.6 is a diagram illustrating a method of providing a recommendation item list according to an embodiment of the present invention.
도 6을 참조하면, 서비스 장치(30)는 변환된 저장된 추천 결과(혹은 추천 아이템 리스트)에 대하여 후처리를 수행할 수 있다(S601).Referring to FIG. 6, the service device 30 may perform post-processing on the converted stored recommendation result (or recommendation item list) (S601).
추천 결과(혹은 추천 아이템 리스트)에 대한 후처리는 추천 결과(혹은 추천 아이템 리스트)에서 추천 아이템을 추가, 삭제 혹은 변경하거나 추천 아이템 리스트에서 포함되는 정보 항목을 추가, 삭제 혹은 변경하는 동작을 의미한다. 이러한 후처리 과정은 서비스 장치(30)에서 자동으로 수행될 수 있으며, 웹 서버(20)로부터의 요청에 의하여 서비스 장치(30)에서 수행될 수도 있다.Post-processing of the recommendation result (or recommendation item list) refers to an operation of adding, deleting, or changing a recommendation item from the recommendation result (or recommendation item list) or adding, deleting, or changing information items included in the recommendation item list. . This post-processing process may be automatically performed in the service device 30, or may be performed in the service device 30 by a request from the web server 20.
구체적으로 살펴보면, 서비스 장치(30)는 추천 금지된 아이템을 추천 결과(혹은 추천 아이템 리스트)에서 제거할 수 있다. 예를 들어, 웹 서버(20)의 관리자가 아이템 A에 대한 아이템 B의 추천을 금지한 경우, 아이템 A에 대한 추천 아이템 리스트에서 아이템 B를 제거할 수 있다. 또한, 특정 상품이 품절되거나 특정 상점이 더 이상 영업을 하지 않는 경우 등과 같이 어떠한 아이템에 대해서도 추천되지 않아야 하는 아이템의 경우에는 모든 추천 아이템 리스트(즉, 추천 결과)에서 해당 아이템을 제거할 수 있다. 이와 같이 추천 금지된 아이템을 추천 결과(혹은 추천 아이템 리스트)에서 제거할 때, 서비스 장치(30)는 기 생성된 추천 결과(혹은 추천 아이템 리스트)에서 삭제하고자 하는 아이템을 임의로 삭제하거나, 해당 아이템에 대한 추천 점수를 낮은 값으로 변경 혹은 낮은 값이 계산되도록 변수 값을 조정하여 추천 결과(혹은 추천 아이템 리스트)에서 추천 금지된 아이템을 제거할 수 있다.In detail, the service device 30 may remove the prohibited item from the recommendation result (or the recommended item list). For example, when the administrator of the web server 20 prohibits the recommendation of item B for item A, item B may be removed from the recommended item list for item A. FIG. In addition, in the case of an item that should not be recommended for any item, such as when a certain product is out of stock or when a particular store is no longer in operation, the item may be removed from the list of all recommended items (ie, the recommendation result). When removing the recommended prohibited item from the recommendation result (or recommendation item list), the service device 30 arbitrarily deletes an item to be deleted from the previously generated recommendation result (or recommendation item list), or The recommendation score can be changed to a lower value or a variable value can be adjusted so that a lower value is calculated to remove the prohibited item from the recommendation result (or recommendation item list).
또한, 서비스 장치(30)는 추천 결과(혹은 추천 아이템 리스트)에 속하지 않은 임의의 아이템을 추천 아이템으로 추가할 수 있다. 예를 들어, 웹 서버(20)의 관리자가 계산된 추천 아이템 리스트의 결과가 마음에 들지 않는 경우 혹은 특정 아이템에 대한 추천 아이템 리스트가 생성되지 않은 경우 등을 이유로 서비스 장치(30)는 특정 아이템을 추천 아이템으로 추천 결과(혹은 추천 아이템 리스트)에 포함시킬 수도 있다. 이 경우에도, 서비스 장치(30)는 기 생성된 추천 결과(혹은 추천 아이템 리스트)에서 추가하고자 하는 아이템을 임의로 추가하거나, 특정 아이템들로 구성된 추천 아이템 리스트를 새롭게 생성하거나 추가하고자 하는 아이템에 대한 추천 점수를 높은 값으로 변경 혹은 높은 값으로 계산되도록 변수 값을 조정할 수 있다.In addition, the service device 30 may add any item that does not belong to the recommendation result (or the recommendation item list) as the recommendation item. For example, if the administrator of the web server 20 does not like the result of the calculated recommendation item list, or if the recommendation item list for the specific item is not generated, the service device 30 selects the specific item. It may be included in the recommendation result (or recommendation item list) as a recommendation item. Even in this case, the service device 30 arbitrarily adds an item to be added from a previously generated recommendation result (or a recommendation item list), or creates a recommendation item list composed of specific items or recommends an item to be added. You can adjust the value of the variable to change the score to a higher value or to calculate a higher value.
또한, 추천 결과(혹은 추천 아이템 리스트)를 구성하는 정보 항목은 앞서 표 9의 예시와 같이 추천 아이템 식별자, 추천 점수 및 추천 알고리즘 정보만을 포함할 수도 있으나, 서비스 장치(30)는 이외에 추천 결과(혹은 추천 아이템 리스트)를 구성하는 새로운 정보 항목을 추가할 수도 있다. 예를 들어, 서비스 장치(30)는 추천 아이템 리스트에 추천되는 아이템 명칭, 추천되는 아이템의 썸네일에 대한 URL, 추천되는 아이템의 가격 정보 등을 포함시킬 수 있다.In addition, the information item constituting the recommendation result (or recommendation item list) may include only the recommendation item identifier, recommendation score, and recommendation algorithm information as shown in the example of Table 9 above, but the service device 30 may also recommend the recommendation result (or It is also possible to add a new information item constituting a list of recommended items. For example, the service device 30 may include a recommended item name, a URL of a thumbnail of the recommended item, price information of the recommended item, and the like in the recommended item list.
웹 서버(20)는 단말(10)이 접속하여 방문하는 웹 페이지에 표시되는 아이템에 관한 추천 아이템 리스트를 요청하기 위한 메시지를 서비스 장치(30)에 전송한다(S603). 추천 아이템 리스트 요청 메시지에는 요청하는 웹 서버(20)에 대한 서비스 식별자, 요청하는 아이템에 대한 아이템 식별자가 포함되며, 버전 정보, 메타 정보 등이 추가적으로 포함될 수 있다.The web server 20 transmits a message to the service device 30 for requesting a list of recommended items regarding items displayed on the web page to which the terminal 10 accesses (S603). The recommended item list request message includes a service identifier for the requesting web server 20, an item identifier for the requested item, and may further include version information, meta information, and the like.
웹 서버(20)로부터 추천 아이템 리스트 요청 메시지를 수신한 서비스 장치(30)는 요청한 아이템에 관한 추천 아이템 리스트를 추출하고(S605), 추출한 추천 아이템 리스트를 웹 서버(20)에 전송한다(S607).Upon receiving the recommendation item list request message from the web server 20, the service device 30 extracts a recommendation item list for the requested item (S605), and transmits the extracted recommendation item list to the web server 20 (S607). .
여기서, 서비스 장치(30)는 웹 서버(20)에 생성된 추천 아이템 리스트의 포맷(즉, JSON 포맷)으로 전송할 수도 있으나, 아이프레임(iframe) 포맷으로 추천 아이템 리스트를 전송할 수도 있다. JSON 포맷으로 추천 아이템 리스트를 제공하는 경우, 웹 서버(20)에서 별도의 디자인을 추가한 후, 웹 페이지 상에 추천 아이템 리스트를 제공해야 하는 반면, iframe의 경우 웹 서버(20)에서 추가적인 처리 없이 웹 페이지에 바로 적용할 수 있는 장점이 있다.Here, the service device 30 may transmit the recommendation item list in the format of the recommendation item list generated in the web server 20 (ie, JSON format), or may transmit the recommendation item list in the iframe format. In the case of providing a list of recommended items in JSON format, after adding a separate design in the web server 20, a list of recommended items should be provided on the web page, whereas in the case of an iframe, the web server 20 does not need additional processing. There is an advantage that can be applied directly to a web page.
먼저, JSON 포맷으로 추천 아이템 리스트를 전송하는 경우를 예를 들면, 웹 서버(20)는 "http://api.recopick.com/VERSION/recommend/SERVICE_ID/ITEM_ID? OPTIONS"와 같은 포맷으로 서비스 장치(30)에 추천 아이템 리스트를 요청할 수 있다. 이와 같이, JSON 포맷으로 추천 아이템 리스트를 요청하는 경우, 추천 아이템 리스트 요청 메시지에는 서비스 식별자, 아이템 식별자와 함께 버전 정보 및 기타 메타 정보 등이 포함될 수 있다.First, for example, in the case of transmitting a list of recommended items in the JSON format, the web server 20 is a service device in a format such as "http://api.recopick.com/VERSION/recommend/SERVICE_ID/ITEM_ID?OPTIONS". The list of recommended items may be requested at 30. As such, when requesting a recommendation item list in JSON format, the recommendation item list request message may include a service identifier, an item identifier, version information, and other meta information.
예를 들어, 웹 서버(20)가 "http://api.recopick.com/2/recommend/1/11057?field=meta"와 같이 서비스 장치(30)에 추천 아이템 리스트를 요청한 경우, 요청하는 추천 아이템 리스트의 버전은 2이고, 서비스 식별자는 1이고, 요청하는 아이템의 식별자는 11057이며, 메타 정보를 추가로 요청한 경우를 나타낸다. 이러한 요청에 대한 응답으로 서비스 장치(30)가 웹 서버(20)에 제공하는 추천 아이템 리스트를 예시하면 아래 표 10과 같다.For example, when the web server 20 requests a list of recommended items from the service device 30 such as "http://api.recopick.com/2/recommend/1/11057?field=meta", the request is made. The version of the recommended item list is 2, the service identifier is 1, the identifier of the requesting item is 11057, and it indicates a case of additional request for meta information. An example of the recommended item list provided by the service device 30 to the web server 20 in response to the request is shown in Table 10 below.
표 10은 JSON 포맷으로 제공되는 추천 아이템 리스트를 예시한다.Table 10 illustrates a list of recommended items provided in JSON format.
표 10
[{"id":"11649","score":0.061947,"method":"2","image":{"src":"http://www.foodfly.co.kr/upload/restaurant/8320977315090c487b5f3d.jpg"},"title":"XXX"},{"id":"11480","score":0.05137,"method":"2","image":{"src":"http://www.foodfly.co.kr/upload/restaurant/1192962858506d36dc8981f.jpg"},"title":"YYY},{"id":"12116","score":0.042345,"method":"2","image":{"src":"http://www.foodfly.co.kr/upload/restaurant/1138839503513839a99ea0e.jpg"},"title":"ZZZ "}]
Table 10
[{"id": "11649", "score": 0.061947, "method": "2", "image": {"src": "http://www.foodfly.com/upload/restaurant/ 8320977315090c487b5f3d.jpg "}," title ":" XXX "}, {" id ":" 11480 "," score ": 0.05137," method ":" 2 "," image ": {" src ":" http: //www.foodfly.co/kr/upload/restaurant/1192962858506d36dc8981f.jpg"},"title":"YYY},{"id":"12116","score":0.042345,"method":"2 " , "image": {"src": "http://www.foodfly.com/upload/restaurant/1138839503513839a99ea0e.jpg"}, "title": "ZZZ"}]
표 10을 참조하면, 추천 아이템 리스트에는 추천 아이템 식별자("id"), 추천 점수("score") 및 추천 알고리즘 정보("method")가 포함될 수 있다. 또한, 표 10의 경우 기타 메타 정보를 추가로 요청한 경우에 서비스 장치(30)가 추가적인 메타 정보를 추천 아이템 리스트에 포함시킨 경우를 예시하고 있으며, 추가 메타 정보로 추천 아이템의 이미지 정보("image"), 추천 아이템 명칭 정보("title")가 해당된다.Referring to Table 10, the recommendation item list may include a recommendation item identifier (“id”), a recommendation score (“score”), and recommendation algorithm information (“method”). In addition, Table 10 illustrates a case in which the service device 30 includes additional meta information in the recommended item list when additional meta information is additionally requested, and image information (“image”) of the recommended item is included as additional meta information. ), And recommended item name information ("title").
다음으로, iframe 포맷으로 추천 아이템 리스트를 전송하는 경우를 예를 들면,웹 서버(20)는 "http://api.recopick.com/VERSION/banner/SERVICE_ID/show?item_id=ITEM_ID&direction=[horizontal|vertical&count=recommend_size"와 같은 포맷으로 서비스 장치(30)에 추천 아이템 리스트를 요청할 수 있다. 이와 같이, iframe 포맷으로 추천 아이템 리스트를 요청하는 경우, 서비스 식별자, 아이템 식별자, 프레임 방향(수평 방향 혹은 수직 방향), 프레임 크기, 추천 아이템 개수와 함께 버전 정보 및 기타 메타 정보 등이 포함될 수 있다.Next, for example, in the case of transmitting a list of recommended items in iframe format, the web server 20 reads "http://api.recopick.com/VERSION/banner/SERVICE_ID/show?item_id=ITEM_ID&direction= [horizontal | The recommended item list may be requested from the service device 30 in a format such as vertical & count = recommend_size ". As such, when requesting a list of recommended items in an iframe format, a service identifier, an item identifier, a frame direction (horizontal or vertical direction), a frame size, version information along with the number of recommended items, and the like may be included.
예를 들어, 웹 서버(20)가 "http://api.recopick.com/2/banner/6/show?item_id=59&direction=horizontal&count=4"와 같이 서비스 장치(30)에 추천 아이템 리스트를 요청한 경우, 요청하는 추천 아이템 리스트의 버전은 2이고, 서비스 식별자는 6이고, 요청하는 아이템의 식별자는 59이고, 프레임의 방향으로 수평 방향이고, 추천 아이템의 개수는 4인 경우를 나타낸다.For example, the web server 20 requests a list of recommended items from the service device 30 such as "http://api.recopick.com/2/banner/6/show?item_id=59&direction=horizontal&count=4". In this case, the version of the requested recommendation item list is 2, the service identifier is 6, the identifier of the requesting item is 59, the horizontal direction in the direction of the frame, and the number of recommended items is 4.
또한, 예를 들어, 웹 서버(20)가 "http://api.recopick.com/2/banner/6/show?item_id=59&direction=vertical&count=2 "와 같이 서비스 장치(30)에 추천 아이템 리스트를 요청한 경우, 요청하는 추천 아이템 리스트의 버전은 2이고, 서비스 식별자는 6이고, 요청하는 아이템의 식별자는 59이고, 프레임의 방향으로 수직 방향이고, 추천 아이템의 개수는 2인 경우를 나타낸다.In addition, for example, the web server 20 may recommend a list of recommended items to the service device 30 such as "http://api.recopick.com/2/banner/6/show?item_id=59&direction=vertical&count=2". In the case of requesting, the version of the requested recommendation item list is 2, the service identifier is 6, the identifier of the requesting item is 59, the direction perpendicular to the frame direction, and the number of recommended items is 2.
이러한 요청에 대한 응답으로 서비스 장치(30)가 웹 서버(20)에 제공하는 추천 아이템 리스트를 예시하면 아래 도 8과 같다.8 illustrates a list of recommended items provided by the service device 30 to the web server 20 in response to the request.
도 7은 본 발명의 일 실시예에 따른 아이프레임(iframe) 포맷으로 제공되는 추천 아이템 리스트를 예시하는 도면이다.7 is a diagram illustrating a list of recommended items provided in an iframe format according to an embodiment of the present invention.
도 7의 (a)는 웹 서버(20)가 수평 방향으로 추천 아이템 4개를 요청한 경우, 이에 대한 응답으로 서비스 장치(30)가 제공하는 추천 아이템의 개수가 4개이고 수평 방향으로 표시되는 추천 아이템 리스트를 예시하고 있으며, 도 7의 (b)는 웹 서버(20)가 수직 방향으로 추천 아이템 2개를 요청한 경우, 이에 대한 응답으로 서비스 장치(30)가 제공하는 추천 아이템의 개수가 2개이고 수직 방향으로 표시되는 추천 아이템 리스트를 예시한다.Referring to FIG. 7A, when the web server 20 requests four recommended items in the horizontal direction, in response to the request, the recommended items displayed in the horizontal direction are four recommended items provided by the service device 30. In FIG. 7B, when the web server 20 requests two recommended items in the vertical direction, the number of recommended items provided by the service device 30 is two and vertical in response thereto. An example of the recommended item list displayed in the direction is illustrated.
도 8은 본 발명의 일 실시예에 따른 아이프레임(iframe) 포맷으로 제공되는 추천 아이템 리스트가 웹 페이지 상에 표시되는 예시를 나타낸다.8 illustrates an example of displaying a recommendation item list provided in an iframe format on a web page according to an embodiment of the present invention.
도 8을 참조하면, 서비스 장치(30)가 제공하는 iframe 포맷의 추천 아이템 리스트는 앞서 도 7과 같이 서비스 장치(30)가 제공한 형태로 웹 서버(20)의 웹 페이지 상에 동일하게 표시될 수 있다. 따라서, 이와 같이, 서비스 장치(30)는 배너(banner) 형태로 웹 서버(20)에 추천 아이템 리스트를 제공하므로, 웹 서버(20)에서는 추가적인 데이터 처리 절차를 수행하지 않을 수 있다.Referring to FIG. 8, the recommendation item list in the iframe format provided by the service device 30 may be displayed on the web page of the web server 20 in the form provided by the service device 30 as shown in FIG. 7. Can be. Thus, since the service device 30 provides the list of recommended items to the web server 20 in the form of a banner, the web server 20 may not perform an additional data processing procedure.
한편, 도 6에서는 서비스 장치(30)가 후처리를 수행한 후 웹 서버(30)의 요청에 따라 추천 아이템 리스트를 전송하는 방법을 예시하고 있으나, 서비스 장치(30)는 웹 서버(20)로부터 추천 아이템 리스트 요청 메시지를 수신하면, 요청한 추천 아이템 리스트에 대하여 후처리를 수행한 후 후처리된 추천 아이템 리스트를 웹 서버(20)에 전송할 수도 있다. 즉, 후처리를 수행하는 단계가 S605 단계와 S607 단계 사이에서 수행될 수도 있다.Meanwhile, although FIG. 6 illustrates a method of transmitting a recommendation item list at the request of the web server 30 after the service device 30 performs post-processing, the service device 30 from the web server 20. When the recommended item list request message is received, the post-processed recommendation item list may be transmitted to the web server 20 after the post-processing is performed on the requested recommendation item list. That is, the step of performing post-processing may be performed between steps S605 and S607.
서비스 장치(30)(특히, 피드백 처리부(225))는 사용자의 피드백을 수집하여 이를 추천에 반영할 수 있다(S311).The service device 30 (particularly, the feedback processor 225) may collect the user's feedback and reflect it in the recommendation (S311).
사용자의 피드백은 사용자의 클릭률에 따라 계산될 수 있으며, 클릭률을 계산하기 위하여 추천 뷰 로그 데이터와 사용자의 추천 클릭 로그 데이터를 수집할 수 있다.The feedback of the user may be calculated according to the click rate of the user, and the recommended view log data and the user's recommended click log data may be collected to calculate the click rate.
먼저, 클릭 로그 데이터를 수집하는 방법을 설명한다.First, how to collect click log data.
첫 번째 방법으로, 사용자의 추천 아이템 리스트에 포함된 추천 아이템을 클릭 시 서비스 장치(30)로 리다이렉트되어 사용자의 클릭 로그 데이터를 획득할 수 있으며, 이에 관하여 도 9를 참조하여 설명한다.As a first method, when a recommendation item included in the recommendation item list of the user is clicked, it is redirected to the service device 30 to obtain click log data of the user, which will be described with reference to FIG. 9.
도 9는 본 발명의 일 실시예에 따른 클릭 로그 데이터를 수집하는 방법을 예시하는 도면이다.9 is a diagram illustrating a method of collecting click log data according to an embodiment of the present invention.
도 9를 참조하면, 단말(10)이 웹 서버(20)의 웹 페이지 상에 표시되는 추천 아이템 리스트에 포함된 특정 추천 아이템을 선택 입력(예를 들어, 클릭 혹은 터치 입력 등)하면(S901), 단말(10)은 추천 아이템의 링크 URL을 통해 서비스 장치(30)에 접속을 요청한다(S903). 즉, 추천 아이템은 해당 추천 아이템을 표시하는 웹 페이지로 이동하기 위한 URL 정보 대신에 서비스 장치(30)로 이동하기 위한 URL 정보를 가질 수 있다.Referring to FIG. 9, when the terminal 10 selects and inputs a specific recommendation item included in the recommendation item list displayed on the web page of the web server 20 (for example, click or touch input) (S901). In operation S903, the terminal 10 requests access to the service device 30 through the link URL of the recommended item. That is, the recommendation item may have URL information for moving to the service device 30 instead of URL information for moving to a web page displaying the corresponding recommendation item.
예를 들어, 추천 아이템 리스트에 속하는 각 추천 아이템(들)은 "http://api.recopick.com/VERSION/banner/SERVICE_ID/pick?source=SOURCE_ITEM_ID&pick=TARGET_ITEM_ID&method=ALGORITHM"와 같은 포맷의 링크 URL을 가질 수 있다. 각 추천 아이템이 가지는 링크 URL에는 해당 추천 아이템이 속한 추천 아이템 리스트의 버전 정보, 서비스 식별자, 소스 아이템(추천 아이템이 표시되는 대상이 되는 아이템) 식별자, 타겟 아이템(사용자에 의하여 선택되어 클릭된 추천 아이템) 식별자, 선택된 추천 아이템을 계산한 알고리즘 정보 등이 포함될 수 있다.For example, each recommendation item (s) belonging to the list of recommended items may have a link URL in the format "http://api.recopick.com/VERSION/banner/SERVICE_ID/pick?source=SOURCE_ITEM_ID&pick=TARGET_ITEM_ID&method=ALGORITHM". Can have The link URL of each recommendation item includes the version information of the recommendation item list to which the recommendation item belongs, the service identifier, the source item (the item to which the recommendation item is displayed), the target item (the recommendation item selected and clicked by the user). ) Identifier, algorithm information for calculating the selected recommendation item, and the like.
일례로, 서비스 식별자(SERVICE_ID)가 6인 웹 서버(20)의 59번 아이템에서 132, 178, 200 아이템이 추천되었고, 이중에 사용자가 2번 알고리즘으로 추천된 132번 아이템 추천을 클릭했다면, 사용자 단말(10)은 "http://api.recopick.com/1/banner/6/pick?source=59&pick=132&method=2"와 같은 URL을 통해 서비스 장치(30)로 이동하게 된다.For example, if items 132, 178, and 200 are recommended in item 59 of the web server 20 having the service identifier SERVICE_ID 6, and the user clicks item recommendation 132 recommended by the algorithm 2, the user The terminal 10 moves to the service device 30 through a URL such as "http://api.recopick.com/1/banner/6/pick?source=59&pick=132&method=2".
서비스 장치(30)는 서비스 장치(30)에 접속을 시도하는 단말(10)에 대한 클릭 로그 데이터를 저장한다(S905). 앞서 설명한 바와 같이 추천 아이템 링크 URL에는 해당 추천 아이템이 속한 추천 아이템 리스트의 버전 정보, 서비스 식별자, 소스 아이템 식별자, 타겟 아이템 식별자, 선택된 추천 아이템을 계산한 알고리즘 정보 등이 포함될 수 있으므로, 서비스 장치(30)는 단말(10)이 접속을 시도하는 URL을 통해 어떠한 웹 서버(20)에서 어떠한 아이템에서 어떠한 추천 아이템이 사용자에 의하여 클릭되었는지 확인할 수 있으며, 해당 추천 아이템은 어떠한 추천 알고리즘에 의하여 계산되었는지 확인할 수 있다.The service device 30 stores click log data for the terminal 10 attempting to access the service device 30 (S905). As described above, the recommendation item link URL may include version information of the recommendation item list to which the corresponding recommendation item belongs, a service identifier, a source item identifier, a target item identifier, algorithm information for calculating the selected recommendation item, and the like. ) Can determine which recommendation item is clicked by the user from which item on which web server 20 through the URL that the terminal 10 attempts to access, and can confirm that the recommendation item is calculated by which recommendation algorithm. have.
서비스 장치(30)는 해당 단말(10)이 웹 서버(20)로 재접속할 수 있도록 리다이렉트 URL을 해당 단말(10)에 전송한다(S907). 예를 들어, 서비스 장치(30)는 단말(10)이 선택한 132번 아이템을 표시하는 웹 페이지로 접속할 수 있도록 "http://hellonature.net/goods/132?recopick=2"와 같은 URL을 단말(10)에 전송할 수 있다.The service device 30 transmits the redirect URL to the terminal 10 so that the terminal 10 can reconnect to the web server 20 (S907). For example, the service device 30 may terminal the URL such as "http://hellonature.net/goods/132?recopick=2" so that the terminal 10 may access a web page displaying item 132 selected by the terminal 10. 10 can be transmitted.
이를 수신한 단말(10)은 수신한 리다이렉트 URL을 통해 웹 서버(20)에 접속한다(S909).Upon receiving this, the terminal 10 accesses the web server 20 through the received redirect URL (S909).
도 9의 예시와 같은 방법을 이용함으로써 사용자가 추천 아이템을 클릭할 때마다 사용자의 클릭 정보가 서비스 장치(30)에 전송되므로, 서비스 장치(30)는 실시간으로 추천 아이템에 대한 사용자의 클릭 로그 데이터를 저장할 수 있다.Since the user's click information is transmitted to the service device 30 whenever the user clicks on the recommendation item by using the method as shown in the example of FIG. 9, the service device 30 stores the user's click log data on the recommendation item in real time. Can be stored.
두 번째 방법으로, 추천 아이템의 링크를 구성하는 변수에 미리 정해진 특정 파라미터를 추가하고, S301 단계에서 수집된 사용자 로그 데이터에서 사용자의 방문 URL 정보에 상술한 미리 정해진 특정 파라미터가 존재하면, 이를 추천에 의한 클릭으로 판단할 수 있다. 즉, 사용자 로그 데이터에서 방문 URL에 미리 정해진 파라미터가 포함되어 있는 데이터를 추출하여 클릭 로그 데이터로 저장할 수 있다. 예를 들어, 추천 아이템의 링크 변수에 recopick=METHOD를 추가하고, 사용자 로그 데이터에서 사용자의 방문 URL에 recopick이 존재한다면 이를 추천에 의한 클릭으로 판단할 수 있다. 그리고, 참조 주소(Referrer) 정보에서 아이템 식별자(ITEM_ID)를 확인한 후, 이를 이용하여 소스 아이템 식별자를 확인할 수 있다. 다만, 참조 주소 정보가 서비스 장치(30)의 URL을 가지는 경우에는, 이는 앞서 첫 번째 방법에서 이미 클릭 로그 데이터로 집계된 경우이므로 추천 클릭으로 판단하지 않을 수 있다.In a second method, a predetermined specific parameter is added to a variable constituting a link of the recommendation item, and if the predetermined specific parameter described above exists in the visit URL information of the user in the user log data collected in step S301, it is added to the recommendation. Can be judged by click. That is, the data including the predetermined parameter in the visited URL may be extracted from the user log data and stored as the click log data. For example, recopick = METHOD may be added to the link variable of the recommendation item, and if recopick exists in the user's visit URL in the user log data, this may be determined as a click by recommendation. After checking the item identifier (ITEM_ID) in the reference address (Referrer) information, the source item identifier may be checked using the item identifier (ITEM_ID). However, when the reference address information has the URL of the service device 30, it may not be determined as a recommended click because it is already collected as click log data in the first method.
앞서 설명한 서비스 장치(30)는 첫 번째 방법 및/또는 두 번째 방법을 이용하여 클릭 로그 데이터를 수집하고, 수집한 클릭 로그 데이터를 저장할 수 있다.The service device 30 described above may collect click log data using the first method and / or the second method, and store the collected click log data.
표 11은 클릭 로그 데이터의 포맷을 예시한다.Table 11 illustrates the format of the click log data.
표 11
로그타입(LOGTYPE) 버전(VERSION) 서비스 식별자 (SERVICE_ID) 클릭 아이템(CLICK ITEM) 소스 아이템(SOURCE ITEM) 알고리즘(METHOD) 시각(TIMESTAMP)
click 2 1 597 117 2 20XX-YY-ZZ aa:bb:cc
click 2 1 11556 11816 2 20XX-YY-ZZ aa:bb:cc
Table 11
Log Type Version (VERSION) Service identifier (SERVICE_ID) Click item (CLICK ITEM) SOURCE ITEM Algorithm (METHOD) TIMESTAMP
click 2 One 597 117 2 20XX-YY-ZZ aa: bb: cc
click 2 One 11556 11816 2 20XX-YY-ZZ aa: bb: cc
표 11을 참조하면, 클릭 로그 데이터는 로그 타입(클릭 혹은 뷰), 추천 아이템 리스트에 대한 버전 정보, 서비스 식별자, 클릭 아이템 정보, 소스 아이템 정보, 추천 알고리즘, 클릭 시각 정보 등을 포함할 수 있다.Referring to Table 11, the click log data may include a log type (click or view), version information on the recommendation item list, service identifier, click item information, source item information, recommendation algorithm, click time information, and the like.
다음으로, 뷰 로그 데이터를 수집하는 방법을 살펴보면, 서비스 장치(30)는 웹 서버(20)가 추천 아이템 리스트를 요청할 때마다 제공하는 추천 아이템 리스트를 통해 뷰 로그 데이터를 획득하여 저장할 수 있다.Next, referring to the method of collecting the view log data, the service device 30 may obtain and store the view log data through the recommendation item list provided whenever the web server 20 requests the recommendation item list.
표 12는 뷰 로그 데이터의 포맷을 예시한다.Table 12 illustrates the format of view log data.
표 12
로그타입(LOGTYPE) 버전(VERSION) 서비스 식별자 (SERVICE_ID) 클릭 아이템(CLICK ITEM) 소스 아이템(SOURCE ITEM) 추천 리스트(RECOMMENDED LIST)(ITEM_ID:METHOD, ITEM_ID:METHOD, ITEM_ID:METHOD) 알고리즘(METHOD) 시각(TIMESTAMP)
viewing 2 1 - 182 158:2,73:2,566:2,85:2,89:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 14 - 13830 13844:2,13841:2,13828:2,13843:2,13845:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 14 - 13670 13732:2,13534:2,13780:2,13698:2,13822:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 14 - 13670 13732:2,13534:2,13780:2,13698:2,13822:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 6 - 43 15:2,299:2,316:2,329:2,16:2,426:2,92:2,210:2,276:2,83:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 1 - 176 512:2,153:2,809:2,637:2,177:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 6 - 178 41:2,398:2,115:2,421:2,230:2,12:2,372:2,177:2,45:2,293:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 14 - 13795 13796:2,13785:2,13787:2 2 20XX-YY-ZZ aa:bb:cc
Table 12
Log Type Version (VERSION) Service identifier (SERVICE_ID) Click item (CLICK ITEM) SOURCE ITEM RECOMMENDED LIST (ITEM_ID: METHOD, ITEM_ID: METHOD, ITEM_ID: METHOD) Algorithm (METHOD) TIMESTAMP
viewing 2 One - 182 158: 2,73: 2,566: 2,85: 2,89: 2 2 20XX-YY-ZZ aa: bb: cc
viewing 2 14 - 13830 13844: 2,13841: 2,13828: 2,13843: 2,13845: 2 2 20XX-YY-ZZ aa: bb: cc
viewing 2 14 - 13670 13732: 2,13534: 2,13780: 2,13698: 2,13822: 2 2 20XX-YY-ZZ aa: bb: cc
viewing 2 14 - 13670 13732: 2,13534: 2,13780: 2,13698: 2,13822: 2 2 20XX-YY-ZZ aa: bb: cc
viewing 2 6 - 43 15: 2,299: 2,316: 2,329: 2,16: 2,426: 2,92: 2,210: 2,276: 2,83: 2 2 20XX-YY-ZZ aa: bb: cc
viewing 2 One - 176 512: 2,153: 2,809: 2,637: 2,177: 2 2 20XX-YY-ZZ aa: bb: cc
viewing 2 6 - 178 41: 2,398: 2,115: 2,421: 2,230: 2,12: 2,372: 2,177: 2,45: 2,293: 2 2 20XX-YY-ZZ aa: bb: cc
viewing 2 14 - 13795 13796: 2,13785: 2,13787: 2 2 20XX-YY-ZZ aa: bb: cc
표 12를 참조하면, 클릭 로그 데이터는 로그 타입(클릭 혹은 뷰), 추천 아이템 리스트에 대한 버전 정보, 서비스 식별자, 클릭 아이템 정보, 소스 아이템 정보, 추천 리스트, 추천 알고리즘, 클릭 시각 정보 등을 포함할 수 있다.Referring to Table 12, the click log data may include a log type (click or view), version information for the recommendation item list, service identifier, click item information, source item information, recommendation list, recommendation algorithm, click time information, and the like. Can be.
이와 같이, 클릭 로그 데이터와 뷰 로그 데이터를 수집한 서비스 장치(30)는 클릭 로그 데이터와 뷰 로그 데이터를 이용하여 클릭률을 계산할 수 있다. 서비스 장치(30)는 날짜 별로 특정 아이템에 대하여 노출된 뷰 횟수를 모두 합산하고, 또한 사용자의 클릭이 일어난 횟수를 합산한 다음, 각 소스 아이템과 각 추천 아이템 간의 클릭률을 계산할 수 있다.As such, the service device 30 that collects the click log data and the view log data may calculate the click rate using the click log data and the view log data. The service device 30 may add up the total number of views exposed to a specific item by date, and also add up the number of times a user clicks, and then calculate a click rate between each source item and each recommendation item.
표 13은 클릭률을 예시한다.Table 13 illustrates the clickthrough rate.
표 13
날짜(DATE) 알고리즘(ALGORITHM) 소스 아이템 식별자(SOURCE_ITEM_ID) 추천 아이템 식별자(RECOMMENDED_ITEM_ID) 클릭 카운트(CLICK COUNT) 뷰 카운트(VIEW COUNT) 클릭 률(CLICK RATIO)
20XX-YY-ZZ 2 123 234 4 100 4%
20XX-YY-ZZ 2 123 345 11 100 11%
20XX-YY-ZZ 2 123 456 0 100 0%
20XX-YY-ZZ 2 123 789 7 100 7%
20XX-YY-ZZ 3 123 111 2 100 2%
20XX-YY-ZZ 3 123 222 3 100 3%
20XX-YY-ZZ 3 123 333 0 100 0%
20XX-YY-ZZ 3 123 444 5 100 5%
Table 13
DATE Algorithm (ALGORITHM) Source item identifier (SOURCE_ITEM_ID) Featured Item Identifier (RECOMMENDED_ITEM_ID) Click count (CLICK COUNT) VIEW COUNT Clickthrough rate (CLICK RATIO)
20XX-YY-ZZ 2 123 234 4 100 4%
20XX-YY-ZZ 2 123 345 11 100 11%
20XX-YY-ZZ 2 123 456 0 100 0%
20XX-YY-ZZ 2 123 789 7 100 7%
20XX-YY-ZZ 3 123 111 2 100 2%
20XX-YY-ZZ 3 123 222 3 100 3%
20XX-YY-ZZ 3 123 333 0 100 0%
20XX-YY-ZZ 3 123 444 5 100 5%
표 13을 참조하면, 123번 아이템에 대한 알고리즘 2의 20XX년 YY월 ZZ일 클릭률은 (4+11+0+7)/100 = 22 %이고, 알고리즘 3의 20XX년 YY월 ZZ일 클릭률은 (2+3+0+5)/100 = 10% 이다.Referring to Table 13, Algorithm 2's YYYY ZZ Day 20 20XX rate for item 123 is (4 + 11 + 0 + 7) / 100 = 22%, and Algorithm 3's YYYYYY ZZ Day 20 Clickthrough Rate ( 2 + 3 + 0 + 5) / 100 = 10%.
서비스 장치(30)는 각 소스 아이템과 각 추천 아이템 간의 클릭률을 계산한 후, 일정 기간 동안 계속하여 클릭률이 특정 임계값 이하(혹은 미만)인 경우 추천 금지된 아이템으로 지정할 수 있다. 즉, 아이템 A에 대한 추천 아이템 B가 7일 동안 1% 미만인 경우, 아이템 B는 아이템 A에 대한 추천 아이템 리스트에서 제거할 수 있다. 또한, 서비스 장치(30)는 각 소스 아이템과 각 추천 아이템 간의 클릭 카운트 횟수가 일정 기간 동안 특정 임계값 이하(혹은 미만)인 경우 추천 금지된 아이템으로 지정할 수도 있다. 이와 같이 추천 금지된 아이템을 추천 결과(혹은 추천 아이템 리스트)에서 제거할 때, 서비스 장치(30)는 기 생성된 추천 결과(혹은 추천 아이템 리스트)에서 삭제하고자 하는 아이템을 임의로 삭제하거나, 해당 아이템에 대한 추천 점수를 낮은 값으로 변경 혹은 낮은 값이 계산되도록 변수 값을 조정하여 추천 결과(혹은 추천 아이템 리스트)에서 추천 금지된 아이템을 제거할 수 있다.The service device 30 may calculate a click rate between each source item and each recommendation item, and then designate the item as a prohibited item if the click rate is below a certain threshold (or below) for a predetermined period of time. That is, if the recommended item B for item A is less than 1% for 7 days, item B may be removed from the recommended item list for item A. In addition, the service device 30 may designate a prohibition item when the number of click counts between each source item and each recommendation item is less than (or less than) a certain threshold for a predetermined period. When removing the recommended prohibited item from the recommendation result (or recommendation item list), the service device 30 arbitrarily deletes an item to be deleted from the previously generated recommendation result (or recommendation item list), or The recommendation score can be changed to a lower value or a variable value can be adjusted so that a lower value is calculated to remove the prohibited item from the recommendation result (or recommendation item list).
이러한 피드백 처리 과정은 서비스 장치(30)에서 자동으로 수행될 수 있다. 또한, 서비스 장치(30)는 웹 서버(20)에서 서비스하는 아이템 별로 해당 아이템의 클릭률 정보와 해당 아이템과 추천 아이템 간의 클릭률 정보 혹은 클릭 횟수 정보를 웹 서버(20)에 제공하고 웹 서버(20)로부터의 요청에 의하여 서비스 장치(30)에서 피드백 처리 과정이 수행될 수도 있다.This feedback process may be automatically performed in the service device 30. In addition, the service device 30 provides the web server 20 with the click rate information of the corresponding item and the click rate information or the number of clicks between the recommended item and the recommended item for each item serviced by the web server 20, and the web server 20. The feedback processing may be performed in the service device 30 according to a request from the service device 30.
도 10은 본 발명의 일 실시예에 따른 각 추천 아이템 별 클릭률을 예시하는 도면이다.10 is a diagram illustrating a click rate for each recommended item according to an embodiment of the present invention.
도 10과 같이, 서비스 장치(30)는 웹 서버(20)에 소스 아이템(101)의 명칭, 일정 기간 동안의 평균 클릭률 정보 등 소스 아이템(101)에 관한 정보와 소스 아이템(101)에 대한 일정 기간 동안 전체 추천 클릭률(102)을 제공할 수 있다. 또한, 소스 아이템(101)에 대한 추천 아이템 리스트(103)와 각 추천 아이템 별로 명칭, 알고리즘, 추천 점수, 소스 아이템 간의 클릭률, 동작 입력 버튼 등을 제공할 수 있다. 이와 같은 정보를 통해 웹 서버(20)의 관리자는 소스 아이템(101)의 클릭률 추이와 함께 각 추천 아이템 별로 해당 소스 아이템(101) 간의 클릭률 추이를 날짜 별로 확인할 수 있다. 도 10의 경우, 제일 하단에 표시되는 추천 아이템(104)의 클릭률이 일정 기간 동안 약 0%에 머물고 있음을 예시하고 있다. 이처럼, 클릭률이 저조한 추천 아이템에 대하여 웹 서버(20) 관리자가 추천 금지 버튼을 선택하면, 웹 서버(20)는 이를 서비스 장치(30)로 전송함으로써 서비스 장치(30)는 해당 추천 아이템을 소스 아이템(101)에 대하여 추천을 금지할 수 있다. 또한, 이와 별개로 웹 서버(20) 관리자가 우선 노출 버튼을 선택하면, 웹 서버(20)는 이를 서비스 장치(30)로 전송함으로써, 서비스 장치(30)는 선택된 추천 아이템의 추천 점수(스코어)와 무관하게 해당 추천 아이템을 가장 우선적(예를 들어, 제일 상단 혹은 제일 좌측에 위치)으로 표시하도록 추천 아이템 리스트를 생성할 수 있다.As illustrated in FIG. 10, the service device 30 may provide the web server 20 with information about the source item 101 and schedule information about the source item 101 such as the name of the source item 101 and average click-through rate information for a predetermined period of time. The overall referral clickthrough rate 102 may be provided for a period of time. In addition, the recommendation item list 103 for the source item 101, a name, an algorithm, a recommendation score, a click rate between the source items, an operation input button, and the like may be provided for each recommendation item. Through such information, the administrator of the web server 20 may check the clickthrough rate of the source item 101 along with the clickthrough rate of the source item 101 for each recommendation item by date. In the case of FIG. 10, the click rate of the recommendation item 104 displayed at the bottom stays at about 0% for a certain period. As such, when the web server 20 administrator selects the prohibition of recommendation button for the recommendation item having a low clickthrough rate, the web server 20 transmits it to the service device 30 so that the service device 30 transmits the recommendation item to the source item. Recommendation 101 may be prohibited. In addition, when the web server 20 administrator selects the first exposure button separately, the web server 20 transmits it to the service device 30, so that the service device 30 recommends a score (score) of the selected recommendation item. Regardless of this, the recommendation item list may be generated to display the corresponding recommendation item at the highest priority (for example, at the top or the leftmost side).
또한, 서비스 장치(30)는 클릭률 정보 내지 클릭 횟수 정보를 고려하여 자동으로 웹 서버(20) 별로 가장 적합한 알고리즘을 선택할 수 있다.In addition, the service device 30 may automatically select the most suitable algorithm for each web server 20 in consideration of click rate information or click count information.
먼저, 서비스 장치(30)는 웹 서버(20)에서 제공하는 서비스마다 최고의 효율이 좋은(즉 클릭률이 가장 높거나 클릭 횟수가 가장 높은) 알고리즘을 적용시키기 위해, 사용자 로그 데이터를 특정 조건 혹은 임의로 복수의 그룹으로 구분하고, 각 그룹별로 서로 다른 알고리즘으로 계산된 추천 아이템 리스트를 제공한다. 예를 들어, 서비스 장치(30)는 사용자 로그 데이터를 임의로 A, B그룹으로 나눈 다음(예를 들어, 사용자 식별자가 홀수인 경우 A 그룹, 짝수인 경우 B 그룹), A 그룹에는 알고리즘 1로 추천을 계산하고, B 그룹에는 알고리즘 2로 추천을 계산하고 추천 아이템 리스트를 웹 서버(20) 제공할 수 있다. 또한, 서비스 장치(20)는 사용자 로그 데이터에서 웹 브라우저의 사용자 에이전트 정보를 이용하여 이동 단말기를 통해 웹 서버(20)에 접속한 그룹과 고정 단말기를 통해 웹 서버(20)에 접속한 그룹으로 사용자 로그 데이터를 구분하여 각각 상이한 알고리즘을 통해 추천을 계산하여 추천 아이템 리스트를 웹 서버(20) 제공할 수 있다.First, in order to apply the algorithm having the highest efficiency (that is, the highest click rate or the highest number of clicks) for each service provided by the web server 20, the service device 30 generates a plurality of user log data in a certain condition or arbitrarily. It is divided into groups and provides a list of recommended items calculated by different algorithms for each group. For example, the service device 30 arbitrarily divides the user log data into groups A and B (for example, group A when the odd user identifier is odd, group B when the even number is odd), and recommends algorithm 1 to the group A. , The group B may calculate a recommendation using algorithm 2, and provide the web server 20 with a list of recommended items. In addition, the service device 20 is a user connected to the web server 20 through the mobile terminal and the group connected to the web server 20 through the fixed terminal using the user agent information of the web browser in the user log data. The web server 20 may provide a list of recommended items by dividing log data and calculating recommendations through different algorithms.
그리고, 서비스 장치(30)는 각 그룹 별로 클릭률을 별도로 계산하여 클릭률이 가장 높은 알고리즘 혹은 클릭 횟수가 가장 높은 알고리즘을 해당 서비스의 알고리즘으로 선택하여 추천을 계산할 수 있다. 이러한 피드백 처리 과정 또한 서비스 장치(30)에서 자동으로 수행될 수 있으며, 또한 서비스 장치(30)는 웹 서버(20)에 사용자 그룹 별(즉, 알고리즘 별) 클릭률 정보 혹은 클릭 횟수 정보를 웹 서버(20)에 제공하고 웹 서버(20)로부터의 요청에 의하여 서비스 장치(30)에서 피드백 처리 과정이 수행될 수도 있다.In addition, the service device 30 may calculate the recommendation by selecting the algorithm having the highest click rate or the algorithm having the highest number of clicks as the algorithm of the corresponding service by separately calculating the click rate for each group. The feedback process may also be automatically performed by the service device 30, and the service device 30 may provide the web server 20 with click rate information or click count information for each user group (that is, for each algorithm). 20, and a feedback process may be performed in the service device 30 by a request from the web server 20.
도 11은 본 발명의 일 실시예에 따른 알고리즘 별 추천률을 예시하는 도면이다.11 is a diagram illustrating a recommendation rate for each algorithm according to an embodiment of the present invention.
도 11과 같이 사용자 그룹 A에 적용한 알고리즘 1에 대한 추천률이 일정 기간 동안 계속하여 알고리즘 2에 대한 추천률보다 높으므로 서비스 장치(30)는 해당 서비스를 제공하는 웹 서버(20)에 대한 추천 알고리즘으로 선택할 수 있다.As shown in FIG. 11, since the recommendation rate for Algorithm 1 applied to user group A is higher than the recommendation rate for Algorithm 2 for a predetermined period of time, the service device 30 recommends an algorithm for the web server 20 that provides the service. Can be selected.
본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.Embodiments according to the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof. In the case of a hardware implementation, an embodiment of the present invention may include one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), FPGAs ( field programmable gate arrays), processors, controllers, microcontrollers, microprocessors, and the like.
또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM, Random Access Memory), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, in the case of the implementation by firmware or software, an embodiment of the present invention is implemented in the form of a module, a procedure, a function, etc. for performing the above-described functions or operations, so that the recording medium can be read by various computer means. Can be recorded. Here, the recording medium may include a program command, a data file, a data structure, etc. alone or in combination. Program instructions recorded on the recording medium may be those specially designed and constructed for the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. For example, the recording medium may be magnetic media such as hard disks, floppy disks and magnetic tapes, optical disks such as Compact Disk Read Only Memory (CD-ROM), digital video disks (DVD), Magnetic-Optical Media, such as floppy disks, and hardware devices specially configured to store and execute program instructions, such as ROM, random access memory (RAM), flash memory, and the like. do. Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter as well as machine code such as produced by a compiler. Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으나, 여기에 개시된 실시예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.As described above, although the present specification and drawings disclose preferred embodiments of the present invention, in addition to the embodiments disclosed herein, other modifications based on the technical idea of the present invention may be implemented in the technical field to which the present invention belongs. It is self-evident to those of ordinary knowledge. In addition, although specific terms are used in the specification and the drawings, they are only used in a general sense to easily explain the technical contents of the present invention and to help the understanding of the present invention, and are not intended to limit the scope of the present invention. Accordingly, the above detailed description should not be construed as limiting in all aspects and should be considered as illustrative. The scope of the invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the invention are included in the scope of the invention.
아울러, 본 발명에 따른 장치나 단말은 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다. 나아가 본 발명에 따른 장치는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현될 수 있으며, 혹은 단일의 컴퓨터 장치에서 구현될 수도 있다.In addition, the device or the terminal according to the present invention may be driven by a command that causes one or more processors to perform the functions and processes described above. For example, such instructions may include interpreted instructions, such as script instructions such as JavaScript or ECMAScript instructions, or executable instructions or other instructions stored on a computer readable medium. Furthermore, the device according to the present invention may be implemented in a distributed manner over a network, such as a server farm, or may be implemented in a single computer device.
또한, 본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.Furthermore, a computer program (also known as a program, software, software application, script or code) mounted on an apparatus according to the invention and executing a method according to the invention comprises a compiled or interpreted language or a priori or procedural language. It can be written in any form of programming language, and can be deployed in any form, including stand-alone programs or modules, components, subroutines, or other units suitable for use in a computer environment. Computer programs do not necessarily correspond to files in the file system. A program may be in a single file provided to the requested program, in multiple interactive files (eg, a file that stores one or more modules, subprograms, or parts of code), or part of a file that holds other programs or data. (Eg, one or more scripts stored in a markup language document). The computer program may be deployed to run on a single computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.
아울러, 본 발명에 따른 실시예를 설명하는데 있어서, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.In addition, in describing the embodiments according to the present invention, although the operations are described in the drawings in a specific order, it is necessary to perform such operations in the specific order or the sequential order shown in order to obtain a desirable result, or all the illustrated operations. Should not be understood to be performed. In certain cases, multitasking and parallel processing may be advantageous. Moreover, the separation of the various system components of the above-described embodiments should not be understood as requiring such separation in all embodiments, and the described program components and systems will generally be integrated together into a single software product or packaged into multiple software products. It should be understood that it can.
본 발명은 웹 사이트에서 서비스하는 아이템과 관련된 다른 아이템을 추천한다. 이에 따라, 각종 컨텐츠, 상품 내지 서비스를 제공하는 웹 사이트에 별도의 추가 개발을 하지 않아도 자체 서비스에 바로 적용이 가능하고, 사용자로부터 발생되는 클릭/뷰 로그 데이터를 기반으로 피드백을 추천 결과에 반영하여 제공함으로써 보다 적합한 아이템을 추천할 수 있다. 즉, 본 발명의 추천 결과를 제공하는 방안은 다양한 유/무선 통신 시스템에 적용하는 것이 가능하다. 이는 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.The present invention recommends other items related to items served by a web site. Accordingly, it can be applied directly to its own service without additional development on the web site that provides various contents, products or services, and feedback is reflected in the recommendation results based on the click / view log data generated from the user. By providing more suitable items can be recommended. That is, the method of providing the recommendation result of the present invention can be applied to various wired / wireless communication systems. This has industrial applicability because it is not only sufficient marketable or business possibility, but also practically evident.

Claims (24)

  1. 데이터 송수신을 위한 통신부;Communication unit for transmitting and receiving data;
    사용자 로그 데이터, 추천 결과를 저장하는 저장부; 및A storage unit for storing user log data and recommendation results; And
    웹 사이트에 삽입된 스크립트(script)를 통해 상기 웹 사이트에 접속한 단말로부터 상기 웹 사이트와 관련된 상기 사용자 로그 데이터를 수집하고, 상기 사용자 로그 데이터를 기반으로 추천 알고리즘을 이용하여 상기 웹 사이트에서 서비스하는 각 소스 아이템과 관련된 하나 이상의 추천 아이템에 대한 추천 결과를 산출하고, 상기 웹 사이트의 웹 서버로부터 수신한 추천 아이템 리스트 요청에 대한 응답으로 상기 추천 결과에서 상기 요청된 소스 아이템과 관련된 추천 아이템 리스트를 추출하여 상기 웹 서버에 전송하는 제어부;Collecting the user log data related to the web site from the terminal accessing the web site through a script embedded in the web site, and services on the web site using a recommendation algorithm based on the user log data Calculating a recommendation result for one or more recommendation items related to each source item, and extracting a recommendation item list related to the requested source item from the recommendation result in response to a recommendation item list request received from the web server of the website; A control unit for transmitting to the web server;
    를 포함하는 것을 특징으로 하는 서비스 장치.Service device comprising a.
  2. 제1항에 있어서, 상기 제어부는,The method of claim 1, wherein the control unit,
    상기 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 소스 아이템과 관련된 추천 아이템에 대한 클릭률을 계산하는 것을 특징으로 하는 서비스 장치.And a click rate for a recommendation item associated with each source item through click log data and view log data for the recommendation item.
  3. 제2항에 있어서, 상기 제어부는,The method of claim 2, wherein the control unit,
    상기 클릭률이 일정 기간 동안 계속하여 임계값 미만인 추천 아이템을 상기 추천 결과에서 제외하는 것을 특징으로 하는 서비스 장치.And the recommendation item of which the click rate is continuously below a threshold for a predetermined period is excluded from the recommendation result.
  4. 제1항에 있어서, 상기 제어부는,The method of claim 1, wherein the control unit,
    상기 사용자 로그 데이터를 미리 정해진 조건 혹은 임의로 복수의 그룹으로 구분하고, 각 그룹 별로 서로 다른 추천 알고리즘을 이용하여 상기 추천 결과를 산출하는 것을 특징으로 하는 서비스 장치.And dividing the user log data into a predetermined condition or arbitrarily into a plurality of groups, and calculating the recommendation result using a different recommendation algorithm for each group.
  5. 제4항에 있어서, 상기 제어부는,The method of claim 4, wherein the control unit,
    상기 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 상기 각 그룹 별로 클릭률을 계산하고, 상기 클릭률이 가장 높은 그룹에 이용된 추천 알고리즘으로 상기 추천 결과를 산출하는 것을 특징으로 하는 서비스 장치.And a click rate for each group through click log data and view log data for the recommended item, and calculates the recommendation result using a recommendation algorithm used for the group having the highest click rate.
  6. 제1항에 있어서, 상기 제어부는,The method of claim 1, wherein the control unit,
    상기 서비스 장치로 연결되는 상기 추천 아이템의 링크를 통해 상기 단말이 접속되면, 상기 단말의 접속 URL을 통해 상기 추천 아이템에 대한 클릭 로그 데이터를 획득하는 것을 특징으로 하는 서비스 장치.And when the terminal is connected through a link of the recommendation item connected to the service apparatus, click log data for the recommendation item through the access URL of the terminal.
  7. 제1항에 있어서, 상기 제어부는,The method of claim 1, wherein the control unit,
    상기 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)에서 미리 정해진 파라미터 값이 포함되어 있는 사용자 데이터를 추출하여 상기 추천 아이템에 대한 클릭 로그 데이터로 획득하는 것을 특징으로 하는 서비스 장치.And extracting user data including a predetermined parameter value from a visit URL (Uniform Resource Locator) included in the user log data, and obtaining the extracted user data as click log data for the recommended item.
  8. 제1항에 있어서, 상기 제어부는,The method of claim 1, wherein the control unit,
    상기 웹 서버의 상기 추천 아이템 리스트 요청이 있으면, 상기 추천 아이템 리스트를 통해 상기 추천 아이템에 대한 뷰 로그 데이터를 획득하는 것을 특징으로 하는 서비스 장치.And when the recommendation item list request is made from the web server, view log data for the recommendation item through the recommendation item list.
  9. 제1항에 있어서, 상기 제어부는,The method of claim 1, wherein the control unit,
    상기 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)로부터 상기 방문 URL 상에 표시되는 아이템 정보 및 상기 방문 URL에서 상기 단말의 동작과 관련된 동작 정보를 추출하는 것을 특징으로 하는 서비스 장치.And extracting item information displayed on the visit URL and operation information related to the operation of the terminal from the visit URL from the visit URL included in the user log data.
  10. 제1항에 있어서, 상기 제어부는,The method of claim 1, wherein the control unit,
    상기 각 소스 아이템 별로 상기 추천 결과를 구분하여 저장하되, 상기 웹 사이트를 구분하기 위한 서비스 식별자, 상기 소스 아이템에 대한 아이템 식별자 및 상기 소스 아이템과 관련된 추천 아이템에 대한 추천 아이템 식별자를 합한 문자열에 해쉬(hash) 함수를 적용하여 계산한 값을 상기 추천 결과와 함께 저장하는 것을 특징으로 하는 서비스 장치.The recommendation result is classified and stored for each source item, and a hash is added to a string including a service identifier for identifying the web site, an item identifier for the source item, and a recommendation item identifier for the recommendation item associated with the source item. and a value calculated by applying a hash) function together with the recommendation result.
  11. 제1항에 있어서, 상기 제어부는,The method of claim 1, wherein the control unit,
    상기 요청된 소스 아이템과 관련된 추천 아이템 리스트를 JSON(JavaScript Object Notation) 포맷 또는 아이프레임(iframe) 포맷으로 전송하는 것을 특징으로 하는 서비스 장치.And a list of recommended items related to the requested source item in a JavaScript Object Notation (JSON) format or an iframe format.
  12. 제1항에 있어서, The method of claim 1,
    상기 사용자 로그 데이터는 상기 웹 사이트의 도메인, 상기 단말의 방문 URL(Uniform Resource Locator), 사용자 식별자 및 방문 시각 정보를 포함하는 것을 특징으로 하는 서비스 장치.The user log data includes a domain of the web site, a visit URL (Uniform Resource Locator) of the terminal, a user identifier, and visit time information.
  13. 제12항에 있어서, The method of claim 12,
    상기 사용자 식별자는 상기 단말의 웹 브라우저 쿠키에 의하여 생성되며, 임의의 숫자와 상기 생성 시각을 조합하여 생성되는 것을 특징으로 하는 서비스 장치.The user identifier is generated by a web browser cookie of the terminal, characterized in that generated by combining a random number and the generation time.
  14. 서비스 장치가 웹 사이트에 삽입된 스크립트(script)를 통해 상기 웹 사이트에 접속한 단말로부터 상기 웹 사이트와 관련된 상기 사용자 로그 데이터를 수집하는 단계;Collecting, by a service device, the user log data related to the web site from a terminal accessing the web site through a script embedded in a web site;
    상기 서비스 장치가 상기 사용자 로그 데이터를 기반으로 추천 알고리즘을 이용하여 상기 웹 사이트에서 서비스하는 각 소스 아이템과 관련된 하나 이상의 추천 아이템에 대한 추천 결과를 산출하는 단계; 및Calculating, by the service device, a recommendation result for at least one recommendation item associated with each source item served by the web site using a recommendation algorithm based on the user log data; And
    상기 서비스 장치가 상기 웹 사이트의 웹 서버로부터 수신한 추천 아이템 리스트 요청에 대한 응답으로 상기 추천 결과에서 상기 요청된 소스 아이템과 관련된 추천 아이템 리스트를 추출하여 상기 웹 서버에 전송하는 단계;Extracting, by the service apparatus, a recommendation item list related to the requested source item from the recommendation result in response to the recommendation item list request received from the web server of the web site, and transmitting it to the web server;
    를 포함하는 것을 특징으로 하는 추천 아이템 제공 방법.Recommended item providing method comprising a.
  15. 제14항에 있어서, The method of claim 14,
    상기 서비스 장치가 상기 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 소스 아이템과 관련된 추천 아이템에 대한 클릭률을 계산하는 단계;Calculating, by the service device, a click rate for a recommendation item associated with each source item through click log data and view log data for the recommendation item;
    를 더 포함하는 것을 특징으로 하는 추천 아이템 제공 방법.Recommended item providing method characterized in that it further comprises.
  16. 제15항에 있어서, The method of claim 15,
    상기 서비스 장치가 상기 클릭률이 일정 기간 동안 계속하여 임계값 미만인 추천 아이템을 상기 추천 결과에서 제외하는 단계;The service device excluding a recommendation item from the recommendation result that the click rate continues for a period of time below a threshold value;
    를 더 포함하는 것을 특징으로 하는 추천 아이템 제공 방법.Recommended item providing method characterized in that it further comprises.
  17. 제14항에 있어서, 상기 추천 결과를 산출하는 단계는,The method of claim 14, wherein the calculating of the recommendation result comprises:
    상기 서비스 장치가 상기 사용자 로그 데이터를 미리 정해진 조건 혹은 임의로 복수의 그룹으로 구분하고, 각 그룹 별로 서로 다른 추천 알고리즘을 이용하여 상기 추천 결과를 산출하는 것을 특징으로 하는 추천 아이템 제공 방법.And the service device divides the user log data into a predetermined condition or arbitrarily into a plurality of groups, and calculates the recommendation result by using a different recommendation algorithm for each group.
  18. 제17항에 있어서, 상기 추천 결과를 산출하는 단계는,The method of claim 17, wherein the calculating of the recommendation result comprises:
    상기 서비스 장치가 상기 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 상기 각 그룹 별로 클릭률을 계산하고, 상기 클릭률이 가장 높은 그룹에 이용된 추천 알고리즘으로 상기 추천 결과를 산출하는 것을 특징으로 하는 추천 아이템 제공 방법.The service device calculates a click rate for each group through the click log data and the view log data of the recommended item, and calculates the recommendation result using a recommendation algorithm used for the group having the highest click rate. How to deliver the item.
  19. 제14항에 있어서, The method of claim 14,
    상기 서비스 장치가 상기 서비스 장치로 연결되는 상기 추천 아이템의 링크를 통해 상기 단말이 접속되면, 상기 단말의 접속 URL을 통해 상기 추천 아이템에 대한 클릭 로그 데이터를 획득하는 단계;Acquiring click log data for the recommended item through the access URL of the terminal when the terminal is connected through the link of the recommended item to which the service device is connected to the service device;
    를 더 포함하는 것을 특징으로 하는 추천 아이템 제공 방법.Recommended item providing method characterized in that it further comprises.
  20. 제14항에 있어서, The method of claim 14,
    상기 서비스 장치가 상기 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)에서 미리 정해진 파라미터 값이 포함되어 있는 사용자 데이터를 추출하여 상기 추천 아이템에 대한 클릭 로그 데이터로 획득하는 단계;Extracting, by the service device, user data including a predetermined parameter value from a visit URL (Uniform Resource Locator) included in the user log data, and obtaining the user data as click log data for the recommended item;
    를 더 포함하는 것을 특징으로 하는 추천 아이템 제공 방법.Recommended item providing method characterized in that it further comprises.
  21. 제14항에 있어서, The method of claim 14,
    상기 서비스 장치가 상기 웹 서버의 상기 추천 아이템 리스트 요청이 있으면, 상기 추천 아이템 리스트를 통해 상기 추천 아이템에 대한 뷰 로그 데이터를 획득하는 단계;Obtaining, by the service apparatus, view log data for the recommendation item through the recommendation item list when the recommendation item list request is made by the web server;
    를 더 포함하는 것을 특징으로 하는 추천 아이템 제공 방법.Recommended item providing method characterized in that it further comprises.
  22. 제14항에 있어서, The method of claim 14,
    상기 사용자 장치가 상기 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)로부터 상기 방문 URL 상에 표시되는 아이템 정보 및 상기 방문 URL에서 상기 단말의 동작과 관련된 동작 정보를 추출하는 단계;Extracting, by the user device, item information displayed on the visit URL from the visit URL (Uniform Resource Locator) included in the user log data and operation information related to the operation of the terminal from the visit URL;
    를 더 포함하는 것을 특징으로 하는 추천 아이템 제공 방법.Recommended item providing method characterized in that it further comprises.
  23. 제14항에 있어서, The method of claim 14,
    상기 서비스 장치가 상기 각 소스 아이템 별로 상기 추천 결과를 구분하여 저장하되, 상기 웹 사이트를 구분하기 위한 서비스 식별자, 상기 소스 아이템에 대한 아이템 식별자 및 상기 소스 아이템과 관련된 추천 아이템에 대한 추천 아이템 식별자를 합한 문자열에 해쉬(hash) 함수를 적용하여 계산한 값을 상기 추천 결과와 함께 저장하는 단계;The service apparatus stores the recommended result for each source item, and stores the classified result, wherein a service identifier for identifying the web site, an item identifier for the source item, and a recommended item identifier for the recommended item associated with the source item are added together. Storing a value calculated by applying a hash function to a string together with the recommendation result;
    를 더 포함하는 것을 특징으로 하는 추천 아이템 제공 방법.Recommended item providing method characterized in that it further comprises.
  24. 제14항 내지 제23항 중 어느 한 항에 기재된 추천 아이템 제공 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium storing a program for executing the method for providing a recommended item according to any one of claims 14 to 23.
PCT/KR2014/002552 2013-05-03 2014-03-26 Method for providing recommendation item, and recording medium for recording program and apparatus for same WO2014178536A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130049968A KR101678659B1 (en) 2013-05-03 2013-05-03 Method for providing recommended item, storage medium recording program and device therefor
KR10-2013-0049968 2013-05-03

Publications (1)

Publication Number Publication Date
WO2014178536A1 true WO2014178536A1 (en) 2014-11-06

Family

ID=51843622

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/002552 WO2014178536A1 (en) 2013-05-03 2014-03-26 Method for providing recommendation item, and recording medium for recording program and apparatus for same

Country Status (2)

Country Link
KR (1) KR101678659B1 (en)
WO (1) WO2014178536A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019226935A1 (en) * 2018-05-25 2019-11-28 Target Brands, Inc. Real-time recommendation monitoring dashboard
US11132733B2 (en) 2018-05-25 2021-09-28 Target Brands, Inc. Personalized recommendations for unidentified users based on web browsing context

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018128254A1 (en) * 2017-01-04 2018-07-12 주식회사 다이퀘스트 Method and device for recommending usr group for new user

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050076093A1 (en) * 2003-06-04 2005-04-07 Stefan Michelitsch Content recommendation device with user feedback
KR101051804B1 (en) * 2010-12-16 2011-07-25 전자부품연구원 System of targeting data service for web-based media contents
KR20120052024A (en) * 2010-11-15 2012-05-23 주식회사 케이티 System for recommending iptv contents based on user feedback and method therefor
KR20120075515A (en) * 2010-11-19 2012-07-09 주식회사 케이티 Personalized content recommendation system and method
US20120191844A1 (en) * 2010-12-18 2012-07-26 Boyns Mark R Methods and systems for managing device specific content

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050076093A1 (en) * 2003-06-04 2005-04-07 Stefan Michelitsch Content recommendation device with user feedback
KR20120052024A (en) * 2010-11-15 2012-05-23 주식회사 케이티 System for recommending iptv contents based on user feedback and method therefor
KR20120075515A (en) * 2010-11-19 2012-07-09 주식회사 케이티 Personalized content recommendation system and method
KR101051804B1 (en) * 2010-12-16 2011-07-25 전자부품연구원 System of targeting data service for web-based media contents
US20120191844A1 (en) * 2010-12-18 2012-07-26 Boyns Mark R Methods and systems for managing device specific content

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019226935A1 (en) * 2018-05-25 2019-11-28 Target Brands, Inc. Real-time recommendation monitoring dashboard
US11074635B2 (en) 2018-05-25 2021-07-27 Target Brands, Inc. Real-time recommendation monitoring dashboard
US11132733B2 (en) 2018-05-25 2021-09-28 Target Brands, Inc. Personalized recommendations for unidentified users based on web browsing context
US11580586B2 (en) 2018-05-25 2023-02-14 Target Brands, Inc. Real-time recommendation monitoring dashboard

Also Published As

Publication number Publication date
KR20140131088A (en) 2014-11-12
KR101678659B1 (en) 2016-12-06

Similar Documents

Publication Publication Date Title
WO2020138928A1 (en) Information processing method, apparatus, electrical device and readable storage medium
US8862777B2 (en) Systems, apparatus, and methods for mobile device detection
KR102504075B1 (en) Matching and attributes of user device events
WO2017039337A1 (en) Method and device of tagging links included in a screenshot of webpage
RU2630380C2 (en) System and advertising push method (push) based on home gateway
WO2014126335A1 (en) Cloud computing-based data management method, and system and apparatus for same
KR101978301B1 (en) Apparatus for providing recommended item
WO2010119996A1 (en) Method and apparatus for providing moving image advertisements
WO2016013915A1 (en) Method, apparatus and computer program for displaying search information
WO2016171367A1 (en) Retargeted advertised product recommendation user device and service providing device, advertised product recommendation system comprising same, method for controlling same and recording medium having computer program recorded therein
WO2016035970A1 (en) Advertisement system using search advertisement
WO2020022819A1 (en) Communication via simulated user
WO2014178536A1 (en) Method for providing recommendation item, and recording medium for recording program and apparatus for same
WO2021177787A1 (en) Method and system for providing content via efficient database architecture for individualized time management
WO2016171361A1 (en) System and method for providing mo service-based benefit
US9398105B2 (en) Method for providing a third party service associated with a network-accessible site using a single scripting approach
JP5130340B2 (en) Information selection apparatus, method, and program
WO2017082551A1 (en) Digit string based real time information distribution system using smart terminal and information distribution method
WO2013051844A1 (en) Interactive multilingual advertisement system, and method for driving same
WO2021033834A1 (en) System for processing and providing customized information on basis of questionnaire data, and method therefor
WO2016117818A1 (en) Method and apparatus for providing efficient retargeting
WO2016129804A1 (en) Method for generating webpage on basis of consumer behavior patterns and method for utilizing webpage
WO2010030146A2 (en) Content-collaboration network system and content-collaboration method
WO2018043860A1 (en) Device for recommending rental item by means of similar-propensity group and method using same
WO2014119959A1 (en) System for page searching and method for providing same

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14792304

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14792304

Country of ref document: EP

Kind code of ref document: A1