IP Library Patent Application 14693273
Patent Application
App. No. 14/693,273

SYSTEM AND METHOD FOR REAL TIME SELECTION OF AN OPTIMAL OFFER OUT OF SEVERAL COMPETITIVE OFFERS BASED ON CONTEXT

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
14/693,273
Abstract

A real-time selection system and method for selecting an optimal offer out of at least two competitive offers, set towards at least one incoming request. The system includes a processor and a database. The database may be one or more of an offers database, an impressions database, a clicks database, a click through database, a conversions database, a requests database, a users database, a biddings database, and hash table features.

Claims (110)

1 . A method for real-time selection of optimal-offer out of at least two offers O i,i=1 . . . N≧2 , set towards at least one incoming request; said method comprising real-time steps of:

a. providing a processor [ 110 ], configured for controlling operation of said selection;

b. parsing said at least one request to a request-context-vector;

c. calculating at least two estimated-CTRs ECTR i , each for different offer of said at least two of offers O i , based on said request-context-vector and at least two first-weight-vectors W 1 i each configured for different offer of said at least two offers O i ;

d. calculating at least two estimated-CRs ECR i each for different offer of said at least two of offers O i , based on said request-context-vector and at least two second-weight-vectors W 2 i each configured for different offer of said at least two offers O i ;

e. calculating at least two scores S i each for different offer of said at least two offers O i , based on said at least two estimated-CTRs ECTR i and said at least two estimated-CRs ECR i ;

f. calculating a choosing-probability P i for each offer of said at least two offers O i , based on said score S i ; and,

g. selecting said optimal-offer;

wherein said steps of calculating at least two estimated-CTRs and calculating at least two estimated-CRs are based on at least one previously selected said optimal-offer.

2 . The method according to claim 1 , wherein said step of selecting said optimal-offer is according to at least one characteristic selected from a group consisting of: highest said score S i , highest said estimated-CTR ECTR i , highest said estimated-CRs ECR i , highest said choosing probability P i , lowest said choosing probability P i , random of said choosing probability P i and any combination thereof.

3 . The method according to claim 1 , wherein each offer of said at least two offers O i is characterized by an offer-feature-vector OFV i comprising at least one characteristic selected from a group consisting of: PayIn PI i , countries, categories, optional-banner-size, optional-banner-location, optional-banner-orientation, optional-exposure-period, optional-exposure-time, optional-ages, optional-gender, optional-education, optional-user's-income, optional-user's-profession, estimated-CTR, estimated-CR and at least one banner.

4 . The method according to claim 3 , additionally comprising at least one of the following real time steps:

a. calculating bidding-price BP for the selected said optimal-offer, based on at least one characteristic selected from a group consisting of: said PayIn of said optimal-offer, said estimated-CTRs of said optimal-offer, said estimated-CRs of said optimal-offer and any combination thereof;

b. calculating at least two bidding-prices BP i each for different offer of said at least two offers O i , based on at least one characteristic selected from a group consisting of: said PayIn PI i , said estimated-CTRs ECTR i , said estimated-CRs ECR i and any combination thereof;

c. calculating at least two bidding-prices BP i each for different offer of said at least two offers O i , based on at least one characteristic selected from a group consisting of: said PayIn PI i , said estimated-CTRs ECTR i , said estimated-CRs ECR i and any combination thereof; further wherein filtering out at least one offer of said at least two offers O i , incase said bidding-price of said offer is lower than a predetermined price-floor;

d. calculating at least two bidding-prices BP i each for different offer of said at least two offers O i , based on at least one characteristic selected from a group consisting of: said PayIn PI i , said estimated-CTRs ECTR i , said estimated-CRs ECR i and any combination thereof; further wherein filtering out at least one offer of said at least two offers O i , incase said bidding-price of said offer is lower than a predetermined price-floor; further wherein selecting said optimal-offer is according to at least one characteristic selected from a group consisting of: highest said score S i , highest said estimated-CTR ECTR i , highest said estimated-CRs ECR i , lowest said bidding-price BP i , highest bidding-price BP i , maximum revenue and any combination thereof;

