# US 8,572,096 B1 · Selecting keywords using co-visitation information

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

- Number: US 8,572,096 B1
- Document ID: US8572096B1
- Status: Granted
- Kind: B1
- Application number: 13/297,544
- Filed: 2011-11-16
- Granted: 2013-10-29
- Earliest claimed: 2011-08-05
- Assignees: Google Inc.
- Applicants: Rohan Seth; Shumeet Baluja; Dandapani Sivakumar; Deepak Ravichandran
- Inventors: Rohan Seth; Shumeet Baluja; Dandapani Sivakumar; Deepak Ravichandran
- Web page: https://patentgrep.com/patent/US8572096B1

## CPC

- G06F 16/9536: Search customisation based on social or collaborative filtering
- G06F 16/9535: Search customisation based on user profiles and personalisation
- G06Q 10/10: Office automation; Time management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- 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

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for selecting keywords for resources. In one aspect, a method includes identifying a particular online resource that includes non-text content. Co-visitation data are obtained for the particular resource. The co-visitation data specify one or more co-requested online resources for the particular online resource. Each of the co-requested online resources were requested by a user device within a threshold period of the request for the particular online resource by the user device. Keywords are identified for each of the co-requested online resources, and can include keywords that were selected based on text content of the co-requested online resource. One or more of the identified keywords are selected as keywords for the particular resource.

## Claims

### Claim 1

A method performed by a data processing apparatus, the method comprising:
identifying a particular online resource that includes non-text content;
obtaining co-visitation data for the particular online resource, the co-visitation data specifying one or more co-requested online resources for the particular online resource, each of the one or more co-requested online resources being requested by a user device within a threshold period of a request for the particular online resource by the user device;
identifying keywords for each of the one or more co-requested online resources, the identified keywords for each co-requested online resource in the one or more co-requested online resources including keywords that were selected for the co-requested online resource based on text content of the co-requested online resource;
determining, for each of one or more requests of a co-requested online resource that was received from the user device within the threshold period subsequent to a request by the user device for the particular online resource, a delay between the request by the user device for the particular online resource and the request by the user device for the co-requested online resource;
assigning a relative weight to each of the one or more requests for the co-requested online resource based, at least in part, on the delay;
determining a keyword score for each of one or more of the identified keywords, the keyword score for each identified keyword being determined based, at least in part, on a number of the one or more co-requested online resources with which the identified keyword is associated and the relative weight that was assigned to each of the one or more requests for the co-requested online resource; and
selecting, based at least in part, on the keyword scores for the identified keywords, one or more of the identified keywords as keywords for the particular online resource.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving data indicating that a content item has been requested for presentation with the particular online resource; and
responsive to receiving the data, selecting a content item for presentation with the particular online resource, the content item being selected based on the one or more of the identified keywords for the one or more co-requested online resources that were selected for the particular online resource.

### Claim 3 (depends on 1)

The method of claim 1, wherein obtaining co-visitation data comprises:
receiving click log data for a plurality of user devices;
determining that at least a threshold number of the plurality of user devices requested the one or more co-requested online resources after the request for the particular online resource; and
identifying the one or more co-requested online resources based on the determination.

### Claim 4 (depends on 1)

The method of claim 1, wherein:
assigning a relative weight to each request for the co-requested online resource based on the delay comprises assigning a relative weight that is inversely proportional to the delay.

### Claim 5 (depends on 1)

The method of claim 1, wherein selecting one or more of the identified keywords as keywords for the particular online resource comprises:
selecting as the one or more of the identified keywords the identified keywords that have at least a threshold keyword score.

### Claim 6 (depends on 5)

