Patent Publication Number: US-8117272-B1

Title: Matching social network users

Description:
RELATED APPLICATION INFORMATION 
     This application is a continuation of application Ser. No. 12/622,729 which was filed Nov. 20, 2009, and is titled “Matching Social Network Users”, which claims priority from provisional Application No. 61/116,304 filed Nov. 20, 2008 and entitled “System and Method for Matching Social Network Users” which is incorporated herein by reference. 
    
    
     NOTICE OF COPYRIGHTS AND TRADE DRESS 
     A portion of the disclosure of this patent document contains material which is subject to copyright protection. This patent document may show and/or describe matter which is or may become trade dress of the owner. The copyright and trade dress owner has no objection to the facsimile reproduction by anyone of the patent disclosure as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright and trade dress rights whatsoever. 
     BACKGROUND 
     1. Field 
     This disclosure relates to matching of individuals one to another through online systems or through use of mobile, wireless, and/or electronic devices. 
     2. Description of the Related Art 
     Social network services have been in existence for a number of years. Social network services typically consist of online communities of individuals who share common background, attributes, interests and/or activities, and who are interested in meeting and/or interacting with other individuals in the network. Most social network services are web based and provide a variety of ways for users to interact, such as e-mail, instant messaging, posting blogs, and posting comments on each other&#39;s social network profile pages. A number of social network services have developed solutions to accommodate users participating in social networks through use of wireless devices, and other portable electronic devices. 
     Conventional social networking solutions, such as online social networks, typically require a user who wants to find other members that share similar interests to designate the specific attributes sought at the same time as the user wants to find these members. It is often difficult to find users with desired qualities because conventional social networking solutions typically have many users, and entering desired attributes often returns too many potential matches. Searching for other members that a user would find of interest oftentimes requires sorting through the profiles and data of many other members and/or performing multiple searches to find individuals of interest. 
     Users of many conventional social networks may also search for individuals that one may have interest in by scanning though the profiles and data of users associated with already-known members. In some instances, meeting individuals who have an established relationship with an already-known individual may require a user to request permission from a user&#39;s already-known contact, the person of interest, or both. This results in a delay for the user before the user can meet the person of interest as well as additional user effort. 
     Further, although a user may find another member in a social network desirable and may want to interact with that individual, it is often difficult to determine if the user himself or herself has attributes that the other individual would find desirable. 
    
    
     
       DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a first flowchart of a process for matching social network users. 
         FIG. 2  is a second flowchart of a process for matching social network users. 
         FIG. 3  is a screen display of a registration interface. 
         FIG. 4  is a screen display of an attribute definition interface. 
         FIG. 5  is a screen display displaying potential matches. 
         FIG. 6  is a screen display of a profile and rating interface. 
         FIG. 7  is a screen display of an email message creation interface. 
         FIG. 8  is a system block diagram of a system for matching social network users. 
     
    
    
     DETAILED DESCRIPTION 
     Systems and methods for recommending matches of people in social networks are described. The systems and methods provide a registered user of a social network system (a user) with a mechanism for locating and interacting with other people that may or may not be registered users of the social network system (prospects). A user may find prospects by entering explicit attributes that the user is looking for in prospects, through the user&#39;s ratings of other users (e.g., prospects), and through other data such as data gathered about the user&#39;s interaction with other users. This may go beyond the explicit attributes that a user would want a prospect to have to infer the prospects that a user would have interest in based on the ratings the user has entered about other users, the user&#39;s interaction with the system, and other data. 
     The process for a user to find prospects of interest may initiate with a user registering with an online system. For example, the user may be asked to enter basic identifying information into the system, and may be prompted to enter further information (e.g., profile information) about the user as the user would like. A user may create a user profile. A user may attach files such as one or more digital photograph files to their profile. The user may also be prompted to enter the attributes that the user would want to find in matched prospects. 
     Explicit attribute data and rating data may be entered by the user and used to find prospects of interest. The system may use a model to determine the similarity of one user to another user based on scores that the system maintains about the characteristics of each user (e.g., attribute scores) and scores that represent the type of prospects that a user would want to meet (e.g., matching scores). For example, a user may enter data about the user stating that the user is funny and good-looking. The system, in this example, would capture a high score for the “funny” attribute category and a high score for a “physical attractiveness” attribute category. As an extension of the present example, the user may enter attributes regarding the prospects that the user would want to meet. For example, the user may enter that the user would be interested to meet “funny” and “physically attractive” users, and the matching scores for these two categories would resultantly be high. 
     According to the model, a variance (e.g., proximity) between the attribute scores of a user and the matching scores of prospects, and the matching scores of a user and the attribute scores of prospects may be obtained. As the attributes scores indicate the attributes that a user possesses, and the matching scores indicate the attributes that a user is seeking, by calculating the variance between the user&#39;s matching and the prospect&#39;s attribute scores, and the prospect&#39;s matching scores and the user&#39;s attribute scores, a nearest-to match can be derived. This type of matching is referred to as attribute and matching score proximity matching, herein. Look-up tables may be used instead of or in addition to calculations. 
     Further, the system may use the rating scores of users and prospects to validate and adjust the attribute scores and matching scores of the users and the prospects. As an extension of the prior example, if collected data indicates that a user likes funny individuals and the user rates a prospect low, the system may infer that the prospect is not funny. 
     Some prospects may have similar ratings to other prospects. These similarities may be used to indicate prospects which are similar one to another and a degree of similarity. A user may be matched with prospects that are most-like those the user has rated higher in the past, where the prospects have, in turn, rated users similar to the user higher in the past. This type of matching is referred to as rating score proximity matching. 
     Attribute and matching score proximity data and rating score proximity data may be combined with explicit attribute data and other data to recommend prospect matches for the user. A relevance engine may be used in the matching process. 
     A user may view stored information about prospects and interact with prospects. If a user is interested in contacting or learning more about a recommended (e.g., matched) prospect, the user may view the profile and other information entered by the prospect. Once a related button or link is selected, a document (e.g., a web page or voice message) may be presented to the user that comprises more detailed profile information and/or other information about the prospect. The user can also initiate communication with the user. If the user wishes to communicate with the prospect, the user can elect to send a message to the user. For example, the user may select a command button or link that causes the system to transmit a response message to the user via a computer network. 
     A user may rate a prospect by selecting a button that indicates how good of a match the prospect is for the user. A prospect may be able to rate a user by selecting a button that indicates how good of a match the user is for the prospect. Following, these ratings may be used by the matching model to further refine the matches that are offered to each user. 
     The Overall Matching Process: 
     Referring now to  FIG. 1  there is shown a flow chart of a process for locating prospects that may be of interest to a user.  FIG. 1  illustrates how a user may interact with prospects and for users and prospects to rate (e.g., provide a rating for) one another.  FIG. 1  illustrates how to refine what is known about each user and subsequent matching based on the ratings given by one user to the next. 
     The Registration Process: 
     The process may initiate at  100  when the user (e.g., a user wishing to locate and/or interact with one or more persons of interest), registers with the system. The user enters information about the client user at  101 . Various kinds of information may be obtained from the user. The system may, for example, provide the user with an interface for entering a user name, a password, and other information associated with the user in order to identify the user. 
     Users may enter information about themselves through a registration interface such as that shown in  FIG. 3 . Such information may comprise a user&#39;s gender  132 , birth date  133 , relationship status  134 , height in feet  135  and inches  136 , zip code  137 , body type  138 , and other profile information. Profile information may comprise any type of information that would help define and/or explain the user&#39;s character traits, personality physical attributes and/or other personal attributes. 
     Referring again to  FIG. 1 , the information entered by a user at  101  (e.g., through a registration interface illustrated in  FIG. 3 ) is then stored for later retrieval at  102 . 
     Sought Attributes Entry Process: 
     As shown at  115  and  103 , users may be given an opportunity to enter the explicit attributes that users want to find in prospects. Users may specify that they want to be matched for dating, for friendship, for networking and many other reasons. Users may enter sought attributes for each of these relationship categories. 
     Referring now to  FIG. 4 , a sought attributes interface presented to the user is shown. The sought attributes interface presents each user with the ability to enter information regarding the attributes that the user would like matched prospects to possess. Such information may comprise a user&#39;s gender  143 , age  144 , height  145 , relationship status  146 , and other factors. 
     Referring again to  FIG. 1 , the information entered at  103  (e.g., through the sought attributes definition interface as illustrated in  FIG. 4 ) is then stored for later retrieval at  104 . 
     Matching Prospects to Users: 
     As shown at  116  and  105  in  FIG. 1 , the system may match prospects to a user by use of a matching model. Explicit attributes entered by the user at  103  may be used for matching. Rating and other data may be used for matching insofar as the relevant data is available for a user. 
     Referring now to  FIG. 2  there is shown a process for utilising rating data entered by users to determine optimal matches of users to prospects. Further,  FIG. 2  illustrates how a user may find prospects that have only those attributes that are explicitly entered by a user (e.g., through a sought attributes definition interface as illustrated in  FIG. 4 , and as provided in step  103  in  FIG. 1 ). Further,  FIG. 2  illustrates how to refine what is known about what each user and about what each user is seeking in potential prospects, thereby improving subsequent matching based on the ratings given by one user to the next. 
     The matching model process initiates at  118  and  119  when the system calculates the proximity of users and prospects utilizing rating data at  120  (e.g., as collected, for example, at  195  in an example interface illustrated in  FIG. 6 ). Further, the system may utilize rating data to estimate which users are most like other users based on users receiving similar ratings from other users (e.g., where two users obtain high ratings from the same individual, this would serve to identify that these users are more similar than where two users have obtained different ratings). Further, the system may identify users that have rated each other high and low, and utilize this data in conjunction with the estimate of how similar one user is to the next to estimate how users will rate other users that they have not yet rated. 
     Matching and attribute scores may be used at  122  to estimate the proximity of users to prospects at  121  (e.g., the system uses matching scores, that represent estimated levels of certain attributes that individual users are seeking and attribute scores, that represent the estimated attributes that individual users possess, to determine optimal matches). The matches for users may be determined by calculating the distance between a user&#39;s matching scores and a prospect&#39;s attribute scores, and the distance between a prospect&#39;s matching scores and a user&#39;s attribute scores. 
     The matches for users may be determined through incorporating other data at  124  such as the geographic distance between users and prospects. The proximity data calculated in steps  119  and  121 , and other data at  124  may be used to determine potential matches for the client user. If the prospect is not a match for the user at  125 , the system may reject the prospect as a match for the user at  126 . On the other hand, if the prospect is deemed to be a potential match for the user based on the combination of proximity data and other data at  123  and  125 , the system may evaluate whether the prospect&#39;s attributes match the attributes explicitly entered by the user at  128 . 
     Steps  119 ,  121 , and  123  may each be executed insofar as relevant data is available for the user being matched. 
     If the prospect&#39;s attributes don&#39;t match the desired attributes explicitly entered by the user, the prospect is rejected as a match for the client user at  126 . If the prospect&#39;s attributes match what has been entered by the user as desired, the system evaluates whether the prospect user has been blocked by the user at  129 . If the prospect has been blocked by the user, the prospect is rejected as a match for the prospect user at  126 . If the prospect user has not been blocked by the user, a determination is made regarding whether to display the prospect as a match for the user at  130 . For example, a prospect may not be displayed as a match for a user if the user has formerly met and rated the prospect (see  FIG. 6 , step  195 ). Additionally, for example, a prospect may not be displayed as a match for the user if the user has already added the prospect as a friend (see  FIG. 6 , step  201 ) or if the user has explicitly indicated that the user would want to remove the prospect as a match (see  FIG. 6 , step  202 ). If the prospect is to be displayed as a match for the user, the prospect&#39;s profile information may be displayed or otherwise made available to the user, as appropriate, at  131 . 
     Displaying Matched Prospects to Users: 
     Referring again to  FIG. 1 , at step  105  matched prospects are displayed to users based on whether the system determines whether each matched prospect should be displayed (see  FIG. 2  step  131 ). 
     Referring now to  FIG. 5 , a screen display of a matched prospects interface presented to the user is shown. A user may be presented with matched prospects in various categories such as matches for dating at  155 , matches for friendship at  161 , matches for activities at  168 , matches for networking at  173 , matches for deal making at  181 , and matches for reuniting at  187 . Other and/or different relationship categories may be displayed in the prospects interface. 
     For each relationship category shown in the prospect interface, the top user profiles may be presented to users. For example, in the contemplated “Dating” relationship section shown at  155 , the top matches are shown at  156 ,  157 , and  159 . Further, additional matches may be referenced as seen at  158 . Specific explicit attribute filters may be set for each type of relationship, for example, at  154 ,  160 ,  166 ,  176 ,  182 , and  188 . These explicit attribute filters may be used to determine what matches are presented to users, as referenced at  128  in  FIG. 2 . 
     Displaying Profile Information of Matched Prospects to Users: 
     Users may view profiles of other users.  FIG. 6  presents an example view of a profile display interface. Users may navigate to such profile interface by clicking on the photo of a prospect (for example, at  156 ) in the matched prospect interface in  FIG. 5 . Links on the profile display interface may allow users to indicate how the user wishes to interact with other users or manage the relationship with other users. For instance, links may allow the user to open an email interface at  197  (see  FIG. 7 ), view a prospect&#39;s profiles on other social networking sites at  198 , navigate to see the friends interface at  199 , send “wink” messages to other users at  200 , invite other users as friends at  201 , remove one or more users as prospect matches at  202 , block prospects from contacting the users at  203 , and see the blogs of the prospect at  204 . Further, users may rate prospects when accessing the prospects&#39; profile at  194  and  195 . 
     Interaction Between Prospects and Users: 
     Users may send email to prospects such as by clicking on a link on the profile interface at  197 . Clicking on a certain link on profile interface at  197  will cause an email interface such as shown in  FIG. 7  to display to the user. 
     Referring now to  FIG. 7 , an example of the email interface presented to the user is shown. Users will be, for example, able to enter a message to a prospect (for example, at  216 ) in the matched prospect interface in  FIG. 5 . Users may be provided with text formatting tools  206 , such as tools to bold text  207 , to underline text  209 , to bullet text  211 , to change the font type  213 , to change font size  214 , and/or to change font color  215 . Further, users may be able to enter a subject line for their messages  205 . 
     Computer Execution Environment (Hardware): 
     The systems and methods disclosed herein may be implemented as computer software in the form of computer readable program code executed on one or more general-purpose computers or other computing device and through a communication network such as the system illustrated in  FIG. 8 . The system consists of servers such as one or more web servers  231 , one or more application servers  232 , one or more database servers  233 , and/or one or more email servers  234 . Users may be able to access the computer system via computer  221  and via cell phone or mobile device  235 . For example, if users access the system via computer  221 , the computer would access the system through the Internet  222 . The system may incorporate routing and switching  223 ,  224 ,  225 , and  226 , and one or more load balancers  227  and  228  to appropriately route Internet traffic to the appropriate hardware (such as servers). The system may incorporate one or more computer firewalls  229  and  230  to help ensure only permitted traffic is allowed to system hardware. The system may be deployed in cloud architecture. 
     Access may be provided to users through a telephone/wireless network as illustrated in steps  239 ,  238 ,  237 ,  236  and  235  in  FIG. 8 . Such telephone/wireless access, for example, will allow users to receive voice and/or portable computer access to system functionality 
     As shown, prospects may be recommended to the user based in whole or in part on the ratings the user has given previous matches (e.g., in addition to sought attributes explicitly entered by the user), functionality to utilize the rating information entered by users to further refine what is known about users and users&#39; preferences, and ability to have prospects recommended to the user utilizing this refined understanding of each user and each user&#39;s preferences. Collectively or in part, this may allow users to have matches provided to them and matches further refined as they continue to use the system. Further, information entered by users may be validated through refinement provided via the ratings given by other users. Further, users may obtain an understanding of the prospects that the user would find desirable further refined as the user uses the system. 
     Further, matches may be provided to the users based on attributes that may not be explicitly captured in the system. The system may match users to prospects based on attributes not explicitly captured in the system since prospects may be recommended to the user based on the collective ratings provided to the prospect, and the commonality which has caused the prospect to be rated similarly by others may not be explicitly captured as an attribute in the system. 
     The matching model matches each user to those that are estimated to have similar and/or dissimilar characteristics to those that the user has previously indicated higher or lower preference for. Rating data may be used to refine what is understood about users and/or user matching preferences. This data may be used in matching users one to another. 
     A client computer may include software and/or hardware for providing functionality and features described herein. A client computer may therefore include one or more of: logic arrays, memories, analog circuits, digital circuits, software, firmware, and processors such as microprocessors, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), programmable logic devices (PLDs) and programmable logic arrays (PLAs). The hardware and firmware components of the client computer  100  may include various specialized units, circuits, software and interfaces for providing the functionality and features described here. The processes, functionality and features may be embodied in whole or in part in software which operates on a client computer and may be in the form of firmware, an application program, an applet (e.g., a Java applet), a browser plug-in, a COM object, a dynamic linked library (DLL), a script, one or more subroutines, or an operating system component or service. The hardware and software and their functions may be distributed such that some components are performed by a client computer and others by other devices. 
     Although shown implemented in a personal computer, the processes and apparatus may be implemented with any computing device. A computing device as used herein refers to any device with a processor, memory and a storage device that may execute instructions including, but not limited to, personal computers, server computers, computing tablets, set top boxes, video game systems, personal video recorders, telephones, smart phones, portable computers, and laptop computers. These computing devices may run an operating system, including, for example, variations of the Linux, Microsoft Windows, and Apple Mac operating systems. 
     Closing Comments 
     Throughout this description, the embodiments and examples shown should be considered as exemplars, rather than limitations on the apparatus and procedures disclosed or claimed. Although many of the examples presented herein involve specific combinations of method acts or system elements, it should be understood that those acts and those elements may be combined in other ways to accomplish the same objectives. With regard to flowcharts, additional and fewer steps may be taken, and the steps as shown may be combined or further refined to achieve the methods described herein. Acts, elements and features discussed only in connection with one embodiment are not intended to be excluded from a similar role in other embodiments. 
     As used herein, “plurality” means two or more. As used herein, a “set” of items may include one or more of such items. As used herein, whether in the written description or the claims, the terms “comprising”, “including”, “carrying”, “having”, “containing”, “involving”, and the like are to be understood to be open-ended, i.e., to mean including but not limited to. Only the transitional phrases “consisting of” and “consisting essentially of”, respectively, are closed or semi-closed transitional phrases with respect to claims. Use of ordinal terms such as “first”, “second”, “third”, etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements. As used herein, “and/or” means that the listed items are alternatives, but the alternatives also include any combination of the listed items.