e. calculating at least two bidding-prices BP i each for different offer of said at least two offers O i , based on at least one characteristic selected from a group consisting of: said PayIn PI i , said estimated-CTRs ECTR i , said estimated-CRs ECR i and any combination thereof; further wherein selecting said optimal-offer is according to at least one characteristic selected from a group consisting of: highest said score S i , highest said estimated-CTR ECTR i , highest said estimated-CRs ECR i , lowest said bidding-price BP i , highest bidding-price BP i , maximum revenue and any combination thereof; and,

f. any combination thereof.

5 . The method according to claim 3 , further comprising at least of the following steps:

a. selecting optimal-banner from said at least one banner, for said optimal-offer;

b. selecting an optimal-banner out of said at least one banner, based on said at least one B-database selected from a group consisting of: said clicks-database [ 230 ], said CTR-database [ 240 ] and said conversions-database [ 250 ]; and,

c. any combination thereof.

6 . The method according to claim 1 , additionally comprising at least one of the following offline steps:

a. of providing said method with at least one database selected from a group consisting of: offers-database [ 210 ], impressions-database [ 220 ], clicks-database [ 230 ], CTR-database [ 240 ], conversions-database [ 250 ], requests-database [ 260 ], users-database [ 270 ], biddings-database [ 280 ], and hash-table features [ 290 ];

b. providing said method with at least one database selected from a group consisting of: offers-database [ 210 ], impressions-database [ 220 ], clicks-database [ 230 ], CTR-database [ 240 ], conversions-database [ 250 ], requests-database [ 260 ], users-database [ 270 ], biddings-database [ 280 ], and hash-table features [ 290 ]; further wherein an offline or near real-time step of calculating said at least two first-weight-vectors W 1 i , calculated based on at least one W 1 -database selected from a group consisting of: said offers-database [ 210 ], said impressions-database [ 220 ], said clicks-database [ 230 ], said CTR-database [ 240 ], said conversions-database [ 250 ], said requests-database [ 260 ], said users-database [ 270 ], said biddings-database [ 280 ], hash table features [ 290 ], and any combination thereof;

c. providing said method with at least one database selected from a group consisting of: offers-database [ 210 ], impressions-database [ 220 ], clicks-database [ 230 ], CTR-database [ 240 ], conversions-database [ 250 ], requests-database [ 260 ], users-database [ 270 ], biddings-database [ 280 ], and hash-table features [ 290 ]; further wherein an offline or near real-time step of calculating said at least two first-weight-vectors W 1 i , calculated based on at least one W 1 -database selected from a group consisting of: said offers-database [ 210 ], said impressions-database [ 220 ], said clicks-database [ 230 ], said CTR-database [ 240 ], said conversions-database [ 250 ], said requests-database [ 260 ], said users-database [ 270 ], said biddings-database [ 280 ], hash table features [ 290 ], and any combination thereof; further wherein aggregating said W 1 -database according to a learning rate η 1 , periodically aggregating said W 1 -database per a time-period selected from a group consisting of: millisecond, second, minute, hour, day, week, month, year and any combination thereof, or both;

d. providing said method with at least one database selected from a group consisting of: offers-database [ 210 ], impressions-database [ 220 ], clicks-database [ 230 ], CTR-database [ 240 ], conversions-database [ 250 ], requests-database [ 260 ], users-database [ 270 ], biddings-database [ 280 ], and hash-table features [ 290 ]; further wherein a real-time step of calculating said at least two second-weight-vectors W 2 i , calculated based on at least one W 2 -database selected from a group consisting of: said offers-database [ 210 ], said impressions-database [ 220 ], said clicks-database [ 230 ], said CTR-database [ 240 ], said conversions-database [ 250 ], said requests-database [ 260 ], said users-database [ 270 ], said biddings-database [ 280 ], hash table features [ 290 ], and any combination thereof;

