KR101978301B1 - 추천 아이템 제공을 위한 장치 - Google Patents

추천 아이템 제공을 위한 장치 Download PDF

Info

Publication number
KR101978301B1
KR101978301B1 KR1020160127024A KR20160127024A KR101978301B1 KR 101978301 B1 KR101978301 B1 KR 101978301B1 KR 1020160127024 A KR1020160127024 A KR 1020160127024A KR 20160127024 A KR20160127024 A KR 20160127024A KR 101978301 B1 KR101978301 B1 KR 101978301B1
Authority
KR
South Korea
Prior art keywords
item
recommendation
log data
user
web server
Prior art date
Application number
KR1020160127024A
Other languages
English (en)
Other versions
KR20160118195A (ko
Inventor
이채현
박소라
정헌
Original Assignee
에스케이플래닛 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이플래닛 주식회사 filed Critical 에스케이플래닛 주식회사
Priority to KR1020160127024A priority Critical patent/KR101978301B1/ko
Publication of KR20160118195A publication Critical patent/KR20160118195A/ko
Application granted granted Critical
Publication of KR101978301B1 publication Critical patent/KR101978301B1/ko

Links

Images

Classifications

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

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Databases & Information Systems (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명에서는 추천 아이템 제공을 위한 장치가 개시된다. 구체적으로, 웹 사이트에 삽입된 스크립트(script)를 통해 웹 사이트에 접속한 단말로부터 웹 사이트와 관련된 사용자 로그 데이터를 수집하고, 사용자 로그 데이터를 기반으로 추천 알고리즘을 이용하여 웹 사이트에서 서비스하는 각 소스 아이템과 관련된 하나 이상의 추천 아이템에 대한 추천 결과를 산출하고, 웹 사이트의 웹 서버로부터 수신한 추천 아이템 리스트 요청에 대한 응답으로 추천 결과에서 요청된 소스 아이템과 관련된 추천 아이템 리스트를 추출하여 웹 서버에 전송한다.

Description

추천 아이템 제공을 위한 장치 {Apparatus for providing recommended item}
본 발명은 추천 아이템 제공 방법에 관한 것으로서, 보다 상세하게 웹 사이트에서 서비스하는 아이템과 관련된 다른 아이템을 추천하기 위한 추천 아이템 제공을 위한 장치에 관한 것이다.
인터넷 사용이 보편화되면서 사용자들은 인터넷을 통하여 뉴스, 지식 문서, 게임, 동영상 등 다양한 분야와 관련된 컨텐츠를 획득할 수 있게 되었다. 또한, 많은 서비스 업체들이 쇼핑몰을 개설하고 사용자들에게 다양하고 막대한 양의 상품, 서비스들을 제공하고 있다.
다만, 인터넷을 통해 획득할 수 있는 정보, 상품, 서비스 등은 기하급수적으로 증가하고 있기 때문에, 소비자가 자신이 진정으로 희망하는 정보나 상품을 찾으려면 많은 시간이 필요하다. 이에 따라 각종 인터넷 사이트에서는 방문한 사용자에게 관련 동영상 추천, 상품 추천 등 적절한 추천 정보를 제공하는 서비스를 제공하고 있으며, 추천 시스템을 솔루션으로 제공하는 업체들도 존재한다. 하지만, 이러한 추천 시스템을 도입하기 위해서는, 기본적으로 대용량 데이터를 처리할 수 있는 다수의 서버가 필요하며, 또한 추천 결과를 실제 서비스에 연동하기 위한 추가 개발 또한 필요하다.
한국공개특허 10-2010-0091669 A, 2010년 08월 19일 공개 (명칭: 전자상거래 서비스에서의 개인화 추천 시스템)
본 발명의 목적은 각종 컨텐츠, 상품 내지 서비스를 제공하는 웹 사이트에 별도의 추가 개발 없이 자체 서비스에 바로 적용이 가능한 추천 아이템 제공을 위한 장치를 제안한다.
또한, 본 발명의 목적은 사용자로부터 발생되는 피드백을 추천 결과에 반영함으로써 보다 적합한 아이템을 추천할 수 있는 추천 아이템 제공을 위한 장치를 제안한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상은, 서비스 장치에 있어서, 데이터 송수신을 위한 통신부, 사용자 로그 데이터, 추천 결과를 저장하는 저장부 및 웹 사이트에 삽입된 스크립트(script)를 통해 웹 사이트에 접속한 단말로부터 웹 사이트와 관련된 사용자 로그 데이터를 수집하고, 사용자 로그 데이터를 기반으로 추천 알고리즘을 이용하여 웹 사이트에서 서비스하는 각 소스 아이템과 관련된 하나 이상의 추천 아이템에 대한 추천 결과를 산출하고, 웹 사이트의 웹 서버로부터 수신한 추천 아이템 리스트 요청에 대한 응답으로 추천 결과에서 요청된 소스 아이템과 관련된 추천 아이템 리스트를 추출하여 웹 서버에 전송하는 제어부를 포함한다.
바람직하게, 제어부는, 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 소스 아이템과 관련된 추천 아이템에 대한 클릭률을 계산할 수 있다.
바람직하게, 제어부는, 클릭률이 일정 기간 동안 계속하여 임계값 미만인 추천 아이템을 추천 결과에서 제외할 수 있다.
바람직하게, 제어부는, 사용자 로그 데이터를 미리 정해진 조건 혹은 임의로 복수의 그룹으로 구분하고, 각 그룹 별로 서로 다른 추천 알고리즘을 이용하여 추천 결과를 산출할 수 있다.
바람직하게, 제어부는, 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 그룹 별로 클릭율을 계산하고, 클릭율이 가장 높은 그룹에 이용된 추천 알고리즘으로 추천 결과를 산출할 수 있다.
바람직하게, 제어부는, 서비스 장치로 연결되는 추천 아이템의 링크를 통해 단말이 접속되면, 단말의 접속 URL을 통해 추천 아이템에 대한 클릭 로그 데이터를 획득할 수 있다.
바람직하게, 제어부는, 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)에서 미리 정해진 파라미터 값이 포함되어 있는 사용자 데이터를 추출하여 추천 아이템에 대한 클릭 로그 데이터로 획득할 수 있다.
바람직하게, 제어부는, 상 웹 서버의 추천 아이템 리스트 요청이 있으면, 추천 아이템 리스트를 통해 추천 아이템에 대한 뷰 로그 데이터를 획득할 수 있다.
바람직하게, 제어부는, 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)로부터 방문 URL 상에 표시되는 아이템 정보 및 방문 URL에서 단말의 동작과 관련된 동작 정보를 추출할 수 있다.
바람직하게, 제어부는, 각 소스 아이템 별로 추천 결과를 구분하여 저장하되, 웹 사이트를 구분하기 위한 서비스 식별자, 소스 아이템에 대한 아이템 식별자 및 소스 아이템과 관련된 추천 아이템에 대한 추천 아이템 식별자를 합한 문자열에 해쉬(hash) 함수를 적용하여 계산한 값을 추천 결과와 함께 저장할 수 있다.
바람직하게, 제어부는, 요청된 소스 아이템과 관련된 추천 아이템 리스트를 JSON(JavaScript Object Notation) 포맷 또는 아이프레임(iframe) 포맷으로 전송할 수 있다.
바람직하게, 사용자 로그 데이터는 웹 사이트의 도메인, 단말의 방문 URL(Uniform Resource Locator), 사용자 식별자 및 방문 시각 정보를 포함할 수 있다.
바람직하게, 사용자 식별자는 단말의 웹 브라우저 쿠키에 의하여 생성되며, 임의의 숫자와 생성 시각을 조합하여 생성될 수 있다.
본 발명의 다른 양상은, 추천 아이템 제공 방법에 있어서, 서비스 장치가 웹 사이트에 삽입된 스크립트(script)를 통해 웹 사이트에 접속한 단말로부터 웹 사이트와 관련된 사용자 로그 데이터를 수집하는 단계, 서비스 장치가 사용자 로그 데이터를 기반으로 추천 알고리즘을 이용하여 웹 사이트에서 서비스하는 각 소스 아이템과 관련된 하나 이상의 추천 아이템에 대한 추천 결과를 산출하는 단계 및 서비스 장치가 웹 사이트의 웹 서버로부터 수신한 추천 아이템 리스트 요청에 대한 응답으로 추천 결과에서 요청된 소스 아이템과 관련된 추천 아이템 리스트를 추출하여 웹 서버에 전송하는 단계를 포함한다.
바람직하게, 서비스 장치가 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 소스 아이템과 관련된 추천 아이템에 대한 클릭률을 계산하는 단계를 더 포함할 수 있다.
바람직하게, 서비스 장치가 클릭률이 일정 기간 동안 계속하여 임계값 미만인 추천 아이템을 추천 결과에서 제외하는 단계를 더 포함할 수 있다.
바람직하게, 추천 결과를 산출하는 단계는, 서비스 장치가 사용자 로그 데이터를 미리 정해진 조건 혹은 임의로 복수의 그룹으로 구분하고, 각 그룹 별로 서로 다른 추천 알고리즘을 이용하여 추천 결과를 산출할 수 있다.
바람직하게, 추천 결과를 산출하는 단계는, 서비스 장치가 추천 아이템에 대한 클릭 로그 데이터 및 뷰 로그 데이터를 통해 각 그룹 별로 클릭율을 계산하고, 클릭율이 가장 높은 그룹에 이용된 추천 알고리즘으로 추천 결과를 산출할 수 있다.
바람직하게, 서비스 장치가 서비스 장치로 연결되는 추천 아이템의 링크를 통해 단말이 접속되면, 단말의 접속 URL을 통해 추천 아이템에 대한 클릭 로그 데이터를 획득하는 단계를 더 포함할 수 있다.
바람직하게, 서비스 장치가 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)에서 미리 정해진 파라미터 값이 포함되어 있는 사용자 데이터를 추출하여 추천 아이템에 대한 클릭 로그 데이터로 획득하는 단계를 더 포함할 수 있다.
바람직하게, 서비스 장치가 웹 서버의 추천 아이템 리스트 요청이 있으면, 추천 아이템 리스트를 통해 추천 아이템에 대한 뷰 로그 데이터를 획득하는 단계를 더 포함할 수 있다.
바람직하게, 사용자 장치가 사용자 로그 데이터에 포함된 방문 URL(Uniform Resource Locator)로부터 방문 URL 상에 표시되는 아이템 정보 및 방문 URL에서 단말의 동작과 관련된 동작 정보를 추출하는 단계를 더 포함할 수 있다.
바람직하게, 서비스 장치가 각 소스 아이템 별로 추천 결과를 구분하여 저장하되, 웹 사이트를 구분하기 위한 서비스 식별자, 소스 아이템에 대한 아이템 식별자 및 소스 아이템과 관련된 추천 아이템에 대한 추천 아이템 식별자를 합한 문자열에 해쉬(hash) 함수를 적용하여 계산한 값을 추천 결과와 함께 저장하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따르면, 각종 컨텐츠, 상품 내지 서비스를 제공하는 웹 사이트에 별도의 추가 개발을 하지 않아도 자체 서비스에 바로 적용이 가능하다.
또한, 본 발명의 실시예에 따르면, 사용자로부터 발생되는 클릭/뷰 로그 데이터를 기반으로 피드백을 추천 결과에 반영하여 제공함으로써 보다 적합한 아이템을 추천할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
도 1은 본 발명의 일 실시예에 따른 추천 아이템 제공 서비스 장치가 적용될 수 있는 시스템을 개략적으로 예시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 서비스 장치의 구성을 예시하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 추천 아이템 제공 방법을 예시하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 사용자 로그 데이터 수집 방법을 예시하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 사용자 로그 데이터 수집 방법을 예시하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 추천 아이템 리스트를 제공하는 방법을 예시하는 도면이다.
도 7은 본 발명의 일 실시예에 따른 아이프레임(iframe) 포맷으로 제공되는 추천 아이템 리스트를 예시하는 도면이다.
도 8은 본 발명의 일 실시예에 따른 아이프레임(iframe) 포맷으로 제공되는 추천 아이템 리스트가 웹 페이지 상에 표시되는 예시를 나타낸다.
도 9는 본 발명의 일 실시예에 따른 클릭 로그 데이터를 수집하는 방법을 예시하는 도면이다.
도 10은 본 발명의 일 실시예에 따른 각 추천 아이템 별 클릭률을 예시하는 도면이다.
도 11은 본 발명의 일 실시예에 따른 알고리즘 별 추천률을 예시하는 도면이다.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 이하의 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 당업자는 본 발명이 이러한 구체적 세부사항 없이도 실시될 수 있음을 안다.
몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.
이하의 설명에서 사용되는 특정 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
이하 본 발명에서 사용자에게 추천하는 결과물로서, 유무선 네트워크를 통해 유통될 수 있는 각종 재화나 서비스, 디지털 방식으로 생성된 문자, 음향, 이미지, 동영상 등과 같은 컨텐츠, 컴퓨터 프로그램이나 어플리케이션 등과 같은 소프트웨어를 모두 포함할 수 있으며, 이하 설명의 편의를 위하여 '아이템(item)'으로 통칭하여 설명한다.
도 1은 본 발명의 일 실시예에 따른 추천 아이템 제공 서비스 장치가 적용될 수 있는 시스템을 개략적으로 예시하는 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 추천 아이템 제공 서비스 장치가 적용될 수 있는 시스템은 다수의 단말(10), 웹 서버(20), 서비스 장치(30) 및 네트워크(40)를 포함하여 구성될 수 있다.
단말(10)은 네트워크(40)를 통해 웹 서버(20) 및/또는 서비스 장치(30)와 정보를 송수신하며, 이러한 정보를 표시하거나 사용자로부터 정보를 입력 받는 사용자가 이용 가능한 장치를 의미한다. 특히, 본 발명에서 있어서, 단말(30)은 웹 서버(20)에 접속하여 아이템에 관한 각종 정보 및 서비스 장치(30)에 의하여 제공된 추천 아이템 리스트를 제공 받을 수 있다. 여기서, 추천 아이템는 특정 아이템과 관련된 하나 이상의 추천 아이템에 대한 리스트를 의미하며, 서비스 장치(30)가 웹 서버(20) 및/또는 단말(10)로부터 수집한 사용자 로그 데이터를 기반으로 생성될 수 있다.
또한, 단말(10)은 사용자에 의하여 선택된 아이템에 대한 선택 정보를 웹 서버(20)에 전송함으로써, 선택된 아이템을 이용(예를 들어, 구매, 장바구니 저장, 다운로드, 다른 단말에 전달 등)하기 위한 각종 기능을 수행할 수 있다. 또한, 단말(10)은 서비스 장치(30)에 사용자 로그 데이터를 전송하는 기능을 수행할 수도 있으며, 이에 관한 상세한 설명은 후술한다. 바람직하게, 단말(10)은 내부에 저장된 웹 브라우저를 통해 웹 서버(20) 및/또는 서비스 장치(30)와 정보를 송수신할 수 있으나, 반드시 이에 한정되는 것은 아니다.
도 1에서 도시된 바와 같이 본 명세서에서 설명되는 단말은 다양한 형태로 구현될 수 있다. 예를 들어, 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, 태블릿 PC(Tablet PC), PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어 등의 이동 단말기는 물론, 스마트 TV(Smart TV), 셋탑박스(set-top box), 데스크탑 컴퓨터 등과 같은 고정 단말기가 사용될 수 있으며, 네트워크를 통해 다른 사용자와 메시지를 송수신할 수 있는 단말이라면, 그 어떠한 장치도 본 발명의 단말로 적용 가능하다.
웹 서버(20)는 웹 상에서 각종 서비스를 제공하는 서비스 제공자의 서버들을 통칭하며, 물리적으로 특정 서버 혹은 특정 서비스를 제공하는 서버로 한정되지 않는다. 특히, 본 발명에 있어서, 웹 서버(20)는 앞서 설명한 아이템과 해당 아이템에 대한 각종 정보를 웹 서버(20)에 접속한 단말(10)에게 제공하고, 단말(10)(즉, 사용자)에 의하여 선택된 아이템에 대한 추천 아이템 리스트를 서비스 장치(30)로부터 수신하여 단말(10)에게 제공할 수 있다. 또한, 웹 서버(20)는 서비스 장치(30)에 사용자 로그 데이터를 전송하는 기능을 수행할 수도 있으며, 이에 관한 상세한 설명은 후술한다.
서비스 장치(30)는 웹 서버(20)에서 제공하는 다양한 아이템에 대한 추천 아이템 리스트를 웹 서버(20)에 제공하기 위한 기능을 수행하는 장치를 의미한다. 특히, 본 발명에 있어서, 서비스 장치(30)는 단말(10) 및/또는 웹 서버(20)로부터 사용자 로그 데이터를 수집 및 가공하고 각 아이템에 따른 추천 아이템 리스트를 산출하여 웹 서버(20)에 제공할 수 있다. 여기서, 사용자 로그 데이터는 어떠한 단말(10)(즉, 사용자)가 언제 어떠한 웹 서버에서 어떠한 아이템에 대하여 어떠한 동작을 하였는지 등의 이력을 나타내는 정보의 집합을 의미한다.
또한, 서비스 장치(30)는 단말(10) 및/또는 웹 서버(20)로부터 혹은 수집된 사용자 로그 데이터로부터 뷰(view) 로그 데이터 및/또는 클릭(click) 로그 데이터를 수집하여 제공되는 추천 결과를 재처리함으로써 사용자의 방문 내지 동작에 따라 피드백이 반영된 추천 아이템 리스트를 제공할 수 있다. 여기서, 뷰(view) 로그 데이터는 단말(10)(즉, 사용자)의 웹 서버(20)를 접속함으로써, 특정 아이템을 표시하는 웹 페이지가 단말(10)에게 제공된 이력을 나타내는 정보의 집합을 의미한다. 그리고, 클릭(click) 로그 데이터는 서비스 장치(30)에 의해 웹 서버(20)에 제공된 추천 아이템 리스트를 단말(10)(즉, 사용자)가 클릭함으로써, 단말(10)이 추천 아이템 리스트에 포함된 링크(예를 들어, 하이퍼링크 혹은 핫링크 등)를 통해 클릭된 추천 아이템을 표시하는 웹 페이지가 단말(10)에게 제공된 이력을 나타내는 정보의 집합을 의미한다.
이러한 서비스 장치(30)는 상술한 동작을 지원하기 위해 다양한 장치의 집합으로 구현될 수 있다. 예컨대 로그 데이터(예를 들어, 사용자 로그, 뷰 로그, 클릭 로그 데이터)를 저장하고 관리할 수 있는 저장부 서버, 로그 데이터를 수집하는 수집 서버, 로그 데이터를 변환 내지 가공하는 클러스터링(clustering) 서버, 추천 아이템 리스트를 산출하고 추천 아이템 리스트를 웹 서버에 제공하는 API(Application Program Interface) 서버, 피드백 결과에 기반하여 추천 아이템 리스트를 수정하거나 추천 알고리즘을 선정하는 피드백 처리 서버 등을 포함하여 구현될 수 있다. 또한, 상술한 동작에 대응되는 기능을 수행하는 각각의 모듈들이 하나의 서비스 장치(30) 내에 구현될 수도 있다. 이하, 설명의 편의를 위하여 하나의 서비스 장치(30)로 구현되는 경우를 가정하여 설명한다.
이러한 단말(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) 등의 유선 통신 방식을 이용할 수 있으며, 이들의 조합으로 구현될 수도 있다. 또한, 상술한 통신 방식 이외에도 기타 널리 공지되었거나 향후 개발될 모든 형태의 통신 방식을 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 서비스 장치의 구성을 예시하는 도면이다.
도 2에서 도시된 서비스 장치(30)의 구성은, 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 어느 하나 이상의 구성이 실제 물리적으로는 서로 통합되어 구현될 수도 있다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 서비스 장치(30)는 통신부(210), 제어부(220) 및 저장부(230)를 포함하여 구성될 수 있다. 서비스 장치(30)를 구성하는 통신부(210), 제어부(220) 및 저장부(230)는 본 발명에 따른 기능을 수행하기 위하여 상호 기능적으로 연결될 수 있다.
각 구성 요소에 대해 보다 구체적으로 설명하면, 통신부(210)는 하나 이상의 단말(10) 및/또는 웹 서버(20)와 유/무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 특히, 본 발명에 있어서, 통신부(210)는 하나 이상의 단말(10) 및/또는 웹 서버(20)로부터 사용자 로그 데이터를 수신할 수 있다. 또한, 통신부(210)는 웹 서버(20)로부터 추천 아이템 리스트 요청 메시지를 수신할 수 있으며, 추천 아이템 리스트 요청 메시지에 대응하여 추천 아이템 리스트를 웹 서버(20)에 전송할 수 있다. 또한, 웹 서버(20)에서 제공하는 웹 페이지 상에서 사용자의 추천 아이템 클릭에 의하여 단말(10)로부터 접속 요청을 수신하면, 접속 요청한 해당 단말(10)에 리다이렉트(redirect) URL(Uniform Resource Locator)을 전송할 수 있다.
제어부(220)는 서비스 장치(30)의 전반적인 제어를 수행하는 구성으로, 통신부(210) 및 저장부(250)의 기능 수행을 기능 수행을 위한 신호의 흐름을 제어하게 된다. 이때, 제어부(220)는 운영 체제(OS: Operation System), 응용 프로그램 및 각 구성을 구동시키는 프로세스 장치, 예컨대, 중앙처리장치(CPU: Central Processing Unit)로 이루어질 수 있다.
특히, 본 발명에 있어서, 제어부(220)는 데이터 수집부(221), 데이터 처리부(222), 추천 계산부(223), 추천 결과 제공부(224) 및 피드백 처리부(225)를 포함하여 구성될 수 있다.
데이터 수집부(221)는 단말(10) 및/또는 웹 서버(20)로부터 상술한 사용자 로그 데이터를 수집하여 저장부(230)에 저장하는 기능을 수행할 수 있다.
데이터 처리부(222)는 데이터 수집부(221)에 의하여 수집 및 저장된 사용자 로그 데이터로부터 추천 아이템을 계산하기 위하여 계산에 필요한 데이터들을 추출하고, 추출된 데이터들을 계산에 적합한 데이터 포맷으로 변환 내지 가공하여 변환된 사용자 로그 데이터를 저장부(230)에 저장하는 기능을 수행할 수 있다. 또한, 추천 계산부(223)에 의하여 계산되어 저장된 추천 계산 결과를 인터넷을 통해 웹 서버(20)에 제공하기 위한 포맷으로 변환 내지 가공한 추천 결과를 데이터 베이스(230)에 저장하는 기능을 수행할 수 있다.
추천 계산부(223)는 데이터 처리부(222)에 의하여 처리된 변환된 사용자 로그 데이터로부터 다양한 추천 알고리즘을 이용하여 추천 아이템을 계산하고, 추천 아이템을 계산한 추천 계산 결과를 저장부(230)에 저장하는 기능을 수행할 수 있다.
추천 결과 제공부(224)는 웹 서버(20)로부터 특정 아이템에 대한 추천 아이템 리스트 요청 메시지를 수신하면, 해당 아이템에 대한 추천 아이템 리스트를 저장부(230)의 추천 결과로부터 추출하여 웹 서버(20)에 전송하는 기능을 수행할 수 있다. 또한, 추천이 금지되는 아이템을 추천 결과(혹은 추천 아이템 리스트)에서 삭제하거나 새로운 추천 아이템을 추천 결과(혹은 추천 아이템 리스트)에 추가하거나 추천 결과(혹은 추천 아이템 리스트)에 부가적인 정보를 추가하는 등 추천 결과(혹은 추천 아이템 리스트)를 후처리하는 기능을 수행할 수 있다.
피드백 처리부(225)는 클릭 로그 데이터 및/또는 뷰 로그 데이터를 수집하고, 수집된 클릭 로그 데이터 및/또는 뷰 로그 데이터를 기반으로 추천 결과(혹은 추천 아이템 리스트)를 재처리하거나 추천 계산부(223)에서 추천 계산에 이용하는 추천 알고리즘을 결정하는 기능을 수행할 수 있다.
먼저, 클릭 로그 데이터를 수집하기 위하여, 피드백 처리부(225)는 웹 서버(20)에서 제공하는 웹 페이지 상에서 사용자의 추천 아이템 클릭에 의하여 단말(10)로부터 접속 요청을 수신하면, 이를 클릭 로그 데이터로 저장부(230)에 저장하는 기능을 수행하며, 접속 요청한 해당 단말(10)에 리다이렉트(redirect) URL을 전송하는 기능을 수행할 수 있다. 또한, 이와 상이하게, 피드백 처리부(225)는 사용자 로그 데이터로부터 특정 파라미터 내지 형식을 가지는 데이터를 추출하여 이를 클릭 로그 데이터로 저장부(230)에 저장하는 기능을 수행할 수 있다.
또한, 뷰 로그 데이터를 수집하기 위하여, 피드백 처리부(225)는 웹 서버(20)로부터 추천 아이템 리스트 요청 메시지를 수신하면, 이를 뷰 로그 데이터로 데이터 베이스(230)에 저장하는 기능을 수행할 수 있다.
한편, 도 2의 예시에서는 데이터 수집부(221), 데이터 처리부(222), 추천 계산부(223), 추천 결과 제공부(224) 및 피드백 처리부(225)를 각각의 블록으로 도시하였으나, 물리적으로 하나의 장치로 통합되어 구현될 수도 있으며, 상술한 바와 같이 일부 또는 그 각각이 물리적으로 서로 다른 장치에 구현될 수도 있다. 또한, 동일한 기능을 수행하는 복수 개의 장치가 병렬적으로 구현될 수도 있다.
저장부(230)는 서비스 장치(30)의 동작에 필요한 데이터 및 프로그램을 저장하는 수단으로서, 기본적으로 서비스 장치(30)에 의해 실행될 운영 프로그램 및 응용 프로그램을 저장한다. 특히, 본 발명에 있어서, 저장부(230)는 데이터 수집부(241)에 의하여 수집된 사용자 로그 데이터, 데이터 처리부(222)에 의하여 처리된 변환된 사용자 로그 데이터와 추천 결과, 추천 계산부(223)에 의하여 계산된 추천 계산 결과 및 피드백 수집부(245)에 의하여 수집된 뷰 로그 데이터와 클릭 로그 데이터를 저장할 수 있다.
이러한, 저장부(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)와 연결될 수 있다.
이하, 설명의 명확히 하기 위하여, 데이터 수집부(221)에 의하여 수집된 '사용자 로그 데이터'와 구분하여 데이터 처리부(222)에 의하여 가공된 사용자 로그 데이터를 '변환된 사용자 로그 데이터'로 지칭한다. 또한, 추천 계산부(223)에 의하여 계산된 결과를 '추천 계산 결과'로 지칭하며, 데이터 처리부(222)에 의하여 가공된 추천 계산 결과를 '추천 결과'로 지칭한다. 또한, 추천 결과 제공부(224)가 추천 결과에서 웹 서버(20)가 요청한 특정 아이템에 관하여 제공하는 추천 결과를 '추천 아이템 리스트'로 지칭한다. 즉, 추천 결과는 모든 아이템에 대하여 추천되는 추천 아이템 리스트를 포괄한다.
이하, 서비스 장치(30)에서 추천 아이템을 제공하기 위한 동작에 관하여 도 3을 참조하여 설명한다.
도 3은 본 발명의 일 실시예에 따른 추천 아이템 제공 방법을 예시하는 도면이다.
도 3을 참조하면, 서비스 장치(30)는 단말(10) 및/또는 웹 서버(20)로부터 상술한 사용자 로그 데이터를 수집할 수 있다(S301). 여기서, 서비스 장치(30)는 단말(10) 및/또는 웹 서버(20)로부터 동기적(즉, 실시간 수집) 혹은 비동기적(예를 들어, 특정 주기에 수집)으로 사용자 로그 데이터를 수집할 수 있으며, 수집 방식과 무관하게 계속적으로 단말(10) 및/또는 웹 서버(20)로부터 사용자 로그 데이터를 수집할 수 있다.
서비스 장치(30)는 S301 단계에서 수집된 사용자 로그 데이터로부터 추천 아이템을 계산하기 위하여 추천 계산에 필요한 데이터들을 추출하고, 추출된 데이터들을 추천 계산에 적합한 데이터 포맷으로 변환하여 저장할 수 있다(S303). 여기서, S301 단계에서 다수의 단말(10) 및/또는 다수의 웹 서버(20)로부터 수집한 사용자 로그 데이터의 포맷이 동일하며, 추천 아이템 계산에 적합하다면, 서비스 장치(30)는 데이터 변환 단계를 수행하지 않을 수 있으며, 즉 S303 단계는 생략될 수 있다.
서비스 장치(30)는 S303에서 변환된 사용자 로그 데이터를 이용하여 다양한 추천 알고리즘을 이용하여 추천 아이템을 계산하고, 추천 계산 결과를 저장할 수 있다(S305). 여기서, 서비스 장치(30)는 모든 아이템에 대하여 각 추천 알고리즘 별로 추천 아이템을 계산할 수 있다. 또한, 사용자 로그 데이터를 임의로 혹은 특정 기준에 따라 복수의 그룹으로 구분하고 각 그룹 별로 서로 다른 추천 알고리즘을 이용하여 추천 아이템을 계산할 수 있다. 또한, 서비스 장치(30)가 추천 아이템을 계산하는 시점은 S301 단계에서 사용자 로그 데이터를 수집하는 시점과 동일하거나 동일하지 않을 수 있으며, 일정 주기를 가지고 계산될 수 있다.
서비스 장치(30)는 S305 단계에서 계산된 추천 계산 결과를 인터넷을 통해 웹 서버(20)에 제공하기 위하여 적합한 데이터 포맷으로 변환할 수 있다(S307). 상술한 바와 같이, S303 단계에서 서비스 장치(30)가 데이터 변환 단계를 수행하지 않는 다면, S307 단계 또한 생략될 수 있다.
서비스 장치(30)는 계산된 추천 결과(혹은 추천 아이템 리스트)에 대하여 후처리를 수행한 후, 사용자 로그 데이터를 수집한 해당 웹 서버(20)에 추천 아이템 리스트를 제공할 수 있다(S309). 이때, 서비스 장치(30)는 일정 주기를 가지고 추천 아이템 리스트를 웹 서버(20)에 제공하거나, 서비스 장치(30)가 웹 서버(20)로부터 특정 아이템에 대한 추천 아이템 리스트를 요청 받아 해당 아이템에 대한 추천 아이템 리스트를 웹 서버(20)에 전송할 수도 있다.
서비스 장치(30)는 사용자의 피드백을 수집하여 이를 추천에 반영할 수 있다(S311). 즉, 서비스 장치(30)는 수집된 클릭 로그 데이터 및/또는 뷰 로그 데이터를 기반으로 추천 결과(혹은 추천 아이템 리스트)를 재처리하거나(S309 단계로 분기), 추천 계산부(223)에서 추천 계산에 이용하는 추천 알고리즘을 결정할 수 있다(S305 단계로 분기)(S311).
이하, 도 3의 예시에서 설명한 각 단계에 관하여 보다 상세히 설명한다.
서비스 장치(30)(특히, 데이터 수집부(221))는 단말(10) 및/또는 웹 서버(20)로부터 상술한 사용자 로그 데이터를 수집할 수 있다(S301).
상술한 바와 같이, 사용자 로그 데이터는 어떠한 사용자가 언제 어떠한 웹 서버에서 어떠한 아이템에 대하여 어떠한 행동을 하였는지 등을 나타내는 정보의 집합을 의미한다. 이외에도 사용자 로그 데이터는 사용자가 사용하는 단말(10)에 탑재된 브라우저를 식별할 수 있는 정보, 기타 아이템에 대하여 특정 사용자에게 노출을 제한하기 위한 정보, 웹 서버(20)에서 관리하는 사용자의 회원 아이디(ID: Identifier) 정보 등을 포함할 수 있다.
표 1은 본 발명에 따른 사용자 로그 데이터에 포함될 수 있는 정보를 예시한다.
사용자 식별정보 상품 식별정보 동작 식별정보 동작 발생 시각
사용자A 상품2 장바구니 20XX-YY-ZZ aa:bb:cc
사용자B 상품3 구매 20XX-YY-ZZ aa:bb:cc
사용자B 상품5 방문 20XX-YY-ZZ aa:bb:cc
서비스 장치(30)는 이러한 사용자 로그 데이터를 수집하기 위하여 다음과 같은 방법을 이용할 수 있다.
먼저, 서비스 장치(30)는 웹 서버(20)에 접속하여 사용자 로그 데이터를 추출하여 획득하거나, 웹 서버(20)로부터 전송되는 사용자 로그 데이터를 수신하여 획득할 수 있으며, 이에 관하여 아래 도 4를 참조하여 설명한다.
도 4는 본 발명의 일 실시예에 따른 사용자 로그 데이터 수집 방법을 예시하는 도면이다.
도 4를 참조하면, 웹 서버(20)는 단말(10)이 접속하여 특정 동작을 수행하면, 특정 동작이 수행되었음을 서비스 장치(30)에 알리기 위하여 사용자 로그 데이터가 포함된 웹 페이지의 접근 경로 정보를 포함하는 접속 요청 메시지를 서비스 장치(30)에 전송할 수 있다(S401). 여기서, 웹 서버(20)는 POST HTTP 프로토콜을 이용하여 서비스 장치(30)에 접속 요청 메시지를 전송할 수 있다.
서비스 장치(30)는 웹 서버(20)로부터 접속 요청 메시지를 수신하면, 접속 요청 메시지에 포함된 웹 페이지의 접근 경로 정보를 기반으로 웹 서버(20)에 접속하여 해당 웹 페이지에 포함된 사용자 로그 데이터를 추출하여 획득한다(S403). 여기서, 서비스 장치(30)는 GET HTTP 프로토콜을 이용하여 웹 서버(20)로부터 사용자 로그 데이터를 추출할 수 있다.
이어, 서비스 장치(30)는 획득한 사용자 로그 데이터를 저장한다(S405).
또한, 도 4의 예시와 상이하게, 웹 서버(20)에서 해당 웹 서버(20)에 접속된 사용자 단말(10)의 동작에 관한 사용자 로그 데이터를 TCP/IP 프로토콜을 통해 서비스 장치(30)로 전송함으로써, 서비스 장치(30)에서 사용자 로그 데이터를 획득할 수도 있다.
다음으로, 서비스 장치(30)는 웹 서버(20)에서 서비스하는 웹 사이트에 스크립트(script)를 삽입하고, 삽입한 스크립트를 통해 사용자 단말(10)로부터 사용자 로그 데이터를 획득할 수도 있으며, 이에 관하여 아래 도 5를 참조하여 설명한다.
도 5는 본 발명의 일 실시예에 따른 사용자 로그 데이터 수집 방법을 예시하는 도면이다.
도 5를 참조하면, 서비스 장치(30)는 웹 서버(20)에서 제공하는 웹 사이트에 스크립트를 삽입할 수 있다(S501). 예를 들어, 서비스 장치(30)는 웹 서버(20)에서 제공하는 웹 페이지에 "<script src=http://collector.recopick.com/plugin.js></script>"와 같은 스크립트를 삽입할 수 있다.
이후, 단말(10)이 웹 서버(20)에 접속하여(S503), 해당 웹 서버(20)에서 제공하는 웹 페이지를 방문하면 해당 웹 페이지 내에 삽입된 스크립트를 실행하면(S505). 해당 스크립트에 의하여 자동으로 사용자에 대한 로그 데이터를 서비스 장치(30)에 전송할 수 있다(S507). 예를 들어, 단말(10)에 탑재된 웹 브라우저에서 앞서 예시한 스크립트를 실행하게 되면, 단말(10)이 방문한 웹 페이지의 URL 정보, 방문 시각, 스크립트에 포함된 파라미터들에 대한 값 등을 서비스 장치(30)에 전송하게 된다.
상술한 스크립트를 이용하여 서비스 장치(30)가 단말(10)로부터 수집하는 정보는 다음과 같다.
- 웹 브라우저 쿠키 기반으로 생성된 사용자 식별자(UID: User IDentifier)
- 사용자의 방문 URL 정보
- 사용자의 방문 참조 주소(Referrer) 정보
- 접속 시각 정보
- 웹 브라우저의 사용자 에이전트(User Agent) 정보
- 기타 메타(Meta) 정보
사용자 식별자(UID)는 사용자를 구별하기 위한 값을 의미한다. 단말(10)이 스크립트를 실행하게 되면, 먼저 단말(10)은 웹 브라우저의 쿠키(Cookie)에 사용자 식별자(user identifier) 값이 저장되어 있는지 찾고, 사용자 식별자가 저장되어 있는 경우 해당 값을 서비스 장치(30)에 전송한다. 반면, 웹 브라우저의 쿠키에 사용자 식별자가 저장되어 있지 않다면 임의의 숫자 값과 생성 시각을 조합(예를 들어, 33619442.1366005959274)함으로써 사용자를 식별할 수 있는 정보를 생성하여 이를 서비스 장치(30)에 전송한다.
방문 URL 정보는 접속한 웹 서버(20)의 해당 웹 페이지에 대한 URL 정보를 의미한다. 그리고, 참조 주소(referrer) 정보는 링크를 통해서 웹 서버(20)의 해당 웹 페이지에 방문한 경우에 이전에 방문하였던 웹 페이지에 대한 URL 정보를 의미한다. 그리고, 접속 시각 정보는 단말(10)이 웹 서버(20)의 웹 페이지에 방문한 시각 정보를 의미한다. 웹 브라우저의 사용자 에이전트(User Agent) 정보는 웹 서버(20)에 접속 시 단말(10)에서 이용한 웹 브라우저를 구별하기 위한 정보를 의미한다. 일례로, 단말(10)에서 이용한 웹 브라우저가 모바일 장치 용 웹 브라우저인지, 데스크탑 용 웹 브라우저인지 식별하기 위한 정보가 이에 해당될 수 있다. 이러한 정보들은 단말(10)에 탑재된 웹 브라우저에서 수집하여 전체 정보를 동기적 혹은 비동기적으로 서비스 장치(30)에 전송할 수 있다.
그리고, 메타 정보는 서비스 장치(30)가 추천 아이템을 산출할 때 고려해야 되는 기타 추가적인 정보를 의미하며, 그 일례로, 웹 서버가 운영하는 웹 사이트에 회원 정보와 같이 보다 정확하게 사용자를 구별할 수 있는 정보 혹은 아이템이 성인 인증이 필요한지 여부에 관한 정보 등이 해당될 수 있다. 이러한 메타 정보는 웹 서버(20)의 웹 페이지에 삽입된 스크립트가 메타(Meta) 정보를 요구하는 형식을 가지는 경우에는 스크립트에서 요구하는 메타 정보를 단말(10)이 서비스 장치(30)에 전송한다. 예를 들어, 삽입된 스크립트가 "plugin.js?key=value&key2=value2" 형태를 가지게 되면, 단말(10)에서 각각의 파라미터(key, key2)에 대한 값(value1, value2)을 서비스 장치(30)에 전송한다.
앞서 설명한 방식으로 단말(10)로부터 사용자 로그 데이터를 수신한 서비스 장치(30)는 획득한 사용자 로그 데이터를 저장한다(S509).
앞서 도 4 내지 도 5의 예시와 같은 방법을 통해 수집한 사용자 로그 데이터를 예시하면 아래 표 2와 같다.
표 2는 서비스 장치(30)가 수집한 사용자 로그 데이터를 예시한다.
KEY VALUE
ref http://vanillashu.co.kr/front/php/product.php?product_no=13806&main_cate_no=1
site vanillashu.co.kr
uid 44209103.136609
url http://vanillashu.co.kr/front/php/category.php?cate_no=30
time 20XX-YY-ZZ aa:bb:cc
서비스 장치(30)(특히, 데이터 처리부(222))는 S301 단계에서 수집된 사용자 로그 데이터로부터 추천 아이템을 계산하기 위하여 추천 계산에 필요한 데이터들을 추출(extract)하고, 추출된 데이터들을 계산에 추천 적합한 데이터 포맷으로 변환(transform)하여 저장(load)할 수 있다(S303)
먼저, 서비스 장치(30)는 수집한 사용자 로그 데이터에서 방문 URL 정보의 도메인을 이용하여 서비스 식별자(SERVICE_ID)를 추출한다. 예를 들어, 방문 URL 정보가 "http://www.foodfly.co.kr/restaurants/show/11378"인 경우, 서비스 장치(30)는 단말(10)이 방문한 도메인 "www.foodfly.co.kr"와 대응되는 서비스 식별자로써, 1을 부여할 수 있다(SERVICE_ID=1). 이때, 각각의 웹 서버(20)에서 운영하는 웹 사이트의 도메인과 서비스 식별자는 일대일로 매핑될 수 있다. 또한, 이와 같이 웹 사이트의 도메인과 서비스 식별자가 매핑된 테이블 정보가 서비스 장치(30)에 저장되어 있을 수 있으며, 이러한 경우 서비스 장치(30)는 미리 저장된 테이블을 참조하여 서비스 식별자 값을 추출할 수 있다.
그리고, 서비스 장치(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).
한편, 서비스 장치(30)는 앞서 사용자 로그 데이터 수집 단계(S301)에서 메타 정보로 웹 서버(20)의 사용자 회원 아이디 값이 전달되어 저장되었다면, 해당 회원 아이디를 사용자 식별자(USER_ID)로 사용하고, 전달되지 않았다면, 단말(10)에서 웹 브라우저 쿠키를 기반으로 생성한 사용자 식별자 (USER_IDENTIFIER)를 사용자 식별자(USER_ID)로 사용한다.
그리고, 서비스 장치(30)는 앞서 설명한 방법을 통해 추출하거나 획득한 사용자 식별자(USER_ID), 아이템 식별자(ITEM_ID)를 미리 정의된 숫자 식별자로 변환하며, 추출한 동작 식별자(ACTION_ID)에 미리 정의된 숫자 식별자를 부여한다. 이때, 서비스 장치(30)는 도메인과 서비스 식별자의 일대일 매핑 관계와 같이 각 사용자 식별자, 동작 식별자, 아이템 식별자 별로 미리 정해진 숫자 식별자로 변환할 수 있으며 혹은 임의로 연속된 정수값을 가지는 숫자 식별자로 변환(혹은 부여)할 수 있다.
표 3은 변환된 사용자 식별자 테이블을 예시한다.
서비스 식별자
(SERVICE_ID)
원본 사용자 식별자
(ORG_USER_ID)
변환된 사용자 식별자
(CONVERTED_USER_ID)
1 chaehyun 1
1 44209103.136609 2
1 68709103.015529 3
표 3에서 원본 식별자가 'chaehyun'는 웹 서버(20)의 사용자 회원 정보 값이 전달되어 이를 사용자 식별자로 사용한 경우를 나타내며, '44209103.136609' 혹은 '68709103.015529'는 단말(10)의 웹 브라우저 쿠키를 기반으로 생성한 값을 사용자 식별자로 사용한 경우를 나타낸다.
표 4는 변환된 아이템 식별자 테이블을 예시한다.
서비스 식별자
(SERVICE_ID)
원본 아이템 식별자
(ORG_ITEM_ID)
변환된 아이템 식별자
(CONVERTED_ITEM_ID)
1 11378 1
1 1245 2
1 21456 3
표 5는 변환된 동작 식별자 테이블을 예시한다.
동작 명칭(ACTION_NAME) 동작 식별자(ACTION_ID)
방문(VISIT) 1
구매(PURCHASE) 101
추천 알고리즘 2
(RECOMMEND_VISIT_ALGORITHM_2)
2
추천 알고리즘 3
(RECOMMEND_VISIT_ALGORITHM_3)
3
장바구니(BASKET) 201
표 5에서 추천 알고리즘 x(RECOMMEND_VISIT_ALGORITHM_x)은 해당 추천 알고리즘(x)을 이용하여 계산된 추천 아이템 리스트 제공 결과를 통해 사용자 단말(10)이 해당 서비스 식별자를 가지는 웹 서버(20)에 접속한 동작을 나타낸다.
이와 같이 최종적으로 변환된 사용자 로그 데이터는 아래 표 6과 같다.
표 6은 변환된 사용자 로그 데이터를 예시한다.
버전
(VERSION)
변환된 사용자 식별자
(CONVERTED_USER_ID)
변환된 아이템 식별자
(CONVERTED_ITEM_ID)
서비스 식별자
(SERVICE_ID)
동작 식별자
(ACTION_ID)
시각
(TIME)
0 36368996 1404200 4 1 20XX-YY-ZZ aa:bb:cc
0 36346053 39861 4 1 20XX-YY-ZZ aa:bb:cc
0 4093797 46666 8 1 20XX-YY-ZZ aa:bb:cc
0 36352376 29640 4 1 20XX-YY-ZZ aa:bb:cc
0 4093800 97415 8 1 20XX-YY-ZZ aa:bb:cc
0 36344208 39160 4 1 20XX-YY-ZZ aa:bb:cc
0 36343108 3812418 4 1 20XX-YY-ZZ aa:bb:cc
0 36356140 3841659 4 1 20XX-YY-ZZ aa:bb:cc
0 36395318 3856063 4 1 20XX-YY-ZZ aa:bb:cc
표 6을 참조하면, 서비스 장치(30)는 변환된 사용자 로그 데이터에 포함되는 정보들의 항목에 따라 변환된 사용자 로그 데이터를 구분하기 위하여 상이한 버전(version) 정보를 부여할 수 있다. 예를 들어, 표 6의 예시와 같이, 버전 0을 가지는 변환된 사용자 로그 데이터의 경우, 변환된 사용자 식별자, 변환된 아이템 식별자, 서비스 식별자, 동작 식별자, 시각 항목을 포함하나, 버전 1을 가지는 변환된 사용자 로그 데이터의 경우에는 버전 0에 포함된 정보 항목 중 일부가 제외되거나 포함되지 않은 이외의 정보 항목이 추가될 수도 있다.
서비스 장치(30)(특히, 추천 계산부(223))는 S303에서 변환된 사용자 로그 데이터를 이용하여 다양한 추천 알고리즘을 이용하여 추천 아이템을 계산하고, 추천 계산 결과를 저장할 수 있다(S305).
서비스 장치(30)는 추천 결과를 제공하는 웹 서버(20)가 제공하는 서비스의 성격에 적합하고 효과적인 추천 알고리즘을 적용할 수 있도록 다양한 추천 알고리즘을 각각 적용하여 추천 아이템을 계산할 수 있다. 즉, 수집된 전체 변환된 사용자 로그 데이터를 기반으로 다양한 추천 알고리즘을 각각 적용하여 각각의 추천 알고리즘에 따른 추천 아이템을 계산하거나, 수집된 전체 변환된 사용자 로그 데이터를 임의로 혹은 특정 조건에 따라 그룹핑하고, 각 그룹 별로 서로 다른 추천 알고리즘에 따른 추천 아이템을 계산할 수 있다. 예를 들어, 사용자 식별자(USER_ID)가 홀수인 변환된 사용자 로그 데이터와 짝수인 변환된 사용자 로그 데이터를 구분하고, 각각 A 추천 알고리즘과 B 추천 알고리즘을 이용하여 추천 아이템을 계산할 수 있다.
서비스 장치(30)는 정해진 범위(즉, 전체 혹은 그룹)에 포함되는 변환된 사용자 로그 데이터에 속하는 모든 아이템에 대하여 해당 아이템을 제외한 이외의 모든 아이템과의 유사도를 각각 계산한다. 예를 들어, 정해진 범위 내 변환된 사용자 로그 데이터에 총 100개의 아이템이 속하는 경우, 첫 번째 아이템과 해당 아이템 이외의 99개의 아이템 간의 유사도를 각각 계산하고, 두 번째 아이템과 해당 아이템 이외의 99개의 아이템 간의 유사도를 각각 계산하는 방식으로 모든 아이템에 대하여 다른 아이템과의 유사도를 계산한다.
서비스 장치(30)는 두 개의 아이템 간의 유사도(similarity)를 계산하기 위하여 다양한 추천 알고리즘을 이용할 수 있다. 그 일례로, 자카드 유사도(similarity), 로그-우도 유사도(Log Likelihood Similarity), 피어슨 상관(Pearson correlation) 등을 이용할 수 있다. 이러한 유사도 계산 방법들은 이미 공지된 방법들로 이하 상세한 설명을 생략한다. 이하, 설명의 편의를 위하여 추천 알고리즘으로 자카드 유사도를 이용한다고 가정하여 설명하며, 자카드 유사도는 아래 수학식 1과 같이 정의된다.
Figure 112016095455010-pat00001
수학식 1을 참조하면, 두 개의 아이템 간의 자카드 유사도는 두 아이템을 모두 방문한 사용자 수(두 아이템을 표시하는 웹 페이지 모두 접속한 사용자들의 수)를 두 아이템을 방문한 사용자들의 합집합의 수(두 아이템을 표시하는 웹 페이지 중 어느 하나 이상에 접속한 사용자들의 수 - 두 아이템을 표시하는 웹 페이지 모두 접속한 사용자들의 수)로 나누어 계산되며, 결국 두 아이템을 모두 방문한 사용자들이 많을수록 양 아이템 간의 유사도가 커지게 된다. 예를 들어, A 아이템을 표시하는 웹 페이지에 접속한 사용자들의 수가 20이고, B 아이템을 표시하는 웹 페이지에 접속한 사용자들의 수가 10이며, A와 B 아이템을 표시하는 웹 페이지에 모두 방문한 사용자들의 수가 5인 경우, 자카드 유사도의 계산 결과는 5/(20+10-5)=1/5과 같다.
서비스 장치(30)는 추천 알고리즘을 이용하여 정해진 범위 내(전체 혹은 그룹) 변환된 사용자 로그 데이터에 속하는 모든 아이템에 대하여 유사도를 모두 계산한 후, 각 아이템 별로 유사도가 큰 순서대로 n 개의 아이템을 추천 아이템으로 산출한다. 이때, 서비스 장치(30)는 모든 아이템에 대하여 유사도를 모두 계산한 후, 특정 조건(예를 들어, 두 아이템을 모두 방문한 사용자들의 수>= 50 이며 유사도 > 0.1)을 만족하는 아이템을 추출한 후 추출된 아이템 중에서 각 아이템 별로 유사도가 큰 순서대로 n 개의 아이템을 추천 아이템으로 산출할 수도 있다.
상술한 자카드 유사도를 이용하여 추천 아이템을 계산하는 방법은 하나의 예시에 불과하며, 상술한 바와 같이 서비스 장치(30)는 다양한 추천 알고리즘을 이용하여 각 아이템에 대한 추천 아이템을 계산할 수 있다. 또한, 서로 다른 추천 알고리즘을 이용하여 각 아이템에 대한 추천 아이템의 추천 점수를 계산하더라도 추천 점수는 모두 동일한 수준(예를 들어, 0 내지 1 사이)으로 정해질 수 있다. 이와 같이 각각의 추천 알고리즘에 따른 추천 계산 결과는 아래 표 7과 같다.
표 7은 각각의 추천 알고리즘에 따라 계산된 추천 계산 결과를 예시한다.
변환된 아이템 식별자
(CONVERTED_ITEM_ID)
변환된 추천 아이템 식별자
(RECOMMENDED_ITEM_ID)
추천 점수(SCORE) 방법(METHOD)
1 11 0.05511811023622047 2
1 164 0.0894854586129754 2
1 218 0.04025423728813559 2
1 272 0.11278195488721804 2
표 7을 참조하면, 추천 점수(SCORE) 값은 추천 알고리즘에 따라 해당 아이템과 추천 아이템 간의 유사도를 계산한 값을 나타내고, 방법(METHOD)은 유사도 계산에 이용된 추천 알고리즘에 대한 식별 번호를 나타낸다.
서비스 장치(30)(특히, 데이터 처리부(222))는 S305 단계에서 계산된 추천 계산 결과를 웹 서버(20)에 제공하기 위하여 적합한 데이터 포맷으로 변환할 수 있다(S307).
먼저, 서비스 장치(30)는 추천 계산 결과에서 변환된 아이템의 식별자를 원본 식별자로 변경하고, 서비스 식별자와 결과를 계산한 날짜를 추가하여 저장한다.
표 8은 추천 계산 결과의 변환된 포맷을 예시한다.
원본 아이템 식별자
(ORG_ITEM_ID)
원본 추천 아이템 식별자
(ORG_RECOMMENDED_ITEM_ID)
추천 점수
(SCORE)
방법
(METHOD)
서비스 식별자
(SERVICE_ID)
날짜
(DATE)
123 11149 0.055118 2 1 20XX-YY-ZZ
123 11113 0.089485 2 1 20XX-YY-ZZ
123 740 0.040254 2 1 20XX-YY-ZZ
123 179 0.112782 2 1 20XX-YY-ZZ
이어, 서비스 장치(30)는 최종적으로 인터넷을 통해 웹 서버(20)에 제공하기에 적합한 데이터 포맷으로 추천 계산 결과를 변환하여 저장할 수 있다. 이때, 서비스 장치(30) 아래 표 9와 같은 JSON(JavaScript Object Notation) 포맷으로 저장할 수 있다. 다만, JSON 포맷은 하나의 예시에 불과하며, 서비스 장치(30)는 확장성 마크업 언어(XML: Extensible Markup Language) 포맷이나 YAML(YAML Ain't Markup Language) 포맷 등과 같이 다양한 데이터 포맷으로 저장할 수 있다. 이하, JSON 포맷을 가정하여 설명한다.
표 9는 최종적으로 변환되어 저장되는 추천 결과 포맷을 예시한다.
해쉬
(HASH)
서비스 식별자
(SERVICE_ID)
원본 아이템 식별자
(ORG_ITEM_ID)
카운트
(COUNT)
JSON 시각 (TIME)
4cfc30c5e1c1bbcf
1 11057 3 [{"id":"11649","score":0.059867, "method":"2"}, {"id":"11480","score":0.052219, "method":"2"}, {"id":"12116","score":0.052083, "method":"2"}] 20XX-YY-ZZ aa:bb:cc
c000365f48786906 1 11078 2 [{"id":"11822","score":0.055385, "method":"2"}, {"id":"11021","score":0.033816, "method":"2"}] 20XX-YY-ZZ aa:bb:cc
96028a9562ba33de 1 11099 10 [{"id":"325","score":0.100656, "method":"2"}, {"id":"553","score":0.061425, "method":"2"}, {"id":"849","score":0.055133, "method":"2"}, {"id":"622","score":0.051887, "method":"2"}, {"id":"464","score":0.051515, "method":"2"}, {"id":"435","score":0.050532, "method":"2"}, {"id":"11614","score":0.046632, "method":"2"}, {"id":"786","score":0.044872, "method":"2"}, {"id":"11456","score":0.041322, "method":"2"}, {"id":"11771","score":0.040925, "method":"2"}] 20XX-YY-ZZ aa:bb:cc
표 9를 참조하면, 해쉬 값은 특정 아이템에 관하여 추천되는 추천 아이템 리스트가 동일한 경우, 해당 아이템에 관한 추천 아이템 리스트를 중복해서 저장하지 않기 위하여 계산된 값을 의미하며, 서비스 식별자(SERVICE_ID), 아이템 식별자(ITEM_ID) 및 추천 아이템 식별자(RECOMMENDED_ITEM_ID)들을 하나의 문자열로 합친 다음, 합친 문자열에 해쉬 함수를 적용하여 계산된다. 이와 같은 해쉬 값을 사용함으로써, 특정 아이템에 대한 추천 아이템 리스트에 속하는 추천 아이템의 순위가 변경되거나 추천 아이템 리스트에 속하는 추천 아이템이 변경되지 않는 한 추천 아이템 리스트에 속한 추천 아이템들의 추천 점수가 변경되더라도 추천 아이템 리스트를 갱신하지 않을 수 있다. 즉, 해쉬 값을 계산하기 위한 변수로 추천 아이템에 대한 추천 점수가 포함되지 않으므로, 만약 다음 날 다시 추천 아이템 리스트를 계산했을 때, 추천 아이템의 추천 점수가 변경되더라도, 추천되는 아이템의 수가 바뀌거나, 순서가 변경되지 않으면, 해쉬 값은 변경되지 않기 때문이다.
그리고, 카운트(COUNT) 값은 특정 아이템에 관하여 몇 개의 아이템이 추천되었는지 추천 아이템의 개수를 나타낸다. JSON 값은 카운트 값에 해당하는 개수의 추천 아이템에 대한 정보를 포함하며, 그 일례로, 추천 아이템 식별자, 추천 점수 및 추천 알고리즘 정보를 포함할 수 있다.
서비스 장치(30)(특히, 추천 결과 제공부(224))는 계산된 추천 결과(혹은 추천 아이템 리스트)에 대하여 후처리를 수행한 후, 사용자 로그 데이터를 수집한 해당 웹 서버(20)에 추천 아이템 리스트를 제공할 수 있다(S309).
이에 관하여 아래 도 6을 참조하여 보다 상세히 설명한다.
도 6은 본 발명의 일 실시예에 따른 추천 아이템 리스트를 제공하는 방법을 예시하는 도면이다.
도 6을 참조하면, 서비스 장치(30)는 변환된 저장된 추천 결과(혹은 추천 아이템 리스트)에 대하여 후처리를 수행할 수 있다(S601).
추천 결과(혹은 추천 아이템 리스트)에 대한 후처리는 추천 결과(혹은 추천 아이템 리스트)에서 추천 아이템을 추가, 삭제 혹은 변경하거나 추천 아이템 리스트에서 포함되는 정보 항목을 추가, 삭제 혹은 변경하는 동작을 의미한다. 이러한 후처리 과정은 서비스 장치(30)에서 자동으로 수행될 수 있으며, 웹 서버(20)로부터의 요청에 의하여 서비스 장치(30)에서 수행될 수도 있다.
구체적으로 살펴보면, 서비스 장치(30)는 추천 금지된 아이템을 추천 결과(혹은 추천 아이템 리스트)에서 제거할 수 있다. 예를 들어, 웹 서버(20)의 관리자가 아이템 A에 대한 아이템 B의 추천을 금지한 경우, 아이템 A에 대한 추천 아이템 리스트에서 아이템 B를 제거할 수 있다. 또한, 특정 상품이 품절되거나 특정 상점이 더 이상 영업을 하지 않는 경우 등과 같이 어떠한 아이템에 대해서도 추천되지 않아야 하는 아이템의 경우에는 모든 추천 아이템 리스트(즉, 추천 결과)에서 해당 아이템을 제거할 수 있다. 이와 같이 추천 금지된 아이템을 추천 결과(혹은 추천 아이템 리스트)에서 제거할 때, 서비스 장치(30)는 기 생성된 추천 결과(혹은 추천 아이템 리스트)에서 삭제하고자 하는 아이템을 임의로 삭제하거나, 해당 아이템에 대한 추천 점수를 낮은 값으로 변경 혹은 낮은 값이 계산되도록 변수 값을 조정하여 추천 결과(혹은 추천 아이템 리스트)에서 추천 금지된 아이템을 제거할 수 있다.
또한, 서비스 장치(30)는 추천 결과(혹은 추천 아이템 리스트)에 속하지 않은 임의의 아이템을 추천 아이템으로 추가할 수 있다. 예를 들어, 웹 서버(20)의 관리자가 계산된 추천 아이템 리스트의 결과가 마음에 들지 않는 경우 혹은 특정 아이템에 대한 추천 아이템 리스트가 생성되지 않은 경우 등을 이유로 서비스 장치(30)는 특정 아이템을 추천 아이템으로 추천 결과(혹은 추천 아이템 리스트)에 포함시킬 수도 있다. 이 경우에도, 서비스 장치(30)는 기 생성된 추천 결과(혹은 추천 아이템 리스트)에서 추가하고자 하는 아이템을 임의로 추가하거나, 특정 아이템들로 구성된 추천 아이템 리스트를 새롭게 생성하거나 추가하고자 하는 아이템에 대한 추천 점수를 높은 값으로 변경 혹은 높은 값으로 계산되도록 변수 값을 조정할 수 있다.
또한, 추천 결과(혹은 추천 아이템 리스트)를 구성하는 정보 항목은 앞서 표 9의 예시와 같이 추천 아이템 식별자, 추천 점수 및 추천 알고리즘 정보만을 포함할 수도 있으나, 서비스 장치(30)는 이외에 추천 결과(혹은 추천 아이템 리스트)를 구성하는 새로운 정보 항목을 추가할 수도 있다. 예를 들어, 서비스 장치(30)는 추천 아이템 리스트에 추천되는 아이템 명칭, 추천되는 아이템의 썸네일에 대한 URL, 추천되는 아이템의 가격 정보 등을 포함시킬 수 있다.
웹 서버(20)는 단말(10)이 접속하여 방문하는 웹 페이지에 표시되는 아이템에 관한 추천 아이템 리스트를 요청하기 위한 메시지를 서비스 장치(30)에 전송한다(S603). 추천 아이템 리스트 요청 메시지에는 요청하는 웹 서버(20)에 대한 서비스 식별자, 요청하는 아이템에 대한 아이템 식별자가 포함되며, 버전 정보, 메타 정보 등이 추가적으로 포함될 수 있다.
웹 서버(20)로부터 추천 아이템 리스트 요청 메시지를 수신한 서비스 장치(30)는 요청한 아이템에 관한 추천 아이템 리스트를 추출하고(S605), 추출한 추천 아이템 리스트를 웹 서버(20)에 전송한다(S607).
여기서, 서비스 장치(30)는 웹 서버(20)에 생성된 추천 아이템 리스트의 포맷(즉, JSON 포맷)으로 전송할 수도 있으나, 아이프레임(iframe) 포맷으로 추천 아이템 리스트를 전송할 수도 있다. JSON 포맷으로 추천 아이템 리스트를 제공하는 경우, 웹 서버(20)에서 별도의 디자인을 추가한 후, 웹 페이지 상에 추천 아이템 리스트를 제공해야 하는 반면, iframe의 경우 웹 서버(20)에서 추가적인 처리 없이 웹 페이지에 바로 적용할 수 있는 장점이 있다.
먼저, JSON 포맷으로 추천 아이템 리스트를 전송하는 경우를 예를 들면, 웹 서버(20)는 "http://api.recopick.com/VERSION/recommend/SERVICE_ID/ITEM_ID?OPTIONS"와 같은 포맷으로 서비스 장치(30)에 추천 아이템 리스트를 요청할 수 있다. 이와 같이, JSON 포맷으로 추천 아이템 리스트를 요청하는 경우, 추천 아이템 리스트 요청 메시지에는 서비스 식별자, 아이템 식별자와 함께 버전 정보 및 기타 메타 정보 등이 포함될 수 있다.
예를 들어, 웹 서버(20)가 "http://api.recopick.com/2/recommend/1/11057?field=meta"와 같이 서비스 장치(30)에 추천 아이템 리스트를 요청한 경우, 요청하는 추천 아이템 리스트의 버전은 2이고, 서비스 식별자는 1이고, 요청하는 아이템의 식별자는 11057이며, 메타 정보를 추가로 요청한 경우를 나타낸다. 이러한 요청에 대한 응답으로 서비스 장치(30)가 웹 서버(20)에 제공하는 추천 아이템 리스트를 예시하면 아래 표 10과 같다.
표 10은 JSON 포맷으로 제공되는 추천 아이템 리스트를 예시한다.
[{"id":"11649","score":0.061947,"method":"2","image":{"src":"http://www.foodfly.co.kr/upload/restaurant/8320977315090c487b5f3d.jpg"},"title":"XXX"},{"id":"11480","score":0.05137,"method":"2","image":{"src":"http://www.foodfly.co.kr/upload/restaurant/1192962858506d36dc8981f.jpg"},"title":"YYY "},{"id":"12116","score":0.042345,"method":"2","image":{"src":"http://www.foodfly.co.kr/upload/restaurant/1138839503513839a99ea0e.jpg"},"title":"ZZZ "}]
표 10을 참조하면, 추천 아이템 리스트에는 추천 아이템 식별자("id"), 추천 점수("score") 및 추천 알고리즘 정보("method")가 포함될 수 있다. 또한, 표 10의 경우 기타 메타 정보를 추가로 요청한 경우에 서비스 장치(30)가 추가적인 메타 정보를 추천 아이템 리스트에 포함시킨 경우를 예시하고 있으며, 추가 메타 정보로 추천 아이템의 이미지 정보("image"), 추천 아이템 명칭 정보("title")가 해당된다.
다음으로, iframe 포맷으로 추천 아이템 리스트를 전송하는 경우를 예를 들면, 웹 서버(20)는 "http://api.recopick.com/VERSION/banner/SERVICE_ID/show?item_id=ITEM_ID&direction=[horizontal|vertical&count=recommend_size"와 같은 포맷으로 서비스 장치(30)에 추천 아이템 리스트를 요청할 수 있다. 이와 같이, iframe 포맷으로 추천 아이템 리스트를 요청하는 경우, 서비스 식별자, 아이템 식별자, 프레임 방향(수평 방향 혹은 수직 방향), 프레임 크기, 추천 아이템 개수와 함께 버전 정보 및 기타 메타 정보 등이 포함될 수 있다.
예를 들어, 웹 서버(20)가 "http://api.recopick.com/2/banner/6/show?item_id=59&direction=horizontal&count=4"와 같이 서비스 장치(30)에 추천 아이템 리스트를 요청한 경우, 요청하는 추천 아이템 리스트의 버전은 2이고, 서비스 식별자는 6이고, 요청하는 아이템의 식별자는 59이고, 프레임의 방향으로 수평 방향이고, 추천 아이템의 개수는 4인 경우를 나타낸다.
또한, 예를 들어, 웹 서버(20)가 "http://api.recopick.com/2/banner/6/show?item_id=59&direction=vertical&count=2 "와 같이 서비스 장치(30)에 추천 아이템 리스트를 요청한 경우, 요청하는 추천 아이템 리스트의 버전은 2이고, 서비스 식별자는 6이고, 요청하는 아이템의 식별자는 59이고, 프레임의 방향으로 수직 방향이고, 추천 아이템의 개수는 2인 경우를 나타낸다.
이러한 요청에 대한 응답으로 서비스 장치(30)가 웹 서버(20)에 제공하는 추천 아이템 리스트를 예시하면 아래 도 8과 같다.
도 7은 본 발명의 일 실시예에 따른 아이프레임(iframe) 포맷으로 제공되는 추천 아이템 리스트를 예시하는 도면이다.
도 7의 (a)는 웹 서버(20)가 수평 방향으로 추천 아이템 4개를 요청한 경우, 이에 대한 응답으로 서비스 장치(30)가 제공하는 추천 아이템의 개수가 4개이고 수평 방향으로 표시되는 추천 아이템 리스트를 예시하고 있으며, 도 7의 (b)는 웹 서버(20)가 수직 방향으로 추천 아이템 2개를 요청한 경우, 이에 대한 응답으로 서비스 장치(30)가 제공하는 추천 아이템의 개수가 2개이고 수직 방향으로 표시되는 추천 아이템 리스트를 예시한다.
도 8은 본 발명의 일 실시예에 따른 아이프레임(iframe) 포맷으로 제공되는 추천 아이템 리스트가 웹 페이지 상에 표시되는 예시를 나타낸다.
도 8을 참조하면, 서비스 장치(30)가 제공하는 iframe 포맷의 추천 아이템 리스트는 앞서 도 7과 같이 서비스 장치(30)가 제공한 형태로 웹 서버(20)의 웹 페이지 상에 동일하게 표시될 수 있다. 따라서, 이와 같이, 서비스 장치(30)는 배너(banner) 형태로 웹 서버(20)에 추천 아이템 리스트를 제공하므로, 웹 서버(20)에서는 추가적인 데이터 처리 절차를 수행하지 않을 수 있다.
한편, 도 6에서는 서비스 장치(30)가 후처리를 수행한 후 웹 서버(30)의 요청에 따라 추천 아이템 리스트를 전송하는 방법을 예시하고 있으나, 서비스 장치(30)는 웹 서버(20)로부터 추천 아이템 리스트 요청 메시지를 수신하면, 요청한 추천 아이템 리스트에 대하여 후처리를 수행한 후 후처리된 추천 아이템 리스트를 웹 서버(20)에 전송할 수도 있다. 즉, 후처리를 수행하는 단계가 S605 단계와 S607 단계 사이에서 수행될 수도 있다.
서비스 장치(30)(특히, 피드백 처리부(225))는 사용자의 피드백을 수집하여 이를 추천에 반영할 수 있다(S311).
사용자의 피드백은 사용자의 클릭률에 따라 계산될 수 있으며, 클릭률을 계산하기 위하여 추천 뷰 로그 데이터와 사용자의 추천 클릭 로그 데이터를 수집할 수 있다.
먼저, 클릭 로그 데이터를 수집하는 방법을 설명한다.
첫 번째 방법으로, 사용자의 추천 아이템 리스트에 포함된 추천 아이템을 클릭 시 서비스 장치(30)로 리다이렉트되어 사용자의 클릭 로그 데이터를 획득할 수 있으며, 이에 관하여 도 9를 참조하여 설명한다.
도 9는 본 발명의 일 실시예에 따른 클릭 로그 데이터를 수집하는 방법을 예시하는 도면이다.
도 9를 참조하면, 단말(10)이 웹 서버(20)의 웹 페이지 상에 표시되는 추천 아이템 리스트에 포함된 특정 추천 아이템을 선택 입력(예를 들어, 클릭 혹은 터치 입력 등)하면(S901), 단말(10)은 추천 아이템의 링크 URL을 통해 서비스 장치(30)에 접속을 요청한다(S903). 즉, 추천 아이템은 해당 추천 아이템을 표시하는 웹 페이지로 이동하기 위한 URL 정보 대신에 서비스 장치(30)로 이동하기 위한 URL 정보를 가질 수 있다.
예를 들어, 추천 아이템 리스트에 속하는 각 추천 아이템(들)은 "http://api.recopick.com/VERSION/banner/SERVICE_ID/pick?source=SOURCE_ITEM_ID&pick=TARGET_ITEM_ID&method=ALGORITHM"와 같은 포맷의 링크 URL을 가질 수 있다. 각 추천 아이템이 가지는 링크 URL에는 해당 추천 아이템이 속한 추천 아이템 리스트의 버전 정보, 서비스 식별자, 소스 아이템(추천 아이템이 표시되는 대상이 되는 아이템) 식별자, 타겟 아이템(사용자에 의하여 선택되어 클릭된 추천 아이템) 식별자, 선택된 추천 아이템을 계산한 알고리즘 정보 등이 포함될 수 있다.
일례로, 서비스 식별자(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)로 이동하게 된다.
서비스 장치(30)는 서비스 장치(30)에 접속을 시도하는 단말(10)에 대한 클릭 로그 데이터를 저장한다(S905). 앞서 설명한 바와 같이 추천 아이템 링크 URL에는 해당 추천 아이템이 속한 추천 아이템 리스트의 버전 정보, 서비스 식별자, 소스 아이템 식별자, 타겟 아이템 식별자, 선택된 추천 아이템을 계산한 알고리즘 정보 등이 포함될 수 있으므로, 서비스 장치(30)는 단말(10)이 접속을 시도하는 URL을 통해 어떠한 웹 서버(20)에서 어떠한 아이템에서 어떠한 추천 아이템이 사용자에 의하여 클릭되었는지 확인할 수 있으며, 해당 추천 아이템은 어떠한 추천 알고리즘에 의하여 계산되었는지 확인할 수 있다.
서비스 장치(30)는 해당 단말(10)이 웹 서버(20)로 재접속할 수 있도록 리다이렉트 URL을 해당 단말(10)에 전송한다(S907). 예를 들어, 서비스 장치(30)는 단말(10)이 선택한 132번 아이템을 표시하는 웹 페이지로 접속할 수 있도록 "http://hellonature.net/goods/132?recopick=2"와 같은 URL을 단말(10)에 전송할 수 있다.
이를 수신한 단말(10)은 수신한 리다이렉트 URL을 통해 웹 서버(20)에 접속한다(S909).
도 9의 예시와 같은 방법을 이용함으로써 사용자가 추천 아이템을 클릭할 때마다 사용자의 클릭 정보가 서비스 장치(30)에 전송되므로, 서비스 장치(30)는 실시간으로 추천 아이템에 대한 사용자의 클릭 로그 데이터를 저장할 수 있다.
두 번째 방법으로, 추천 아이템의 링크를 구성하는 변수에 미리 정해진 특정 파라미터를 추가하고, S301 단계에서 수집된 사용자 로그 데이터에서 사용자의 방문 URL 정보에 상술한 미리 정해진 특정 파라미터가 존재하면, 이를 추천에 의한 클릭으로 판단할 수 있다. 즉, 사용자 로그 데이터에서 방문 URL에 미리 정해진 파라미터가 포함되어 있는 데이터를 추출하여 클릭 로그 데이터로 저장할 수 있다. 예를 들어, 추천 아이템의 링크 변수에 recopick=METHOD를 추가하고, 사용자 로그 데이터에서 사용자의 방문 URL에 recopick이 존재한다면 이를 추천에 의한 클릭으로 판단할 수 있다. 그리고, 참조 주소(Referrer) 정보에서 아이템 식별자(ITEM_ID)를 확인한 후, 이를 이용하여 소스 아이템 식별자를 확인할 수 있다. 다만, 참조 주소 정보가 서비스 장치(30)의 URL을 가지는 경우에는, 이는 앞서 첫 번째 방법에서 이미 클릭 로그 데이터로 집계된 경우이므로 추천 클릭으로 판단하지 않을 수 있다.
앞서 설명한 서비스 장치(30)는 첫 번째 방법 및/또는 두 번째 방법을 이용하여 클릭 로그 데이터를 수집하고, 수집한 클릭 로그 데이터를 저장할 수 있다.
표 11은 클릭 로그 데이터의 포맷을 예시한다.
로그타입
(LOGTYPE)
버전
(VERSION)
서비스 식별자 (SERVICE_ID) 클릭 아이템
(CLICK ITEM)
소스 아이템
(SOURCE ITEM)
알고리즘
(METHOD)
시각
(TIMESTAMP)
click 2 1 597 117 2 20XX-YY-ZZ aa:bb:cc
click 2 1 11556 11816 2 20XX-YY-ZZ aa:bb:cc
표 11을 참조하면, 클릭 로그 데이터는 로그 타입(클릭 혹은 뷰), 추천 아이템 리스트에 대한 버전 정보, 서비스 식별자, 클릭 아이템 정보, 소스 아이템 정보, 추천 알고리즘, 클릭 시각 정보 등을 포함할 수 있다.
다음으로, 뷰 로그 데이터를 수집하는 방법을 살펴보면, 서비스 장치(30)는 웹 서버(20)가 추천 아이템 리스트를 요청할 때마다 제공하는 추천 아이템 리스트를 통해 뷰 로그 데이터를 획득하여 저장할 수 있다.
표 12는 뷰 로그 데이터의 포맷을 예시한다.
로그타입
(LOGTYPE)
버전
(VERSION)
서비스 식별자 (SERVICE_ID) 클릭 아이템
(CLICK ITEM)
소스 아이템
(SOURCE ITEM)
추천 리스트
(RECOMMENDED LIST
)
(ITEM_ID:METHOD, ITEM_ID:METHOD, ITEM_ID:METHOD)
알고리즘(METHOD) 시각
(TIMESTAMP)
viewing 2 1 - 182 158:2,73:2,566:2,85:2,89:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 14 - 13830 13844:2,13841:2,13828:2,13843:2,13845:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 14 - 13670 13732:2,13534:2,13780:2,13698:2,13822:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 14 - 13670 13732:2,13534:2,13780:2,13698:2,13822:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 6 - 43 15:2,299:2,316:2,329:2,16:2,426:2,92:2,210:2,276:2,83:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 1 - 176 512:2,153:2,809:2,637:2,177:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 6 - 178 41:2,398:2,115:2,421:2,230:2,12:2,372:2,177:2,45:2,293:2 2 20XX-YY-ZZ aa:bb:cc
viewing 2 14 - 13795 13796:2,13785:2,13787:2 2 20XX-YY-ZZ aa:bb:cc
표 12를 참조하면, 클릭 로그 데이터는 로그 타입(클릭 혹은 뷰), 추천 아이템 리스트에 대한 버전 정보, 서비스 식별자, 클릭 아이템 정보, 소스 아이템 정보, 추천 리스트, 추천 알고리즘, 클릭 시각 정보 등을 포함할 수 있다.
이와 같이, 클릭 로그 데이터와 뷰 로그 데이터를 수집한 서비스 장치(30)는 클릭 로그 데이터와 뷰 로그 데이터를 이용하여 클릭률을 계산할 수 있다. 서비스 장치(30)는 날짜 별로 특정 아이템에 대하여 노출된 뷰 횟수를 모두 합산하고, 또한 사용자의 클릭이 일어난 횟수를 합산한 다음, 각 소스 아이템과 각 추천 아이템 간의 클릭률을 계산할 수 있다.
표 13은 클릭률을 예시한다.
날짜
(DATE)
알고리즘
(ALGORITHM)
소스 아이템 식별자
(SOURCE_ITEM_ID)
추천 아이템 식별자
(RECOMMENDED_ITEM_ID)
클릭 카운트
(CLICK COUNT)
뷰 카운트
(VIEW COUNT)
클릭 률
(CLICK RATIO)
20XX-YY-ZZ 2 123 234 4 100 4%
20XX-YY-ZZ 2 123 345 11 100 11%
20XX-YY-ZZ 2 123 456 0 100 0%
20XX-YY-ZZ 2 123 789 7 100 7%
20XX-YY-ZZ 3 123 111 2 100 2%
20XX-YY-ZZ 3 123 222 3 100 3%
20XX-YY-ZZ 3 123 333 0 100 0%
20XX-YY-ZZ 3 123 444 5 100 5%
표 13을 참조하면, 123번 아이템에 대한 알고리즘 2의 20XX년 YY월 ZZ일 클릭률은 (4+11+0+7)/100 = 22 %이고, 알고리즘 3의 20XX년 YY월 ZZ일 클릭률은 (2+3+0+5)/100 = 10% 이다.
서비스 장치(30)는 각 소스 아이템과 각 추천 아이템 간의 클릭률을 계산한 후, 일정 기간 동안 계속하여 클릭률이 특정 임계값 이하(혹은 미만)인 경우 추천 금지된 아이템으로 지정할 수 있다. 즉, 아이템 A에 대한 추천 아이템 B가 7일 동안 1% 미만인 경우, 아이템 B는 아이템 A에 대한 추천 아이템 리스트에서 제거할 수 있다. 또한, 서비스 장치(30)는 각 소스 아이템과 각 추천 아이템 간의 클릭 카운트 횟수가 일정 기간 동안 특정 임계값 이하(혹은 미만)인 경우 추천 금지된 아이템으로 지정할 수도 있다. 이와 같이 추천 금지된 아이템을 추천 결과(혹은 추천 아이템 리스트)에서 제거할 때, 서비스 장치(30)는 기 생성된 추천 결과(혹은 추천 아이템 리스트)에서 삭제하고자 하는 아이템을 임의로 삭제하거나, 해당 아이템에 대한 추천 점수를 낮은 값으로 변경 혹은 낮은 값이 계산되도록 변수 값을 조정하여 추천 결과(혹은 추천 아이템 리스트)에서 추천 금지된 아이템을 제거할 수 있다.
이러한 피드백 처리 과정은 서비스 장치(30)에서 자동으로 수행될 수 있다. 또한, 서비스 장치(30)는 웹 서버(20)에서 서비스하는 아이템 별로 해당 아이템의 클릭률 정보와 해당 아이템과 추천 아이템 간의 클릭율 정보 혹은 클릭 횟수 정보를 웹 서버(20)에 제공하고 웹 서버(20)로부터의 요청에 의하여 서비스 장치(30)에서 피드백 처리 과정이 수행될 수도 있다.
도 10은 본 발명의 일 실시예에 따른 각 추천 아이템 별 클릭률을 예시하는 도면이다.
도 10과 같이, 서비스 장치(30)는 웹 서버(20)에 소스 아이템(101)의 명칭, 일정 기간 동안의 평균 클릭율 정보 등 소스 아이템(101)에 관한 정보와 소스 아이템(101)에 대한 일정 기간 동안 전체 추천 클릭률(102)을 제공할 수 있다. 또한, 소스 아이템(101)에 대한 추천 아이템 리스트(103)와 각 추천 아이템 별로 명칭, 알고리즘, 추천 점수, 소스 아이템 간의 클릭률, 동작 입력 버튼 등을 제공할 수 있다. 이와 같은 정보를 통해 웹 서버(20)의 관리자는 소스 아이템(101)의 클릭률 추이와 함께 각 추천 아이템 별로 해당 소스 아이템(101) 간의 클릭률 추이를 날짜 별로 확인할 수 있다. 도 10의 경우, 제일 하단에 표시되는 추천 아이템(104)의 클릭률이 일정 기간 동안 약 0%에 머물고 있음을 예시하고 있다. 이처럼, 클릭률이 저조한 추천 아이템에 대하여 웹 서버(20) 관리자가 추천 금지 버튼을 선택하면, 웹 서버(20)는 이를 서비스 장치(30)로 전송함으로써 서비스 장치(30)는 해당 추천 아이템을 소스 아이템(101)에 대하여 추천을 금지할 수 있다. 또한, 이와 별개로 웹 서버(20) 관리자가 우선 노출 버튼을 선택하면, 웹 서버(20)는 이를 서비스 장치(30)로 전송함으로써, 서비스 장치(30)는 선택된 추천 아이템의 추천 점수(스코어)와 무관하게 해당 추천 아이템을 가장 우선적(예를 들어, 제일 상단 혹은 제일 좌측에 위치)으로 표시하도록 추천 아이템 리스트를 생성할 수 있다.
또한, 서비스 장치(30)는 클릭률 정보 내지 클릭 횟수 정보를 고려하여 자동으로 웹 서버(20) 별로 가장 적합한 알고리즘을 선택할 수 있다.
먼저, 서비스 장치(30)는 웹 서버(20)에서 제공하는 서비스마다 최고의 효율이 좋은(즉 클릭률이 가장 높거나 클릭 횟수가 가장 높은) 알고리즘을 적용시키기 위해, 사용자 로그 데이터를 특정 조건 혹은 임의로 복수의 그룹으로 구분하고, 각 그룹별로 서로 다른 알고리즘으로 계산된 추천 아이템 리스트를 제공한다. 예를 들어, 서비스 장치(30)는 사용자 로그 데이터를 임의로 A, B그룹으로 나눈 다음(예를 들어, 사용자 식별자가 홀수인 경우 A 그룹, 짝수인 경우 B 그룹), A 그룹에는 알고리즘 1로 추천을 계산하고, B 그룹에는 알고리즘 2로 추천을 계산하고 추천 아이템 리스트를 웹 서버(20) 제공할 수 있다. 또한, 서비스 장치(20)는 사용자 로그 데이터에서 웹 브라우저의 사용자 에이전트 정보를 이용하여 이동 단말기를 통해 웹 서버(20)에 접속한 그룹과 고정 단말기를 통해 웹 서버(20)에 접속한 그룹으로 사용자 로그 데이터를 구분하여 각각 상이한 알고리즘을 통해 추천을 계산하여 추천 아이템 리스트를 웹 서버(20) 제공할 수 있다.
그리고, 서비스 장치(30)는 각 그룹 별로 클릭률을 별도로 계산하여 클릭률이 가장 높은 알고리즘 혹은 클릭 횟수가 가장 높은 알고리즘을 해당 서비스의 알고리즘으로 선택하여 추천을 계산할 수 있다. 이러한 피드백 처리 과정 또한 서비스 장치(30)에서 자동으로 수행될 수 있으며, 또한 서비스 장치(30)는 웹 서버(20)에 사용자 그룹 별(즉, 알고리즘 별) 클릭율 정보 혹은 클릭 횟수 정보를 웹 서버(20)에 제공하고 웹 서버(20)로부터의 요청에 의하여 서비스 장치(30)에서 피드백 처리 과정이 수행될 수도 있다.
도 11은 본 발명의 일 실시예에 따른 알고리즘 별 추천률을 예시하는 도면이다.
도 11과 같이 사용자 그룹 A에 적용한 알고리즘 1에 대한 추천률이 일정 기간 동안 계속하여 알고리즘 2에 대한 추천률보다 높으므로 서비스 장치(30)는 해당 서비스를 제공하는 웹 서버(20)에 대한 추천 알고리즘으로 선택할 수 있다.
본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시예에 대하여 개시하였으나, 여기에 개시된 실시예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서, 상술한 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
아울러, 본 발명에 따른 장치나 단말은 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다. 나아가 본 발명에 따른 장치는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현될 수 있으며, 혹은 단일의 컴퓨터 장치에서 구현될 수도 있다.
또한, 본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.
아울러, 본 발명에 따른 실시예를 설명하는데 있어서, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.
본 발명의 추천 결과를 제공하는 방안은 다양한 유/무선 통신 시스템에 적용하는 것이 가능하다.
10: 단말 20: 웹 서버 30: 서비스 장치
40: 네트워크 210: 통신부 220: 제어부
221: 데이터 수집부 222: 데이터 처리부 223: 추천 계산부
224: 추천 결과 제공부 225: 피드백 처리부 230: 저장부

Claims (24)

  1. 데이터 송수신을 위한 통신부;
    사용자 로그 데이터, 추천 결과를 저장하는 저장부; 및
    웹 사이트에 스크립트(script)를 삽입하고, 상기 웹 사이트에 삽입된 스크립트를 통해 상기 웹 사이트에 접속한 단말로부터 상기 웹 사이트와 관련된 상기 사용자 로그 데이터를 수집하고, 상기 사용자 로그 데이터를 기반으로 추천 알고리즘을 이용하여 상기 웹 사이트에서 서비스하는 각 소스 아이템과 관련된 하나 이상의 추천 아이템에 대한 추천 결과를 산출하고, 상기 웹 사이트의 웹 서버로부터 수신한 추천 아이템 리스트 요청에 대한 응답으로 상기 추천 결과에서 상기 요청된 소스 아이템과 관련된 추천 아이템 리스트를 추출하여 상기 웹 서버에 전송하는 제어부를 포함하는, 서비스 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
KR1020160127024A 2016-09-30 2016-09-30 추천 아이템 제공을 위한 장치 KR101978301B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160127024A KR101978301B1 (ko) 2016-09-30 2016-09-30 추천 아이템 제공을 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160127024A KR101978301B1 (ko) 2016-09-30 2016-09-30 추천 아이템 제공을 위한 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020130049968A Division KR101678659B1 (ko) 2013-05-03 2013-05-03 추천 아이템 제공 방법, 이를 위한 프로그램을 기록한 기록 매체 및 장치

Publications (2)

Publication Number Publication Date
KR20160118195A KR20160118195A (ko) 2016-10-11
KR101978301B1 true KR101978301B1 (ko) 2019-05-14

Family

ID=57161815

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160127024A KR101978301B1 (ko) 2016-09-30 2016-09-30 추천 아이템 제공을 위한 장치

Country Status (1)

Country Link
KR (1) KR101978301B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101879829B1 (ko) * 2016-11-10 2018-07-19 주식회사 자이냅스 클릭 로그 데이터를 이용하여 이상 사용자를 검출하는 방법 및 장치
CN107679883A (zh) * 2017-05-05 2018-02-09 平安科技(深圳)有限公司 广告生成的方法及系统
KR102075385B1 (ko) * 2018-01-11 2020-02-11 한국전자통신연구원 인게임 이벤트에 대한 보상 중요도 측정 장치 및 방법
KR102008091B1 (ko) * 2018-01-24 2019-08-06 엔에이치엔고도 주식회사 이미지를 이용한 상품 추천 방법
KR102237399B1 (ko) * 2019-07-18 2021-04-07 정화민 인공지능 기반의 쇼핑몰 상품구매 예측 플랫폼 제공 장치 및 방법
CN111984869A (zh) * 2020-08-25 2020-11-24 北京每日优鲜电子商务有限公司 物品信息推送方法、装置、电子设备和计算机可读介质
CN112506980B (zh) * 2020-12-22 2024-02-23 北京明略软件系统有限公司 基于推荐场景的流式数据处理控频方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101051804B1 (ko) * 2010-12-16 2011-07-25 전자부품연구원 웹 기반의 미디어 콘텐츠를 위한 선호도 정보 관리 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100091669A (ko) 2009-02-11 2010-08-19 인하대학교 산학협력단 전자상거래 서비스에서의 개인화 추천 시스템
KR101500500B1 (ko) * 2010-11-19 2015-03-11 주식회사 케이티 사용자 선호 콘텐츠 추천 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101051804B1 (ko) * 2010-12-16 2011-07-25 전자부품연구원 웹 기반의 미디어 콘텐츠를 위한 선호도 정보 관리 시스템

Also Published As

Publication number Publication date
KR20160118195A (ko) 2016-10-11

Similar Documents

Publication Publication Date Title
KR101978301B1 (ko) 추천 아이템 제공을 위한 장치
US11194882B1 (en) Behavior based optimization for content presentation
US9298763B1 (en) Methods for providing a profile completion recommendation module
EP2092420B1 (en) Generic online ranking system and method suitable for syndication
US10043199B2 (en) Method, device and system for publishing merchandise information
US8249918B1 (en) Context based content adjacency filtering
US11216852B2 (en) Systems and methods for automatically generating remarketing lists
EP3274950B1 (en) Systems and methods for automatically managing placement of content slots in an information resource
KR20140014664A (ko) 맞춤 뉴스 서비스 제공 애플리케이션 장치 및 그 서비스 방법
KR20140111265A (ko) 웹 페이지들을 제공하기 위한 방법 및 장치
US20140101249A1 (en) Systems and Methods for Managing and Presenting Information
KR101678659B1 (ko) 추천 아이템 제공 방법, 이를 위한 프로그램을 기록한 기록 매체 및 장치
TW201112024A (en) Requesting computer data assets
US9565224B1 (en) Methods, systems, and media for presenting a customized user interface based on user actions
US9210222B2 (en) Browser cookie analysis and targeted content delivery
US20150032657A1 (en) Computerized system for the distribution of a multi-platform digital publishing product and relative method
KR20180047467A (ko) 사용자 프로필 제공 시스템 및 방법
KR101372585B1 (ko) 객체정보 제공 시스템 및 방법
US11799979B2 (en) Predictive retargeting system and method
KR102590412B1 (ko) 클라이언트 디바이스에서 중복 디지털 컴포넌트의 제공 및 디스플레이 제한
KR101372584B1 (ko) 객체정보 제공 시스템 및 방법
US9639817B2 (en) Remote metering for panelist web usage
US9619822B1 (en) Method and system for identifying user propensity to access content via a communication network
KR20170085721A (ko) 인터넷 광고 제공 방법
Iwashita et al. Framework of Measuring Engagement with Access Logs Under Tracking Prevention for Affiliate Services

Legal Events

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