Systems and methods for matching people based on perceived activities

Matching systems and methods for social networking systems can select matches for users based on observed activities. A matching system can include, for example, a preference unit, a monitoring unit, and a matching unit. Generally, the preference unit can receive and process matching preference information for a user; the monitoring unit can monitor the user's activities on or observable by the server; and the matching unit can select and recommend matches for the user based on the monitored activities. Thus, matches can be suggested to the user based on the user's observed activities, and not simply based on the user's potentially inaccurate self-description.

TECHNICAL FIELD

Various embodiments of the present invention relate to social networking systems and, more particularly, to systems and methods for matching people in a social networking system based on perceived activities.

BACKGROUND

A great benefit of social networking websites is their ability to connect people to one another and thus establish and nurture important relationships, including both business and personal relationships. Unfortunately, however, social networking websites have yet to be effectively leveraged to connect people who do not know each other, based on observed characteristics of those people.

Dating websites, such as eHarmony® and Match.com®, suggest romantic matches based on information that individuals provide about themselves for the purpose of matching. This type of matching is inherently flawed because it depends on individuals correctly describing how others perceive them. Furthermore, many users of these dating websites already have an idea of the type of person they would like to date. Thus, either consciously or subconsciously, a user may provide inaccurate information, so as to meet that certain type of person regardless of whether that type is truly compatible with the user.

A social networking website, Facebook®, matches people based on mutual contacts. For example, if two people have multiple mutual contacts, Facebook may suggest that the two people connect with each other. This system of people-matching is useful for locating people who already know each other but have not yet connected on Facebook. The Facebook matching system, however, is not particularly useful for matching people who do not yet know each other, as two such people likely have no mutual contacts.

The above systems are unable to effectively suggest matches between strangers based on verified activities or behaviors of the strangers. Any matching that occurs with the above systems is based on subjective and possibly inaccurate information, or is useful only for matching people who already know each other.

SUMMARY

There is a need for a matching system to match people based on actual, perceived behaviors. Such a matching system could monitor or record activities of individuals and then suggest matches based on similar or complimentary activities. It is to such a system, and related methods, to which various embodiments of the invention are directed.

Briefly described, various embodiments of the present invention are matching systems and methods for matching people based on observed activities. An exemplary embodiment of a matching system can be embodied on a computing device and can comprise a preference unit, a monitoring unit, and a matching unit.

The preference unit can receive preference information from users of the system. For example, and not limitation, a user can specify to the preference unit whether the user would like to be matched, whether matching is to occur automatically or on-demand, what activities may be considered for matching, gender preference for matches, age preference for matches, or whether the desired matching is for business, friendship, or dating. The preference unit can store the received preference information for the user and can link the preference information a user account of the user.

The monitoring unit can monitor a user's activities or behaviors observable by the matching system. The matching system can be integrated into or otherwise associated with a social networking system, and the monitoring unit can thus monitor the user's activities on a website of the social networking system. The monitored activates can include, for example, listening to music, watching digital videos, and chatting with celebrities or featured individuals registered with the website. The monitoring unit can store and periodically update a record, associated with the user's account, of the user's monitored activities.

The matching unit can receive data from the preference unit and the monitoring unit, such as by accessing preferences and activity data associated with a user's account. The matching unit can utilize a predetermined algorithm, which can depend at least partially on the user's preferences, to select potential matches for the user. The matching unit can then display the selected matches to the user according to the user's display preferences. Thus, matches can be suggested to the user based on the user's observed activities, and not simply based on the user's suspect self-description.

These and other objects, features, and advantages of the matching system will become more apparent upon reading the following specification in conjunction with the accompanying drawing figures.

DETAILED DESCRIPTION

To facilitate an understanding of the principles and features of the invention, various illustrative embodiments are explained below. In particular, the invention is described in the context of being a matching system for suggesting romantic matches for individuals. Embodiments of the invention, however, are not limited to this context. Rather, embodiments of the invention can match organizations, individuals, or other entities for business or personal purposes.