e. providing said method with at least one database selected from a group consisting of: offers-database [ 210 ], impressions-database [ 220 ], clicks-database [ 230 ], CTR-database [ 240 ], conversions-database [ 250 ], requests-database [ 260 ], users-database [ 270 ], biddings-database [ 280 ], and hash-table features [ 290 ]; further wherein a real-time step of calculating said at least two second-weight-vectors W 2 i , calculated based on at least one W 2 -database selected from a group consisting of: said offers-database [ 210 ], said impressions-database [ 220 ], said clicks-database [ 230 ], said CTR-database [ 240 ], said conversions-database [ 250 ], said requests-database [ 260 ], said users-database [ 270 ], said biddings-database [ 280 ], hash table features [ 290 ], and any combination thereof; further wherein at least one step of aggregating said W 2 database selected from a group comprising: aggregating said W 2 -database, according to a learning rate η 2 ; and, periodically aggregating said W 2 -database per time-period selected from a group consisting of: millisecond, second, minute, hour, day, week, month, year and any combination thereof, or both; and,

f. any combination thereof.

7 . The method according to claim 1 , further comprising at least one real-time step of the following:

a. receiving at least one said request;

b. submitting said optimal-offer towards said at least one incoming request;

c. indexing, by means of filtering out, at least one offer of said at least two offers O i , according to restrictions set by said request-feature-vector; and,

d. any combination thereof.

8 . The method according to claim 1 , wherein at least one of the following is held true:

a. said step of using methods of logistic regression to calculate said at least two estimated-CTRs ECTR i , said at least two estimated-CRs ECR i , or both;

b. said request-context-vector is selected from a group comprising: a sparse vector, and a context vector;

c. said first-weight-vector W 1 i and/or said second-weight-vector W 2 i is a sparse vector;

d. said request-context-vector comprising at least one characteristic selected from a group consisting of: network data, geographical-performance, ad-latency, requested-price, initial-bidding-price, platform (operating system), carrier, country, banner-size, banner-location, banner-orientation, target-age, target-gender, target-intellect, target-income target-profession, exposure-period and exposure-time, price-floor, and any combination thereof; and,

e. any combination thereof.

9 . The method according to claim 1 , additionally comprising at least one of the following steps:

a. parsing said at least one request according to a features' Hash-table;

b. configuring said real-time steps a-e for big data scale;

c. displaying the selected said optimal-offer; and,

d. any combination thereof.

10 . The method according to claim 1 , additionally comprising the steps of:

a. an offline step of providing said method with at least one database selected from a group consisting of: offers-database [ 210 ], impressions-database [ 220 ], clicks-database [ 230 ], CTR-database [ 240 ], conversions-database [ 250 ], requests-database [ 260 ], users-database [ 270 ], biddings-database [ 280 ], and hash-table features [ 290 ]; and,

b. further comprising at least one real-time step selected from a group consisting of:

i. collecting said offers-database [ 210 ];

ii. collecting impressions-database [ 220 ] of said at least one selected optimal offer;

iii. collecting said clicks-database [ 230 ] of said at least one selected optimal offer;

iv. collecting said CTR-database [ 240 ];

v. collecting said conversions-database [ 250 ] of said at least one selected optimal offer;

vi. collecting said requests-database [ 260 ];

vii. collecting said users-database [ 270 ]; and,

viii. collecting said biddings-database [ 280 ].

11 . The method according to claim 1 , additionally comprising at least one of the following steps:

a. identifying at least one user designated for said request;

b. identifying at least one user designated for said request; further wherein characterizing at least one user by a profiling-contextual-vector comprising at least one characteristic selected from a group consisting of: location, gender, income, education, profession, age, favorite categories, former impressions, former clicks, former conversions, favorite categories, restricted categories, and any combination thereof;

c. identifying at least one user designated for said request; further wherein characterizing at least one user by a profiling-contextual-vector comprising at least one characteristic selected from a group consisting of: location, gender, income, education, profession, age, favorite categories, former impressions, former clicks, former conversions, favorite categories, restricted categories, and any combination thereof; further wherein real-time step of indexing, by means of filtering out, at least one offer of said at least two offers O i , according to at least on characteristic selected from a group consisting of: restrictions set by said request-feature-vector, said user's former impressions, said user's former clicks, said user's former conversions, said user's categories restrictions and any combination thereof;

