U.S. patent application number 14/504074 was filed with the patent office on 2016-01-21 for determining an aspect of a physical location based on interactions associated with the physical location.
The applicant listed for this patent is Google Inc.. Invention is credited to Quang Anh Duong, Boris Mazniker, Tamas Sarlos, Christopher James Schilling, Finnegan Southey.
Application Number | 20160019556 14/504074 |
Document ID | / |
Family ID | 55074730 |
Filed Date | 2016-01-21 |
United States Patent
Application |
20160019556 |
Kind Code |
A1 |
Mazniker; Boris ; et
al. |
January 21, 2016 |
DETERMINING AN ASPECT OF A PHYSICAL LOCATION BASED ON INTERACTIONS
ASSOCIATED WITH THE PHYSICAL LOCATION
Abstract
Methods and apparatus for determining aspects of locations based
on interactions of users with the locations. In some
implementations, an aspect of a location may be determined based on
comparing a first interaction measure for the location to a second
measure. The first interaction measure may be determined based on a
first group of interactions that are associated with the location.
In some implementations, the second measure may be determined based
on a second group of interactions that include additional
interactions that are in addition to the interactions of the first
group.
Inventors: |
Mazniker; Boris; (San
Francisco, CA) ; Southey; Finnegan; (San Francisco,
CA) ; Schilling; Christopher James; (Santa Clara,
CA) ; Duong; Quang Anh; (San Francisco, CA) ;
Sarlos; Tamas; (Cupertino, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Google Inc. |
Mountain View |
CA |
US |
|
|
Family ID: |
55074730 |
Appl. No.: |
14/504074 |
Filed: |
October 1, 2014 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
62025341 |
Jul 16, 2014 |
|
|
|
Current U.S.
Class: |
705/7.29 |
Current CPC
Class: |
G01C 21/3679 20130101;
G06F 16/9537 20190101; G06Q 30/0201 20130101; G06F 16/29
20190101 |
International
Class: |
G06Q 30/02 20060101
G06Q030/02 |
Claims
1. A computer implemented method, comprising: determining a group
of interactions from one or more databases, the determining based
on association of the interactions of the group to a physical
location; determining a first interaction measure for the physical
location based on the group of the interactions; determining a
second interaction measure based on a second group that includes
additional interactions that are in addition to the interactions of
the group, the additional interactions including at least one of:
additional physical location interactions associated with one or
more additional physical locations that are in addition to the
physical location, and temporally distinct interactions associated
with the physical location and temporally distinct from the
interactions of the group; and assigning an aspect to the physical
location based on comparison of the first interaction measure to
the second interaction measure.
2. The method of claim 1, wherein the additional interactions of
the second group include the additional physical location
interactions and further comprising: including the additional
physical location interactions in the second group based on
similarity between the associated additional physical locations and
the physical location.
3. The method of claim 2, further comprising determining the
similarity based on at least one of a category of the physical
location and a geographic area of the physical location.
4. The method of claim 1, wherein the interactions of the group are
associated with one or more first time periods and the additional
interactions of the second group include the temporally distinct
interactions and are associated with one or more second time
periods.
5. The method of claim 4, wherein the first interaction measure is
indicative of a quantity of interactions with the physical location
during the first time periods and the anticipated interaction
measure is indicative of a second quantity of interactions during
the second time periods; and wherein the aspect is indicative of a
difference in the quantity of interactions and the second quantity
of interactions.
6. The method of claim 5, wherein the second time periods include a
range of dates earlier in time than the first time periods, and
wherein the aspect is indicative of one of: positive trending when
the difference indicates an increase that satisfies a threshold; a
newly opened business when the difference satisfies a newly opened
business threshold; and a closed business when the difference
indicates a closed business threshold.
7. The method of claim 5, wherein the first time periods are a
first time range across multiple dates and the second time periods
are a second time range across multiple dates, and wherein the
aspect is indicative of popularity of the physical location during
the first time range.
8. The method of claim 1, wherein the first interaction measure is
indicative of a measure of repeat interactions with the physical
location as indicated by the interactions of the group and the
second interaction measure is indicative of repeat interactions
with the additional physical locations as indicated by the
additional interactions of the second group.
9. The method of claim 8, wherein determining the first interaction
measure includes: determining the measure of repeat interactions
based on determining a frequency for each of one or more quantities
of repeat interactions; and determining the first interaction
measure based on the measure of repeat interactions.
10. The method of claim 1, wherein the first interaction measure is
indicative of a quantity of interactions with the physical
location.
11. The method of claim 1, further comprising: providing, to a
computing device of a user, an indication of the aspect of the
physical location in combination with additional information
related to the location.
12. The method of claim 1, further comprising: receiving, from a
computing device of a user, a selection indicative of the aspect;
identifying the physical location based at least in part on the
selection and the assignment of the aspect to the physical
location; and providing, to the computing device, information
related to the physical location.
13. The method of claim 1, further comprising: receiving a query
from a computing device of a user; identifying information related
to the physical location as responsive to the query; and ranking
the information relative to additional information responsive to
the query based at least in part on the aspect.
14. The method of claim 13, wherein the query includes one or more
terms and ranking the information relative to the additional
information based at least in part on the aspect includes:
determining a relationship between the aspect and at least a term
of the terms; and determining the ranking based on the
relationship.
15. The method of claim 1, wherein determining the group of
interactions includes determining the group of interactions only
when a quantity of the interactions of the group satisfies a
privacy threshold.
16. A system, comprising: memory storing instructions; one or more
processors operable to execute the instructions in the memory,
wherein the instructions comprise instructions to: determine a
group of interactions from one or more databases, the determining
based on association of the interactions of the group to a physical
location; determine a first interaction measure for the physical
location based on the group of the interactions; determine a second
interaction measure based on a second group that includes
additional interactions that are in addition to the interactions of
the group, the additional interactions including at least one of:
additional physical location interactions associated with one or
more additional physical locations that are in addition to the
physical location, and temporally distinct interactions associated
with the physical location and temporally distinct from the
interactions of the group; and assign an aspect to the physical
location based on comparison of the first interaction measure to
the second interaction measure.
17. A computer implemented method, comprising: determining a group
of interactions from one or more databases, the determining based
on associations of the interactions of the group with a physical
location; determining a first interaction measure based on the
interactions of the group of interactions; determining a second
measure; and assigning an aspect to the physical location based on
comparison of the first interaction measure and the second
measure.
18. The method of claim 17, wherein the first interaction measure
is indicative of a measure of repeat interactions with the physical
location as indicated by the interactions of the group and the
second measure is one of a measure indicative of repeat
interactions with one or more additional physical locations and a
predetermined threshold value.
19. The method of claim 18, wherein the second measure is
determined based on a second group of interactions.
20. The method of claim 18, wherein determining the first
interaction measure includes: determining the measure of repeat
interactions based on determining a frequency for each of one or
more quantities of repeat interactions; and determining the first
interaction measure based on the measure of repeat interactions.
Description
BACKGROUND
[0001] Aspects of physical locations, such as businesses, may be
determined from Internet documents that are related to the physical
locations and/or explicit input of individuals that are related to
the physical locations. For example, a webpage related to a
business may be analyzed to identify a category of the business, a
location of the business, etc. As another example, reviews
submitted by users related to a business may be analyzed to
determine an overall rating of the business. As yet another
example, an owner of the business or another user may manually
input information to a service that maintains business information
to have the business information reflected by the service. For
instance, an owner may enter the address, operating hours, webpage,
and other information related to the business.
SUMMARY
[0002] This specification is directed generally to methods and
apparatus for determining aspects of physical locations, such as
businesses, based on aggregating and analyzing online interactions
of users with the physical locations. In some implementations,
interactions of users with physical locations that may be utilized
to determine aspects of the physical locations include, for
example, directional queries seeking directions to the locations
(e.g., driving, walking, and/or public transportation directions),
searches related to the locations (e.g., map-based searches and/or
searches for Internet documents), location data from mobile devices
(e.g., based on GPS, Wi-Fi, and/or other sensors), calendar entries
related to the locations, photos or other media items of the user
having metadata related to the locations (e.g., geotags of the
media items), check-ins to the locations, reviews of the locations,
and/or starring or otherwise flagging the locations on a map and/or
other interfaces. A determined aspect of a physical location may be
assigned to the physical location and stored as an assigned aspect
of the physical location in one or more databases.
[0003] In some implementations, a first interaction measure for a
physical location may be determined based on a group of
interactions associated with the location. For example, a first
interaction measure may be determined for a location that is
indicative of a quantity of interactions and/or duration of
interactions with the location as indicated by the interactions of
the group. The interaction measure may be compared to a second
measure to determine an aspect of the location, and the aspect may
be assigned to the location.
[0004] In some implementations, the second measure may include one
or more static or dynamic thresholds. For example, the first
interaction measure may be indicative of duration of interactions
with the location and the second measure may be a static threshold
duration. If the first interaction measure fails to satisfy the
threshold duration, the aspect may be indicative of a "quick-stop"
business (e.g., a quick-bites restaurant) and if it satisfies the
threshold duration, the aspect may be indicative of a "long-stop"
business (e.g., a long sit-down restaurant).
[0005] In some implementations, the second measure may additionally
or alternatively include an additional interaction measure that is
based on a second group of interactions that include additional
interactions that are in addition to the group of interactions
utilized to determine the first interaction measure. For example,
the second group may include interactions associated with the
physical location that are temporally distinct from the
interactions of the group of interactions utilized to determine the
first interaction measure. For instance, the first interaction
measure may be indicative of a quantity of interactions with the
location during one or more first time periods and the second
measure may be indicative of a quantity of interactions with the
location during one or more second time periods. Also, for example,
the second group may include interactions associated with one or
more additional physical locations that are in addition to the
location. For instance, the first interaction measure may be
indicative of a quantity of interactions with the location and the
second measure may be indicative of a quantity of interactions with
one or more locations that are similar to the location. Additional
description of example aspects that may be determined and example
techniques for determining such aspects are provided herein.
[0006] One or more determined aspects assigned to a physical
location may be utilized for various online services. For example,
the determined aspects of a business may be provided for display in
combination with other information related to the business. Also,
for example, the determined aspects of a business may be utilized
to identify and provide the business to a user in response to a
user selection indicative of the aspect. For instance, a user
selection of "trending restaurants near me" may be utilized to
identify restaurants near the user that are associated with an
aspect of "trending up". Also, for example, the determined aspects
of a business may be utilized to rank information related to the
business that is identified as responsive to a query or other
information request of a user. For instance, the information
related to the business may be promoted if the business is
associated with a determined aspect of "trending up". Also, for
instance, the query may include one or more terms such as "popular
with locals", the business may be associated with a related aspect
indicating popularity with locals, and the ranking of the
information related to the business may be promoted in search
results provided responsive to the query.
[0007] In some implementations, a method is provided that includes
the steps of: determining a group of interactions from one or more
databases, the determining based on association of the interactions
of the group to a physical location; determining a first
interaction measure for the physical location based on the group of
the interactions; determining a second interaction measure based on
a second group that includes additional interactions that are in
addition to the interactions of the group, the additional
interactions including at least one of: additional physical
location interactions associated with one or more additional
physical locations that are in addition to the physical location,
and temporally distinct interactions associated with the physical
location and temporally distinct from the interactions of the
group; and assigning an aspect to the physical location based on
comparison of the first interaction measure to the second
interaction measure.
[0008] This method and other implementations of technology
disclosed herein may each optionally include one or more of the
following features.
[0009] The additional interactions of the second group may include
the additional physical location interactions and may further
include the step of including the additional physical location
interactions in the second group based on similarity between the
associated additional physical locations and the physical location.
The method may further include the step of: determining the
similarity based on at least one of a category of the physical
location and a geographic area of the physical location.
[0010] The interactions of the group may be associated with one or
more first time periods and the additional interactions of the
second group may include the temporally distinct interactions and
may be associated with one or more second time periods. The first
interaction measure may be indicative of a quantity of interactions
with the physical location during the first time periods and the
anticipated interaction measure may be indicative of a second
quantity of interactions during the second time periods. The aspect
may be indicative of difference in the quantity of interactions and
the second quantity of interactions. The second time periods may be
a range of dates earlier in time than the first time periods, and
the aspect may be indicative of positive trending when the
difference indicates an increase that satisfies a threshold. The
second time periods may be a range of dates earlier in time than
the first time period, and the aspect is indicative of a newly
opened business when the difference satisfies a newly opened
business threshold. The second time periods may be a range of dates
earlier in time than the first time period, and the aspect may be
indicative of a closed business when the difference indicates a
closed business threshold. The first time periods may be a first
time range across multiple dates and the second time periods may be
a second time range across multiple dates, and the aspect may be
indicative of popularity of the physical location during the first
time range. The first and second time ranges may each be one of:
one or more segments of a day, and one or more days of the
week.
[0011] The first interaction measure may be indicative of a measure
of repeat interactions with the physical location as indicated by
the interactions of the group and the second interaction measure
may be indicative of repeat interactions with the additional
physical locations as indicated by the additional interactions of
the second group. The aspect may be indicative of customer loyalty.
The step of determining the first interaction measure may include:
determining the measure of repeat interactions based on determining
a frequency for each of one or more quantities of repeat
interactions; and determining the first interaction measure based
on the measure of repeat interactions. The one or more quantities
may be a plurality of discrete quantities.
[0012] The first interaction measure may be indicative of a
quantity of interactions with the physical location. The aspect may
be a measure of popularity.
[0013] The step of identifying the group of interactions may
include determining the group based on association of the
interactions of the group to at least one of: a time period and a
user attribute. The additional interactions of the second group may
include the additional physical location interactions and the
method may further include the steps of: including the additional
physical location interactions in the group based on similarity
between the associated additional physical locations and the
physical location; and identifying the additional interactions
based on an association of the additional interactions to at least
one of: the time period and the user attribute.
[0014] The method may further include the step of: providing, to a
computing device of a user, an indication of the aspect of the
physical location in combination with additional information
related to the location.
[0015] The method may further include the steps of: receiving, from
a computing device of a user, a selection indicative of the aspect;
identifying the physical location based at least in part on the
selection and the assignment of the aspect to the physical
location; and providing, to the computing device, information
related to the physical location.
[0016] The method may further include the steps of: receiving a
query from a computing device of a user; identifying information
related to the physical location as responsive to the query; and
ranking the information relative to additional information
responsive to the query based at least in part on the aspect. The
query may include one or more terms and the step of ranking the
information relative to the additional information based at least
in part on the aspect may further include the steps of: determining
a relationship between the aspect and at least a term of the terms;
and determining the ranking based on the relationship.
[0017] The step of determining the group of interactions may
include the step of determining the group of interactions only when
a quantity of the interactions of the group satisfies a privacy
threshold.
[0018] Other implementations may include a non-transitory computer
readable storage medium storing instructions executable by a
processor to perform a method such as one or more of the methods
described above. Yet another implementation may include a system
including memory and one or more processors operable to execute
instructions, stored in the memory, to perform a method such as one
or more of the methods described above.
[0019] It should be appreciated that all combinations of the
foregoing concepts and additional concepts described in greater
detail herein are contemplated as being part of the subject matter
disclosed herein. For example, all combinations of claimed subject
matter appearing at the end of this disclosure are contemplated as
being part of the subject matter disclosed herein.
BRIEF DESCRIPTION OF THE DRAWINGS
[0020] FIG. 1 illustrates an example environment in which aspects
of physical locations may be determined based on interaction
associated with the physical locations.
[0021] FIG. 2 illustrates an example of how an aspect of a physical
location may be determined and assigned to the physical location
based on interaction associated with the physical location.
[0022] FIG. 3 is a flow chart illustrating an example method of
assigning an aspect to a physical location based on interaction
associated with the physical location.
[0023] FIG. 4 illustrates an example interface that includes
information provided based on aspects of locations.
[0024] FIG. 5 illustrates an example architecture of a computer
system.
DETAILED DESCRIPTION
[0025] FIG. 1 illustrates an example environment in which aspects
of physical locations may be determined based on interactions
associated with the physical locations. The example environment
includes a client device 105, an aspect determination system 120,
and an information system 140. Aspect determination system 120 may
be implemented in one or more computers that communicate, for
example, through a network (not depicted). Aspect determination
system 120 is an example of a system in which the systems,
components, and techniques described herein may be implemented
and/or with which systems, components, and techniques described
herein may interface.
[0026] Client device 105, aspect determination system 120, and
information system 140 each include one or more memories for
storage of data and software applications, one or more processors
for accessing data and executing applications, and other components
that facilitate communication over a network. The operations
performed by aspect determination system 120, and/or information
system 140 may be distributed across multiple computer systems.
[0027] Client device 105 may be a computer coupled to the aspect
determination system 120, the information system 140, and/or other
component (e.g., interactions database 152 and/or a component
managing interactions database 152) through one or more networks
101 such as a local area network (LAN) or wide area network (WAN)
such as the Internet. The client device 105 may be, for example, a
desktop computing device, a laptop computing device, a tablet
computing device, a mobile phone computing device, a computing
device of a vehicle of the user (e.g., an in-vehicle communications
system, an in-vehicle entertainment system, an in-vehicle
navigation system), or a wearable apparatus of the user that
includes a computing device (e.g., a watch of the user having a
computing device, glasses of the user having a computing device).
Additional and/or alternative client devices may be provided.
[0028] As described herein, in determining aspects of physical
locations, the aspect determination system 120 may utilize
interactions from interactions database 152 that are indicative of
interactions of users with the physical locations. One or more of
the interactions may be indicative of activities of users via
computing devices such as client device 105. For the sake of
brevity, only a single client device 105 is illustrated in FIG. 1
and described in some examples herein. However, activities of
multiple users via multiple client devices may be utilized in
determining aspects of physical locations. Moreover, although a
user will likely operate a plurality of computing devices, and
aspects of physical locations may be determined based on user
actions via multiple of the computing devices, for the sake of
brevity, certain examples described in this disclosure will focus
on the user operating client device 105.
[0029] Client device 105 may operate one or more applications
and/or components such as those that facilitate user selections
and/or input that may be indicative of a user interaction related
to a physical location, those that provide location data that may
be indicative of a user interaction related to a physical location,
and/or those that facilitate provision of search results,
suggestions, and/or other information related to physical locations
based on output of information system 140. These applications
and/or components may include, but are not limited to, a browser
106, a position coordinate component, such as a global positioning
system ("GPS") component 109, and so forth. In some instances, one
or more of these applications and/or components may be operated on
multiple client devices operated by the user. Other components of
client device 105 not depicted in FIG. 1 that may provide
indications of interactions of the user with a physical location
may include, but are not limited to, a mapping application (e.g.,
based on a search for the location and/or driving directions to or
from the location), a calendar application (e.g., based on an entry
identifying the location), a phone application (e.g., based on a
call to or from a number associated with the location), an email
application (e.g., based on an e-mailed receipt from the location,
e-mailed reservations for the location), a social networking
application (e.g., based on a post related to the location, a
check-in to the location, a review of the location), a virtual
wallet application (e.g., based on a purchase associated with the
location), a search application (e.g., based on searches associated
with the physical location), a camera application (e.g., based on a
geotag included in photos captured via the camera), and so forth.
Some of the aforementioned example components may be standalone
components or may optionally be accessed via the browser 106 or
another component.
[0030] Interactions database 152 stores interactions of a plurality
of users that are associated with physical locations. Generally, an
interaction of interactions database 152 that is associated with a
physical location includes an identifier of that physical location
such as an address (e.g., latitude/longitude, street address), an
alias, and/or an entity identifier. The interaction may optionally
include additional information related to the interaction such as,
for example, a date of the interaction, time(s) associated with the
interaction (e.g., a single time, a time range, and/or time
indicative of duration of the interaction), a confidence measure
(e.g., based on confidence in the source of the interaction), and
so forth. Interactions of users with the physical locations that
may be stored in interactions database 152 include, for example,
directional queries seeking driving directions to the locations,
searches related to the locations, location data from mobile
devices, check-ins to the locations, reviews of the locations,
calendar entries identifying the locations, media items that
include geotags identifying the locations, extracted reservation or
receipt information (e.g., extracted from emails) related to the
locations, browsing history of the user related to the locations
(e.g., indicating one or more documents accessed by the user such
as webpages), and/or starring or otherwise flagging the locations
on a map and/or other interface.
[0031] Various components may provide interactions for storage in
interactions database 152 and a separate component may optionally
maintain interactions database 152. Examples of components that may
provide interactions for storage in interactions database 152
include, for example, client device 105 and other computing devices
of other users, information system 140 and other systems, an email
system executing on one or more computing devices, navigation
systems and/or GPS-enabled devices, and/or one or more other
components that may identify interactions with a location. Although
only a single interactions database 152 is illustrated, in various
implementations interactions database 152 may include multiple
databases. For example, a first database may include directional
queries related to locations and a second database may include
location data from mobile computing devices of users that are
related to locations. In some implementations, interactions
database 152 may include entries of a plurality of users and access
to entries of a user in database may be allowed for only the user
and/or one or more other users or components authorized by the user
such as aspect determination system 120.
[0032] In situations in which the systems described herein collect
personal information about users, or may make use of personal
information, the users may be provided with an opportunity to
control whether programs or features collect user information
(e.g., information about a user's social network, social actions or
activities, profession, a user's preferences, or a user's current
geographic location), or to control whether and/or how to receive
content from the content server that may be more relevant to the
user. Also, certain data may be treated in one or more ways before
it is stored or used, so that personal identifiable information is
removed. For example, a user's identity may be treated so that no
personal identifiable information can be determined for the user,
or a user's geographic location may be generalized where geographic
location information is obtained (such as to a city, ZIP code, or
state level), so that a particular geographic location of a user
cannot be determined. Thus, the user may have control over how
information is collected about the user and/or used.
[0033] Generally, point of interest ("POI") database 154 includes a
collection of entities and includes, for each of one or more of the
entities, a mapping to one or more properties associated with the
entity and/or one or more other entities related to the entity. For
example, the POI database 154 may be a knowledge graph, such as a
local knowledge graph that includes entities associated with
businesses and/or other locations and includes properties for each
of the entities such as phone numbers, addresses, open hours, most
popular hours, etc.
[0034] In some implementations, POI database 154 may be utilized to
identify one or more locations that are associated with
interactions of interactions database 152. For example, physical
locations identified in POI database 154 may be associated with an
address, longitude and latitude, and/or other coordinates that may
be utilized to map interactions of interactions database 152 with
physical locations. Also, for example, each of one or more physical
locations identified in POI database 154 may be associated with one
or more aliases for the physical location and/or aliases for
properties of the location and those aliases may be utilized to map
interactions of interactions database 152 with physical locations.
As described herein, grouping engine 122 may utilize information
from POI database 154 to determine a group of interactions from
interactions database 152. For example, grouping engine 122 may
identify a point of interest in POI database 154 that is associated
with longitude and latitude coordinates and further determine a
group of interactions that are associated with those same longitude
and latitude coordinates and/or associated with coordinates within
a threshold distance of those longitude and latitude coordinates.
For instance, grouping engine 122 may identify Restaurant 1 and a
latitude and longitude for Restaurant 1 from POI database 154; and
grouping engine 122 may further determine a group of interactions
that are associated with locations that are within 50 yards of the
identified latitude and longitude of Restaurant 1. Also for
example, Restaurant 1 may be associated with a street address in
POI database 154 and grouping engine 122 may identify one or more
interactions from interactions database 152 that include
navigational directions to the street address of Restaurant 1.
Also, for example, grouping engine 122 may identify one or more
aliases for Restaurant 1 in POI database 154 and determine a group
of interactions from interactions database 152 that are associated
with the one or more of the aliases (and optionally associated with
additional properties such as a location near Restaurant 1 or an
alias of a category associated with Restaurant 1).
[0035] In this specification, the term "database" will be used
broadly to refer to any collection of data. The data of the
database does not need to be structured in any particular way, or
structured at all, and it can be stored on storage devices in one
or more locations. Thus, for example, the databases 152, 154,
and/or 158 may each include multiple collections of data, each of
which may be organized and accessed differently. Also, for example,
all or portions of the databases 152, 154, and/or 158 may be
combined into one database and/or may contain pointers and/or other
links between entries in the database(s). Also, in this
specification, the term "entry" will be used broadly to refer to
any mapping of a plurality of associated information items. A
single entry need not be present in a single storage device and may
include pointers or other indications of information items that may
be present on other storage devices. For example, an entry that
identifies an interaction in interactions database 152 may include
multiple nodes mapped to one another, with each node including an
identifier of an entity or other information item that may be
present in another data structure and/or another storage
medium.
[0036] Generally, aspect determination system 120 determines one or
more aspects to assign to a location based on interactions of users
with the location. In various implementations, aspect determination
system 120 may include a grouping engine 122, an interaction
measure engine 124, and an aspect engine 126. In some
implementations, one or more of engines 122, 124, and/or 126 may be
omitted. In some implementations, all or aspects of one or more of
engines 122, 124, and/or 126 may be combined. In some
implementations, one or more of engines 122, 124, and/or 126 may be
implemented in a component that is separate from aspect
determination system 120.
[0037] Generally, grouping engine 122 determines groups of user
interactions that are each associated with a physical location or a
group of physical locations. For example, grouping engine 122 may
determine a group of interactions from interactions database 152
that includes interactions of users with a particular physical
location such as a business, a landmark, a tourist attraction, or a
park. As described herein, the grouping engine 122 may optionally
take one or more additional parameters into account in determining
a group of user interactions--that are in addition to the group
being associated with a physical location or a group of physical
locations. For example, the grouping engine 122 may determine a
group of interactions that are associated with one or more physical
locations and that are also associated with: one or more dates such
as particular dates, particular date ranges, and/or particular
day(s) of the week; one or more times such as a single time, a time
range, and/or times indicative of durations of the interactions; at
least a threshold confidence measure (e.g., based on confidence in
the source of the interaction); one or more user attributes such as
an attribute indicating a particular user group; one or more
particular sources (e.g., only location data, only driving
directions); and so forth.
[0038] For example, grouping engine 122 may determine a group of
interactions of users at a location at one or more time periods
(e.g., interactions of users at Restaurant 1 between 11 am and 1
pm). Also, for example, grouping engine 122 may determine a group
of interactions that includes interactions of users at multiple
locations of a category of locations within a geographic area
(e.g., interactions of users with pizza restaurants in a particular
neighborhood). Which parameters are utilized by grouping engine 122
in determining one or more groups of user interactions may be based
at least in part on the desired aspect to be determined about a
location. Examples are provided herein of example aspects that may
be determined for a location and parameters that may optionally be
taken into account in determining one or more groups of
interactions for utilization in determining the example
aspects.
[0039] In some implementations, grouping engine 122 may determine a
first group of interactions associated with a location and
determine a second group of interactions associated with one or
more locations that are similar to the location. For example,
grouping engine 122 may determine a first group of interactions
associated with a restaurant and determine a second group of
interactions that includes interactions associated with other
locations that have cuisine type(s), price(s), clientele, a
geographic area, a location category (e.g., restaurant), and/or
other attributes that are similar to attributes of the location. In
some implementations, similarity may be defined to require exact
matching between one or more attributes (e.g., the restaurant and
the other locations must have a cuisine type in common) and/or soft
matching between one or more attributes (e.g., the restaurant and
the other locations must be associated with average prices that are
within a threshold of one another). A geographic area may be
defined with various levels of granularity such as a zip code, a
neighborhood, a city, a region, an area code, and so forth.
[0040] In some implementations of determining a group, grouping
engine 122 may determine that one or more interactions are outliers
and not include the interactions in the group. Outlying
interactions may be identified and removed from groups based on one
or more techniques, such as truncated means and/or Winsorized
means, and/or interactions that are below a threshold duration
and/or above a threshold duration may be discarded. For example,
grouping engine 122 may not include interactions that are
associated with a duration of visit that is greater than a
threshold as they may be indicative of interactions of employees
instead of customers. Also, for example, grouping engine 122 may
identify opening hours and/or closing hours of a location and
determine that interactions from users that are present before
opening time and/or after closing time are likely employees. Also,
for example, in some implementations one or more interactions may
be associated with a confidence level and only interactions that
satisfy a threshold confidence level may be included by grouping
engine 122 in a group of interactions. For example, an interaction
that indicates multiple potential locations may be associated with
a low confidence level if an exact location may not be accurately
determined (e.g., the interaction may be based on inaccurate
location data that indicates an area that encompasses multiple
points of interest). In some implementations, grouping engine 122
may determine a group of interactions associated with a physical
location only when the count of indicated interactions satisfying
parameters for that group satisfies a threshold. For example,
grouping engine 122 may determine a group of user interactions only
when the count of indicated interactions for the group is above 100
interactions. In some implementations, grouping engine 122 may
determine a group of interactions associated with a physical
location only when the count of users who have interactions
satisfying parameters for that group satisfies a threshold. For
example, grouping engine 122 may determine a group of interactions
only when the group includes interactions from at least X number of
users. In some implementations, groups of interactions may be fit
to a distribution, such as a log-normal distribution and/or a
Weibull distribution, and the parameters of the distribution may be
utilized by one or more components.
[0041] Generally, interaction measure engine 124 determines one or
more interaction measures based on the one or more groups of
interactions determined by grouping engine 122. For example,
grouping engine 122 may determine a group of interactions that
includes interactions of users with a location and interaction
measure engine 124 may determine one or more measures indicative of
durations of interactions of the users indicated by the group of
interactions. For instance, the measures may include one or more of
an average or median duration of visits and/or a continuous or
discrete distribution of durations of visits (e.g., a mean with a
standard deviation, a vector including all lengths of visits or a
count of lengths of visits for one or more durations (e.g., a count
of durations from 0-5 minutes, a count of durations from 5-10
minutes, etc.)). Also, for example, interaction measure engine 124
may determine, based on a group of interactions for a location, one
or more measures indicative of a quantity of visits of users to the
location. For instance, the measures may include one or more of a
raw count of the interactions of the group, an average and/or
median count per day or other time period, and/or a continuous or
discrete distribution of quantity of interactions (e.g., a mean
with a standard deviation, a vector including raw counts or
averages for each of a plurality of time periods (e.g., a count of
interactions each day for the past two weeks; a count of
interactions during a first time period, a second time period,
etc.)). Which measures are determined by interaction measure engine
124 may be based at least in part on the desired aspect to be
determined about a location. Examples are provided herein of
example aspects that may be determined for a location and one or
more measures that may optionally be taken into account in
determining the example aspects.
[0042] In some implementations, interaction measure engine 124 may
determine an interaction measure that is based on an average of one
or more of the interactions of the group of interactions. For
example, grouping engine 122 may determine a group of location data
interactions for a location between the hours of 11 am and 1 pm
(i.e., lunch hours) on multiple dates and interaction measure
engine 124 may determine an interaction measure indicative of an
average duration of interactions with the location that initiate
during that time. Also, for example, grouping engine 122 may
determine a group of location data interactions for the location
between the hours of 5 pm and 9 pm (i.e., dinner hours) on multiple
dates and interaction measure engine 124 may determine an
interaction measure indicative of an average duration of
interactions with the location that initiate during that time.
[0043] In some implementations, interaction measure engine 124 may
determine one or more measures indicative of quantities of
interactions during a plurality of discrete intervals. For example,
grouping engine 122 may determine a group of interactions of users
with Restaurant 1 and interaction measure engine 124 may determine
an interaction measure that indicates the number of interactions
that occurred between 11 am and 12 pm, between 12 pm and 1 pm,
between 1 pm and 2 pm, etc. Also, for example, grouping engine 122
may determine a group of interactions for all restaurants in the
same city as Restaurant 1 and interaction measure engine 124 may
determine an interaction measure that indicates the average number
of interactions per restaurant for the same discrete intervals.
[0044] In some implementations, interaction measure engine 124 may
determine one or more interaction measures based on confidence
values associated with the interactions. For example, interactions
with a location may be associated confidence values indicative of a
degree of confidence the interaction indicates actual interaction
with the location, as described herein. Interaction measure engine
124 may utilize associated confidence values to weight one or more
of the interactions. As an example, interaction measure engine 124
may weight an online check-in of a user at a location more heavily
than a non-directional search related to the location.
[0045] Generally, aspect engine 126 determines an aspect of a
location based on the one or more interaction measures determined
by interaction measure engine 124 and assigns the aspect to the
location. For example, the aspect engine 126 may associate the
aspect with the location in POI database 154. As one example of
determining an aspect, interaction measure engine 124 may determine
an interaction measure that indicates an average interaction time
at a restaurant location, and aspect engine 126 may compare that
interaction measure to a second measure to determine whether the
restaurant location is a "quick bites" location or a longer "sit
down" location. For example, the second measure may be a threshold
such as 30 minutes and if the interaction measure is less than the
threshold, the aspect of the restaurant may be indicative of a
"quick bites" location. Also, for example, the second measure may
be based on an average interaction time of other similar locations
(e.g., other restaurants in the area and/or other restaurants of
the same type), and if the interaction measure is less than the
average, or more than a threshold less than the average, the aspect
of the restaurant may be indicative of a "quick bites" location. As
another example of determining an aspect, interaction measure
engine 124 may determine a first interaction measure that indicates
the average quantity of daily dinnertime interactions with a
restaurant over the last 6 months and a second interaction measure
that indicates the average quantity of daily dinnertime
interactions with the restaurant over the last week. The aspect
engine 126 may determine that the second interaction measure
indicates an increase in interactions relative to the first
interaction measure and determine an aspect of "trending up" for
the restaurant.
[0046] In some implementations, aspect engine 126 may optionally
utilize one or more rules in determining aspects for locations. For
example, a first rule may be utilized to determine a first aspect
for all locations or a class of locations and a second rule may be
utilized to determine a second aspect for all locations or a class
of locations. As one example of a rule that may be utilized, aspect
engine 126 may identify a location has an aspect indicative of
"trending up" based on determining that a difference between a
first measure indicative of a quantity of more recent in time
interactions and a second measure indicative of a quantity of less
recent in time interactions satisfies a threshold value,
percentage, and/or proportion. For instance, aspect engine 126 may
determine that a restaurant is trending up if the first interaction
measure and the second interaction measure are indicative of an
increase in interactions of at least 20% (e.g., a restaurant may
have an aspect of "trending up" if a first measure indicative of an
average quantity of daily interactions over the last week is 50%
greater than a second interaction measure of an average quantity of
interactions over the last six months). As another example of a
rule that may be utilized, aspect engine 126 may identify a
location has an aspect indicative of "trending up slightly" based
on determining that a difference between a first measure indicative
of a quantity of more recent in time interactions and a second
measure indicative of a quantity of less recent in time
interactions satisfies a first threshold value, and an aspect of
"trending up significantly" if the difference satisfies a second
threshold value. Which techniques are employed by aspect engine 126
to determine an aspect may be based at least in part on the desired
aspect to be determined, the group(s) determined by grouping engine
122, and/or based on the interaction measures determined by
interaction measure engine 124. Examples are provided herein of
example aspects that may be determined for a location and one or
more example techniques that may optionally be utilized in
determining the aspects.
[0047] In some implementations, aspect engine 126 may determine an
aspect of a location based on multiple groups of interactions for
the location. As one example, grouping engine 122 may determine a
first group of interactions for a location during lunch hours and a
second group of interactions for the location during dinner hours.
Interaction measure engine 124 may determine a first measure
indicative of average user interactions at lunch (based on the
first group) and a second measure indicative of average
interactions at dinner (based on the second group). Aspect engine
126 may determine an aspect indicative of the location being "more
popular for lunch than dinner" based on determining that the first
measure is greater than the second measure and/or based on
determining that the proportion of interactions that occur during
lunch (i.e., the first measure) is indicative of the location
having more business during lunch than during dinner. As another
example, grouping engine 122 may determine a first group of
interactions for a location that are associated weekdays and a
second group of interactions that are associated with weekends.
Interaction measure engine 124 may determine a first measure that
is indicative of average daily interactions on the weekdays (based
on the first group) and a second measure that is indicative of
average daily interactions on the weekends (based on the second
group), and aspect engine 126 may determine an aspect that
indicates whether the location is more popular on weekdays or
weekends. For example, aspect engine 126 ay determine an aspect of
"Popular Weekday Location" if the interactions measures determined
by interaction measure engine 124 are indicative of more average
daily weekday interactions than weekend interaction. As yet another
example, aspect engine 126 may determine that a location has
recently opened or closed based on comparing a first interaction
measure indicative of a quantity of interactions with the location
over a recent time period (e.g., the last 5 days) to a second
interaction measure indicative of a quantity of interactions over a
time period that includes less recent in time interactions (e.g.,
the last 3 months, optionally including the last 5 days). For
example, if the comparison indicates a significant increase in
interactions, an aspect of "recently opened" may be determined for
the location. Also, for example, if the comparison indicates a
significant decrease in interactions and the first interaction
measure indicates relatively few or no recent interactions, an
aspect of "recently closed" may be determined for the location.
[0048] In some implementations, aspect engine 126 may determine an
aspect of a location based on comparing a first interaction measure
determined based on a group that includes only interactions with
the location to a second interaction measure determined based on a
group that includes interactions with one or more other locations
that are in addition to the location. For example, grouping engine
122 may determine a group of interactions for all Italian
restaurants in a geographic area and interaction measure engine 124
may determine a first interaction measure based on the group that
is indicative of the average quantity of daily interactions per
restaurant. Additionally, grouping engine 122 may determine a
second group of interactions for a particular Italian restaurant in
the geographic area and interaction measure engine 124 may
determine a second interaction measure based on the group that is
indicative of the average quantity of daily interactions with the
particular Italian restaurant. Based on comparing the first measure
to the second measure, aspect engine 126 may determine an aspect
that is indicative of the popularity of the particular Italian
restaurant. For example, the aspect may be indicative of the
restaurant being a popular Italian restaurant if the average
quantity of daily interactions for the restaurant is greater than
the average quantity of daily interactions for all Italian
restaurants in the geographic area.
[0049] Generally, information system 140 utilizes aspects that have
been determined by aspect determination system 120 in providing
information to a user. The information system 140 may utilize the
aspects, for example, in determining the information to provide
(e.g., the aspects may be included in the information) and/or
determining when or how to provide the information (e.g., the
aspects may be utilized to select the information and/or to rank
the information relative to other information). For example,
information system 140 may identify user interest in one or more
locations and provide information related to the one or more
locations based on determined aspects of the locations.
[0050] Information system 140 may be, for example, a search engine,
a notification and/or suggestion system, and/or one or more other
systems that may provide information related to locations to a
computing device of a user based on implicit and/or explicit
indications from the computing device (e.g., based on a query from
the computing device, a selection of a user via the computing
device, based on access of an application via the computing device
such as access of a suggestion system). Information system 140 may
optionally be in communication with information database 158.
Information database 158 may include information items that may be
utilized by information system 140 to provide information to the
user. For example, information database 158 may include an index of
documents, webpages, and/or other information items that may be
utilized to identify information to provide to the user. As one
example, information system 140 may be a search engine and the
information database 158 may be a search index utilized to identify
documents responsive to search queries. As described herein, such
documents may optionally be ranked for search queries based on
determined aspects that are associated with the documents. In some
implementations, information system 140 and/or another component
may optionally update information database 158 based on aspects
determined by aspect determination system 120. For example, when
information database 158 is an index of webpages and other
documents, the index may be updated to include information related
to aspects determined herein (e.g., a webpage associated with a
location may be indexed based on determined aspects of that
location).
[0051] In some implementations, information system 140 may select
and/or rank search results responsive to a submitted search query
based on determined aspects. For example, a user may provide a
search query of "trendy lunch places" and information system 140
may identify information in information database 158 related to one
or more nearby locations that are restaurants. Based on inclusion
of "trendy" in the search query, the information system 140 may
further identify that one or more of the identified locations are
associated with determined aspects that are indicative of serving
lunch and/or of recently "trending up" in popularity. The
information system 140 may select such identified locations for
providing in response to the search query and/or promote the
ranking of such locations in search results provided in response to
the search query. As another example, a user may provide a query of
"new restaurants" and information system 140 may identify one or
more locations in POI database 154 that are associated with an
aspect indicating that the restaurant has recently opened (e.g.,
based on presence of "new" in the search query) and select
information related to such locations for providing in response to
the query and/or for providing more prominently in response to the
query.
[0052] In some implementations, one or more search results may be
selected and/or ranked based on determined aspects, even when terms
of a query do not indicate interest in the determined aspects. For
example, the user may provide a search query of "Italian
restaurants" and information system 140 may identify one or more
webpages responsive to the query via information database 158.
Information system 140 may identify one or more locations in POI
database 154 that are associated with the webpages and further
identify one or more aspects associated with the locations.
Information system 140 may provide search results that include
local Italian restaurants and restaurants that have been associated
with a "trending up" aspect may be promoted and/or otherwise
displayed more prominently than one or more other search
results.
[0053] As described, in some implementations information system 140
may provide information related to a location independent of any
query submission of a user. For example, information system 140 may
be a notification or suggestion system that may provide information
related to locations having "highly popular" or "trending up"
aspects to a user without the user submitting a query related to
the location. For instance, the information may be "pushed" to the
user and/or provided in response to the user accessing the
suggestion system or selecting an interface element in the
suggestion system. Also, for example, information system 140 may
provide one or more suggestions responsive to a selection of the
user that is not the user explicitly typing, speaking, or otherwise
inputting a query. For instance, the user may select a user
interface element to request "popular restaurants" nearby and
information system 140 may select information related to one or
more restaurants based on determined aspects that indicate the
restaurants are "popular". Also, for example, information system
140 may be a mapping application that may provide a map with
various points of interest for display on a computing device of a
user. Information system 140 may determine to include one or more
of the points of interest based on association of the points of
interest to one or more determined aspects and/or may determine to
display one or more of the points of interest more prominently
and/or with additional descriptions based on association of the
points of interest to one or more determined aspects. Also, for
example, a "recently opened" location may be promoted in ranking of
information provided to a user. For example, the user may not be
provided with restaurants in a location if the user is familiar
with the area. A restaurant that is associated with an aspect of
"recently opened" may be provided to the user even if the user is
familiar with the area and would not otherwise be provided
restaurants in the area.
[0054] Referring to FIG. 4, an example interface is provided that
includes information based on determined aspects of locations. In
some implementations, information system 140 may determine the
information included in the interface of FIG. 4 and provide the
interface to client device 105 for presentation to a user. For
example, information system 140 may be a search engine and the
interface may be provided to the user via browser 106 in response
to the user providing a search query. Also, for example,
information system 140 may be a suggestion system and the interface
may be provided via a suggestion application of the client device
105. In some implementations, only parts of the example interface
of FIG. 4 may be provided to the user and/or the information may be
provided via one or more alternate interfaces.
[0055] Lunch suggestions 400 may be provided to the user based on
one or more aspects that are identified by information system 140
as related to the locations. For example, lunch suggestions 400 may
be provided to the user in response to the user providing a query
of "popular lunch restaurants", the user otherwise indicating an
interest in lunch restaurants (e.g., selecting an interface element
for "lunch restaurants"), or based on an identified context of the
user (e.g., it is close to lunch time at the user's current
location). In some implementations, lunch suggestions 400 may
include locations that information system 140 has identified in POI
database 154 as being associated with a "popular lunch location"
aspect and the listing of locations may be provided based on the
aspects. In some implementations, the ordering of the locations in
the lunch suggestions 400 may be determined based on one or more
aspects associated with the locations in POI database 154. For
example, a location that is associated with an aspect of trending
in popularity may be promoted in ranking in the list of provided
locations.
[0056] Favorite restaurant suggestions 405 may be provided to a
user via client device 105, either as a separate interface or as
part of an interface with other information of FIG. 4. In some
implementations, favorite restaurant suggestions 405 may include
one or more locations that are identified by information system 140
from POI database 154 and that are associated with a "favorite
restaurants of locals" aspect. For example, grouping engine 122 may
determine, for each of the restaurants of 405, a first group of
interactions for the restaurant that are associated with "locals"
(e.g., those who live near the restaurant) and a second group of
interactions for the restaurant that includes "non-locals" (e.g.,
all interactions for the restaurant). Interaction measure engine
124 may determine first and second measures based on the groups,
and aspect engine 126 may determine, based on the measures, that
the restaurant is popular with users that are locals. Information
system 140 may provide the listed restaurants of 405 based on
determining they are each associated with a "favorite restaurants
of locals" aspects. Each of the restaurants also includes
additional information, such as a popularity rating (indicated by
stars) and a category of the restaurant (i.e., pizza and steak)
that may be identified via information database 158 and/or POI
database 154. In some implementations, one or more of the locations
may be selected and/or ranked based on additional associated
aspects (e.g., trending restaurants may be promoted, more popular
restaurants may be promoted).
[0057] Search results 410 may be provided in an interface with
other information as illustrated in FIG. 4 and/or may be provided
as a separate interface. For example, information system 140 may be
a search engine and search results 410 may be provided to the user
via client device 105 in response to a query provided by the user.
In some implementations, information that is provided with search
results may be identified via information database 158 and the
results may be selected and/or ranked based on aspects associated
with locations that are related to the search results, as described
herein.
[0058] While depicted as separate components in FIG. 1, in various
implementations, all or part of aspect determination system 120
and/or information system 140 may optionally be combined. Also, in
some implementations, information system 140 may be omitted.
[0059] FIG. 2 illustrates an example of how an aspect of a physical
location may be determined and assigned to the physical location
based on interactions associated with the physical location.
Interactions of users with locations are stored in interactions
database 152 and grouping engine 122 may identify one or more of
the interactions and determine a group of the interactions. For
example, grouping engine 122 may determine a group of interactions
that includes interactions for a particular location, for a
category of locations, for a category of users, for a particular
time of the day, and/or based on one or more other criteria. In
some implementations, grouping engine 122 may identify the
locations based at least in part on information in POI database
154. For example, grouping engine 122 may identify a location in
POI database 154 and determine a group of interactions with the
identified location (e.g., all interactions with the location,
interactions at one or more times of day and/or over a period of
time). Also, for example, grouping engine 122 may determine
interactions of interactions database 152 pertain to a particular
location based on information in POI database 154 (e.g., based on
mapping interactions to aliases, addresses, or other information of
a location in POI database 154).
[0060] As an example, grouping engine 122 may identify a location
of Restaurant 1, an Italian restaurant, and the coordinates and/or
address of the location. Grouping engine 122 may further determine
a group of interactions from interactions database 152 that
includes interactions with Restaurant 1 over the past month.
Grouping engine 122 may provide one or more groups of interactions
to interaction measure engine 124 to determine one or more
interaction measures for each group. For example, for each of the
groups, interaction measure engine 124 may determine an interaction
measure that is indicative of an average number of interactions per
day. Also, for example, interaction measure engine 124 may
determine an interaction measure that indicates an average number
of interactions per hour of each day over the time period of the
interactions of each group. Interaction measure engine 124 may
provide the interaction measures to aspect engine 126.
[0061] In some implementations, only one group of interactions may
be determined and only one interaction measure may be determined
for a location, as represented by the dotted lines for the second
group of interactions and second interaction measure in FIG. 2
(indicating those aspects are optional). For example, the first
interaction measure may be percentages of the total interactions
that occurred per hour at the location (e.g., 5% of total average
interactions occurred between 10 am and 11 am, 15% of total average
interactions occurred between 11 am and 12 pm, etc.). The second
measure may not be determined from a group of interactions but may
instead be a threshold value. For example, the second measure may
be a threshold value of 85% of interactions during lunchtime, and
aspect engine 126 may determine that the location is a lunch
restaurant by comparing the threshold value to the percentage of
total interactions per hour for lunch hours.
[0062] Aspect engine 126 may determine one or more aspects for the
location based on the interaction measures and associate the
aspects with the location in the POI database 154. For example,
interaction measure engine 124 may determine a first interaction
measure that indicates the average interactions during lunchtime
for the month that is most recent in time and a second interaction
measure that indicates the average interactions during lunchtime
for the last six months. Aspect engine 126 may determine an aspect
of "trending in popularity for lunch" by comparing the interaction
measures and determining that the average lunchtime interactions
has increased by at least a threshold amount.
[0063] As another example of an aspect that may be determined for a
location, aspect engine 126 may determine an aspect that indicates
whether the customers of a location are loyal to the location (and
optionally the extent of the loyalty). For example, grouping engine
122 may determine a group of interactions of users with Restaurant
1. Interaction measure engine 124 may determine, based on the
group, an interaction measure that indicates the number of users
that have interacted with the location once, the number of users
that have interacted with the location twice, three times, etc.
Also, for example, interaction measure engine 124 may determine a
second measure that indicates the average number of times a group
of users has interacted with other locations once, twice, three
times, etc. (e.g., based on groups that include interactions of
additional locations such as other restaurants of a similar price
range in the same area). Aspect engine 126 may determine an aspect
that indicates the restaurant has a loyal clientele by comparing
the counts (or proportion) of repeat customer of the location with
the repeat customer count (or proportion) of one or more other
locations (e.g., the more repeat customers, the more loyal).
[0064] As another example of determining a customer loyalty aspect
of Italian Restaurant A, a group of interactions may be determined
that are associated with Italian Restaurant A. If it is desirable
to determine loyalty among users having certain attributes, in some
implementations the interactions of the group may optionally be
selected by grouping engine 122 based on an association with one or
more of those attributes. An interaction measure indicative of a
measure of repeat interactions with Italian Restaurant A may be
determined by interaction measure engine 124 based on the group of
interactions. For instance, the interaction measure may be an
average quantity of interactions by users, a median quantity of
interactions by users, and/or a continuous or discrete distribution
of quantity of interactions (e.g., a mean with a standard
deviation, a vector including raw counts or frequencies for each of
a plurality of interaction quantities such as one interaction, two
interactions, three interactions, etc.).
[0065] As another example, grouping engine 122 may determine a
group of interactions for Restaurant 1 and additionally determine a
group of interactions for a group of other Italian restaurants.
Interaction measure engine 124 may determine measures of
interactions for Restaurant 1 and other Italian restaurants. Aspect
engine 126 may determine an aspect of the restaurant related to the
popularity of Restaurant 1 based on the interaction measures. For
example, aspect engine 126 may determine that Restaurant 1 is a
popular location to have Italian for dinner by determining that the
interactions with Restaurant 1 at dinner is greater than an average
number of interactions of other Italian restaurants at dinner.
[0066] As an example of determining an aspect of Italian Restaurant
A that indicates trending of Italian Restaurant A, a group of
interactions may be determined by grouping engine 122 that are
associated with Italian Restaurant A and that are associated with a
recent time period (e.g., the most recent X days). If it is
desirable to determine trending among users having certain
attributes, in some implementations the interactions of the group
may optionally be selected by grouping engine 122 based on an
association with one or more of those attributes. An interaction
measure indicative of a quantity of interactions with Italian
Restaurant A may be determined by interaction measure engine 124
based on the group of interactions. For instance, the interaction
measure may be an average quantity of the interactions per day over
the most recent X days. A second interaction measure may be
determined from a second group of interactions that includes
interactions over the next most recent X days. Aspect engine 126
may determine an aspect for the location based on comparing the
first interaction measure and the second interaction measure. For
example, aspect engine 126 may determine an aspect that the
location is trending if the interaction measures indicate that the
average interactions in the last X days is greater than in the X
days before.
[0067] FIG. 3 is a flow chart illustrating an example method of
assigning an aspect to a physical location based on interaction
associated with the physical location. For convenience, the
operations of the flow chart are described with reference to a
system that performs the operations. This system may include
various components of various computer systems. For instance, some
operations may be performed by one or more components of the aspect
determination system 120, such as grouping engine 122, interaction
measure engine 124, and aspect engine 126. Moreover, while
operations of the method of FIG. 3 are shown in a particular order,
this is not meant to be limiting. One or more operations may be
reordered, omitted or added.
[0068] At step 300, a group of interactions associated with a
physical location is determined. In some implementations, the group
of interactions may be determined by a component that shares one or
more aspects with grouping engine 122. In some implementations, a
group of interactions may be determined that includes interactions
of users based on one or more characteristics of the users. For
example, grouping engine 122 may determine a group of interactions
that are associated with certain user attributes and/or certain
user groups. In some implementations, grouping engine 122 may
determine a group of interactions that occurred during a time
period. For example, grouping engine 122 may determine a group of
interactions that occurred during a particular week, month, day of
the week, and/or during a particular time of day over a period of
time (e.g., interactions during lunchtime over the last month).
[0069] At step 305, a first interaction measure for the physical
location is determined based on the interactions of the group. The
first interaction measure may be determined by a component that
shares one or more characteristics with interaction measure engine
124. In some implementations, an interaction measure may be a
statistic based on the interactions. For example, an interaction
measure for a group of interactions may include an average of
interactions over a period of time, an average number of
interactions per hour over a period of time, and/or a proportion of
average daily interactions that occurred each hour over a period of
time (e.g., percentage of customers for the day that were lunch
customers, percentage of customers for the day that were dinner
customers).
[0070] At step 310, a second interaction measure for the physical
location is determined. In some implementations the second
interaction measure may be one or more static or dynamic
thresholds. For example, the first interaction measure may be
indicative of duration of interactions with the location and the
second measure may be a static threshold duration. In some
implementations, the second measure may additionally or
alternatively include an additional interaction measure that is
based on a second group of interactions that include additional
interactions that are in addition to the group of interactions
utilized to determine the first interaction measure. For example,
grouping engine 122 may determine a second group of interactions
for one or more different times, for one or more different
locations, and/or for one or more different groups of users from
the interactions that were included in the first group of
interactions (step 300). For example, the group of interactions of
step 300 may include interactions with Italian Restaurant 1 and the
second measure may be based on interactions with all Italian
restaurants in a geographic area near Italian Restaurant 1
(optionally including the interactions with Italian Restaurant
1).
[0071] At step 315, an aspect of the physical location is
determined based on a comparison of the first and second
interaction measures, and the aspect is assigned to the physical
location. The aspect of a physical location may be determined by a
component that shares one or more characteristics with aspect
engine 126 and may be assigned to the location based on association
with the location in one or more databases such as POI database
154. In some implementations, aspect engine 126 may determine an
aspect for a location that is related to the trending popularity of
the location. For example, aspect engine 126 may determine that a
restaurant is trending up in popularity based on a first
interaction measure determined based on recent interactions and a
second interaction measure based on less recent interactions, and
determining that the interaction measures are indicative of a
recent increase in popularity. Also, for example, aspect engine 126
may determine a restaurant has recently closed based on interaction
measures for the location that are indicative of few or no current
interactions with the location. In some implementations, aspect
engine 126 may determine an aspect based on a first interaction
measure that is related to the location and a second interaction
measure that is related to one or more other locations (either
including or not including the location). For example, the first
interaction measure may be based on interactions with a restaurant
and the second interaction measure may be based on a second group
of interactions with other restaurants that are similar to the
first restaurant. For instance, aspect engine 126 may compare the
interaction measures and determine that the first restaurant is
more popular that the average interactions of other restaurants
serving a similar type of cuisine, of a similar price range, and/or
in a similar geographic area.
[0072] FIG. 5 is a block diagram of an example computer system 510.
Computer system 510 typically includes at least one processor 514
which communicates with a number of peripheral devices via bus
subsystem 512. These peripheral devices may include a storage
subsystem 524, including, for example, a memory subsystem 525 and a
file storage subsystem 526, user interface output devices 520, user
interface input devices 522, and a network interface subsystem 516.
The input and output devices allow user interaction with computer
system 510. Network interface subsystem 516 provides an interface
to outside networks and is coupled to corresponding interface
devices in other computer systems.
[0073] User interface input devices 522 may include a keyboard,
pointing devices such as a mouse, trackball, touchpad, or graphics
tablet, a scanner, a touchscreen incorporated into the display,
audio input devices such as voice recognition systems, microphones,
and/or other types of input devices. In general, use of the term
"input device" is intended to include all possible types of devices
and ways to input information into computer system 510 or onto a
communication network.
[0074] User interface output devices 520 may include a display
subsystem, a printer, a fax machine, or non-visual displays such as
audio output devices. The display subsystem may include a cathode
ray tube (CRT), a flat-panel device such as a liquid crystal
display (LCD), a projection device, or some other mechanism for
creating a visible image. The display subsystem may also provide
non-visual display such as via audio output devices. In general,
use of the term "output device" is intended to include all possible
types of devices and ways to output information from computer
system 510 to the user or to another machine or computer
system.
[0075] Storage subsystem 524 stores programming and data constructs
that provide the functionality of some or all of the modules
described herein. For example, the storage subsystem 524 may
include the logic to perform selected aspects of the method of FIG.
3, as well as one or more of the operations performed by grouping
engine 122, interaction measure engine 124, aspect engine 126, and
so forth.
[0076] These software modules are generally executed by processor
517 alone or in combination with other processors. Memory 525 used
in the storage subsystem can include a number of memories including
a main random access memory (RAM) 530 for storage of instructions
and data during program execution and a read only memory (ROM) 532
in which fixed instructions are stored. A file storage subsystem
526 can provide persistent storage for program and data files, and
may include a hard disk drive, a floppy disk drive along with
associated removable media, a CD-ROM drive, an optical drive, or
removable media cartridges. The modules implementing the
functionality of certain implementations may be stored by file
storage subsystem 526 in the storage subsystem 527, or in other
machines accessible by the processor(s) 517.
[0077] Bus subsystem 512 provides a mechanism for letting the
various components and subsystems of computer system 510
communicate with each other as intended. Although bus subsystem 512
is shown schematically as a single bus, alternative implementations
of the bus subsystem may use multiple busses.
[0078] Computer system 510 can be of varying types including a
workstation, server, computing cluster, blade server, server farm,
or any other data processing system or computing device. Due to the
ever-changing nature of computers and networks, the description of
computer system 510 depicted in FIG. 5 is intended only as a
specific example for purposes of illustrating some implementations.
Many other configurations of computer system 510 are possible
having more or fewer components than the computer system depicted
in FIG. 5.
[0079] While several implementations have been described and
illustrated herein, a variety of other means and/or structures for
performing the function and/or obtaining the results and/or one or
more of the advantages described herein may be utilized, and each
of such variations and/or modifications is deemed to be within the
scope of the implementations described herein. More generally, all
parameters, dimensions, materials, and configurations described
herein are meant to be exemplary and that the actual parameters,
dimensions, materials, and/or configurations will depend upon the
specific application or applications for which the teachings is/are
used. Those skilled in the art will recognize, or be able to
ascertain using no more than routine experimentation, many
equivalents to the specific implementations described herein. It
is, therefore, to be understood that the foregoing implementations
are presented by way of example only and that, within the scope of
the appended claims and equivalents thereto, implementations may be
practiced otherwise than as specifically described and claimed.
Implementations of the present disclosure are directed to each
individual feature, system, article, material, kit, and/or method
described herein. In addition, any combination of two or more such
features, systems, articles, materials, kits, and/or methods, if
such features, systems, articles, materials, kits, and/or methods
are not mutually inconsistent, is included within the scope of the
present disclosure.
* * * * *