One embodiment of the present invention provides a system for evaluating contact priority for a user. During operation, the system collects statistical information associated with interactions between the user and the user's contacts across multiple communication channels, and evaluates the contact priority for a contact based at least on the collected statistical information.
|
1. A computer-executable method for evaluating contact priority for a user, the method comprising:
collecting, by a first computer, statistical information associated with interactions between the user and the user's contacts across multiple communication channels, wherein the statistical information includes the user's communications and a duration of physical proximity detected between the user and a first contact, by mobile computing devices associated with the user and the first contact;
computing a first contact priority value for the first contact based at least on the collected statistical information;
receiving, by the first computer via a computer network, from a client computer associated with a high-priority second contact of the user, a second contact priority value specifying whether the second contact perceives the first contact as high-priority;
computing a cloud transitivity for the first contact based on the second contact priority value, wherein the cloud transitivity for the first contact specifies a number of high-priority contacts who perceive the first contact as high-priority;
computing an overall priority for the first contact based at least on the first contact priority value and the cloud transitivity for the first contact; and
presenting to the user, by the first computer on a display of the first computer:
a contact list comprising a plurality of the user's contacts ranked by contact priority values, including the overall priority computed for the first contact; and
in response to receiving a message from a high-priority contact, a notification that the received message is high-priority.
8. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for evaluating contact priority for a user, the method comprising:
collecting statistical information associated with interactions between the user and the user's contacts across multiple communication channels, wherein the statistical information includes the user's communications and a duration of physical proximity detected between the user and a first contact by mobile computing devices associated with the user and the first contact;
computing a first contact priority value for the first contact based at least on the collected statistical information;
receiving, by the first computer via a computer network, from a client computer associated with a high-priority second contact of the user, a second contact priority value specifying whether the second contact perceives the first contact as high-priority;
computing a cloud transitivity for the first contact based on the second contact priority value, wherein the cloud transitivity for the first contact specifies a number of high-priority contacts who perceive the first contact as high-priority;
computing an overall priority for the first contact based at least on the first contact priority value and the cloud transitivity for the first contact; and
presenting to the user, by the first computer on a display of the first computer:
a contact list comprising a plurality of the user's contacts ranked by contact priority values, including the overall priority computed for the first contact; and
in response to receiving a message from a high-priority contact, a notification that the received message is high-priority.
15. A computing system for evaluating contact priority for a user, the system comprising:
a processor;
a collecting mechanism configured to collect statistical information associated with interactions between the user and the user's contacts across multiple communication channels, wherein the statistical information includes the user's communications and a duration of physical proximity detected between the user and a first contact by mobile computing devices associated with the user and the first contact;
a priority-evaluation mechanism configured to compute a first contact priority value for the first contact based at least on the collected statistical information;
a priority-value receiving mechanism configured to receive, via a computer network, from a client computer associated with a high-priority second contact of the user, a second contact priority value specifying whether the second contact perceives the first contact as high-priority;
a cloud-transitivity evaluator configured to compute the cloud transitivity for the first contact based on the second contact priority value, wherein the cloud transitivity for the first contact specifies a number of high-priority contacts who perceive the first contact as high-priority; and
an updating mechanism configured to compute an overall priority for the first contact based at least on the first contact priority value and the cloud transitivity for the first contact; and
a display configured to present to the user:
a contact list comprising a plurality of the user's contacts ranked by contact priority values, including the overall priority computed for the first contact; and
in response to the computing system receiving a message from a high-priority contact, a notification that the received message is high-priority.
2. The method of
3. The method of
face-to-face communications;
offline communication channels; and
online communication channels.
4. The method of
5. The method of
7. The method of
9. The non-transitory computer-readable storage medium of
10. The non-transitory computer-readable storage medium of
face-to-face communications;
offline communication channels; and
online communication channels.
11. The non-transitory computer-readable storage medium of
12. The non-transitory computer-readable storage medium of
13. The non-transitory computer-readable storage medium of
14. The non-transitory computer-readable storage medium of
16. The system of
receive additional contact priority values for the first contact from one or more remote contact priority evaluation systems associated with other users; and
compute the cloud transitivity for the first contact based on the additional contact priority values.
17. The system of
face-to-face communications;
offline communication channels; and
online communication channels.
18. The system of
19. The system of
21. The system of
|
1. Field
This disclosure is generally related to determination of people prominence. More specifically, this disclosure is related to a method for deriving a user's perceived importance of communication partners across multiple communication channels, social networks, and contexts.
2. Related Art
The ubiquity of emails and the rapid development of social networks have greatly expanded an individual's realm of communications. A person may find himself, on a daily basis, being bombarded with tens, even hundreds of communication messages, including emails, instant messages, Facebook™ posts, Twitter™ tweets, phone calls, text messages, etc. Sifting through such a large number of messages for something relevant presents a challenge to the person.
Many approaches have been adopted to help a user tackle this “information overload.” For example, various email management schemes have been incorporated into commercially available email systems, such as Microsoft Outlook™ (trademark of Microsoft Corporation of Redmond, Wash.) or Eudora® (registered trademark of Qualcomm Inc. of San Diego, Calif.). For example, a sender of an email can flag an email as important, and a recipient of emails can filter the received emails into different folders based on various criteria, such as the sender of the email. Moreover, some social network sites, such as Facebook, prioritize a user's list of friends base on streams of communication between the user and his friends within that social network. However, these schemes only apply to a single communication channel, neglecting the fact that a user often interacts with people over multiple communication channels.
One embodiment of the present invention provides a system for evaluating contact priority for a user. During operation, the system collects statistical information associated with interactions between the user and the user's contacts across multiple communication channels, and evaluates the contact priority for a contact based at least on the collected statistical information.
In a variation on this embodiment, the system further obtains cloud transitivity associated with the contact.
In a further variation, evaluating the contact priority for the contact further involves calculating a priority factor based on the cloud transitivity associated with the contact.
In a variation on this embodiment, the multiple communication channels include: face-to-face communications, offline communication channels, and online communication channels.
In a variation on this embodiment, the statistical information associated with the interactions between the user and the user's contacts includes frequencies and/or durations of the interactions.
In a further variation, evaluating the contact priority for the contact involves ranking the contact among the user's contacts based on the frequencies and/or the durations of the interactions.
In a variation on this embodiment, the contact priority has a binary value.
In a variation on this embodiment, the contact priority has a numerical value ranging between 0 and 1.
In the figures, like reference numerals refer to the same figure elements.
The following description is presented to enable any person skilled in the art to make and use the embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
Overview
Embodiments of the present invention provide a method and a system for deriving a user's perceived priority of communication partners across multiple communication channels. The system calculates a person's priority in relation to the user based on a number of factors, including the amount of time the person spent with the user, the amount and frequency of online/offline communications between the person and the user, and the number of other “important” persons who have also perceived this person as important.
Unified Contact Priority
In order to assist a user in dealing with the information overload, many different approaches have been developed to differentiate among the large number of communication messages received by the user. Some email prioritizing techniques either rely on a priority flag set by the email sender or use a complex model to derive message importance.
One approach to differentiate among the messages is based on the importance of the originator or sender of the message. For example, if it is determined that a particular email received by a user is sent by his mother, who is of significant importance to the user, then this particular email can be determined to be important. Hence, it is important to have a system capable of deriving people priority.
Existing social networks have provided solutions to rank a user's contacts/friends by their priority for the user. However, these existing contact-priority-ranking solutions calculate the priority of a contact/friend only based on communication streams or connections between the contact/friend and the user within the realm of a particular social networking site, without integrating with other types of communication streams (such as emails or posts on a different social networking site), real-world communications (such as phone calls), and physical contexts. Hence, these contact-priority-ranking solutions can be flawed. For example, a user's mother, although being an important person in a user's life, may very rarely visit the user's social networking page, thus being ranked as a person of less importance to the user based on a contact-priority-ranking algorithm run by the social network site. Such an algorithm may cause the user to ignore a message posted by his mother on his social networking page.
In embodiments of the present invention, when deriving a contact's priority as perceived by the user, a number of factors associated with different modalities are considered, including the time spent together, multiple online/offline communication streams, and the cloud transitivity. In other words, all aspects of interaction between the user and his contacts are considered.
Physical-context collector 202 collects physical context associated with the user and his contacts. Note that the physical context includes information associated with direct physical interactions between the user and his contact person. For example, the user and his contact person may have a scheduled face-to-face meeting, or they may have a casual, unscheduled chat. In addition, being in the vicinity of each other, such as attending an activity (such as a conference or a party) together, although without direct verbal interaction, may also signal importance. Various techniques can be used to collect physical context. For example, physical-context collector 202 can access the user's electronic calendar (or calendars if the user maintains multiple calendars) in order to collect information associated with scheduled meetings. In addition, physical-context collector 202 can also interact with certain people-sensing systems that sense proximity of other people associated with the user. For example, a user's mobile phone may be configured to detect the presence of other mobile phones, which correspond to the presence of other people.
Communication consolidator 204 monitors and consolidates the user's online and offline communication with his contacts. Forms of online communication include, but are not limited to: email, instant messaging (IM), interactions (such as posts or comments) on social networking websites, web conferencing, etc. Forms of offline communications include, but not limited to: telephone calls (which involve either a landline telephone or a mobile phone) and Short Message Service (SMS) text messaging.
Cloud-transitivity evaluator 206 interacts with contact-priority evaluation systems associated with other users in order to extract the cloud-transitivity for a particular contact. Note that the cloud-transitivity of a particular contact is defined as the number of “important” contacts that perceive this particular contact as “important.”
The outputs of physical-context collector 202, communication consolidator 204, and cloud-transitivity evaluator 206 are sent to priority calculator 208, which calculates a unified contact priority based on the physical context and those aforementioned multiple communication channels.
In one embodiment, the contact priority is a binary variable with “1” indicating a contact being “important” and “0” indicating otherwise. In a further embodiment, the binary contact priority for a contact “P” can be formulated as:
Priority (P)=T(P) AND F(P) AND O(P) AND C(P), (1)
where T(P) is a binary variable that measures the time priority, F(P) a binary variable that measures the offline-communication priority, O(P) a binary variable that measures online-communication priority, and C(P) a binary variable that measures cloud-transitivity priority. Note that the AND log operations ensure that a contact will be perceived as important only if all four priority measures return “true.”
More specifically, time priority T(P) can be calculated as:
T(P)=((f1(P)/N<θ1) AND (f2(P)/N<θ2)) OR ((f3(P)/N<θ3) AND (f4(P)/N<θ4)). (2)
Offline-communication priority F(P) can be calculated as:
F(P)=(f5(P)/N<θ5) AND (f6(P)/N<θ6). (3)
Online-communication priority O(P) can be calculated as:
O(P)=S1(P) OR S2(P) . . . OR Si(P) . . . OR Sn(P),
Si(P)=(f7(P)/N<θ7) AND (f8(P)/N<θ7) AND (f9(P)/N<θ7)
where AND (f10(P)/N<θ7) AND (f11(P)/N<θ7).
AND (f12(P)/N<θ7) AND (f13(P)/N<θtime) (4)
Cloud-transitivity priority C(P) can be calculated as:
C(P)=f14(P)/Nimp>θ8. (5)
In Eqs. (2)-(5) N is the number of user contacts, Nimp is the number of important user contacts, f1(P) through f14 (P) are various ranking variables that describe how contact P ranks among all user contacts over different categories (such as time spent together with the user), and θ1-θ8 and θtime are the different threshold values to be set for the variables such that they determine what rank (in term of percentage) qualifies as being important for each category.
The different ranking variables are explained in detail below. f1(P) ranks contact P based on the amount of time the user spent for scheduled meetings that include contact P; f2(P) ranks contact P based on the occurrence frequency of the user's scheduled meetings that include contact P; f3(P) ranks contact P based on the amount of time the user spent in the vicinity of contact P; f4(P) ranks contact P based on the occurrence frequency of the user being in the vicinity of contact P; f5(P) ranks contact P based on the amount of time the user spent on offline/telephone communications with contact P; f6(P) ranks contact P based on the occurrence frequency of the offline/telephone communications between the user and contact P; f7(P) ranks contact P based on the number of all unfiltered online conversations/interactions that include both the user and contact P; f8 (P) ranks contact P based on the number of online conversations/interactions that are contributed by the user and include contact P; f9 (P) ranks contact P based on the number of emails sent from the user to contact P; f10(P) ranks contact P based on the number of reply emails (emails sent as replies to previous emails) sent from the user to contact P; f11(P) ranks contact P based on the number of emails sent from contact P to the user; f12(P) ranks contact P based on the number of reply emails sent from contact P to the user; f13(P) ranks contact P based on the number of days since the last email has been received from or sent to contact P by the user; and f14(P) ranks contact P based on the number of the user's important contacts (contacts who have been flagged by the user as important) who have also flagged contact P as important.
Note that, in Eq. (4), each S(P) calculates an online-communication priority function for a particular time interval. Hence, the corresponding ranking variables (f7(P) through f13(P)) for a particular S(P) are determined for that particular time interval. Also note that these priority functions may or may not overlap in time. Calculating a priority function for different time intervals is important because a user's online communications with a particular contact may be bursty in nature. For example, a temporary project may result in the user interacting with someone intensively over a brief time interval. Such bursts may be ignored if these communications are averaged over a long period.
The various thresholds (θ1-θ8 and θtime) can either be set manually by the user or be set to a default value by the system. In one embodiment, θ1-θ8 are set to the same percentage value (such as 10%). In one embodiment, θ1-θ8 are set to different percentage values.
In addition to using Eqs. (1)-(5) to derive contact priorities, in one embodiment, the system also allows a user to manually set contact priorities. For example, the user can go through his contact list and manually flag a contact as important.
In one embodiment, instead of being a binary variable, contact priorities can also be expressed by numeric values, where a larger number indicates a higher priority. In one embodiment, the numeric contact priority can be calculated as:
Priority*(P)=MAX[α1·*(P), α2·F*(P), α3 O*(P), α4·C*(P], (6)
where Priority*(P) is the numeric overall contact priority, T*(P) the numeric time priority, F*(P) the numeric offline-communication priority, O*(P) the numeric online-communication priority, C*(P) the numeric cloud-transitivity priority, and α1 through α4 are weight variables defining the influence of each priority value on the overall priority value.
The various numeric priorities, T*(P), F*(P), O*(P), and C*(P), can be calculated separately as:
T*(P)=MAX{MIN[α5·(1−f1(P)/N, α6·(1−f2(P)/N], MIN[α7·(1−f3(P)/N, α8·(1−f4(P)/N]} (7)
F*(P)=MIN[α9·(1−f5(P)/N, α10·(1−f6(P)/N]; (8)
O*(P)=MAX[o1·S*1(P), . . . oj·S*j(P), . . . on·S*n(P)],
S*j(P)=MIN[βj1·f7(P)/N, βj2·f8(P)/N, βj3·f9(P)/N, βj4·f10(P)/N, where βj5·f11(P)/N, βj6·f12(P)/N]*MAX[(1−f13(P)/θtime), 0.0] (9)
and
C*(P)=f14(P)/Nimp. (10)
Note that Eqs. (7)-(10) and Eqs. (2)-(5) share a number of common variables, such as N, Nimp, ranking variables f1(P) through f13(P), f14(P), and time threshold θtime. In addition, Eqs. (7)-(10) include a number of weight variables, such as α1, . . . , α10, 01, . . . , on, β11, . . . , βn6, having values between 0 and 1. These weight variables can be used to define the influence of each factor and sub-factor to the overall priority value. In one embodiment, the system allows the user to manually set these weight variables. For example, a user may consider his online activities more important, hence setting α3 at a higher value, such as 1.
Note that the aforementioned priority-evaluation equations (Eqs. (1)-(10)) are merely exemplary and should not limit the scope of this disclosure. In general, embodiments of the present invention provide a method that calculates a unified contact priority across multiple communication channels. The exact expression of the contact priority can be different from Eqs. (1)-(10). For example, instead of calculating a contact priority by ranking the contact among all user contacts, the system may calculate a contact priority using the volume of the communications (such as number of emails).
User Interface and Computer System
In one embodiment, the system allows the user to manually enter a contact priority value. For example, when the user attempts to set the priority for contact “Ben Scott,” the user can either directly fill in a number in the priority field or select an entry from a drop-down menu 412. In the example shown in
The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. The computer-readable storage medium includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing computer-readable media now known or later developed.
The methods and processes described in the detailed description section can be embodied as code and/or data, which can be stored in a computer-readable storage medium as described above. When a computer system reads and executes the code and/or data stored on the computer-readable storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the computer-readable storage medium.
Furthermore, methods and processes described herein can be included in hardware modules or apparatus. These modules or apparatus may include, but are not limited to, an application-specific integrated circuit (ASIC) chip, a field-programmable gate array (FPGA), a dedicated or shared processor that executes a particular software module or a piece of code at a particular time, and/or other programmable-logic devices now known or later developed. When the hardware modules or apparatus are activated, they perform the methods and processes included within them.
The foregoing descriptions of various embodiments have been presented only for purposes of illustration and description. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
7343365, | Jun 28 2002 | Microsoft Technology Licensing, LLC | Computer system architecture for automatic context associations |
8943053, | Feb 26 2010 | TELEFONAKTIEBOLAGET L M ERICSSON PUBL | Social data ranking and processing |
20120324001, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 27 2012 | BRDICZKA, OLIVER | Palo Alto Research Center Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028130 | /0255 | |
Apr 30 2012 | Palo Alto Research Center Incorporated | (assignment on the face of the patent) | / | |||
Apr 16 2023 | Palo Alto Research Center Incorporated | Xerox Corporation | CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVAL OF US PATENTS 9356603, 10026651, 10626048 AND INCLUSION OF US PATENT 7167871 PREVIOUSLY RECORDED ON REEL 064038 FRAME 0001 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNMENT | 064161 | /0001 | |
Apr 16 2023 | Palo Alto Research Center Incorporated | Xerox Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 064038 | /0001 | |
Jun 21 2023 | Xerox Corporation | CITIBANK, N A , AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 064760 | /0389 | |
Nov 17 2023 | Xerox Corporation | JEFFERIES FINANCE LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 065628 | /0019 | |
Feb 06 2024 | Xerox Corporation | CITIBANK, N A , AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 066741 | /0001 | |
Feb 06 2024 | CITIBANK, N A , AS COLLATERAL AGENT | Xerox Corporation | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT RF 064760 0389 | 068261 | /0001 |
Date | Maintenance Fee Events |
Sep 15 2016 | ASPN: Payor Number Assigned. |
Dec 27 2019 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Mar 04 2024 | REM: Maintenance Fee Reminder Mailed. |
Aug 19 2024 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jul 12 2019 | 4 years fee payment window open |
Jan 12 2020 | 6 months grace period start (w surcharge) |
Jul 12 2020 | patent expiry (for year 4) |
Jul 12 2022 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 12 2023 | 8 years fee payment window open |
Jan 12 2024 | 6 months grace period start (w surcharge) |
Jul 12 2024 | patent expiry (for year 8) |
Jul 12 2026 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 12 2027 | 12 years fee payment window open |
Jan 12 2028 | 6 months grace period start (w surcharge) |
Jul 12 2028 | patent expiry (for year 12) |
Jul 12 2030 | 2 years to revive unintentionally abandoned end. (for year 12) |