The matching system is described below as being embodied in a web environment, but a web environment is not required for all embodiments of the matching system. References to web components throughout this disclosure are for convenience and should not be considered limiting. For example, and not limitation, embodiments of the matching system can be implemented in local area networks, media centers, or video game consoles. The components described hereinafter as making up various elements of the invention are intended to be illustrative and not restrictive. Many suitable components that can perform the same or similar functions as components described herein are intended to be embraced within the scope of the invention. Such other components not described herein can include, but are not limited to, similar or analogous components developed after development of the invention.

Various embodiments of the present invention are matching systems to select matches for users of the system, based on observed activities of the users. Referring now to the figures, in which like reference numerals represent like parts throughout the views, various embodiment of the matching system will be described in detail.

FIG. 1illustrates a matching system100, according to an exemplary embodiment of the present invention. In general, the matching system100can observe activities of its users and can compare the activities of a first user with the activities of other users. Based on the similarities or complementariness of the compared activities, the matching system100can select one or more of the other users as matches for the first user. Unlike conventional matching systems, which propose matches based on questionnaires, the matching system100can suggest matches based on actual, perceived activities, which are more likely to accurately represent the user than are answers to questions.

The matching system100can be embodied in a computer-readable medium and executed by a computer processor on a computing device200to provide one, some, or all aspects of the invention. As shown inFIG. 1, the matching system100can be integrated, in whole or in part, in a computing device200, which can behave as or include a server120. The server120can provide services to remote computing devices200, such as various clients130located remotely from the server120.

FIG. 2illustrates an example of a suitable computing device200that can be used as or can comprise a client130or a server120, in an exemplary embodiment in the matching system100. Although specific components of a computing device200are illustrated inFIG. 2, the depiction of these components in lieu of others does not limit the scope of the invention. Rather, various types of computing devices can be used to implement embodiments of the matching system100. Exemplary embodiments of the matching system100can be operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.

Exemplary embodiments of the matching system100can be described in a general context of computer-executable instructions, such as one or more applications or program modules, stored on a computer-readable medium and executed by a computer processing unit. Generally, program modules can include routines, programs, objects, components, or data structures that perform particular tasks or implement particular abstract data types. Embodiments of the matching system100can also be practiced in distributed computing environments, where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, the server120can comprise multiple computing devices200, and processes that would otherwise be performed by the server120can be executed by clients130or other devices located remotely from one another.

With reference toFIG. 2, components of the computing device200can comprise, without limitation, a processing unit220and a system memory230. A system bus221can couple various system components including the system memory230to the processing unit220. The system bus221can be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures can include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.

The computing device200can include a variety of computer readable media. Computer-readable media can be any available media that can be accessed by the computing device200, including both volatile and nonvolatile, removable and non-removable media. For example, and not limitation, computer-readable media can comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media can include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store data accessible by the computing device200.

The system memory230can comprise computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM)231and random access memory (RAM)232. A basic input/output system233(BIOS), containing the basic routines that help to transfer information between elements within the computing device200, such as during start-up, can typically be stored in the ROM231. The RAM232typically contains data and/or program modules that are immediately accessible to and/or presently in operation by the processing unit220. For example, and not limitation,FIG. 2illustrates operating system234, application programs235, other program modules236, and program data237.

The computing device200can also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,FIG. 2illustrates a hard disk drive241that can read from or write to non-removable, nonvolatile magnetic media, a magnetic disk drive251for reading or writing to a nonvolatile magnetic disk252, and an optical disk drive255for reading or writing to a nonvolatile optical disk256, such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment can include magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive241can be connected to the system bus221through a non-removable memory interface such as interface240, and magnetic disk drive251and optical disk drive255are typically connected to the system bus221by a removable memory interface, such as interface250.

The drives and their associated computer storage media discussed above and illustrated inFIG. 2can provide storage of computer readable instructions, data structures, program modules and other data for the computing device200. For example, hard disk drive241is illustrated as storing an operating system244, application programs245, other program modules246, and program data247. These components can either be the same as or different from operating system234, application programs235, other program modules236, and program data237.

A web browser application program235, or web client, can be stored on the hard disk drive241or other storage media. The web client can comprise an application program235for requesting and rendering web pages, such as those created in Hypertext Markup Language (“HTML”) or other markup languages. The web client can be capable of executing client side objects, as well as scripts through the use of a scripting host. The scripting host executes program code expressed as scripts within the browser environment. Additionally, the web client can execute web application programs235, which can be embodied in web pages.