d. identifying at least one user designated for said request; further wherein characterizing at least one user by a profiling-contextual-vector comprising at least one characteristic selected from a group consisting of: location, gender, income, education, profession, age, favorite categories, former impressions, former clicks, former conversions, favorite categories, restricted categories, and any combination thereof; further wherein utilizing at least one said user's profiling-contextual-vector to calculate: said at least two estimated-CTRs ECTR i , at least two said estimated-CRs ECR i, or both;

e. identifying at least one user designated for said request; further wherein characterizing at least one user by a profiling-contextual-vector comprising at least one characteristic selected from a group consisting of: location, gender, income, education, profession, age, favorite categories, former impressions, former clicks, former conversions, favorite categories, restricted categories, and any combination thereof; further wherein conducting said parsing off-line or near real-time; and,

f. any combination thereof.

12 . A real-time selection system [ 100 ] for selecting an optimal-offer out of at least two offers O i, i=1 . . . N≧2 , set towards at least one incoming request; said system [ 100 ] comprising at least one processor [ 110 ] configured to control operation of said selection by means of:

a. parse said at least one request to a request-context-vector;

b. calculate at least two estimated-CTRs ECTR i , each for different offer of said at least two of offers O i , based on said request-context-vector and at least two first-weight-vectors W 1 i each configured for different offer of said at least two offers O i ;

c. calculate at least two estimated-CRs ECR i each for different offer of said at least two of offers O i , based on said request-context-vector and at least two second-weight-vectors W 2 i each configured for different offer of said at least two offers O i ;

d. calculate at least two scores S i each for different offer of said at least two offers O i , based on said at least two estimated-CTRs ECTRi and said at least two estimated-CRs ECR i ;

e. calculate a choosing-probability P i for each offer of said at least two offers O i , based on said score S i ; and,

f. select said optimal-offer;

wherein calculation of said at least two estimated-CTRs and calculation of said least two estimated-CRs are based on at least one previously selected said optimal-offer.

13 . The system according to claim 12 , wherein selection of said optimal-offer is according to at least one characteristic selected from a group consisting of: highest said score S i , highest said estimated-CTR ECTR i , highest said estimated-CRs ECR i , highest said choosing probability P i , lowest said choosing probability P i , random of said choosing probability P i and any combination thereof.

14 . The system according to claim 12 , wherein each offer of said at least two offers O i is characterized by an offer-feature-vector OFV i comprising at least one characteristic selected from a group consisting of: PayIn PI i , countries, categories, optional-banner-size, optional-banner-location, optional-banner-orientation, optional-exposure-period, optional-exposure-time, optional-ages, optional-gender, optional-education, optional-user's-income, optional-user's-profession, estimated-CTR, estimated-CR and at least one banner.

15 . The system according to claim 14 , wherein at least one of the following is held true:

a. said processor [ 110 ] further configured for real-time calculation of bidding-price BP for the selected said optimal-offer, based on at least one characteristic selected from a group consisting of: said PayIn of said optimal-offer, said estimated-CTRs of said optimal-offer, said estimated-CRs of said optimal-offer and any combination thereof;

b. said processor [ 110 ] further configured for real-time calculation of at least two bidding-prices BP i each for different offer of said at least two offers O i , based on at least one characteristic selected from a group consisting of: said PayIn PI i , said estimated-CTRs ECTR i , said estimated-CRs ECR i and any combination thereof;

c. said processor [ 110 ] further configured for real-time calculation of at least two bidding-prices BP i each for different offer of said at least two offers O i , based on at least one characteristic selected from a group consisting of: said PayIn PI i , said estimated-CTRs ECTR i , said estimated-CRs ECR i and any combination thereof; further wherein said processor [ 110 ] further configured for real-time filtering out of at least one offer of said at least two offers O i , incase said bidding-price of said offer is lower than a predetermined price-floor;

d. said processor [ 110 ] further configured for real-time calculation of at least two bidding-prices BP i each for different offer of said at least two offers O i , based on at least one characteristic selected from a group consisting of: said PayIn PI i , said estimated-CTRs ECTR i , said estimated-CRs ECR i and any combination thereof; further wherein said selection of said optimal-offer is according to at least one characteristic selected from a group consisting of: highest said score S i , highest said estimated-CTR ECTR i , highest said estimated-CRs ECR i , lowest said bidding-price BP i , highest bidding-price BP i , maximum revenue and any combination thereof;

