# US 8,571,924 B2 · High performance personalized advertisement serving by exploiting thread assignments in a multiple core computing environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,571,924 B2
- Document ID: US8571924B2
- Status: Granted
- Kind: B2
- Application number: 13/176,668
- Filed: 2011-07-05
- Published: 2013-01-10
- Granted: 2013-10-29
- Earliest claimed: 2011-07-05
- Assignees: Yahoo! Inc.
- Applicants: Arun Kerjariwal
- Inventors: Arun Kerjariwal
- Web page: https://patentgrep.com/patent/US8571924B2

## CPC

- G06Q 30/0241: Advertisements
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

A method, apparatus and computer program product for high performance advertisement serving by exploiting processor thread assignments in a processor having multiple threads. The method commences by receiving digital advertisements, an instance of the digital advertisement being associated with a plurality of decision trees (to relate a user to an advertisement), where the evaluation of a decision tree results in a tree score. After determining a number of cores within the processor, the decisions trees are assigned to processor cores or processor threads by iteratively assigning to a next one of the number of cores, a next decision tree, and iteratively accumulating a plurality of the tree scores to form a tree score subtotal. The tree score subtotals can be compared quantitatively to rank a first digital advertisement against a second digital advertisement, and a ranked advertisement displayed to a user. Some decision trees comprise demographic, behavioral and context quantifiers.

## Claims

### Claim 1

A computer-implemented method for high performance advertisement serving by exploiting processor thread assignments in a processor having multiple threads, the method comprising:
receiving, in memory, at least two digital advertisements, an instance of the digital advertisement corresponding to a plurality of decision trees, evaluation of a decision tree resulting in a tree score;
determining, from the processor, a number of cores within the processor;
iteratively assigning, to a next one of the number of cores, a next decision tree to calculate the tree score; and iteratively accumulating a plurality of the tree scores to form a tree score subtotal, wherein iteratively accumulating a plurality of tree scores to form a tree score subtotal terminates when the tree score subtotal is greater than a tree score subtotal threshold, based in part on an execution rate assessment.

### Claim 2 (depends on 1)

The method of claim 1, further comprising: ranking a first of the at least two digital advertisements against a second of the at least two digital advertisements.

### Claim 3 (depends on 1)

The method of claim 1, wherein one core selected from the number of cores executes multiple threads.

### Claim 4 (depends on 1)

The method of claim 1, wherein the at least two digital advertisements are selected from a candidate ad set.

### Claim 5 (depends on 1)

The method of claim 1, wherein the plurality of decision trees are selected in an execution order from a decision tree forest, the execution order determined in part by a tree depth.

### Claim 6 (depends on 1)

The method of claim 1, wherein the step of iteratively accumulating a plurality of tree scores is terminated when the tree score subtotal is greater than a graph threshold value.

### Claim 7 (depends on 1)

The method of claim 1, wherein the step of iteratively accumulating a score subtotal is terminated based on an execution rate assessment.

### Claim 8

An advertising server network implementing high performance advertisement serving by exploiting processor thread assignments in a processor having multiple threads comprising: a module for receiving, at least two digital advertisements, an instance of the digital advertisement corresponding to a plurality of decision trees, evaluation of a decision tree resulting in a tree score; a module for determining, from the processor, a number of cores within the processor; a module for iteratively assigning, to a next one of the number of cores, a next decision tree to calculate the tree score; and a module for iteratively accumulating a plurality of the tree scores to form a tree score subtotal, wherein iteratively accumulating a plurality of tree scores to form a tree score subtotal terminates when the tree score subtotal is greater than a tree score subtotal threshold, based in part on an execution rate assessment.

### Claim 9 (depends on 8)

The advertising server network of claim 8, further comprising: a module for ranking a first of the at least two digital advertisements against a second of the at least two digital advertisements.

### Claim 10 (depends on 8)

The advertising server network of claim 8, wherein one core selected from the number of cores executes multiple threads.

### Claim 11 (depends on 8)

The advertising server network of claim 8, wherein the at least two digital advertisements are selected from a candidate ad set.

### Claim 12 (depends on 8)

The advertising server network of claim 8, wherein the plurality of decision trees are selected in an execution order from a decision tree forest, the execution order determined in part by a tree depth.

### Claim 13 (depends on 8)

The advertising server network of claim 8, wherein the step of iteratively accumulating a plurality of tree scores is terminated when the tree score subtotal is greater than a graph threshold value.

### Claim 14 (depends on 8)

The advertising server network of claim 8, wherein the step of iteratively accumulating a score subtotal is terminated based on an execution rate assessment.

### Claim 15

A non-transitory computer readable medium comprising a set of instructions which, when executed by a computer, cause the computer to implement high performance advertisement serving by exploiting processor thread assignments in a processor having multiple threads, the set of instructions for:
receiving, at least two digital advertisements, an instance of the digital advertisement corresponding to a plurality of decision trees, evaluation of a decision tree resulting in a tree score;
determining, from the processor, a number of cores within the processor;
iteratively assigning, to a next one of the number of cores, a next decision tree to calculate the tree score; and
iteratively accumulating a plurality of the tree scores to form a tree score subtotal, wherein iteratively accumulating a plurality of tree scores to form a tree score subtotal terminates when the tree score subtotal is greater than a tree score subtotal threshold, based in part on an execution rate assessment.

### Claim 16 (depends on 15)

The non-transitory computer readable medium of claim 15, further comprising: instructions for ranking a first of the at least two digital advertisements against a second of the at least two digital advertisements.

### Claim 17 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein one core selected from the number of cores executes multiple threads.

### Claim 18 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the plurality of decision trees are selected in an execution order from a decision tree forest, the execution order determined in part by a tree depth.

### Claim 19 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the step of iteratively accumulating a plurality of tree scores is terminated when the tree score subtotal is greater than a graph threshold value.

### Claim 20 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the step of iteratively accumulating a score subtotal is terminated based on an execution rate assessment.