The method of claim 5, wherein determining a keyword score further comprises:
determining a co-visitation count for each of the one or more co-requested online resources, the co-visitation count specifying a number of times that the co-requested online resource was requested by a user device subsequent to a request for the particular online resource by the user device; and
computing the keyword score for each of the identified keywords based, at least in part, on a function of the number of co-requested online resources with which the identified keyword is associated and the co-visitation count for each of the one or more co-requested online resources.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
obtaining first keywords for the particular online resource, each first keyword being a keyword that was selected for the particular online resource independent of the content of the one or more co-requested online resources for the particular online resource, wherein
computing the keyword score for each of the identified keywords further comprises computing the keyword score based, at least in part, on whether the identified keyword matches a first keyword for the particular online resource.

### Claim 8 (depends on 6)

The method of claim 6, further comprising:
determining a popularity score for each of the one or more co-requested online resources, the popularity score specifying a measure of user device requests for the co-requested online resource, the measure of user device requests being determined independent of whether the particular online resource was requested by the user device prior to the request for the co-requested online resource, wherein
identifying keywords for each of the one or more co-requested online resources comprises identifying keywords for each of the one or more co-requested online resources except for the co-requested online resources having a popularity score that exceeds a popularity score threshold.

### Claim 9 (depends on 8)

The method of claim 8, wherein determining a popularity score comprises determining, for each of the one or more co-requested online resources, a number of unique user devices that requested the co-requested online resource, each unique user device being represented by a unique identifier.

### Claim 10 (depends on 6)

The method of claim 6, further comprising:
determining a popularity score for each of the one or more co-requested online resources, the popularity score specifying a measure of user device requests for the co-requested online resource, the measure of user device requests being determined independent of whether the particular online resource was requested by the user device prior to the request for the co-requested online resource, wherein
identifying keywords for each of the one or more co-requested online resources comprises identifying keywords for each of the one or more co-requested online resources except for the co-requested online resources having a popularity score that is less than a popularity score threshold.

### Claim 11

A non-transitory computer storage medium encoded with a computer program, the computer program comprising instructions that when executed by a data processing apparatus cause the data processing apparatus to perform operations comprising:
identifying a particular online resource that includes non-text content;
obtaining co-visitation data for the particular online resource, the co-visitation data specifying one or more co-requested online resources for the particular online resource, each of the one or more co-requested online resources being requested by a user device within a threshold period of a request for the particular online resource by the user device;
identifying keywords for each of the one or more co-requested online resources, the identified keywords for each co-requested online resource in the one or more co-requested online resources including keywords that were selected for the co-requested online resource based on text content of the co-requested online resource;
determining, for each of one or more requests of a co-requested online resource that was received from the user device within the threshold period subsequent to a request by the user device for the particular online resource, a delay between the request by the user device for the particular online resource and the request by the user device for the co-requested online resource;
assigning a relative weight to each of the one or more requests for the co-requested online resource based, at least in part, on the delay;
determining a keyword score for each of one or more of the identified keywords, the keyword score for each identified keyword being determined based, at least in part, on a number of the one or more co-requested online resources with which the identified keyword is associated and the relative weight that was assigned to each of the one or more requests for the co-requested online resource; and
selecting, based at least in part, on the keyword scores for the identified keywords, one or more of the identified keywords as keywords for the particular online resource.

### Claim 12 (depends on 11)

The non-transitory computer storage medium of claim 11, wherein the computer program further comprises instructions that when executed by the data processing apparatus cause the data processing apparatus to perform operations comprising:
receiving data indicating that a content item has been requested for presentation with the particular online resource; and
responsive to receiving the data, selecting a content item for presentation with the particular online resource, the content item being selected based on the one or more of the identified keywords for the one or more co-requested online resources that were selected for the particular online resource.

### Claim 13 (depends on 11)

The non-transitory computer storage medium of claim 11, wherein obtaining co-visitation data comprises:
receiving click log data for a plurality of user devices;
determining that at least a threshold number of the plurality of user devices requested the one or more co-requested online resources after the request for the particular online resource; and
identifying the one or more co-requested online resources based on the determination.

### Claim 14 (depends on 11)

