Suppression and Deduplication of Place-Entities on Online Social Networks
In one embodiment, a method includes receiving, from a client system, a search query, identifying a plurality of place-entity nodes matching the search query, determining that one or more of the identified place-entity nodes are low-quality place-entity nodes based on the place names of the place-entity nodes having anomalous language characteristics, filtering the plurality of identified place-entity nodes to exclude the determined low-quality place-entity nodes, and generating one or more search results corresponding to the plurality of filtered place-entity nodes.
1 . A method comprising, by one or more computing systems:
receiving, from a client system, a search query;
identifying a plurality of place-entity nodes matching the search query;
determining that one or more of the identified place-entity nodes are low-quality place-entity nodes based on the place names of the place-entity nodes having anomalous language characteristics;
filtering the plurality of identified place-entity nodes to exclude the determined low-quality place-entity nodes; and
generating one or more search results corresponding to the plurality of filtered place-entity nodes.
2 . The method of claim 1 , further comprising:
sending, to the client system, instructions for presenting one or more of the search results responsive to the query.
3 . The method of claim 1 , further comprising identifying each of the post-filtered place-entity nodes as a valid place-entity node.
4 . The method of claim 1 , further comprising identifying each of the determined low-quality place-entity nodes as a junk place-entity node.
5 . The method of claim 1 , further comprising deleting each of the determined low-quality place-entity nodes.
6 . The method of claim 1 , wherein identifying the plurality of place-entity nodes matching the search query comprises:
identifying the plurality of place-entity nodes in a heterogeneous graph, wherein the heterogenous graph comprises a plurality of place-entity nodes, user nodes, and n-gram nodes, and wherein each place-entity node corresponds to a place-entity associated with a particular geographic location.
7 . The method of claim 6 , wherein determining that one or more of the identified place-entity nodes are low-quality place-entity nodes comprises:
assigning, for each identified place-entity node, an initial quality-score for the place-entity node; and
calculating, for each identified place-entity node, a final quality-score for the identified place-entity node, wherein each final quality-score is calculated by iteratively propagating the initial quality-scores corresponding to the identified place-entity nodes, respectively, through the place-entity nodes, user nodes, and n-gram nodes of the heterogeneous graph until the quality-scores associated with the place-entity nodes, user nodes, and n-gram nodes reach convergence, wherein the final quality-score for one or more of the identified place-entity nodes is below a threshold quality-score based on the place names of the place-entity nodes having anomalous language characteristics with respect to other place-entity nodes in the heterogeneous graph.
8 . The method of claim 7 , filtering the plurality of identified place-entity nodes to exclude the determined low-quality place-entity nodes comprises:
excluding each place-entity node having a final quality-score below the threshold quality-score.
9 . The method of claim 7 , wherein the initial quality-score for each identified place-entity node represents a measure of quality of the place-entity node.
10 . The method of claim 7 , wherein the initial quality-score for each identified place-entity node is based at least in part on social-networking interactions represented by one or more edges connected to the place-entity node.
11 . The method of claim 10 , wherein the social-networking interactions comprise one or more of check-ins, likes, comments, views, or reviews of a place-entity corresponding to the identified place-entity node.
12 . The method of claim 7 , wherein iteratively propagating the initial quality-scores corresponding to the identified place-entity nodes, respectively, through the place-entity nodes, n-gram nodes, and user nodes of the heterogeneous graph comprises performing a label-propagation process on the heterogeneous graph.
13 . The method of claim 7 , wherein iteratively propagating the initial quality-scores corresponding to the identified place-entity nodes, respectively, through the place-entity nodes, n-gram nodes, and user nodes of the heterogeneous graph comprises an iterative propagation process, each iteration of the propagation process comprising:
calculating, for each n-gram node connected to one or more identified place-entity nodes having an associated quality-score, an n-gram-node score based on the associated quality-scores of the place-entity nodes connected to the n-gram node;
calculating, for each user node connected to one or more identified place-entity nodes, a user-node score based on the associated quality-scores of the place-entity nodes connected to the user node;
calculating, for each identified place-entity node, an updated quality-score based on:
the n-gram-node scores associated with the n-gram nodes connected to the identified place-entity node; and
the user-node scores associated with the user nodes connected to the identified place-entity node; and
based on the updated quality-scores:
if the updated quality-scores associated with the identified place-entity nodes have converged, then exiting the iterative propagation process and using the updated quality-scores as the final quality-scores,
else performing another iteration of the propagation process.
14 . The method of claim 13 , wherein calculating the n-gram-node score comprises averaging the quality-scores associated with the place-entity nodes connected to the n-gram node.
15 . The method of claim 13 , wherein calculating the updated quality-score comprises determining a weighted average value of:
the n-gram-node scores associated with the n-gram nodes connected to the identified place-entity node; and
the user-node scores associated with the user nodes connected to the identified place-entity node.
16 . The method of claim 15 , wherein calculating the updated quality-score further comprises multiplying each of the n-gram-node scores and user-node scores by a respective weighting factor.
17 . The method of claim 13 , wherein the updated quality-scores associated with the identified place-entity nodes have converged when the sum of updated quality-scores, n-gram-node scores, and user-nodes for the heterogeneous graph changes between two iterations by a value less than a threshold value.
18 . The method of claim 1 , wherein:
the search query is associated with a further particular identified place-entity node, the particular identified place-entity node being associated with a particular canonical place-entity node, and
the one or more search results comprise:
if the particular identified place-entity node corresponds to one of the determined low-quality place-entity nodes, then the response comprises a reference to the particular canonical place-entity node;
else the response comprises a reference to the particular identified place-entity node.
19 . One or more computer-readable non-transitory storage media embodying software that is operable when executed to:
receive, from a client system, a search query;
identify a plurality of place-entity nodes matching the search query;
determine that one or more of the identified place-entity nodes are low-quality place-entity nodes based on the place names of the place-entity nodes having anomalous language characteristics;
filter the plurality of identified place-entity nodes to exclude the determined low-quality place-entity nodes; and
generate one or more search results corresponding to the plurality of filtered place-entity nodes.
20 . A system comprising: one or more processors; and a memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:
receive, from a client system, a search query;
identify a plurality of place-entity nodes matching the search query;
determine that one or more of the identified place-entity nodes are low-quality place-entity nodes based on the place names of the place-entity nodes having anomalous language characteristics;
filter the plurality of identified place-entity nodes to exclude the determined low-quality place-entity nodes; and
generate one or more search results corresponding to the plurality of filtered place-entity nodes.