A user of the computing device200can enter commands and information into the computing device200through input devices such as a keyboard262and pointing device261, commonly referred to as a mouse, trackball, or touch pad. Other input devices (not shown) can include a microphone, joystick, game pad, satellite dish, scanner, electronic white board, or the like. These and other input devices are often connected to the processing unit220through a user input interface260coupled to the system bus221, but can be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB). A monitor291or other type of display device can also be connected to the system bus221via an interface, such as a video interface290. In addition to the monitor, the computing device200can also include other peripheral output devices such as speakers297and a printer296. These can be connected through an output peripheral interface295.

The computing device200can operate in a networked environment using logical connections to one or more remote computers, such as a remote computer280. The remote computer280can be a personal computer, a server, a router, a network PC, a peer device, or other common network node, and can include many or all of the elements described above relative to the computing device200, including a memory storage device281. The logical connections depicted inFIG. 2include a local area network (LAN)271and a wide area network (WAN)273, but can also include other networks.

When used in a LAN networking environment, the computing device200can be connected to the LAN271through a network interface or adapter270. When used in a WAN networking environment, the computing device200can include a modem272or other means for establishing communications over the WAN273, such as the internet. The modem272, which can be internal or external, can be connected to the system bus221via the user input interface260or other appropriate mechanism. In a networked environment, program modules depicted relative to the computing device200can be stored in the remote memory storage device. For example, and not limitation,FIG. 2illustrates remote application programs285as residing on memory device281. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used.

Referring now back toFIG. 1, the matching system100, on or accessible by the server120, can comprise one or more units for capturing and exploiting data about users, so as to effectively match those users. The units of the matching system100can be programs, program modules, or other operative components of the matching system100. These units can comprise, for example, a preference unit150, a monitoring unit160, and a matching unit170. Generally, the preference unit150can receive and process matching preference information for a user; the monitoring unit160can monitor the user's activities on or observable by the server120; and the matching unit170can select and recommend matches for the user based on the monitored activities. Although these units are described below as being distinct components of the matching system100, this need not be the case. The units are distinguished herein based on operative distinctiveness, but they can be implemented in various fashions, wherein the elements or components making up the various units can overlap or be divided in a manner other than that described below.

Before receiving matches, a user can register with the matching system100, thereby indicating to the matching system100that matches are desired by the user. After completion of the registration process, a matching account can be created for the user. In an exemplary embodiment, the matching system100is integrated in or otherwise associated with another system, such as a social networking system. In such an embodiment, the user's matching account can be associated with or part of an account of the user on the social networking system. Thus, the user can create or modify his preferences through the social networking system.

After registration, the user can provide the matching system100with information about the user's preferences for matches, and these preferences can be received and stored by the preference unit150. The preference unit150can provide the user with a form, through which the user can enter and submit preferences. The user's preferences can include, for example, whether selected matches are to be presented to the user automatically or on-demand, what activities may be monitored for matching, gender preference for matches, age preference for matches, and whether the matching is for business, friendship, or dating. The preference unit150can store the received preference information in the user's matching account.

The monitoring unit160can monitor information about the user's activities that are accessible by the server120. These activities can be stored in an activity data set associated with the user's account and stored on the server120or on the user's local client computer130. The monitoring unit160can monitor and store information about various users of the matching system100, and can store the observed information about each user in a corresponding activity data set for that user. Thus, to identify matches for a particular user, the matching unit170can then compare that particular user's activity data set with the activity data sets of other users of the matching system100, to determine similarities and complementariness.

As mentioned above, an exemplary embodiment of the matching system100can be tied to a social networking system. In such an embodiment, the social networking system can include a website125, on which users can conduct various activities observable by the monitoring unit160of the matching system100. The website125can be serviced by the same server120of the matching system100, thus further integrating the matching system100with the social networking system and facilitating the monitoring unit's access to activities performed by users on the website125.