The non-transitory computer storage medium of claim 11, wherein
assigning a relative weight to each request for the co-requested online resource based on the delay comprises assigning a relative weight that is inversely proportional to the delay.

### Claim 15 (depends on 11)

The non-transitory computer storage medium of claim 11, wherein selecting one or more of the identified keywords as keywords for the particular online resource comprises:
selecting as the one or more of the identified keywords the identified keywords that have at least a threshold keyword score.

### Claim 16 (depends on 15)

The non-transitory computer storage medium of claim 15, wherein determining a keyword score further comprises:
determining a co-visitation count for each of the one or more co-requested online resources, the co-visitation count specifying a number of times that the co-requested online resource was requested by a user device subsequent to a request for the particular online resource by the user device; and
computing the keyword score for each of the identified keywords based, at least in part, on a function of the number of co-requested online resources with which the identified keyword is associated and the co-visitation count for each of the one or more co-requested online resources.

### Claim 17 (depends on 16)

The non-transitory computer storage medium of claim 16, wherein the computer program further comprises instructions that when executed by the data processing apparatus cause the data processing apparatus to perform operations comprising:
obtaining first keywords for the particular online resource, each first keyword being a keyword that was selected for the particular online resource independent of the content of the one or more co-requested online resources for the particular online resource, wherein
computing the keyword score for each of the identified keywords further comprises computing the keyword score based, at least in part, on whether the identified keyword matches a first keyword for the particular online resource.

### Claim 18 (depends on 16)

The non-transitory computer storage medium of claim 16, wherein the computer program further comprises instructions that when executed by the data processing apparatus cause the data processing apparatus to perform operations comprising:
determining a popularity score for each of the one or more co-requested online resources, the popularity score specifying a measure of user device requests for the co-requested online resource, the measure of user device requests being determined independent of whether the particular online resource was requested by the user device prior to the request for the co-requested online resource, wherein
identifying keywords for each of the one or more co-requested online resources comprises identifying keywords for each of the one or more co-requested online resources except for the co-requested online resources having a popularity score that exceeds a popularity score threshold.

### Claim 19 (depends on 18)

The non-transitory computer storage medium of claim 18, wherein determining a popularity score comprises determining, for each of the one or more co-requested online resources, a number of unique user devices that requested the co-requested online resource, each unique user device being represented by a unique identifier.

### Claim 20 (depends on 16)

The non-transitory computer storage medium of claim 16, wherein the computer program further comprises instructions that when executed by the data processing apparatus cause the data processing apparatus to perform operations comprising:
determining a popularity score for each of the one or more co-requested online resources, the popularity score specifying a measure of user device requests for the co-requested online resource, the measure of user device requests being determined independent of whether the particular online resource was requested by the user device prior to the request for the co-requested online resource, wherein
identifying keywords for each of the one or more co-requested online resources comprises identifying keywords for each of the one or more co-requested online resources except for the co-requested online resources having a popularity score that is less than a popularity score threshold.

### Claim 21

A system comprising:
a data store storing co-visitation data for a plurality of online resources, the co-visitation data specifying, for each of the plurality of online resources, one or more co-requested online resources for the online resource, each of the one or more co-requested online resources for the online resource being requested by a user device within a threshold period of the request for the online resource by the user device; and
a data processing apparatus configured to interact with the data store, the data processing apparatus being further configured to perform operations comprising:
identifying a particular online resource that includes non-text content;
obtaining, from the data store, co-visitation data for the particular online resource, the co-visitation data specifying one or more co-requested online resources for the particular online resource, each of the one or more co-requested online resources being requested by a user device within a threshold period of a request for the particular online resource by the user device;
identifying keywords for each of the one or more co-requested online resources, the identified keywords for each co-requested online resource in the one or more co-requested online resources including keywords that were selected for the co-requested online resource based on text content of the co-requested online resource;
determining, for each of one or more requests of a co-requested online resource that was received from the user device within the threshold period subsequent to a request by the user device for the particular online resource, a delay between the request by the user device for the particular online resource and the request by the user device for the co-requested online resource;
assigning a relative weight to each of the one or more requests for the co-requested online resource based, at least in part, on the delay;
determining a keyword score for each of one or more of the identified keywords, the keyword score for each identified keyword being determined based, at least in part, on a number of the one or more co-requested online resources with which the identified keyword is associated and the relative weight that was assigned to each of the one or more requests for the co-requested online resource; and
selecting, based at least in part, on the keyword scores for the identified keywords, one or more of the identified keywords as keywords for the particular online resource.

