1. (canceled)
2. A method comprising:
obtaining, from a client computing device, performance data associated with processing a first resource request, wherein the first resource request corresponds to a set of resources and wherein the set of resources corresponds to an original resource and any embedded resources associated with content requested by the client computing device;
identifying a set of coordinates for each of the resources in the set of resources, wherein the set of coordinates define a resource display location associated with each of the resources;
identifying a display location associated with a visible portion of a display;
identifying a subset of the resources from the set of resources corresponding to a display location associated with a visible portion of the display by determining, for each resource, whether the set of coordinates corresponding to the resource are located within the display location, wherein other resources from the set of resources correspond to a display location associated with a non-visible portion of the display;
processing the performance data to determine performance information corresponding to the identified subset of resources; and
dynamically determining a recommended resource configuration based on the processed performance data,
wherein the method is implemented by at least one processing device.
3. The method as recited in claim 2, wherein the performance information includes timing information.
4. The method as recited in claim 3, wherein the timing information includes timing of receipt of the first byte of data and timing of receipt of the last byte of data for each resource in the subset of the resources.
5. The method as recited in claim 3, wherein the timing information includes timing information associated with rendering each resource in the subset of resources for display.
6. The method as recited in claim 3, wherein the timing information includes timing information associated with collectively rendering the subset of the resources for display.
7. The method as recited in claim 3, wherein the timing information includes timing information associated with receipt of the first byte of data for each resource in the subset of the resources, receipt of the last byte of data for each resource in the subset of the resources, rendering each resource in the subset of resources for display, and collectively rendering the subset of resources for display.
8. The method as recited in claim 3 further comprising causing the timing information to be displayed.
9. The method as recited in claim 3, wherein the visible portion of the display corresponds to a first frame area of the display defined by the entire available display area on the display for rendering the set of resources.
10. The method as recited in claim 9, wherein the subset of the resources includes all resources located in the first frame area of the display.
11. The method as recited in claim 9, wherein the subset of the resources is associated with a portion of the first frame area of the display.
12. A system comprising:
at least one processing device comprising a processing component, the processing component operable to:
obtain, from a client computing device, performance data associated with processing a first resource request, wherein the first resource request corresponds to a set of resources and wherein the set of resources corresponds to an original resource and any embedded resources associated with content requested by the client computing device;
identify a set of coordinates for each of the resources in the set of resources, wherein the set of coordinates define a resource display location associated with each of the resources;
identify a display location associated with a visible portion of a display;
identify a subset of the resources from the set of resources corresponding to a display location associated with a visible portion of the display by determining, for each resource, whether the set of coordinates corresponding to the resource are located within the display location, wherein other resources from the set of resources correspond to a display location associated with a non-visible portion of the display;
process the performance data to determine performance information corresponding to the identified subset of resources; and
dynamically determine a recommended resource configuration based on the processed performance data.
13. The system as recited in claim 12, wherein the performance information includes timing information.
14. The system as recited in claim 13, wherein the timing information includes timing of receipt of the first byte of data and timing of receipt of the last byte of data for each resource in the subset of the resources.
15. The system as recited in claim 13, wherein the timing information includes timing information associated with rendering each resource in the subset of resources for display.
16. The system as recited in claim 13, wherein the timing information includes timing information associated with collectively rendering the subset of the resources for display.
17. The system as recited in claim 13, wherein the timing information includes timing information associated with receipt of the first byte of data for each resource in the subset of the resources, receipt of the last byte of data for each resource in the subset of the resources, rendering each resource in the subset of resources for display, and collectively rendering the subset of resources for display.
18. The system as recited in claim 13, wherein the processing component is further operable to cause the timing information to be displayed.
19. The system as recited in claim 13, wherein the visible portion of the display corresponds to a first frame area of the display defined by the entire available display area on the display for rendering the set of resources.
20. The system as recited in claim 19, wherein the subset of the resources includes all resources located in the first frame area of the display.
21. The system as recited in claim 19, wherein the subset of the resources is associated with a portion of the first frame area of the display.
22. A system comprising:
a client computing device, wherein the client computing device is operable to determine performance data associated with processing a resource request, wherein the resource request corresponds to a request for an original resource by the client computing device and any subsequent requests for one or more embedded resources by the client computing device and wherein the original resource and any one or more embedded resources correspond to a set of resources; and
at least one processing device comprising a processing component, the processing component operable to:
obtain, from the client computing device, the performance data associated with processing the resource request;
identify a set of coordinates for each of the resources in the set of resources, wherein the set of coordinates define a resource display location associated with each of the resources;
identify a display location associated with a visible portion of a display;
identify a subset of the resources from the set of resources corresponding to a display location associated with a visible portion of the display by determining, for each resource, whether the set of coordinates corresponding to the resource are located within the display location, wherein other resources from the set of resources correspond to a display location associated with a non-visible portion of the display;
process the performance data to determine timing information corresponding to the identified subset of resources; and
dynamically determine a recommended resource configuration based on the processed performance data.
23. The system as recited in claim 22, wherein the timing information includes timing information associated with rendering each resource in the subset of resources for display.
24. The system as recited in claim 22, wherein the timing information includes timing information associated with collectively rendering the subset of the resources for display.
25. The system as recited in claim 22, wherein the timing information includes timing information associated with receipt of the first byte of data for each resource in the subset of the resources, receipt of the last byte of data for each resource in the subset of the resources, rendering each resource in the subset of resources for display, and collectively rendering the subset of resources for display.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method comprising:
determining a set of item-item affinities between a first item and a first plurality of items;
determining a first set of nearest neighbor items from the first plurality of items based, at least in part, on the set of item-item affinities;
determining a set of user feature-item affinities between a second plurality of items and a set of user features;
determining a second set of nearest neighbor items based, at least in part, on the set of user feature-item affinities;
determining affinity weights for a set of candidate items, wherein the set of candidate items is determined based, at least in part, on the first set of nearest neighbor items and the second set of nearest neighbor items;
causing to be presented, to a user as a recommendation, a candidate item from the set of candidate items, wherein the candidate item is determined based, at least in part, on an affinity weight of the candidate item; and,
wherein the method is performed by one or more computing devices.
2. The method of claim 1, wherein the set of item-item affinities is determined by a cosine similarity function.
3. The method of claim 1, wherein the set of user feature-item affinities is determined by a least squares regression function.
4. The method of claim 1, wherein the set of item-item affinities is determined at least based in part on user ratings of the first plurality of items.
5. The method of claim 4 further comprising:
penalizing an item-item affinity within the set of item-item affinities if the item-item affinity is based on fewer than a minimum number of user ratings.
6. The method of claim 1, wherein at least one user feature from the set of user features is selected from the group consisting of user age, user gender, and geographic location.
7. The method of claim 1, wherein at least one user feature from the set of user features comprises behavioral targeting information.
8. The method of claim 1, further comprising:
recalculating a weighting of the first set of nearest neighbors items or the second set of nearest neighbor items.
9. The method of claim 1, wherein the affinity weight of the candidate item is based at least in part on a number of total users, a number of users who have rated the candidate item (N(j)), a number of users who have an attribute (N(s)), and a number of users who have the attribute and have also rated the candidate item (N(s,j)), wherein N(s) is one of a number of users who have a particular user feature or a number of users who have rated another item.
10. The method of claim 9, further comprising:
ignoring a second candidate item from the set of candidate items in response to N(s,j) being below a value.
11. One or more machine-readable storage media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 1.
12. One or more machine-readable storage media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 2.
13. One or more machine-readable storage media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 3.
14. One or more machine-readable storage media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 4.
15. One or more machine-readable storage media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 5.
16. One or more machine-readable storage media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 6.
17. One or more machine-readable storage media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 7.
18. One or more machine-readable storage media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 8.
19. One or more machine-readable storage media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 9.
20. One or more machine-readable storage media storing instructions which, when executed by one or more processors, cause performance of the method recited in claim 10.