KR101678659B1 - Method for providing recommended item, storage medium recording program and device therefor - Google Patents
Method for providing recommended item, storage medium recording program and device therefor Download PDFInfo
- Publication number
- KR101678659B1 KR101678659B1 KR1020130049968A KR20130049968A KR101678659B1 KR 101678659 B1 KR101678659 B1 KR 101678659B1 KR 1020130049968 A KR1020130049968 A KR 1020130049968A KR 20130049968 A KR20130049968 A KR 20130049968A KR 101678659 B1 KR101678659 B1 KR 101678659B1
- Authority
- KR
- South Korea
- Prior art keywords
- recommendation
- item
- log data
- user
- service
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Recommending goods or services
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
Abstract
본 발명에서는 추천 아이템 제공 방법, 이를 위한 프로그램을 기록한 기록 매체 및 장치가 개시된다. 구체적으로, 웹 사이트에 삽입된 스크립트(script)를 통해 웹 사이트에 접속한 단말로부터 웹 사이트와 관련된 사용자 로그 데이터를 수집하고, 사용자 로그 데이터를 기반으로 추천 알고리즘을 이용하여 웹 사이트에서 서비스하는 각 소스 아이템과 관련된 하나 이상의 추천 아이템에 대한 추천 결과를 산출하고, 웹 사이트의 웹 서버로부터 수신한 추천 아이템 리스트 요청에 대한 응답으로 추천 결과에서 요청된 소스 아이템과 관련된 추천 아이템 리스트를 추출하여 웹 서버에 전송한다.In the present invention, a recommendation item providing method, a recording medium on which a program is recorded, and an apparatus are provided. Specifically, user log data related to a web site is collected from a terminal connected to the web site through a script inserted in the web site, and each source A recommendation result for one or more recommended items related to the item is calculated, and a recommendation item list related to the requested source item is extracted from the recommendation result in response to the recommendation item list request received from the web server of the web site, do.
Description
본 발명은 추천 아이템 제공 방법에 관한 것으로서, 보다 상세하게 웹 사이트에서 서비스하는 아이템과 관련된 다른 아이템을 추천하기 위한 추천 아이템 제공 방법, 이를 위한 프로그램을 기록한 기록 매체 및 장치에 관한 것이다.The present invention relates to a recommendation item providing method, and more particularly, to a recommendation item providing method for recommending another item related to an item serviced by a web site, and a recording medium and an apparatus recording the program therefor.
인터넷 사용이 보편화되면서 사용자들은 인터넷을 통하여 뉴스, 지식 문서, 게임, 동영상 등 다양한 분야와 관련된 컨텐츠를 획득할 수 있게 되었다. 또한, 많은 서비스 업체들이 쇼핑몰을 개설하고 사용자들에게 다양하고 막대한 양의 상품, 서비스들을 제공하고 있다. As the use of the Internet becomes popular, users can acquire contents related to various fields such as news, knowledge documents, games, and videos through the Internet. In addition, many service providers have opened shopping malls and provide users with a wide variety of goods and services.
다만, 인터넷을 통해 획득할 수 있는 정보, 상품, 서비스 등은 기하급수적으로 증가하고 있기 때문에, 소비자가 자신이 진정으로 희망하는 정보나 상품을 찾으려면 많은 시간이 필요하다. 이에 따라 각종 인터넷 사이트에서는 방문한 사용자에게 관련 동영상 추천, 상품 추천 등 적절한 추천 정보를 제공하는 서비스를 제공하고 있으며, 추천 시스템을 솔루션으로 제공하는 업체들도 존재한다. 하지만, 이러한 추천 시스템을 도입하기 위해서는, 기본적으로 대용량 데이터를 처리할 수 있는 다수의 서버가 필요하며, 또한 추천 결과를 실제 서비스에 연동하기 위한 추가 개발 또한 필요하다.However, since the information, goods, and services that can be acquired through the Internet are increasing exponentially, it takes a lot of time for the consumer to find the information or goods he really desires. Accordingly, various Internet sites provide a service that provides appropriate recommendation information such as related video recommendation and product recommendation to a visiting user, and some companies provide a recommendation system as a solution. However, in order to introduce such a recommendation system, a large number of servers capable of processing large amounts of data are basically required, and further development is required in order to link recommendation results to actual services.
본 발명의 목적은 각종 컨텐츠, 상품 내지 서비스를 제공하는 웹 사이트에 별도의 추가 개발 없이 자체 서비스에 바로 적용이 가능한 추천 아이템 제공 방법, 이를 위한 프로그램을 기록한 기록 매체 및 장치를 제안한다. An object of the present invention is to provide a recommendation item providing method that can be directly applied to a self service without further development in a web site providing various contents, goods or services, and a recording medium and an apparatus recording the program therefor.
또한, 본 발명의 목적은 사용자로부터 발생되는 피드백을 추천 결과에 반영함으로써 보다 적합한 아이템을 추천할 수 있는 추천 아이템 제공 방법, 이를 위한 프로그램을 기록한 기록 매체 및 장치를 제안한다. It is another object of the present invention to provide a recommendation item providing method for recommending a more suitable item by reflecting feedback generated by a user to a recommendation result, and a recording medium and an apparatus recording the program therefor.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, unless further departing from the spirit and scope of the invention as defined by the appended claims. It will be possible.
본 발명의 일 양상은, 서비스 장치에 있어서, 데이터 송수신을 위한 통신부, 사용자 로그 데이터, 추천 결과를 저장하는 저장부 및 웹 사이트에 삽입된 스크립트(script)를 통해 웹 사이트에 접속한 단말로부터 웹 사이트와 관련된 사용자 로그 데이터를 수집하고, 사용자 로그 데이터를 기반으로 추천 알고리즘을 이용하여 웹 사이트에서 서비스하는 각 소스 아이템과 관련된 하나 이상의 추천 아이템에 대한 추천 결과를 산출하고, 웹 사이트의 웹 서버로부터 수신한 추천 아이템 리스트 요청에 대한 응답으로 추천 결과에서 요청된 소스 아이템과 관련된 추천 아이템 리스트를 추출하여 웹 서버에 전송하는 제어부를 포함한다. According to one aspect of the present invention, there is provided a service apparatus, comprising: a communication unit for data transmission and reception; a user log data; a storage unit for storing a recommendation result; and a web site And a recommendation algorithm for recommending at least one recommendation item related to each source item served by the website using the recommendation algorithm based on the user log data, 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 extracted recommendation item list to the web server.
바람직하게, 제어부는, 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 소스 아이템과 관련된 추천 아이템에 대한 클릭률을 계산할 수 있다. Preferably, the control unit can calculate a click rate for a recommendation item related to each source item through click log data and view log data for a recommendation item.
바람직하게, 제어부는, 클릭률이 일정 기간 동안 계속하여 임계값 미만인 추천 아이템을 추천 결과에서 제외할 수 있다. Preferably, the control unit may exclude a recommendation item in which the click rate is continuously lower than the threshold value for a predetermined period of time from the recommendation result.
바람직하게, 제어부는, 사용자 로그 데이터를 미리 정해진 조건 혹은 임의로 복수의 그룹으로 구분하고, 각 그룹 별로 서로 다른 추천 알고리즘을 이용하여 추천 결과를 산출할 수 있다. Preferably, the control unit may divide the user log data into predetermined conditions or arbitrarily into a plurality of groups, and calculate recommendation results using different recommendation algorithms for each group.
바람직하게, 제어부는, 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 그룹 별로 클릭율을 계산하고, 클릭율이 가장 높은 그룹에 이용된 추천 알고리즘으로 추천 결과를 산출할 수 있다. Preferably, the control unit may calculate the click rate for each group through the click log data and the view log data for the recommendation item, and calculate the recommendation result using the recommendation algorithm used for the group having the highest click rate.
바람직하게, 제어부는, 서비스 장치로 연결되는 추천 아이템의 링크를 통해 단말이 접속되면, 단말의 접속 URL을 통해 추천 아이템에 대한 클릭 로그 데이터를 획득할 수 있다. Preferably, when the terminal is connected through the link of the recommendation item connected to the service device, the control unit may acquire the click log data for the recommendation item through the connection URL of the terminal.
바람직하게, 제어부는, 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)에서 미리 정해진 파라미터 값이 포함되어 있는 사용자 데이터를 추출하여 추천 아이템에 대한 클릭 로그 데이터로 획득할 수 있다. Preferably, the controller extracts user data including a predetermined parameter value from a visit URL (Uniform Resource Locator) included in the user log data, and obtains the user data as click log data for the recommendation item.
바람직하게, 제어부는, 상기 웹 서버의 추천 아이템 리스트 요청이 있으면, 추천 아이템 리스트를 통해 추천 아이템에 대한 뷰 로그 데이터를 획득할 수 있다. Preferably, if there is a recommendation item list request from the web server, the control unit may acquire view log data for the recommendation item through the recommended item list.
바람직하게, 제어부는, 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)로부터 방문 URL 상에 표시되는 아이템 정보 및 방문 URL에서 단말의 동작과 관련된 동작 정보를 추출할 수 있다.Preferably, the control unit may extract 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 on the visit URL.
바람직하게, 제어부는, 각 소스 아이템 별로 추천 결과를 구분하여 저장하되, 웹 사이트를 구분하기 위한 서비스 식별자, 소스 아이템에 대한 아이템 식별자 및 소스 아이템과 관련된 추천 아이템에 대한 추천 아이템 식별자를 합한 문자열에 해쉬(hash) 함수를 적용하여 계산한 값을 추천 결과와 함께 저장할 수 있다. Preferably, the control unit distinguishes the recommendation result for each source item and stores the recommendation result in a string including a service identifier for identifying a web site, an item identifier for the source item, and a recommendation item identifier for a recommendation item related to the source item. the value calculated by applying the hash function can be stored together with the recommendation result.
바람직하게, 제어부는, 요청된 소스 아이템과 관련된 추천 아이템 리스트를 JSON(JavaScript Object Notation) 포맷 또는 아이프레임(iframe) 포맷으로 전송할 수 있다. Preferably, the control unit may transmit a recommendation item list 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 website, 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 any number and a generation time.
본 발명의 다른 양상은, 추천 아이템 제공 방법에 있어서, 서비스 장치가 웹 사이트에 삽입된 스크립트(script)를 통해 웹 사이트에 접속한 단말로부터 웹 사이트와 관련된 사용자 로그 데이터를 수집하는 단계, 서비스 장치가 사용자 로그 데이터를 기반으로 추천 알고리즘을 이용하여 웹 사이트에서 서비스하는 각 소스 아이템과 관련된 하나 이상의 추천 아이템에 대한 추천 결과를 산출하는 단계 및 서비스 장치가 웹 사이트의 웹 서버로부터 수신한 추천 아이템 리스트 요청에 대한 응답으로 추천 결과에서 요청된 소스 아이템과 관련된 추천 아이템 리스트를 추출하여 웹 서버에 전송하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of providing a recommendation item, the service device collecting user log data related to a web site from a terminal accessing the web site through a script inserted in the web site, Calculating recommendation results of at least one recommendation item related to each source item serviced by the website using a recommendation algorithm based on user log data, and requesting a recommended item list received from the web server of the web site And extracting a recommendation item list related to the requested source item from the recommendation result and transmitting the extracted recommendation item list to the web server.
바람직하게, 서비스 장치가 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 소스 아이템과 관련된 추천 아이템에 대한 클릭률을 계산하는 단계를 더 포함할 수 있다. Preferably, the service device may further include calculating click-through rates for the recommendation items associated with each source item through click-log data and view log data for the recommendation item.
바람직하게, 서비스 장치가 클릭률이 일정 기간 동안 계속하여 임계값 미만인 추천 아이템을 추천 결과에서 제외하는 단계를 더 포함할 수 있다. Preferably, the service device may further include the step of excluding the recommendation item in which the click rate is continuously lower than the threshold value for a predetermined period of time, from the recommendation result.
바람직하게, 추천 결과를 산출하는 단계는, 서비스 장치가 사용자 로그 데이터를 미리 정해진 조건 혹은 임의로 복수의 그룹으로 구분하고, 각 그룹 별로 서로 다른 추천 알고리즘을 이용하여 추천 결과를 산출할 수 있다. Preferably, the step of calculating the recommendation result may be such that the service apparatus divides the user log data into predetermined conditions or arbitrarily into a plurality of groups, and calculates recommendation results using different recommendation algorithms for each group.
바람직하게, 추천 결과를 산출하는 단계는, 서비스 장치가 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 그룹 별로 클릭율을 계산하고, 클릭율이 가장 높은 그룹에 이용된 추천 알고리즘으로 추천 결과를 산출할 수 있다.Preferably, the step of calculating the recommendation result may include calculating the click rate for each group through the click log data and the view log data for the recommendation item, and calculating the recommendation result with 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 a recommendation item connected to the service device, the service device may further include acquiring click log data for the recommendation item through the connection URL of the terminal.
바람직하게, 서비스 장치가 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)에서 미리 정해진 파라미터 값이 포함되어 있는 사용자 데이터를 추출하여 추천 아이템에 대한 클릭 로그 데이터로 획득하는 단계를 더 포함할 수 있다.Preferably, the service device may further include 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 a recommendation item .
바람직하게, 서비스 장치가 웹 서버의 추천 아이템 리스트 요청이 있으면, 추천 아이템 리스트를 통해 추천 아이템에 대한 뷰 로그 데이터를 획득하는 단계를 더 포함할 수 있다. Preferably, if the service apparatus requests the recommendation item list of the web server, the method may further include obtaining view log data for the recommendation item through the recommendation item list.
바람직하게, 사용자 장치가 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)로부터 방문 URL 상에 표시되는 아이템 정보 및 방문 URL에서 단말의 동작과 관련된 동작 정보를 추출하는 단계를 더 포함할 수 있다. Preferably, the user device may further include extracting item information displayed on the visit URL from a Uniform Resource Locator (URL) included in the user log data and operation information related to the operation of the terminal on the visit URL.
바람직하게, 서비스 장치가 각 소스 아이템 별로 추천 결과를 구분하여 저장하되, 웹 사이트를 구분하기 위한 서비스 식별자, 소스 아이템에 대한 아이템 식별자 및 소스 아이템과 관련된 추천 아이템에 대한 추천 아이템 식별자를 합한 문자열에 해쉬(hash) 함수를 적용하여 계산한 값을 추천 결과와 함께 저장하는 단계를 더 포함할 수 있다.Preferably, the service apparatus stores the recommendation result for each source item separately, and stores the service identifier for identifying the website, the item identifier for the source item, and the recommendation item identifier for the recommendation item related to the source item, and storing the value calculated by applying the hash function together with the recommendation result.
본 발명의 실시예에 따르면, 각종 컨텐츠, 상품 내지 서비스를 제공하는 웹 사이트에 별도의 추가 개발을 하지 않아도 자체 서비스에 바로 적용이 가능하다. According to the embodiment of the present invention, it is possible to directly apply to a self service without additionally developing a web site providing various contents, goods or services.
또한, 본 발명의 실시예에 따르면, 사용자로부터 발생되는 클릭/뷰 로그 데이터를 기반으로 피드백을 추천 결과에 반영하여 제공함으로써 보다 적합한 아이템을 추천할 수 있다.Also, according to the embodiment of the present invention, it is possible to recommend a more suitable item by providing the feedback on the recommendation result based on the click / view log data generated from the user.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtained in the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the following description .
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
도 1은 본 발명의 일 실시예에 따른 추천 아이템 제공 서비스 장치가 적용될 수 있는 시스템을 개략적으로 예시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 서비스 장치의 구성을 예시하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 추천 아이템 제공 방법을 예시하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 사용자 로그 데이터 수집 방법을 예시하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 사용자 로그 데이터 수집 방법을 예시하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 추천 아이템 리스트를 제공하는 방법을 예시하는 도면이다.
도 7은 본 발명의 일 실시예에 따른 아이프레임(iframe) 포맷으로 제공되는 추천 아이템 리스트를 예시하는 도면이다.
도 8은 본 발명의 일 실시예에 따른 아이프레임(iframe) 포맷으로 제공되는 추천 아이템 리스트가 웹 페이지 상에 표시되는 예시를 나타낸다.
도 9는 본 발명의 일 실시예에 따른 클릭 로그 데이터를 수집하는 방법을 예시하는 도면이다.
도 10은 본 발명의 일 실시예에 따른 각 추천 아이템 별 클릭률을 예시하는 도면이다.
도 11은 본 발명의 일 실시예에 따른 알고리즘 별 추천률을 예시하는 도면이다.The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the description, serve to explain the technical features of the invention.
1 is a view schematically illustrating a system to which a recommendation item providing service apparatus according to an embodiment of the present invention can be applied.
2 is a diagram illustrating a configuration of a service apparatus according to an embodiment of the present invention.
3 is a diagram illustrating a recommendation item providing method according to an embodiment of the present invention.
4 is a diagram illustrating a method of collecting user log data according to an embodiment of the present invention.
5 is a diagram illustrating a method of collecting user log data according to an embodiment of the present invention.
6 is a diagram illustrating a method of providing a list of recommended items in accordance with an embodiment of the present invention.
7 is a diagram illustrating a recommendation item list provided in an iFrame format according to an embodiment of the present invention.
8 shows an example in which a recommendation item list provided in an iframe format according to an embodiment of the present invention is displayed on a web page.
9 is a diagram illustrating a method of collecting click log data according to an embodiment of the present invention.
10 is a diagram illustrating a click rate for each recommendation item according to an embodiment of the present invention.
11 is a diagram illustrating a recommendation rate for each algorithm according to an embodiment of the present invention.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 이하의 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 당업자는 본 발명이 이러한 구체적 세부사항 없이도 실시될 수 있음을 안다. Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The following detailed description, together with the accompanying drawings, is intended to illustrate exemplary embodiments of the invention and is not intended to represent the only embodiments in which the invention may be practiced. The following detailed description includes specific details in order to provide a thorough understanding of the present invention. However, those skilled in the art will appreciate that the present invention may be practiced without these specific details.
몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시될 수 있다.In some instances, well-known structures and devices may be omitted or may be shown in block diagram form, centering on the core functionality of each structure and device, to avoid obscuring the concepts of the present invention.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.Throughout the specification, when an element is referred to as "comprising" or " including ", it is meant that the element does not exclude other elements, do. Also, the terms " part, "" module," and " module ", etc. in the specification mean a unit for processing at least one function or operation and may be implemented by hardware or software or a combination of hardware and software have. Also, the terms " a or ", "one "," the ", and the like are synonyms in the context of describing the invention (particularly in the context of the following claims) May be used in a sense including both singular and plural, unless the context clearly dictates otherwise.
이하의 설명에서 사용되는 특정 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.The specific terminology used in the following description is provided to aid understanding of the present invention, and the use of such specific terminology may be changed into other forms without departing from the technical idea of the present invention.
이하 본 발명에서 사용자에게 추천하는 결과물로서, 유무선 네트워크를 통해 유통될 수 있는 각종 재화나 서비스, 디지털 방식으로 생성된 문자, 음향, 이미지, 동영상 등과 같은 컨텐츠, 컴퓨터 프로그램이나 어플리케이션 등과 같은 소프트웨어를 모두 포함할 수 있으며, 이하 설명의 편의를 위하여 '아이템(item)'으로 통칭하여 설명한다. Hereinafter, as a result recommended to the user in the present invention, various kinds of goods or services that can be distributed through a wired / wireless network, contents such as characters, sounds, images, moving pictures and the like, And will be collectively referred to as an " item " for convenience of explanation.
도 1은 본 발명의 일 실시예에 따른 추천 아이템 제공 서비스 장치가 적용될 수 있는 시스템을 개략적으로 예시하는 도면이다. 1 is a view schematically illustrating a system to which a recommendation item providing service apparatus according to an embodiment of the present invention can be applied.
도 1을 참조하면, 본 발명의 실시예에 따른 추천 아이템 제공 서비스 장치가 적용될 수 있는 시스템은 다수의 단말(10), 웹 서버(20), 서비스 장치(30) 및 네트워크(40)를 포함하여 구성될 수 있다.1, a system to which a recommendation item providing service apparatus according to an embodiment of the present invention can be applied includes a plurality of
단말(10)은 네트워크(40)를 통해 웹 서버(20) 및/또는 서비스 장치(30)와 정보를 송수신하며, 이러한 정보를 표시하거나 사용자로부터 정보를 입력 받는 사용자가 이용 가능한 장치를 의미한다. 특히, 본 발명에서 있어서, 단말(30)은 웹 서버(20)에 접속하여 아이템에 관한 각종 정보 및 서비스 장치(30)에 의하여 제공된 추천 아이템 리스트를 제공 받을 수 있다. 여기서, 추천 아이템은 특정 아이템과 관련된 하나 이상의 추천 아이템에 대한 리스트를 의미하며, 서비스 장치(30)가 웹 서버(20) 및/또는 단말(10)로부터 수집한 사용자 로그 데이터를 기반으로 생성될 수 있다. The
또한, 단말(10)은 사용자에 의하여 선택된 아이템에 대한 선택 정보를 웹 서버(20)에 전송함으로써, 선택된 아이템을 이용(예를 들어, 구매, 장바구니 저장, 다운로드, 다른 단말에 전달 등)하기 위한 각종 기능을 수행할 수 있다. 또한, 단말(10)은 서비스 장치(30)에 사용자 로그 데이터를 전송하는 기능을 수행할 수도 있으며, 이에 관한 상세한 설명은 후술한다. 바람직하게, 단말(10)은 내부에 저장된 웹 브라우저를 통해 웹 서버(20) 및/또는 서비스 장치(30)와 정보를 송수신할 수 있으나, 반드시 이에 한정되는 것은 아니다. In addition, the terminal 10 may transmit the selection information for the item selected by the user to the
도 1에서 도시된 바와 같이 본 명세서에서 설명되는 단말은 다양한 형태로 구현될 수 있다. 예를 들어, 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, 태블릿 PC(Tablet PC), PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어 등의 이동 단말기는 물론, 스마트 TV(Smart TV), 셋탑박스(set-top box), 데스크탑 컴퓨터 등과 같은 고정 단말기가 사용될 수 있으며, 네트워크를 통해 다른 사용자와 메시지를 송수신할 수 있는 단말이라면, 그 어떠한 장치도 본 발명의 단말로 적용 가능하다.As shown in FIG. 1, the terminal described in this specification can be implemented in various forms. For example, a mobile phone, a smart phone, a laptop computer, a digital broadcasting terminal, a tablet PC, a PDA (personal digital assistant), a portable multimedia player (PMP) A fixed terminal such as a smart TV, a set-top box, a desktop computer or the like may be used as well as a mobile terminal of the present invention and a terminal capable of transmitting / The apparatus is also applicable to the terminal of the present invention.
웹 서버(20)는 웹 상에서 각종 서비스를 제공하는 서비스 제공자의 서버들을 통칭하며, 물리적으로 특정 서버 혹은 특정 서비스를 제공하는 서버로 한정되지 않는다. 특히, 본 발명에 있어서, 웹 서버(20)는 앞서 설명한 아이템과 해당 아이템에 대한 각종 정보를 웹 서버(20)에 접속한 단말(10)에게 제공하고, 단말(10)(즉, 사용자)에 의하여 선택된 아이템에 대한 추천 아이템 리스트를 서비스 장치(30)로부터 수신하여 단말(10)에게 제공할 수 있다. 또한, 웹 서버(20)는 서비스 장치(30)에 사용자 로그 데이터를 전송하는 기능을 수행할 수도 있으며, 이에 관한 상세한 설명은 후술한다.The
서비스 장치(30)는 웹 서버(20)에서 제공하는 다양한 아이템에 대한 추천 아이템 리스트를 웹 서버(20)에 제공하기 위한 기능을 수행하는 장치를 의미한다. 특히, 본 발명에 있어서, 서비스 장치(30)는 단말(10) 및/또는 웹 서버(20)로부터 사용자 로그 데이터를 수집 및 가공하고 각 아이템에 따른 추천 아이템 리스트를 산출하여 웹 서버(20)에 제공할 수 있다. 여기서, 사용자 로그 데이터는 어떠한 단말(10)(즉, 사용자)가 언제 어떠한 웹 서버에서 어떠한 아이템에 대하여 어떠한 동작을 하였는지 등의 이력을 나타내는 정보의 집합을 의미한다. The
또한, 서비스 장치(30)는 단말(10) 및/또는 웹 서버(20)로부터 혹은 수집된 사용자 로그 데이터로부터 뷰(view) 로그 데이터 및/또는 클릭(click) 로그 데이터를 수집하여 제공되는 추천 결과를 재처리함으로써 사용자의 방문 내지 동작에 따라 피드백이 반영된 추천 아이템 리스트를 제공할 수 있다. 여기서, 뷰(view) 로그 데이터는 단말(10)(즉, 사용자)의 웹 서버(20)를 접속함으로써, 특정 아이템을 표시하는 웹 페이지가 단말(10)에게 제공된 이력을 나타내는 정보의 집합을 의미한다. 그리고, 클릭(click) 로그 데이터는 서비스 장치(30)에 의해 웹 서버(20)에 제공된 추천 아이템 리스트를 단말(10)(즉, 사용자)가 클릭함으로써, 단말(10)이 추천 아이템 리스트에 포함된 링크(예를 들어, 하이퍼링크 혹은 핫링크 등)를 통해 클릭된 추천 아이템을 표시하는 웹 페이지가 단말(10)에게 제공된 이력을 나타내는 정보의 집합을 의미한다. In addition, the
이러한 서비스 장치(30)는 상술한 동작을 지원하기 위해 다양한 장치의 집합으로 구현될 수 있다. 예컨대 로그 데이터(예를 들어, 사용자 로그, 뷰 로그, 클릭 로그 데이터)를 저장하고 관리할 수 있는 저장부 서버, 로그 데이터를 수집하는 수집 서버, 로그 데이터를 변환 내지 가공하는 클러스터링(clustering) 서버, 추천 아이템 리스트를 산출하고 추천 아이템 리스트를 웹 서버에 제공하는 API(Application Program Interface) 서버, 피드백 결과에 기반하여 추천 아이템 리스트를 수정하거나 추천 알고리즘을 선정하는 피드백 처리 서버 등을 포함하여 구현될 수 있다. 또한, 상술한 동작에 대응되는 기능을 수행하는 각각의 모듈들이 하나의 서비스 장치(30) 내에 구현될 수도 있다. 이하, 설명의 편의를 위하여 하나의 서비스 장치(30)로 구현되는 경우를 가정하여 설명한다. The
이러한 단말(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
도 2는 본 발명의 일 실시예에 따른 서비스 장치의 구성을 예시하는 도면이다. 2 is a diagram illustrating a configuration of a service apparatus according to an embodiment of the present invention.
도 2에서 도시된 서비스 장치(30)의 구성은, 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 어느 하나 이상의 구성이 실제 물리적으로는 서로 통합되어 구현될 수도 있다.The configuration of the
도 2를 참조하면, 본 발명의 일 실시예에 따른 서비스 장치(30)는 통신부(210), 제어부(220) 및 저장부(230)를 포함하여 구성될 수 있다. 서비스 장치(30)를 구성하는 통신부(210), 제어부(220) 및 저장부(230)는 본 발명에 따른 기능을 수행하기 위하여 상호 기능적으로 연결될 수 있다.2, the
각 구성 요소에 대해 보다 구체적으로 설명하면, 통신부(210)는 하나 이상의 단말(10) 및/또는 웹 서버(20)와 유/무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 특히, 본 발명에 있어서, 통신부(210)는 하나 이상의 단말(10) 및/또는 웹 서버(20)로부터 사용자 로그 데이터를 수신할 수 있다. 또한, 통신부(210)는 웹 서버(20)로부터 추천 아이템 리스트 요청 메시지를 수신할 수 있으며, 추천 아이템 리스트 요청 메시지에 대응하여 추천 아이템 리스트를 웹 서버(20)에 전송할 수 있다. 또한, 웹 서버(20)에서 제공하는 웹 페이지 상에서 사용자의 추천 아이템 클릭에 의하여 단말(10)로부터 접속 요청을 수신하면, 접속 요청한 해당 단말(10)에 리다이렉트(redirect) URL(Uniform Resource Locator)을 전송할 수 있다. More specifically, the
제어부(220)는 서비스 장치(30)의 전반적인 제어를 수행하는 구성으로, 통신부(210) 및 저장부(250)의 기능 수행을 기능 수행을 위한 신호의 흐름을 제어하게 된다. 이때, 제어부(220)는 운영 체제(OS: Operation System), 응용 프로그램 및 각 구성을 구동시키는 프로세스 장치, 예컨대, 중앙처리장치(CPU: Central Processing Unit)로 이루어질 수 있다.The
특히, 본 발명에 있어서, 제어부(220)는 데이터 수집부(221), 데이터 처리부(222), 추천 계산부(223), 추천 결과 제공부(224) 및 피드백 처리부(225)를 포함하여 구성될 수 있다. Particularly, in the present invention, the
데이터 수집부(221)는 단말(10) 및/또는 웹 서버(20)로부터 상술한 사용자 로그 데이터를 수집하여 저장부(230)에 저장하는 기능을 수행할 수 있다. The
데이터 처리부(222)는 데이터 수집부(221)에 의하여 수집 및 저장된 사용자 로그 데이터로부터 추천 아이템을 계산하기 위하여 계산에 필요한 데이터들을 추출하고, 추출된 데이터들을 계산에 적합한 데이터 포맷으로 변환 내지 가공하여 변환된 사용자 로그 데이터를 저장부(230)에 저장하는 기능을 수행할 수 있다. 또한, 추천 계산부(223)에 의하여 계산되어 저장된 추천 계산 결과를 인터넷을 통해 웹 서버(20)에 제공하기 위한 포맷으로 변환 내지 가공한 추천 결과를 데이터 베이스(230)에 저장하는 기능을 수행할 수 있다. The
추천 계산부(223)는 데이터 처리부(222)에 의하여 처리된 변환된 사용자 로그 데이터로부터 다양한 추천 알고리즘을 이용하여 추천 아이템을 계산하고, 추천 아이템을 계산한 추천 계산 결과를 저장부(230)에 저장하는 기능을 수행할 수 있다.The
추천 결과 제공부(224)는 웹 서버(20)로부터 특정 아이템에 대한 추천 아이템 리스트 요청 메시지를 수신하면, 해당 아이템에 대한 추천 아이템 리스트를 저장부(230)의 추천 결과로부터 추출하여 웹 서버(20)에 전송하는 기능을 수행할 수 있다. 또한, 추천이 금지되는 아이템을 추천 결과(혹은 추천 아이템 리스트)에서 삭제하거나 새로운 추천 아이템을 추천 결과(혹은 추천 아이템 리스트)에 추가하거나 추천 결과(혹은 추천 아이템 리스트)에 부가적인 정보를 추가하는 등 추천 결과(혹은 추천 아이템 리스트)를 후처리하는 기능을 수행할 수 있다. Upon receiving the recommendation item list request message for a specific item from the
피드백 처리부(225)는 클릭 로그 데이터 및/또는 뷰 로그 데이터를 수집하고, 수집된 클릭 로그 데이터 및/또는 뷰 로그 데이터를 기반으로 추천 결과(혹은 추천 아이템 리스트)를 재처리하거나 추천 계산부(223)에서 추천 계산에 이용하는 추천 알고리즘을 결정하는 기능을 수행할 수 있다. The
먼저, 클릭 로그 데이터를 수집하기 위하여, 피드백 처리부(225)는 웹 서버(20)에서 제공하는 웹 페이지 상에서 사용자의 추천 아이템 클릭에 의하여 단말(10)로부터 접속 요청을 수신하면, 이를 클릭 로그 데이터로 저장부(230)에 저장하는 기능을 수행하며, 접속 요청한 해당 단말(10)에 리다이렉트(redirect) URL을 전송하는 기능을 수행할 수 있다. 또한, 이와 상이하게, 피드백 처리부(225)는 사용자 로그 데이터로부터 특정 파라미터 내지 형식을 가지는 데이터를 추출하여 이를 클릭 로그 데이터로 저장부(230)에 저장하는 기능을 수행할 수 있다.First, in order to collect click log data, the
또한, 뷰 로그 데이터를 수집하기 위하여, 피드백 처리부(225)는 웹 서버(20)로부터 추천 아이템 리스트 요청 메시지를 수신하면, 이를 뷰 로그 데이터로 데이터 베이스(230)에 저장하는 기능을 수행할 수 있다.In order to collect view log data, the
한편, 도 2의 예시에서는 데이터 수집부(221), 데이터 처리부(222), 추천 계산부(223), 추천 결과 제공부(224) 및 피드백 처리부(225)를 각각의 블록으로 도시하였으나, 물리적으로 하나의 장치로 통합되어 구현될 수도 있으며, 상술한 바와 같이 일부 또는 그 각각이 물리적으로 서로 다른 장치에 구현될 수도 있다. 또한, 동일한 기능을 수행하는 복수 개의 장치가 병렬적으로 구현될 수도 있다. 2, the
저장부(230)는 서비스 장치(30)의 동작에 필요한 데이터 및 프로그램을 저장하는 수단으로서, 기본적으로 서비스 장치(30)에 의해 실행될 운영 프로그램 및 응용 프로그램을 저장한다. 특히, 본 발명에 있어서, 저장부(230)는 데이터 수집부(241)에 의하여 수집된 사용자 로그 데이터, 데이터 처리부(222)에 의하여 처리된 변환된 사용자 로그 데이터와 추천 결과, 추천 계산부(223)에 의하여 계산된 추천 계산 결과 및 피드백 수집부(245)에 의하여 수집된 뷰 로그 데이터와 클릭 로그 데이터를 저장할 수 있다. The
이러한, 저장부(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)와 연결될 수 있다.The storage unit 250 may be implemented by various storage means. For example, the storage unit 250 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (for example, SD or XD A random access memory (SRAM), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a programmable read-only memory (PROM) , A magnetic memory, a magnetic disk, or an optical disk. The storage unit 250 may be located inside or outside the
이하, 설명의 명확히 하기 위하여, 데이터 수집부(221)에 의하여 수집된 '사용자 로그 데이터'와 구분하여 데이터 처리부(222)에 의하여 가공된 사용자 로그 데이터를 '변환된 사용자 로그 데이터'로 지칭한다. 또한, 추천 계산부(223)에 의하여 계산된 결과를 '추천 계산 결과'로 지칭하며, 데이터 처리부(222)에 의하여 가공된 추천 계산 결과를 '추천 결과'로 지칭한다. 또한, 추천 결과 제공부(224)가 추천 결과에서 웹 서버(20)가 요청한 특정 아이템에 관하여 제공하는 추천 결과를 '추천 아이템 리스트'로 지칭한다. 즉, 추천 결과는 모든 아이템에 대하여 추천되는 추천 아이템 리스트를 포괄한다. Hereinafter, for the sake of clarity, the user log data processed by the
이하, 서비스 장치(30)에서 추천 아이템을 제공하기 위한 동작에 관하여 도 3을 참조하여 설명한다.Hereinafter, an operation for providing a recommendation item in the
도 3은 본 발명의 일 실시예에 따른 추천 아이템 제공 방법을 예시하는 도면이다. 3 is a diagram illustrating a recommendation item providing method according to an embodiment of the present invention.
도 3을 참조하면, 서비스 장치(30)는 단말(10) 및/또는 웹 서버(20)로부터 상술한 사용자 로그 데이터를 수집할 수 있다(S301). 여기서, 서비스 장치(30)는 단말(10) 및/또는 웹 서버(20)로부터 동기적(즉, 실시간 수집) 혹은 비동기적(예를 들어, 특정 주기에 수집)으로 사용자 로그 데이터를 수집할 수 있으며, 수집 방식과 무관하게 계속적으로 단말(10) 및/또는 웹 서버(20)로부터 사용자 로그 데이터를 수집할 수 있다. Referring to FIG. 3, the
서비스 장치(30)는 S301 단계에서 수집된 사용자 로그 데이터로부터 추천 아이템을 계산하기 위하여 추천 계산에 필요한 데이터들을 추출하고, 추출된 데이터들을 추천 계산에 적합한 데이터 포맷으로 변환하여 저장할 수 있다(S303). 여기서, S301 단계에서 다수의 단말(10) 및/또는 다수의 웹 서버(20)로부터 수집한 사용자 로그 데이터의 포맷이 동일하며, 추천 아이템 계산에 적합하다면, 서비스 장치(30)는 데이터 변환 단계를 수행하지 않을 수 있으며, 즉 S303 단계는 생략될 수 있다. In step S303, the
서비스 장치(30)는 S303에서 변환된 사용자 로그 데이터를 이용하여 다양한 추천 알고리즘을 이용하여 추천 아이템을 계산하고, 추천 계산 결과를 저장할 수 있다(S305). 여기서, 서비스 장치(30)는 모든 아이템에 대하여 각 추천 알고리즘 별로 추천 아이템을 계산할 수 있다. 또한, 사용자 로그 데이터를 임의로 혹은 특정 기준에 따라 복수의 그룹으로 구분하고 각 그룹 별로 서로 다른 추천 알고리즘을 이용하여 추천 아이템을 계산할 수 있다. 또한, 서비스 장치(30)가 추천 아이템을 계산하는 시점은 S301 단계에서 사용자 로그 데이터를 수집하는 시점과 동일하거나 동일하지 않을 수 있으며, 일정 주기를 가지고 계산될 수 있다. The
서비스 장치(30)는 S305 단계에서 계산된 추천 계산 결과를 인터넷을 통해 웹 서버(20)에 제공하기 위하여 적합한 데이터 포맷으로 변환할 수 있다(S307). 상술한 바와 같이, S303 단계에서 서비스 장치(30)가 데이터 변환 단계를 수행하지 않는 다면, S307 단계 또한 생략될 수 있다. The
서비스 장치(30)는 계산된 추천 결과(혹은 추천 아이템 리스트)에 대하여 후처리를 수행한 후, 사용자 로그 데이터를 수집한 해당 웹 서버(20)에 추천 아이템 리스트를 제공할 수 있다(S309). 이때, 서비스 장치(30)는 일정 주기를 가지고 추천 아이템 리스트를 웹 서버(20)에 제공하거나, 서비스 장치(30)가 웹 서버(20)로부터 특정 아이템에 대한 추천 아이템 리스트를 요청 받아 해당 아이템에 대한 추천 아이템 리스트를 웹 서버(20)에 전송할 수도 있다. The
서비스 장치(30)는 사용자의 피드백을 수집하여 이를 추천에 반영할 수 있다(S311). 즉, 서비스 장치(30)는 수집된 클릭 로그 데이터 및/또는 뷰 로그 데이터를 기반으로 추천 결과(혹은 추천 아이템 리스트)를 재처리하거나(S309 단계로 분기), 추천 계산부(223)에서 추천 계산에 이용하는 추천 알고리즘을 결정할 수 있다(S305 단계로 분기)(S311).The
이하, 도 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 (in particular, the data collecting 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 means a set of information indicating what kind of user performed what kind of behavior, what kind of item, what kind of web server, and what kind of item. 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 with respect to other items, (ID) identifier information, and the like.
표 1은 본 발명에 따른 사용자 로그 데이터에 포함될 수 있는 정보를 예시한다. Table 1 illustrates information that may be included in the user log data according to the present invention.
서비스 장치(30)는 이러한 사용자 로그 데이터를 수집하기 위하여 다음과 같은 방법을 이용할 수 있다. The
먼저, 서비스 장치(30)는 웹 서버(20)에 접속하여 사용자 로그 데이터를 추출하여 획득하거나, 웹 서버(20)로부터 전송되는 사용자 로그 데이터를 수신하여 획득할 수 있으며, 이에 관하여 아래 도 4를 참조하여 설명한다. First, the
도 4는 본 발명의 일 실시예에 따른 사용자 로그 데이터 수집 방법을 예시하는 도면이다. 4 is a diagram illustrating a method of collecting user log data according to an embodiment of the present invention.
도 4를 참조하면, 웹 서버(20)는 단말(10)이 접속하여 특정 동작을 수행하면, 특정 동작이 수행되었음을 서비스 장치(30)에 알리기 위하여 사용자 로그 데이터가 포함된 웹 페이지의 접근 경로 정보를 포함하는 접속 요청 메시지를 서비스 장치(30)에 전송할 수 있다(S401). 여기서, 웹 서버(20)는 POST HTTP 프로토콜을 이용하여 서비스 장치(30)에 접속 요청 메시지를 전송할 수 있다. 4, when the terminal 10 accesses the
서비스 장치(30)는 웹 서버(20)로부터 접속 요청 메시지를 수신하면, 접속 요청 메시지에 포함된 웹 페이지의 접근 경로 정보를 기반으로 웹 서버(20)에 접속하여 해당 웹 페이지에 포함된 사용자 로그 데이터를 추출하여 획득한다(S403). 여기서, 서비스 장치(30)는 GET HTTP 프로토콜을 이용하여 웹 서버(20)로부터 사용자 로그 데이터를 추출할 수 있다. Upon receiving the connection request message from the
이어, 서비스 장치(30)는 획득한 사용자 로그 데이터를 저장한다(S405).Next, the
또한, 도 4의 예시와 상이하게, 웹 서버(20)에서 해당 웹 서버(20)에 접속된 사용자 단말(10)의 동작에 관한 사용자 로그 데이터를 TCP/IP 프로토콜을 통해 서비스 장치(30)로 전송함으로써, 서비스 장치(30)에서 사용자 로그 데이터를 획득할 수도 있다. 4, the user log data related to the operation of the
다음으로, 서비스 장치(30)는 웹 서버(20)에서 서비스하는 웹 사이트에 스크립트(script)를 삽입하고, 삽입한 스크립트를 통해 사용자 단말(10)로부터 사용자 로그 데이터를 획득할 수도 있으며, 이에 관하여 아래 도 5를 참조하여 설명한다. Next, the
도 5는 본 발명의 일 실시예에 따른 사용자 로그 데이터 수집 방법을 예시하는 도면이다. 5 is a diagram illustrating a method of collecting user log data 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
이후, 단말(10)이 웹 서버(20)에 접속하여(S503), 해당 웹 서버(20)에서 제공하는 웹 페이지를 방문하면 해당 웹 페이지 내에 삽입된 스크립트를 실행하면(S505). 해당 스크립트에 의하여 자동으로 사용자에 대한 로그 데이터를 서비스 장치(30)에 전송할 수 있다(S507). 예를 들어, 단말(10)에 탑재된 웹 브라우저에서 앞서 예시한 스크립트를 실행하게 되면, 단말(10)이 방문한 웹 페이지의 URL 정보, 방문 시각, 스크립트에 포함된 파라미터들에 대한 값 등을 서비스 장치(30)에 전송하게 된다. Thereafter, when the terminal 10 accesses the web server 20 (S503) and visits the web page provided by the
상술한 스크립트를 이용하여 서비스 장치(30)가 단말(10)로부터 수집하는 정보는 다음과 같다.The information collected by the
- 웹 브라우저 쿠키 기반으로 생성된 사용자 식별자(UID: User IDentifier)- UID (User IDentifier) generated based on web browser cookie
- 사용자의 방문 URL 정보- User's visit URL information
- 사용자의 방문 참조 주소(Referrer) 정보- Information about the user's visit reference (Referrer)
- 접속 시각 정보- Connection time information
- 웹 브라우저의 사용자 에이전트(User Agent) 정보- About the user agent of the 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 firstly determines whether the user identifier value is stored in the cookie of the web browser. If the user identifier is stored, (30). On the other hand, if the user identifier is not stored in the cookie of the web browser, information that can identify the user is generated by combining an arbitrary numerical value and the generation time (for example, 33619442.1366005959274), and transmits the generated information to the
방문 URL 정보는 접속한 웹 서버(20)의 해당 웹 페이지에 대한 URL 정보를 의미한다. 그리고, 참조 주소(referrer) 정보는 링크를 통해서 웹 서버(20)의 해당 웹 페이지에 방문한 경우에 이전에 방문하였던 웹 페이지에 대한 URL 정보를 의미한다. 그리고, 접속 시각 정보는 단말(10)이 웹 서버(20)의 웹 페이지에 방문한 시각 정보를 의미한다. 웹 브라우저의 사용자 에이전트(User Agent) 정보는 웹 서버(20)에 접속 시 단말(10)에서 이용한 웹 브라우저를 구별하기 위한 정보를 의미한다. 일례로, 단말(10)에서 이용한 웹 브라우저가 모바일 장치 용 웹 브라우저인지, 데스크탑 용 웹 브라우저인지 식별하기 위한 정보가 이에 해당될 수 있다. 이러한 정보들은 단말(10)에 탑재된 웹 브라우저에서 수집하여 전체 정보를 동기적 혹은 비동기적으로 서비스 장치(30)에 전송할 수 있다. The visit URL information means URL information of a corresponding web page of the
그리고, 메타 정보는 서비스 장치(30)가 추천 아이템을 산출할 때 고려해야 되는 기타 추가적인 정보를 의미하며, 그 일례로, 웹 서버가 운영하는 웹 사이트에 회원 정보와 같이 보다 정확하게 사용자를 구별할 수 있는 정보 혹은 아이템이 성인 인증이 필요한지 여부에 관한 정보 등이 해당될 수 있다. 이러한 메타 정보는 웹 서버(20)의 웹 페이지에 삽입된 스크립트가 메타(Meta) 정보를 요구하는 형식을 가지는 경우에는 스크립트에서 요구하는 메타 정보를 단말(10)이 서비스 장치(30)에 전송한다. 예를 들어, 삽입된 스크립트가 "plugin.js?key=value&key2=value2" 형태를 가지게 되면, 단말(10)에서 각각의 파라미터(key, key2)에 대한 값(value1, value2)을 서비스 장치(30)에 전송한다. The meta information means other additional information that should be considered when the
앞서 설명한 방식으로 단말(10)로부터 사용자 로그 데이터를 수신한 서비스 장치(30)는 획득한 사용자 로그 데이터를 저장한다(S509).The
앞서 도 4 내지 도 5의 예시와 같은 방법을 통해 수집한 사용자 로그 데이터를 예시하면 아래 표 2와 같다.The user log data collected through the method as shown in FIGS. 4 to 5 is shown in Table 2 below.
표 2는 서비스 장치(30)가 수집한 사용자 로그 데이터를 예시한다. Table 2 illustrates the user log data collected by the
서비스 장치(30)(특히, 데이터 처리부(222))는 S301 단계에서 수집된 사용자 로그 데이터로부터 추천 아이템을 계산하기 위하여 추천 계산에 필요한 데이터들을 추출(extract)하고, 추출된 데이터들을 계산에 추천 적합한 데이터 포맷으로 변환(transform)하여 저장(load)할 수 있다(S303)The
먼저, 서비스 장치(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
그리고, 서비스 장치(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).Then, the
한편, 서비스 장치(30)는 앞서 사용자 로그 데이터 수집 단계(S301)에서 메타 정보로 웹 서버(20)의 사용자 회원 아이디 값이 전달되어 저장되었다면, 해당 회원 아이디를 사용자 식별자(USER_ID)로 사용하고, 전달되지 않았다면, 단말(10)에서 웹 브라우저 쿠키를 기반으로 생성한 사용자 식별자 (USER_IDENTIFIER)를 사용자 식별자(USER_ID)로 사용한다.Meanwhile, if the user ID value of the
그리고, 서비스 장치(30)는 앞서 설명한 방법을 통해 추출하거나 획득한 사용자 식별자(USER_ID), 아이템 식별자(ITEM_ID)를 미리 정의된 숫자 식별자로 변환하며, 추출한 동작 식별자(ACTION_ID)에 미리 정의된 숫자 식별자를 부여한다. 이때, 서비스 장치(30)는 도메인과 서비스 식별자의 일대일 매핑 관계와 같이 각 사용자 식별자, 동작 식별자, 아이템 식별자 별로 미리 정해진 숫자 식별자로 변환할 수 있으며 혹은 임의로 연속된 정수값을 가지는 숫자 식별자로 변환(혹은 부여)할 수 있다. The
표 3은 변환된 사용자 식별자 테이블을 예시한다. Table 3 illustrates the converted user identifier table.
(SERVICE_ID)Service identifier
(SERVICE_ID)
(ORG_USER_ID)Source user identifier
(ORG_USER_ID)
(CONVERTED_USER_ID)Converted user identifier
(CONVERTED_USER_ID)
표 3에서 원본 식별자가 'chaehyun'는 웹 서버(20)의 사용자 회원 정보 값이 전달되어 이를 사용자 식별자로 사용한 경우를 나타내며, '44209103.136609' 혹은 '68709103.015529'는 단말(10)의 웹 브라우저 쿠키를 기반으로 생성한 값을 사용자 식별자로 사용한 경우를 나타낸다. In Table 3, 'chaehyun' indicates the case where the user's member information value of the
표 4는 변환된 아이템 식별자 테이블을 예시한다.Table 4 illustrates the converted item identifier table.
(SERVICE_ID)Service identifier
(SERVICE_ID)
(ORG_ITEM_ID)Original item identifier
(ORG_ITEM_ID)
(CONVERTED_ITEM_ID)The converted item identifier
(CONVERTED_ITEM_ID)
표 5는 변환된 동작 식별자 테이블을 예시한다.Table 5 illustrates the converted operation identifier table.
(RECOMMEND_VISIT_ALGORITHM_2)Recommendation Algorithm 2
(RECOMMEND_VISIT_ALGORITHM_2)
(RECOMMEND_VISIT_ALGORITHM_3)
(RECOMMEND_VISIT_ALGORITHM_3)
표 5에서 추천 알고리즘 x(RECOMMEND_VISIT_ALGORITHM_x)은 해당 추천 알고리즘(x)을 이용하여 계산된 추천 아이템 리스트 제공 결과를 통해 사용자 단말(10)이 해당 서비스 식별자를 가지는 웹 서버(20)에 접속한 동작을 나타낸다. In Table 5, the recommended algorithm x (RECOMMEND_VISIT_ALGORITHM_x) indicates an operation that the
이와 같이 최종적으로 변환된 사용자 로그 데이터는 아래 표 6과 같다. The final converted user log data is shown in Table 6 below.
표 6은 변환된 사용자 로그 데이터를 예시한다. Table 6 illustrates the converted user log data.
(VERSION)version
(VERSION)
(CONVERTED_USER_ID)Converted user identifier
(CONVERTED_USER_ID)
(CONVERTED_ITEM_ID)The converted item identifier
(CONVERTED_ITEM_ID)
(SERVICE_ID) Service identifier
(SERVICE_ID)
(ACTION_ID)Operation identifier
(ACTION_ID)
(TIME)Time
(TIME)
표 6을 참조하면, 서비스 장치(30)는 변환된 사용자 로그 데이터에 포함되는 정보들의 항목에 따라 변환된 사용자 로그 데이터를 구분하기 위하여 상이한 버전(version) 정보를 부여할 수 있다. 예를 들어, 표 6의 예시와 같이, 버전 0을 가지는 변환된 사용자 로그 데이터의 경우, 변환된 사용자 식별자, 변환된 아이템 식별자, 서비스 식별자, 동작 식별자, 시각 항목을 포함하나, 버전 1을 가지는 변환된 사용자 로그 데이터의 경우에는 버전 0에 포함된 정보 항목 중 일부가 제외되거나 포함되지 않은 이외의 정보 항목이 추가될 수도 있다.
Referring to Table 6, the
서비스 장치(30)(특히, 추천 계산부(223))는 S303에서 변환된 사용자 로그 데이터를 이용하여 다양한 추천 알고리즘을 이용하여 추천 아이템을 계산하고, 추천 계산 결과를 저장할 수 있다(S305).The service device 30 (in particular, the recommendation calculation unit 223) may calculate a 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
서비스 장치(30)는 정해진 범위(즉, 전체 혹은 그룹)에 포함되는 변환된 사용자 로그 데이터에 속하는 모든 아이템에 대하여 해당 아이템을 제외한 이외의 모든 아이템과의 유사도를 각각 계산한다. 예를 들어, 정해진 범위 내 변환된 사용자 로그 데이터에 총 100개의 아이템이 속하는 경우, 첫 번째 아이템과 해당 아이템 이외의 99개의 아이템 간의 유사도를 각각 계산하고, 두 번째 아이템과 해당 아이템 이외의 99개의 아이템 간의 유사도를 각각 계산하는 방식으로 모든 아이템에 대하여 다른 아이템과의 유사도를 계산한다. The
서비스 장치(30)는 두 개의 아이템 간의 유사도(similarity)를 계산하기 위하여 다양한 추천 알고리즘을 이용할 수 있다. 그 일례로, 자카드 유사도(similarity), 로그-우도 유사도(Log Likelihood Similarity), 피어슨 상관(Pearson correlation) 등을 이용할 수 있다. 이러한 유사도 계산 방법들은 이미 공지된 방법들로 이하 상세한 설명을 생략한다. 이하, 설명의 편의를 위하여 추천 알고리즘으로 자카드 유사도를 이용한다고 가정하여 설명하며, 자카드 유사도는 아래 수학식 1과 같이 정의된다. The
수학식 1을 참조하면, 두 개의 아이템 간의 자카드 유사도는 두 아이템을 모두 방문한 사용자 수(두 아이템을 표시하는 웹 페이지 모두 접속한 사용자들의 수)를 두 아이템을 방문한 사용자들의 합집합의 수(두 아이템을 표시하는 웹 페이지 중 어느 하나 이상에 접속한 사용자들의 수 - 두 아이템을 표시하는 웹 페이지 모두 접속한 사용자들의 수)로 나누어 계산되며, 결국 두 아이템을 모두 방문한 사용자들이 많을수록 양 아이템 간의 유사도가 커지게 된다. 예를 들어, A 아이템을 표시하는 웹 페이지에 접속한 사용자들의 수가 20이고, B 아이템을 표시하는 웹 페이지에 접속한 사용자들의 수가 10이며, A와 B 아이템을 표시하는 웹 페이지에 모두 방문한 사용자들의 수가 5인 경우, 자카드 유사도의 계산 결과는 5/(20+10-5)=1/5과 같다. Referring to Equation (1), the jacquard similarity between two items indicates the number of users who visited both items (the number of users who accessed both web pages displaying two items) The number of users who have accessed at least one of the displayed web pages - the number of users who access both web pages displaying two items) is calculated. As a result, the more similar the users who visited both items, do. For example, if the number of users connected to the web page displaying the A item is 20, the number of users accessing the web page displaying the B item is 10, and the number of users visiting the web page displaying the A and B items When the number is 5, the calculation result of jacquard similarity is 5 / (20 + 10 - 5) = 1/5.
서비스 장치(30)는 추천 알고리즘을 이용하여 정해진 범위 내(전체 혹은 그룹) 변환된 사용자 로그 데이터에 속하는 모든 아이템에 대하여 유사도를 모두 계산한 후, 각 아이템 별로 유사도가 큰 순서대로 n 개의 아이템을 추천 아이템으로 산출한다. 이때, 서비스 장치(30)는 모든 아이템에 대하여 유사도를 모두 계산한 후, 특정 조건(예를 들어, 두 아이템을 모두 방문한 사용자들의 수>= 50 이며 유사도 > 0.1)을 만족하는 아이템을 추출한 후 추출된 아이템 중에서 각 아이템 별로 유사도가 큰 순서대로 n 개의 아이템을 추천 아이템으로 산출할 수도 있다. The
상술한 자카드 유사도를 이용하여 추천 아이템을 계산하는 방법은 하나의 예시에 불과하며, 상술한 바와 같이 서비스 장치(30)는 다양한 추천 알고리즘을 이용하여 각 아이템에 대한 추천 아이템을 계산할 수 있다. 또한, 서로 다른 추천 알고리즘을 이용하여 각 아이템에 대한 추천 아이템의 추천 점수를 계산하더라도 추천 점수는 모두 동일한 수준(예를 들어, 0 내지 1 사이)으로 정해질 수 있다. 이와 같이 각각의 추천 알고리즘에 따른 추천 계산 결과는 아래 표 7과 같다. The method of calculating the recommendation item using the above-described jacquard similarity is only one example. As described above, the
표 7은 각각의 추천 알고리즘에 따라 계산된 추천 계산 결과를 예시한다. Table 7 illustrates the recommended calculation results calculated according to each recommendation algorithm.
(CONVERTED_ITEM_ID)The converted item identifier
(CONVERTED_ITEM_ID)
(RECOMMENDED_ITEM_ID)Converted Recommended Item Identifier
(RECOMMENDED_ITEM_ID)
표 7을 참조하면, 추천 점수(SCORE) 값은 추천 알고리즘에 따라 해당 아이템과 추천 아이템 간의 유사도를 계산한 값을 나타내고, 방법(METHOD)은 유사도 계산에 이용된 추천 알고리즘에 대한 식별 번호를 나타낸다.
Referring to Table 7, the SCORE value represents a value obtained by calculating the similarity between the item and the recommendation item according to the recommendation algorithm, and the METHOD represents an identification number for the recommendation algorithm used in the similarity calculation.
서비스 장치(30)(특히, 데이터 처리부(222))는 S305 단계에서 계산된 추천 계산 결과를 웹 서버(20)에 제공하기 위하여 적합한 데이터 포맷으로 변환할 수 있다(S307).The service device 30 (particularly, the data processing unit 222) may convert the recommended calculation result calculated in step S305 into a data format suitable for providing to the web server 20 (S307).
먼저, 서비스 장치(30)는 추천 계산 결과에서 변환된 아이템의 식별자를 원본 식별자로 변경하고, 서비스 식별자와 결과를 계산한 날짜를 추가하여 저장한다. First, the
표 8은 추천 계산 결과의 변환된 포맷을 예시한다. Table 8 illustrates the converted format of the recommendation calculation result.
(ORG_ITEM_ID)Original item identifier
(ORG_ITEM_ID)
(ORG_RECOMMENDED_ITEM_ID)Original referral item identifier
(ORG_RECOMMENDED_ITEM_ID)
(SCORE)Recommendation score
(SCORE)
(METHOD)Way
(METHOD)
(SERVICE_ID)Service identifier
(SERVICE_ID)
(DATE)date
(DATE)
이어, 서비스 장치(30)는 최종적으로 인터넷을 통해 웹 서버(20)에 제공하기에 적합한 데이터 포맷으로 추천 계산 결과를 변환하여 저장할 수 있다. 이때, 서비스 장치(30) 아래 표 9와 같은 JSON(JavaScript Object Notation) 포맷으로 저장할 수 있다. 다만, JSON 포맷은 하나의 예시에 불과하며, 서비스 장치(30)는 확장성 마크업 언어(XML: Extensible Markup Language) 포맷이나 YAML(YAML Ain't Markup Language) 포맷 등과 같이 다양한 데이터 포맷으로 저장할 수 있다. 이하, JSON 포맷을 가정하여 설명한다. Then, the
표 9는 최종적으로 변환되어 저장되는 추천 결과 포맷을 예시한다. Table 9 illustrates a recommendation result format that is finally converted and stored.
(HASH)Hash
(HASH)
(SERVICE_ID)Service identifier
(SERVICE_ID)
(ORG_ITEM_ID)Original item identifier
(ORG_ITEM_ID)
(COUNT)count
(COUNT)
4cfc30c5e1c1bbcf
표 9를 참조하면, 해쉬 값은 특정 아이템에 관하여 추천되는 추천 아이템 리스트가 동일한 경우, 해당 아이템에 관한 추천 아이템 리스트를 중복해서 저장하지 않기 위하여 계산된 값을 의미하며, 서비스 식별자(SERVICE_ID), 아이템 식별자(ITEM_ID) 및 추천 아이템 식별자(RECOMMENDED_ITEM_ID)들을 하나의 문자열로 합친 다음, 합친 문자열에 해쉬 함수를 적용하여 계산된다. 이와 같은 해쉬 값을 사용함으로써, 특정 아이템에 대한 추천 아이템 리스트에 속하는 추천 아이템의 순위가 변경되거나 추천 아이템 리스트에 속하는 추천 아이템이 변경되지 않는 한 추천 아이템 리스트에 속한 추천 아이템들의 추천 점수가 변경되더라도 추천 아이템 리스트를 갱신하지 않을 수 있다. 즉, 해쉬 값을 계산하기 위한 변수로 추천 아이템에 대한 추천 점수가 포함되지 않으므로, 만약 다음 날 다시 추천 아이템 리스트를 계산했을 때, 추천 아이템의 추천 점수가 변경되더라도, 추천되는 아이템의 수가 바뀌거나, 순서가 변경되지 않으면, 해쉬 값은 변경되지 않기 때문이다. Referring to Table 9, the hash value is a value calculated so as not to store the recommendation item list for the item in a case where the recommended item list recommended for the specific item is the same, and includes a service identifier (SERVICE_ID) The identifier (ITEM_ID) and the recommendation item identifier (RECOMMENDED_ITEM_ID) are combined into one string, and then the hash function is applied to the combined string. By using such a hash value, even if the recommendation score of the recommendation items belonging to the recommendation item list is changed unless the recommendation item belonging to the recommendation item list is changed or the recommendation item belonging to the recommendation item list is changed, The item list may not be updated. That is, since the recommendation score for the recommendation item is not included in the variable for calculating the hash value, if the recommendation score of the recommendation item is changed when the recommendation item list is calculated again the next day, If the order is not changed, the hash value is not changed.
그리고, 카운트(COUNT) 값은 특정 아이템에 관하여 몇 개의 아이템이 추천되었는지 추천 아이템의 개수를 나타낸다. JSON 값은 카운트 값에 해당하는 개수의 추천 아이템에 대한 정보를 포함하며, 그 일례로, 추천 아이템 식별자, 추천 점수 및 추천 알고리즘 정보를 포함할 수 있다.
And the COUNT value indicates the number of recommendation items and how many items are recommended for a specific item. The JSON value includes information on a recommended number of items corresponding to the count value, and may include, for example, a recommendation item identifier, recommendation score, and recommendation algorithm information.
서비스 장치(30)(특히, 추천 결과 제공부(224))는 계산된 추천 결과(혹은 추천 아이템 리스트)에 대하여 후처리를 수행한 후, 사용자 로그 데이터를 수집한 해당 웹 서버(20)에 추천 아이템 리스트를 제공할 수 있다(S309). The service device 30 (in particular, the recommendation result providing unit 224) performs post-processing on the calculated recommendation result (or recommendation item list) and then recommends recommendation to the
이에 관하여 아래 도 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 list of recommended items in accordance with an embodiment of the present invention.
도 6을 참조하면, 서비스 장치(30)는 변환된 저장된 추천 결과(혹은 추천 아이템 리스트)에 대하여 후처리를 수행할 수 있다(S601). Referring to FIG. 6, the
추천 결과(혹은 추천 아이템 리스트)에 대한 후처리는 추천 결과(혹은 추천 아이템 리스트)에서 추천 아이템을 추가, 삭제 혹은 변경하거나 추천 아이템 리스트에서 포함되는 정보 항목을 추가, 삭제 혹은 변경하는 동작을 의미한다. 이러한 후처리 과정은 서비스 장치(30)에서 자동으로 수행될 수 있으며, 웹 서버(20)로부터의 요청에 의하여 서비스 장치(30)에서 수행될 수도 있다. Post-processing of the recommendation result (or recommended item list) means adding, deleting or changing the recommendation item from the recommendation result (or recommended item list) or adding, deleting or changing the information item included in the recommendation item list . This post-processing process may be performed automatically at the
구체적으로 살펴보면, 서비스 장치(30)는 추천 금지된 아이템을 추천 결과(혹은 추천 아이템 리스트)에서 제거할 수 있다. 예를 들어, 웹 서버(20)의 관리자가 아이템 A에 대한 아이템 B의 추천을 금지한 경우, 아이템 A에 대한 추천 아이템 리스트에서 아이템 B를 제거할 수 있다. 또한, 특정 상품이 품절되거나 특정 상점이 더 이상 영업을 하지 않는 경우 등과 같이 어떠한 아이템에 대해서도 추천되지 않아야 하는 아이템의 경우에는 모든 추천 아이템 리스트(즉, 추천 결과)에서 해당 아이템을 제거할 수 있다. 이와 같이 추천 금지된 아이템을 추천 결과(혹은 추천 아이템 리스트)에서 제거할 때, 서비스 장치(30)는 기 생성된 추천 결과(혹은 추천 아이템 리스트)에서 삭제하고자 하는 아이템을 임의로 삭제하거나, 해당 아이템에 대한 추천 점수를 낮은 값으로 변경 혹은 낮은 값이 계산되도록 변수 값을 조정하여 추천 결과(혹은 추천 아이템 리스트)에서 추천 금지된 아이템을 제거할 수 있다. Specifically, the
또한, 서비스 장치(30)는 추천 결과(혹은 추천 아이템 리스트)에 속하지 않은 임의의 아이템을 추천 아이템으로 추가할 수 있다. 예를 들어, 웹 서버(20)의 관리자가 계산된 추천 아이템 리스트의 결과가 마음에 들지 않는 경우 혹은 특정 아이템에 대한 추천 아이템 리스트가 생성되지 않은 경우 등을 이유로 서비스 장치(30)는 특정 아이템을 추천 아이템으로 추천 결과(혹은 추천 아이템 리스트)에 포함시킬 수도 있다. 이 경우에도, 서비스 장치(30)는 기 생성된 추천 결과(혹은 추천 아이템 리스트)에서 추가하고자 하는 아이템을 임의로 추가하거나, 특정 아이템들로 구성된 추천 아이템 리스트를 새롭게 생성하거나 추가하고자 하는 아이템에 대한 추천 점수를 높은 값으로 변경 혹은 높은 값으로 계산되도록 변수 값을 조정할 수 있다. In addition, the
또한, 추천 결과(혹은 추천 아이템 리스트)를 구성하는 정보 항목은 앞서 표 9의 예시와 같이 추천 아이템 식별자, 추천 점수 및 추천 알고리즘 정보만을 포함할 수도 있으나, 서비스 장치(30)는 이외에 추천 결과(혹은 추천 아이템 리스트)를 구성하는 새로운 정보 항목을 추가할 수도 있다. 예를 들어, 서비스 장치(30)는 추천 아이템 리스트에 추천되는 아이템 명칭, 추천되는 아이템의 썸네일에 대한 URL, 추천되는 아이템의 가격 정보 등을 포함시킬 수 있다. The information items constituting the recommendation result (or the 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
웹 서버(20)는 단말(10)이 접속하여 방문하는 웹 페이지에 표시되는 아이템에 관한 추천 아이템 리스트를 요청하기 위한 메시지를 서비스 장치(30)에 전송한다(S603). 추천 아이템 리스트 요청 메시지에는 요청하는 웹 서버(20)에 대한 서비스 식별자, 요청하는 아이템에 대한 아이템 식별자가 포함되며, 버전 정보, 메타 정보 등이 추가적으로 포함될 수 있다. The
웹 서버(20)로부터 추천 아이템 리스트 요청 메시지를 수신한 서비스 장치(30)는 요청한 아이템에 관한 추천 아이템 리스트를 추출하고(S605), 추출한 추천 아이템 리스트를 웹 서버(20)에 전송한다(S607). Upon receiving the recommended item list request message from the
여기서, 서비스 장치(30)는 웹 서버(20)에 생성된 추천 아이템 리스트의 포맷(즉, JSON 포맷)으로 전송할 수도 있으나, 아이프레임(iframe) 포맷으로 추천 아이템 리스트를 전송할 수도 있다. JSON 포맷으로 추천 아이템 리스트를 제공하는 경우, 웹 서버(20)에서 별도의 디자인을 추가한 후, 웹 페이지 상에 추천 아이템 리스트를 제공해야 하는 반면, iframe의 경우 웹 서버(20)에서 추가적인 처리 없이 웹 페이지에 바로 적용할 수 있는 장점이 있다. Here, the
먼저, JSON 포맷으로 추천 아이템 리스트를 전송하는 경우를 예를 들면, 웹 서버(20)는 "http://api.recopick.com/VERSION/recommend/SERVICE_ID/ITEM_ID?OPTIONS"와 같은 포맷으로 서비스 장치(30)에 추천 아이템 리스트를 요청할 수 있다. 이와 같이, JSON 포맷으로 추천 아이템 리스트를 요청하는 경우, 추천 아이템 리스트 요청 메시지에는 서비스 식별자, 아이템 식별자와 함께 버전 정보 및 기타 메타 정보 등이 포함될 수 있다. First, for example, when the recommendation item list is transmitted in the JSON format, the
예를 들어, 웹 서버(20)가 "http://api.recopick.com/2/recommend/1/11057?field=meta"와 같이 서비스 장치(30)에 추천 아이템 리스트를 요청한 경우, 요청하는 추천 아이템 리스트의 버전은 2이고, 서비스 식별자는 1이고, 요청하는 아이템의 식별자는 11057이며, 메타 정보를 추가로 요청한 경우를 나타낸다. 이러한 요청에 대한 응답으로 서비스 장치(30)가 웹 서버(20)에 제공하는 추천 아이템 리스트를 예시하면 아래 표 10과 같다. For example, if the
표 10은 JSON 포맷으로 제공되는 추천 아이템 리스트를 예시한다. Table 10 illustrates a list of recommended items provided in JSON format.
표 10을 참조하면, 추천 아이템 리스트에는 추천 아이템 식별자("id"), 추천 점수("score") 및 추천 알고리즘 정보("method")가 포함될 수 있다. 또한, 표 10의 경우 기타 메타 정보를 추가로 요청한 경우에 서비스 장치(30)가 추가적인 메타 정보를 추천 아이템 리스트에 포함시킨 경우를 예시하고 있으며, 추가 메타 정보로 추천 아이템의 이미지 정보("image"), 추천 아이템 명칭 정보("title")가 해당된다. Referring to Table 10, the recommended item list may include a recommendation item identifier ("id"), a recommendation score ("score"), and recommendation algorithm information ("method"). In the case of Table 10, the
다음으로, 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, when the recommendation item list is transmitted in the iframe format, the
예를 들어, 웹 서버(20)가 "http://api.recopick.com/2/banner/6/show?item_id=59&direction=horizontal&count=4"와 같이 서비스 장치(30)에 추천 아이템 리스트를 요청한 경우, 요청하는 추천 아이템 리스트의 버전은 2이고, 서비스 식별자는 6이고, 요청하는 아이템의 식별자는 59이고, 프레임의 방향으로 수평 방향이고, 추천 아이템의 개수는 4인 경우를 나타낸다.For example, when the
또한, 예를 들어, 웹 서버(20)가 "http://api.recopick.com/2/banner/6/show?item_id=59&direction=vertical&count=2 "와 같이 서비스 장치(30)에 추천 아이템 리스트를 요청한 경우, 요청하는 추천 아이템 리스트의 버전은 2이고, 서비스 식별자는 6이고, 요청하는 아이템의 식별자는 59이고, 프레임의 방향으로 수직 방향이고, 추천 아이템의 개수는 2인 경우를 나타낸다. Also, for example, if the
이러한 요청에 대한 응답으로 서비스 장치(30)가 웹 서버(20)에 제공하는 추천 아이템 리스트를 예시하면 아래 도 8과 같다.A recommendation item list provided by the
도 7은 본 발명의 일 실시예에 따른 아이프레임(iframe) 포맷으로 제공되는 추천 아이템 리스트를 예시하는 도면이다. 7 is a diagram illustrating a recommendation item list 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개이고 수직 방향으로 표시되는 추천 아이템 리스트를 예시한다. 7A shows a case where the recommended number of recommendation items provided by the
도 8은 본 발명의 일 실시예에 따른 아이프레임(iframe) 포맷으로 제공되는 추천 아이템 리스트가 웹 페이지 상에 표시되는 예시를 나타낸다. 8 shows an example in which a recommendation item list provided in an iframe format according to an embodiment of the present invention is displayed on a web page.
도 8을 참조하면, 서비스 장치(30)가 제공하는 iframe 포맷의 추천 아이템 리스트는 앞서 도 7과 같이 서비스 장치(30)가 제공한 형태로 웹 서버(20)의 웹 페이지 상에 동일하게 표시될 수 있다. 따라서, 이와 같이, 서비스 장치(30)는 배너(banner) 형태로 웹 서버(20)에 추천 아이템 리스트를 제공하므로, 웹 서버(20)에서는 추가적인 데이터 처리 절차를 수행하지 않을 수 있다.Referring to FIG. 8, the recommendation item list of iframe format provided by the
한편, 도 6에서는 서비스 장치(30)가 후처리를 수행한 후 웹 서버(30)의 요청에 따라 추천 아이템 리스트를 전송하는 방법을 예시하고 있으나, 서비스 장치(30)는 웹 서버(20)로부터 추천 아이템 리스트 요청 메시지를 수신하면, 요청한 추천 아이템 리스트에 대하여 후처리를 수행한 후 후처리된 추천 아이템 리스트를 웹 서버(20)에 전송할 수도 있다. 즉, 후처리를 수행하는 단계가 S605 단계와 S607 단계 사이에서 수행될 수도 있다.
6 illustrates a method of transmitting a recommendation item list according to a request of the
서비스 장치(30)(특히, 피드백 처리부(225))는 사용자의 피드백을 수집하여 이를 추천에 반영할 수 있다(S311). The service apparatus 30 (in particular, the feedback processing unit 225) may collect the feedback of the user and reflect the feedback to the recommendation (S311).
사용자의 피드백은 사용자의 클릭률에 따라 계산될 수 있으며, 클릭률을 계산하기 위하여 추천 뷰 로그 데이터와 사용자의 추천 클릭 로그 데이터를 수집할 수 있다.The feedback of the user can be calculated according to the user's click rate, and the recommended view log data and the user's recommended click log data can be collected to calculate the click rate.
먼저, 클릭 로그 데이터를 수집하는 방법을 설명한다. First, a method of collecting click log data will be described.
첫 번째 방법으로, 사용자의 추천 아이템 리스트에 포함된 추천 아이템을 클릭 시 서비스 장치(30)로 리다이렉트되어 사용자의 클릭 로그 데이터를 획득할 수 있으며, 이에 관하여 도 9를 참조하여 설명한다. As a first method, when the recommendation item included in the recommendation item list of the user is clicked, the user is redirected to the
도 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 정보를 가질 수 있다. 9, when the terminal 10 selects (e.g., clicks or touches) a specific recommendation item included in a recommended item list displayed on a web page of the web server 20 (S901) , The terminal 10 requests connection to the
예를 들어, 추천 아이템 리스트에 속하는 각 추천 아이템(들)은 "http://api.recopick.com/VERSION/banner/SERVICE_ID/pick?source=SOURCE_ITEM_ID&pick=TARGET_ITEM_ID&method=ALGORITHM"와 같은 포맷의 링크 URL을 가질 수 있다. 각 추천 아이템이 가지는 링크 URL에는 해당 추천 아이템이 속한 추천 아이템 리스트의 버전 정보, 서비스 식별자, 소스 아이템(추천 아이템이 표시되는 대상이 되는 아이템) 식별자, 타겟 아이템(사용자에 의하여 선택되어 클릭된 추천 아이템) 식별자, 선택된 추천 아이템을 계산한 알고리즘 정보 등이 포함될 수 있다. For example, each referral item (s) in the referral item list may include 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"Lt; / RTI > The link URL of each recommendation item includes version information of a recommendation item list to which the recommendation item belongs, a service identifier, a source item (an item to be a target item for which a recommendation item is displayed), a target item (a recommendation item ) 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 the item 59 of the
서비스 장치(30)는 서비스 장치(30)에 접속을 시도하는 단말(10)에 대한 클릭 로그 데이터를 저장한다(S905). 앞서 설명한 바와 같이 추천 아이템 링크 URL에는 해당 추천 아이템이 속한 추천 아이템 리스트의 버전 정보, 서비스 식별자, 소스 아이템 식별자, 타겟 아이템 식별자, 선택된 추천 아이템을 계산한 알고리즘 정보 등이 포함될 수 있으므로, 서비스 장치(30)는 단말(10)이 접속을 시도하는 URL을 통해 어떠한 웹 서버(20)에서 어떠한 아이템에서 어떠한 추천 아이템이 사용자에 의하여 클릭되었는지 확인할 수 있으며, 해당 추천 아이템은 어떠한 추천 알고리즘에 의하여 계산되었는지 확인할 수 있다. The
서비스 장치(30)는 해당 단말(10)이 웹 서버(20)로 재접속할 수 있도록 리다이렉트 URL을 해당 단말(10)에 전송한다(S907). 예를 들어, 서비스 장치(30)는 단말(10)이 선택한 132번 아이템을 표시하는 웹 페이지로 접속할 수 있도록 "http://hellonature.net/goods/132?recopick=2"와 같은 URL을 단말(10)에 전송할 수 있다. The
이를 수신한 단말(10)은 수신한 리다이렉트 URL을 통해 웹 서버(20)에 접속한다(S909).The receiving
도 9의 예시와 같은 방법을 이용함으로써 사용자가 추천 아이템을 클릭할 때마다 사용자의 클릭 정보가 서비스 장치(30)에 전송되므로, 서비스 장치(30)는 실시간으로 추천 아이템에 대한 사용자의 클릭 로그 데이터를 저장할 수 있다. 9, the click information of the user is transmitted to the
두 번째 방법으로, 추천 아이템의 링크를 구성하는 변수에 미리 정해진 특정 파라미터를 추가하고, S301 단계에서 수집된 사용자 로그 데이터에서 사용자의 방문 URL 정보에 상술한 미리 정해진 특정 파라미터가 존재하면, 이를 추천에 의한 클릭으로 판단할 수 있다. 즉, 사용자 로그 데이터에서 방문 URL에 미리 정해진 파라미터가 포함되어 있는 데이터를 추출하여 클릭 로그 데이터로 저장할 수 있다. 예를 들어, 추천 아이템의 링크 변수에 recopick=METHOD를 추가하고, 사용자 로그 데이터에서 사용자의 방문 URL에 recopick이 존재한다면 이를 추천에 의한 클릭으로 판단할 수 있다. 그리고, 참조 주소(Referrer) 정보에서 아이템 식별자(ITEM_ID)를 확인한 후, 이를 이용하여 소스 아이템 식별자를 확인할 수 있다. 다만, 참조 주소 정보가 서비스 장치(30)의 URL을 가지는 경우에는, 이는 앞서 첫 번째 방법에서 이미 클릭 로그 데이터로 집계된 경우이므로 추천 클릭으로 판단하지 않을 수 있다. As a second method, a predetermined parameter is added to a variable constituting a link of the recommendation item, and if the predetermined specific parameter described above exists in the user's visit URL information in the user log data collected in step S301, It can be judged by a click. That is, data including a predetermined parameter in the visit URL can be extracted from the user log data and stored as click log data. For example, if recopick = METHOD is added to the link variable of the recommendation item and the recopick exists in the user's visit URL in the user log data, it can be judged as a recommendation click. After confirming the item identifier (ITEM_ID) in the reference address (Referrer) information, the source item identifier can be confirmed using the item identifier (ITEM_ID). However, when the reference address information has the URL of the
앞서 설명한 서비스 장치(30)는 첫 번째 방법 및/또는 두 번째 방법을 이용하여 클릭 로그 데이터를 수집하고, 수집한 클릭 로그 데이터를 저장할 수 있다. The
표 11은 클릭 로그 데이터의 포맷을 예시한다. Table 11 illustrates the format of the click log data.
(LOGTYPE)Log type
(LOGTYPE)
(VERSION)version
(VERSION)
(CLICK ITEM)Click item
(CLICK ITEM)
(SOURCE ITEM)Source Item
(SOURCE ITEM)
(METHOD)algorithm
(METHOD)
(TIMESTAMP)Time
(TIMESTAMP)
표 11을 참조하면, 클릭 로그 데이터는 로그 타입(클릭 혹은 뷰), 추천 아이템 리스트에 대한 버전 정보, 서비스 식별자, 클릭 아이템 정보, 소스 아이템 정보, 추천 알고리즘, 클릭 시각 정보 등을 포함할 수 있다. Referring to Table 11, the click log data may include a log type (click or view), version information for a recommended item list, service identifier, click item information, source item information, recommendation algorithm, click time information, and the like.
다음으로, 뷰 로그 데이터를 수집하는 방법을 살펴보면, 서비스 장치(30)는 웹 서버(20)가 추천 아이템 리스트를 요청할 때마다 제공하는 추천 아이템 리스트를 통해 뷰 로그 데이터를 획득하여 저장할 수 있다. Next, the method of collecting view log data will be described. The
표 12는 뷰 로그 데이터의 포맷을 예시한다. Table 12 illustrates the format of view log data.
(LOGTYPE)Log type
(LOGTYPE)
(VERSION)version
(VERSION)
(CLICK ITEM)Click item
(CLICK ITEM)
(SOURCE ITEM)Source Item
(SOURCE ITEM)
(RECOMMENDED LIST
)
(ITEM_ID:METHOD, ITEM_ID:METHOD, ITEM_ID:METHOD)Recommended list
RECOMMENDED LIST
)
(ITEM_ID: METHOD, ITEM_ID: METHOD, ITEM_ID: METHOD)
(TIMESTAMP)Time
(TIMESTAMP)
표 12를 참조하면, 클릭 로그 데이터는 로그 타입(클릭 혹은 뷰), 추천 아이템 리스트에 대한 버전 정보, 서비스 식별자, 클릭 아이템 정보, 소스 아이템 정보, 추천 리스트, 추천 알고리즘, 클릭 시각 정보 등을 포함할 수 있다. Referring to Table 12, the click log data includes a log type (click or view), version information for a recommended item list, service identifier, click item information, source item information, recommendation list, recommendation algorithm, .
이와 같이, 클릭 로그 데이터와 뷰 로그 데이터를 수집한 서비스 장치(30)는 클릭 로그 데이터와 뷰 로그 데이터를 이용하여 클릭률을 계산할 수 있다. 서비스 장치(30)는 날짜 별로 특정 아이템에 대하여 노출된 뷰 횟수를 모두 합산하고, 또한 사용자의 클릭이 일어난 횟수를 합산한 다음, 각 소스 아이템과 각 추천 아이템 간의 클릭률을 계산할 수 있다.In this way, the
표 13은 클릭률을 예시한다. Table 13 illustrates the click rate.
(DATE)date
(DATE)
(ALGORITHM)algorithm
(ALGORITHM)
(SOURCE_ITEM_ID)Source Item Identifier
(SOURCE_ITEM_ID)
(RECOMMENDED_ITEM_ID)Recommended Item Identifier
(RECOMMENDED_ITEM_ID)
(CLICK COUNT)Click count
(CLICK COUNT)
(VIEW COUNT)View count
(VIEW COUNT)
(CLICK RATIO)Click rate
(CLICK RATIO)
표 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, the click rate of Algorithm 2 for Item 123 is 20%, and the click rate for 20XX YYYYZZZZ day is (4 +11 + 0 + 7) / 100 = 22% 2 + 3 + 0 + 5) / 100 = 10%.
서비스 장치(30)는 각 소스 아이템과 각 추천 아이템 간의 클릭률을 계산한 후, 일정 기간 동안 계속하여 클릭률이 특정 임계값 이하(혹은 미만)인 경우 추천 금지된 아이템으로 지정할 수 있다. 즉, 아이템 A에 대한 추천 아이템 B가 7일 동안 1% 미만인 경우, 아이템 B는 아이템 A에 대한 추천 아이템 리스트에서 제거할 수 있다. 또한, 서비스 장치(30)는 각 소스 아이템과 각 추천 아이템 간의 클릭 카운트 횟수가 일정 기간 동안 특정 임계값 이하(혹은 미만)인 경우 추천 금지된 아이템으로 지정할 수도 있다. 이와 같이 추천 금지된 아이템을 추천 결과(혹은 추천 아이템 리스트)에서 제거할 때, 서비스 장치(30)는 기 생성된 추천 결과(혹은 추천 아이템 리스트)에서 삭제하고자 하는 아이템을 임의로 삭제하거나, 해당 아이템에 대한 추천 점수를 낮은 값으로 변경 혹은 낮은 값이 계산되도록 변수 값을 조정하여 추천 결과(혹은 추천 아이템 리스트)에서 추천 금지된 아이템을 제거할 수 있다.The
이러한 피드백 처리 과정은 서비스 장치(30)에서 자동으로 수행될 수 있다. 또한, 서비스 장치(30)는 웹 서버(20)에서 서비스하는 아이템 별로 해당 아이템의 클릭률 정보와 해당 아이템과 추천 아이템 간의 클릭율 정보 혹은 클릭 횟수 정보를 웹 서버(20)에 제공하고 웹 서버(20)로부터의 요청에 의하여 서비스 장치(30)에서 피드백 처리 과정이 수행될 수도 있다. This feedback processing process can be performed automatically in the
도 10은 본 발명의 일 실시예에 따른 각 추천 아이템 별 클릭률을 예시하는 도면이다. 10 is a diagram illustrating a click rate for each recommendation 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)는 선택된 추천 아이템의 추천 점수(스코어)와 무관하게 해당 추천 아이템을 가장 우선적(예를 들어, 제일 상단 혹은 제일 좌측에 위치)으로 표시하도록 추천 아이템 리스트를 생성할 수 있다. 10, the
또한, 서비스 장치(30)는 클릭률 정보 내지 클릭 횟수 정보를 고려하여 자동으로 웹 서버(20) 별로 가장 적합한 알고리즘을 선택할 수 있다. In addition, the
먼저, 서비스 장치(30)는 웹 서버(20)에서 제공하는 서비스마다 최고의 효율이 좋은(즉 클릭률이 가장 높거나 클릭 횟수가 가장 높은) 알고리즘을 적용시키기 위해, 사용자 로그 데이터를 특정 조건 혹은 임의로 복수의 그룹으로 구분하고, 각 그룹별로 서로 다른 알고리즘으로 계산된 추천 아이템 리스트를 제공한다. 예를 들어, 서비스 장치(30)는 사용자 로그 데이터를 임의로 A, B그룹으로 나눈 다음(예를 들어, 사용자 식별자가 홀수인 경우 A 그룹, 짝수인 경우 B 그룹), A 그룹에는 알고리즘 1로 추천을 계산하고, B 그룹에는 알고리즘 2로 추천을 계산하고 추천 아이템 리스트를 웹 서버(20) 제공할 수 있다. 또한, 서비스 장치(20)는 사용자 로그 데이터에서 웹 브라우저의 사용자 에이전트 정보를 이용하여 이동 단말기를 통해 웹 서버(20)에 접속한 그룹과 고정 단말기를 통해 웹 서버(20)에 접속한 그룹으로 사용자 로그 데이터를 구분하여 각각 상이한 알고리즘을 통해 추천을 계산하여 추천 아이템 리스트를 웹 서버(20) 제공할 수 있다.First, the
그리고, 서비스 장치(30)는 각 그룹 별로 클릭률을 별도로 계산하여 클릭률이 가장 높은 알고리즘 혹은 클릭 횟수가 가장 높은 알고리즘을 해당 서비스의 알고리즘으로 선택하여 추천을 계산할 수 있다. 이러한 피드백 처리 과정 또한 서비스 장치(30)에서 자동으로 수행될 수 있으며, 또한 서비스 장치(30)는 웹 서버(20)에 사용자 그룹 별(즉, 알고리즘 별) 클릭율 정보 혹은 클릭 횟수 정보를 웹 서버(20)에 제공하고 웹 서버(20)로부터의 요청에 의하여 서비스 장치(30)에서 피드백 처리 과정이 수행될 수도 있다. Then, the
도 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)에 대한 추천 알고리즘으로 선택할 수 있다. 11, since the recommendation rate for the algorithm 1 applied to the user group A is continuously higher than the recommendation rate for the algorithm 2 for a certain period of time, the
본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(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 in accordance with the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof. In the case of 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) 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 an implementation by firmware or software, an embodiment of the present invention may be embodied in the form of a module, a procedure, a function, and the like for performing the functions or operations described above, Lt; / RTI > Here, the recording medium may include program commands, data files, data structures, and the like, alone or in combination. Program instructions to be recorded on a recording medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. For example, the recording medium may be an optical recording medium such as a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, a compact disk read only memory (CD-ROM), a digital video disk (DVD) Includes a hardware device that is specially configured to store and execute program instructions such as a magneto-optical medium such as a floppy disk and a ROM, a random access memory (RAM), a flash memory, do. Examples of program instructions may include machine language code such as those generated by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. 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.
이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으나, 여기에 개시된 실시예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, It will be apparent to those skilled in the art. Furthermore, although specific terms are used in this specification and the drawings, they are used in a generic sense only to facilitate the description of the invention and to facilitate understanding of the invention, and are not intended to limit the scope of the invention. Accordingly, the foregoing detailed description is to be considered in all respects illustrative and not restrictive. The scope of the present invention should be determined by rational interpretation of the appended claims, and all changes within the scope of equivalents of the present invention are included in the scope of the present invention.
아울러, 본 발명에 따른 장치나 단말은 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다. 나아가 본 발명에 따른 장치는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현될 수 있으며, 혹은 단일의 컴퓨터 장치에서 구현될 수도 있다.In addition, a device or terminal according to the present invention may be driven by instructions that cause one or more processors to perform the functions and processes described above. Such instructions may include, for example, interpreted instructions such as script commands, such as JavaScript or ECMAScript commands, or other instructions stored in executable code or computer readable media. Further, the apparatus according to the present invention may be implemented in a distributed manner across a network, such as a server farm, or may be implemented in a single computer device.
또한, 본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.Further, a computer program (also known as a program, software, software application, script or code) that is loaded on the apparatus according to the present invention and which implements the method according to the present invention includes a compiled or interpreted language, a priori or procedural language , And may be deployed in any form including standalone programs or modules, components, subroutines, or other units suitable for use in a computer environment. A computer program does not necessarily correspond to a file in the file system. The program may be stored in a single file provided to the requested program, or in multiple interactive files (e.g., a file storing one or more modules, subprograms, or portions of code) (E.g., one or more scripts stored in a markup language document). A computer program may be deployed to run on multiple computers or on one computer, located on a single site or distributed across multiple sites and interconnected by a communications network.
아울러, 본 발명에 따른 실시예를 설명하는데 있어서, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.Moreover, in describing the embodiments according to the present invention, operations are depicted in the drawings in a particular order, but it is to be understood that they should perform such operations in that particular order or sequential order shown in order to obtain the desired result, Should not be understood as being performed. In certain cases, multitasking and parallel processing may be advantageous. Also, 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.
본 발명의 추천 결과를 제공하는 방안은 다양한 유/무선 통신 시스템에 적용하는 것이 가능하다.The method of providing the recommendation result of the present invention can be applied to various wired / wireless communication systems.
10: 단말 20: 웹 서버 30: 서비스 장치
40: 네트워크 210: 통신부 220: 제어부
221: 데이터 수집부 222: 데이터 처리부 223: 추천 계산부
224: 추천 결과 제공부 225: 피드백 처리부 230: 저장부10: terminal 20: web server 30: service device
40: network 210: communication unit 220:
221: Data collecting unit 222: Data processing unit 223:
224: Recommendation result providing unit 225: Feedback processing unit 230:
Claims (24)
사용자 로그 데이터, 추천 결과를 저장하는 저장부; 및
웹 사이트에 삽입된 스크립트(script)를 통해 상기 웹 사이트에 접속한 단말로부터 상기 웹 사이트와 관련된 상기 사용자 로그 데이터를 수집하고, 상기 사용자 로그 데이터를 기반으로 추천 알고리즘을 이용하여 상기 웹 사이트에서 서비스하는 각 소스 아이템과 관련된 하나 이상의 추천 아이템에 대한 추천 결과를 산출하고, 상기 웹 사이트의 웹 서버로부터 수신한 추천 아이템 리스트 요청에 대한 응답으로 상기 추천 결과에서 상기 요청된 소스 아이템과 관련된 추천 아이템 리스트를 추출하여 상기 웹 서버에 전송하는 제어부를 포함하며,
상기 사용자 로그 데이터는 상기 웹 사이트의 도메인, 상기 단말의 방문 URL(Uniform Resource Locator), 사용자 식별자 및 방문 시각 정보를 포함하는, 서비스 장치.A communication unit for transmitting and receiving data;
A storage unit for storing user log data and recommendation results; And
The method includes collecting the user log data related to the web site from a terminal connected to the web site through a script inserted in the web site, and using the recommendation algorithm based on the user log data, Extracting a recommended item list related to the requested source item from the recommendation result in response to a recommendation item list request received from a web server of the web site, To the web server,
Wherein the user log data includes a domain of the website, a visit URL (Uniform Resource Locator) of the terminal, a user identifier, and visit time information.
상기 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 소스 아이템과 관련된 추천 아이템에 대한 클릭률을 계산하는, 서비스 장치.The apparatus of claim 1,
And calculates a click rate for a recommendation item related to each source item through click log data and view log data for the recommendation item.
상기 클릭률이 일정 기간 동안 계속하여 임계값 미만인 추천 아이템을 상기 추천 결과에서 제외하는, 서비스 장치.3. The apparatus of claim 2,
And excludes a recommendation item in which the click rate is continuously lower than a threshold value for a predetermined period of time from the recommendation result.
상기 사용자 로그 데이터를 미리 정해진 조건 혹은 임의로 복수의 그룹으로 구분하고, 각 그룹 별로 서로 다른 추천 알고리즘을 이용하여 상기 추천 결과를 산출하는, 서비스 장치.The apparatus of claim 1,
Divides the user log data into predetermined conditions or arbitrarily into a plurality of groups, and calculates the recommendation result by using different recommendation algorithms for each group.
상기 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 상기 각 그룹 별로 클릭율을 계산하고, 상기 클릭율이 가장 높은 그룹에 이용된 추천 알고리즘으로 상기 추천 결과를 산출하는, 서비스 장치.5. The apparatus of claim 4,
Wherein the click rate calculation unit calculates the click rate for each group through the click log data and the view log data for the recommendation item and calculates the recommendation result with a recommendation algorithm used for the group having the highest click rate.
상기 서비스 장치로 연결되는 상기 추천 아이템의 링크를 통해 상기 단말이 접속되면, 상기 단말의 접속 URL을 통해 상기 추천 아이템에 대한 클릭 로그 데이터를 획득하는, 서비스 장치.The apparatus of claim 1,
And acquires click log data for the recommendation item through the connection URL of the terminal when the terminal is connected through the link of the recommendation item connected to the service device.
상기 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)에서 미리 정해진 파라미터 값이 포함되어 있는 사용자 데이터를 추출하여 상기 추천 아이템에 대한 클릭 로그 데이터로 획득하는, 서비스 장치.The apparatus of claim 1,
Extracts user data including a predetermined parameter value from a visit URL (Uniform Resource Locator) included in the user log data, and obtains the extracted user data as click log data for the recommendation item.
상기 웹 서버의 상기 추천 아이템 리스트 요청이 있으면, 상기 추천 아이템 리스트를 통해 상기 추천 아이템에 대한 뷰 로그 데이터를 획득하는, 서비스 장치.The apparatus of claim 1,
And acquires view log data for the recommendation item through the recommendation item list if the recommendation item list request from the web server is received.
상기 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)로부터 상기 방문 URL 상에 표시되는 아이템 정보 및 상기 방문 URL에서 상기 단말의 동작과 관련된 동작 정보를 추출하는, 서비스 장치.The apparatus of claim 1,
And extracts item information displayed on the visit URL from a visit URL (Uniform Resource Locator) included in the user log data and operation information related to the operation of the terminal on the visit URL.
상기 각 소스 아이템 별로 상기 추천 결과를 구분하여 저장하되, 상기 웹 사이트를 구분하기 위한 서비스 식별자, 상기 소스 아이템에 대한 아이템 식별자 및 상기 소스 아이템과 관련된 추천 아이템에 대한 추천 아이템 식별자를 합한 문자열에 해쉬(hash) 함수를 적용하여 계산한 값을 상기 추천 결과와 함께 저장하는, 서비스 장치.The apparatus of claim 1,
A recommendation result for each source item is separately stored, 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 a recommendation item related to the source item hash function, and stores the calculated value together with the recommendation result.
상기 요청된 소스 아이템과 관련된 추천 아이템 리스트를 JSON(JavaScript Object Notation) 포맷 또는 아이프레임(iframe) 포맷으로 전송하는, 서비스 장치.The apparatus of claim 1,
And transmits a recommendation item list related to the requested source item in a JavaScript Object Notation (JSON) format or an iFrame format.
상기 사용자 식별자는 상기 단말의 웹 브라우저 쿠키에 의하여 생성되며, 임의의 숫자와 생성 시각을 조합하여 생성되는, 서비스 장치.The method according to claim 1,
Wherein the user identifier is generated by a web browser cookie of the terminal, and is generated by combining an arbitrary number and a generation time.
상기 서비스 장치가 상기 사용자 로그 데이터를 기반으로 추천 알고리즘을 이용하여 상기 웹 사이트에서 서비스하는 각 소스 아이템과 관련된 하나 이상의 추천 아이템에 대한 추천 결과를 산출하는 단계; 및
상기 서비스 장치가 상기 웹 사이트의 웹 서버로부터 수신한 추천 아이템 리스트 요청에 대한 응답으로 상기 추천 결과에서 상기 요청된 소스 아이템과 관련된 추천 아이템 리스트를 추출하여 상기 웹 서버에 전송하는 단계를 포함하며,
상기 사용자 로그 데이터는 상기 웹 사이트의 도메인, 상기 단말의 방문 URL(Uniform Resource Locator), 사용자 식별자 및 방문 시각 정보를 포함하는, 추천 아이템 제공 방법.Collecting user log data related to the web site from a terminal connected to the web site through a script inserted in the web site by the service apparatus;
Calculating a recommendation result for one or more recommendation items related to each source item served by the service apparatus using the recommendation algorithm based on the user log data; 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, and transmitting the recommendation item list to the web server;
Wherein the user log data includes a domain of the website, a visit URL (Uniform Resource Locator) of the terminal, a user identifier, and visit time information.
상기 서비스 장치가 상기 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 소스 아이템과 관련된 추천 아이템에 대한 클릭률을 계산하는 단계를 더 포함하는, 추천 아이템 제공 방법.15. The method of claim 14,
Further comprising the step of the service device calculating a click rate for a recommendation item associated with each source item via click log data and view log data for the recommendation item.
상기 서비스 장치가 상기 클릭률이 일정 기간 동안 계속하여 임계값 미만인 추천 아이템을 상기 추천 결과에서 제외하는 단계를 더 포함하는, 추천 아이템 제공 방법.16. The method of claim 15,
Further comprising the step of the service device excluding a recommendation item in which the click rate is continuously lower than a threshold value for a predetermined period of time from the recommendation result.
상기 서비스 장치가 상기 사용자 로그 데이터를 미리 정해진 조건 혹은 임의로 복수의 그룹으로 구분하고, 각 그룹 별로 서로 다른 추천 알고리즘을 이용하여 상기 추천 결과를 산출하는, 추천 아이템 제공 방법.15. The method of claim 14, wherein the calculating the recommendation result comprises:
Wherein the service apparatus divides the user log data into a predetermined condition or a plurality of groups, and calculates the recommendation result using a different recommendation algorithm for each group.
상기 서비스 장치가 상기 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 상기 각 그룹 별로 클릭율을 계산하고, 상기 클릭율이 가장 높은 그룹에 이용된 추천 알고리즘으로 상기 추천 결과를 산출하는, 추천 아이템 제공 방법.18. The method according to claim 17, wherein the step of calculating the recommendation result comprises:
Wherein the service device calculates a click rate for each group through click log data and view log data for the recommendation item and calculates the recommendation result with a recommendation algorithm used for the group having the highest click rate .
상기 서비스 장치가 상기 서비스 장치로 연결되는 상기 추천 아이템의 링크를 통해 상기 단말이 접속되면, 상기 단말의 접속 URL을 통해 상기 추천 아이템에 대한 클릭 로그 데이터를 획득하는 단계를 더 포함하는, 추천 아이템 제공 방법.15. The method of claim 14,
Further comprising the step of acquiring the click log data for the recommendation item through the connection URL of the terminal when the terminal is connected through the link of the recommendation item to which the service apparatus is connected to the service apparatus Way.
상기 서비스 장치가 상기 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)에서 미리 정해진 파라미터 값이 포함되어 있는 사용자 데이터를 추출하여 상기 추천 아이템에 대한 클릭 로그 데이터로 획득하는 단계를 더 포함하는, 추천 아이템 제공 방법.15. The method of claim 14,
Further comprising the step of the service device extracting user data including a predetermined parameter value from a visit URL (Uniform Resource Locator) included in the user log data and using the extracted user data as click log data for the recommendation item Item providing method.
상기 서비스 장치가 상기 웹 서버의 상기 추천 아이템 리스트 요청이 있으면, 상기 추천 아이템 리스트를 통해 상기 추천 아이템에 대한 뷰 로그 데이터를 획득하는 단계를 더 포함하는, 추천 아이템 제공 방법.15. The method of claim 14,
Further comprising the step of obtaining view log data for the recommendation item through the recommendation item list if the service apparatus requests the recommendation item list of the web server.
사용자 장치가 상기 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)로부터 상기 방문 URL 상에 표시되는 아이템 정보 및 상기 방문 URL에서 상기 단말의 동작과 관련된 동작 정보를 추출하는 단계를 더 포함하는, 추천 아이템 제공 방법.15. The method of claim 14,
Further comprising extracting item information displayed on the visited URL from a Uniform Resource Locator (URL) included in the user log data and operation information related to the operation of the terminal in the visited URL, Item providing method.
상기 서비스 장치가 상기 각 소스 아이템 별로 상기 추천 결과를 구분하여 저장하되, 상기 웹 사이트를 구분하기 위한 서비스 식별자, 상기 소스 아이템에 대한 아이템 식별자 및 상기 소스 아이템과 관련된 추천 아이템에 대한 추천 아이템 식별자를 합한 문자열에 해쉬(hash) 함수를 적용하여 계산한 값을 상기 추천 결과와 함께 저장하는 단계를 더 포함하는, 추천 아이템 제공 방법.15. The method of claim 14,
Wherein the service apparatus stores the recommendation result for each source item separately and stores the service identifier for identifying the website, the item identifier for the source item, and the recommendation item identifier for the recommendation item related to the source item Further comprising: storing a value calculated by applying a hash function to a string together with the recommendation result.
Priority Applications (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 |
| 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 |
Applications Claiming Priority (1)
| 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 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020160127024A Division KR101978301B1 (en) | 2016-09-30 | 2016-09-30 | Apparatus for providing recommended item |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20140131088A KR20140131088A (en) | 2014-11-12 |
| KR101678659B1 true KR101678659B1 (en) | 2016-12-06 |
Family
ID=51843622
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020130049968A Active KR101678659B1 (en) | 2013-05-03 | 2013-05-03 | Method for providing recommended item, storage medium recording program and device therefor |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR101678659B1 (en) |
| WO (1) | WO2014178536A1 (en) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102720626B1 (en) * | 2016-10-31 | 2024-10-23 | 에스케이플래닛 주식회사 | System and method for providing user profile |
| WO2018128254A1 (en) * | 2017-01-04 | 2018-07-12 | 주식회사 다이퀘스트 | Method and device for recommending usr group for new user |
| 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 |
| CN114764477B (en) * | 2021-01-15 | 2025-01-28 | 中国联合网络通信集团有限公司 | Terminal application recommendation method, cloud server, terminal, device and storage medium |
| CN118708444B (en) * | 2024-08-29 | 2024-11-22 | 中央军委政治工作部军事人力资源保障中心 | A server operation and maintenance management method and system for self-recommended operation |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101051804B1 (en) * | 2010-12-16 | 2011-07-25 | 전자부품연구원 | Preference Information Management System for Web-based Media Contents |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1484692B1 (en) * | 2003-06-04 | 2013-07-24 | Intel Corporation | 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 |
| KR101500500B1 (en) * | 2010-11-19 | 2015-03-11 | 주식회사 케이티 | Personalized content recommendation system and method |
| US8676970B2 (en) * | 2010-12-18 | 2014-03-18 | Qualcomm Incorporated | Methods and systems for managing device specific content |
-
2013
- 2013-05-03 KR KR1020130049968A patent/KR101678659B1/en active Active
-
2014
- 2014-03-26 WO PCT/KR2014/002552 patent/WO2014178536A1/en active Application Filing
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101051804B1 (en) * | 2010-12-16 | 2011-07-25 | 전자부품연구원 | Preference Information Management System for Web-based Media Contents |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2014178536A1 (en) | 2014-11-06 |
| KR20140131088A (en) | 2014-11-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101978301B1 (en) | Apparatus for providing recommended item | |
| US9298763B1 (en) | Methods for providing a profile completion recommendation module | |
| KR101678659B1 (en) | Method for providing recommended item, storage medium recording program and device therefor | |
| US10043199B2 (en) | Method, device and system for publishing merchandise information | |
| EP2092420B1 (en) | Generic online ranking system and method suitable for syndication | |
| US8249918B1 (en) | Context based content adjacency filtering | |
| US12260433B2 (en) | Systems and methods for automatically generating remarketing lists | |
| KR20190039230A (en) | Method and system for server-side rendering of native content for presentations | |
| US20210133823A1 (en) | Systems and methods for automatically managing placement of content slots in an information resource | |
| US9509548B2 (en) | Multimedia aggregation technique based on RSS feeds | |
| KR20140014664A (en) | Service method and apparatus for providing personalized news services | |
| US11082508B2 (en) | Devices, systems, and methods for tracking digital reading behavior of users | |
| CN107103062A (en) | A kind of webpage recommending method and system | |
| CN103246699A (en) | Method and device for data access control based on browser | |
| CN102629265B (en) | A kind of method and system setting up web database | |
| US20140101249A1 (en) | Systems and Methods for Managing and Presenting Information | |
| TW201112024A (en) | Requesting computer data assets | |
| US9565224B1 (en) | Methods, systems, and media for presenting a customized user interface based on user actions | |
| CN107526748A (en) | A kind of method and apparatus for identifying user and clicking on behavior | |
| WO2016101711A1 (en) | Automatic evaluation method and system for quality of experience of business network service | |
| KR102590412B1 (en) | Limit provision and display of redundant digital components on client devices | |
| US9619822B1 (en) | Method and system for identifying user propensity to access content via a communication network | |
| KR101372585B1 (en) | System and method for providing object information | |
| KR101372584B1 (en) | System and method for providing object information | |
| US9639817B2 (en) | Remote metering for panelist web usage |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20130503 |
|
| PG1501 | Laying open of application | ||
| A201 | Request for examination | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20150306 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20130503 Comment text: Patent Application |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20160226 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20160823 |
|
| PA0107 | Divisional application |
Comment text: Divisional Application of Patent Patent event date: 20160930 Patent event code: PA01071R01D |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20161116 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20161117 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration | ||
| FPAY | Annual fee payment |
Payment date: 20191015 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
Payment date: 20191015 Start annual number: 4 End annual number: 4 |
|
| PR1001 | Payment of annual fee |
Payment date: 20201020 Start annual number: 5 End annual number: 5 |
|
| PR1001 | Payment of annual fee |
Payment date: 20211020 Start annual number: 6 End annual number: 6 |
|
| PR1001 | Payment of annual fee |
Payment date: 20220928 Start annual number: 7 End annual number: 7 |
|
| PR1001 | Payment of annual fee |
Payment date: 20240919 Start annual number: 9 End annual number: 9 |