e. said processor [ 110 ] further configured for real-time calculation of at least two bidding-prices BP i each for different offer of said at least two offers O i , based on at least one characteristic selected from a group consisting of: said PayIn PI i , said estimated-CTRs ECTR i , said estimated-CRs ECR i and any combination thereof; further wherein said processor [ 110 ] further configured for real-time filtering out of at least one offer of said at least two offers O i , incase said bidding-price of said offer is lower than a predetermined price-floor; further wherein said selection of said optimal-offer is according to at least one characteristic selected from a group consisting of: highest said score S i , highest said estimated-CTR ECTR i , highest said estimated-CRs ECR i , lowest said bidding-price BP i , highest bidding-price BP i , maximum revenue and any combination thereof; and,

f. any combination thereof.

16 . The system according to claim 14 , wherein said processor [ 110 ] further configured to select:

a. optimal-banner from said at least one banner, for said optimal-offer;

b. an optimal-banner out of said at least one banner, based on said at least one B-database selected from a group consisting of: said clicks-database [ 230 ], said CTR-database [ 240 ] and said conversions-database [ 250 ]; and,

c. any combination thereof.

17 . The system according to claim 12 , wherein at least one of the following is held true:

a. said system further comprising at least one database selected from a group consisting of: offers-database [ 210 ], impressions-database [ 220 ], clicks-database [ 230 ], CTR-database [ 240 ], conversions-database [ 250 ], requests-database [ 260 ], users-database [ 270 ], biddings-database [ 280 ], and hash-table features [ 290 ];

b. said system further comprising at least one database selected from a group consisting of: offers-database [ 210 ], impressions-database [ 220 ], clicks-database [ 230 ], CTR-database [ 240 ], conversions-database [ 250 ], requests-database [ 260 ], users-database [ 270 ], biddings-database [ 280 ], and hash-table features [ 290 ]; further, wherein said processor [ 110 ] further configured for an offline or near real-time calculation of said at least two first-weight-vectors W 1 i , based on at least one W 1 -database selected from a group consisting of: said offers-database [ 210 ], said impressions-database [ 220 ], said clicks-database [ 230 ], said CTR-database [ 240 ], said conversions-database [ 250 ], said requests-database [ 260 ], said users-database [ 270 ], said biddings-database [ 280 ], hash table features [ 290 ], and any combination thereof;

c. said system further comprising at least one database selected from a group consisting of: offers-database [ 210 ], impressions-database [ 220 ], clicks-database [ 230 ], CTR-database [ 240 ], conversions-database [ 250 ], requests-database [ 260 ], users-database [ 270 ], biddings-database [ 280 ], and hash-table features [ 290 ]; further, wherein said processor [ 110 ] further configured for an offline or near real-time calculation of said at least two first-weight-vectors W 1 i , based on at least one W 1 -database selected from a group consisting of: said offers-database [ 210 ], said impressions-database [ 220 ], said clicks-database [ 230 ], said CTR-database [ 240 ], said conversions-database [ 250 ], said requests-database [ 260 ], said users-database [ 270 ], said biddings-database [ 280 ], hash table features [ 290 ], and any combination thereof; further wherein said processor [ 110 ] further configured to aggregate said W 1 -database in a manner selected from: according to a learning rate η 1 ; periodically aggregate said W 1 -database per a time-period selected from a group consisting of: millisecond, second, minute, hour, day, week, month, year and any combination thereof; or both;

d. said processor [ 110 ] further configured for real-time calculation of said at least two second-weight-vectors W 2 i , based on at least one W 2 -database selected from a group consisting of: said offers-database [ 210 ], said impressions-database [ 220 ], said clicks-database [ 230 ], said CTR-database [ 240 ], said conversions-database [ 250 ], said requests-database [ 260 ], said users-database [ 270 ], said biddings-database [ 280 ], hash table features [ 290 ], and any combination thereof;

