KR20180131531A - 기계 학습 기반 웹 인터페이스 생성 및 테스팅 시스템 - Google Patents

기계 학습 기반 웹 인터페이스 생성 및 테스팅 시스템 Download PDF

Info

Publication number
KR20180131531A
KR20180131531A KR1020187022280A KR20187022280A KR20180131531A KR 20180131531 A KR20180131531 A KR 20180131531A KR 1020187022280 A KR1020187022280 A KR 1020187022280A KR 20187022280 A KR20187022280 A KR 20187022280A KR 20180131531 A KR20180131531 A KR 20180131531A
Authority
KR
South Korea
Prior art keywords
candidate
funnel
entities
population
dimensions
Prior art date
Application number
KR1020187022280A
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 KR20180131531A publication Critical patent/KR20180131531A/ko

Links

Images

Classifications

    • G06F17/3089
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/26Visual data mining; Browsing structured data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F17/2247
    • G06F17/30377
    • G06F17/30572
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/086Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons

Abstract

개략적으로 설명하면, 개시된 기술은 탐색 공간에서 모든 가능안 웹 페이지 디자인을 테스팅하지 않고도 탐색 공간에서 가장 성공적인 웹 페이지 디자인을 효율적으로 식별하기 위해 진화적 조작들을 사용하는 소위 기계 학습된 전환 최적화(MLCO) 시스템을 제공한다. 탐색 공간은 마케터들에 의해 제공되는 웹 페이지 디자인들에 기초하여 정의된다. 단일 웹 페이지 또는 다수의 웹 페이지를 갖는 웹 사이트 퍼널들이 지놈들로서 표현된다. 지놈들은 퍼널들의 상이한 치수들 및 치수 값들을 식별한다. 지놈들은 지놈들은 능숙한 부모 지놈들 및 능숙할 개연성이 있는 자식 지놈들을 식별하기 위한 초기 설정, 테스팅, 경쟁, 및 번식과 같은 진화적 조작들의 대상이 된다. 각 웹 페이지는 단지 그것이 장래성이 있는지, 즉, 그것이 다음 세대를 위한 부모로서의 역할을 해야 하는지, 또는 폐기되어야 하는지를 결정하는 것이 가능할 정도로만 테스팅된다.

Description

