KR20210055759A - 머신 러닝을 사용한 개인화된 배너 이미지 생성 - Google Patents

머신 러닝을 사용한 개인화된 배너 이미지 생성 Download PDF

Info

Publication number
KR20210055759A
KR20210055759A KR1020217010405A KR20217010405A KR20210055759A KR 20210055759 A KR20210055759 A KR 20210055759A KR 1020217010405 A KR1020217010405 A KR 1020217010405A KR 20217010405 A KR20217010405 A KR 20217010405A KR 20210055759 A KR20210055759 A KR 20210055759A
Authority
KR
South Korea
Prior art keywords
image
user
data
product
online banner
Prior art date
Application number
KR1020217010405A
Other languages
English (en)
Inventor
슈아이 젱
모하마드하디 키아푸어
난디니 라마크리쉬난
크리스토프 부뎃
프레드 아이 주니어 조우
Original Assignee
이베이 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이베이 인크. filed Critical 이베이 인크.
Publication of KR20210055759A publication Critical patent/KR20210055759A/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/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • 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/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0269Targeted advertisements based on user profile or attribute
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0255Targeted advertisements based on user history
    • 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/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0255Targeted advertisements based on user history
    • G06Q30/0256User search
    • 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/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0276Advertisement creation
    • 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/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

머신은 제품 이미지와 관련된 사용자 행동에 관한 데이터를 기반으로 사용자를 위한 개인화된 온라인 배너 이미지를 실시간으로 생성하도록 구성된다. 예를 들어, 머신은 사용자와 관련된 하나 이상의 데이터 특징을 나타내는 사용자 선택을 수신한다. 하나 이상의 데이터 특징은 제품의 이미지와 관련된 사용자 행동에 관한 데이터 특징을 포함한다. 머신은, 머신 러닝 알고리즘을 사용하여, 제품의 이미지와 관련된 사용자 행동에 관한 데이터 특징을 포함한 하나 이상의 데이터 특징에 기초하여 머신 러닝 알고리즘의 데이터 표현을 생성한다. 데이터 표현은 온라인 배너 이미지의 하나 이상의 특성에 관한 하나 이상의 데이터 특징을 포함한다. 머신은 데이터 표현에 기초하여 사용자를 위한 온라인 배너 이미지를 생성한다.

Description