e. said system further comprising at least one database selected from a group consisting of: offers-database [ 210 ], impressions-database [ 220 ], clicks-database [ 230 ], CTR-database [ 240 ], conversions-database [ 250 ], requests-database [ 260 ], users-database [ 270 ], biddings-database [ 280 ], and hash-table features [ 290 ]; further wherein said processor [ 110 ] further configured to aggregate said W 2 -database, in a manner selected from: according to a learning rate η 2 ; periodically aggregate said W 2 -database per time-period selected from a group consisting of: millisecond, second, minute, hour, day, week, month, year and any combination thereof; or both; and,

f. any combination thereof.

18 . The system according to claim 12 , wherein at least one of the following is held true:

a. methods of logistic regression are used to calculate said at least two estimated-CTRs ECTR i , said at least two estimated-CRs ECR i, or both;

b. said vector selected from a group comprising: request-context-vector, said first-weight-vector W 1 i , said second-weight-vector W 2 i, and any combination thereof, is a sparse vector;

c. said request-context-vector is a context vector;

d. said request-context-vector comprising at least one characteristic selected from a group consisting of: network data, geographical-performance, ad-latency, requested-price, initial-bidding-price, platform (operating system), carrier, country, banner-size, banner-location, banner-orientation, target-age, target-gender, target-intellect, target-income target-profession, exposure-period and exposure-time, price-floor, and any combination thereof;

e. said processor [ 110 ] further configured for real-time indexing, by means of filtering out, at least one offer of said at least two offers O i , according to restrictions set by said request-feature-vector; and,

f. any combination thereof.

19 . The system according to claim 12 , wherein at least one of the following is held true:

a. parsing of said at least one request is according to a features' Hash-table;

b. said processor [ 110 ] further configured for processing big data scale;

c. said processor [ 110 ] is embedded in at least one entity selected from a group consisting of: computer, smart-phone, laptop, tablet and any combination thereof; and,

d. any combination thereof.

20 . The system according to claim 12 , wherein at least one of the following is held true:

a. said processor [ 110 ] further configured to identify at least one user designated for said request;

b. said processor [ 110 ] further configured to identify at least one user designated for said request; further wherein said at least one user is characterized a profiling-contextual-vector comprising at least one characteristic selected from a group consisting of: location, gender, income, education, profession, age, favorite categories, former impressions, former clicks, former conversions, favorite categories, restricted categories, and any combination thereof;

c. said processor [ 110 ] further configured to identify at least one user designated for said request; further wherein said at least one user is characterized a profiling-contextual-vector comprising at least one characteristic selected from a group consisting of: location, gender, income, education, profession, age, favorite categories, former impressions, former clicks, former conversions, favorite categories, restricted categories, and any combination thereof; further wherein said processor [ 110 ] further configured for real-time indexing, by means of filtering out, at least one offer of said at least two offers O i , according to at least on characteristic selected from a group consisting of: restrictions set by said request-feature-vector, said user's former impressions, said user's former clicks, said user's former conversions, said user's categories restrictions and any combination thereof;

d. said processor [ 110 ] further configured to identify at least one user designated for said request; further wherein said at least one user is characterized a profiling-contextual-vector comprising at least one characteristic selected from a group consisting of: location, gender, income, education, profession, age, favorite categories, former impressions, former clicks, former conversions, favorite categories, restricted categories, and any combination thereof; further wherein said at least one user's profiling-contextual-vector is used to calculate at least two said estimated-CTRs ECTR i , at least two said estimated-CRs ECR i , or both;

said processor [ 110 ] further configured to identify at least one user designated for said request; further wherein said at least one user is characterized a profiling-contextual-vector comprising at least one characteristic selected from a group consisting of: location, gender, income, education, profession, age, favorite categories, former impressions, former clicks, former conversions, favorite categories, restricted categories, and any combination thereof; further wherein said parsing is conducted off-line or near real-time; and,

e. any combination thereof.

Assignments (2)
IP SECURITY AGREEMENT SUPPLEMENT Recorded Aug 29, 2017
From: TAPTICA LIMITED
To: HSBC BANK USA, NATIONAL ASSOCIATION
Reel/Frame 043711/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2015
From: MARENKO, KOBI
To: TAPTICA LTD
Reel/Frame 035866/0113 →