### Claim 22 (depends on 21)

The system of claim 21, wherein the data processing apparatus is further configured to perform operations including:
receiving data indicating that a content item has been requested for presentation with the particular online resource; and
responsive to receiving the data, selecting a content item for presentation with the particular online resource, the content item being selected based on the one or more of the identified keywords for the one or more co-requested online resources that were selected for the particular online resource.

### Claim 23 (depends on 21)

The system of claim 21, wherein obtaining co-visitation data comprises:
receiving click log data for a plurality of user devices;
determining that at least a threshold number of the plurality of user devices requested the one or more co-requested online resources after the request for the particular online resource; and
identifying the one or more co-requested online resources based on the determination.

### Claim 24 (depends on 21)

The system of claim 21, wherein selecting one or more of the identified keywords as keywords for the particular online resource comprises:
selecting as the one or more of the identified keywords the identified keywords that have at least a threshold keyword score.

### Claim 25 (depends on 24)

The system of claim 24, wherein determining a keyword score further comprises:
determining a co-visitation count for each of the one or more co-requested online resources, the co-visitation count specifying a number of times that the co-requested online resource was requested by a user device subsequent to a request for the particular online resource by the user device; and
computing the keyword score for each of the identified keywords based, at least in part, on a function of the number of co-requested online resources with which the identified keyword is associated and the co-visitation count for each of the one or more co-requested online resources.

### Claim 26 (depends on 25)

The system of claim 25, wherein the data processing apparatus is further configured to perform operations comprising:
obtaining first keywords for the particular online resource, each first keyword being a keyword that was selected for the particular online resource independent of the content of the one or more co-requested online resources for the particular online resource, wherein
computing the keyword score for each of the identified keywords further comprises computing the keyword score based, at least in part, on whether the identified keyword matches a first keyword for the particular online resource.

### Claim 27 (depends on 21)

The system of claim 21, wherein:
assigning a relative weight to each request for the co-requested online resource based on the delay comprises assigning a relative weight that is inversely proportional to the delay.

### Claim 28 (depends on 25)

The system of claim 25, wherein the data processing apparatus is further configured to perform operations comprising:
determining a popularity score for each of the one or more co-requested online resources, the popularity score specifying a measure of user device requests for the co-requested online resource, the measure of user device requests being determined independent of whether the particular online resource was requested by the user device prior to the request for the co-requested online resource, wherein
identifying keywords for each of the one or more co-requested online resources comprises identifying keywords for each of the one or more co-requested online resources except for the co-requested online resources having a popularity score that exceeds a popularity score threshold.

### Claim 29 (depends on 28)

The system of claim 28, wherein determining a popularity score comprises determining, for each of the one or more co-requested online resources, a number of unique user devices that requested the co-requested online resource, each unique user device being represented by a unique identifier.

### Claim 30 (depends on 25)

The system of claim 25, wherein the data processing apparatus is further configured to perform operations comprising:
determining a popularity score for each of the one or more co-requested online resources, the popularity score specifying a measure of user device requests for the co-requested online resource, the measure of user device requests being determined independent of whether the particular online resource was requested by the user device prior to the request for the co-requested online resource, wherein
identifying keywords for each of the one or more co-requested online resources comprises identifying keywords for each of the one or more co-requested online resources except for the co-requested online resources having a popularity score that is less than a popularity score threshold.