머신 러닝을 사용한 개인화된 배너 이미지 생성
본 출원은 2018년 10월 9일에 출원된 미국 특허출원 번호 16/155,255에 대한 우선권의 이익을 주장하며, 그 전체가 참조로서 본 명세서에 포함된다.
본 개시물의 실시예들은 일반적으로 머신 러닝을 사용하여 개인화된 배너 이미지를 생성하는 것에 관한 것이고, 제한하는 방식이 아니라, 더 구체적으로, 특정 사용자에게 어필(appeal)하도록 개인화된 온라인 배너 이미지를 표시하기 위한 향상된 사용자 인터페이스(user interface)를 생성하는 것에 관한 것이다.
현재 온라인 광고(예컨대, 온라인 배너 이미지 또는 간단히 "온라인 배너")는 일부 검색어를 사용한 사용자의 이전 검색을 기초로 사용자에게 표시하기 위해 생성된다. 이러한 온라인 광고는 검색어를 이용하여 수행되는 검색의 결과를 나타내는 제품의 스톡 이미지(stock image)를 포함할 수 있다. 제품의 스톡 이미지는 사용자가 관심 있는 제품을 정확하게 나타내지 않을 수 있고, 따라서 사용자의 주의를 끌지 못할 수 있으며, 의도한 결과(예컨대, 온라인 광고 클릭 또는 표시된 제품 구매)를 내지 못할 수 있다. 또한, 배너 이미지는 종종 미리 정의되고 미리 생성되며, 사용자에게 온라인 배너가 보여질 때는 더 이상 사용자와 관련이 없다.
첨부된 도면들 중 다양한 도면들은 단지 본 개시물의 예시적인 실시예들을 도시하고, 그 범위를 제한하는 것으로 간주될 수 없다.
도 1은 일부 예시적인 실시예에 따른, 네트워크 시스템을 도시하는 블록도이다.
도 2는 일부 예시적인 실시예에 따른, 머신 러닝 프로그램의 훈련 및 사용을 도시한다.
도 3은 일부 예시적인 실시예에 따른, 개인화된 온라인 배너 이미지를 표시하는 사용자 인터페이스를 도시한다.
도 4는 일부 예시적인 실시예에 따른, 머신 러닝 시스템의 컴포넌트를 도시한 블록도이다.
도 5는 일부 예시적인 실시예에 따른, 머신 러닝을 이용하여 개인화된 배너 이미지를 생성하는 방법을 도시한 흐름도이다.
도 6은 일부 예시적인 실시예에 따른, 머신 러닝을 이용하여 개인화된 배너 이미지를 생성하는 방법과, 도 5에 도시된 방법에 추가적인 단계를 나타내는 흐름도이다.
도 7은 일부 예시적인 실시예에 따른, 머신 러닝을 이용하여 개인화된 배너 이미지를 생성하는 방법과, 도 6에 도시된 방법에 추가적인 단계를 나타내는 흐름도이다.
도 8은 일부 예시적인 실시예에 따른, 머신 러닝을 이용하여 개인화된 배너 이미지를 생성하는 방법과, 도 5에 도시된 방법의 단계 504를 더 자세하게 나타내는 흐름도이다.
도 9는 일부 예시적인 실시예에 따른, 머신에 설치될 수 있는 소프트웨어 아키텍처의 예시를 도시한 블록도이다.
도 10은 일부 예시적인 실시예에 따른, 머신이 본 명세서에서 논의된 방법론들 중 임의의 하나 이상을 수행하게 하기 위하여 명령어 세트가 실행될 수 있는 컴퓨터 시스템 형태의 머신을 나타낸 도식적 표현을 도시한다.
여기에 제공된 표제는 단지 편의를 위한 것이며 사용된 용어의 범위나 의미에 반드시 영향을 미치는 것은 아니다.
다음의 설명은 본 개시물의 예시적인 실시예를 구현하는 시스템, 방법, 기법, 명령어 시퀀스 및 컴퓨팅 머신 프로그램 제품을 포함한다. 다음의 설명에서, 설명의 목적으로, 발명 주제의 다양한 실시예의 이해를 제공하기 위하여 다양한 특정 세부 사항이 제시된다. 그러나, 통상의 기술자에게는 이러한 특정 세부 사항 없이 발명 주제의 실시예가 실시될 수 있다는 것이 명백할 것이다. 일반적으로, 잘 알려진 명령어 인스턴스(instance) 프로토콜, 구조 및 기법이 반드시 자세히 표시되는 것은 아니다.
머신 러닝 시스템은 웹사이트(예컨대, 온라인 스토어(store) 또는 온라인 마켓플레이스(marketplace)의 웹사이트)에서 이용 가능한 제품 리스팅(listings)에서 추출된 실제 이미지(예컨대, 사진)에 기반하여, 머신 러닝 알고리즘을 사용하여 온라인 배너의 생성을 용이하게 할 수 있다. 이미지는 사용자가, 예를 들어, 앞서 방문했던 웹사이트에서 이전에 보았던 제품에 해당한다. 사용자는 이러한 제품을 검색했거나 또는 웹사이트를 탐색하는 동안 사용자에게 표시되는 이러한 제품과 관련된 정보를 클릭했을 수 있다.
구매에 이용 가능한 실제 제품의 리스팅으로부터의 이미지를 포함하는 온라인 배너에 추가로, 온라인 배너는 어떤 유형의 온라인 배너가 다양한 사용자에게 선택되는지에 대한 계속적인 머신 러닝을 기초로 특정 사용자 또는 사용자 그룹에 심미적으로 어필하도록 생성된다. 예를 들어, 특정한 구조적 요소(예를 들어, 세 개의 동일한 부분으로 세로로 분할되어, 왼쪽 부분은 텍스트를 포함하고 있고 중간 부분 및 오른쪽 부분은 특정 제품의 이미지를 각각 포함하고 있는, 녹색 직사각형 온라인 배너)를 포함하고 있는 온라인 배너가 많은 사용자들에게 표시되고, 특정 인구 통계적 집단에 어필할 수 있는 것으로 판정될 수 있다. 온라인 배너의 특정한 특징은, 온라인 배너와 관련된 다양한 특징 조합에 대한 사용자의 응답에 대하여 계속적인 학습을 하기 위하여, 사용자들에게 표시되는 온라인 배너의 다음 버전에서 반복적으로 수정될 수 있다.
온라인 배너의 다양한 측면에 대한 사용자들의 선호 및 비선호의 더 나은 이해를 성취하기 위하여, 계속적인 학습은 머신 러닝 시스템이 머신 러닝 시스템의 데이터 표현(예컨대, 임베딩(embedding))을 반복적으로 업데이트할 수 있게 한다. 결과적으로, 머신 러닝 시스템은 사용자 그룹 또는 특정 사용자에게 어필하는(예컨대, 선택가능성이 높은) 고도로 맞춤화된 온라인 배너를 생성한다.
예를 들어, A/B 테스트는 온라인 배너와 관련된 사용자 데이터를 수집하기 위해 활용된다(예를 들어, 특정 온라인 배너에 대한 클릭 또는 클릭 결여, 또는 온라인 배너에 포함된 제품 이미지에 표시된 제품의 전환율). 사용자 데이터(예: 온라인 배너 디자인 선택에 대한 사용자 피드백)에 기반하여, 머신 러닝 시스템은, 하나 이상의 강화 학습 알고리즘을 이용하여, 배너 광고 클릭율과 전환율을 최적화하기 위해, 온라인 배너 이미지의 다양한 측면을 반복적으로 수정한다.
일부 예시적인 실시예에서, 일부 온라인 배너가 선택(예: 클릭)되고 있다는 판단을 기초로, 머신 러닝 시스템은 사용자 일반에 대한 것뿐만 아니라 특정 사용자에 대하여 또한 학습한다. 다음 반복(예: 사용자에게 보여지는 다음 온라인 배너)에서, 머신 러닝 시스템은 사용자에게 이전에 보여진 온라인 배너의 하나의 특징을 수정하여, 사용자가 수정된 온라인 배너를 클릭하는지 여부에 대해 판정한다. 이는 배너의 수정된 특징과 관련된 사용자의 선호가 어디에 있는지를 이해하는 데 도움이 된다. 이 학습은 온라인 배너의 제품 이미지와 온라인 배너의 심미적 품질에 대한 사용자의 특정 선호에 맞춘 온라인 배너의 맞춤화 수준의 향상을 돕는다.
일부 예시적인 실시예에서, 머신 러닝 시스템은 해당 온라인 배너가 사용자에게 선택된 횟수를 기초로, 온라인 배너의 순위를 매김으로써 더 성공적인 온라인 배너를 식별한다. 성공적인 온라인 배너와 관련된 특징의 조합은 온라인 배너의 순위에 기초한 특정 가중치와 연관된다. 머신 러닝 시스템은 또한, 일부 온라인 배너가 인구 통계적으로, 지리적으로, 직업적으로, 이웃 문화적 등으로 특정 사람의 집단에 어필하는지 여부를 판단하기 위하여, 더 성공적인 온라인 배너의 특징의 조합을 분석한다. 머신 러닝 시스템은 다양한 방법으로 사용자 인구를 분류하여, 어떤 특징 조합이 사용자 인구의 다양한 분류에 어필하는지를 학습할 수 있다.
일반적으로, 공중이 관심 있는 아이템(item)에 관련된 디지털 컨텐츠를 게재하는 웹사이트는, 아이템에 대한 다양한 정보를 포함하는 리스팅으로만 그러한 디지털 컨텐츠를 제공한다. 그러한 디지털 컨텐츠의 예시는 제품의 판매자를 대신하여 게재된 리스팅이다. 클라이언트 디바이스의 사용자 인터페이스는, 제품의 하나 이상의 사진 및 제품의 하나 이상의 특징에 대한 설명을 포함하는 제품의 리스팅을 제공한다.
기존의 사용자 인터페이스는, 기존의 사용자 인터페이스의 사용자가 아이템과 관련된 정확한 데이터를 찾기 위하여 여러 번 스크롤하고 화면 전환을 하도록 요구하는, 특히 기존의 사용자 인터페이스가 작은 화면에 표시될 때, 컴퓨터의 효율적인 기능과 관련된 많은 결점을 가지고 있다. 작은 화면은 데이터와 기능을 여러 계층(layer) 또는 뷰(view)로 나누어야 하는 경향이 있기 때문에, 기존의 사용자 인터페이스는 사용자가 원하는 데이터 또는 기능을 얻기 위하여 많은 계층을 드릴 다운(drill down)하도록 요구한다. 이 프로세스는 특히 초보 사용자에게, 느리고 복잡하며 배우기 어려울 수 있다. 또한, 이 프로세스는 데이터 처리 속도를 감소시키고, 종종 더 높은 데이터 스토리지 요구 사항과 관련된다.
일부 예시적인 실시예에서, 사용자 인터페이스를 통하여 표시되는 반복적으로 업데이트되는 온라인 배너를 제공하는 머신 러닝 시스템은, 온라인 배너의 시각화가 사용자에게 제공되는 때 사용자에게 실제 관심 있는 특정 아이템과 관련된 정확한 정보를 전달해주는 전자 장치의 특정한 방식으로, 온라인 배너에 포함된 아이템 이미지에 도시된 아이템과 관련된 정보를 제공함으로써, 종래의 사용자 인터페이스를 개선한다. 전자 장치의 사용자 인터페이스의 향상된 기능은 또한 데이터 처리 속도와 데이터 스토리지 효율성을 개선함으로써 전자 장치의 효율성을 향상시킨다.
도 1을 참조하면, 상위 레벨 클라이언트-서버 기반 네트워크 아키텍처(100)의 예시적인 실시예가 도시된다. 네트워크 시스템(102)은 네트워크(104)(예: 인터넷 또는 광역망(WAN))를 통해 하나 이상의 클라이언트 디바이스(110)에 서버 측 기능을 제공한다. 도 1은, 예를 들어, 클라이언트 디바이스(110)에서 실행되는 웹 클라이언트(112)(예: 워싱턴주 레드몬드의 Microsoft®에 의해 개발된 Internet Explorer®와 같은 브라우저), 클라이언트 애플리케이션(114), 및 프로그램 클라이언트(116)를 도시한다.
클라이언트 디바이스(110)는 이동 전화, 데스크톱 컴퓨터, 랩톱, PDA, 스마트폰, 태블릿, 울트라북, 넷북, 멀티 프로세서 시스템, 마이크로프로세서 기반 또는 프로그래밍 가능한 가전 제품, 게임 콘솔, 셋톱박스, 웨어러블 디바이스, 스마트 워치, 또는 사용자가 네트워크 시스템(102)에 액세스하기 위해 사용할 수 있는 임의의 다른 통신 디바이스를 포함할 수 있으나, 다만 이에 제한되지는 않는다. 일부 실시예에서, 클라이언트 디바이스(110)는 (예컨대, 사용자 인터페이스의 형태로) 정보를 디스플레이하는 디스플레이 모듈을 포함할 수 있다. 추가 실시예에서, 클라이언트 디바이스(110)는 하나 이상의 터치 스크린, 가속도계, 자이로스코프, 카메라, 마이크로폰, GPS 디바이스 등을 포함한다. 클라이언트 디바이스(110)는 네트워크 시스템(102) 내에서 디지털 아이템을 포함하는 거래(transaction)를 수행하는 데 사용될 수 있는 사용자의 디바이스이다. 일부 예시적인 실시예에서, 네트워크 시스템(102)은 제품 리스팅의 요청에 응답하고, 네트워크 기반 마켓플레이스에서 이용 가능한 제품 또는 서비스의 아이템 리스팅을 구성하는 간행물을 게재하고, 이러한 마켓플레이스 거래에 대한 결제를 관리하는 네트워크 기반 마켓플레이스("온라인 마켓플레이스"라고도 함)를 포함한다. 네트워크(104)의 하나 이상의 부분은 애드혹(ad hoc) 네트워크, 인트라넷, 엑스트라넷, VPN(virtual private network), LAN(local area network), WLAN(wireless LAN), WAN(wide area network), WWAN(wireless WAN), MAN(metropolitan area network), 인터넷의 일부, PSTN(Public Switched Telephone Network)의 일부, 셀룰러 전화 네트워크, 무선 네트워크, WiFi 네트워크, WiMax 네트워크, 다른 유형의 네트워크, 또는 둘 이상의 이러한 네트워크의 조합일 수 있다.
클라이언트 디바이스(110)는 웹 브라우저, 메시징 애플리케이션, 전자 메일(이메일) 애플리케이션, 전자 상거래 사이트 애플리케이션(마켓플레이스 애플리케이션이라고도 함) 등과 같은 하나 이상의 애플리케이션("앱"이라고도 함)을 포함하나, 다만 이에 제한되지는 않는다. 일부 실시예에서, 만약 전자 상거래 사이트 애플리케이션이 클라이언트 디바이스(110)에 포함되어 있다면, 이 애플리케이션은, 필요에 따라, 로컬에서 사용할 수 없는 데이터 또는 처리 기능(예: 판매 가능한 아이템의 데이터베이스에 대한 액세스, 사용자 인증, 결제 방법 증명 등)을 위하여 네트워크 시스템(102)과 통신하도록 구성된 애플리케이션에, 사용자 인터페이스 및 적어도 일부의 기능을 로컬로 제공하도록 구성된다. 반대로, 만약 전자 상거래 사이트 애플리케이션이 클라이언트 디바이스(110)에 포함되지 않는다면, 클라이언트 장치(110)는 네트워크 시스템(102)에서 호스팅되는 전자 상거래 사이트(또는 그 변형)에 액세스하기 위해 웹 브라우저를 사용한다.
하나 이상의 사용자(106)는 사람, 머신, 또는 클라이언트 디바이스(110)와 상호 작용하는 다른 수단일 수 있다. 예시적인 실시예에서, 사용자(106)는 네트워크 아키텍처(100)의 부분이 아니지만, 클라이언트 디바이스(110) 또는 다른 방법을 통하여 네트워크 아키텍처(100)와 상호 작용할 수 있다. 예를 들어, 사용자(106)는 클라이언트 디바이스(110)에 입력(터치 스크린 입력 또는 영숫자(alphanumeric) 입력)을 제공하고, 입력은 네트워크(104)를 통하여 네트워크 시스템(102)에 전달된다. 이 경우, 네트워크 시스템(102)은, 사용자(106)로부터의 입력의 수신에 대응하여, 네트워크(104)를 통하여 사용자(106)에게 나타낼 정보를 클라이언트 디바이스(110)에 전달한다. 이러한 방식으로, 사용자(106)는 클라이언트 디바이스(110)를 사용하여 네트워크 시스템(102)과 상호 작용할 수 있다.
애플리케이션 프로그램 인터페이스(API) 서버(120)와 웹 서버(122)는 하나 이상의 애플리케이션 서버(140)에 연결되고, 그리고 프로그래밍 및 웹 인터페이스를 각각 제공한다. 애플리케이션 서버(140)는, 하나 이상의 모듈 또는 애플리케이션을 포함하고 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있는, 머신 러닝 시스템(400)과 결제 시스템(144)을 호스팅할 수 있다. 애플리케이션 서버(140)는, 차례로, 하나 이상의 정보 스토리지 저장소 또는 데이터베이스(126)에의 액세스를 가능하게 하는 하나 이상의 데이터베이스 서버(124)에 결합하는 것으로 나타난다. 예시적인 실시예에서, 데이터베이스(126)는 머신 러닝 시스템(400)에 의하여 활용되는 정보(예: 게재물, 리스팅, 디지털 컨텐츠 아이템, 제품 설명서, 제품 이미지 등)를 저장하는 스토리지 디바이스이다. 데이터베이스(126)는 또한, 예시적인 실시예에 따라, 디지털 아이템 정보를 저장할 수도 있다.
추가적으로, 하나 이상의 서드 파티(third party) 서버(130) 상에서 실행되는 서드 파티 애플리케이션(132)은 API 서버(120)에 의해 제공되는 프로그램 인터페이스(programmatic interface)를 통하여 네트워크 시스템(102)에 프로그램 액세스(programmatic access)하는 것으로 나타난다. 예를 들어, 서드 파티 애플리케이션(132)은, 네트워크 시스템(102)으로부터 검색된 정보를 활용하여, 서드 파티에 의하여 호스팅된 웹사이트에서 하나 이상의 특징 또는 기능을 지원한다. 서드 파티 웹사이트는, 예를 들어, 네트워크 시스템(102)의 관련 애플리케이션에 의하여 지원되는 하나 이상의 프로모션, 마켓플레이스, 또는 결제 기능을 제공한다.
머신 러닝 시스템(400)은 네트워크 시스템(102)에 액세스하는 사용자(106)에게 다수의 게재 기능 및 서비스를 제공한다. 예를 들어, 머신 러닝 시스템(400)은 특정 사용자와 관련된 하나 이상의 데이터 특징을 기초로 맞춤화된 배너 이미지의 생성 및 온라인 게재를 가능하게 한다. 이 하나 이상의 데이터 특징은 제품의 이미지와 관련된 사용자 행동에 관한 데이터 특징을 포함한다. 결제 시스템(144)은 지불 및 거래를 수행하거나 가능하게 하는 다수의 기능을 제공한다. 머신 러닝 시스템(400)과 결제 시스템(144)이 모두 네트워크 시스템(102)의 일부를 형성하는 것으로 도 1에 나타나있지만, 대안적인 실시예에서, 머신 러닝 시스템(400)과 결제 시스템(144)은 각각 네트워크 시스템(102)과 분리되어 있고 구별되는 서비스의 일부분을 형성할 수 있다는 것을 이해할 수 있다. 일부 실시예에서, 결제 시스템(144)은 머신 러닝 시스템(400)의 일부분을 형성할 수 있다.
또한, 도 1에 나타난 클라이언트-서버 기반 네트워크 아키텍처(100)가 클라이언트-서버 아키텍처를 채용하지만, 본 발명의 주제는 물론 그러한 아키텍처에 제한되지 않고, 예를 들어 분산된, 또는 p2p(peer-to-peer), 아키텍처 시스템에서도 동등하게 애플리케이션을 찾아낼 수 있다. 머신 러닝 프로그램(400)과 결제 시스템(144)은 네트워킹 기능을 가질 필요가 없는 독립 소프트웨어 프로그램으로도 또한 구현될 수 있다.
웹 클라이언트(112)는 웹 서버(122)에 의해 지원되는 웹 인터페이스를 통하여 머신 러닝 시스템(400) 또는 결제 시스템(144)에 액세스할 수 있다. 유사하게, 프로그램 클라이언트(116)는 API 서버(120)에 의해 제공되는 프로그램 인터페이스를 통해 머신 러닝 프로그램(400) 또는 결제 시스템(144)에 액세스할 수 있다. 프로그램 클라이언트(116)는, 예를 들어, 판매자가 오프라인 방식으로 네트워크 시스템(102) 상의 리스팅을 작성 및 관리할 수 있게 하고, 프로그램 클라이언트(116)와 네트워크 시스템(102) 간 배치 모드(batch-mode) 통신을 수행하는, 판매자 애플리케이션(예: 캘리포니아 산호세의 eBay® Inc.에 의해 개발된 Turbo Lister 애플리케이션)일 수 있다.
도 2는 일부 예시적인 실시예에 따른, 머신 러닝 프로그램의 훈련 및 사용을 도시한다. 일부 실시예에서, 머신 러닝 알고리즘 또는 도구라고도 불리는, 머신 러닝 프로그램(MLP)은, 디지털 컨텐츠(예: 이미지, 제품 설명, 또는 리스팅) 검색과 같은, 검색과 관련된 작업 및 최적화 작업을 수행하도록 활용된다.
머신 러닝은 컴퓨터가 명시적으로 프로그래밍됨이 없이 학습하는 능력을 제공하는 연구 분야이다. 머신 러닝은 기존 데이터로부터 학습하고 새로운 데이터에 대한 예측을 만들어내는 알고리즘(여기서는 "도구"라고도 함)의 연구 및 구성을 탐색한다. 그러한 머신 러닝 도구는 출력 또는 평가(220)로 표현된 데이터 기반 예측 또는 결정을 내리기 위해, 예시 훈련 데이터(212)로부터 모델을 구축함으로써 작동한다. 비록 예시적인 실시예가 몇 가지 머신 러닝 도구와 관련하여 제시되었지만, 여기에서 제시된 원리는 다른 머신 러닝 도구에 적용될 수 있다.
일부 예시적인 실시예에서, 상이한 머신 러닝 도구가 사용된다. 예를 들어, 로지스틱 회귀(Logistic Regression, LR), Naive-Bayes, 랜덤 포레스트(Random Forest, RF), 신경망(NN), 매트릭스 분해(matrix factorization) 및 SVM(Support Vector Machine) 도구를 사용하여 특정 사용자에게 어필하는 데 최적화된 온라인 배너 이미지를 생성할 수 있다.
일반적으로, 머신 러닝에는 두 가지 유형의 문제가 있다: 분류 문제(classification problem)와 회귀 문제(regression problem). 범주화 문제라고도 불리는 분류 문제는 몇몇의 범주 값 중 하나로 아이템을 분류하는 것(예컨대, 이 물체가 사과입니까 아니면 오렌지입니까?)을 목표로 한다. 회귀 문제는 일부 아이템을 정량화(예컨대, 실수인 값을 제공하여)하는 것을 목표로 한다. 일부 실시예에서, 예시적인 머신 러닝 알고리즘은 온라인 마켓플레이스의 사용자에 대한 맞춤으로서 하나 이상의 제품을 한정하기 위해 점수(예: 1 내지 100의 숫자)를 제공한다.
특정 예시적인 실시예에서, 머신 러닝 알고리즘은 결과에 영향을 미치는 식별된 특징(202)(또는 특징의 조합(202)) 중에서 상관 관계를 찾기 위해 훈련 데이터(212)를 활용한다. 일부 예시적인 실시예에서, 예시적 머신 러닝 알고리즘은, 온라인 배너 이미지에 어떤 색을 사용할지, 어떤 색의 조합이 사용자에게 어필되는지, 온라인 배너 이미지에 포함된 다른 섹션과 있어서 어떤 균형(예: 치수 또는 비율)이 사용자에게 어필되는지, 어떤 유형, 크기, 색, 글꼴에 사용자가 응답을 하는지 및 사용자로부터 원하는 응답(예: 제품의 구매, 또는 온라인 배너 이미지의 선택)을 이끌어내는 제품 이미지와 관련된 다양한 특징이 무엇인지 결정하는 데 사용된다. 특징의 무작위 조합(하나의 전체적인 색의 온라인 배너 이미지 또는 그외, 온라인 배너 이미지의 분할 수, 온라인 배너 이미지의 각 분할 부분의 색, 온라인 배너 이미지에서 상이한 제품의 수, 만약 하나의 제품만 사용된다면 - 제품 이미지가 온라인 배너 이미지에 등장하는 수, 온라인 배너 이미지에서 제품 이미지가 등장하는 곳, 또는 다양한 글자 관련 특징)이 훈련 데이터(212)로 사용된다. 머신 러닝 프로그램은 특징의 다양한 조합을 사용한 다수의 온라인 배너 이미지를 생성하기 위해 실행된다. 일부 예시적인 실시예에서, 머신 러닝 시스템(400)의 관리자는 특징의 다양한 조합 중 가장 뛰어난 것과 가장 뛰어나지 않은 것을 결정한다. 성공적인 것으로 결정된(예컨대, 분류된) 특징의 조합은 머신 러닝 알고리즘에 입력되어, 머신 러닝 알고리즘이 어떤 특징의 조합("패턴"이라고도 함)이 "좋은(예컨대, 사용자가 온라인 배너 이미지를 선택할 것이다)"지, 어떠한 패턴이 "나쁜"지 학습할 수 있다.
사용자와 다양한 온라인 배너와의 상호 작용은 머신 러닝 알고리즘이 식별된 특징(202)에 추가하고 어떤 배너 패턴이 사용자에게 선호되는지 - 어떤 색 패턴/조합이 선호되는지, 사용자가 하나의 제품 이미지를 포함하는 온라인 배너보다 둘 이상의 제품 이미지를 포함하는 온라인 배너를 선호하는지 여부, 온라인 배너에서 한 가지 색상(예: 분홍)을 많이 보는 것을 선호하는지, 제품 이미지가 없는 온라인 배너를 선호하는지 여부 등 - 를 학습하는 데 사용하는 또 다른 특징을 제공한다. 다음으로, 머신 러닝 시스템은 특징의 동일한 조합에 대해 수많은 배너를 생성하기 시작하고, 해당 시점까지 수행된 학습을 기초로 특정 시간에 사용자들에게 보여줄 최고의 배너를 계속적인 학습을 기반으로 선택한다.
머신 러닝 알고리즘은 데이터를 분석하여 평가(220)를 생성하기 위해 특징을 활용한다. 특징(202)은 관찰되는 현상의 측정 가능한 개개의 속성(property)이다. 특징의 개념은 선형 회귀와 같은 통계학상 기법에서 사용되는 설명적 변수의 개념과 관련이 있다. 유익하고, 차별적이며 독립적인 특징을 고르는 것이 패턴 인식, 분류 및 회귀에서 MLP의 효과적인 운영을 위해 중요하다. 특징은 숫자, 문자열 및 그래프와 같이 상이한 유형일 수 있다.
일부 예시적인 실시예에서, 특징(202)은 상이한 유형일 수 있고, 하나 이상의 사용자 특징(204), 아이템 특징(206), 선호 특징(208) 및 온라인 배너 특징(210)을 포함할 수 있다. 사용자 특징(204)은 하나 이상의, 사용자 식별자(예: 이름 또는 로그인), 사용자가 구매자인지 판매자인지 또는 둘 모두인지, 사용자의 성별, 사용자의 위치, 사용자의 언어, 사용자의 하나 이상의 구매와 관련된 데이터, 온라인 마켓플레이스에서 사용자가 열람한 아이템의 식별자, 온라인 마켓플레이스에서 좋아한 아이템의 식별자, 온라인 마켓플레이스의 온라인 카트에 넣은 아이템 등과 같은 특징을 포함한다.
아이템 특징(206)은 온라인 마켓플레이스에서 판매 가능한 제품과 같은, 아이템과 관련된 임의의 데이터를 포함한다. 아이템 특징(206)의 예시는 아이템 식별자(예: 재고 보관 단위(stock keeping unit, SKU)와 같은 제품 식별자), 아이템의 종류, 아이템의 브랜드, 아이템의 크기, 아이템의 색, 아이템의 이미지 등이다.
선호 특징(208)은 사용자에 의해 제공되는 명시적인 선호, 또는 암시된 또는 유도된 사용자의 선호(예: 사용자에 의해 다른 사용자에게 제공되는 추천으로부터 추출된 사용자의 선호)와 같은 사용자의 선호와 관련된 임의의 데이터를 포함한다.
온라인 배너 특징(210)은 온라인 배너 이미지를 생성하기 위한 템플릿(template)을 식별하는 템플릿 데이터 특징, 얼마나 자주 사용자에게 온라인 배너 이미지가 나타내져야 하는지를 식별하는 빈도 특징, 특정 온라인 배너 이미지가 원하는 결과(예: 사용자와 온라인 배너 이미지와의 상호 작용)와 연관이 있는지 여부를 나타내는 결과 특징을 포함한다.
머신 러닝 알고리즘은 훈련 데이터(212)를 활용하여 결과 또는 평가(220)에 영향을 주는 식별된 특징(202)들 간의 상관 관계를 찾는다. 일부 예시적인 실시예에서, 훈련 데이터(212)는 사용자가 온라인 배너 이미지를 선택하도록 이끄는 온라인 배너 이미지의 특징의 조합, 사용자가 온라인 배너 이미지에 포함된 제품 이미지에 표시된 제품을 구매하도록 이끄는 온라인 배너 이미지의 특징 조합 등과 같이, 하나 이상의 식별된 특징(202) 및 하나 이상의 결과에 대한 알려진 데이터를 포함한다.
훈련 데이터(212)와 식별된 특징(202)을 이용하여, 머신 러닝 툴은 동작(214)에서 훈련된다. 머신 러닝 툴은 훈련 데이터(212)와 상관 관계를 갖도록 특징(202)의 값을 평가한다. 훈련의 결과는 훈련된 머신 러닝 프로그램(216)이다.
머신 러닝 프로그램(216)이 평가를 수행하기 위해 사용될 때, 새로운 데이터(218)가 훈련된 머신 러닝 프로그램(216)으로의 입력으로서 제공되고, 머신 러닝 프로그램(216)은 평가(220)를 출력으로서 생성한다. 예를 들어, 사용자가 사용자의 클라이언트 디바이스의 사용자 인터페이스에 사용자에게 표시된 특정한 온라인 배너 이미지를 선택하면, 다양한 온라인 배너 이미지를 생성하도록 사용되는 특징의 다양한 조합으로 훈련된 머신 러닝 프로그램은, 머신 러닝 프로그램의 추가 훈련 및 특정한 사용자와 가능한 다른 사용자를 위한 미래의 개인화된 온라인 배너 이미지를 생성하는 데 사용될 하나 이상의 추가적인 특징(예: 사용자가 특정한 온라인 배너 이미지를 선택했다는 것을 나타내는 특징)을 이용하여 특징(202)을 업데이트한다.
도 3은 다양한 예시적인 실시예에 따라, 선택 가능한 개인화된 온라인 배너 이미지(310)를 클라이언트 디바이스의 사용자에게 표시함으로써 개선된 사용자 인터페이스(300)를 도시한다. 온라인 배너 이미지(310)는 하나 이상의 섹션(예: 섹션(312), 섹션(314), 또는 섹션(316))을 포함한다. 온라인 배너 이미지(310)는 가로 섹션, 세로 섹션, 또는 이들의 조합으로 분할될 수 있다. 일부 예시적인 실시예에서, 온라인 배너 이미지(310)의 각 섹션은 동일한 배경색을 가지고 있다. 일부 예시적인 실시예에서, 다양한 섹션의 배경색은 상이하다. 다양한 예시적인 실시예에서, 다양한 섹션의 배경색은 동일한 색상의 음영이다.
온라인 배너 이미지(310)의 하나 이상의 섹션은 글자를 포함하고 있다. 도 3에 나타난 바와 같이, 온라인 배너 이미지(310)의 섹션(312)은 글자(318)를 포함한다. 글자의 배치, 글자와 관련된 글꼴의 유형 및 사이즈는, 다양한 예시적인 실시예에 따라, 다를 수 있다.
온라인 배너 이미지(310)의 하나 이상의 섹션은 하나 이상의 아이템의 하나 이상의 이미지를 포함한다. 도 3에 나타난 바와 같이, 섹션(314)은 이미지(320)를 포함하고, 섹션(312)은 이미지(322)를 포함한다. 하나 이상의 아이템은, 일부 경우에, 온라인 마켓플레이스에서 구매 가능한 제품이다. 일부 예시적인 실시예에서, 하나 이상의 이미지는 사용자가 이전에 본 제품의 이미지이다. 사용자가 이전에 본 제품의 이미지는 온라인 배너 이미지에 포함되어, 사용자가 온라인 마켓플레이스의 웹 사이트를 검색하는 동안 최근에 나타난(예: 표현된 또는 표시된) 관심사로 온라인 배너 이미지를 개인화할 수 있다.
일부 예시적인 실시예에서, 이미지(320)와 이미지(322)는 특정 제품의 완전히 동일한 이미지이다(예컨대, 이미지가 온라인 배너 이미지(310)에서 반복됨). 특정 예시적인 실시예에서, 이미지(320)와 이미지(322)는 특정 제품의 두 개의 상이한 이미지이다(예컨대, 이미지는 온라인 배너 이미지(310)에서 특정 제품의 상이한 시각을 표시). 다양한 예시적인 실시예에서, 이미지(320)와 이미지(322)는 특정한 유형의 두 개의 상이한 제품의 이미지이다(예컨대, 이미지(320)는 제 1 유형의 신발을 도시하고, 이미지(322)는 제 2 유형의 신발을 도시). 일부 예시적인 실시예에서, 이미지(320)와 이미지(320)는 두 개의 상이한 유형의 두 개의 상이한 제품의 이미지이고, 위 제품의 유형은 특정 스포츠와 같이 동일한 범주에 속한다(예컨대, 이미지(320)는 하키 스틱을 도시하고, 이미지(322)는 하키 퍽을 도시). 다양한 예시적인 실시예에서, 이미지(320)와 이미지(322)는 두 개의 상이한 유형의 두 개의 상이한 제품의 이미지이고, 위 제품의 유형은 제품의 상이한 범주에 속한다(예컨대, 이미지(320)는 하키 스틱을 도시하고, 이미지(322)는 조각을 도시).
사용자 인터페이스(300)는 콘텐츠 아이템(318) 또는 콘텐츠 아이템(320)과 같은 추가 정보를 표시할 수 있다. 일부 예시적인 실시예에서, 추가 정보는 온라인 마켓플레이스에서 구매 가능한 하나 이상의 제품과 관련된 정보를 포함한다.
다양한 예시적인 실시예에서, 사용자는 온라인 배너 이미지(310)(온라인 배너 이미지(310)의 하나 이상의 부분)를 선택한다. 온라인 배너 이미지(310)의 선택은 이미지(320 또는 322) 중 하나에 도시된 제품에 관한 추가적인 정보의 표시를 하게 한다. 예를 들어, 머신 러닝 시스템은 온라인 마켓플레이스에서 사용자가 이전에 본 특정한 골동품 의자를 도시하는 이미지(320 또는 322)를 포함하도록 개인화된 온라인 배너(310)를 생성한다. 사용자는 온라인 배너 이미지(310)에 포함된 이미지(320 또는 322) 중 하나를 선택한다. 이미지(320 또는 322) 중 하나에 대한 사용자 선택을 기반으로, 머신 러닝 시스템은 특정한 골동품 의자와 관련된 제품 리스팅에 액세스하고, 사용자 인터페이스(300) 내의 콘텐츠 아이템(318)으로서의 제품 리스팅을 표시하도록 한다. 제품 리스팅은 이미지(320)와 이미지(322) 중 하나 이상과, 제품의 하나 이상의 속성의 설명을 포함할 수 있다.
일부 예시적인 실시예에서, 온라인 배너 이미지(310)는 물리적 광고판(예: 도로 측면에 정보를 표시하는 광고판), 전자 광고판(예: 클라이언트 디바이스의 사용자 인터페이스를 통해 정보를 표시하는 광고판), 또는 전자 물리적 광고(예: 공공 장소에 위치한 전자 광고판, 사용자가 전자 광고판에 표시된 데이터와 관련된 추가적인 정보를 획득하기 위하여 전자 광고판의 하나 이상의 부분과 상호 작용하도록 함)에 표시토록 된다. 다양한 예시적인 실시예에서, 그러한 광고판을 통해 표시되는 정보는 특정한 지리적 영역(예: 도시, 주, 또는 국가)의 시장 또는 인구에 맞춤화된다.
도 4는 일부 예시적인 실시예에 따른, 머신 러닝 시스템(400)의 컴포넌트를 도시한 블록도이다. 도 4에 나타난 바와 같이, 머신 러닝 시스템(400)은 액세스 모듈(402), 데이터 표현 생성 모듈(404), 배너 이미지 생성 모듈(406) 및 사용자 인터페이스 모듈(408)을 포함하며, 모두 서로 통신하도록 구성된다(예: 버스, 공유 메모리, 또는 스위치를 통하여).
일부 예시적인 실시예에 따르면, 액세스 모듈(402)은 사용자와 관련된 하나 이상의 데이터 특징을 나타내는 사용자 선택을 수신한다. 하나 이상의 데이터 특징은 제품의 이미지와 관련된 사용자 행동에 관한 데이터 특징을 포함한다.
데이터 표현 생성 모듈(404)은, 머신 러닝 알고리즘을 사용하여, 머신 러닝 알고리즘의 데이터 표현을 생성한다. 데이터 표현의 생성은 제품의 이미지와 관련된 사용자 행동에 관한 데이터 특징을 포함한 하나 이상의 데이터 특징을 기초로 한다. 데이터 표현은 온라인 배너 이미지의 하나 이상의 특성과 관련된 하나 이상의 데이터 특징을 포함한다. 데이터 표현은 데이터베이스의 레코드에 저장될 수 있다.
배너 이미지 생성 모듈(406)은 데이터 표현을 기초로 사용자를 위한 온라인 배너 이미지를 생성한다. 일부 예시적인 실시예에서, 도 2의 하나 이상의 특징은 데이터 표현에 포함되고 온라인 배너 이미지를 생성하는 배너 이미지 생성 모듈(406)에 의해 사용되는 정보를 제공(표현 또는 표시)한다. 일부 예시적인 실시예에서, 배너 이미지 생성 모듈(406)은 컴퓨터 비전 기술을 활용한다. 다양한 예시적인 실시예에서, 생성된 온라인 배너 이미지는, 도 3에 나타난 바와 같이, 하나 이상의 섹션을 포함한다.
사용자 인터페이스 모듈(408)은 사용자와 관련된 클라이언트 디바이스의 사용자 인터페이스 내의 온라인 배너 이미지의 표시를 하게 한다. 일부 예시적인 실시예에서, 사용자 인터페이스 모듈(408)은 버스 정류장, 회의실, 건물 로비, 상점, 또는 공공 장소에 디스플레이된 광고판과 같은 전자 물리적 광고판에 온라인 배너 이미지의 표시를 하게 한다. 전자 물리적 광고판에 표시하게끔 된 배너 이미지는, 도 3에 도시된 바와 같이, 하나 이상의 섹션을 포함할 수 있다. 전자 물리적 광고판은 전자 물리적 광고판의 사용자 인터페이스 내에 온라인 배너 이미지를 제공하여, 사용자 인터페이스의 하나 이상의 요소, 또는 온라인 배너 이미지의 하나 이상의 섹션을 선택하도록 할 수 있다. 전자 물리적 광고판에 표시하게끔 된 온라인 배너 이미지에 표시된 이미지에 포함된 하나 이상의 아이템은, 경우에 따라서, 전자 물리적 광고가 위치한 근방과 관련된 인구(예: 거주, 근무, 또는 방문) 분류에게 흥미가 있는 아이템이다.
하나 이상의 기능을 수행하기 위하여, 머신 러닝 시스템(400)은 하나 이상의 다른 시스템과 통신한다. 예를 들어, 통합 엔진(도시되지 않음)은 머신 러닝 시스템(400)을 하나 이상의 이메일 서버, 웹 서버, 하나 이상의 데이터베이스, 또는 다른 서버, 시스템 또는 저장소와 통합할 수 있다.
여기에 설명된 하나 이상의 모듈은 하드웨어(예: 머신의 하나 이상의 프로세서) 또는 하드웨어와 소프트웨어의 조합을 이용하여 구현될 수 있다. 예를 들어, 여기에 설명된 임의의 모듈은 해당 모듈에 대해 여기에 설명된 동작을 수행하기 위해 프로세서(예: 머신의 하나 이상의 프로세서 중)를 구성할 수 있다. 일부 예시적인 실시예에서, 여기에 설명된 임의의 하나 이상의 모듈은 하나 이상의 하드웨어 프로세서를 포함할 수 있고, 여기에 설명된 동작을 수행하도록 구성될 수 있다. 특정한 예시적인 실시예에서, 하나 이상의 하드웨어 프로세서는 여기에 설명된 하나 이상의 임의의 모듈을 포함하도록 구성된다.
더욱이, 이들 모듈 중 임의의 두 개 이상이 단일 모듈로 결합될 수 있으며, 여기에 설명된 단일 모듈의 기능은 복수의 모듈로 세분화될 수 있다. 또한, 다양한 예시적인 실시예에 다르면, 단일 머신, 데이터베이스, 또는 디바이스로 구현되는 것으로 여기에 설명된 모듈은 복수의 머신, 데이터베이스, 또는 디바이스로 분산될 수 있다. 복수의 머신, 데이터베이스, 또는 디바이스는 통신 방식으로 결합되어 복수의 머신, 데이터베이스, 또는 디바이스 간 통신을 가능하게 한다. 모듈 자체는 서로 또는 다양한 데이터 소스에 결합(예: 적절한 인터페이스를 통하여)되어, 애플리케이션 간에 정보가 전달되도록 하고, 애플리케이션이 공통 데이터를 공유하고 액세스할 수 있도록 한다. 또한, 모듈은 하나 이상의 데이터베이스(226)에 액세스할 수 있다.
도 5 내지 도 8은 일부 예시적인 실시예에 따른, 머신 러닝을 이용하여 개인화된 배너 이미지를 생성하는 방법을 도시한 흐름도이다. 도 5에 도시된 방법(500)에서의 동작은 도 4에 대해서 앞서 설명된 모듈을 사용하여 수행될 수 있다. 도 5에 나타난 바와 같이, 방법(500)은, 예시적인 실시예에 따라, 방법 동작(502, 504 및 506)의 하나 이상을 포함할 수 있다.
동작(502)에서, 액세스 모듈(402)은 사용자와 관련된 하나 이상의 데이터 특징을 나타내는 사용자 선택을 수신한다. 하나 이상의 데이터 특징은 제품의 이미지와 관련된 사용자 행동에 관한 데이터 특징을 포함한다. 일부 예시적인 실시예에서, 사용자 선택은 웹 사이트에서의 아이템의 이미지(예: 온라인 마켓플레이스에서 구매 가능한 제품의 제품 이미지)의 선택을 포함한다.
동작(504)에서, 데이터 표현 생성 모듈(404)은 머신 러닝 알고리즘을 사용하여, 머신 러닝 알고리즘의 데이터 표현을 생성한다. 데이터 표현의 생성은 제품의 이미지와 관련된 사용자 행동에 관한 데이터 특징을 포함하는 하나 이상의 데이터 특징을 기초로 한다. 데이터 표현은 온라인 배너 이미지의 하나 이상의 특성에 관한 하나 이상의 데이터 특징을 포함한다.
일부 예시적인 실시예에서, 머신 러닝 알고리즘의 데이터 표현은 데이터 특징의 벡터(vector)이다. 벡터는 사용자와 관련된 하나 이상의 데이터 특징을 포함한다. 벡터는 온라인 배너 이미지의 룩 앤드 필(look-and-feel)과 관련된 하나 이상의 데이터 특징을 더 포함한다. 온라인 배너 이미지의 룩 앤드 필은, 경우에 따라, 온라인 배너 이미지의 하나 이상의 구조적 요소를 나타내는 템플릿 데이터 특징에 의해 특정된다. 온라인 배너 이미지의 구조적 요소의 예는 온라인 배너 이미지의 섹션 수의 식별자, 온라인 배너 이미지 내 다양한 섹션 위치의 표지, 온라인 배너 이미지의 다양한 섹션 배경색의 식별자, 온라인 마켓플레이스에서 구매 가능한 제품과 같은 제품과 관련된 특정한 제품 이미지의 식별자, 온라인 배너 이미지에 포함된 글자 등이다.
동작(506)에서, 배너 이미지 생성 모듈(406)은 데이터 표현을 기초로 사용자를 위한 온라인 배너 이미지를 생성한다. 온라인 배너 이미지는 사용자의 클라이언트 디바이스의 사용자 인터페이스를 통하여 사용자에게 제공될 수 있다. 예시적인 온라인 배너 이미지가 위 도 3 에 도시되어 있다.
일부 예시적인 실시예에서, 머신 러닝 시스템(400)은 자연어 처리와 컴퓨터 비전 기술을 활용하여 온라인 마켓플레이스의 사용자에 의한 이전 검색(예: 제품에 관한 데이터 검색)을 기초로 실시간으로 사용자를 위한 온라인 배너 이미지를 생성한다.
다양한 예시적인 실시예에서, 온라인 배너 이미지는, 일부 예시적인 실시예에서, 사용자 인터페이스의 특정(예컨대, 제 1) 영역에 표시토록 된다. 추가적인 정보는 사용자 인터페이스의 다른(예컨대, 제 2, 또는 제 3) 영역에 사용자에게 제공될 수 있다.
일부 예시적인 실시예에서, 온라인 배너 이미지는 사용자 인터페이스를 통해 선택 가능한 제품 이미지를 포함한다. 일부 예에서, 사용자 인터페이스를 통한 제품 이미지의 선택은 제품 이미지에 묘사된 제품과 관련된 제품 리스팅이 사용자 인터페이스에 표시되게 한다. 제품 리스팅은 사용자 인터페이스를 통해 선택 가능하다. 사용자가 제품 리스팅을 선택하는 것에 대응하여, 사용자 인터페이스 모듈(408)은 데이터베이스의 레코드로부터 제품 리스팅과 관련된 데이터에 액세스하고, 클라이언트 디바이스의 사용자 인터페이스(예컨대, 사용자 인터페이스의 제 2 영역)에 제품 리스팅과 관련된 데이터를 표시하게 한다. 일부 경우에, 사용자 인터페이스에서 제품 정보가 온라인 배너 이미지를 대체하도록 제품 정보가 표시되게끔 된다. 일부 경우에, 제품 정보가 사용자 인터페이스에서 온라인 배너 이미지와 함께 표시되도록 제품 정보가 표시되게끔 된다. 예를 들어, 온라인 배너 이미지는 사용자 인터페이스의 제 1 영역에 표시되고, 제품 정보는 사용자 인터페이스의 제 2 영역에 표시된다.
일부 예시적인 실시예에서, 하나 이상의 데이터 특징은 사용자에 의해 이전에 검색된 제품을 나타내는 특징을 포함한다. 예를 들어, 온라인 마켓플레이스에서 제 1 사용자 세션 동안, 사용자는 온라인 마켓플레이스를 통해 구매 가능한 하나 이상의 제품과 관련된 복수의 웹페이지에 로그인하고 탐색한다. 사용자는 특정 임계 값을 초과하는 특정한 상품(예: 신발 한 켤레, 꽃병, 또는 예술품)을 보는 시간을 보낼 수 있다. 다음에 사용자가 온라인 마켓플레이스와 관련된 웹사이트에 로그인할 때, 머신 러닝 시스템(400)은 온라인 마켓플레이스에서 이전 사용자 세션에서 사용자가 열람한 특정한 상품의 하나 이상의 실제 이미지를 포함하는 온라인 배너를 생성하고 사용자 인터페이스에 표시되게 할 수 있다.
방법(500)의 방법 동작에 관한 추가적인 세부 사항은 도 6 내지 도 8과 관련하여 아래에서 설명된다.
도 6에 나타난 바와 같이, 방법(500)은 일부 실시예에 따라, 동작(602)을 포함한다. 동작(602)은 사용자 인터페이스 모듈(330)이 사용자와 관련된 클라이언트 디바이스의 사용자 인터페이스에 온라인 배너 이미지를 표시하게 하는 동작(506) 이후에 수행될 수 있다.
일부 예시적인 실시예에서, 온라인 배너 이미지는 클라이언트 디바이스로부터 하나 이상의 로그인 자격 증명(login credential) 수신을 기초로 클라이언트 디바이스의 사용자 인터페이스에 표시토록 된다.
온라인 배너 이미지가 표시되게 하는 것은 사용자 인터페이스에 선택 가능한 온라인 배너 이미지를 제공함으로써 클라이언트 디바이스의 사용자 인터페이스를 향상시킨다. 사용자는 온라인 배너 이미지의 임의의 부분을 선택(예: 클릭)할 수 있고, 선택된 온라인 배너 이미지에 포함된 제품 이미지에 도시된 제품과 관련된 정보를 볼 수 있다. 일부 예시적인 실시예에서, 머신 러닝 시스템(400)은 선택된 온라인 배너 이미지에 포함된 제품 이미지에 도시된 제품의 리스팅을 표시하게 할 수 있다.
도 7에 도시된 바와 같이, 일부 실시예에 따라, 방법(500)은 동작(702, 704 및 706)을 포함한다. 동작(702)은 사용자 인터페이스 모듈(330)이 사용자와 관련된 클라이언트 디바이스의 사용자 인터페이스에 온라인 배너 이미지를 표시시키는 도 6의 동작(602) 이후에 수행된다.
동작(702)에서, 액세스 모듈(402)은 클라이언트 디바이스로부터 입력 표시를 수신한다. 일부 예시적인 실시예에서, 위 입력은 사용자와 관련된 클라이언트 디바이스의 사용자 인터페이스에 표시된 온라인 배너 이미지의 사용자에 의한 선택이다.
동작(704)에서, 데이터 표현 생성 모듈(404)은 머신 러닝 알고리즘의 데이터 표현을 업데이트한다. 일부 예시적인 실시예에서, 데이터 표현의 업데이트는 입력을 나타내는 추가적 특징을 추가하는 것에 기초한다. 다양한 예시적인 실시예에서, 데이터 표현의 업데이트는 클라이언트 디바이스로부터 수신하는 입력을 나타내기 위하여 데이터 표현에 포함된 기존 특징을 변경하는 것에 기초한다.
동작(706)에서, 배너 이미지 생성 모듈(406)은 업데이트된 데이터 표현을 기초로 사용자를 위한 온라인 배너 이미지를 업데이트한다. 일부 예시적인 실시예에서, 온라인 배너 이미지 업데이트는 사용자를 위한 온라인 배너 이미지를 더 생성하는 것을 포함하여 사용자와 관련된 추가적인 정보(예: 사용자에 의한 추가적인 행동, 또는 사용자에 의해 표현되거나 사용자에 관련된 데이터를 기초로 얻어진 추가적인 선호)를 반영한다.
일부 예시적인 실시예에서, 입력 표시는 사용자에 의한 온라인 배너 선택의 결여의 표시를 포함한다. 예를 들어, 온라인 배너는 품질이 낮은(예: 조명이 약함) 하나 이상의 제품 이미지를 포함하도록 생성된다. 그 이미지는 판매자의 특정 판매자 식별자와 연관된다. 머신 러닝 시스템이 온라인 배너 선택의 결여의 표시를 수신하기 때문에, 머신 러닝 알고리즘은 한 순환의 온라인 배너 표시 및 원하는 결과(예: 사용자의 클릭)를 이루지 못한 후에는, 해당 판매자 식별자와 관련된 이미지를 선택하지 않을 것이다.
도 8에 나타난 바와 같이, 일부 실시예에 따라, 방법(500)은 동작(802 및 804)을 포함한다. 동작(802)은, 데이터 표현 생성 모듈(404)이 머신 러닝 알고리즘을 사용하여 머신 러닝 알고리즘의 데이터 표현을 생성하는 도 5의 동작(504)의 부분(예: 사전 태스크, 서브 루틴, 또는 일부)으로서 수행될 수 있다.
동작(802)에서, 데이터 표현 생성 모듈(404)은 머신 러닝 알고리즘의 데이터 표현에 포함된 템플릿 데이터 특징을 식별한다. 템플릿 데이터 특징은 온라인 배너 이미지의 하나 이상의 구조적 요소를 나타낸다. 일부 예에서, 템플릿 데이터 특징은 데이터베이스의 레코드 내 온라인 배너 이미지의 하나 이상의 구조적 요소의 식별자와 연관된다. 일부 예에서, 온라인 배너 이미지의 하나 이상의 구조적 요소는 머신 러닝 알고리즘의 데이터 표현에 데이터 특징으로서 포함되어 있다.
다양한 예시적인 실시예에서, 온라인 배너 이미지에 포함된 하나 이상의 구조적 요소는 온라인 배너 이미지의 적어도 한 부분과 관련된 적어도 하나의 배경색, 온라인 배너 이미지의 적어도 한 부분에 포함된 적어도 하나의 영숫자 스트링 및 구매 가능한 제품의 재고에 포함된 제품과 관련된 적어도 하나의 제품 이미지를 포함한다.
동작(804)에서, 데이터 표현 생성 모듈(404)은 온라인 배너 이미지를 생성하여, 템플릿 데이터 특징에 의해 표현되는 하나 이상의 구조적 요소를 포함한다.
본 명세서에서 특정 실시예는 로직 또는 복수의 컴포넌트, 모듈, 또는 기계를 포함하는 것으로 설명된다. 모듈은 소프트웨어 모듈(예: 머신 판독 가능 매체에 구현된 코드)이나 하드웨어 모듈을 이룰 수 있다. "하드웨어 모듈"은 특정 동작을 수행할 수 있는 유형의(tangible) 유닛이고 특정한 물리적 방식으로 구성 또는 배열될 수 있다. 다양한 예시적인 실시예에서, 하나 이상의 컴퓨터 시스템(예: 독립형 컴퓨터 시스템, 클라이언트 컴퓨터 시스템, 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 모듈(예: 프로세서 또는 프로세서 그룹)은, 여기에 설명된 바와 같은 특정한 동작을 수행하도록 동작하는 하드웨어 모듈로서 소프트웨어에 의하여(예: 애플리케이션 또는 애플리케이션 부분) 구성될 수 있다.
일부 실시예에서, 하드웨어 모듈은 기계적으로, 전자적으로, 또는 이들의 임의의 적절한 조합으로 구성될 수 있다. 예를 들어, 하드웨어 모듈은 특정 동작을 수행하도록 영구적으로 구성된 전용 회로 또는 로직을 포함할 수 있다. 예를 들어, 하드웨어 모듈은 FPGA(Field-Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 전용(special-purpose) 프로세서일 수 있다. 하드웨어 모듈은 특정 동작을 수행하도록 소프트웨어에 의하여 일시적으로 구성된 프로그램 가능한 로직 또는 회로를 포함할 수도 있다. 예를 들어, 하드웨어 모듈은 범용(general-purpose) 프로세서 또는 다른 프로그램 가능한 프로세서에 의하여 실행되는 소프트웨어를 포함할 수 있다. 이러한 소프트웨어에 의하여 구성되면, 하드웨어 모듈은 구성된 기능을 수행하도록 고유하게 맞춰진 특정한 머신(또는 머신의 특정한 부분)이 되고, 더 이상 범용 프로세서가 아니다. 하드웨어 모듈을 기계적으로, 전용 및 영구적으로 구성된 회로로, 또는 일시적으로 구성된 회로(예: 소프트웨어에 의하여 구성됨)로 구현하는 결정은 비용 및 시간을 고려하여 이뤄질 수 있음이 이해될 것이다.
따라서, "하드웨어 모듈"이라는 문구는, 특정 방법으로 동작하거나 또는 여기에 설명된 특정 동작을 수행하도록, 물리적으로 구성되거나, 영구적으로 구성되거나(예: 결선에 의한), 또는 일시적으로 구성되는(예: 프로그래밍됨), 유형의(tangible) 실체를 아우르는 것으로 이해하여야 한다. 여기에서 사용되는 "하드웨어 구현 모듈"은 하드웨어 모듈을 의미한다. 하드웨어 모듈이 일시적으로 구성(예: 프로그래밍됨)되는 실시예를 고려하면, 하드웨어 모듈 각각은 한 번에 구성되거나 하나의 인스턴스(instance)로 구체화될 필요는 없다. 예를 들어, 하드웨어 모듈이 소프트웨어에 의해 전용 프로세서가 되도록 구성된 범용 프로세서를 포함하는 경우, 범용 프로세서는 각각 상이한 시간에 각각 다른 전용 프로세서(예: 상이한 하드웨어 모듈을 포함함)로서 구성될 수 있다. 따라서 소프트웨어는 특정 프로세서 또는 프로세서들을, 예를 들어, 한 인스턴스 시간에 하나의 특정 하드웨어 모듈을 이루고 다른 인스턴스 시간에 상이한 하드웨어 모듈을 이루도록 구성할 수 있다.
하드웨어 모듈은 다른 하드웨어 모듈에게 정보를 제공하고, 다른 하드웨어 모듈로부터 정보를 수신할 수 있다. 따라서, 설명된 하드웨어 모듈은 통신적으로 연결된 것으로 간주될 수 있다. 복수의 하드웨어 모듈이 동시에 존재하는 경우, 통신은 둘 또는 그 이상의 하드웨어 모듈 사이에서의 신호 전송(예: 적절한 회로 또는 버스를 통한)을 통해 이뤄질 수 있다. 복수의 하드웨어 모듈이 다른 시간에 구성되거나 구체화된 실시예에서, 이러한 하드웨어 모듈 간의 통신은, 예를 들어, 복수의 하드웨어 모듈이 액세스하는 메모리 장치의 정보를 저장 및 인출을 통해 이루어질 수 있다. 예를 들어, 하나의 하드웨어 모듈은 한 동작을 수행하고, 그 동작의 출력을 통신적으로 연결된 메모리 디바이스에 저장할 수 있다. 다른 하드웨어 모듈은, 이후에, 메모리 디바이스에 액세스하여, 저장된 아웃풋을 인출하고 처리할 수 있다. 하드웨어 모듈은 입력 또는 출력 디바이스와의 통신을 시작할 수도 있고, 리소스(예: 정보의 모음) 상에서 동작할 수 있다.
여기에서 설명된 예시적인 방법의 다양한 동작은 관련 동작을 수행하도록 일시적으로 구성되거나(예: 소프트웨어에 의하여) 영구적으로 구성된 하나 이상의 프로세서에 의하여, 적어도 부분적으로, 수행될 수 있다. 일시적으로 구성되든 또는 영구적으로 구성되든, 이러한 프로세서는 여기에 설명된 하나 이상의 동작 또는 기능을 수행하도록 동작하는, 프로세서 구현 모듈을 이룰 수 있다. 여기에서 사용되는, "프로세서 구현 모듈"은 하나 이상의 프로세서를 사용하여 구현된 하드웨어 모듈을 의미한다.
유사하게, 여기에 설명된 방법은 하드웨어의 예시가 되는 하나의 특정 프로세서 또는 프로세서들을 사용하여, 적어도 부분적으로 프로세서-구현(processor-implemented)될 수 있다. 예를 들어, 방법의 동작 중 적어도 일부는 하나 이상의 프로세서 또는 프로세서 구현 모듈에 의하여 수행될 수 있다. 더욱이, 하나 이상의 프로세서는 "클라우드 컴퓨팅(cloud computing)" 환경에서 또는 "서비스로서의 소프트웨어(Software as a service, SaaS)"로서 관련된 동작의 성능을 지원하도록 동작할 수도 있다. 예를 들어, 동작들 중 적어도 일부는, 이러한 동작들이 네트워크(예: 인터넷)를 통하여 그리고 하나 이상의 적절한 인터페이스(예: application program interface(API))를 통하여 액세스 가능하게 함으로써, 컴퓨터(프로세서를 포함한 머신의 예로서) 그룹에 의하여 수행될 수 있다.
특정 동작의 성능은, 단일 머신 내에 있는 것뿐만 아니라 복수의 머신에 걸쳐 배치되는 프로세서들 간에 분배될 수 있다. 일부 예시적인 실시예에서, 프로세서 또는 프로세서 구현 모듈은 단일 지리적 위치(예: 가정 환경, 사무실 환경, 또는 서버 팜(server farm) 내)에 위치할 수 있다. 다른 예시적인 실시예에서, 프로세서 또는 프로세서 구현 모듈은 복수의 지리적 위치에 걸쳐 분산될 수 있다.
도 9 과 도 10에서 설명된 모듈, 방법, 애플리케이션 등은 머신 및 관련 소프트웨어 아키텍처의 맥락으로 일부 실시예에서 구현될 수 있다. 아래의 섹션은 개시된 실시예와 함께 사용하기에 적합한 대표적인 소프트웨어 아키텍처(들)와 머신(예: 하드웨어) 아키텍처를 설명한다.
소프트웨어 아키텍처는 하드웨어 아키텍처와 함께 특정 목적에 맞는 디바이스와 머신을 생성하기 위하여 사용된다. 예를 들어, 특정 소프트웨어 아키텍처와 연결된 특정 하드웨어 아키텍처는 휴대용 전화기, 태블릿 디바이스 등과 같은 모바일 장치를 생성할 것이다. 약간 다른 하드웨어와 소프트웨어 아키텍처는 "사물 인터넷(internet of things)"에서 사용하기 위한 스마트 장치를 생산할 수 있다. 또 다른 조합은 클라우드 컴퓨팅 아키텍처 내에서의 사용을 위한 서버 컴퓨터를 생산할 수 있다. 통상의 기술자는 여기에 포함된 개시내용과 다른 맥락으로 본 발명을 구현하는 방법을 쉽게 이해할 수 있으므로, 이러한 소프트웨어와 하드웨어 아키텍처의 모든 조합이 여기에 제시된 것은 아니다.
도 9는 여기에 설명된 다양한 하드웨어 아키텍처와 함께 사용할 수 있는 대표적인 소프트웨어 아키텍처(902)를 예시하는 블록도(900)이다. 도 9는 소프트웨어 아키텍처의 비 제한적인 예시일 뿐이며, 여기에 설명된 기능을 용이하게 하기 위하여 많은 다른 아키텍처가 구현될 수 있다는 것을 이해할 것이다. 소프트웨어 아키텍처(902)는, 무엇보다도, 프로세서(1010), 메모리(1030) 및 I/O 컴포넌트(1050)를 포함하는 도 10의 머신(1000)과 같은 하드웨어에서 실행될 수 있다. 대표적인 하드웨어 계층(layer)(904)이 도시되어 있고 이는, 예를 들어, 도 10의 머신(1000)을 나타낼 수 있다. 대표적인 하드웨어 계층(904)은 실행 가능한 명령어(908)와 연관이 있는 하나 이상의 처리 유닛(906)을 포함한다. 실행 가능한 명령어(908)는, 도 1 내지 도 8의 방법, 모듈 등의 구현을 포함한, 소프트웨어 아키텍처(902)의 실행 가능한 명령어를 나타낸다. 하드웨어 계층(904)은 실행 가능한 명령어(908)를 마찬가지로 가지고 있는 메모리 및/또는 스토리지 모듈(910) 또한 포함한다. 하드웨어 계층(904)은, 머신(1000)의 부분으로서 도시되어 있는 다른 하드웨어와 같은 하드웨어 계층(904)의 임의의 다른 하드웨어를 나타내는 912로 표시된 다른 하드웨어 또한 포함할 수 있다.
도 9의 예시적인 아키텍처에서, 소프트웨어(902)는 계층 - 각 계층은 특정한 기능을 제공 - 의 스택(stack)으로 개념화될 수 있다. 예를 들어, 소프트웨어(902)는 운영 체제(914), 라이브러리(916), 프레임워크(framework)/미들웨어(middleware)(918), 애플리케이션(920) 및 프레젠테이션 계층(922)과 같은 계층을 포함할 수 있다. 운영상, 애플리케이션(920) 및/또는 계층 내의 다른 컴포넌트들은 소프트웨어 스택을 통하여 API(Application Programming Interface) 호출(calls)(924)을 호출(invoke)하고, API 호출(924)에 대응하여 메시지(926)로 도시된 응답, 반환 값 등을 수신할 수 있다. 도시된 계층은 본질적으로 대표적인 것이며, 모든 소프트웨어 아키텍처가 모든 계층을 갖는 것은 아니다. 예를 들어, 일부 모바일 또는 특수 목적 운영 체제는 프레임워크/미들웨어 계층(918)을 제공하지 않을 수 있는 반면, 다른 운영 체제는 이러한 계층을 제공할 수 있다. 다른 소프트웨어 아키텍처는 추가적이거나 상이한 계층을 포함할 수 있다.
운영 체제(914)는 하드웨어 리소스를 관리하고 공통 서비스를 제공할 수 있다. 운영 체제(914)는 예를 들어, 커널(928), 서비스(930) 및 드라이버(932)를 포함할 수 있다. 커널(928)은 하드웨어와 다른 소프트웨어 계층 사이의 추상화 계층으로서 작용할 수 있다. 예를 들어, 커널(928)은 메모리 관리, 프로세서 관리(예: 스케줄링), 컴포넌트 관리, 네트워킹, 보안 설정 등을 담당할 수 있다. 서비스(930)는 다른 소프트웨어 계층을 위한 다른 공통 서비스를 제공할 수 있다. 드라이버(932)는 기본 하드웨어를 제어하거나 인터페이싱을 담당할 수 있다. 예를 들어, 드라이버(932)는 디스플레이 드라이버, 카메라 드라이버, Bluetooth® 드라이버, 플래시 메모리 드라이버, 직렬 통신 드라이버(예: USB(Universal Serial Bus) 드라이버), Wi-Fi® 드라이버, 오디오 드라이버, 전원 관리 드라이버 등 하드웨어 구성에 따른 드라이버를 포함할 수 있다.
라이브러리(916)는 애플리케이션(920) 및/또는 다른 컴포넌트 및/또는 계층에 의해 활용될 수 있는 공동 인프라(infrastructure)를 제공할 수 있다. 라이브러리(916)는 일반적으로 다른 소프트웨어 모듈이 기본 운영 체제(914) 기능(예: 커널(928), 서비스(930), 및/또는 드라이버(932))과 직접 인터페이싱하는 것보다 더 쉬운 방식으로 작업을 수행할 수 있도록 하는 기능을 제공한다. 라이브러리(916)는 메모리 할당 함수, 스트링 조작 함수, 수학 함수 등을 제공할 수 있는 시스템(934) 라이브러리(예: C 표준 라이브러리)를 포함할 수 있다. 또한, 라이브러리(916)는 미디어 라이브러리(예: MPREG4, H.264, MP3, AAC, AMR, JPG, PNG와 같은 다양한 미디어 포맷의 표시 및 조작을 지원하는 라이브러리), 그래픽 라이브러리(예: 디스플레이의 그래픽 콘텐츠에서 2D 및 3D를 렌더링하는 데 사용할 수 있는 OpenGL 프레임워크), 데이터베이스 라이브러리(예: 다양한 관계형 데이터베이스 기능을 제공하는 SQLite), 웹 라이브러리(예: 웹 브라우징 기능을 제공할 수 있는 WebKit) 등과 같은 API 라이브러리(936)를 포함할 수 있다. 라이브러리(916)는 또한 넓은 범위의 다른 라이브러리(938)를 포함하여, 애플리케이션(920)과 다른 소프트웨어 컴포넌트/모듈에 많은 다른 API를 제공할 수 있다.
프레임워크(918)(때로는 미들웨어라고도 함)는 애플리케이션(920) 및/또는 다른 소프트웨어 컴포넌트/모듈에 의해 활용될 수 있는 고수준 공동 인프라를 제공할 수 있다. 예를 들어, 프레임워크(918)는 다양한 그래픽 사용자 인터페이스(GUI) 기능, 고수준 리소스 관리, 고수준 위치 서비스 등을 제공할 수 있다. 프레임워크(918)는 특정 운영 체제 또는 플랫폼에 특화될 수 있는 애플리케이션 및/또는 다른 소프트웨어 컴포넌트/모듈에 의해 활용될 수 있는 넓은 범위의 다른 API를 제공할 수 있다.
애플리케이션(920)은 내장 애플리케이션(940), 서드 파티 애플리케이션(942) 및 모듈(960)(예: 액세스 모듈(402), 데이터 표현 생성 모듈(404), 배너 이미지 생성 모듈(406), 또는 사용자 인터페이스 모듈(408))을 포함한다. 대표적인 내장 애플리케이션(940)의 예는, 이에 제한되지는 않지만, 연락처 애플리케이션, 브라우저 애플리케이션, 북 리더(book reader) 애플리케이션, 위치 애플리케이션, 미디어 애플리케이션, 메시징 애플리케이션 및/또는 게임 애플리케이션 등을 포함할 수 있다. 서드 파티 애플리케이션(942)은 다른 애플리케이션의 광범위한 분류뿐만 아니라 임의의 내장 애플리케이션을 포함할 수 있다. 특정 예에서, 서드 파티 애플리케이션(942)(예: 특정 플랫폼의 판매자가 아닌 실체에 의해 AndroidTM 또는 iOSTM 소프트웨어 개발 키트(SDK)을 사용하여 개발된 애플리케이션)은 AndroidTM, iOSTM, Windows® Phone, 또는 다른 모바일 운영체제와 같은 모바일 운영 체제에서 실행되는 모바일 소프트웨어일 수 있다. 이 예에서, 서드 파티 애플리케이션(942)은 운영 체제(914)와 같은 모바일 운영 체제에 의해 제공되는 API 호출(924)을 호출하여, 여기에 설명된 기능을 용이하게 할 수 있다.
애플리케이션(920)은 내장된 운영 체제 기능(예: 커널(928), 서비스(930) 및/또는 드라이버(932), 라이브러리(예: 시스템(934), API(936) 및 다른 라이브러리(938)), 프레임워크/미들웨어(918)를 활용하여, 시스템의 유저와 상호 작용하는 사용자 인터페이스를 생성할 수 있다. 대안적으로, 또는 추가적으로, 사용자와의 일부 시스템 상호 작용은 프레젠테이션 계층(944)과 같은 프레젠테이션 계층을 통해 이뤄질 수 있다. 이러한 시스템에서, 애플리케이션/모듈 "로직"은 사용자와의 상호 작용하는 애플리케이션/모듈의 측면과 분리될 수 있다.
일부 소프트웨어 아키텍처는 가상 머신을 활용한다. 도 9의 예에서, 이는 가상 머신(948)에 의해 도시된다. 가상 머신은 애플리케이션/모듈이 하드웨어 머신에서 실행되는 것처럼 실행될 수 있는 소프트웨어 환경을 생성한다. 가상 머신은 호스트 운영 체제(도 10의 운영 체제(914))에 의하여 호스팅되고, 항상은 아니지만, 일반적으로 가상 머신 모니터(946)를 가져, 호스트 운영 체제(예: 운영 체제(914))와의 인터페이스뿐만 아니라 가상 머신의 동작을 관리한다. 소프트웨어 아키텍처는 운영 체제(950), 라이브러리(952), 프레임워크/미들웨어(954), 애플리케이션(956) 및/또는 프레젠테이션 계층(958)과 같은 가상 머신 내에서 실행된다. 가상 머신(948) 내에서 실행되는 소프트웨어 아키텍처의 이러한 계층은 이전에 설명된 대응하는 계층과 동일할 수 있고, 또는 다를 수도 있다.
도 10은, 일부 예시적인 실시예에 따라, 머신 판독 가능 매체(예: 머신 판독 가능 스토리지 매체)로부터 명령어를 판독할 수 있고, 여기에 논의된 하나 이상의 방법론을 수행할 수 있는 머신(1000)의 컴포넌트를 도시하는 블록도이다. 구체적으로, 도 10은 컴퓨터 시스템의 예시적 형태로 머신(1000)의 도시적 표현을 나타내고, 그 안에서 명령어(1016)(예: 소프트웨어, 프로그램, 애플리케이션, 애플릿(applet), 앱, 또는 다른 실행 가능한 코드)는 머신(1000)이 여기에 논의된 하나 이상의 방법론을 수행하게 하도록 실행될 수 있다. 예를 들어, 명령어는 머신이 도 5 내지 도 8의 흐름도를 실행하도록 할 수 있다. 추가적으로, 또는 대안적으로, 명령어는 도 4의 액세스 모듈(402), 데이터 표현 생성 모듈(404), 배너 이미지 생성 모듈(406) 및 사용자 인터페이스 모듈(408)을 구현할 수 있다. 명령어는 프로그래밍되지 않은 일반적인 머신을, 설명되고 도시된 기능을 설명된 방식으로 수행하도록 프로그래밍된 특정한 머신으로 변환한다. 대안적인 실시예에서, 머신(1000)은 독립적인 디바이스로서 동작하거나, 다른 머신과 연결(예: 네트워킹)될 수 있다. 네트워크 배치에서, 머신(1000)은 서버-클라이언트 네트워크 환경의 서버 머신 또는 클라이언트 머신의 기능으로, 또는 p2p(또는 분산된) 네트워크 환경의 피어(peer) 머신으로서 동작할 수 있다. 머신(1000)은, 이에 제한되지는 않지만, 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, 셋톱박스(STB), PDA(personal digital assistant), 엔터테인먼트 미디어 시스템, 휴대용 전화기, 스마트 폰, 모바일 디바이스, 웨어러블 디바이스(예: 스마트 워치), 스마트 홈 디바이스(예: 스마스 가전), 다른 스마트 디바이스, 웹 어플라이언스, 네트워크 라우터, 네트워크 스위치, 네트워크 브릿지, 또는 순차적으로 또는 달리 머신(1000)에 의해 취해질 동작을 특정하는 명령어(1016)를 실행할 수 있는 임의의 머신을 포함할 수 있다. 더욱이, 오직 하나의 머신(1000)이 도시되어 있지만, "머신"이라는 용어는 여기에 논의된 임의의 하나 이상의 방법론을 수행하기 위해 명령어(1016)를 개별적으로 또는 함께 실행하는 머신(1000)의 집합 또한 포함하는 것으로 간주되어야 한다.
머신(1000)은 프로세서(1010), 메모리(1030) 및 I/O 컴포넌트(1050)를 포함하며, 이는 버스(1002)를 통해 서로 통신하도록 구성될 수 있다. 예시적인 실시예에서, 프로세서(1010)(예: 중앙 처리 장치(CPU), RISC(Reduced Instruction Set Computing) 프로세서, GPU(Graphics Processing Unit), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), RFIC(Radio-Frequency Integrated Circuit), 다른 프로세서, 또는 이들의 임의의 적절한 조합)는, 예를 들어, 명령어(1016)를 실행할 수 있는 프로세서(1012)와 프로세서(1014)를 포함할 수 있다. "프로세서"라는 용어는 명령어를 동시에 실행할 수 있는 둘 이상의 독립적인 프로세서(때로는 "코어"라고도 함)를 포함할 수 있는 멀티 코어 프로세서를 포함하도록 의도된다. 비록 도 10이 복수의 프로세서를 나타내지만, 머신(1000)은 단일 코어를 갖는 단일 프로세서, 다중 코어를 갖는 단일 프로세서(예: 멀티 코어 프로세스), 단일 코어를 갖는 다중 프로세서, 다중 코어를 갖는 다중 프로세서, 또는 임의의 이들의 조합을 포함할 수 있다.
메모리/스토리지(1030)는 주 메모리와 같은 메모리(1032), 또는 다른 메모리 스토리지와 스토리지 유닛(1036)을 포함할 수 있고, 둘 모두 버스(1002)를 통해 프로세서(1010)에 액세스 가능하다. 스토리지 유닛(1036)과 메모리(1032)는 여기에 설명된 하나 이상의 방법론 또는 기능을 실시하는 명령어(1016)를 저장한다. 명령어(1016)는 또한 머신(1000)에 의해 실행되는 동안, 메모리(1032) 내에, 스토리지 유닛(1036) 내에, 적어도 하나 이상의 프로세서(1010)(예: 프로세서의 캐시 메모리 내에), 또는 이들의 임의의 적절한 조합 내에 완전하게 또는 부분적으로 상주할 수 있다. 따라서, 메모리(1032), 스토리지 유닛(1036) 및 프로세서(1010)의 메모리는 머신 판독 가능 매체의 예이다.
여기에서 사용된 바와 같이, "머신 판독 가능 매체"는 명령어 및 데이터를 일시적 또는 영구적으로 저장할 수 있는 장치를 의미하고, 이에 제한되지는 않지만, RAM(random-access memory), ROM(read-only memory), 버퍼 메모리, 플래시 메모리, 광학 매체, 자기 매체, 캐시 메모리, 다른 유형의 스토리지(예: EEPROM(Erasable Programmable Read-Only Memory)) 및/또는 이들의 임의의 적절한 조합을 포함할 수 있다. "머신 판독 가능 매체"라는 용어는 명령어(1016)를 저장할 수 있는 단일 매체 또는 다중 매체(예: 중앙 집중식 또는 분산 데이터베이스, 또는 관련 캐시 및 서버)를 포함하는 것으로 간주되어야 한다. "머신 판독 가능 매체"라는 용어는 머신(예: 머신(1000))에 의한 실행을 위한 명령어(예: 명령어(1016))를 저장할 수 있는 임의의 매체, 또는 다중 매체의 조합을 포함하는 것으로 간주되어야 하고, 그러한 명령어는, 머신(1000)의 하나 이상의 프로세서(예: 프로세서(1010))에 의해 실행될 때, 머신(1000)이 여기에 설명된 임의의 하나 이상의 방법론을 수행하도록 한다. 따라서, "머신 판독 가능 매체"는 여러 스토리지 장치 또는 디바이스를 포함하는 "클라우드 기반(cloud-based)" 스토리지 시스템 또는 스토리지 네트워크뿐만 아니라 단일 스토리지 장치 또는 디바이스 또한 의미한다. "머신 판독 가능 매체"라는 용어는 신호 그 자체는 제외한다.
I/O 컴포넌트(1050)는 입력을 수신하고, 출력을 제공하고, 출력을 생산하고, 정보를 전송하고, 정보를 교환하고, 측정을 캡처하는 등의 광범위한 구성요소를 포함할 수 있다. 특정 머신에 포함된 특정 I/O 컴포넌트(1050)는 머신의 유형에 따라 달라질 것이다. 예를 들어, 휴대폰과 같은 휴대용 머신은 터치 입력 디바이스 또는 다른 그러한 입력 메커니즘을 포함할 가능성이 있으나, 헤드리스(headless) 서버 머신은 그러한 터치 입력 디바이스를 포함하지 않을 가능성이 높다. I/O 컴포넌트(1050)는 도 10에 나타나지 않은 많은 다른 컴포넌트를 포함할 수 있다는 것을 이해할 것이다. I/O 컴포넌트(1050)는 단지 이하의 논의를 단순화하는 기능에 따라 그룹화되고, 그룹화는 결코 제한적이지 않다. 다양한 예시적인 실시예에서, I/O 컴포넌트(1050)는 출력 컴포넌트(1052)와 입력 컴포넌트(1054)를 포함할 수 있다. 출력 컴포넌트(1052)는 시각적 컴포넌트(예: PDP(plasma display panel), LED(light emitting diode) 디스플레이, LCD(liquid crystal display), 프로젝터, 또는 CRT(cathode ray tube)와 같은 디스플레이), 음향 컴포넌트(예: 스피커), 햅틱(haptic) 컴포넌트(예: 진동 모터, 저항 메커니즘), 기타 신호 발생기 등을 포함할 수 있다. 입력 컴포넌트(1054)는 영숫자 입력 컴포넌트(예: 키보드, 영숫자 입력을 수신하도록 구성된 터치 스크린, 광-광학(photo-optical) 키보드, 또는 기타 영숫자 입력 컴포넌트), 포인트 기반 입력 컴포넌트(예: 마우스, 터치패드, 트랙볼, 조이스틱, 모션 센서, 또는 기타 포인팅 도구), 촉각 입력 컴포넌트(예: 물리적 버튼, 위치 및/또는 터치의 힘 또는 터치 제스처를 제공하는 터치 스크린, 또는 기타 촉각 입력 컴포넌트), 오디오 입력 컴포넌트(예: 마이크) 등을 포함할 수 있다.
추가 예시적인 실시예에서, I/O 컴포넌트(1050)는 다양한 다른 컴포넌트들 중 생체 인식 컴포넌트(1056), 모션 컴포넌트(1058), 환경 컴포넌트(1060), 또는 위치 컴포넌트(1062)를 포함할 수 있다. 예를 들어, 생체 인식 컴포넌트(1056)는 표정(예: 손 표정, 얼굴 표정, 목소리 표정, 몸 제스처, 또는 눈 추적(eye tracking))을 검출하고, 생체 신호(예: 혈압, 심박수, 체온, 땀, 또는 뇌파)를 측정하고, 사람을 식별(예: 음성 인식, 망막 인식, 얼굴 인식, 지문 인식, 또는 뇌파 기반 인식)하는 등의 컴포넌트를 포함할 수 있다. 모션 컴포넌트(1058)는 가속 센서 컴포넌트(예: 가속도계), 중력 센서 컴포넌트, 회전 센서 컴포넌트(예: 자이로스코프) 등을 포함할 수 있다. 환경 컴포넌트(1060)는, 예를 들어, 조명 센서 컴포넌트(예: 광도계), 온도 센서 컴포넌트(예: 주변 온도를 감지하는 하나 이상의 온도계), 습도 센서 컴포넌트, 압력 센서 컴포넌트(예: 기압계), 음향 센서(예: 배경 소음을 감지하는 하나 이상의 마이크), 근접 센서 컴포넌트(예: 주변 물체를 감지하는 적외선 센서), 가스 센서(예: 안전을 위해 유해 가스 농도를 감지하거나 실내의 오염 물질을 측정하는 가스 감지 센서), 또는 주변 물리적 환경에 해당하는 표시, 측정, 또는 신호를 제공할 수 있는 다른 컴포넌트를 포함할 수 있다. 위치 컴포넌트(1062)는 위치 센서 컴포넌트(예: GPS(Global Position System) 수신기 컴포넌트), 고도 센서 컴포넌트(예: 고도를 얻을 수 있는 기압을 감지하는 고도계 또는 기압계), 방향 센서 컴포넌트(예: 자력계) 등을 포함할 수 있다.
통신은 광범위한 기법을 사용하여 구현될 수 있다. I/O 컴포넌트(1050)는 머신(1000)을 네트워크(1080) 또는 디바이스(1070)에 각각 커플링(1082)과 커플링(1072)을 통해 연결하도록 동작 가능한 통신 컴포넌트(1064)를 포함할 수 있다. 예를 들어, 통신 컴포넌트(1064)는 네트워크 인터페이스 컴포넌트 또는 네트워크(1080)와 인터페이싱하기에 적절한 다른 디바이스를 포함할 수 있다. 추가 예에서, 통신 컴포넌트(1064)는 유선 통신 컴포넌트, 무선 통신 컴포넌트, 셀룰러 통신 컴포넌트, NFC(Near Field Communication) 컴포넌트, Bluetooth® 컴포넌트(예: Bluetooth® Low Energy), Wi-Fi® 컴포넌트 및 다른 양식을 통해 통신을 제공하는 다른 통신 컴포넌트를 포함할 수 있다. 디바이스(1070)는 다른 머신 또는 임의의 광범위한 주변 장치(예: USB(Universal Serial Bus)를 통해 연결된 주변 장치)일 수 있다.
더욱이, 통신 컴포넌트(1064)는 식별자를 검출하거나 식별자를 검출하도록 동작 가능한 컴포넌트를 포함할 수 있다. 예를 들어, 통신 컴포넌트(1064)는 RFID(Radio Frequency Identification) 태그 판독 컴포넌트, NFC 스마트 태그 감지 컴포넌트, 광학 판독 컴포넌트(예: UPC(Universal Product Code) 바코드와 같은 1차원 바코드를 감지하는 광학 센서, QR(Quick Response) Code, Aztec Code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D 바 코드 및 다른 광학 코드와 같은 다차원 바코드), 또는 음향 감지 컴포넌트(예: 태그된 음향 신호를 식별하는 마이크)를 포함할 수 있다. 또한, 인터넷 프로토콜(IP) 지리적 위치를 통한 위치, Wi-Fi® 신호 삼각 측량을 통한 위치, NFC 특정 위치를 나타내는 비콘 신호 감지를 통한 위치 등과 같이, 다양한 정보가 통신 컴포넌트(1064)를 통하여 얻어질 수 있다.
다양한 예시적인 실시예에서, 네트워크(1080)의 하나 이상의 부분은 애드혹(ad hoc) 네트워크, 인트라넷, 엑스트라넷, VPN(virtual private network), LAN(local area network), WLAN(wireless LAN), WAN(wide area network), WWAN(wireless WAN), MAN(metropolitan area network), 인터넷, 인터넷의 일부, PSTN(Public Switched Telephone Network)의 일부, POTS(plain old telephone service) 네트워크, 셀룰러 전화 네트워크, 무선 네트워크, Wi-Fi® 네트워크, 또 다른 유형의 네트워크, 또는 이러한 네트워크의 둘 이상의 조합일 수 있다. 예를 들어, 네트워크(1080) 또는 네트워크(1080)의 일부는 무선 또는 셀룰러 네트워크를 포함할 수 있고, 커플링(1082)은 CDMA(Code Division Multiple Access) 연결, GSM(Global System for Mobile communications) 연결, 또는 다른 유형의 셀룰러 또는 무선 커플링일 수 있다. 이 예에서, 커플링(1082)은 1xRTT(Single Carrier Radio Transmission Technology), EVDO(Evolution-Data Optimized) 기술, GPRS(General Packet Radio Service) 기술, EDGE(Enhanced Data rates for GSM Evolution) 기술, 3G를 포함한 3GPP(third Generation Partnership Project), 4G(fourth generation wireless) 네트워크, UMTS(Universal Mobile Telecommunications System), HSPA(High Speed Packet Access), WiMAX(Worldwide Interoperability for Microwave Access), LTE(Long Term Evolution) 표준, 다양한 표준 설정 조직에 의해 정의된 다른 기술, 다른 장거리 프로토콜, 또는 다른 데이터 전송 기술과 같은 임의의 다양한 유형의 데이터 전송 기술을 구현할 수 있다.
명령어(1016)는 네트워크 인터페이스 디바이스(예: 통신 컴포넌트(1064)에 포함된 네트워크 인터페이스 컴포넌트)를 통해 전송 매체를 사용하고, 임의의 다양한 잘 알려진 전송 프로토콜(예: HTTP(hypertext transfer protocol))중 하나를 활용하는 네트워크(1080)를 통하여 전송 또는 수신될 수 있다. 유사하게, 명령어(1016)는 디바이스(1070)와 커플링(1072)(예: p2p 커플링)을 통하여 전송 또는 수신될 수 있다. "전송 매체"라는 용어는 머신(1000)에 의한 실행을 위하여 명령어(1016)를 저장, 인코딩, 또는 운반하는 것이 가능한 임의의 무형 매체를 포함하는 것으로 간주되어야 하고, 디지털이나 아날로그 통신 신호 또는 이러한 소프트웨어의 통신을 용이하게 하는 다른 무형의 매체를 포함한다.
실행 가능한 명령어 및 머신 스토리지 매체
다양한 메모리(즉, 1030, 1032, 및/또는 프로세서(1010)의 메모리) 및/또는 스토리지 유닛(1036)은 여기에 설명된 임의의 하나 이상의 방법론 또는 기능을 실시하거나, 이에 의해 활용되는 하나 이상의 세트의 명령어 및 데이터 구조(예: 소프트웨어)(1016)를 저장할 수 있다. 이러한 명령어는 프로세서(1010)에 의해 실행될 때, 다양한 동작이 개시된 실시예를 구현하도록 한다.
여기에서 사용된 바와 같이, "머신 스토리지 매체", "디바이스 스토리지 매체", "컴퓨터 스토리지 매체"(총칭하여, "머신 스토리지 매체"라고 함)라는 용어는 본 개시물에서 동일한 것을 의미하며 상호 교환적으로 사용될 수 있다. 이 용어는 다중 스토리지 장치 또는 디바이스를 포함하는 클라우드 기반 스토리지 시스템 또는 스토리지 네트워크뿐만 아니라, 실행 가능한 명령어 및/또는 데이터를 저장하는 단일 또는 다중 스토리지 디바이스 및/또는 매체(예: 중앙 집중식 또는 분산 데이터베이스, 및/또는 관련 캐시 및 서버)를 나타낸다. 따라서 이 용어는, 이에 제한되는 것은 아니고, 프로세서 내부 또는 외부 메모리를 포함한 솔리드 스테이트 메모리, 광학 및 자기 매체를 포함하는 것으로 간주되어야 한다. 머신 스토리지 매체, 컴퓨터 스토리지 매체, 및/또는 디바이스 스토리지 매체의 특정 예는 반도체 메모리 디바이스의 예로 비휘발성 메모리, 예를 들어 EPROM, EEPROM, FPGA, 플래시 메모리 디바이스, 내부 하드 디스크 및 이동식 디스크와 같은 자기 디스크, 광 자기 디스크 및 CD-ROM, DVD-ROM 디스크이다. 머신 스토리지 매체, 컴퓨터 스토리지 매체 및 디바이스 스토리지 매체는 특히 반송파, 변조된 데이터 신호 및 기타 그러한 매체를 제외하며, 적어도 이들 중 일부는 아래에서 논의되는 "신호 매체"라는 용어에 포함된다. 이러한 맥락에서, 머신 스토리지 매체는 비일시적이다.
신호 매체
"신호 매체" 또는 "전송 매체"라는 용어는 변조된 데이터 신호, 반송파 등의 임의의 형태를 포함하는 것으로 간주된다. "변조된 데이터 신호"라는 용어는 신호에 정보를 인코딩하는 방식에서 하나 이상의 특성이 설정되거나 변경된 신호를 의미한다.
컴퓨터 판독 가능 매체
"머신 판독 가능 매체", "컴퓨터 판독 가능 매체" 및 "디바이스 판독 가능 매체"라는 용어는 동일한 것을 의미하며, 본 개시물에서 상호 교환적으로 사용될 수 있다. 이 용어는 머신 스토리지 매체 및 신호 매체를 모두 포함하도록 정의된다. 따라서, 이 용어는 스토리지 디바이스/매체 및 반송파/변조된 데이터 신호를 모두 포함한다.
언어
본 명세서에 걸쳐, 복수의 인스턴스는 단일 인스턴스로 설명된 컴포넌트, 동작, 또는 구조를 구현할 수 있다. 하나 이상의 방법의 개별 동작이 동시에 수행될 수 있으며, 설명된 순서대로 동작을 수행할 필요는 없다. 예시적인 구성에서 분리된 컴포넌트로 나타낸 구조 및 기능은 결합된 구조 또는 컴포넌트로서 구현될 수 있다. 유사하게, 단일 컴포넌트로 나타낸 구조 및 기능은 분리된 컴포넌트로서 구현될 수 있다. 이들 및 다른 변형, 수정, 추가 및 개선은 여기의 주제의 범위에 속한다.
본 발명의 주제의 개요가 특정 예시적인 실시예를 참조하여 설명되었지만, 본 개시물의 실시예의 더 넓은 범위를 벗어나지 않고 이들 실시예에 대해 다양한 수정 및 변경이 이루어질 수 있다. 발명의 주제의 이러한 실시예들은 단지 편의를 위해 개별적으로 또는 집합적으로, 그리고 실제로 둘 이상이 개시된 경우 본 출원의 범위를 임의의 단일 개시물 또는 발명의 개념으로 자발적으로 제한하려는 의도 없이, "발명"이라는 용어에 의해 표현될 수 있다.
여기에 예시된 실시예들은 통상의 기술자가 개시된 교시를 실시할 수 있도록 충분히 상세하게 설명된다. 본 개시물의 범위를 벗어나지 않으면서 구조적 및 논리적 대체 및 변경이 이루어지도록 다른 실시예가 이용되고 얻어질 수 있다. 따라서, 상세한 설명은 제한적인 의미로 간주되어서는 안 되며, 다양한 실시예의 범위는, 청구범위가 부여되는 등가물의 전체 범위에 따라, 첨부된 청구범위에 의하여만 정의된다.
여기에 사용된 것처럼, "또는"이라는 용어는 포괄적 또는 배타적 의미로 해석될 수 있다. 더욱이, 여기에서 단일 인스턴스로 설명된 리소스, 동작, 또는 구조에 대해 복수의 인스턴스가 제공될 수 있다. 추가적으로, 다양한 리소스, 동작, 모듈, 엔진 및 데이터 저장소 간의 경계는 다소 임의적이고, 특정한 동작은 특정 설명적 구성의 맥락에서 예시된다. 기능의 다른 할당이 구상되고 본 개시물의 다양한 실시예의 범위 내에 있을 수 있다. 일반적으로, 예시적인 구성에서 별도의 리소스로 나타낸 구조 및 기능은 결합된 구조 또는 리소스로서 구현될 수 있다. 유사하게, 단일 리소스로 나타낸 구조 및 기능은 분리된 리소스로서 구현될 수 있다. 이들 및 다른 변형, 수정, 추가 및 개선은 첨부된 청구범위에 의해 표현된 바와 같이 본 개시물의 실시예의 범위 내에 속한다. 따라서, 명세서 및 도면은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.

Claims (20)

  1. 사용자와 관련된 하나 이상의 데이터 특징을 나타내는 사용자 선택을 수신하는 단계 - 상기 하나 이상의 데이터 특징은 제품의 이미지와 관련된 사용자 행동에 관한 데이터 특징을 포함함 - 와,
    머신 러닝 알고리즘을 사용하여, 상기 제품의 상기 이미지와 관련된 사용자 행동에 관한 상기 데이터 특징을 포함하는 상기 하나 이상의 데이터 특징을 기초로 상기 머신 러닝 알고리즘의 데이터 표현을 생성하는 단계 - 상기 데이터 표현은 온라인 배너 이미지의 하나 이상의 특징에 관한 하나 이상의 데이터 특징을 포함하고, 상기 데이터 표현을 생성하는 상기 단계는 하나 이상의 하드웨어 프로세서를 사용하여 수행됨 - 와,
    상기 데이터 표현에 기초하여 상기 사용자를 위한 온라인 배너 이미지를 생성하는 단계를 포함하는,
    방법.
  2. 제 1 항에 있어서,
    상기 사용자와 관련된 클라이언트 디바이스의 사용자 인터페이스 내에 상기 온라인 배너 이미지를 표시하도록 하는 단계를 더 포함하는,
    방법.
  3. 제 2 항에 있어서,
    상기 클라이언트 디바이스로부터, 입력 표시를 수신하는 단계와,
    상기 입력을 나타내는 추가적 특징을 추가하는 것에 기초하여 상기 머신 러닝 알고리즘의 상기 데이터 표현을 업데이트하는 단계와,
    상기 업데이트된 데이터 표현을 기초로 상기 사용자를 위한 상기 온라인 배너 이미지를 업데이트하는 단계를 더 포함하는,
    방법.
  4. 제 3 항에 있어서,
    상기 입력은 상기 온라인 배너 이미지의 선택인,
    방법.
  5. 제 1 항에 있어서,
    상기 머신 러닝 알고리즘의 상기 데이터 표현은 데이터 특징의 벡터이되, 상기 벡터는 상기 사용자와 관련된 상기 하나 이상의 데이터 특징을 포함하고, 상기 벡터는 상기 온라인 배너 이미지의 룩 앤드 필(look-and-feel)과 관련된 하나 이상의 데이터 특징을 더 포함하는,
    방법.
  6. 제 1 항에 있어서,
    상기 온라인 배너 이미지는 상기 사용자 인터페이스를 통해 선택 가능한 제품 이미지를 포함하고,
    상기 사용자 인터페이스를 통한 상기 제품 이미지의 선택은, 상기 제품 이미지에 묘사된 제품과 관련된 제품 리스팅(product listing)이 상기 사용자 인터페이스에 표시되도록 하는,
    방법.
  7. 제 1 항에 있어서,
    상기 하나 이상의 데이터 특징은 상기 사용자에 의해 이전에 검색된 제품을 나타내는 특징을 포함하는,
    방법.
  8. 제 1 항에 있어서,
    상기 데이터 표현에 기초하여 상기 사용자를 위한 상기 온라인 배너 이미지를 생성하는 상기 단계는,
    상기 머신 러닝 알고리즘의 상기 데이터 표현에 포함된 템플릿 데이터 특징을 식별하는 단계 - 상기 템플릿 데이터 특징은 상기 온라인 배너 이미지의 하나 이상의 구조적 요소를 나타냄 - 와,
    상기 템플릿 데이터 특징에 의해 나타내지는 상기 하나 이상의 구조적 요소를 포함하도록 상기 온라인 배너 이미지를 생성하는 단계를 포함하는,
    방법.
  9. 제 8 항에 있어서,
    상기 온라인 배너 이미지에 포함된 상기 하나 이상의 구조적 요소는 상기 온라인 배너 이미지의 적어도 한 부분과 관련된 적어도 하나의 배경색과, 상기 온라인 배너 이미지의 적어도 한 부분에 포함된 적어도 하나의 영숫자(alphanumeric) 스트링과, 구매 가능한 제품의 재고에 포함된 제품과 관련된 적어도 하나의 제품 이미지를 포함하는,
    방법.
  10. 제 2 항에 있어서,
    상기 온라인 배너 이미지는 상기 클라이언트 디바이스로부터 하나 이상의 로그인 자격 증명(login credential) 수신을 기초로 상기 클라이언트 디바이스의 상기 사용자 인터페이스에 표시되도록 되는,
    방법
  11. 시스템으로서,
    하나 이상의 하드웨어 프로세서와,
    상기 하나 이상의 하드웨어 프로세서에 의하여 실행될 때, 상기 하나 이상의 하드웨어 프로세서가 동작을 수행하도록 하는 명령어를 저장하기 위한 머신 판독 가능 매체를 포함하되,
    상기 동작은,
    사용자와 관련된 하나 이상의 데이터 특징을 나타내는 사용자 선택을 수신하는 단계 - 상기 하나 이상의 데이터 특징은 제품의 이미지와 관련된 사용자 행동에 관한 데이터 특징을 포함함 - 와,
    머신 러닝 알고리즘을 사용하여 상기 제품의 상기 이미지와 관련된 사용자 행동에 관한 상기 데이터 특징을 포함하는 상기 하나 이상의 데이터 특징을 기초로 상기 머신 러닝 알고리즘의 데이터 표현을 생성하는 단계 - 상기 데이터 표현은 온라인 배너 이미지의 하나 이상의 특징에 관한 하나 이상의 데이터 특징을 포함함 - 와,
    상기 데이터 표현에 기초하여 상기 사용자를 위한 온라인 배너 이미지를 생성하는 단계를 포함하는,
    시스템.
  12. 제 11 항에 있어서,
    상기 동작은 상기 사용자와 관련된 클라이언트 디바이스의 사용자 인터페이스 내 상기 온라인 배너 이미지를 표시하도록 하는 단계를 더 포함하는,
    시스템.
  13. 제 12 항에 있어서,
    상기 동작은,
    상기 클라이언트 디바이스로부터, 입력 표시를 수신하는 단계와,
    상기 입력을 나타내는 추가적 특징을 추가하는 것에 기초하여 상기 머신 러닝 알고리즘의 상기 데이터 표현을 업데이트하는 단계와,
    상기 업데이트된 데이터 표현을 기초로 상기 사용자를 위한 상기 온라인 배너 이미지를 업데이트하는 단계를 더 포함하는,
    시스템.
  14. 제 13 항에 있어서,
    상기 입력은 상기 온라인 배너 이미지의 선택인,
    시스템.
  15. 제 11 항에 있어서,
    상기 머신 러닝 알고리즘의 상기 데이터 표현은 데이터 특징의 벡터이되, 상기 벡터는 상기 사용자와 관련된 상기 하나 이상의 데이터 특징을 포함하고, 상기 벡터는 상기 온라인 배너 이미지의 룩 앤드 필과 관련된 하나 이상의 데이터 특징을 더 포함하는,
    시스템.
  16. 제 11 항에 있어서,
    상기 온라인 배너 이미지는 상기 사용자 인터페이스를 통해 선택 가능한 제품 이미지를 포함하고,
    상기 사용자 인터페이스를 통한 상기 제품 이미지의 선택은 상기 제품 이미지에 묘사된 제품과 관련된 제품 리스팅이 상기 사용자 인터페이스에 표시되도록 하는,
    시스템.
  17. 제 11 항에 있어서,
    상기 하나 이상의 데이터 특징은 상기 사용자에 의해 이전에 검색된 제품을 나타내는 특징을 포함하는,
    시스템.
  18. 제 11 항에 있어서,
    상기 데이터 표현에 기초하여 상기 사용자를 위한 상기 온라인 배너 이미지를 생성하는 상기 단계는,
    상기 머신 러닝 알고리즘의 상기 데이터 표현에 포함된 템플릿 데이터 특징을 식별하는 단계 - 상기 템플릿 데이터 특징은 상기 온라인 배너 이미지의 하나 이상의 구조적 요소를 나타냄 - 와,
    상기 템플릿 데이터 특징에 의해 나타내지는 상기 하나 이상의 구조적 요소를 포함하도록 상기 온라인 배너 이미지를 생성하는 단계를 포함하는,
    시스템.
  19. 제 18 항에 있어서,
    상기 온라인 배너 이미지에 포함된 상기 하나 이상의 구조적 요소는 상기 온라인 배너 이미지의 적어도 한 부분과 관련된 적어도 하나의 배경색과, 상기 온라인 배너 이미지의 적어도 한 부분에 포함된 적어도 하나의 영숫자 스트링과, 구매 가능한 제품의 재고에 포함된 제품과 관련된 적어도 하나의 제품 이미지를 포함하는,
    시스템.
  20. 하나 이상의 하드웨어 프로세서에 의해 실행될 때, 상기 하나 이상의 하드웨어 프로세서가 동작을 수행하도록 하는 명령어를 저장하는 머신 판독 가능 스토리지 매체로서,
    상기 동작은,
    사용자와 관련된 하나 이상의 데이터 특징을 나타내는 사용자 선택을 수신하는 단계 - 상기 하나 이상의 데이터 특징은 제품의 이미지와 관련된 사용자 행동에 관한 데이터 특징을 포함함 - 와,
    머신 러닝 알고리즘을 사용하여, 상기 제품의 상기 이미지와 관련된 사용자 행동에 관한 상기 데이터 특징을 포함하는 상기 하나 이상의 데이터 특징을 기초로 머신 러닝 알고리즘의 데이터 표현을 생성하는 단계 - 상기 데이터 표현은 온라인 배너 이미지의 하나 이상의 특징에 관한 하나 이상의 데이터 특징을 포함함 - 와,
    상기 데이터 표현에 기초하여 상기 사용자를 위한 온라인 배너 이미지를 생성하는 단계를 포함하는,
    머신 판독 가능 스토리지 매체.
KR1020217010405A 2018-10-09 2019-09-27 머신 러닝을 사용한 개인화된 배너 이미지 생성 KR20210055759A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/155,255 US10885558B2 (en) 2018-10-09 2018-10-09 Generating personalized banner images using machine learning
US16/155,255 2018-10-09
PCT/US2019/053363 WO2020076518A1 (en) 2018-10-09 2019-09-27 Generating personalized banner images using machine learning

Publications (1)

Publication Number Publication Date
KR20210055759A true KR20210055759A (ko) 2021-05-17

Family

ID=68296652

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217010405A KR20210055759A (ko) 2018-10-09 2019-09-27 머신 러닝을 사용한 개인화된 배너 이미지 생성

Country Status (4)

Country Link
US (3) US10885558B2 (ko)
KR (1) KR20210055759A (ko)
CN (1) CN112823369A (ko)
WO (1) WO2020076518A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11030200B2 (en) * 2018-06-27 2021-06-08 Coupa Software Incorporated Integration of artificial intelligence-based data classification processes with a procurement system to relativize an entity score
US10885558B2 (en) 2018-10-09 2021-01-05 Ebay Inc. Generating personalized banner images using machine learning
US20200380560A1 (en) * 2019-05-30 2020-12-03 Ncr Corporation Automated digital advertising using behavioral intelligence
US20240177162A1 (en) * 2022-11-30 2024-05-30 Stripe, Inc. Systems and methods for machine learning feature generation

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6714975B1 (en) 1997-03-31 2004-03-30 International Business Machines Corporation Method for targeted advertising on the web based on accumulated self-learning data, clustering users and semantic node graph techniques
KR20010109746A (ko) * 2000-06-02 2001-12-12 정민호 인터넷상의 배너광고를 이용한 전자상거래방법
JP2002082874A (ja) * 2000-06-19 2002-03-22 Sony Computer Entertainment Inc バナー広告作成装置および方法、記憶媒体
KR100415852B1 (ko) * 2000-12-12 2004-01-24 주식회사 지식발전소 맞춤 배너 광고 시스템 및 그 운영방법
US7308652B2 (en) * 2001-06-08 2007-12-11 Lenovo Singapore Pte. Ltd Entry of a password through a touch-sensitive computer screen
US7668867B2 (en) 2006-03-17 2010-02-23 Microsoft Corporation Array-based discovery of media items
JP5027082B2 (ja) * 2008-09-02 2012-09-19 ヤフー株式会社 行動履歴分析方法、装置及びプログラム
KR20080104246A (ko) * 2008-11-12 2008-12-02 오영섭 검색어 기반의 동적 맞춤 배너 광고 제공 기법 및 시스템
US20110066497A1 (en) 2009-09-14 2011-03-17 Choicestream, Inc. Personalized advertising and recommendation
US20110307319A1 (en) * 2010-06-15 2011-12-15 Filippo Balestrieri System and method for designing and displaying advertisements
CN102346899A (zh) * 2011-10-08 2012-02-08 亿赞普(北京)科技有限公司 一种基于用户行为的广告点击率预测方法和装置
US8606645B1 (en) * 2012-02-02 2013-12-10 SeeMore Interactive, Inc. Method, medium, and system for an augmented reality retail application
US9230266B2 (en) 2012-10-23 2016-01-05 Adamatic Inc. Systems and methods for generating customized advertisements
JP5847099B2 (ja) * 2013-01-11 2016-01-20 ヤフー株式会社 情報配信装置、及び、情報配信方法
US9384422B2 (en) * 2014-04-04 2016-07-05 Ebay Inc. Image evaluation
US20170091629A1 (en) * 2015-09-30 2017-03-30 Linkedin Corporation Intent platform
EP3371742A4 (en) 2015-11-04 2019-06-26 Shutterfly, Inc. AUTOMATIC PICTURE PRODUCT POSITION FOR USER ACCOUNTS WITH A LARGE NUMBER OF IMAGES
US10290032B2 (en) * 2016-03-31 2019-05-14 Criteo Sa Blacklisting based on image feature analysis and collaborative filtering
CN105956888A (zh) * 2016-05-31 2016-09-21 北京创意魔方广告有限公司 广告个性化展示方法
CN108021417B (zh) * 2016-11-01 2022-02-18 阿里巴巴集团控股有限公司 页面横幅元素的处理方法及装置
US20180144256A1 (en) * 2016-11-22 2018-05-24 Facebook, Inc. Categorizing Accounts on Online Social Networks
KR20180065959A (ko) * 2016-12-08 2018-06-18 고려대학교 산학협력단 개인 맞춤형 배너 광고 플랫폼을 제공하는 장치 및 방법
US11709996B2 (en) * 2016-12-30 2023-07-25 Meta Platforms, Inc. Suggesting captions for content
US20180197223A1 (en) 2017-01-06 2018-07-12 Dragon-Click Corp. System and method of image-based product identification
US11080747B2 (en) * 2018-02-20 2021-08-03 [24]7.ai, Inc. Method and apparatus for selecting treatment for visitors to online enterprise channels
US11171937B2 (en) * 2018-05-25 2021-11-09 Target Brands, Inc. Continuous guest re-authentication system
US10885558B2 (en) 2018-10-09 2021-01-05 Ebay Inc. Generating personalized banner images using machine learning

Also Published As

Publication number Publication date
US10885558B2 (en) 2021-01-05
US20230076209A1 (en) 2023-03-09
US11507984B2 (en) 2022-11-22
WO2020076518A1 (en) 2020-04-16
US20210103957A1 (en) 2021-04-08
CN112823369A (zh) 2021-05-18
US20200111134A1 (en) 2020-04-09

Similar Documents

Publication Publication Date Title
US11810178B2 (en) Data mesh visualization
CN107077320B (zh) 用于自动完成功能的改进的系统和方法
US10380673B2 (en) Virtual facility platform
US11869045B2 (en) Automated valuation model using a Siamese network
US11160026B2 (en) Battery charge aware communications
US11687991B2 (en) Structured item organizing mechanism in e-commerce
US11507984B2 (en) Generating personalized banner images using machine learning
US20210264507A1 (en) Interactive product review interface
US11706167B2 (en) Generating and accessing video content for products
CN110785755B (zh) 用于内容生成的上下文识别
US20220351251A1 (en) Generating accompanying text creative
US11948178B2 (en) Anomaly detection and subsegment analysis method, system, and manufacture
US20230325456A1 (en) Insights Interface for Hidden Products

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X601 Decision of rejection after re-examination