The monitoring unit's access to activities on the website125can take various forms. For example, and not limitation, the associated social networking system can maintain logs for activities of all users, regardless of participation in the matching system100, and the monitoring unit160can access these logs for matching purposes. Alternatively, after a user registers with the matching system100, the monitoring unit160can receive information about the user's activities on the website125on an ongoing basis, and the monitoring unit160can record these activities directly into the activity data set for the user, or in a log or some other form of storage. If the user's activities are maintained internally by the monitoring unit160, instead of by an external component of the social networking system, the logged activities can be limited to those activities indicated in the user's preferences as being available for consideration by the matching system100.

The range of activities observable by the monitoring unit160can depend on the capabilities of the website125and activities performable by users on the website. For example, and not limitation, the website125can provide a media player enabling the user to play music or videos that the user selects for himself. The website125can also enable the user to chat with celebrities or to subscribe to updates about celebrities, local events, or other news feeds. The monitoring unit160can monitor some or all of these and other activities performed by the user on the website125.

Observable activities can also include activities occurring locally at the user's client computer130. In other words, in addition to monitoring activities occurring on the website125, the monitoring unit160can also monitor activities occurring on the user's client computer130. For example, and not limitation, the monitoring unit160can upload or log the user's activities related to known multimedia applications, such as iTunes® or Windows Media Player®, and related to attached devices, such as iPods® or other MP3 players. The monitoring unit160can access playlists and media stored on the user's hard drive and attached devices. Based on the user's preferences, the monitoring unit160can access this local information once, such as upon initialization, or every time the user connects to the matching system100, so as to maintain updated records of the user's local activities. The matching system100can thus consider what media the user has stored on the client computer130and how often that media has been used in the past.

The matching unit170can select other users of the matching system100as potential matches for the current user, based at least partially on the current user's preferences and the user's monitored activities. Thus, potential matches can be filtered by criteria entered by the user about desired matches, and activities considered in selecting matches can be restricted to those activities indicated in the user's account preferences.

The matching unit170can be in communication with the monitoring unit160, such as by accessing a log maintained by the monitoring unit160, to obtain data relating to the user's activities and other users' activities. The matching unit170can analyze this activity data in light of a predetermined matching algorithm to select matches for the user.

The matching algorithm can score other users of the system to determine the compatibility of those other users with the current user. One or more other users with the highest scores can be selected as matches for the current user. Alternatively, instead of scoring, the algorithm can continuously eliminate other users as potential matches until a manageable number of other users remain, at which time the remaining users can be selected as matches for the current user. Further alternatively, each of the other users can be considered and selected as a match if the other user meets certain criteria, such as a certain level of similarity with the current user's activities.

If a scoring algorithm is used, then other users' scores can be increased for each observed, relevant similarity to the current user. For example, if another user often plays a song for which the current user has demonstrated an affinity, such as by likewise playing the song often, then that other user's score can increase for the similar affinity. Score increases can also result, for example, and not limitation: if the other user plays the same music, musical artist, or genre as the current user; if the other user has the same music, musical artist, or genre as the current user in a stored playlist; if the other user chats with a celebrity with whom the current user has also chatted; if the other user watches the same videos watched by the current user; if the other user has the same videos as the current user in a playlist; or if the other user subscribes to the same news feeds as the current user.

Not all similar activities need be weighted the same by the matching algorithm, and the degree to which each similar activity increases the other user's score can vary based on the importance of that activity, as defined by the matching algorithm. For example, repeatedly playing a particular song for which the current user has demonstrated an affinity can result in a greater score increase than playing songs of the same genre or simply having that particular song in one's playlist. Further, playing the particular song many times can result in a greater score increase than playing the song once or twice. In some embodiments, simply including a song on a playlist, without ever having played the song, may yield no score increase at all.

In addition to similar activities, complimentary activities can also be considered by the matching unit170. For example, if the other user watches multiple videos about learning to play blues on the guitar, then that other user's score can be increased based on the current users' activities of playing blues guitar music. Additionally, in some embodiments, points can be deducted for activities that appear to be non-complementary to or incongruous with the current user's activities.

In some embodiments of the matching system100, the matching score can be a percentage describing a degree of similarity of a second user as compared to a first user for whom matches are sought.FIG. 3illustrates application of an exemplary algorithm used to determine a matching percentage for a second user, as compared to a first user. It will be understood that the illustrated algorithm is presented only as an example. Various other algorithms can be used alternatively or additionally to the specific algorithm illustrated inFIG. 3, to determine a matching percentage or score.