기계 학습 기반 웹인터페이스 생성 및 테스팅 시스템
다른 출원 상호 참조
본 출원은 2016년 1월 5일에 출원된 미국 가 특허 출원 62/275,058 "기계 학습을 이용하는 자동 전환 최적화 시스템 및 방법(AUTOMATED CONVERSION OPTIMIZATION SYSTEM AND METHOD USING MACHINE LEARNING)"(대리인 문서 번호 GNFN 3301-1)의 혜택을 주장한다. 우선 가 출원은 이에 의해 참조로 통합된다;
본 출원은 2016년 1월 5일에 출원된 미국 가 특허 출원 62/275,074 "기계 학습을 이용하는 자동 세분화/개인화 전환 최적화(AUTOMATED SEGMENTATION/PERSONALIZATION CONVERSION OPTIMIZATION USING MACHINE LEARNING)"(대리인 문서 번호 GNFN 3302-1)의 혜택을 주장한다. 우선 가 출원은 이에 의해 참조로 통합된다;
본 출원은 이와 함께 동시에 출원된 "기계 학습 기반 웹 인터페이스 생성 및 배치 시스템(MACHINE LEARNING BASED WEBINTERFACE PRODUCTION AND DEPLOYMENT SYSTEM)"(대리인 문서 번호 GNFN 3301-3)이라는 명칭의 미국 가 특허 출원을 참조로 통합한다;
본 출원은 이와 함께 동시에 출원된 "인공 지능망을 이용하는 웹 인터페이스 생성 및 테스팅(WEBINTERFACE GENERATION AND TESTING USING ARTIFICIAL NEURAL NETWORKS)"(대리인 문서 번호 GNFN 3302-2)이라는 명칭의 미국 가 특허 출원을 참조로 통합한다; 그리고
본 출원은 이와 함께 동시에 출원된 "인공 지능망을 이용하는 웹 인터페이스 생성 및 배치(WEBINTERFACE PRODUCTION AND DEPLOYMENT USING ARTIFICIAL NEURAL NETWORKS)"(대리인 문서 번호 GNFN 3302-3)이라는 명칭의 미국 가 특허 출원을 참조로 통합한다.
기술분야
개시된 기술은 일반적으로 인공 지능을 이용하는 웹 인터페이스 생성 및 테스팅, 특히 진화적 조작들을 이용하는 소위 기계 학습된 전환 최적화(MLCO, machine-learned conversion optimization) 솔루션들을 제공하는 것에 관한 것이다.
본 섹션에서 논의되는 주제는 본 섹션에서 단지 그것을 언급했다는 결과로 종래 기술로 간주되지 않아야 한다. 유사하게, 본 섹션에서 언급되는 또는 배경기술로서 제공되는 주제와 연관되는 문제는 종래 기술에서 이전에 인식되었던 것으로 간주되지 않아야 한다. 본 섹션에서의 주제는 단지 상이한 접근법들을 나타내며, 이것들은 그 자체로 또한 청구된 기술의 구현예들에 대응할 수도 있다.
개시된 기술은 탐색 공간에서 모든 가능안 웹 페이지 디자인을 테스팅하지 않고도 탐색 공간에서 가장 성공적인 웹 페이지 디자인을 효율적으로 식별하기 위해 진화적 조작들을 사용하는 소위 기계 학습된 전환 최적화(MLCO) 시스템을 제공한다. 탐색 공간은 마케터들에 의해 제공되는 웹 페이지 디자인들에 기초하여 정의된다. 단일 웹 페이지 또는 다수의 웹 페이지를 갖는 웹 사이트 퍼널들이 지놈들로서 표현된다. 지놈들은 퍼널들의 상이한 치수들 및 치수 값들을 식별한다. 지놈들은 지놈들은 능숙한 부모 지놈들 및 능숙할 개연성이 있는 자식 지놈들을 식별하기 위한 초기 설정, 테스팅, 경쟁, 및 번식과 같은 진화적 조작들의 대상이 된다. 각 웹 페이지는 단지 그것이 장래성이 있는지, 즉, 그것이 다음 세대를 위한 부모로서의 역할을 해야 하는지, 또는 폐기되어야 하는지를 결정하는 것이 가능할 정도로만 테스팅된다.
웹 사이트들 상에서 대조 실험들을 실시하기 위한 공통 방법들은 복잡한 전환 최적화 솔루션들을 포함한다. 전환 최적화는 동시에 웹 페이지들 및 페이지 요소들의 다수의 조합 및 변종들을 테스팅하는 것을 포함한다. 예를 들어, 두 개의 대체 이미지, 플러스 두 개의 대체 헤드라인, 플러스 두 개의 카피 텍스트 대체에 총 27개의 가능한 조합(기본 대조 버전들을 포함하여)이 제공될 수 있다. 그에 따라, 전환 최적화는 사용자들을 진심으로 사로잡는 페이지 요소들의 가장 효과적인 조합을 결정하기 위해 분석될 필요가 있는 순열들 및 조합들의 덜 복잡한 집합을 도입한다.
빅 데이터가 웹 개인화에서 더 중요한 역할을 함에 따라, 데이터 신호들의 수, 룰들의 복잡성, 및 결과들의 수가 기하급수적으로 증가하였다. 그렇게 됨에 따라, 인간 최적화는 사후에, 결과에 거의 영향을 줄 가능성이 없는 경우를 제외하고는 이루어질 수 없다. 알고리즘 최적화가 요구되나, 선형 관계들 및 연관들을 핸들링할 수 있는 간단한 선형 회귀 알고리즘들도 성능을 예측하기 위해 프로세싱되어야 하는 광대한 데이터 입력 및 그 결과로 초래되는 측정치들을 고려할 때, 개선된 결과들을 충분히 생성할 수 없을 수 있다
기계 학습 시스템들은 많은 변수 간 매우 복잡한 관계들을 갖는 변수들이 결과들을 결정하는 것에 수반되는 테스트들을 실행하기 위해 이용된다. 기계 학습 시스템들은 통상적으로 변수들 간 관계들이 사전에 알고리즘을 결정하기에 너무 복잡할 수 있다는 것을 고려할 때, 처음에 공식을 알아내려고 시도하는 것이 하니라 데이터로부터 공식을 알아내기 위해 학습하려고 시도한다. 따라서, 아주 많은 변수가 전환 최적화에 역할을 함에 따라, 입력들의 대용량 데이터 집합으로부터 학습하는 것에 기초하여 결과들에 대한 예측을 하기 위해 기계 학습, 인공 지능, 및 다른 비-선형 알고리즘들을 이용하는 매우 복잡한 알고리즘들이 요구된다.
도면들에서, 같은 참조 부호들을 일반적으로 상이한 도면들 전체에 걸쳐 같은 부분들을 지칭한다. 또한, 도면들은 반드시 일정한 비율로 그려진 것이 아니라, 일반적으로 개시된 기술의 원리들을 도시하는 것에 주안점이 주어진다. 이하 설명에서, 개시된 기술의 다양한 구현예가 이하 도면들을 참조하여 설명되며, 도면들에서:
도 1은 후보 탐색 공간에서 고성능 후보 개체들을 식별하기 위한 진화적 조작들을 구현하는 전환 시스템을 도시한다.
도 2는 도 1에서의 전환 시스템의 진화적 조작을 구현하기 위해 사용될 수 있는 모듈들을 예시한다.
도 3은 기계 학습된 전환 최적화(MLCO)의 워크플로우를 도시한다.
도 4는 다수의 웹 인터페이스를 갖는 퍼널을 예시한다.
도 5는 퍼널의 웹 인터페이스 레이아웃을 도시한다.
도 6은 퍼널의 웹 인터페이스를 그것의 치수들 및 치수 값들과 함께 도시한다.
도 7은 스타터 퍼널의 편집기 디자인 표현을 런타임 디자인 표현으로 변환하는 일 구현예의 상징적인 도해이다.
도 8은 스타터 퍼널의 스타터 치수들 및 스타터 치수 값들을 부호화하는 일 구현예의 상직적인 도면을 도시한다.
도 9는 스타터 퍼널의 스타터 치수들 및 스타터 치수 값들을 스타터 후보 개체/스타터 지놈으로 부호화하는 일 구현예를 예시한다.
도 10은 스타터 퍼널에 기초하여 제1 세대를 초기화하는 일 구현예를 도시한다.
도 11은 교차 기술을 사용하여 새로운 후보 개체들을 번식하는 일 구현예의 상징적인 도면을 도시한다.
도 12는 변이 기술을 사용하여 후보 개체들을 번식하는 일 구현예의 상징적인 도면이다.
도 13 및 도 14는 최종 사용자들에 전단 제시를 위해 상응하는 후보 개체들에 의존하여 하나 이상의 웹 인터페이스의 퍼널들을 생성하는 일 구현예를 도시한다.
도 15는 기계 학습된 사용자 디바이스(MLUD, machine-learned user device)의 일 구현예이다.
도 16은 기계 학습된 콘텐츠 전달 네트워크(MLCDN, machine learned content delivery network)의 일 구현예를 도시한다.
도 17은 대조 개체 및 승리 개체를 치수들 및 치수 값들을 포함하여 그래픽으로 예시한다.
도 18은 개시된 진화적 조작들의 일 구현예의 예시적인 결과들을 그래픽으로 예시하는 차트이다.
도 19는 개시된 진화적 조작들에 대한 위험 허용치를 구현하는 위험 허용치 모듈 및 후보 모집단을 세분화하는 분배 모듈의 일 구현예를 도시한다.
도 20은 개시된 기술을 구현하기 위해 사용될 수 있는 컴퓨터 시스템의 간략화된 블록도이다.
다음 논의는 해당 기술분야에서의 통상의 기술자가 개시된 기술을 이용 및 사용할 수 있게 하기 위해 제시되고, 특정 적용 및 그것의 요건들의 맥락에서 제공된다. 개시된 구현예들에 대한 다양한 변경예들이 해당 기술분야에서의 통상의 기술자들에게 쉽게 명백해질 것이고, 본 출원에서 정의되는 일반 원리들은 개시된 기술의 사상 및 범위에서 벗어나지 않고 다른 구현예들 및 적용예들에 적용될 수 있다. 그에 따라, 개시된 기술은 제시된 구현예들에 제한되도록 의도되는 것이 아니라, 본 출원에 개시된 원리들 및 특징들에 맞는 가장 넓은 범위를 부여 받아야 한다.
개시된 구현예들에 따른 시스템들, 장치, 및 방법들의 예들은 전환 최적화 맥락에서 설명된다. 다른 사례들에서, 개시된 기술은 다변량 테스팅, A/B 테스팅, 랜딩 페이지 최적화, 전환율 최적화, 웹 사이트 테스팅, 웹 사이트 최적화, 검색 엔진 최적화, 정보 기술, 통신 시스템들, 금융 시스템들, 증권 거래, 은행 업무, 비즈니스 인텔리전스, 마케팅, 의학 및 보건학, 채굴, 에너지 등에 적용될 수 있다. 다른 서비스들이 가능하며, 그에 따라 다음 예들은 범위, 맥락, 또는 설정 중 어느 것에서도 확정적이거나 제한적인 것으로 취해지지 않게 되어야 한다.
개시된 기술은 데이터베이스 시스템, 멀티-테넌트 환경, 또는 관계 데이터베이스 구현 이를테면 Oracle™ 호환가능 데이터베이스 구현, IBM DB2 Enterprise Server™ 호환가능 관계 데이터베이스 구현, MySQL™ 또는 PostgreSQL™ 호환가능 관계 데이터베이스 구현 또는 Microsoft SQL Server™ 호환가능 관계 데이터베이스 구현 또는 NoSQL™ 비-관계 데이터베이스 구현 이를테면 Vampire™ 호환가능 비-관계 데이터베이스 구현, Apache Cassandra™ 호환가능 비-관계 데이터베이스 구현, BigTable™ 호환가능 비-관계 데이터베이스 구현 또는 HBase™ 또는 DynamoDB™ 호환가능 비-관계 데이터베이스 구현을 포함하여 모든 컴퓨터 구현 시스템의 상황에서 구현될 수 있다. 또한, 개시된 기술은 상이한 프로그래밍 모델들 이를테면 MapReduce™, BSP(bulk synchronous programming), MPI 프리미티브 등 또는 상이한 스케일러블 배치(scalable batch) 및 스트림 관리 시스템들 이를테면 Amazon Elasticsearch Service™ 및 Amazon Kinesis™을 포함하는 Amazon Web Services(AWS)™, Apache Storm™, Apache Spark™, Apache Kafka™, Apache Flink™, Truviso™, IBM Info-Sphere™, Borealis™ 및 Yahoo! S4™를 사용하여 구현될 수 있다.
본 출원에서 사용될 때, 정보의 항목의 "식별(identification)"은 반드시 해당 정보의 항목의 직접 지정(direct specification)을 필요로 하지는 않는다. 정보는 필드에서 하나 이상의 간접 레이어를 통해 실제 정보를 간단히 나타냄으로써, 또는 실제 정보의 항목을 함께 결정하기에 충분한 상이한 정보의 하나 이상의 항목을 식별함으로써 "식별"될 수 있다. 또한, 용어 "지정하다(specify)"는 본 출원에서 "식별하다(identify)"와 동일한 의미로 사용된다.
본 출원에서 사용될 때, 소정의 신호, 이벤트 또는 값은 소정의 신호, 이벤트 또는 값에 의해 영향을 받는 이전 신호, 이벤트 또는 값의 이전 신호, 이벤트 또는 값에 "의존적"이다. 처리 요소, 단계 또는 시간 기간이 개재되는 경우에도, 소정의 신호, 이벤트 또는 값은 여전히 이전 신호, 이벤트 또는 값에 "의존적"일 수 있다. 개재된 처리 요소 또는 단계가 하나보다 많은 신호, 이벤트 또는 값을 조합할 경우, 처리 요소 또는 단계의 신호 출력은 신호, 이벤트 또는 값 입력들의 각각에 "의존적"인 것으로 고려된다. 소정의 신호, 이벤트 또는 값이 이전 신호, 이벤트 또는 값과 동일할 경우, 이는 단지 소정의 신호, 이벤트 또는 값이 여전히 이전 신호, 이벤트 또는 값에 "의존적" 또는 "의존하는" 또는 "기초하는" 것으로 고려되는 퇴보한 경우(degenerate case)이다. 소정의 신호, 이벤트 또는 값의 다른 신호, 이벤트 또는 값에 대한 "응답성"이 유사하게 정의된다.
본 출원에서 사용될 때, "동시에(concurrently)" 또는 "병행하여(in parallel)"는 정확한 동시성을 요구하지는 않는다. 그것은 개체들의 하나에 대한 평가가 완료되기 전에 개체들의 다른 하나에 대한 평가가 시작되면 충분하다.
본 출원에서 사용될 때, 용어 "퍼널(funnel")은 후보 개체의 전단(frontend)을 지칭하며, 이는 최종 사용자들에 의해 인지가능, 작동가능, 그리고 이해가능하다. 구현예들에서, 퍼널은 사용자 상호작용을 요청하고 그것에 응답한다. 퍼널은 하나 이상의 웹 인터페이스를 포함한다. 웹 인터페이스들의 몇몇 예는 웹 페이지들 웹 사이트들, 이-메일들, 모바일 어플리케이션들, 데스크탑 어플리케이션, 디지털 광고들, 소셜 미디어 메시지(예를 들어, Tweet™, Facebook post™), 소셜 미디어 피드 항목들, 소셜 미디어 프로필들, 소셜 미디어 계정들, 소셜 미디어 챗 메시지, 포괄적인 챗 메시지들, 폼들, 자동으로 채워지는 폼들 등의 대조 버전들 및 변종들 양자를 포함한다.
개시된 기술의 구현예들에서, 퍼널은 하나 이상의 인터넷 액세스가능 데이터 센터 이를테면 웹 사이트(퍼널들의 세트)에 또는 그것에 걸쳐, 웹 사이트 후면에서 실행되는 관련 어플리케이션들과 함께 구현된다. 최종 사용자들은 퍼널에 액세스하고 그것과 상호작용할 수 있는 인터넷 액세스가능한 클라이언트 디바이스들 또는 클라이언트들(예를 들어, 데스크탑 컴퓨터들, 노트북 컴퓨터들, 태블릿들, 모바일 디바이스들, 전화들 또는 렌더링 엔진들을 갖는 다른 디바이스들, 또는 그 밖에 유사한 것)을 작동한다. 일 구현예에서, 최종 사용자들은 웹 브라우저 또는 모바일 어플리케이션을 여는 것에 의해 퍼널에 액세스한다. 몇몇 구현예에서, 최종 사용자들은 퍼널(또는 이의 몇몇 부분)을 인증가능할 수 있다.
개시된 기술의 구현예들에서, 웹 인터페이스는 구조가 기저를 이루는 포맷에 의존하는 구조 문서이다. 예를 들어, 일 구현예에서, 웹 인터페이스는 하이퍼 텍스트 마크업 언어(HTML), 확장성 생성 언어(XML), 또는 다른 웹 지원 구조 문서에 기초하는 웹 지원 포맷을 갖는다. 웹 인터페이스는 하나 이상의 자원(예를 들어, 자바 스크립트 자원, 연속형 문서 양식(CSS, Cascading Style Sheet) 자원, 비동기 자바 스크립트 XML(AJAX, Asynchronous and JavaScript XML) 자원, 이미지 자원, 비디오 자원 등), 또는 보다 통상적으로, 웹 인터페이스 내에 끼워 넣어지는, 그러한 자원들을에 대한 레퍼런스들을 포함할 수 있다. 예로서, 웹 인터페이스에 끼워 넣어지는 자원은 일반적으로 다른 것들 중에서도, 자원의 유형에 따라, 스크립트 요소, 스타일 요소, 이미지 요소, 또는 객체 요소 내에 포함되거나 지정될 수 있다. 통상적으로, 최종 사용자의 클라이언트 디바이스에서 실행되는 웹 브라우저 또는 다른 클라이언트 어플리케이션은 수신된 웹 인터페이스의 문서 객체 모델(DOM) 재현을 구축한다.
다른 구현예에서, 웹 인터페이스는 평문, 리치 텍스트, 또는 HTML에 기초하는 이-메일 포맷(CSS와 같은 스타일 정의가 있거나 없는 포맷 또는 자바 스크립트와 같은 포맷의 스크립트 명령들, 예를 들어, Microsoft Outlook™, Google Gmail™, Apple Mail™, iOS Mail™, Thunderbird™, AOL Mail™, Yahoo Mail™, Windows Live™)을 갖는다. 또 다른 구현예들에서, 웹 인터페이스는 HTML5에 기초하는 모바일 어플리케이션 포맷, 네이티브 포맷들(예를 들어, iOS™ 또는 Android™), 및 하이브리드 포맷들을 갖는다.
임의의 다른 종래의 또는 장차 개발될 구조 문서들 또는 그것들의 또는 그것들에 사용되는 포맷들은 웹 인터페이스들인 것으로 고려된다. 상기한 구현예들은 개시된 기술(이를테면 웹 인터페이스들의 청각 및 촉각 제시들)의 사상 및 범위에서 벗어나지 않고 해당 기술분야에서의 통상의 기술자들에게 쉽게 명백해질 것이다.
웹 인터페이스(예를 들어, 웹 페이지들, 웹 사이트들, 이-메일들, 모바일 어플리케이션들, 데스크탑 어플리케이션들, 디지털 광고들)는 페이지 요소들을 포함한다. 페이지 요소들의 몇몇 예는 이미지들, 비디오들, 애니메이션들, 헤드라인, 헤딩, 콜-투-액션(calls-to-action), 텍스트 카피들, 폼 길이 등을 포함한다. 일례로, 콜-투-액션은 사용자가 웹 인터페이스의 임의의 부분을 클릭하거나 가볍게 두드릴 때 일어날 일을 정의한다. 웹 인터페이스의 페이지 요소들은 소위 웹 인터페이스 레이아웃에 배열된다. 웹 인터페이스 레이아웃은 웹 인터페이스의 페이지 요소들의 서로에 관한 위치 결정을 정의한다. 예를 들어, 이미지는 웹 인터페이스 레이아웃의 오른쪽 아래 그리고 비디오는 중심에 있을 수 있다. 웹 인터페이스에서, 모든 호환가능한 페이지 요소는 웹 인터페이스 레이아웃을 사용하여 설명되며, 이는 페이지 요소들이 서로에 관해 어떻게 보이기로 되어 있는지 그리고 그것들이 서로 어떻게 상호작용하기로 되어 있는지를 설명한다. 각 페이지 요소는 몇몇 속성을 갖는다. 예를 들어, 이미지 페이지 요소들은 유형, 배치, 및 크기와 관련된 속성들을 갖고; 콜-투-액션은 색상, 텍스트, 크기, 및 배치와 관련된 속성들을 가지며; 텍스트 카피들은 콘텐츠, 길이, 및 크기와 관련된 속성들을 갖는다.
본 출원에서 사용될 때, 용어들 "퍼널(들)", "후보 개체(들)", "개체(들)", "지놈(들)", 및 "크로모솜(chromosome)(들)"은 교체 사용된다. 또한, "개체(들)", "지놈(들)", 및 "크로모솜(들)"은 유전인자(들) 및/또는 "유전인자 값(들)"로 구성되어 있다. 본 출원에서 사용될 때, 용어 "유전인자(들)" 및/또는 "유전인자 값(들)"은 상이한 "엔티티" 및/또는 상이한 "엔티티들" 이를테면 클러스터(들) 또는 페이지 요소(들) 또는 요소(들) 또는 치수(들) 또는 스타터 치수(들), 페이지 요소 값(들) 또는 요소 값(들) 또는 치수 값(들) 또는 스타터 치수 값(들) 또는 값(들), 서브-시퀀스(들), 서브-요소(들) 또는 대조 서브-요소(들) 또는 테스트 서브-요소(들), 서브-요소 값(들) 또는 대조 서브-요소 값(들) 또는 테스트 서브-요소 값들 또는 이들의 임의의 조합들을 나타낼 수 있다. 그에 따라, 본 출원에서 사용될 때, "유전인자마다(gene-by-gene)"의 연산들 또는 "유전인자-레벨(gene-level)"에서 수행 또는 실행되는 연산들, 이를테면 유전인자마다의 선별, 유전인자마다의 교차, 또는 유전인자마다의 변이는 선별하기 위해, 교차시키기 위해, 그리고/또는 변이시키기 위해 하나의 엔티티를 하나의 단위로 그리고/또는 선별하기 위해, 교차시키기 위해, 그리고/또는 변이시키기 위해 엔티티들의 조합을 하나의 단위로 다룰 수 있다.
도입
개시된 기술은 탐색 공간에서 모든 가능안 웹 페이지 디자인을 테스팅하지 않고도 탐색 공간에서 가장 성공적인 웹 페이지 디자인을 효율적으로 식별하기 위해 진화적 조작들을 사용하는 소위 기계 학습된 전환 최적화(MLCO) 시스템을 제공한다. 탐색 공간은 마케터들에 의해 제공되는 웹 페이지 디자인들에 기초하여 정의된다. 단일 웹 페이지 또는 다수의 웹 페이지를 갖는 웹 사이트 퍼널들이 지놈들로서 표현된다. 지놈들은 퍼널들의 상이한 치수들 및 치수 값들을 식별한다. 지놈들은 지놈들은 능숙한 부모 지놈들 및 능숙할 개연성이 있는 자식 지놈들을 식별하기 위한 초기 설정, 테스팅, 경쟁, 및 번식과 같은 진화적 조작들의 대상이 된다. 각 웹 페이지는 단지 그것이 장래성이 있는지, 즉, 그것이 다음 세대를 위한 부모로서의 역할을 해야 하는지, 또는 폐기되어야 하는지를 결정하는 것이 가능할 정도로만 테스팅된다.
전자 상거래에서, 사용자 경험들, 즉, 웹 페이지들 및 상호작용들을 디자인하는 것(이는 무심하게 둘러보는 사람들로부터 가능한 많은 최종 사용자를 돈을 낼 수 있을만한 고객들로 전환한다)은 중요한 목표이다. 간단함 및 일관성을 포함하여, 몇몇 주지의 디자인 원리가 있지만, 또한 종종 그것이 어떻게 잘 전환되는지를 결정하는 페이지의 요소들 간 예기치 않은 상호작용들이 있다. 동일한 요소가 하나의 상황에서는 잘 작용하나 다른 상황들에서는 그렇지 않을 수 있다―결과를 예측하는 것은 보통 힘들고, 소정의 페이지를 어떻게 개선할지를 결정하는 것은 훨씬 더 힘들다.
모든 산업은 이러한 과제들을 다루기 시작했다; 그것은 전환율 최적화, 또는 전환 과학이라 불리운다. 대부분 종업자들이 사용하는 표준 방법은 A/B 테스팅, 즉, 동일한 페이지의 두 개의 상이한 버전을 디자인하는 것, 그것들을 상이한 사용자들에게 제시하는 것, 그리고 그것들이 각각 얼마나 잘 전환되는지에 관한 통계 자료들을 수집하는 것이다. 이러한 프로세스는 도메인 및 전환 최적화에 대한 인간의 지식을 디자인에 통합시킨 다음, 그것들의 효과를 테스팅하는 것을 가능하게 한다. 결과들을 살펴본 후, 새로운 디자인들이 비교되고 점진적으로 개선될 수 있다. A/B 테스팅 프로세스는 어렵고 시간 소모가 크다: 단지 페이지 디자인들의 극히 일부만이 이러한 방식으로 테스팅될 수 있고, 디자인에서의 미묘한 상호작용들은 그저 완전히 놓쳐질 수 있다.
개시된 기술은 마케터들 자신이 생성하는 변수들 및 변수 값들로부터 테스팅될 웹 페이지 후보들을 자동으로 생성한다. 변수들 및 변수 값들은 버튼 색상 및 글꼴 두께와 같은 작은 변화들로부터 대규모 메시징 및 디자인 규격들까지, 웹 사이트 상의 모든 것일 수 있다. 이러한 변수들은 모두 퍼널에서의 단일 페이지 상에 또는 다수의 페이지에 걸쳐 있을 수 있다. 개시된 기술은 값들의 광범위한 가능한 조합들 중에서 가장 성공적인 변수들 및 변수 값들을 찾는다.
개시된 기술을 이용하면, 수천의 페이지 디자인이 단시간에 테스트될 수 있으며, 이는 A/B 테스팅을 통해서는 불가능하다. 다른 한편으로는, 진화적 탐색을 통해, 개시된 기술은 최고 디자인들을 찾기 위해 페이지 디자인들의 훨씬 더 큰 집합(예를 들어, 수백만)에서 페이지 디자인들의 단지 작은 서브 집합(예를 들어, 수천)만을 테스팅한다. 개시된 기술은 시간이 흐르면서 어느 요소들의 조합들이 효과적일지 학습하고, 점진적으로 탐색의 포커스를 가장 유망한 디자인들에 맞춘다.
개시된 기술은 짧아진 시간 프레임들에 훨씬 더 많은 아이디어를 테스팅할 수 있는, 전환 최적화를 위해 자동화된 시스템이다. 그것은 전환 증가로 이어지는 변수들의 미묘한 조합들을 찾는다. 개시된 기술은 사람들에 의해 설계된 디자인들보다 양호하게 전환되는 디자인들을 발견할 수 있는데, 이는 보통 그것이 요소들간 예기치 않은 상호작용들을 찾기 때문이다. 예를 들어, 개시된 기술은 그것이 녹색일 필요가 있다는 것(그러나 그것이 투명할 때에만) 그리고 헤더가 작은 글꼴이고 헤더 텍스트가 정렬되어야 함을 발견할 수 있다. 상기한 상호작용들이 종종 존재하고, 그것들은 발견하기 매우 어려울 수 있다. 개시된 기술은 광범위한 사람의 노력 대신, 인공 지능에 기초하여, 이러한 발견 프로세스를 자동으로 만든다. 그에 따라 개시된 기술을 이용하면, 전환을 이전보다 더 양호하게 그리고 훨씬 더 큰 규모로 최적화하는 것―그리고 전자 상거래 상황들이 바뀔 때 그것들을 최적화하는 것을 유지하는 것이 가능하다.
기계 학습된 전환 최적화(MLCO) 시스템
도 1은 후보 탐색 공간에서 고성과 후보 개체들을 식별하기 위한 진화적 조작들을 구현하는 전환 시스템(104)을 도시한다. 전환 시스템(104)은 후보 개체 모집단(102)에서의 후보 개체들에 대한 성능 측정치들(106)을 끊임없이 수집하고 전개시킴으로써 그렇게 한다. 전환 시스템(104)은 또한 후보 개체들을 하나 이상의 웹 인터페이스의 퍼널들로 변환하기 위해 제시 생성기를 사용한다. 퍼널들은 성능 측정치들(106)이 최종 사용자들에 의해 제공되는 평가 데이터(예를 들어, 사용자 클릭들)에 기초하여 대응하는 후보 개체들에 대해 전개될 수 있도록 라이브 온라인 평가(108) 동안 최종 사용자들에게 제시된다.
각 퍼널은 타겟 사용자 거동의 획득이 검출될 수 있는 메커니즘을 갖는다. 일 구현예에서, 타겟 사용자 거동은 최종 사용자들에 의한 전환이다. 각 퍼널에 대해, 전환은 디자이너, 마케터, 광고주, 또는 콘텐츠 제작자에 의해 정의되는 전환 목표에 기초하여 검출될 수 있다. 전환 목표의 예들은 사용자가 퍼널의 특정 웹 인터페이스에 도달하는 것(예를 들어, 감사 페이지(thank you page)), 사용자가 퍼널의 웹 인터페이스 상의 링크 또는 버튼 또는 다른 사용자 인터페이스 요소를 클릭하는 것, 또는 (예를 들어, jQuery를 사용하여) 디자이너에 의해 정의되는 임의의 다른 사용자 정의 이벤트를 포함한다. 전환 목표의 다른 예들은 사용자가 Amazon.com™ 상의 "지금 구매(Buy Now)" 버튼을 클릭하는 것, 사용자가 이-메일 등록 페이지 상의 "가입(Sing Up)" 버튼을 클릭하는 것, 사용자가 어플리케이션 랜딩 페이지 상의 "지금 다운로드(Download Now)" 버튼을 클릭하는 것, 사용자가 리포트를 다운로드하기 위한 폼을 채우는 것, 사용자가 장바구니에 아이템을 추가하는 것, 사용자가 장바구니 결제를 초기화하는 것, 그리고 사용자가 책을 읽겠다는 약속을 하는 것을 포함한다. 전환 목표들은 상이한 퍼널들 및 상이한 테스팅 환경들에 대해 상이할 수 있다.
전환 시스템(104)은 전환 시스템(104)에 후보 개체의 적응도(fitness)를 측정하는 법을 나타내는 성능 측정치들(106)에 따라 작동한다. 전환 시스템(104)은 최고 적응도를 갖는 후보 개체들을 최대한으로 활용하나, 적응도는 성능 측정치들(106)에 의해 정의된다. 성능 측정치들(106)은 타겟 사용자 거동을 획득하는 것에 있어서의 후보 개체 및 대응하는 퍼널의 성공 지표이다. 성능 측정치들(106)은 특정 적용예의 환경 및 목표들에 특유하다. 예를 들어, 웹 페이지 테스팅 환경에서, 성능 측정치들(106)은 퍼널에 대해 정의되는 전환 목표의 함수일 수 있다. 일 구현예에서, 성능 측정치들(106)은 "전환율"에 기초한다. 전환율은 퍼널을 방문하고 퍼널에 대해 정의되는 전환 목표를 완료하는 최종 사용자들의 비율(즉, 전환 목표를 완료하는 방문자들의 퍼센테이지)이다. 예를 들어, 5000 방문자와 50 전환을 갖는 웹 사이트는 1%의 전환율을 갖는다. 다른 구현예에서, 성능 측정치들(106)은 "수익률"에 기초한다. 수익률은 최종 사용자들이 퍼널에 대해 정의되는 전환 목표를 완료하는 것의 결과로서 최종 사용자마다 생성되는 수익량(예를 들어, 수치로 나타낸 달러 값)이다.
라이브 온라인 평가(108)에 관해, "라이브 온라인 평가"는 후보 개체들에 의존하여 구성된 퍼널들이 테스팅을 위해 실세계 최종 사용자들에 제시되는 실시간 테스트들 또는 시행들(trials)을 의미한다. 라이브 온라인 평가(108) 동안, 성능 측정치들(106)은 대응하는 퍼널들과의 실시간 및 실세계 사용자 상호작용에 기초하여 후보 개체들의 각각에 대해 전개된다. 통상적으로, 각 퍼널에 대해, 성능 측정치들(106)은 최종 사용자들의 표본에 대해 결정된다(예를 들어, 1000 최종 사용자 또는 2000 최종 사용자 등) 라이브 온라인 평가(108) 동안 퍼널들의 성능에 기초하여 계산되는 성능 측정치들(106)은 퍼널들을 생성하기 위해 원래 사용된 대응하는 후보 개체들과 연관되거나 그것들과 관련되거나 그것들에 배속된다는 것에 주의하자. 그 후, 성능 측정치들(106)은 고성능 개체들을 번식시키기 위해 개시된 진화적 조작들에 의해 사용된다.
전환 시스템(104)은 후보 개체 모집단(102)을 포함하는 데이터베이스와 상호작용한다. 본 출원에서 사용될 때, 용어 "데이터베이스"는 반드시 구조의 모든 통일을 암시하지는 않는다. 예를 들어, 두 개 이상의 별개의 데이터베이스는 함께 고려될 때, 해당 용어가 본 출원에서 사용될 때 여전히 "데이터베이스"가 되는 것으로 여겨진다. 몇몇 구현예에서, 데이터베이스는 온-디맨드 데이터베이스 서비스(ODDS, on-demand database service)를 형성하기 위해 하나 이상의 테넌트로부터의 정보를 공통 데이터베이스 이미지의 테이블들에 저장할 수 있으며, 이는 멀티-테넌트 데이터베이스 시스템(MTDS)와 같은 많은 방식으로 구현될 수 있다. 데이터베이스 이미지는 하나 이상의 데이터베이스 객체를 포함할 수 있다. 다른 구현예들에서, 데이터베이스는 관계 데이터베이스 관리 시스템(RDBMS, relational database management system), 객체 지향 데이터베이스 관리 시스템(OODBMS, object oriented database management system), 분산 파일 시스템(DFS, distributed file system), 노-스키마 데이터베이스(no-schema database), 또는 임의의 다른 데이터 저장 시스템 또는 컴퓨팅 디바이스일 수 있다.
일 구현예에서, 모집단(102)에서의 후보 개체들은 종래 데이터베이스 관리 시스템들(DBMS)에 의해 저장 및 관리되고, SQL 구문들을 사용하여 액세스된다. 그에 따라, 종래 SQL 쿼리문이 예를 들어, 후보 개체들의 성능 측정치들(106)을 얻기 위해 사용될 수 있다. 새로운 후보 개체들은 SQL "삽입" 문을 사용하여 모집단(102)으로 삽입될 수 있고, 폐기되는 후보 개체들은 SQL "삭제" 문을 사용하여 삭제될 수 있다. 다른 구현예에서, 모집단(102)에서의 후보 개체들은 링크 리스트로 저장된다. 그러한 구현예에서, 새로운 후보 개체의 삽입은 그것의 콘텐츠를 프리 리스트에 요소로 기입함으로써, 그리고 그 다음 요소를 메인 링크 리스트로 링크시킴으로써 실현될 수 있다. 후보 개체들을 폐기하는 것은 그것들을 메인 링크 리스트에서 링크 해제하고 그것들을 프리 리스트로 재-링크시키는 것을 수반한다.
몇몇 구현예에서, MLCO 시스템은 임의적인 풀필먼트 시스템(fulfillment system)(110)을 사용한다. 풀필먼트 시스템(110)은 전환 시스템(104)으로부터의 출력/액션 신호들에 의해 자동으로 제어되는 시스템이다. 웹 페이지 테스팅 환경에서, 예를 들어, 풀필먼트 시스템(110)은 컴퓨터 네트워크(미도시)를 통해 신호들을 수신하고 적절한 거래 및 배달 액션을 취하는 제품 분포 이-웨어하우스(예를 들어, Amazon.com™)이다.
본 논의는 이제 도 1의 MLCO 시스템에 의해 구현되는 진화적 조작들로 향한다.
진화적 조작들
도 2는 도 1에서의 전환 시스템(104)의 진화적 조작을 구현하기 위해 사용될 수 있는 모듈들을 예시한다. 도 2에서, 실선들은 데이터 흐름을 나타내고, 파선들은 제어 흐름을 나타내며, 점선들은 임의적인 모듈들을 나타낸다. 도 2에서의 모듈들은 하드웨어 또는 소프트웨어로 구현될 수 있고, 도 2에 도시된 바와 정확히 동일한 블록들로 나눠질 필요는 없다. 모듈들 중 일부는 또한 상이한 프로세서들 또는 컴퓨터들 상에서 구현되거나, 또는 다수의 상이한 프로세서 또는 컴퓨터 중에 분산될 수도 있다. 덧붙여, 모듈들 중 일부는 달성되는 기능들에 영향을 미치지 않고 병렬로 또는 도 2에 도시된 시퀀스와 상이한 시퀀스로 작동되어, 조합될 수 있다는 것이 이해될 것이다. 또한 본 출원에서 사용될 때, 용어 "모듈"은 "서브-모듈들"을 포함할 수 있으며, 이들은 그것들 자체로 모듈들을 구성하기 위한 것으로 본 출원에서 고려될 수 있다. 특히, 후보 테스팅 모듈(212), 경쟁 모듈(222), 및 번식 모듈(228)이 또한 후보 처리 모듈(220)의 서브-모듈들인 것으로 본 출원에서 고려된다. 모듈들로서 표기되는, 도 2에서의 블록들은 또한 방법에서의 흐름도 단계들로 여겨질 수도 있다. 모듈은 또한 반드시 그것의 모든 코드가 메모리에서 인접하여 배치되게 하는 것을 아닐 수도 있다; 즉 코드의 몇몇 부분은 코드의 다른 부분들과 그것들 사이에 배치되는 다른 모듈들 또는 다른 기능들로부터의 코드를 두고 분리될 수 있다.
모집단 초기 설정
도 2를 참조하면, 후보 개체 모집단(102)은 모집단 초기 설정 모듈(202)에 의해 초기화되며, 이는 후보 개체들의 예비 풀을 모집단(102)에 기입한다. 예비 풀은 랜덤으로 생성될 수 있거나, 또는 몇몇 구현예에서, 제1 세대를 시딩(seeding)하기 위g한 사전 지식이 사용될 수 있다. 다른 구현예에서, 사전 실행들로부터의 후보 개체들이 새로운 실행을 시딩하기 위해 차용될 수 있다. 시작에서, 모든 후보 개체는 정의되지 않는 것으로 표시되는 성능 측정치들(106)로 초기화된다.
모집단 초기 설정 모듈(202)은 또한 후보 탐색 공간을 정의한다. 본 출원에서 사용될 때, 용어 "후보 탐색 공간"은 M 차원을 갖는 공간을 나타내며, 이때 각 차원은 상이한 후보 개체들이 상이한 값들을 가질 수 있는 축을 나타낸다. 공간의 각 차원의 크기는 그러한 차원에 대해 이용가능한 값들의 범위와 동일하다.
이하의 논의는 스타터 퍼널이 디자인 편집기를 사용하여 디자이너, 마테너, 광고자, 또는 콘텐츠 제작자에 의해 어떻게 정의되는지를 설명한다. 정의가 되면, 후보 탐색 공간을 정의하고 제1 세대를 시딩하기 위해 스타터 퍼널이 모집단 초기 설정 모듈(202)에 의해 사용된다.
스타터 퍼널 정의
후보 탐색 공간은 모집단 적어도 하나의 스타터 퍼널, 및 그것의 스타터 웹 인터페이스들의 스타터 치수들 및 스타터 치수 값들에 의존하여 초기 설정 모듈(202)에 의해 정의된다. 구현예들에서, 스타터 퍼널은 도 3에 도시된 디자인 편집기(302)를 사용하여 정의된다. 디자인 편집기(302)는 MLCO 워크플로우를 구현하기 위해 디자이너, 마케터, 광고주, 또는 콘텐츠 제작자에 의해 사용되는 인터페이스(304)의 부분으로 다양한 인터페이스 구성요소를 포함한다. 특히, 디자인 편집기(302)는 디자이너에 의해: 스타터 퍼널의 하나 이상의 스타터 웹 인터페이스를 지정하기 위해; 스타터 퍼널에 대한 전환 목표를 설정하기 위해; 스타터 퍼널에 대한 성능 측정치를 설정하기 위해; 스타터 퍼널의 스타터 웹 인터페이스들의 각각에 대한 스타터 치수들 및 스타터 치수 값들을 설정하기 위해; 스타터 퍼널을 미리보기 위해, 그리고 테스트를 전개하기 위해 사용된다.
도 4는 세 개의 스타터 웹 인터페이스(예를 들어, 하나의 랜딩 페이지 및 두 개의 퍼널 페이지)를 갖는 스타터 퍼널의 일 구현예를 도시한다. 일 구현예에서, 스타터 웹 인터페이스들은 그것들의 각각의 액세스 경로들(예를 들어, URL들(unified resource locators)에 의해 스타터 퍼널에서 식별되고, 토폴로지 시퀀스로 배열된다. 통상적으로, 토폴로지 시퀀스는 퍼널에 대해 정의된 전환 목표를 이루기 위해 최종 사용자가 퍼널을 통해 따르는 경로를 결정한다. 토폴로지 시퀀스는 인터페이스(304)에 걸쳐 디자이너에 의해 그래픽으로 설정되고 메모리에 논리적으로 저장된다.
도 4는 또한 디자이너가 스타터 퍼널에 대한 전환 목표를 설정할 수 있게 하는 "전환 목표 정의" 버튼을 도시한다. 전환 목표의 예들은 또한 "리드들을 증가" 또는 "수익을 증가"를 포함한다. 디자이너는 또한 어떤 이벤트들의 유형이 전환이 발생했음을 나타내는 것으로 고려될 것인지, 이를테면 감사 페이지 방문, 버튼 또는 링크 클릭, 또는 사용자 정의 이벤트를 정의한다. 전환 목표를 설정한 후, 디자이너는 스타터 퍼널을 위한 성능 측정치를 지정한다. 성능 측정치는 테스트 동안 후보 개체들의 성능을 평가하기 위해 개시된 진화적 조작들에 의해 사용된다.
그 다음, 웹 인터페이스 레이아웃이 스타터 퍼널에 대해 생성된다. 본 출원에서 사용될 때, "웹 인터페이스 레이아웃"은 단지 퍼널의 특정 웹 인터페이스를 정의하기 위해 치수들에 대한 대안적인 값들이 삽입되는 템플릿이다. 일 구현예에서, 웹 인터페이스 레이아웃은 다양한 스크린 캔버스들을 갖는 디바이스들(예를 들어, 스마트폰들, 태블릿들, 컴퓨터들, 웨어러블 디바이스들)의 옵션들 중으로부터 디자이너에 의해 선별되는 시뮬레이트된 디바이스에 걸쳐 디스플레이된다. 몇몇 구현예에서, 디바이스들의 옵션들은 상이한 디바이스 모델들 이를테면 iPhone6™, Samsung Galaxy S6™ 등을 나열한다. 도 5는 웹 인터페이스 레이아웃 및 웹 인터페이스 레이아웃에 적용될 수 있는 상이한 치수들 및 치수 값들의 일 구현예를 예시한다.
그 다음, 디자이너는 스타터 퍼널의 스타터 웹 인터페이스들의 각각에 대한 웹 인터페이스 레이아웃에 포함될 상이한 페이지 요소들(본 출원에서 "스타터 치수들"로 지칭됨)을 선별한다. 일 구현예에서, 디자이너는 또한 페이지 요소에 대한 유형을 지정한다. 예를 들어, 페이지 요소의 이름은 "Clean, Awesome and Multi-Purpose"이고 페이지 요소의 유형은 "헤드라인-메인"이다. 더 나아가, 디자이너는 스타터 퍼널의 스타터 웹 인터페이스들의 각각에 대한 상이한 서브-요소들(본 출원에서 또한 "스타터 치수들"로 지칭됨)을 정의한다. 서브-요소들의 예들은 텍스트, 포맷팅/CSS(연속형 문서 양식들), 페이지 요소 숨김, 페이지 요소 제거, 클래스, HTML, 사용자 정의 jQuery, 및 이미지를 포함한다. 몇몇 구현예에서, 디자이너는 (예를 들어, 드롭다운을 사용하여) 서브-요소들의 일부를 활성화 또는 비활성화할 수 있다. 일 구현예에서, 비활성 서브-요소들은 취소선으로 인터페이스(304)에 걸쳐 디스플레이된다. 다른 구현예들에서, 디자인 편집기(302)는 자동으로 몇몇 서브-요소를 활성으로 그리고 다른 서브 요소들을 비활성으로 만든다.
그 다음, 디자이너는 정의된 서브-요소들의 각각에 대한 서브-요소들의 값들(본 출원에서 "스타터 치수 값들"로 지칭됨)을 설정한다. 또한, 디자이너는 또한 정의된 서브-요소들의 각각에 대해, 대조 서브-요소 값 및 하나 이상의 테스트 서브-요소 값들을 설정한다. 다른 구현예들에서, 디자인 편집기(302)는 자동으로 서브-요소들에 대한 디폴트 대조 값을 설정한다. 예를 들어, 페이지 요소 "헤드라인 ―메인"에 대해, 대조 페이지 요소 값은 "Clean, Awesome and Multi-Purpose"인 것으로 설정되고, 테스트 서브-요소 값들은 “Slick, Awesome and Powerful”, “New, Fast, Better”, “Shiny, Better than the Competition”, 및 “Best you can Buy”인 것으로 설정된다. 유사하게, 다른 구현예들에서는, 상이한 페이지 요소들 및 대응하는 서브-요소들 및 서브-요소 값들이 스타터 퍼널의 스타터 웹 인터페이스들의 각각의 스타터 치수들 및 스타터 치수 값들의 집합으로서 정의될 수 있다.
퍼널의 각 웹 인터페이스는 벡터 기반 탐색 공간에서 점으로 생각될 수 있다. 벡터 공간에서의 차원 축은 페이지 요소들 중 하나에 대응하고, 소정의 축에 따른 각 상이한 좌표 위치는 해당 페이지 요소에 대해 디자이너가 지정한 대안예들 중 하나를 나타낸다. 예를 들어, 도 5에서, 콜-투-액션 치수는 네 개의 좌표 위치(값 또는 대안예)를 갖는다, 즉 “Go!”, “Go to the Auction!”, “Win the Auction!”, 및 “Win it NOW!”. 퍼널의 특정 웹 인터페이스는 페이지 요소들/치수들의 각각에 대한 값을 지정한다.
도 6은 퍼널의 웹 인터페이스의 일 구현예를 도시한다. 도 6에서, 웹 인터페이스는 웹 인터페이스 레이아웃에서의 상이한 페이지 요소들/치수들의 배열 또는 위치, 및 페이지 요소들/치수들의 대응하는 속성들 또는 값들(사진(페이지 요소/치수), 배경 이미지(페이지 요소/치수), 배경 색상(페이지 요소 속성/치수 값), 헤드라인 카피(페이지 요소/치수), 헤드라인 카피의 활자체들 및 색상들(페이지 요소 속성/치수 값), 로고의 나타남/숨김(페이지 요소/치수), 서브 헤드 카피(페이지 요소/치수), 서브 헤드 카피의 활자체들 및 색상들(페이지 요소 속성/치수 값), 설명 카피(페이지 요소/치수), 설명 카피의 활자체들 및 색상들(페이지 요소 속성/치수 값), 전화 콜-투-액션(페이지 요소/치수), 전화 콜-투-액션의 유형, 포맷, 및 색상(페이지 요소 속성/치수 값), 폼 디자인(페이지 요소/치수), 버튼(페이지 요소/치수), 및 버튼의 형태, 색상, 및 텍스트(페이지 요소 속성/치수 값)의 선택을 포함)에 의해 정의된다.
생성되면, 스타터 퍼널의 미리보기, 및 그것으로 구성되는 스타터 웹 인터페이스들이 인터페이스(304)에 걸쳐 디자이너에게 제시된다.
스타터 퍼널의 정의가 이해됨에 따라, 논의는 이제 런타임에서 스타터 퍼널을 부호화함으로써 대응하는 스타터 후보 개체가 어떻게 초기화되는지로 향한다.
스타터 개체 초기 설정
도 7은 스타터 퍼널의 편집기 디자인 표현(702)을 런타임 디자인 표현(712)으로 변환하는 일 구현예의 상징적인 도해이다. 런타임(322)에서, 디자이너에 의해 정의된 스타터 퍼널의 편집기 디자인 표현(702)은 런타임 디자인 표현(712)으로 변환된다. 도 7에서 사용되는 예에서, 편집기 디자인 표현(702)은 트리를 포함한다. 트리의 루트는 테스트가 수행되는 가장 세부적인 레벨이다. 웹 사이트 또는 모바일 웹 페이지에 대해, 루트는 도메인이다. 모바일 어플리케이션들에 대해, 루트는 어플리케이션이다. 이-메일들에 대해, 루트는 이-메일이고; 제목 및 페이지들이 트리의 다음 레벨이다. 다른 어플리케이션들(이를테면 광고)에 대해, 상이한 맵핑들이 사용될 수 있다. 웹 페이지들 및 모바일 어플리케이션들의 도메인에서, 웹 사이트는 1 내지 n개의 퍼널을 갖고; 각 퍼널은 목표, 및 1 내지 n개의 페이지를 갖는다. 각 페이지는 1 내지 n개의 요소들의 클러스터를 갖는다. 각 클러스터는 1 내지 n개의 요소를 갖는다. 각 요소는 요소의 속성을 변경하는 서브-요소들의 집합을 갖는다. 본 출원에서 사용될 때, 서브-요소들 역시 요소들이다. 각 서브-요소는 1 내지 n개의 값들 갖는다. 다른 구현예들에서, 구조는 상이할 수 있다. 예를 들어, 요소들은 클러스터링되지 않을 수 있거나, 또는 표현이 계층적이지 않을 수 있다.
또한 런타임(322)에서, 스타터 퍼널은 그것을 이진법 공식으로 부호화하는 스타터 지놈으로 표현된다. 일 구현예에서, 이진법 부호화는 트리의 리프들(leaves)의 연접이며, 이 경우 스타터 퍼널은 스타터 퍼널의 스타터 웹 인터페이스들의 각각의 연접하는 스타터 치수들 및 스타터 치수 값들을 포함한다. 몇몇 구현예에서는, 지놈 부호화 이전에, 편집기 디자이너 표현(702)의 개략적인 표현이 런타임 디자인 표현(712)으로 생성된다. 다른 구현예들에서, 지놈 부호화는 이진 데이터 유형(0 또는 1), 이를테면 양적 또는 수치적 데이터 유형, 질적 데이터 유형, 신중한 데이터 유형, 연속 데이터 유형(하한 및 상한을 가짐), 정수 데이터 유형(하한 및 상한을 가짐), 명목형 데이터 유형, 순서 또는 순위 데이터 유형, 범주형 데이터 유형, 구간 데이터 유형, 및/또는 비율 데이터 유형 외 데이터 유형들에 의존하는 다른 스키마들에 기반할 수 있다. 예를 들어, 지놈 부호화는 0과 1 사이 실제 값들, 0과 256 사이 적색, 녹색, 청색(RGB)과 같은 연속 값들, CSS 색상들의 16진수 값들(예를 들어, #F0F8FF), CSS 색상들의 범주형 색상 값들(예를 들어, 회색 띤 연푸른색(AliceBlue)), 다른 CSS 속성 그룹들 및 속성들의 각각의 값들(이를테면 < http://www.w3schools.com/cssref/#animation > 웹 상에 나열되는 것들), 특정 치수의 크기(예를 들어, 높이 및 너비), 상이한 값들 및 데이터 유형들의 집합(예를 들어, 상이한 수치 달러 가격 값들 또는 상이한 수치 달러 가격 값들 및 높이들 및 너비들의 조합) 등에 기초할 수 있다.
도 8은 스타터 퍼널의 스타터 치수들 및 스타터 치수 값들을 부호화하는 일 구현예의 상직적인 도면을 도시한다. 도 8에에서, 스타터 퍼널의 클러스터들(802), 요소들(804), 서브-요소들(806), 및 서브-요소들(806)에 대응하는 서브-요소 값들(808)이 이진 스트링 부호(810)로 부호화된다. 이진 스트링 부호(810)에서, 각 서브-요소 값에 대한 가장 왼쪽 비트는 대조 값이다. 다른 구현예들에서, 이진 스트링 부호(810)는 이진 데이터 유형(0 또는 1), 이를테면 양적 또는 수치적 데이터 유형, 질적 데이터 유형, 신중한 데이터 유형, 연속 데이터 유형(하한 및 상한을 가짐), 정수 데이터 유형(하한 및 상한을 가짐), 명목형 데이터 유형, 순서 또는 순위 데이터 유형, 범주형 데이터 유형, 구간 데이터 유형, 및/또는 비율 데이터 유형 외 데이터 유형들에 의존하는 다른 스키마들에 기반할 수 있다. 예를 들어, 이진 스트링 부호(810)는 0과 1 사이 실제 값들, 0과 256 사이 적색, 녹색, 청색(RGB)과 같은 연속 값들, CSS 색상들의 16진수 값들(예를 들어, #F0F8FF), CSS 색상들의 범주형 색상 값들(예를 들어, 회색 띤 연푸른색(AliceBlue)), 다른 CSS 속성 그룹들 및 속성들의 각각의 값들(이를테면 < http://www.w3schools.com/cssref/#animation > 웹 상에 나열되는 것들), 특정 치수의 크기(예를 들어, 높이 및 너비), 상이한 값들 및 데이터 유형들의 집합(예를 들어, 상이한 수치 달러 가격 값들 또는 상이한 수치 달러 가격 값들 및 높이들 및 너비들의 조합) 등에 기초할 수 있다.
도 9는 스타터 퍼널의 스타터 치수들(902) 및 스타터 치수 값들(912)을 스타터 후보 개체/스타터 지놈으로 부호화하는 모집단 초기 설정 모듈(202)을 예시한다. 특히, 부호화는 스타터 후보 개체(922)를 나타내는 이진 시퀀스를 생성한다. 스타터 후보 개체(922)의 부호화가 아래에 제시된다:
[
[ [0, 1], [0, 0, 1, 0] ], 로고
[ 0, 0, 0, 1, 0 ], 메인 헤드라인
[ 클러스터
[ [1, 0], [0, 1] ], 서브 헤드라인
[ [1, 0], [0, 1] ], 콜-투-액션
]
]
스타터 지놈(922)은 7개의 서브-요소(806)의 각각에 대응하는 7개의 유전인자를 포함한다. 각 유전인자의 가장 왼쪽 비트는 대조 값이다. 다른 구현예들에서, 스타터 후보 개체(922)의 부호화는 이진 데이터 유형(0 또는 1), 이를테면 양적 또는 수치적 데이터 유형, 질적 데이터 유형, 신중한 데이터 유형, 연속 데이터 유형(하한 및 상한을 가짐), 정수 데이터 유형(하한 및 상한을 가짐), 명목형 데이터 유형, 순서 또는 순위 데이터 유형, 범주형 데이터 유형, 구간 데이터 유형, 및/또는 비율 데이터 유형 외 데이터 유형들에 의존하는 다른 스키마들에 기반할 수 있다. 예를 들어, 스타터 후보 개체(922)의 부호화는 0과 1 사이 실제 값들, 0과 256 사이 적색, 녹색, 청색(RGB)과 같은 연속 값들, CSS 색상들의 16진수 값들(예를 들어, #F0F8FF), CSS 색상들의 범주형 색상 값들(예를 들어, 회색 띤 연푸른색(AliceBlue)), 다른 CSS 속성 그룹들 및 속성들의 각각의 값들(이를테면 < http://www.w3schools.com/cssref/#animation > 웹 상에 나열되는 것들), 특정 치수의 크기(예를 들어, 높이 및 너비), 상이한 값들 및 데이터 유형들의 집합(예를 들어, 상이한 수치 달러 가격 값들 또는 상이한 수치 달러 가격 값들 및 높이들 및 너비들의 조합) 등에 기초할 수 있다.
스타터 후보 개체의 초기 설정 및 부호화가 이해됨에 따라, 이제 본 논의는 후보 탐색 공간이 어떻게 정의되는지로 향한다.
후보 탐색 공간 정의
위에어 논의된 바와 같이, 후보 탐색 공간은 스타터 퍼널에 기초하여 정의된다. 특히, 모집단 초기 설정 모듈(202)은 스타터 퍼널의 스타터 치수들 및 스타터 치수 값들이 조합 조작들을 받게 함으로써 후보 탐색 공간을 정의한다. 일례로, 디자이너가 4개의 스타터 페이지 요소(예를 들어, 로고, 메인 헤드라인, 서브 헤드라인, 콜-투-액션), 7개의 가능한 스타터 서브-요소, 및 19개의 가능한 스타터 서브-요소 값을 지정한다면, 8개의 상이한 로고의 변종, 5개의 상이한 메인 헤드라인의 변종, 4개의 상이한 서브 헤드라인의 변종, 및 4개의 상이한 콜-투-액션의 변종이 조합 조작들을 받게 함으로써 640개의 가능한 치수들 및 치수 값들의 조합을 갖는 후보 탐색 공간이 정의된다(즉, 8x5x4x4 = 640).
후보 탐색 공간의 정의가 이해됨에 따라, 우리는 이제 본 출원에 개시된 진화적 조작들의 다양한 세대가 어떻게 최적화되는지로 향한다.
세대 최적화
스타터 퍼널 기반 최적화
구현예들에서, 모집단 초기 설정 모듈(202)은 그것의 스타터 웹 인터페이스들(예를 들어, 스타터 지놈(922))의 적어도 하나의 스타터 퍼널 및 스타터 치수들 및 스타터 치수 값들에 의존하여 후보 개체들(예를 들어, 제1 세대)의 예비 풀을 생성한다. 일 구현예에서, 제1 세대에서의 후보 개체들은 스타터 치수 값들이 제1 세대의 초기 설정된 개체들 중 단지 하나에만 존재함을 보장하는 방식으로 초기화된다. 도 10은 그러한 구현예를 도시한다. 도 10에서, 스타터 지놈(922)은 7개의 유전인자 및 19개의 가능한 유전인자 값을 갖는다. 그 결과, 바로 그 스타터 지놈(922)에서, 19개의 유전인자 값 중 7개의 유전인자 값이 초기화된다. 그에 따라, 모집단 초기 설정 모듈(202)은 나머지 12개의 가능한 유전인자 값이 각각의 12개의 추가 지놈으로 초기화되도록 12개의 추가 지놈을 생성한다. 도 10에서, 12개의 가능한 유전인자 값이 회색 배경으로 도시된다. 그에 따라, 후보 탐색 공간이 치수들 및 치수 값들의 640개의 가능한 조합으로 구성되는 예에서, 단지 640개의 가능한 조합의 서브 집합(예를 들어, 도 10에서의 13개의 조합)이 제1 세대로 초기화된다.
다른 구현예에서, 제1 세대에서의 후보 개체들은 스타터 치수 값들이 제1 세대의 초기 설정된 개체들 중 적어도 하나의 개체에 존재함을 보장하는 방식으로 초기화된다.
다른 예로, 스타터 지놈이 스타터 치수들의 집합에 대해 28개의 스타터 치수 값을 포함하도록 지정된다고 가정하자. 28개의 스타터 치수 값의 일부 또는 전부가 동일한 스타터 치수에 또는 상이한 스타터 치수들의 집합에 적용될 수 있다는 것에 주의하자. 그에 따라, 몇몇 사례에서, 28개의 스타터 치수 값으로부터의 다수의 스타터 치수 값이 복수의 스타터 치수로 이루어지는 그룹의 멤버인 하나의 스타터 치수 값에 적용된다. 도 5에 도시된 예에서, "헤드라인 글꼴"의 스타터 치수는 5개의 상이한 스타터 치수 값 즉, “Audiowide”, “Impact”, “Cambria 20px”, “American Typewriter”, 및 “Copperplate”를 가질 수 있다. 유사하게, "헤드라인 텍스트"의 스타터 치수는 5개의 스타터 치수 값, 즉 “Don’t miss the live auction”, “Only a few minutes left! Live Auction”, “You can Win Your Car!”, “When it’s gone, it’s gone forever”, 및 “Win Your Dream Car!”을 또한 가질 수 있다. 동일한 방식으로, "서브-헤드라인 배경 색상"의 스타터 치수는 네 개의 상이한 스타터 치수 값, 즉 블루, 시안, 오렌지, 및 레드를 가질 수 있다. 또한, "서브-헤드라인 텍스트"의 스타터 치수는 네 개의 상이한 스타터 치수 값, 즉 “Go!”, “Go to the Auction!”, “Win the Auction!”, and “Win it NOW!”를 가질 수 있다.
따라서, 일 구현예에서, 제1 세대는 28개의 스타터 치수 값의 각각이 제1 세대의 후보 개체들 중 단지 하나에만 포함됨을 보장하는 방식으로 초기화된다. 다른 구현예에서, 제1 세대는 28개의 스타터 치수 값의 각각이 제1 세대의 후보 개체들 중 적어도 하나의 후보 개체에 포함됨을 보장하는 방식으로 초기화된다. 그러한 구현예들에서, 28개의 스타터 치수 값으로부터의 다수의 스타터 치수 값이 제1 세대의 하나의 후보 개체에 포함된다. 이는 스타터 치수들 및 하나 이상의 스타터 치수에서 식별되는 치수 값들의 각각이 성능 측정치들(106)이 라이브 온라인 평가(108) 동안 그것들에 대해 전개될 수 있도록 개시된 진화적 조작들에 대한 입력으로서 제공됨을 보장한다.
다른 구현예들에서, 후보 개체들은 후보 탐색 공간에서 치수들의 집합에 대해 이용가능한 값을 랜덤으로 선별함으로써 초기화된다. 또 다른 구현예들에서, 후보 개체들은 생성될 후보 개체들의 미리 결정된 수에 의존하여 후보 탐색 공간에서 치수 값들의 분배에 걸쳐 최대로 균일한 방식으로 초기화된다. 일 구현예에서, 생성되면, 후보 개체는 후보 개체 모집단(102)에 각 치수에 대한 특정 값을 갖는 벡터로서 저장된다.
테스트 파라미터들 기반 최적화
본 출원에 개시된 진화적 조작들은 타겟 사용자 거동을 촉진하려고 하는 특정 조직에 특유한 하나 이상의 테스트 파라미터에 의존하여 MLCO를 맞춘다. 그러한 테스트 파라미터들의 예들은 조직에 의해 등록 또는 수신되는(예를 들어, 주마다, 월마다, 분기마다, 또는 다른 달력 단위로) 라이브 사용자 트래픽 및 조직에 의해 등록되는 성능 측정치들(106)(예를 들어, 전환율, 수익률(사용자들의 표본에 걸쳐 결정됨))을 포함한다. 구현예들에서, 그러한 테스트 파라미터에 대한 값들은 조직에 의해 제공되거나 초기 테스팅 기간 동안 결정된다.
추가적으로, 라이브 사용자 트래픽이 웹 페이지 테스팅 환경에서 가치 있는 것이기 때문에, 본 출원에 개시된 진화적 조작들은 효과적인 방식으로 다양한 세대를 생성 및 프로세싱한다. 일 구현예에서, 본 출원에 개시된 진화적 조작들은 일정 시간 기간 동안(예를 들어, 한 주 또는 한 달) 조직에 의해 수신되는 라이브 사용자 트래픽의 양을 고려하여, 최소한의 수의 진화적 조작 루프가 그러한 일정 시간 기간 내에 라이브 온라인 평가(108)에 의해 성능 측정치들(106)에 대해 우세한 값들을 갖는 것으로 결정된 진화된 후보 개체들을 산출하기 위해 이행됨을 보장함으로써 그러한 효과를 달성한다. 따라서, 일례로, 한 달 동안 조직에 의해 수신되는 라이브 사용자 트래픽의 양이 십만 사용자(즉, 100,00 사용자/월)라면, 본 출원에 개시된 진화적 조작들은 그 달 내에 적어도 3 세대를 생성 및 프로세싱하도록 구성될 수 있다.
다른 구현예에서, 그러한 효과는 일정 시간 기간 동안(예를 들어, 한 주 또는 한 달) 조직에 의해 수신되는 라이브 사용자 트래픽의 양을 고려하여, 최소한의 수의 후보 개체가 그러한 일정 시간 기간 내에 진화됨(또는 사용자들의 표본에 걸쳐 라이브 온라인 평가(108)를 받음)을 그리고/또는 단지 제한된 수의 후보 개체가 그러한 일정 시간 기간 내에 다수의 세대가 진화되도록 각 세대에서 프로세싱됨을 보장함으로써 달성된다. 따라서, 일례로, 한 달 동안 조직에 의해 수신되는 라이브 사용자 트래픽의 양이 십만 사용자(즉, 10000 사용자/월)라면, 본 출원에 개시된 진화적 조작들은 각 후보 개체가 적어도 2천 사용자에 의해 라이브 평가되도록 그 달 내에 3 세대에 걸쳐 적어도 50 후보 개체를 생성 및 프로세싱하도록 구성될 수 있다. 다른 예로, 본 출원에 개시된 진화적 조작들은 3 세대의 각각에서 17 이하의 후보 개체를 생성 및 프로세싱하도록 구성될 수 있다.
또 다른 구현예에서, 제1 세대를 초기화하기 위해 특화된 스키마는 후보 개체 모집단의 최대 모집단 크기를 라이브 사용자 트래픽 및 성능 측정치들(106)(예를 들어, 전환율, 수익률(사용자들의 표본에 걸쳐 결정됨))의 함수로 만드는 것을 포함한다. 뿐만 아니라, 그것의 라이브 사용자 트래픽 및 성능 측정치들(106)에 기초하여 조직에 대해 계산된 최대 모집단 크기가 조직의 디자이너에 의해 지정된 스타터 치수들의 수 및/또는 스타터 치수 값들의 수와 일치하지 않을 때, 본 출원에 개시된 진화적 조작들은 몇몇(예를 들어, 단지 제1 세대) 또는 모든 세대에서의 후보 모집단의 모집단 크기가 조직에 대해 계산된 최대 모집단 크기로 제한됨을 보장하는 방식으로 후보 개체 초기 설정을 위한 스타터 치수들 및 스타터 치수 값들을 선별하기 위해 특화된 선별 스키마들을 사용한다. 일 구현예에서, 이는 유전인자마다에 기초하여 그리고 단지 후보 개체 초기 설정을 위한 각 유전인자 및/또는 단지 유전인자들의 서브 집합에서의 값들의 서브 집합을 선별하여 스타터 치수들 및/또는 스타터 치수 값들을 순회함으로써 달성된다. 그러한 구현예에서, 각 유전인자 및/또는 유전인자들의 서브 집합에서의 값들의 서브 집합의 선별은 이전 값들 및/또는 이전 유전인자들 또는 이후 값들 및/또는 이후 유전인자들에 대해 치중될 수 있거나, 유전인자들 및/또는 유전인자-레벨에서의 값들의 균일한 선별일 수 있거나, 유전인자들 및/또는 유전인자-레벨에서의 값들의 원-포인트 선별일 수 있거나, 유전인자들 및/또는 유전인자-레벨에서의 값들의 투-포인트 선별일 수 있거나, 또는 유전인자들 및/또는 유전인자-레벨에서의 값들의 랜덤 선별일 수 있다. 다른 구현예들에서, 유전인자들 및/또는 유전인자-레벨에서의 값들의 선별은 임의의 다른 종래 또는 장차 개발될 선별 기술에 기초할 수 있다.
다른 구현예에서, 최대 모집단 크기 기반 제약은 스타터 치수들 및/또는 스타터 치수 값들의 선별을 조직의 디자이너에 의해 지정된 스타터 치수들 및/또는 스타터 치수 값들의 일부 서브 집합이 이전 세대들에서 선택되고 다른 서브 집합들이 이후 세대들에서 선택되도록 상이한 세대들에 걸쳐 분산시킴으로써 달성된다. 서브 집합들의 선별은 균일, 원-포인트, 투-포인트, 랜덤일 수 있거나, 또는 임의의 다른 종래 또는 장차 개발될 선별 기술에 기초할 수 있다.
일례로, 한 달 동안 조직에 의해 수신되는 라이브 사용자 트래픽의 양이 5만 사용자(즉, 50000 사용자/월)이고 각 후보 개체가 적어도 2천 사용자에 의해 라이브 평가되기로 되어 있는 것으로 가정된다면, 조직에 대해 결정되는 최대 모집단 크기는 3 세대에 걸쳐 25 후보 개체이다. 조직의 디자이너가 각각이 4 스타터 치수 값을 갖는, 30 스타터 치수를 선택한 것으로 가정하자. 각 스타터 치수 값이 단지 하나의 후보 개체에서만 존재할 것을 필요로 하는 표준 초기 설정 스키마가 구현되는 경우, 120 스타터 치수 값은 바로 그 제1 세대에서 적어도 91 후보 개체가 생성될 것을 필요로 할 것이다. 그러나, 이는 조직에 대해 계산된 25의 최대 모집단 크기와 충돌할 수 있으며, 이는 주어진 세대에서의 후보 개체 수를 8 또는 9 중 어느 하나로 제한한다.
이러한 충돌을 해결하기 위해, 본 출원에 개시된 진화적 조작들의 특화된 초기 설정 및 선별 스키마들은 일 구현예에 따라, 제1 및 제2 세대들의 각각에 단지 8 후보 개체를 그리고 제3 세대에 단지 9 후보 개체를 초기화하기 위해 120 스타터 치수 값의 서브 집합 및/또는 30 스타터 치수의 서브 집합을 선별할 수 있다. 구현예들에서, 선별은 랜덤이거나 이전 또는 이후 스타터 치수 값들 및/또는 스타터 치수들로 치중될 수 있다. 다른 구현예들에서는, 제1 세대 동안 선별되지 않는 스타터 치수 값들 및/또는 스타터 치수들이 제2 세대의 말의, 또는 임의의 다른 후속 세대의 후보 모집단에 포함될 수 있다.
구현예들에서, 본 출원에 개시된 진화적 조작들의 임의의 스테이지 및/또는 세대(예를 들어, 제1, 제2, 제3, 제4, 제10, 또는 제20 세대 등)은 특화된 및/또는 표준 초기 설정 스키마들을 이용할 수 있다. 본 출원에서 사용될 때, 용어 "초기 설정" 또는 "초기화"는 새로운 후보 개체들을 생성 및/또는 번식시키기 위해 진화적 조작들의 임의의 세대에 적용될 수 있는 진화적 조작을 나타낸다.
모집단 초기 설정이 이해됨에 따라, 우리는 개체들이 어떻게 테스팅되는지로 향한다.
개체들 테스팅
후보 테스팅 모듈(212)은 모집단(102)에서의 후보 개체들을 테스팅한다. 각 후보 개체는 일련의 테스트 또는 시행을 받으며, 각 시행은 범위가 수백, 수천, 및 수백만 사용자부터인 표본 크기들을 갖는 사용자들의 하나의 또는 다수의 표본 상의 후보 개체들을 테스팅한다. 다른 구현예들에서, 테스트들의 수 또는 표본 크기는 테스트와 연관된 파라미터들에 의해 결정된다. 그러한 테스트 파라미터들의 예들은 단위 시간당 방문자들의 수, 기존 전환율, 후보 탐색 공간의 크기, 선호하는 위험 허용치, 및 성능 측정치의 유형을 포함한다. 테스트들 또는 시행들은 후보 개체들에 의존하여 생성되는 퍼널들이 테스팅을 위해 실세계 사용자들에 제시되는 라이브 온라인 평가(108)로서 구현된다. 그 다음, 그 동안 실세계 사용자들이 퍼널들과 상호작용하는 라이브 온라인 평가(108)에 기초하여 성능 측정치들(106)이 수집된다. 후보 테스팅 모듈(212)은 실시간 기반으로 테스트되는 후보 개체들의 각각과 연관된 성능 측정치들(106)을 업데이트한다. 업데이트들의 빈도는 또한 테스트 파라미터들에 의해 결정될 수 있다.
적응도에 비례하는 번식
라이브 사용자 트래픽을 효율적으로 소모하기 위해, 본 출원에 개시된 진화적 조작들은 몇몇 구현예에서, 개체들의 제2 세대를 생성하기 위해 특화된 번식 스키마들을 사용한다. 일 구현예에서, 제2 세대를 번식시키기 위해 특화된 스키마는 제1 세대 동안 생성된 지놈들, 즉, 부모 지놈들이 적응도에 비례하는 선별(예를 들어, 룰렛 휠 선별, SUS(stochastic universal sampling))되게 하는 번식 모듈(228)을 포함한다. 그러한 구현예에서, 모든 부모 지놈은 번식하도록 선택될 가능성을 가지나 보다 적응도가 높은 부모 지놈들이 보다 약한 부모 지놈들보다 선택될 가능성이 크다. 이는 부모 지놈의 선별 확률을 성능 측정치들(106)(예를 들어, 전환율, 수익률(사용자들의 표본에 걸쳐 결정됨))에 의해 정의되는 그것의 적응도의 함수로 만들어 달성된다. 일 구현예에서, 주어진 부모 지놈로부터의 선별은 특정 유전인자의 선별 확률에 의존하여 유전인자마다에 기초하여 이루어진다. 몇몇 구현예에서, 부모 지놈의 선별 확률은 특정 유전인자를 포함하는 지놈의 성능 측정치들(106)(예를 들어, 전환율, 수익률(사용자들의 표본에 걸쳐 결정됨))의 함수이다. 그에 따라, 제2 세대에서의 결과적인 지놈들은 그것들의 각각의 선별 확률들에 의존하여 부모 지놈들로부터 선별되는 유전인자들을 포함한다.
또 다른 구현예에서, 제2 세대는 유전인자마다에 기초하여 부모 지놈들로부터 랜덤 선택됨으로써 번식된다.
구현예들에서, 본 출원에 개시된 진화적 조작들의 임의의 스테이지 및/또는 세대(예를 들어, 제1, 제2, 제3, 제4, 제10, 또는 제20 세대 등)은 특화된 번식 스키마들을 이용할 수 있다.
번식 이후, 후보 테스팅 모듈(212)은 다시 업데이트된 모집단(102)에 관해 작동한다. 프로세스는 반복적으로 지속된다. 구현예들에서, 제어 모듈(230)은 후보 테스팅 모듈(212) 및 번식 모듈(228)을 반복한다.
경쟁
일 구현예에서, 진화적 조작들은 특정 세대들에서 운용할 수 있게 되는 경쟁 모듈(222)을 이용한다. 경쟁 모듈(222)은 업데이트된 성능 측정치들(106)에 의존하여 후보 개체 모집단(102) 콘텐츠를 업데이트한다. 몇몇 구현예에서, 경쟁 모듈(222)은 최소 기준치 개체 적응도(예를 들어, 관리자에 의해 미리 설정되거나 자동으로 설정된)를 충족시키지 못하는 후보 개체들, 또는 "개체 적응도"가 유사하게 테스트된 후보 개체들의 "개체 적응도" 뒤에 상대적으로 처지는 후보 개체들을 폐기한다. 모집단(102)은 수정된 콘텐츠로 업데이트된다.
경쟁 모듈(222)은 한 세대로부터 다음 세대로의 후보 개체들의 그래쥬에이션(graduation)을 관리한다. 이러한 프로세스는 다음과 같이 한 번에 하나의 후보 개체를 발생시키는 것으로 생각될 수 있다. 먼저, 경쟁 모듈(222)이 실행된 최종 시간 이후 성능 측정치들(106)이 업데이트된 모든 후보 개체를 통해 루프가 시작된다. 일 구현예에서, 현재 후보 개체에 대한 성능 측정치들(106)이 여전히 기준치 개체 적응도(예를 들어, 관리자에 의해 미리 설정되거나 자동으로 설정된) 미만이거나 다른 후보 개체들의 개체 적응도에 상대적으로 충분히 뒤처진다면, 현재 후보 개체는 폐기되고 다음 후보 개체가 고려된다. 현재 후보 개체에 대한 성능 측정치들(106)이 여전히 기준치 개체 적응도(예를 들어, 관리자에 의해 미리 설정되거나 자동으로 설정된)를 넘거나 다른 후보 개체들의 개체 적응도와 상대적으로 유사하다면, 현재 후보 개체가 다음 세대에 추가된다. 그 다음 프로세스는 차례로 다음 후보 개체를 고려하도록 이동한다.
상대적인 성능 측정치
경험이 적은 개체들의 고성능 측정치들은 정확한 적응도가 아니라 운에 기인(예를 들어, 휴가 시즌에 기인한 사용자들의 개체에 대한 비현실적인 기호)할 수 있다. 즉, 훨씬 더 경험이 많은 다른 개체들과 비교될 경우, 고성능을 갖는 것으로 결정된 더 ?고 운이 좋은 개체들은 여전히 적응도 레벨들이 더 낮으나 더 현실적인 개체들을 대신할 수 있다. 그러한 개체들을 단지 절대적인 적응도를 기반으로 서로 경쟁할 수 있게 하는 것은 운이 좋은 개체들에 대한 진화적 조작들을 최적화할 것이다.
이러한 문제의 솔루션은 후보 개체들이 그것들의 절대적인 성능 측정치들이 아니라, 그것들의 "상대적인 성능 측정치들"에 기초하여 비교되는 것이다. 후보 개체의 상대적인 성능 측정치는 제1 시간 기간에 결정된 대조 개체의 절대적인 성능 측정치와 또한 제1 시간 기간에 결정된 후보 개체의 절대적인 성능 측정치 간 차에 기초하여 계산된다. 따라서, 예를 들어, 제1 세대 동안 생성된 제1 후보 개체가 40%의 절대 평균 전환율을 갖고 또한 제1 세대에서 초기 설정된 제1 대조 개체가 35%의 절대 평균 전환율을 갖는다면, 제1 후보 개체의 상대적인 성능 측정치는 5%(40% - 35% = 5%)이다. 유사하게, 제1 세대 동안 생성된 제2 후보 개체가 45%의 절대 평균 전환율을 갖고 제2 세대에서의 제1 대조 개체의 절대 평균 전환율이 42%로 증가되었다면, 제2 후보 개체의 상대적인 성능 측정치는 3%(45% - 42% = 3%)이다. 그에 따라, 제1 및 제2 후보 개체들이 그것들의 각각의 상대적인 성능 측정치들에 기초하여 비교되고 제2 후보 개체의 절대적인 성능 측정가 제1 후보 개체의 절대적인 성능 측정보다 5%(45% - 40% = 5%) 더 높더라도 제1 후보 개체가 제1 후보 개체(5% - 3% = 2%)보다 2% 더 양호한 것으로 밝혀진다. 경쟁 모듈(222)에 의해 이루어지는 한 개체의 상대적인 성능 측정치와 다른 개체의 상대적인 성능 측정치 간 각 비교는 때때로 본 출원에서 비교 "인스턴스(instance)"로 지칭된다.
일 구현예에서, 경쟁 모듈(222)은 현재 후보 개체의 상대적인 성능 측정치가 후보 개체 모집단(102)에서의 최소한의 후보 개체의 상대적인 성능 측정치를 초과하는지 여부를 결정한다. 만약 그렇다면, 최소한의 후보 개체는 폐기되고, 현재 후보 개체는 다음 세대로 이동된다. 그렇지 않다면, 현재 후보 개체가 폐기된다. 그 다음 프로세스는 차례로 다음 후보 개체를 고려하도록 이동한다.
교차 및 변이 기반 번식
번식에 관해, 임의의 종래의 또는 장차 개발될 기술이 번식을 위해 사용될 수 있다. 일 구현예에서, 부모 개체들로부터의 조건들, 출력들들, 또는 룰들이 다양한 방식으로 조합되어 자식 개체들을 형성하고, 그 다음 가끔 그것들이 변이(mutate)된다. 조합 프로세스는 예를 들어 교차(crossover)―즉, 자식 개체들을 형성하기 위해 부모 개체들 간 조건들, 출력들, 또는 전체 룰들을 교환하는 것을 포함할 수 있다. 번식을 통해 생성되는 새로운 개체들은 정의되지 않음에 따라 표시되는 성능 측정치들로 시작된다.
번식 모듈(288)은 경쟁 모듈(222)에 의해 아직 폐기하도록 선별되지 않고 후보 개체 모집단(102)으로부터의 하나 이상의 부모 개체의 각각의 집합에 의존하여 형성되는 새로운 개체들을 후보 개체 모집단(102)에 추가한다. 일 구현예에서, 지놈들의 제3 세대는 제2 세대에서 부모 지놈들의 쌍들을 선별하고 부모 지놈 쌍들이 교차 스키마를 받게 함으로써 생성된다. 다른 구현예들에서, 번식(예를 들어, 교차 및/또는 변이)은 임의의 다른 세대들, 이를테면 제1, 제2, 제4, 또는 제10 세대 등에서 개시될 수 있다.
교차
교차에 관해서는, 후속하여 선별되는 제2 부모 지놈이 제2 부모 지놈 바로 전에 후보 모집단에서 선별된 제1 부모 지놈과 상이할 때 부모 지놈 쌍들이 교차를 위해 식별된다 구현에들에서, 부모 지놈은 동일한 세대 동안 다수의 교차 연산에 참여하도록 선별될 수 있다. 몇몇 구현예에서, 주어진 세대 내에서, 다양한 교차 스키마가 자식 지놈들의 수가 주어진 세대에 대해 결정된 최대 모집단 크기에 이를 때까지 부모 지놈 쌍들 간 교차를 수행하기 위해 사용된다. 일 구현예에서, 교차는 유전인자마다에 기초하여 일어난다. 따라서, 일례로, 부모 지놈들은 도 8에 도시된 서브-요소들(806) 및/또는 서브-요소 값들(808)에 기초하여 교차할 수 있다. 다른 구현예들에서, 특정 세대를 진화시키기 위해 유전인자-레벨에 적용되는 교차 스키마들은 다양한 교차 스키마 이를테면 균일 교차(예를 들어, 부모 지놈 쌍들로부터 양자택일로 유전인자 값들을 선택하는 것), 원-포인트 교차, 투-포인트 교차, 및/또는 랜덤 교차에 기초할 수 있다. 또 다른 구현예들에서, 특정 세대를 진화시키기 위해 유전인자-레벨에 적용되는 교차 스키마들은 임의의 다른 종래 또는 장차 개발될 교차 기술에 기초할 수 있다.
도 11은 교차 기술을 사용하여 새로운 후보 개체들을 번식하는 일 구현예의 상징적인 도면을 도시한다. 도 11에서는, 부모 후보 개체 A의 이진 시퀀스가 제1 텍스트 유형(예를 들어, Times Roman), 메인 헤드라인 A, 서브 헤드라인 A, 및 액션 버튼 A와 함께 로고 A를 나타낸다. 또한 도 11에서는, 부모 후보 개체 B의 이진 시퀀스가 제2 텍스트 유형(예를 들어, Arial), 메인 헤드라인 B, 서브 헤드라인 B, 및 액션 버튼 B과 함께 로고 B를 나타낸다. 하나의 대표적인 구현예에서, 번식 모듈(228)은 부모 후보 개체 A로부터 로고 A 및 서브 헤드라인 A를 포함하고, 부모 후보 개체 B로부터 메인 헤드라인 B 및 액션 버튼 B를 포함하는 교차 자식 개체 AB1을 생성한다. 다른 대표적인 구현예에서, 번식 모듈(228)은 제2 텍스트 유형(예를 들어, Arial)(부모 후보 개체 B로부터) 및 부모 개체 B로부터 서브 헤드라인 B를 갖는 로고 A(부모 후보 개체 B로부터)를 포함하고, 또한 부모 후보 개체 A로부터 메인 헤드라인 A 및 또한 액션 버튼 A를 포함하는 교차 자식 후보 개체 AB2를 생성한다.
변이
도 12는 변이 기술을 사용하여 후보 개체들을 번식하는 일 구현예의 상징적인 도면이다. 도 12에서, 부모 지놈의 제1 유전인자는 로고 A의 텍스트 유형이 제1 텍스트(예를 들어, Times Roman)로부터 제2 텍스트(예를 들어, Arial)로 변이되도록 변이된다.
바람직하게는, 번식은 미리 결정된 작은 수의 새로운 개체를 생성하기 위해 새로운 개체들의 단지 작은 서브 집합의 변이가 뒤따르는 교차를 수반한다. 이러한 구현예에서 변이는 후보 개체들의 수를 증가시키지 않는다; 즉 그것은 교차에 이해 생성된 개체들을 단지 변형시킨다.
본 출원에 개시된 진화적 조작들은 극댓값을 회피 또는 극복하기 위해 변이를 사용한다. 따라서, 몇몇 구현예에서, 본 출원에 개시된 진화적 조작들은 단지 특정 수의 세대에서의 교차를 수행한 후 그리고/또는 동일한 세대 내에서 특정 수의 번식 연산에서 교차를 수행한 후 변이를 수행하도록 구성된다(예를 들어, 변이가 제3 세대 후에만 일어난다). 다른 구현예들에서, 번식(예를 들어, 교차 및/또는 변이)은 임의의 다른 세대들, 이를테면 제1, 제2, 제3, 제4, 또는 제10 세대 등에서 개시될 수 있다.
구현예들에서, 각 부모 지놈에는 세대 동안 부모 지놈의 적어도 변이될 확률을 결정하는 지놈 변이 확률이 부여된다. "지놈 변이 확률"은 임의의 확률 스키마 이를테면 랜덤 확률, 균일 확률, 가중 확률, 및/또는 적응도에 비례하는 확률에 기초할 수 있다. 부모 지놈이 선택될 때, 변이는 일 구현예에 따라, 유전인자마다에 기초하여 일어난다. 따라서, 일례로, 부모 지놈들은 도 8에 도시된 서브-요소들(806) 및/또는 서브-요소 값들(808)에 기초하여 변이될 수 있다.
부모 지놈 내에서, 유전인자마다의 변이에 대한 유전인자들 및/또는 유전인자 값들의 선별은 "유전인자 변이 확률"에 기초할 수 있다. 지놈 변이 확률은 임의의 확률 스키마 이를테면 랜덤 확률, 균일 확률, 가중 확률, 및/또는 적응도에 비례하는 확률에 기초할 수 있다. 따라서, 예를 들어, 지놈의 부울린 또는 이진 또는 벡터 부호화(이를테면 도 12에 도시된 것들)가 임의의 확률 스키마에 기초하여 유전인자마다에 기초하여 변이될 수 있다. 다른 구현예들에서, 유전인자-레벨에서의 변이는 균일 변이, 비-균일 변이, 경계 변이, 그리고/또는 변화도 변이일 수 있다. 또 다른 구현예들에서, 유전인자-레벨에서의 값들의 변이는 임의의 다른 종래 또는 장차 개발될 변이 기술에 기초할 수 있다.
개체들의 번식이 이해됨에 따라, 우리는 이제 본 출원에 개시된 진화적 조작들이 의사-진화(pseudo-evolution)를 사용하여 후보 탐색 공간의 순회를 어떻게 가속화하는지로 향한다.
가속된 의사-진화
성능 효율은 MLCO의 효율적인 구현을 위해 다른 무엇보다 중요한 것이다. 본 출원에 개시된 진화적 조작들은 후보 탐색 공간(예를 들어, 작은 탐색 공간들)의 순회를 가속시킴으로써 진화적 절차에 성능 효율을 추가한다. 위에서 논의된 바와 같이, 후보 탐색 공간은 치수들 및 치수 값들의 모든 가능한 조합을 식별하나; 조합의 단지 서브 집합만이 각 세대에서 초기 설정된다. 위에서 사용된 예에 따라, 후보 탐색 공간이 치수들 및 치수 값들의 640개의 조합을 식별한다면, 단지 13개의 조합만이 제1 세대에서 초기 설정된다. 뿐만 아니라, 이전에 생성된 조합(즉, 후보 개체 또는 지놈)이 세대 동안 또는 세대들 간 재생성될 때는 언제든지, 그것은 중복으로 식별되고 거부된다. 중복(duplicate)을 생성하는 진화 이벤트 또는 운영은 본 출원에서 "충돌(collision)"로 지칭된다. 충돌은 충돌의 결과들(즉, 중복들)이 거부되고 진화적 절차를 진전시키지 않기 때문에 성능에 비효율을 야기한다.
일례로, 충돌의 급증은 치수들 및 치수 값들의 모든 가능한 조합의 대부분이 이미 생성되었고 진화 운영들이 중복들을 빈번하게 생성할 때 발생할 수 있다. 그 결과, 치수들 및 치수 값들의 나머지 조합들을 생성하는 데 상당한 시간이 걸릴 수 있다. 위에서 설명된 예에 따라, 640개의 가능한 조합 중 620개의 조합이 50 세대에 걸쳐 생성된다면, 정례적인 진화는 나머지 20개의 조합을 생성하기 위해 다른 20-50 세대를 취할 수 있다.
본 출원에 개시된 진화적 조작들은 충돌 수가 미리 설정한 임계치에 이를 때 의사-진화로 전환함으로써 이러한 기술적 문제를 해결한다. 일 구현예에서, 본 출원에 개시된 진화적 조작들은 치수들 및 치수 값들의 모든 가능합 조합 중 어느 조합들이 이미 생성되었는지(예를 들어, 각주(annotation) 및/또는 열거(enumeration) 스키마를 사용하여)를 추적하고, 충돌 수가 미리 설정한 임계치에 이를 때, 그것들은 단지 아직 생성되지 않은 조합들(즉, 후보 개체들 또는 지놈들)만을 랜덤으로 생성한다. 따라서, 진화적 절차는 인위적으로 단지 선행하는 세대들의 임의의 세대들 동안 선별 또는 생성되지 않은 조합들에만 포커스를 맞추게 된다. 이것이 본 출원에서 "의사-진화(pseudo-evolution)"로 지칭된다. 의사-진화는 그것이 정례적인 진화를 우회(예를 들어, 초기 설정 및/또는 번식 스키마들을 종료, 평행, 무시, 또는 회피)하고 훨씬 더 적은 세대들에서 나머지 조합들을 생성하기 때문에 진화적 절차를 가속시킨다. 위에서 설명된 예에 따라, 640개의 가능한 조합 중 620개의 조합이 50 세대에 걸쳐 생성되고 충돌 수가 10의 임계치에 이르면, 의사-진화는 단지 나머지 20개의 조합만을 생성하기 위해 다음 2 세대를 배타적으로 이용할 수 있다.
진화 의사 코드
이하의 의사 코드는 진화적 조작들의 일 구현예를 도시한다:
진화_파라미터들_설정
후보들_세대_1_생성
반복
반복
후보들_테스트
후보_범위가_충분_할 때까지 또는 제거_기준이_충족_될 때까지
저_성능_후보들_제거
새로운_후보들_생성
성능이_충분_할 때까지 또는 더_이상_디자인이_가능하지_않을 때까지
이하의 EBNF(Extended Backus-Naur Form)는 진화적 조작들의 다른 구현예를 도시한다:
지놈 ::= [ 요소_클러스터+ ]
요소_클러스터 ::= [ 요소+ ] | 요소
요소 ::= [ 액션+ ]
요소 ::= [ 대조, 액션_값 ]
액션_값 ::= 텍스트 | 포맷팅 | html | 숨김 | 제거 | 이미지 | 클래스 | 사용자 정의
텍스트, 포맷팅, html, 이미지, 클래스, 사용자 정의 ::= 비트_값
숨김, 제거 ::= 비트_값
비트_값 ::= 0 | 1
이제 본 논의는 후보 개체들이 퍼널들을 생성하기 위해 어떻게 사용되는지 그리고 최종 사용자들에게의 전단 제시를 위해 웹 인터페이스들을 어떻게 포함하는지로 향한다.
전단 제시
도 13 및 도 14는 최종 사용자들에 전단 제시를 위해 상응하는 후보 개체들에 의존하여 하나 이상의 웹 인터페이스의 퍼널들을 생성하는 일 구현예를 도시한다. 도 13은 네 개의 웹 인터페이스가 기초하여 생성되는 네 개의 후보 개체(CI 1 내지 CI4)를 도시한다. 개체들(CI 1 내지 CI4)은 모집단(102)에서의 임의의 후보 개체들일 수 있다, 즉, 그것들은 라이브 온라인 평가(108) 동안 성능 측정치들(106)이 전개되는 후보 개체들일 수 있다.
도 13은 또한 각 지놈이 이진 시퀀스(스트링)로 표현되는 것을 도시한다. 각 이진 시퀀스는 본 출원에서 "유전인자들"로 지칭되는 서브-시퀀스들(서브-스트링들)로 더 구분된다. 각 유전인자는 퍼널에 대한 치수 및 대응하는 치수 값을 나타낸다. 그에 따라, 각 유전인자는 지놈들(CI 1 내지 CI 4)에 의존하여 생성될 웹 인터페이스들에 대한 서브-요소 및 대응하는 서브-요소 값을 식별한다. 웹 인터페이스들이 콘텐츠를 포함하는 전단(예를 들어, 그래픽) 객체들인 구현예들에서, 유전인자들은 지놈들(CI 1 내지 CI 4)에 기초하여 생성되는 웹 인터페이스들에 포함될 전단(예를 들어, 그래픽) 요소들/구성요소들 및 대응하는 요소/구성요소 값들을 식별한다.
도 13 및 도 14의 구현예에서, 퍼널의 각 요소는 유전인자들로서 그룹화되는 비트들의 고정-길이 서브 스트링으로 부호화된다는 것에 주의하자. 예를 들어, 서브 헤드라인 요소는 두 개의 유전인자로 그룹화되는 4 비트를 갖는다. 각 유전인자에 대해, 비트들 중 단지 1 비트만이 이용가능한 치수 값들의 집합으로부터 특정 치수 값을 식별하기 위해 활성 또는 "핫(hot")(예를 들어, "1"에 의해 표현됨)일 수 있다. 가장 왼쪽 비트는 유전인자의 "대조(control)" 값을 나타내며, 이는 일례로, 메인 헤드라인에 대해 "평문"을 나타낼 수 있다. 제2, 제3, 및 제4 비트들은 예를 들어, 각각, "굵게", "기울임꼴", 그리고 "굵은 밑줄"을 나타낼 수 있다. 상이한 구현예들에서 많은 다른 부호화가 가능하다는 것이 이해될 것이다. 예를 들어, 2-비트 수치 값이 사용될 수 있으며, "0"이 대조를 나타내고, "1"이 "굵게"를 나타내고, "2"가 "기울임꼴"을 나타내며, "3"이 "굵은 밑줄"을 나타낸다.
도 13 및 도 14의 다른 구현예들에서, 지놈은 이진 데이터 유형(0 또는 1)이 아닌 데이터 유형들, 이를테면 양적 또는 수치적 데이터 유형, 질적 데이터 유형, 신중한 데이터 유형, 연속 데이터 유형(하한 및 상한을 가짐), 정수 데이터 유형(하한 및 상한을 가짐), 명목형 데이터 유형, 순서 또는 순위 데이터 유형, 범주형 데이터 유형, 구간 데이터 유형, 및/또는 비율 데이터 유형에 의존하는 다른 스키마들을 사용하여 표현되고 부호화되는 요소들을 포함할 수 있다. 예를 들어, 지놈들의 부호화 및 도 13 및 도 14에서의 구성 요소들은 0과 1 사이 실제 값들, 0과 256 사이 적색, 녹색, 청색(RGB)과 같은 연속 값들, CSS 색상들의 16진수 값들(예를 들어, #F0F8FF), CSS 색상들의 범주형 색상 값들(예를 들어, 회색 띤 연푸른색(AliceBlue)), 다른 CSS 속성 그룹들 및 속성들의 각각의 값들(이를테면 < http://www.w3schools.com/cssref/#animation > 웹 상에 나열되는 것들), 특정 치수의 크기(예를 들어, 높이 및 너비), 상이한 값들 및 데이터 유형들의 집합(예를 들어, 상이한 수치 달러 가격 값들 또는 상이한 수치 달러 가격 값들 및 높이들 및 너비들의 조합) 등에 기초할 수 있다.
지놈들(CI 1 내지 CI 4)은 위에서 논의된 바와 같이, 개시된 진화적 조작들을 사용하여 전환 시스템(104)에 의해 생성 및 제공된다. 그 다음 전환 시스템(104)은 지놈들(CI 1 내지 CI 4)을 하나 이상의 웹 인터페이스의 퍼널들로 변환하기 위해 제시 데이터베이스(1320) 및 제시 모듈(1310)을 이용한다.
제시 데이터베이스(1320)는 퍼널의 치수들의 각각의 적어도 하나의 이용가능한 값의 각각에 대한 전단 요소 값을 식별하는 룰 저장소로서의 역할을 한다. 제시 모듈(1310)은 선별된 후보 개체에 의해 식별되는 치수 값들에 대응하는 전단 요소 값들을 결정하기 위해 후보 개체들 중 선별된 후보 개체를 제시 데이터베이스(1320)에 적용한다. 그에 따라, 제시 모듈(1310)은 제시 데이터베이스(1320)와 비교하여 전환 시스템(104)에 의해 제공되는 지놈을 평가하여 지놈에 기초한 퍼널의 적절한 변종을 생성할 수 있다.
제시 데이터베이스(1320)은 다양한 요소 룰을 포함한다. 제시 데이터베이스(1320)에서, 요소 룰들에는 후보 탐색 공간에서의 모든 가능한 치수, 즉, 웹 인터페이스에 포함될 수 있는 모든 가능한 전단(예를 들어, 그래픽) 요소/구성요소가 제공된다. 또한, 각 요소 룰은 소정의 치수 또는 페이지 요소/구성요소에 대해 모든 가능한 치수 값들 또는 페이지 요소/구성요소 값들을 식별하는 포인터들을 포함한다. 예를 들어, "서브 헤드라인" 요소 룰은 "서브 헤드라인" 요소의 모든 가능한 속성, 이를테면 색상, 텍스트, 크기, 배치 기타 같은 종류의 것에 대한 포인터들을 포함한다.
선택된 지놈에 대해, 제시 모듈(1310)은 제시 데이터베이스(1320)에 액세스하고 선택된 지놈에서의 각 유전인자에 대해 적용가능한 요소 룰을 평가한다. 도 13의 예에서, 요소 1 룰은 모든 로고 유전인자에 대해 식별되고, 요소 2 룰은 모든 메인 헤드라인 유전인자에 대해 식별되고, 요소 3 룰은 모든 서브 헤드라인 유전인자에 대해 식별되며, 요소 4 룰은 모든 액션 버튼 유전인자에 대해 식별된다. 나아가, 각 요소 룰은 각각의 유전인자 값들에 대한 포인터를 식별하고 대응하는 전단(예를 들어, 그래픽) 요소들/구성요소들 및 요소/구성요소 값들을 생성한다.
일 구현예에서, 치수들의 각각에 대해 이용가능한 값들 중 하나가 디폴트 값일 때, 그 결과로 초래된 퍼널은 치수들의 각각의 디폴트 치수 값에 대한 디폴트 전단 요소 값을 갖는다. 그러한 구현예에서, 제시 모듈(1310)은 제시 데이터베이스(1320)에 선별된 후보 개체를 적용하여 치수들의 각각에 대한 디폴트 치수 값 외에 선별된 후보 개체에 의해 식별되는 모든 치수 값에 대응하는 전단 요소 값들을 결정한다.
다른 구현예들에서는, 웹 인터페이스 퍼널의 특정 변종에 대해, 퍼널의 치수들의 각각에 대한 값을 저장하는 퍼널 사용자 정의 지정 메모리가 이용된다. 그러한 구현에에서, 제시 모듈(1310)은 퍼널 사용자 정의 지정 메모리에 저장된 치수 값들에 대응함에 따라 제시 데이터베이스(1320)에 의해 표시되는 전단 요소 값들을 갖는 퍼널을 사용자에게 제시한다. 퍼널 사용자 정의 지정 메모리는 또한 퍼널의 치수들의 각각에 대한 값들의 새로운 집합으로 업데이트된다. 퍼널 사용자 정의 지정 메모리에 대해 업데이트된 값들은 퍼널에 진입하기 위한 사용자 거동(예를 들어, 사용자가 브라우저를 통해 랜딩 페이지 URL을 제공하는 것)에 응답하여 검색된다. 또한, 제시 모듈(1310)은 사용자 거동(예를 들어, 사용자가 브라우저를 통해 랜딩 페이지 URL을 제공하는 것)에 응답하여 제시 데이터베이스(1320)에 액세스한다.
일 구현예에서, 치수들의 각각에 대해 이용가능한 값들 중 하나가 디폴트 값일 때, 퍼널은 치수들의 각각의 디폴트 치수 값에 대한 디폴트 전단 요소 값을 갖는다. 그러한 구현예에서, 제시 모듈(1310)에 의해 사용자에게 제시되는 퍼널은 치수들의 각각에 대한 디폴트 치수 값 외에 퍼널 사용자 정의 지정 메모리에서 식별되는 모든 치수 값에 대응함에 따라 제시 데이터베이스(1320)에 의해 표시되는 전단 요소 값들을 갖는다.
도 14에서, 네 개의 웹 인터페이스(WI 1 내지 WI 4)가 후보 개체들(CI 1 내지 CI 4)의 각각에 의존하여 제시 모듈(1310)에 의해 생성된다. 웹 인터페이스들의 각각은 제시 데이터베이스(1320)에서의 룰들에 의해 식별되는 전단(예를 들어, 그래픽) 요소들/구성요소들 및 요소/구성요소 값들을 포함한다. 그 다음, 웹 인터페이스(WI 1 내지 WI 4)는 라이브 온라인 평가(108)를 위해 사용자들에게 제시된다.
기계 학습된 사용자 디바이스(MLUD)
도 15는 본 출원에서 "기계 학습된 사용자 디바이스"(MLUD)로 지칭되는, 개선된 사용자 디바이스의 일 구현예를 예시한다. 도 15에서, 최종 사용자는 벤더 웹 사이트에 액세스하기 위해 MLUD(1504) 상에서 실행되는 브라우저를 사용한다. 벤더 웹 서버는 최종 사용자가 벤더 웹 사이트에 액세스하는 것에 응답하여 웹 페이지의 부분으로서, 전환 스니펫(conversion snippet)을 MLUD(1504)에 배치하도록 구성된다. 전환 스니펫이 MLUD(1504)에 전송된 후 그리고 웹 페이지가 최종 사용자에게 렌더링된 후, 전환 스니펫은 네트워크 서버 인프라스트럭처를 호출한다. 네트워크 서버 인프라스트럭처는 전환 시스템(104), 후보 개체 모집단(102), 및 콘텐츠 전달 네트워크(CDN, content delivery network)(1508)를 포함한다.
MLUD(1504)에 배치되는 전환 스니펫은 CDN(1508)으로부터 제시 파일(1330)을 검색하고 제시 파일(1330)을 MLUD(1504)에 저장한다. CDN(1508)에는 제시 파일(1330)이 미리 로딩된다. 현재 공통 CDN 서비스들의 예들은 Akamai™, CloudFlare™, CloudFront™, Fastly™, MaxCDN™, KeyCDN™, Incapsula™, 및 GlobalDots™를 포함한다. 제시 파일(1330)은 위에서 논의된, 제시 데이터베이스(1320) 및 제시 모듈(1310)을 포함한다.
그 다음, MLUD(1504)에 배치된 전환 스니펫은 전환 시스템(104)으로부터 지놈을 요청한다. 이에 응답하여, 전환 시스템(104)은 후보 개체 모집단(102)으로부터 지놈을 검색하고 선별된 지놈을 MLUD(1504)에 전달한다.
그 다음, 전환 시스템(104)으로부터 선별된 지놈 및 CDN(1508)으로부터의 제시 파일(1330)을 수신한 MLUD(1504)는 제시 모듈(1310)을 실행한다. 제시 모듈(1310)은 위에서 논의된 바와 같이, 제시 데이터베이스(1320)의 룰들과 비교하여 선별된 지놈을 평가하고 하나 이상의 웹 인터페이스의 퍼널을 생성한다. 그에 따라, 표준 사용자 디바이스는 알고리즘적으로 진화된 웹 인터페이스들을 생성하도록 개선된다.
기계 학습된 콘텐츠 전달 네트워크(MLCDN)
도 16은 본 출원에서 "기계 학습된 콘텐츠 전달 네트워크"(MLCDN)로 지칭되는, 개선된 콘텐츠 전달 네트워크(CDN)의 일 구현예를 예시한다. 도 16에서, 최종 사용자들은 벤더 웹 사이트에 액세스하기 위해 사용자 디바이스들(1602) 상에서 실행되는 브라우저들을 사용한다. 벤더 웹 서버는 최종 사용자들이 벤더 웹 사이트에 액세스하는 것에 응답하여 웹 페이지의 부분으로서, 전환 스니펫을 사용자 디바이스들(1602)에 배치하도록 구성된다. 전환 스니펫이 사용자 디바이스들(1602)에 전송된 후 그리고 웹 페이지가 최종 사용자둘에게 렌더링된 후, 전환 스니펫은 네트워크 서버 인프라스트럭처를 호출한다. 네트워크 서버 인프라스트럭처는 전환 시스템(104), 후보 개체 모집단(102), 및 MLCDN(1604)를 포함한다.
MLCDN(1604)에는 제시 파일(1330)이 미리 로딩된다. 제시 파일(1330)은 위에서 논의된, 제시 데이터베이스(1320) 및 제시 모듈(1310)을 포함한다.
그 다음, MLCDN(1604)은 전환 시스템(104)으로부터 지놈을 요청한다. 이에 응답하여, 전환 시스템(104)은 후보 개체 모집단(102)으로부터 지놈을 검색하고 선별된 지놈을 MLCDN(1604)에 전달한다.
그 다음, 선별된 지놈 및 제시 파일(1330) 양자를 갖는 MLCDN(1604)이 제시 모듈(1310)을 실행한다. 제시 모듈(1310)은 위에서 논의된 바와 같이, 제시 데이터베이스(1320)의 룰들과 비교하여 선별된 지놈을 평가하고 하나 이상의 웹 인터페이스의 퍼널을 생성한다. 그 다음 MLCDN(1604)은 사용자 디바이스들(1602)에 최종 사용자들에게 전단 제시할 웹 인터페이스들을 전달한다. 그에 따라, 표준 CND은 알고리즘적으로 진화된 웹 인터페이스들을 생성하도록 개선된다.
예시적인 결과들
라이브 온라인 평가(108) 동안, 사용자 상호작용(324)에 기초하여 퍼널들의 각각에 대한 성능 측정치들(106)이 수집된다. 몇몇 구현예에서는, 상호작용 메타데이터가 세션마다에 기초하여 각 사용자에 대해 추적될 수 있다. 예를 들어, 라이브 온라인 평가(108) 동안 상호작용하는 사용자들 이를테면 user_m, user_j, user_(j + 1), 및 user_n의 각각에 대해, 대응하는 세션들(interaction_im, interaction_ij, interaction_i(j +1), 및 interaction_in)이 생성될 수 있다. 이러한 세션들 동안, 후보 개체들에 대응하는 퍼널 이를테면 individual_i, individual_i + 1, 및individual_n이 사용자들에게 제시되고 동시에 평가될 수 있다. 사용자 상호작용(324)에 기초하여, 후보 개체들의 각각에 대한 성능 측정치들(106)이 수집 및 전개될 수 있다.
도 17은 대조 개체 및 승리 개체를 치수들 및 치수 값들을 포함하여 그래픽으로 예시한다. 도 17에 도시된 예에서, 최고 성능 승자의 헤드라인 페이지 요소가 대조 배너와 함께 도시된다.
도 18은 MLCO를 수행하는 개시된 진화적 조작들의 일 구현예의 예시적인 결과들을 그래픽으로 예시하는 차트이다. 도 18에서, 차트는 도 17의 최고 성능 승자의 헤드라인 페이지 요소가 전환율ㅇ,ㄹ 거의 0%에서 4.44%로 개선할 수 있음을 나타낸다.
위험 허용치 & 모집단 세분화
실제 사용자들에 관한 라이브 테스팅을 수반하는 기존 전환 최적화 솔루션들은 그것들이 전환을 낮추게 할 때 때때로 매우 초기 스테이지들에서 취소된다. 전환 최적화의 위험 및 복귀는 "반비례 관계"에 있다. 그 결과, 본 출원에 개시된 MLCO는 목적하는 위험 허용치의 범위 내에서 전환을 증가시키는 시스템들 및 방법들을 제공한다. 도 19는 개시된 진화적 조작들에 대한 위험 허용치를 구현하는 위험 허용치 모듈의 일 구현예를 도시한다. 도 19에 도시된 예에서, 위험 허용치 모듈은 관리 인터페이스를 거쳐 액세스가능한 구성가능한 파라미터로서의 역할을 할 수 있는 노브(knob)(1904)의 형태로 도시된다.
일 구현예에서, 알고리즘에 따라 진화된 퍼널들 또는 후보 개체들에 제시되는 라이브 사용자 트래픽의 퍼센테이지 또는 양(즉, 사용자들의 수) 그리고 대조 퍼널들 또는 후보 개체들에 제시되는 라이브 사용자 트래픽의 퍼센테이지 또는 양(즉, 사용자들의 수)을 결정하는 위험 허용치 레벨이 지정된다. 예를 들어, 보수적인 위험 허용치 레벨에서, 사용자에게 서비스되는 웹 페이지들 중 단지 5%만이 진화적 조작들에 의해 결정되는 반면, 웹 페이지들의 95%는 대조 버전들이다. 다른 구현예들에서는, 상이한 위험 허용치 레벨들, 이를테면 중간 정도로 보수적인(예를 들어, 15%가 진화된 웹 페이지들, 85%가 대조 웹 페이지들), 중간(예를 들어, 20%가 진화된 웹 페이지들, 80%가 대조 웹 페이지들), 중간 정도로 공격적인(60%가 진화된 웹 페이지들, 40%가 대조 웹 페이지들), 그리고 공격적인(70%가 진화된 웹 페이지들, 30%가 대조 웹 페이지)이 지정될 수 있다. 이러한 위험 허용치 레벨들의 각각에 대해, 사용자 노출의 알고리즘에 따라 진화된 후보 개체들 및 대조 후보 개체들로의 적절한 분배가 설정될 수 있다.
일 구현예에서, 후보 개체 모집단(102)에서의 후보 개체들은 분배 모듈(1902)에 의해 복수의 휴리스틱에 기초하여 다수의 그룹 또는 풀로 세분화될 수 있다. 그러한 휴리스틱들의 예들은 성능 측정치들(예를 들어, 전환율 또는 수익률)에 기초하여 후보 개체가 얼마나 양호한지, 라이브 사용자 평가의 정도에 기초하여 후보 개체가 얼마나 경험했는지 또는 얼마나 최근에 후보 개체가 생성되었는지 또는 후보 개체가 생존한 세대들의 수 또는 후보 개체들이 엘리트 풀로 선택된 것에 기인하여 보존된 횟수, 또는 디자이너 지정에 기초하여 후보 개체가 대조 개체인지를 포함한다.
일 구현예에서, 후보 모집단 내 제1 모집단 그룹은 대조 개체들로만 구성되고, 후보 모집단을 갖는 제2 모집단 그룹은 엘리트 개체들로만 구성되고, 후보 모집단 내 제3 모집단은 기존의 비-엘리트 개체들(즉, 이전 세대에서 형성됨)로만 구성되며, 후보 모집단 내 제4 모집단은 새롭게 형성된 개체들(즉, 현재 세대에서 형성됨)로만 구성된다.
노브(1904)의 구성에 의존하여, 엘리트 풀(1912) 및 대조 풀(1922)로부터 후보 개체들의 교대 배치의 빈도가 설정될 수 있다. 예를 들어, 노브(1904)가 20%로 설정된다면, 전환 시스템(104)은 대조 풀(1922)로부터의 후보 개체들을 당시의 80% 액세스하고 배치한다. 다른 구현예들에서, 해당 기술분야의 통상의 기술자들에 쉽게 분명해질 상이한 액세스 빈도 룰들이 설정될 수 있다.
추가적으로, 라이브 사용자 트래픽은 노브(1904)와 함께 작동하는 후보 테스팅 모듈(212)에 의해 후보 모집단의 다양한 그룹 또는 풀에 분배될 수 있다. 일례로, 라이브 사용자 트래픽의 50%는 대조 풀에서의 대조 개체들에 부여될 수 있고, 라이브 사용자 트래픽의 30%는 엘리트 풀에서의 엘리트 개체들(예를 들어, 이전 세대의 그리고 다음 세대로 보존되는 적응도가 가장 높은 멤버들)에 부여될 수 있으며, 라이브 사용자 트래픽의 20%는 비-엘리트 풀에서의 비-엘리트 개체들(예를 들어, 최근에 생성된 자식 멤버들)에 부여될 수 있다. 뿐만 아니라, 분배가 위험 허용치 스키마들을 구현하기 위해 후보 모집단의 상이한 세그먼트에 걸친 라이브 사용자 트래픽의 가변 조직들에 의해 사용될 수 있다. 예를 들어, 엘리트 개체들이 대조 개체들보다 우세하기 때문에, 공격적인 위험 허용치 스키마는 라이브 사용자 트래픽의 대부분을 엘리트 풀에서의 엘리트 개체들에 라우팅하는 것 그리고 라이브 사용자 트래픽의 단지 소수를 대조 풀 및 비-엘리트 풀에 라우팅하는 것을 포함할 수 있다. 예를 들어, 라이브 사용자 트래픽의 60%가 엘리트 풀에 부여될 수 있고, 라이브 사용자 트래픽의 20%가 대조 풀에 부여될 수 있으며, 라이브 사용자 트래픽의 20%가 비-엘리트 풀에 부여될 수 있다. 상기한 스키마를 이용하면, 더 많은 사용자가 엘리트 웹 인터페이스들에 노출될 것이기 때문에, 조직의 성능 측정치들(예를 들어, 조직의 전환율 또는 조직의 수익률)이 더 빠르게 개선된다. 유사하게, 다른 구현예들에서, 보수적인 또는 어느 정도-공격적인 또는 어느 정도-보수적인 스키마들이 조직들에 의해 선택 및/또는 구현될 수 있다.
또 다른 구현예들에서, 상이한 휴리스틱들이 후보 모집단을 세분화하기 위해 사용될 수 있으며(예를 들어, 가중 확률, 영역, 도메인 이름, 조직 내 부서 등), 그에 따라 라이브 사용자 트래픽이 휴리스틱들에 의해 정의되는 후보 모집단의 상이한 세그먼트들, 그룹들, 풀들, 또는 클러스터들에 가변적으로 분산될 수 있게 된다.
컴퓨터 시스템
도 20은 개시된 기술을 구현하기 위해 사용될 수 있는 컴퓨터 시스템의 간략화된 블록도이다. 컴퓨터 시스템(2010)은 통상적으로 버스 서브 시스템(2012)을 통해 다수의 주변 디바이스와 통신하는 적어도 하나의 프로세서(2014)를 포함한다. 이러한 주변 디바이스들은 예를 들어, 메모리 디바이스들 및 파일 스토리지 서브 시스템을 포함하는 스토리지 서브시스템(2024), 사용자 인터페이스 입력 디바이스들(2022), 사용자 인터페이스 출력 디바이스들(2018), 및 네트워크 인터페이스 서브 시스템(2016)을 포함할 수 있다. 입력 및 출력 디바이스들은 컴퓨터 시스템(2010)과의 사용자 상호작용을 가능하게 한다. 네트워크 인터페이스 서브 시스템(2016)은 다른 컴퓨터 시스템들에서의 대응하는 인터페이스 디바이스들에 대한 인터페이스를 포함하여, 외부 네트워크들에 대한 인터페이스를 제공한다.
일 구현예에서, 전환 시스템(104)은 스토리지 서브 시스템(2024) 및 사용자 인터페이스 입력 디바이스들(2022)에 통신가능하게 링크된다.
사용자 인터페이스 입력 디바이스들(2022) 또는 클라이언트들 또는 클라이언트 디바이스들은 키보드; 포인팅 디바이스들 이를테면 마우스, 트랙볼, 터치패드, 또는 그래픽 태블릿; 스캐너; 디스플레이에 통합된 터치 스크린; 오디오 입력 디바이스들 이를테면 음성 인식 시스템들 및 마이크로폰들; 및 다른 유형들의 입력 디바이스들을 포함할 수 있다. 일반적으로, 용어 "입력 디바이스"의 사용은 정보를 컴퓨터 시스템(2010)에 입력하기 위한 모든 가능한 유형의 디바이스들 및 방식들을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스들(2018)은 디스플레이 서브 시스템, 프린터, 팩스 머신, 또는 비-시각적 디스플레이들 이를테면 오디오 출력 디바이스들을 포함할 수 있다. 디스플레이 서브 시스템은 음극선관(CRT), 평면 디바이스 이를테면 액정 디스플레이(LCD), 프로젝션 디바이스, 또는 시각적 이미지를 생성하기 위한 몇몇 다른 메커니즘을 포함할 수 있다. 디스플레이 서브 시스템은 또한 비-시각적 디스플레이 이를테면 오디오 출력 디바이스들을 제공할 수 있다. 일반적으로, 용어 "출력 디바이스"의 사용은 컴퓨터 시스템(2010)으로부터 사용자에게 또는 다른 기계 또는 컴퓨터 시스템에 출력하기 위한 모든 가능한 유형의 디바이스들 및 방식들을 포함하도록 의도된다.
스토리지 서브 시스템(2024)은 본 출원에 설명된 모듈들 및 방법들 중 일부 또는 전부의 기능을 제공하는 프로그래밍 및 데이터 구성들을 저장한다. 이러한 소프트웨어 모듈들은 일반적으로 단독으로 또는 다른 프로세서들과 조합하여 프로세서(2014)에 의해 실행된다.
스토리지 서브 시스템에 사용되는 메모리(2026)는 프로그램 실행 동안 명령들 및 데이터의 저장을 위한 메인 랜덤 액세스 메모리(RAM)(2034) 및 고정된 명령들이 저장되는 판독 전용 메모리(ROM)(2032)를 포함하여 다수의 메모리를 포함할 수 있다. 파일 스토리지 서브 시스템(2028)은 프로그램 및 데이터 파일들에 대한 영구 저장을 제공할 수 있고, 하드 디스크 드라이브, 관련 착탈가능한 미디어와 함께 플로피 디스크 드라이브, CD-ROM 드라이브, 광 드라이브, 또는 착탈가능한 미디어 카트리지들을 포함할 수 있다. 특정 구현예들의 기능을 구현하는 모듈들은 파일 스토리지 서브 시스템(2028)에 의해 스토리지 서브 시스템(2024)에, 또는 프로세서에 의해 액세스가능한 다른 기계들에 저장될 수 있다.
버스 서브 시스템(2012)은 컴퓨터 시스템(2010)의 다양한 구성요소 및 서브 시스템이 서로 의도된 대로 통신하게 하기 위한 메커니즘을 제공한다. 버스 서브 시스템(2012)은 단일 버스로서 개략적으로 도시되지만, 버스 서브 시스템의 대안적인 구현예들은 다수의 버스를 사용할 수 있다. 어플리케이션 서버(2020)는 컴퓨터 시스템(2010)의 어플리케이션들이 이를테면 하드웨어 및/또는 소프트웨어, 예를 들어, 운영 체제를 실행할 수 있게 하는 프레임워크일 수 있다.
컴퓨터 시스템(2010) 자체는 개인용 컴퓨터, 휴대용 컴퓨터, 워크스테이션, 컴퓨터 단말, 네트워크 컴퓨터, 텔레비전, 메인프레임, 서버 팜, 느슨하게 네트워킹된 컴퓨터들의 넓게 분산된 집합, 또는 임의의 다른 데이터 프로세싱 시스템 또는 사용자 디바이스를 포함하여 다양한 유형을 가질 수 있다. 컴퓨터들 및 네트워크들의 끊임없이 변화하는 속성으로 인해, 도 20에 도시된 컴퓨터 시스템(2010)에 대한 설명은 단지 본 발명의 바람직한 실시예들을 예시하기 위한 특정 예로서 의도된다. 컴퓨터 시스템(2010)의 많은 다른 구성은 도 20에 도시된 컴퓨터 시스템보다 더 많거나 적은 구성요소를 갖는 것이 가능하다.
본 출원인은 이에 의해 별개로 본 출원에서 설명된 각 개체 특징 및 두 개 이상의 그러한 특징의 임의의 조합을, 그러한 특징들 또는 특징들의 조합들이 본 출원에 개시된 모든 문제를 해결하는지 여부에 관계 없이, 그리고 청구항들의 범위에 제한되지 않고, 그러한 특징들 또는 조합들이 해당 기술분야에서의 통상의 기술자의 공통 일반적 지식을 고려하여 전체로서 본 명세서에 기초하여 수행될 수 있는 정도로, 개시한다. 본 출원인은 본 발명의 측면들이 임의의 그러한 특징 또는 특징들의 조합으로 구성될 수 있음을 나타낸다. 앞에서의 설명을 고려하여, 해당 기술분야에서의 통상의 기술자에게 본 발명의 범위 내에서 많은 변경이 이루어질 수 있다는 것이 명백할 것이다.
선행하는 설명은 개시된 기술을 이용 및 사용할 수 있게 하기 위해 제시된다. 개시된 구현예들에 대한 다양한 변경예들이 명백해질 것이고, 본 출원에서 정의되는 일반 원리들은 개시된 기술의 사상 및 범위에서 벗어나지 않고 다른 구현예들 및 적용예들에 적용될 수 있다. 그에 따라, 개시된 기술은 제시된 구현예들에 제한되도록 의도되는 것이 아니라, 본 출원에 개시된 원리들 및 특징들에 맞는 가장 넓은 범위를 부여 받아야 한다. 개시된 기술의 범위는 첨부된 청구항들에 의해 정의된다.

Claims (50)

  1. 미리 결정된 타겟 사용자 거동을 촉진하는 컴퓨터 구현 웹 인터페이스 생성 및 테스팅 시스템으로서,
    후보 개체들의 모집단을 갖는 후보 데이터베이스를 저장하는 메모리로서, 상기 후보 개체들의 각각은 하나 이상의 웹 인터페이스의 퍼널을 식별하고, 각 퍼널은 복수의 치수를 갖고, 상기 퍼널은 상기 타겟 사용자 거동의 획득이 검출될 수 있는 메커니즘을 가지며, 각 후보 개체는 상기 치수들의 각각에 대한 값을 식별하는, 상기 메모리;
    후보 개체들의 예비 풀을 상기 후보 개체 모집단에 기입하는 모집단 초기 설정 모듈;
    라이브 온라인 평가에 의해 상기 후보 개체 모집단에서의 상기 후보 개체들의 각각을 테스팅하는 후보 테스팅 모듈로서, 상기 후보 테스팅 모듈은 상기 라이브 온라인 평가 중인 상기 후보 개체들의 각각에 대한 성능 측정치를 전개시키고, 상기 성능 측정치는 상기 타겟 사용자 거동을 획득하는 것에 있어서의 상기 퍼널의 성공 지표인, 상기 후보 테스팅 모듈;
    상기 후보 개체 모집단으로부터의 하나 이상의 부모 개체의 각각의 집합 및 상기 부모들의 성능 측정치들에 의존하여 형성되는 새로운 개체들을 상기 후보 개체 모집단에 추가하는 번식 모듈; 및
    상기 후보 테스팅 모듈 및 상기 번식 모듈을 반복하는 제어 모듈을 포함하는, 시스템.
  2. 청구항 1에 있어서, 상기 번식 모듈은 상기 새로운 개체에 대한 유전인자들이 상기 후보 개체 모집단에서의 상기 부모 개체들로부터 적응도에 비례해서 선별되도록 상기 새로운 개체들 중 하나를 형성하는, 시스템.
  3. 청구항 1에 있어서, 전개된 상기 성능 측정치들에 의존하여 상기 후보 개체 모집단으로부터 폐기하기 위한 상기 라이브 온라인 평가 중인 개체들을 선별하는 경쟁 모듈을 포함하도록 더 구성되는, 시스템.
  4. 청구항 3에 있어서, 상기 번식 모듈은 아직 폐기하도록 선별되지 않고 상기 후보 개체 모집단으로부터의 하나 이상의 부모 개체의 각각의 집합에 의존하여 형성되는 새로운 개체들을 상기 후보 개체 모집단에 추가하는, 시스템.
  5. 청구항 4에 있어서, 상기 번식 모듈은 유전인자마다에 기초하여 둘 이상의 부모 개체를 교차함으로써 상기 새로운 개체들 중 하나를 형성하는, 시스템.
  6. 청구항 4에 있어서, 상기 번식 모듈은 유전인자마다에 기초하여 적어도 하나의 부모 개체를 변이시킴으로써 상기 새로운 개체들 중 하나를 형성하는, 시스템.
  7. 청구항 4에 있어서, 상기 번식 모듈은 교차에 의해 몇몇 상기 새로운 개체를 형성한 후에 변이에 의해 상기 새로운 개체들 중 하나를 형성하는, 시스템.
  8. 청구항 3에 있어서, 상기 제어 모듈은 상기 후보 테스팅 모듈, 상기 경쟁 모듈, 및 상기 번식 모듈을 반복하는, 시스템.
  9. 청구항 3에 있어서, 상기 경쟁 모듈에 의해 폐기하기 위한 개체들의 상기 선별은 대상 개체에 대한, 상기 대상 개체의 상대적인 성능 측정치를 상기 후보 개체 모집단에서의 다른 개체의 상대적인 성능 측정치와 비교하는 제1 인스턴스를 포함하는, 시스템.
  10. 청구항 9에 있어서, 상기 대상 개체의 상기 상대적인 성능 측정치는 제1 시간 기간에 결정되는 대조 개체의 절대적인 성능 측정치와 상기 제1 시간 기간에 결정되는 상기 대상 개체의 절대적인 성능 측정치 간 차에 기초하여 결정되는, 시스템.
  11. 청구항 1에 있어서, 상기 후보 개체 모집단을 복수의 휴리스틱에 기초하여 다수의 모집단 그룹으로 세분화하는 분배 모듈을 포함하도록 더 구성되는, 시스템.
  12. 청구항 11에 있어서, 상기 후보 테스팅 모듈은 특정 조직에 의해 수신되는 라이브 사용자 트래픽을 상기 모집단 그룹들 중에 가변적으로 분산시키는, 시스템.
  13. 청구항 1에 있어서, 상기 모집단 초기 설정 모듈은 후보 탐색 공간에서 상기 치수들의 각각에 대해 이용가능한 값을 랜덤으로 선별함으로써 그리고 상기 치수들 및 상기 치수 값들을 이진법 공식들로 부호화함으로써 상기 후보 개체들의 예비 풀을 생성하는, 시스템.
  14. 청구항 13에 있어서, 상기 모집단 초기 설정 모듈은 상기 후보 탐색 공간에서의 상기 이용가능한 치수 값들의 대부분이 초기화되었다고 결정하고, 이에 응답하여, 상기 후보 개체 모집단에, 아직 초기화되지 않은 상기 후보 탐색 공간에서의 상기 이용가능한 치수 값들에 기초하여 후보 개체들을 랜덤으로 기입하는, 시스템.
  15. 청구항 1에 있어서, 상기 후보 개체들의 예비 풀을 상기 후보 개체 모집단에 기입 시, 상기 모집단 초기 설정 모듈은:
    적어도 하나의 스타터 퍼널을 획득하되, 상기 스타터 퍼널은 복수의 스타터 치수 및 상기 스타터 치수들의 각각에 대한 스타터 치수 값들의 집합을 갖고;
    각각의 상기 스타터 치수 값들이 상기 후보 개체들 중 단지 하나에만 존재함을 보장하는 방식으로 상기 후보 개체들의 예비 풀을 생성하는, 시스템.
  16. 청구항 1에 있어서, 상기 제어 모듈에 의해 이행되는 반복 횟수는 상기 타겟 사용자 거동을 촉진하려고 하는 특정 조직에 특유한 하나 이상의 테스팅 파라미터의 함수인, 시스템.
  17. 청구항 16에 있어서, 테스팅 파라미터는 일정 시간 기간 동안 상기 특정 조직에 의해 수신되는 라이브 사용자 트래픽의 양인, 시스템.
  18. 청구항 17에 있어서, 상기 제어 모듈은 상기 시간 기간 내 상기 반복 횟수를 이행하도록 구성되는, 시스템.
  19. 청구항 17에 있어서, 상기 모집단 초기 설정 모듈은 상기 후보 개체들의 예비 풀의 최대 크기를 상기 라이브 사용자 트래픽의 양의 함수로 만드는, 시스템.
  20. 청구항 19에 있어서, 상기 모집단 초기 설정 모듈은 다음에 의해 상기 스타터 퍼널에 대해 정의된 다수의 스타터 치수 및 스타터 치수 값과 상기 후보 개체들의 예비 풀의 상기 최대 크기 간 충돌을 해소하는, 시스템:
    상기 반복 횟수가 상기 시간 기간 내에 이해됨을 보장하는 방식으로 상기 후보 개체들의 예비 풀을 구성하기 위한 상기 스타터 치수들 및 상기 스타터 치수 값들의 제1 서브 집합을 선별하는 것.
  21. 청구항 20에 있어서, 상기 제1 서브 집합의 상기 선별은 이전에 지정된 스타터 치수들 및 스타터 치수 값들로 치중되는, 시스템.
  22. 청구항 20에 있어서, 상기 번식 모듈은 상기 제1 서브 집합과 상이한 상기 스타터 치수들 및 상기 스타터 치수 값들의 제2 집합에 의존하여 상기 새로운 개체들 중 하나를 형성하는, 시스템.
  23. 청구항 1에 있어서, 상기 타겟 사용자 거동은 최종 사용자들에 의한 전환(conversion)인, 시스템.
  24. 청구항 1에 있어서, 상기 후보 테스팅 모듈에 의해 전개되는 상기 성능 측정치는 상기 라이브 온라인 평가 중인 상기 후보 개체들의 전환율들에 기초하는, 시스템.
  25. 청구항 1에 있어서, 상기 후보 테스팅 모듈에 의해 전개되는 상기 성능 측정치는 상기 라이브 온라인 평가 중인 상기 후보 개체들로부터 수신되는 수익에 기초하는, 시스템.
  26. 미리 결정된 타겟 사용자 거동을 촉진하기 위한 컴퓨터 구현 웹 인터페이스 생성 및 테스팅 방법으로서,
    후보 개체들의 모집단을 갖는 후보 데이터베이스를 저장하는 메모리를 제공하는 단계로서, 상기 후보 개체들의 각각은 하나 이상의 웹 인터페이스의 퍼널을 식별하고, 각 퍼널은 복수의 치수를 갖고, 상기 퍼널은 상기 타겟 사용자 거동의 획득이 검출될 수 있는 메커니즘을 가지며, 각 후보 개체는 상기 치수들의 각각에 대한 값을 식별하는, 상기 메모리를 제공하는 단계;
    후보 개체들의 예비 풀을 상기 후보 개체 모집단에 기입하는 단계;
    라이브 온라인 평가에 의해 상기 후보 개체 모집단에서의 상기 후보 개체들의 각각을 테스팅하는 단계로서, 상기 후보 테스팅 모듈은 상기 라이브 온라인 평가 중인 상기 후보 개체들의 각각에 대한 성능 측정치를 전개시키고, 상기 성능 측정치는 상기 타겟 사용자 거동을 획득하는 것에 있어서의 상기 퍼널의 성공 지표인, 상기 후보 개체들의 각각을 테스팅하는 단계;
    상기 후보 개체 모집단으로부터의 하나 이상의 부모 개체의 각각의 집합 및 상기 부모들의 성능 측정치들에 의존하여 형성되는 새로운 개체들을 상기 후보 개체 모집단에 추가하는 단계; 및
    상기 테스팅하는 단계 및 상기 추가하는 단계를 반복하는 단계를 포함하는, 방법.
  27. 컴퓨터 구현 웹 인터페이스 생성 및 배치 시스템으로서,
    후보 개체들의 모집단을 갖는 후보 데이터베이스를 저장하는 메모리로서, 상기 후보 개체들의 각각은 하나 이상의 웹 인터페이스의 퍼널을 식별하고, 각 퍼널은 값이 지정될 수 있는 복수의 치수를 가지며, 각 후보 개체는 또한 상기 치수들의 각각에 대한 값을 식별하는, 상기 메모리;
    상기 퍼널의 상기 치수들의 각각의 적어도 하나의 이용가능한 값의 각각에 대한 전단 요소 값을 식별하는 제시 데이터베이스; 및
    선별된 후보 개체에 의해 식별되는 치수 값들에 대응하는 전단 요소 값들을 결정하기 위해 상기 후보 개체들 중 상기 선별된 후보 개체를 상기 제시 데이터베이스에 적용하고, 결정된 상기 전단 요소 값들을 갖는 퍼널을 사용자에게 제시하는, 제시 모듈을 포함하는, 시스템.
  28. 청구항 27에 있어서, 상기 치수들의 각각에 대한 상기 이용가능한 값들 중 하나는 디폴트 값이되,
    상기 퍼널은 상기 치수들의 각각의 상기 디폴트 치수 값에 대한 디폴트 전단 요소 값을 갖고,
    상기 제시 모듈은 상기 선별된 후보 개체를 상기 제시 데이터베이스에 적용하여 상기 치수들의 각각에 대한 디폴트 치수 값 외에 상기 선별된 후보 개체에 의해 식별되는 모든 치수 값에 대응하는 전단 요소 값들을 결정하는, 시스템.
  29. 사용자 정의가능한 웹 인터페이스 퍼널을 위한 컴퓨터 구현 배치 시스템으로서, 상기 퍼널은 복수의 치수에 따라 사용자 정의가능하고,
    상기 퍼널의 상기 치수들의 각각의 적어도 하나의 이용가능한 값의 각각에 대한 전단 요소 값을 식별하는 제시 데이터베이스;
    상기 웹 인터페이스 퍼널의 특정 변종에 대해, 상기 퍼널의 상기 치수들의 각각에 대한 값을 저장하는 퍼널 사용자 정의 지정 메모리; 및
    상기 퍼널 사용자 정의 지정 메모리에 저장된 상기 치수 값들에 대응함에 따라 상기 제시 데이터베이스에 의해 표시되는 전단 요소 값들을 갖는 퍼널을 사용자에게 제시하는 제시 모듈을 포함하는, 시스템.
  30. 청구항 29에 있어서, 상기 치수들의 각각에 대한 상기 이용가능한 값들 중 하나는 디폴트 값이되,
    상기 퍼널은 상기 치수들의 각각의 상기 디폴트 치수 값에 대한 디폴트 전단 요소 값을 갖고,
    상기 제시 모듈에 의해 상기 사용자에게 제시되는 상기 퍼널은 상기 치수들의 각각에 대한 상기 디폴트 치수 값 외에 상기 퍼널 사용자 정의 지정 메모리에서 식별되는 모든 상기 치수 값에 대응함에 따라 상기 제시 데이터베이스에 의해 표시되는 전단 요소 값들을 갖는, 시스템.
  31. 청구항 29에 있어서, 상기 퍼널 사용자 정의 지정 메모리를 상기 퍼널의 상기 치수들의 각각에 대한 값들의 새로운 집합으로 업데이트하도록 더 구성되는, 시스템.
  32. 청구항 29에 있어서, 상기 퍼널에 진입하기 위한 사용자 거동에 응답하여 상기 퍼널 사용자 정의 지정 메모리에 대한 상기 값들을 검색하는, 시스템.
  33. 청구항 32에 있어서, 사용자 거동에 응답하여 또한 상기 제시 데이터베이스를 검색하는, 시스템.
  34. 컴퓨터 구현 웹 인터페이스 생성 및 배치 시스템으로서,
    후보 개체들의 모집단을 갖는 데이터베이스를 저장하는 메모리로서, 상기 후보 개체들의 각각은 하나 이상의 웹 인터페이스의 퍼널을 식별하고, 각 퍼널은 값이 지정될 수 있는 복수의 치수를 가지며, 각 후보 개체는 또한 상기 치수들의 각각에 대한 값을 식별하는, 상기 메모리;
    네트워크를 통해 수신된 하나 이상의 제1 요청에 응답하여, 제1 클라이언트 컴퓨터 시스템에:
    상기 퍼널의 상기 치수들의 각각의 적어도 하나의 이용가능한 값의 각각에 대한 전단 요소 값을 식별하는 제시 데이터베이스,
    상기 모집단에서의 상기 후보 개체들 중 제1 선별된 후보 개체에 의해 식별되는 치수 값들의 집합, 및
    수신된 상기 치수 값들의 집합에 의존하여, 수신된 상기 치수 값들의 집합에 의해 표시되는 전단 요소 값들을 갖는 퍼널을 사용자에게 제시하는 제시 모듈을 리턴하는 네트워크 서버 인프라스트럭처를 포함하는, 시스템.
  35. 청구항 34에 있어서, 상기 치수들의 각각에 대한 상기 이용가능한 값들 중 하나는 디폴트 값이되,
    상기 퍼널은 상기 치수들의 각각의 상기 디폴트 치수 값에 대한 디폴트 전단 요소 값을 갖고,
    상기 제시 모듈은 상기 제1 선별된 후보 개체를 상기 제시 데이터베이스에 적용하여 상기 치수들의 각각에 대한 상기 디폴트 치수 값 외에 상기 제1 선별된 후보 개체에 의해 식별되는 모든 치수 값에 대응하는 전단 요소 값들을 결정하는, 시스템.
  36. 청구항 34에 있어서, 상기 네트워크 서버 인프라스트럭처는 네트워크를 통해 수신된 하나 이상의 제2 요청에 응답하여, 제2 클라이언트 컴퓨터 시스템에:
    상기 제시 데이터베이스;
    상기 제시 모듈; 및
    상기 모집단에서의 상기 후보 개체들 중 제2 선별된 후보 개체에 의해 식별되는 상기 치수 값들의 집합을 리턴하는, 시스템.
  37. 청구항 34에 있어서, 상기 퍼널의 상기 웹 인터페이스들 중 하나는 웹 페이지, 모바일 어플리케이션, 이-메일, 소셜 미디어 메시지, 소셜 미디어 피드 항목, 및 챗 메시지를 나타내는, 시스템.
  38. 청구항 34에 있어서, 상기 데이터베이스에서의 상기 후보 개체들의 모집단은 미리 결정된 타겟 사용자 거동을 촉진하는 것에 있어서의 그것들의 성공을 위해 테스팅되는 후보 개체들을 포함하고,
    후보 개체들의 예비 풀을 상기 후보 개체 모집단에 기입하는 모집단 초기 설정 모듈;
    라이브 온라인 평가에 의해 상기 후보 개체 모집단에서의 상기 후보 개체들의 각각을 테스팅하는 후보 테스팅 모듈로서, 상기 후보 테스팅 모듈은 라이브 온라인 평가 중인 상기 후보 개체들의 각각에 대한 성능 측정치를 전개시키고, 상기 성능 측정치는 상기 타겟 사용자 거동을 획득하는 것에 있어서의 상기 퍼널의 성공 지표인, 상기 후보 테스팅 모듈;
    상기 후보 개체 모집단으로부터의 하나 이상의 부모 후보 개체의 각각의 집합 및 상기 부모들의 성능 측정치들에 의존하여 형성되는 새로운 후보 개체들을 상기 후보 개체 모집단에 추가하는 번식 모듈; 및
    상기 후보 테스팅 모듈 및 상기 번식 모듈을 반복하는 제어 모듈을 더 포함하되,
    상기 후보 테스팅 모듈은 상기 네트워크 서버 인프라스트럭처에 포함되고 상기 후보 개체 모집단으로부터 상기 요청들에 응답하여 치수 값들이 클라이언트 컴퓨터 시스템들로 리턴될 상기 선별된 후보 개체들을 선별하는, 시스템.
  39. 청구항 38에 있어서, 상기 타겟 사용자 거동은 사용자들에 의한 전환인, 시스템.
  40. 청구항 38에 있어서, 상기 후보 테스팅 모듈에 의해 전개되는 상기 성능 측정치는 상기 라이브 온라인 평가 중인 상기 후보 개체들의 전환율들에 기초하는, 시스템.
  41. 청구항 38에 있어서, 상기 후보 테스팅 모듈에 의해 전개되는 상기 성능 측정치는 상기 라이브 온라인 평가 중인 상기 후보 개체들로부터 수신되는 수익에 기초하는, 시스템.
  42. 청구항 34에 있어서, 상기 네트워크 서버 인프라스트럭처는:
    상기 클라이언트 컴퓨터 시스템으로부터의 요청에 응답하여, 상기 클라이언트 컴퓨터 시스템에 상기 제시 데이터베이스 및 상기 제시 모듈을 리턴하는 콘텐츠 전달 네트워크(CDN, content delivery network); 및
    상기 데이터베이스로부터 상기 제1 선별된 후보 개체를 검색하고, 상기 클라이언트 컴퓨터 시스템으로부터의 요청에 응답하여, 상기 제1 선별된 후보 개체에 의해 식별되는 상기 치수 값들의 집합을 상기 클라이언트 컴퓨터 시스템에 리턴하는 전환 시스템을 포함하는, 방법.
  43. 컴퓨터 구현 웹 인터페이스 생성 및 배치 시스템으로서,
    후보 개체들의 모집단을 갖는 데이터베이스를 저장하는 메모리로서, 상기 후보 개체들의 각각은 하나 이상의 웹 인터페이스의 퍼널을 식별하고, 각 퍼널은 값이 지정될 수 있는 복수의 치수를 가지며, 각 후보 개체는 또한 상기 치수들의 각각에 대한 값을 식별하는, 상기 메모리;
    상기 퍼널의 상기 치수들의 각각의 적어도 하나의 이용가능한 값의 각각에 대한 전단 요소 값을 식별하는 제시 데이터베이스에 액세스가능하게 되는 기계 학습 콘텐츠 전달 네트워크로서, 클라이언트 컴퓨터 시스템으로부터의 요청에 응답하여:
    상기 데이터베이스로부터 상기 모집단에서의 상기 후보 개체들 중 선별된 후보 개체를 검색하도록, 그리고
    상기 클라이언트 컴퓨터 시스템에 상기 선별된 후보 개체의 상기 치수 값들에 의해 표시되는 전단 요소 값들을 갖는 퍼널을 전달하도록 구성되는, 기계 학습 컨텐츠 전달 네트워크를 포함하는, 시스템.
  44. 청구항 43에 있어서, 상기 기계 학습 콘텐츠 전달 네트워크는 상기 클라이언트 컴퓨터 시스템으로부터의 요청에 응답하여 상기 퍼널을 준비하는, 시스템.
  45. 청구항 43에 있어서, 상기 데이터베이스에 액세스할 수 있는 전환 시스템을 더 포함하되,
    상기 기계 학습 콘텐츠 전달 네트워크는 상기 선별된 후보 개체를 검색 시, 상기 전환 시스템으로부터 후보 개체를 요청하도록 더 구성되고,
    상기 전환 시스템은 상기 기계 학습 콘텐츠 전달 네트워크로부터의 요청에 응답하여 상기 선별된 후보 개체를 선별하도록, 그리고 상기 선별된 후보 개체를 상기 기계 학습 콘텐츠 전달 네트워크에 리턴하도록 구성되는, 시스템.
  46. 청구항 45에 있어서, 상기 데이터베이스에서의 상기 후보 개체들의 모집단은 미리 결정된 타겟 사용자 거동을 촉진하는 것에 있어서의 그것들의 성공을 위해 테스팅되는 후보 개체들을 포함하고, 상기 전환 시스템은:
    후보 개체들의 예비 풀을 상기 후보 개체 모집단에 기입하는 모집단 초기 설정 모듈;
    라이브 온라인 평가에 의해 상기 후보 개체 모집단에서의 상기 후보 개체들의 각각을 테스팅하는 후보 테스팅 모듈로서, 상기 후보 테스팅 모듈은 라이브 온라인 평가 중인 상기 후보 개체들의 각각에 대한 성능 측정치를 전개시키고, 상기 성능 측정치는 상기 타겟 사용자 거동을 획득하는 것에 있어서의 상기 퍼널의 성공 지표인, 상기 후보 테스팅 모듈;
    상기 후보 개체 모집단으로부터의 하나 이상의 부모 후보 개체의 각각의 집합 및 상기 부모들의 성능 측정치들에 의존하여 형성되는 새로운 후보 개체들을 상기 후보 개체 모집단에 추가하는 번식 모듈; 및
    상기 후보 테스팅 모듈 및 상기 번식 모듈을 반복하는 제어 모듈을 더 포함하되,
    상기 선별된 후보 개체를 선별 시, 상기 후보 테스팅 모듈은 상기 후보 개체 모집단으로부터 상기 선별된 후보 개체를 선별하는, 시스템.
  47. 컴퓨터 구현 웹 인터페이스 생성 및 배치 방법으로서,
    복수의 후보 개체의 모집단을 갖는 후보 데이터베이스를 저장하는 메모리를 제공하는 단계로서, 상기 후보 개체들의 각각은 하나 이상의 웹 인터페이스의 퍼널을 식별하고, 각 퍼널은 값이 지정될 수 있는 복수의 치수를 가지며, 각 후보 개체는 또한 상기 치수들의 각각에 대한 값을 식별하는, 상기 메모리를 제공하는 단계;
    상기 퍼널의 상기 치수들의 각각의 적어도 하나의 이용가능한 값의 각각에 대한 전단 요소 값을 식별하는 제시 데이터베이스를 제공하는 단계;
    선별된 후보 개체에 의해 식별되는 치수 값들에 대응하는 전단 요소 값들을 결정하기 위해 상기 후보 개체들 중 상기 선별된 후보 개체를 상기 제시 데이터베이스에 적용하는 단계; 및
    결정된 상기 전단 요소 값들을 갖는 퍼널을 사용자에게 제시하는 단계를 포함하는, 방법.
  48. 사용자 정의가능한 웹 인터페이스 퍼널을 위한 컴퓨터 구현 배치 방법으로서, 상기 퍼널은 복수의 치수에 따라 사용자 정의가능하고,
    상기 퍼널의 상기 치수들의 각각의 적어도 하나의 이용가능한 값의 각각에 대한 전단 요소 값을 식별하는 제시 데이터베이스를 제공하는 단계;
    상기 웹 인터페이스 퍼널의 특정 변종에 대해, 상기 퍼널의 상기 치수들의 각각에 대한 값을 퍼널 사용자 정의 지정 메모리에 저장하는 단계; 및
    상기 퍼널 사용자 정의 지정 메모리에 저장된 상기 치수 값들에 대응함에 따라 상기 제시 데이터베이스에 의해 표시되는 전단 요소 값들을 갖는 퍼널을 사용자에게 제시하는 단계를 포함하는, 방법.
  49. 컴퓨터 구현 웹 인터페이스 생성 및 배치 방법으로서,
    복수의 후보 개체의 모집단을 갖는 데이터베이스를 저장하는 메모리를 제공하는 단계로서, 상기 후보 개체들의 각각은 하나 이상의 웹 인터페이스의 퍼널을 식별하고, 각 퍼널은 값이 지정될 수 있는 복수의 치수를 가지며, 각 후보 개체는 또한 상기 치수들의 각각에 대한 값을 식별하는, 상기 메모리를 제공하는 단계;
    네트워크를 통해 수신된 하나 이상의 제1 요청에 응답하여, 제1 클라이언트 컴퓨터 시스템에:
    상기 퍼널의 상기 치수들의 각각의 적어도 하나의 이용가능한 값의 각각에 대한 전단 요소 값을 식별하는 제시 데이터베이스,
    상기 모집단에서의 상기 후보 개체들 중 제1 선별된 후보 개체에 의해 식별되는 상기 치수 값들의 집합, 및
    수신된 상기 치수 값들의 집합에 의존하여, 수신된 상기 치수 값들의 집합에 의해 표시되는 전단 요소 값들을 갖는 퍼널을 사용자에게 제시하는 제시 모듈을 리턴하는 네트워크 서버 인프라스트럭처를 제공하는 단계를 포함하는, 방법.
  50. 컴퓨터 구현 웹 인터페이스 생성 및 배치 방법으로서,
    후보 개체들의 모집단을 갖는 데이터베이스를 저장하는 메모리를 제공하는 단계로서, 상기 후보 개체들의 각각은 하나 이상의 웹 인터페이스의 퍼널을 식별하고, 각 퍼널은 값이 지정될 수 있는 복수의 치수를 가지며, 각 후보 개체는 또한 상기 치수들의 각각에 대한 값을 식별하는, 상기 메모리를 제공하는 단계;
    기계 학습 콘텐츠 전달 네트워크에 액세스가능하게, 상기 퍼널의 상기 치수들의 각각의 적어도 하나의 이용가능한 값의 각각에 대한 전단 요소 값을 식별하는 제시 데이터베이스를 제공하는 단계;
    상기 기계 학습 콘텐츠 전달 네트워크가, 클라이언트 컴퓨터 시스템으로부터의 요청에 응답하여, 상기 모집단에서의 상기 후보 개체들 중 선별된 후보 개체를 상기 데이터베이스로부터 검색하는 단계; 및
    상기 기계 학습 콘텐츠 전달 네트워크가 상기 클라이언트 컴퓨터 시스템에 상기 선별된 후보 개체의 상기 치수 값들에 의해 표시되는 전단 요소 값들을 갖는 퍼널을 전달하는 단계를 포함하는, 방법.
KR1020187022280A 2016-01-05 2017-01-05 기계 학습 기반 웹 인터페이스 생성 및 테스팅 시스템 KR20180131531A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662275074P 2016-01-05 2016-01-05
US201662275058P 2016-01-05 2016-01-05
US62/275,058 2016-01-05
US62/275,074 2016-01-05
PCT/IB2017/050043 WO2017118936A1 (en) 2016-01-05 2017-01-05 Machine learning based webinterface generation and testing system

Publications (1)

Publication Number Publication Date
KR20180131531A true KR20180131531A (ko) 2018-12-10

Family

ID=59226444

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187022280A KR20180131531A (ko) 2016-01-05 2017-01-05 기계 학습 기반 웹 인터페이스 생성 및 테스팅 시스템
KR1020187022282A KR20180126452A (ko) 2016-01-05 2017-01-05 인공 신경망을 이용하는 웹 인터페이스 생성 및 테스팅

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020187022282A KR20180126452A (ko) 2016-01-05 2017-01-05 인공 신경망을 이용하는 웹 인터페이스 생성 및 테스팅

Country Status (11)

Country Link
US (7) US11062196B2 (ko)
EP (2) EP3400517A4 (ko)
JP (3) JP2019505936A (ko)
KR (2) KR20180131531A (ko)
CN (2) CN108780378B (ko)
AU (2) AU2017205232A1 (ko)
CA (3) CA3183941A1 (ko)
IL (1) IL260372B (ko)
RU (2) RU2018128030A (ko)
SG (2) SG11201805794XA (ko)
WO (2) WO2017118937A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102259945B1 (ko) 2021-03-03 2021-06-02 (주)플랜아이 인공지능 기반의 예측을 활용하는 a/b 테스팅 시스템 및 방법

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429616B2 (en) 2010-03-19 2013-04-23 Ebay Inc. Orthogonal experimentation in a computing environment
WO2017118937A1 (en) 2016-01-05 2017-07-13 Sentient Technologies (Barbados) Limited Webinterface generation and testing using artificial neural networks
US11250328B2 (en) 2016-10-26 2022-02-15 Cognizant Technology Solutions U.S. Corporation Cooperative evolution of deep neural network structures
US10585185B2 (en) 2017-02-03 2020-03-10 Rohde & Schwarz Gmbh & Co. Kg Security scanning system with walk-through-gate
US11403532B2 (en) 2017-03-02 2022-08-02 Cognizant Technology Solutions U.S. Corporation Method and system for finding a solution to a provided problem by selecting a winner in evolutionary optimization of a genetic algorithm
US10726196B2 (en) 2017-03-03 2020-07-28 Evolv Technology Solutions, Inc. Autonomous configuration of conversion code to control display and functionality of webpage portions
US11507844B2 (en) 2017-03-07 2022-11-22 Cognizant Technology Solutions U.S. Corporation Asynchronous evaluation strategy for evolution of deep neural networks
US20190043115A1 (en) * 2017-08-02 2019-02-07 Thomas Purves Machine learning tool
US20190095828A1 (en) * 2017-09-27 2019-03-28 Linkedin Corporation Automatic ramp-up of controlled experiments
US11250314B2 (en) 2017-10-27 2022-02-15 Cognizant Technology Solutions U.S. Corporation Beyond shared hierarchies: deep multitask learning through soft layer ordering
US11475305B2 (en) * 2017-12-08 2022-10-18 Advanced Micro Devices, Inc. Activation function functional block for electronic devices
WO2019118299A1 (en) * 2017-12-13 2019-06-20 Sentient Technologies (Barbados) Limited Evolving recurrent networks using genetic programming
CA3085897C (en) 2017-12-13 2023-03-14 Cognizant Technology Solutions U.S. Corporation Evolutionary architectures for evolution of deep neural networks
CN108182243B (zh) * 2017-12-28 2020-07-14 大连理工大学 一种基于Spark的分布式进化算法岛模型并行化方法
US10445762B1 (en) 2018-01-17 2019-10-15 Yaoshiang Ho Online video system, method, and medium for A/B testing of video content
CN108229435B (zh) * 2018-02-01 2021-03-30 北方工业大学 一种用于行人识别的方法
CN110134464A (zh) * 2018-02-02 2019-08-16 富士通株式会社 信息处理方法和装置
US11527308B2 (en) 2018-02-06 2022-12-13 Cognizant Technology Solutions U.S. Corporation Enhanced optimization with composite objectives and novelty-diversity selection
US11574201B2 (en) * 2018-02-06 2023-02-07 Cognizant Technology Solutions U.S. Corporation Enhancing evolutionary optimization in uncertain environments by allocating evaluations via multi-armed bandit algorithms
KR102104295B1 (ko) * 2018-02-20 2020-04-24 주식회사 아이오티큐브 탐색 전략을 자동으로 생성하는 방법 및 자동으로 생성된 탐색 전략을 사용한 콘콜릭 테스팅 수행 방법
CN108256694A (zh) * 2018-03-02 2018-07-06 我知盘中餐(厦门)电子商务有限公司 基于重复遗传算法的模糊时间序列预测系统、方法及装置
CN108460726B (zh) * 2018-03-26 2020-08-11 厦门大学 一种基于增强递归残差网络的磁共振图像超分辨重建方法
AU2018202382A1 (en) 2018-04-04 2019-10-24 ADEVI lP HOLDING COMPANY PTY LTD Methods and systems for resolving user interface features, and related applications
CN108763055B (zh) * 2018-04-19 2020-08-25 北京航空航天大学 一种基于表观遗传的测试用例约束控制技术的构建方法
US10614268B1 (en) * 2018-04-24 2020-04-07 InVisionApp Inc. Auto-complete design for content-creating applications
US11477166B2 (en) 2018-05-29 2022-10-18 Cognizant Technology Solutions U.S. Corporation Systems and methods for providing secure evolution as a service
CN108875925A (zh) * 2018-06-28 2018-11-23 中国科学院计算技术研究所 一种针对卷积神经网络处理器的控制方法及装置
US11093503B2 (en) 2018-07-05 2021-08-17 Cognizant Technology Solutions U.S. Corporation Systems and methods for providing data-driven evolution of arbitrary data structures
US11755979B2 (en) 2018-08-17 2023-09-12 Evolv Technology Solutions, Inc. Method and system for finding a solution to a provided problem using family tree based priors in Bayesian calculations in evolution based optimization
US11734375B2 (en) * 2018-09-27 2023-08-22 Google Llc Automatic navigation of interactive web documents
US10915599B2 (en) * 2018-11-15 2021-02-09 Elementor Ltd. System and method for producing transferable, modular web pages
CN111275472A (zh) * 2018-12-04 2020-06-12 北京嘀嘀无限科技发展有限公司 模型训练方法、用户识别方法、装置及电子设备
US11086963B2 (en) * 2018-12-05 2021-08-10 Ebay Inc. Adaptive data platforms
CN110018869B (zh) * 2019-02-20 2021-02-05 创新先进技术有限公司 通过强化学习向用户展示页面的方法及装置
US11314825B2 (en) * 2019-02-21 2022-04-26 Sitecore Corporation A/S Machine-learning based personalization
US11481639B2 (en) 2019-02-26 2022-10-25 Cognizant Technology Solutions U.S. Corporation Enhanced optimization with composite objectives and novelty pulsation
CA3129731A1 (en) 2019-03-13 2020-09-17 Elliot Meyerson System and method for implementing modular universal reparameterization for deep multi-task learning across diverse domains
EP3948692A4 (en) 2019-03-27 2023-03-29 Cognizant Technology Solutions U.S. Corporation PROCESS AND SYSTEM CONTAINING A SCALABLE SUBSTITUTE-ASSISTED PRESCRIPTIONS OPTIMIZATION ENGINE
US11727265B2 (en) * 2019-06-27 2023-08-15 Intel Corporation Methods and apparatus to provide machine programmed creative support to a user
CN112328465A (zh) * 2019-08-05 2021-02-05 四川大学 一种基于深度学习与遗传算法的浏览器样本集获取方法
US10853442B1 (en) * 2019-08-12 2020-12-01 Capital One Services, Llc Techniques for selecting a user experience design
CN110443321B (zh) * 2019-08-14 2023-06-02 北京百度网讯科技有限公司 模型结构调整方法及装置
CN114631294B (zh) * 2019-10-30 2024-02-23 利维帕尔森有限公司 从电子邮件环境到消息收发环境的消息重新路由
US10783064B1 (en) 2019-11-27 2020-09-22 Capital One Services, Llc Unsupervised integration test builder
CN111566684B (zh) * 2020-04-13 2022-05-27 支付宝(杭州)信息技术有限公司 用于优化广告的用户分组的方法和系统
CN111651346B (zh) * 2020-04-27 2022-11-18 深圳平安医疗健康科技服务有限公司 前端组件的测试方法、装置、存储介质及计算机设备
US11790030B2 (en) * 2020-06-04 2023-10-17 Promoted.ai, Inc. Creating an effective product using an attribute solver
US11775841B2 (en) 2020-06-15 2023-10-03 Cognizant Technology Solutions U.S. Corporation Process and system including explainable prescriptions through surrogate-assisted evolution
CN112039885B (zh) * 2020-08-31 2022-09-02 绿盟科技集团股份有限公司 一种网站风险评估方法及装置
CN112199285B (zh) * 2020-10-12 2023-08-01 中国农业银行股份有限公司 一种测试案例优选方法、装置及电子设备
US11200151B1 (en) 2021-03-12 2021-12-14 Sas Institute Inc. Graphical user interface and debugger system for selecting and testing alterations to source code for software applications
US20240070715A1 (en) * 2022-08-26 2024-02-29 Maplebear Inc. (Dba Instacart) Using a genetic algorithm to identify a balanced assignment of online system users to a control group and a test group for performing a test
US11966449B2 (en) 2022-08-26 2024-04-23 Capital One Services, Llc Systems and methods for generating custom content

Family Cites Families (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3775341A (en) 1971-08-02 1973-11-27 Ppg Industries Inc Liquid dialkyl peroxydicarbonate composition
US5343554A (en) 1988-05-20 1994-08-30 John R. Koza Non-linear genetic process for data encoding and for solving problems using automatically defined functions
US4935877A (en) 1988-05-20 1990-06-19 Koza John R Non-linear genetic algorithms for solving problems
WO1991014990A1 (en) 1990-03-28 1991-10-03 Koza John R Non-linear genetic algorithms for solving problems by finding a fit composition of functions
US5568590A (en) 1993-12-17 1996-10-22 Xaos Tools Image processing using genetic mutation of neural network parameters
GB9517775D0 (en) 1995-08-31 1995-11-01 Int Computers Ltd Computer system using genetic optimization techniques
US5867397A (en) 1996-02-20 1999-02-02 John R. Koza Method and apparatus for automated design of complex structures using genetic programming
JP3254393B2 (ja) 1996-11-19 2002-02-04 三菱電機株式会社 遺伝的アルゴリズムマシン及び遺伝的アルゴリズムマシンの製造方法及び遺伝的アルゴリズムの実行方法
US6088690A (en) 1997-06-27 2000-07-11 Microsoft Method and apparatus for adaptively solving sequential problems in a target system utilizing evolutionary computation techniques
CA2337798A1 (en) 1998-07-06 2000-01-13 Bios Group Lp A method for performing market segmentation and for predicting consumer demand
KR20010052410A (ko) * 1999-03-26 2001-06-25 요트.게.아. 롤페즈 진화적 알고리즘을 통한 진화 광고
US6523016B1 (en) * 1999-04-12 2003-02-18 George Mason University Learnable non-darwinian evolution
US8805715B1 (en) * 1999-12-29 2014-08-12 Carl Meyer Method for improving the performance of messages including internet splash pages
US7177851B2 (en) 2000-11-10 2007-02-13 Affinnova, Inc. Method and apparatus for dynamic, real-time market segmentation
US6826550B2 (en) 2000-12-15 2004-11-30 International Business Machines Corporation Method, system, and program for converting application program code to executable code using neural networks based on characteristics of the inputs
US20020082077A1 (en) 2000-12-26 2002-06-27 Johnson Douglas R. Interactive video game system with characters that evolve physical and cognitive traits
US7340676B2 (en) 2000-12-29 2008-03-04 Eastman Kodak Company System and method for automatic layout of images in digital albums
US7047169B2 (en) * 2001-01-18 2006-05-16 The Board Of Trustees Of The University Of Illinois Method for optimizing a solution set
US6957200B2 (en) * 2001-04-06 2005-10-18 Honeywell International, Inc. Genotic algorithm optimization method and network
US7444309B2 (en) 2001-10-31 2008-10-28 Icosystem Corporation Method and system for implementing evolutionary algorithms
US7216295B2 (en) 2001-12-20 2007-05-08 Canon Kabushiki Kaisha Method of automatic production of image presentations
US7353184B2 (en) 2002-03-07 2008-04-01 Hewlett-Packard Development Company, L.P. Customer-side market segmentation
US20030191731A1 (en) 2002-04-04 2003-10-09 Daleen Technologies, Inc. Method and system for rule based validation prior to committing data to a database system
US7171617B2 (en) 2002-07-30 2007-01-30 Xerox Corporation System and method for fitness evaluation for optimization in document assembly
US20040024888A1 (en) * 2002-08-01 2004-02-05 Micron Technology, Inc. Systems and methods for managing web content and behavior rules engine
EP1584004A4 (en) 2003-01-17 2007-10-24 Francisco J Ayala SYSTEM AND METHOD FOR DEVELOPING ARTIFICIAL INTELLIGENCE
US7043463B2 (en) 2003-04-04 2006-05-09 Icosystem Corporation Methods and systems for interactive evolutionary computing (IEC)
EP1649346A2 (en) 2003-08-01 2006-04-26 Icosystem Corporation Methods and systems for applying genetic operators to determine system conditions
US7356518B2 (en) 2003-08-27 2008-04-08 Icosystem Corporation Methods and systems for multi-participant interactive evolutionary computing
US7035740B2 (en) * 2004-03-24 2006-04-25 Illumina, Inc. Artificial intelligence and global normalization methods for genotyping
US7707220B2 (en) 2004-07-06 2010-04-27 Icosystem Corporation Methods and apparatus for interactive searching techniques
US20060103667A1 (en) 2004-10-28 2006-05-18 Universal-Ad. Ltd. Method, system and computer readable code for automatic reize of product oriented advertisements
US20060225003A1 (en) * 2005-04-05 2006-10-05 The Regents Of The University Of California Engineering design system using human interactive evaluation
US7502763B2 (en) 2005-07-29 2009-03-10 The Florida International University Board Of Trustees Artificial neural network design and evaluation tool
WO2007035848A2 (en) * 2005-09-21 2007-03-29 Icosystem Corporation System and method for aiding product design and quantifying acceptance
US20070094072A1 (en) * 2005-10-26 2007-04-26 Etica Entertainment, Inc., Dba Position Research Apparatus and method of identifying critical factors in a pay-for-performance advertising network
US8914301B2 (en) * 2005-10-28 2014-12-16 Joyce A. Book Method and apparatus for dynamic ad creation
US7617164B2 (en) 2006-03-17 2009-11-10 Microsoft Corporation Efficiency of training for ranking systems based on pairwise training with aggregated gradients
JP2009541017A (ja) * 2006-06-26 2009-11-26 アイコシステム コーポレーション ビデオゲームにおいてアバター及び他の生物的又は無生物的アイテムを対話的にカスタマイズする方法及びシステム
US20070300185A1 (en) * 2006-06-27 2007-12-27 Microsoft Corporation Activity-centric adaptive user interface
US7613692B2 (en) * 2006-07-25 2009-11-03 Microsoft Corporation Persona-based application personalization
DE102006046319B4 (de) * 2006-09-29 2008-07-03 Siemens Ag Verfahren zum Auffinden und zur Anzeige von Informationen in einem Informationssystem einer medizinischen Einrichtung
US9208251B2 (en) * 2007-01-19 2015-12-08 Linkedin Corporation Computer-based evaluation tool for selecting personalized content for users
US8898072B2 (en) 2007-04-20 2014-11-25 Hubpages, Inc. Optimizing electronic display of advertising content
US8775603B2 (en) 2007-05-04 2014-07-08 Sitespect, Inc. Method and system for testing variations of website content
US8321359B2 (en) * 2007-07-24 2012-11-27 Hiconversion, Inc. Method and apparatus for real-time website optimization
US7917859B1 (en) 2007-09-21 2011-03-29 Adobe Systems Incorporated Dynamic user interface elements
US20090083268A1 (en) * 2007-09-25 2009-03-26 International Business Machines Corporation Managing variants of artifacts in a software process
AU2008323758B2 (en) 2007-11-08 2012-11-29 Sentient Technologies (Barbados) Limited Distributed network for performing complex algorithms
US20090259534A1 (en) 2008-04-11 2009-10-15 Microsoft Corporation Internal business arbitrage
US9870629B2 (en) 2008-06-20 2018-01-16 New Bis Safe Luxco S.À R.L Methods, apparatus and systems for data visualization and related applications
US9058695B2 (en) 2008-06-20 2015-06-16 New Bis Safe Luxco S.A R.L Method of graphically representing a tree structure
US20090327913A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Using web revisitation patterns to support web interaction
KR100909232B1 (ko) * 2008-07-10 2009-07-23 주식회사 로직플랜트 웹 페이지 인터페이스 제공 방법 및 시스템
US10169221B2 (en) * 2008-07-22 2019-01-01 Accelerate Group Limited Method and system for web-site testing
US9002729B2 (en) 2008-10-21 2015-04-07 Accenture Global Services Limited System and method for determining sets of online advertisement treatments using confidences
US20100169234A1 (en) 2009-01-01 2010-07-01 Wizbill Ltd Method for Capturing the Essence of Product and Service Offers of Service Providers
US9378505B2 (en) * 2010-07-26 2016-06-28 Revguard, Llc Automated multivariate testing technique for optimized customer outcome
US20140108143A1 (en) * 2010-08-05 2014-04-17 Solariat Inc. Social content distribution network
US9104978B2 (en) 2010-10-07 2015-08-11 Microsoft Technology Licensing, Llc System and method for parameter evaluation
US8775341B1 (en) * 2010-10-26 2014-07-08 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
AU2011325860B2 (en) * 2010-11-02 2014-09-04 Survey Engine Pty Ltd Choice modelling system and method
US8489526B2 (en) * 2010-11-24 2013-07-16 International Business Machines Corporation Controlling quarantining and biasing in cataclysms for optimization simulations
US8839093B1 (en) * 2011-01-12 2014-09-16 Optimizely, Inc. Systems and methods for website optimization
US9400774B1 (en) * 2011-01-12 2016-07-26 Optimizely, Inc. Multi-page website optimization
WO2012122419A1 (en) 2011-03-08 2012-09-13 Affinnova, Inc. System and method for concept development
US8880450B2 (en) 2011-05-26 2014-11-04 World Heart Corporation Systems and methods for predicting characteristics of an artificial heart using an artificial neural network
US20130024290A1 (en) 2011-06-17 2013-01-24 Motiva79 Llc Method and apparatus for managing sales promotions and generating customer leads
US9002759B2 (en) 2011-07-15 2015-04-07 Sentient Technologies (Barbados) Limited Data mining technique with maintenance of fitness history
US9117176B2 (en) * 2011-09-21 2015-08-25 Qualcomm Technologies Inc. Round-trip engineering apparatus and methods for neural networks
US8862521B2 (en) 2011-10-13 2014-10-14 Aol Inc. Systems and methods for determining whether to publish an advertisement on a web page associated with a web page article or to exclude advertisements from publication on the web page associated with the web page article based on the comparison of a first numeric likelihood to a first set of threshold values
US8924516B2 (en) * 2012-01-06 2014-12-30 Apple Inc. Dynamic construction of modular invitational content
US9311383B1 (en) 2012-01-13 2016-04-12 The Nielsen Company (Us), Llc Optimal solution identification system and method
US20130246435A1 (en) * 2012-03-14 2013-09-19 Microsoft Corporation Framework for document knowledge extraction
US11328325B2 (en) 2012-03-23 2022-05-10 Secureads, Inc. Method and/or system for user authentication with targeted electronic advertising content through personal communication devices
US9384444B2 (en) * 2012-07-12 2016-07-05 Dell Products L.P. Web analytics neural network modeling prediction
US20190205020A1 (en) * 2012-08-08 2019-07-04 Neal Fairbanks Adaptive user interface system
US9461876B2 (en) 2012-08-29 2016-10-04 Loci System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction
US20140067556A1 (en) * 2012-08-30 2014-03-06 Sharon Burt Methods and systems for establishing a mobile-optimized web presence and a mobile-optimized marketing campaign
EP2704037A3 (en) * 2012-08-31 2014-07-09 Sitecore A/S A method for generating or updating an interactive webpage
US20140067514A1 (en) 2012-09-04 2014-03-06 Mobile Spinach, Inc. Merchant acquisition and advertisement bundling with offers and lead generation system and method
US9405427B2 (en) 2012-09-12 2016-08-02 Facebook, Inc. Adaptive user interface using machine learning model
US9317392B2 (en) * 2012-10-10 2016-04-19 Webtrends, Inc. Methods and automated systems for testing, optimization, and analysis that preserve continuity in identities and status of users who access remote information from different contexts
US9633363B2 (en) 2012-11-08 2017-04-25 Thnx, Llc System and method of incentivized advertising
US20140236875A1 (en) 2012-11-15 2014-08-21 Purepredictive, Inc. Machine learning for real-time adaptive website interaction
CN103853656B (zh) 2012-11-30 2016-08-10 阿里巴巴集团控股有限公司 网页测试方法和装置
CN105359166B (zh) 2013-02-08 2018-11-09 埃莫蒂安特公司 收集用于表情识别的机器学习训练数据
US9785995B2 (en) 2013-03-15 2017-10-10 The Nielsen Company (Us), Llc Method and apparatus for interactive evolutionary algorithms with respondent directed breeding
WO2014143729A1 (en) 2013-03-15 2014-09-18 Affinnova, Inc. Method and apparatus for interactive evolutionary optimization of concepts
US8775332B1 (en) 2013-06-13 2014-07-08 InsideSales.com, Inc. Adaptive user interfaces
US9082084B2 (en) 2013-06-28 2015-07-14 Linkedin Corporation Facilitating machine learning in an online social network
CN104281611B (zh) * 2013-07-08 2018-04-03 阿里巴巴集团控股有限公司 网站测试系统中的用户流量分配方法及装置
US20150019173A1 (en) 2013-07-09 2015-01-15 International Business Machines Corporation Multiobjective optimization through user interactive navigation in a design space
US20150039416A1 (en) * 2013-08-05 2015-02-05 Google Inc Systems and methods of optimizing a content campaign
US20150066645A1 (en) * 2013-09-05 2015-03-05 International Business Machines Corporation Enhancing Marketing Funnel Conversion Through Intelligent Social Tagging and Attribution
US10228913B2 (en) * 2013-09-10 2019-03-12 Oracle International Corporation Functional rule and component storage
US20150095756A1 (en) 2013-10-01 2015-04-02 Zijad F. Aganovic Method and apparatus for multi-loop, real-time website optimization
CN103685308B (zh) * 2013-12-25 2017-04-26 北京奇虎科技有限公司 一种钓鱼网页的检测方法及系统、客户端、服务器
US9928526B2 (en) 2013-12-26 2018-03-27 Oracle America, Inc. Methods and systems that predict future actions from instrumentation-generated events
US9911143B2 (en) * 2013-12-26 2018-03-06 Oracle America, Inc. Methods and systems that categorize and summarize instrumentation-generated events
WO2015103122A2 (en) * 2013-12-31 2015-07-09 Clicktale Ltd. A method and system for tracking and gathering multivariate testing data
US9477648B1 (en) * 2014-02-28 2016-10-25 Intuit Inc. Optimized web application user experience
CN103823876A (zh) * 2014-02-28 2014-05-28 上海斐讯数据通信技术有限公司 一种用于网关设备的网页交换界面实现系统及其方法
JP6193799B2 (ja) 2014-04-22 2017-09-06 日本電信電話株式会社 ウェブ要素マッチング装置とマッチング確率分布生成装置と、それらの方法とプログラム
US9792205B2 (en) * 2014-06-13 2017-10-17 Ebay Inc. A/B testing for mobile applications
US20160259840A1 (en) * 2014-10-16 2016-09-08 Yahoo! Inc. Personalizing user interface (ui) elements
US10187388B2 (en) * 2015-03-12 2019-01-22 At&T Intellectual Property I, L.P. System and method for managing electronic interactions based on defined relationships
CN104734918A (zh) 2015-03-25 2015-06-24 浪潮集团有限公司 一种轻量级网页性能测试架构和方法
US20160321716A1 (en) 2015-04-30 2016-11-03 Wal-Mart Stores, Inc. System, method, and non-transitory computer-readable storage media for enhancing online product search through multiobjective optimization of product search ranking functions
CA2987696A1 (en) * 2015-06-07 2016-12-15 Wix.Com Ltd System and method for the generation of an adaptive user interface in a website building system
CN104950906A (zh) * 2015-06-15 2015-09-30 中国人民解放军国防科学技术大学 基于移动通信网络的无人机远程测控系统及方法
US10262068B2 (en) * 2015-08-31 2019-04-16 Walmart Apollo, Llc System, method, and non-transitory computer-readable storage media for displaying an optimal arrangement of facets and facet values for a search query on a webpage
WO2017063092A1 (en) 2015-10-17 2017-04-20 Rubikloud Technologies Inc. System and method for computational analysis of the potential relevance of digital data items to key performance indicators
US10650417B2 (en) * 2015-10-29 2020-05-12 International Business Machines Corporation Social media messaging management for brand integrity
WO2017118937A1 (en) 2016-01-05 2017-07-13 Sentient Technologies (Barbados) Limited Webinterface generation and testing using artificial neural networks
US10503529B2 (en) * 2016-11-22 2019-12-10 Sap Se Localized and personalized application logic
US10255173B2 (en) * 2016-12-27 2019-04-09 Optimizely, Inc. Experimentation in internet-connected applications and devices
US20180203826A1 (en) * 2017-01-18 2018-07-19 Go Daddy Operating Company, LLC System and method for generating web page layouts
US11475372B2 (en) * 2018-03-26 2022-10-18 H2O.Ai Inc. Evolved machine learning models

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102259945B1 (ko) 2021-03-03 2021-06-02 (주)플랜아이 인공지능 기반의 예측을 활용하는 a/b 테스팅 시스템 및 방법

Also Published As

Publication number Publication date
CN108780518A (zh) 2018-11-09
AU2017205231A1 (en) 2018-08-09
US20170193367A1 (en) 2017-07-06
WO2017118936A1 (en) 2017-07-13
US20170192638A1 (en) 2017-07-06
RU2018128029A (ru) 2020-02-06
US11386318B2 (en) 2022-07-12
US20210334625A1 (en) 2021-10-28
JP2022058399A (ja) 2022-04-12
CA3010567A1 (en) 2017-07-13
EP3400517A4 (en) 2019-09-04
CA3183941A1 (en) 2017-07-13
US11803730B2 (en) 2023-10-31
US20170193366A1 (en) 2017-07-06
JP7394106B2 (ja) 2023-12-07
IL260372B (en) 2021-04-29
US20220351016A1 (en) 2022-11-03
CA3010803A1 (en) 2017-07-13
EP3400557A4 (en) 2019-09-04
CA3010803C (en) 2023-01-10
KR20180126452A (ko) 2018-11-27
EP3400517A1 (en) 2018-11-14
US20210004659A1 (en) 2021-01-07
US20170193403A1 (en) 2017-07-06
AU2017205231B2 (en) 2022-04-28
WO2017118937A1 (en) 2017-07-13
US10438111B2 (en) 2019-10-08
CN108780378B (zh) 2021-07-02
JP7000341B2 (ja) 2022-01-19
US11062196B2 (en) 2021-07-13
CN108780378A (zh) 2018-11-09
EP3400557A1 (en) 2018-11-14
SG11201805794XA (en) 2018-08-30
US10783429B2 (en) 2020-09-22
JP2019505936A (ja) 2019-02-28
JP2019504428A (ja) 2019-02-14
AU2017205232A1 (en) 2018-08-09
RU2018128030A (ru) 2020-02-06
SG11201805797SA (en) 2018-08-30

Similar Documents

Publication Publication Date Title
JP7394106B2 (ja) 機械学習に基づくウェブインタフェース生成及びテストシステム
US11574201B2 (en) Enhancing evolutionary optimization in uncertain environments by allocating evaluations via multi-armed bandit algorithms
US11403532B2 (en) Method and system for finding a solution to a provided problem by selecting a winner in evolutionary optimization of a genetic algorithm
CN104781813B (zh) 用于结构化搜索查询的语法模型
US20210065245A1 (en) Using machine learning to discern relationships between individuals from digital transactional data
CN105009117B (zh) 在线社交网络中的模糊结构化搜索查询
Bateman et al. The The Supervised Learning Workshop: A New, Interactive Approach to Understanding Supervised Learning Algorithms
US11755979B2 (en) Method and system for finding a solution to a provided problem using family tree based priors in Bayesian calculations in evolution based optimization
Persson SCALABILITY OF JAVASCRIPTLIBRARIES FOR DATAVISUALIZATION
Guo et al. Reinforcement Learning Recommendation Algorithm Based on Label Value Distribution
Coelho Methodologies and Implementations to Enable General Participation in Visualization
Noori Curated Real-Time Visualisation of Twitter Data
Maragoudakis et al. A novel approach for visual data mining in Twitter micro-blogging platform
Prodi et al. Social network analysis software