In some exemplary embodiments of the matching system100, a second user's matching score, as compared to a first user to be matched, can be a weighted average of percentages by which the second user is deemed to be similar to the first user in one or more categories. For example,FIG. 3illustrates that the matching score can be a weighted average of similarities in perceived preferences in musical genre, artists, albums, songs, and most played. More specifically, in the illustrated example, the genre, artist, and song preference can respectfully account for 10%, 20%, 30%, and 40% of a total base matching score, and most played songs can add a bonus of up to 10% of the total possible base score.

While, in the illustrated algorithm, all considered factors are related to music, this need not be the case. For example, and not limitation, the matching algorithm can be limited to movie comparisons or to some other activity type, or the matching algorithm can consider various different types of activities, such as, for example, some combination of music, movies, and browsing activities.

As shown inFIG. 3, in an exemplary application of the illustrated algorithm, the matching system100can observe that each of the first and second users listens to 9 genres of music, for a combined total of 10 genres, 8 of which overlap between the users. Of those 8 overlapping genres, the matching system100can observe that the two users listened to a combined total of 203 artists, of which 61 overlap. Of those 61 artists, the two users have a combined 87 albums for those artists in their libraries, of which 65 of those albums are in both libraries and thus overlap. Of the 65 overlapping albums, 702 songs are identified as being in either of the users' libraries, and 340 of those songs are identified as being in both libraries. Of those 340 overlapping songs, 40 of those songs are identified as being in both users' “Top 100” lists, or other favorites or most-played lists. Based on this data, as shown, the matching unit170can calculate a matching percentage of 60% between the two users, which can correspond to a matching score of 60 for the second user, as compared to the first user.

Regardless of the matching algorithm used, the matching unit170can score or otherwise evaluate potential matches based on the algorithm. After users are scored or otherwise evaluated, the matching unit170can select, or at least preliminarily select, one or more of the other users whose evaluations by the matching algorithm meet one or more predetermined selection criteria. In some exemplary embodiments, the other users who meet the selection criteria are only preliminarily selected, and can be further filtered based on the first user's indicated preferences, before the selection as matches becomes finalized. The selection criteria used by the matching unit170, after application of the matching algorithm, can vary based on implementation. For example, in an exemplary embodiment, a predetermined number of other users with the highest matching scores can be selected, or preliminarily selected. Alternatively, for another example, the matching unit170can select, or preliminarily select, all of the other users whose scores meet or exceed a predetermined threshold. After selections are finalized, the matching unit170can present the selected other users to the current user as matches, such as by providing the current user with links to the selected other users' profile pages on the social networking system.

FIG. 4illustrates a flow diagram of a method400for matching users, according to an exemplary embodiment of the present invention. Each box inFIG. 4represents an action in the overall matching method400. Those of skill in the art will appreciate that the actions illustrated inFIG. 4need not be undertaken in the order illustrated, and one or more of the actions can be segments of other actions. Further, not all of the actions illustrated need be undertaken in every embodiment of the matching method400, and additional actions can be provided as well.

As shown inFIG. 4, at410, a user can register with the matching system100, thereby permitting the matching system100to monitor and record, or otherwise access, the user's activities that are observable by the monitoring unit160. After or during the registration, at420, the user can provide his or her preferences for the matching system100, which can be received by the preference unit150. At430, the user can perform one or more activities observable by the monitoring unit160, and the monitoring unit160can observe and record these activities. At440, the matching unit170can compare the user's recorded activities to those activities of other users, in accordance with an algorithm based partially on the user's preferences. At450, the matching unit170can select one or more other users of the matching system100as matches for the user based on the user's activities and the selected users' activities recorded by the monitoring unit160. At460, the matching system100can display to the user a representation of the selected users, such as links to profile pages of the selected users.

As discussed above in detail, embodiments of the present invention can provide an effective means of determining compatibility based on similar or complimentary interests, by considering actual, observed activities, as opposed to suspect user-entered information. Thus, embodiments of the matching system100can effectively match individuals or other entities based on accurate characteristics.

While matching systems and methods has been disclosed in exemplary forms, many modifications, additions, and deletions may be made without departing from the spirit and scope of the system, method, and their equivalents, as set forth in the following claims.