This disclosure relates generally to computer matching systems and more particularly to a system and method for modifying a preference.
Networking architectures have grown increasingly complex in communications environments. In recent years, a series of protocols and configurations have been developed in order to accommodate a diverse group of end users having various networking needs. Many of these architectures have gained significant notoriety because they can offer the benefits of automation, convenience, management, and enhanced consumer selections.
Certain network protocols may be used in order to allow an end user to conduct an online search of candidates to fill a given vacancy. These protocols may relate to job searches, person finding services, real estate searches, or online dating. While some believe that online dating is simply a matter of matching supply and demand, there is statistical and empirical evidence to suggest that successful online dating entails far more.
For example, people having similar and/or compatible character traits and values should be matched together. However, effectively linking two participants together can prove to be a challenging endeavor. Coordinating a relationship between two like-minded individuals can be a significant chore, as there are a number of obstacles and barriers that must be overcome.
One problem that has arisen is that matching services are limited to searching for matches only within their own platform. Thus, only people who have gone through the process of signing up for the service are searched for a match. One solution to this problem is to have users register in multiple services. This is problematic because it can be expensive and time consuming for users. Further, the user must then visit all of the services to monitor the search progress: this inefficiency may cause users to give up on the search process.
Another problem is that the search results of these services contain many irrelevant entities to the searcher. This costs the user of the service time and may deter them from continuing through all of the search results.
Another problem is that large numbers of unwanted communication requests can become a nuisance to the user. Too many nuisance requests may deter the user from further use of the system. Users with the most attractive profiles are oftentimes the ones that receive the most unwanted attention. If the users with the most attractive profiles cease to use the system, the quality of the user pool deteriorates.
In one embodiment, a method for profile matching comprises receiving, from a first user, a first preference regarding a second user. It also comprises receiving, from the second user, a second preference regarding the first user. It further comprises determining, based on the first preference and the second preference, to allow the first user to modify the first preference. The method also comprises receiving, from the first user, a request to modify the first preference. It further comprises modifying the first preference.
In an embodiment, receiving the first preference regarding the second user comprises receiving a swiping gesture from the first user.
In an embodiment, A system for profile matching comprises at least one processor. The system also comprises computer readable medium. The system further comprises an interface. The system is configured to receive, from a first user, a first preference regarding a second user. The system is also configured to receive, from the second user, a second preference regarding the first user. The system is also configured to determine, based on the first preference and the second preference, to allow the first user to modify the first preference. The system is configured to receive, from the first user, a request to modify the first preference. The system is further configured to modify the first preference.
Depending on the specific features implemented, particular embodiments may exhibit some, none, or all of the following technical advantages. Some embodiments may be capable of allowing a user to modify a preference selection. A user may make a preference selection and regret the action. Thus, allowing a user to modify the preference selection is advantageous in that it allows users to modify the preference if they make a mistake or regret the initial decision. Other technical advantages will be readily apparent to one skilled in the art from the following figures, description and claims.
Reference is now made to the following description taken in conjunction with the accompanying drawings, wherein like reference numbers represent like parts.
Referring to
In some embodiments, users 14 are clients, customers, prospective customers, or entities wishing to participate in an online dating scenario and/or view information associated with other participants in the system. User 14 may also seek to access or to initiate a communication with other users that may be delivered via network 24. Users 14 may review data (e.g., profiles) associated with other users or items in order to make matching decisions or selections. Data, as used herein, refers to any kind of numeric, voice, graphic, video, text, script data, or any other suitable information in any appropriate format that may be communicated from one point to another.
In some embodiments, terminal 10 may be representative of a personal computer, an electronic notebook, a cellular telephone, an electronic tablet device, a laptop, a personal digital assistant (PDA), or any other suitable device (wireless or otherwise: some of which can perform web browsing), component, or element capable of accessing one or more elements within system 100. Interface 16, which may be provided in conjunction with the items listed above, may further comprise any suitable interface for a user such as a video camera, a microphone, a keyboard, a set of buttons, a mouse, a touch-sensitive display, a touch-sensitive area, or any other appropriate equipment according to particular configurations and arrangements. In addition, interface 16 may be an element or set of elements designed specifically for communications involving system 100. Such elements may be fabricated or produced specifically for matching applications facilitated by system 100.
In some embodiments, display 12 can be implemented using one or more of: a computer monitor, a cellular phone display, a touch-sensitive screen, a projector, speaker, or other devices that allow a user 14 to appreciate information that system 100 transmits.
In some embodiments, network 24 is a communicative platform operable to exchange data or information within system 100. Network 24 could include a plain old telephone system (POTS). Network 24 could include or be any packet data network offering a communications interface or exchange between any two nodes in system 100. Network 24 can be implemented using a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireless local area network (WLAN), a virtual private network (VPN), an intranet, and/or any other appropriate architecture or system that facilitates communications in a network or telephonic environment, including a combination of any networks or systems described above. In various embodiments, network connections 22 may include, but are not limited to, wired and/or wireless mediums which may be provisioned with gateways, routers, and firewalls.
Matching server 20 is operable to receive and to communicate information to terminal 10. In some embodiments, matching server 20 may comprise a plurality of servers or other equipment, each performing different or the same functions in order to receive and communicate information to terminals 10 and/or social networks 21a-b. Matching server 20 may include software and/or algorithms to achieve the operations for processing, communicating, delivering, gathering, uploading, maintaining, and/or generally managing data, as described herein. Alternatively, such operations and techniques may be achieved by any suitable hardware, component, device, application specific integrated circuit (ASIC), additional software, field programmable gate array (FPGA), server, processor, module, erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or any other suitable object that is operable to facilitate such operations.
In some embodiments, matching server 20 includes memory 26 and at least one CPU 28. CPU 28 can be used to process information received from terminals 10, social networks 21a-b, memory 26, and/or any other suitable information source, or any combination of the proceeding. CPU 28 includes any suitable combination of hardware, firmware, and/or software that operates to control and process information. As examples, CPU 28 may be implemented using one or more of: a programmable logic device, a microcontroller, a microprocessor, a graphics processing unit, a central processing unit, an applications processing unit, or any other suitable processing device.
Memory 26 may include databases 27a-b and programs 29a-b. Memory 26 includes any one or a combination of volatile or non-volatile local or remote devices suitable for storing information. As examples, memory 26 may be implemented using one or more of: Random Access Memory (“RAM”), Read-only Memory (“ROM”), magnetic storage devices, optical storage devices, solid-state drives, or any other suitable information storage device or computer-readable media. Database 27 may contain a pool. The pool may include profiles that user 14 may view and for which user 14 may express a positive or negative preference. Memory 26 may also contain one or more programs 29a-b. Programs 29a-b may be executable computer code such as one or more of: source code, binary code, assembly code, machine code, scripts, or other suitable forms of instructions or commands that can be executed by a processor. CPU 28 executes one or more of programs 29a-b to implement functionality of matching server 20 such as those discussed herein.
In some embodiments, system 100 may also comprise one or more social networks 21a-b. System 100 may utilize any suitable number of social networks. In an embodiment, matching server 20 may be configured to allow users of social network 21a and/or social network 21b to interact with matching server 20. This integration can, in some embodiments, provide the advantage of users not having to learn and sign up for multiple platforms. Social networks 21a-b may each be, e.g., a service which stores profiles of its users or associated entities. FACEBOOK, LINKEDIN, and TWITTER are examples of services that may be represented by social networks 21a-b. Such services may be further configured to provide access to the stored profiles. For example, social network 21a may also allow other services (such as those provided by matching server 20 or social network 21b) to interact with users of social network 21a through interfaces or other suitable techniques provided by social network 21a.
In some embodiments, a user 14, using a terminal 10, registers with matching server 20. Registration may include user 14 submitting information to matching server 20 about user 14. Matching server 20 may also be configured to collect information about user 14 through one or more of social networks 21a-b. Matching server may create a profile for user 14 and store the profile in memory 26 (e.g., in database 27a).
In some embodiments, matching server 20 may be configured to allow its users to interact with one or more of social networks 21a-b through matching server 20. Matching server 20 may supplement its pool of profiles with information from social network 21a-b. Matching server 20 may be configured to generate profiles within matching server 20 from information received from social networks 21a-b; system 100 may be configured to do so through capabilities provided by social networks 21a-b, such as an application programming interface.
As an example of how system 100 may operate, consider two users 14: Harry, for whom matching server 20 has created a profile, and Sally, who has a profile stored in social network 21a. From within social network 21a, matching server 20 presents to Sally the ability to perform a search which Sally uses. The results of this search are presented to Sally within social network 21a. In this example, Harry's profile is displayed to Sally as a search result though Harry's profile was within matching server 20. In this example, matching server 20 may use any number of suitable algorithms and search through the profiles stored in matching server 20. In order to display Harry's profile to Sally, matching server 20 creates a profile using the data stored in Harry's profile. Sally is then able to interact with this newly created profile from within social network 21a.
In some embodiments, matching server 20 may import profiles from social networks 21a and/or 21b. As an example, this level of integration can provide the advantage of users only having to update and/or submit one or more aspects of their profile information in one place. For example, when user 14 updates his profile within social network 21a, matching server 20 is also able to access the updated profile information.
In some embodiments, matching server 20 may further be configured, as part of the user registration process, to link a user 14's profile to a profile in one or more of social networks 21a-b. Matching server 20 may be configured to analyze the profiles of the users within one or more of social networks 21a-b (e.g., collecting data and applying algorithms or analysis to that data). For example, matching server 20 may use information from social networks 21a-b such as common friends, common interests, common network, location, gender, sexuality, or age to evaluate potential matches between users 14. Matching server 20 may also use indications of preference made by a user 14 (e.g., expressions of approval and/or disapproval). Other forms of data and analysis used by system 100 may include facial recognition and/or detection of characteristics (such as ethnicity, hair color, eye color, or other suitable characteristics) of profiles that user 14 has expressed interest in. An advantage realized in various embodiments includes the capability of system 100 to present user 14 profiles based on information within social networks 21a-b.
In some embodiments, matching server 20 may have one or more of users 14 link to an existing profile within one or more of social networks 21a-b. This may provide the optional advantage of matching server 20 using authentication features provided by social network 21a-b. For example, false or incorrect information in a user profile may be less likely when the information comes from another source such as social network 21a or 21b (e.g., which may have verifiable and/or peer monitored information).
In some embodiments, an advantage of interacting with social networks 21a-b is that a user 14 has a wider pool of entities to search through. Another advantage is that a user 14 does not have to sign up with several social networks 21a-b to be matched with users on those networks.
In some embodiments, terminal 10 may also display “information” button 84 which allows user 14 to request matching server 20 to retrieve and display more information about the presented profile. The additional information may include additional pictures, a user's biography, or any other suitable information. In addition, user 14 may express a preference, either approval or disapproval, for a presented user. Expressing approval or disapproval can be accomplished through various methods. For example, terminal 10 may display “like” button 86 (e.g., represented by a green heart icon) and “dislike” button 82 (e.g., represented by a red “X” icon). Pressing like button 86 indicates to matching server 20 that user 14 approves of and is interested in communication with the presented user. Pressing dislike button 82 indicates that user 14 disapproves of and does not want to communicate with the presented user. In some embodiments, a user 14 may express a preference by performing a swiping gesture in terminal 10 (e.g., swiping in one direction indicates a positive preference and swiping in another direction indicates a negative preference). In some embodiments, matching server 20 may keep private such preference indications made by user 14 such that other users of matching server 20 are not informed about such preference indications. In addition, terminal 10 may comprise “modification” button 83. Modification button 83 may be a virtual button displayed on display 10, a physical button located on terminal 10, or any other suitable type of button, switch, or toggle. As discussed below, modification button 83 may allow users 14 to modify their preference selection (e.g., “take back” or “undo” a preference indication).
As an example, consider two registered users, Harry and Sally, both of whom have profiles stored in matching server 20. Harry is at a restaurant and requests matching server 20 to present him users within a one-mile radius of his location. Matching server 20 compares a geographic position associated with Sally with a geographic position associated with Harry. If Sally is currently within the one-mile radius of Harry and matching server 20 determines her profile information matches Harry's preferences, matching server 20 will present Harry one or more aspects of Sally's profile information. If other users also meet the search criteria, matching server 20 will present one or more aspects of those users' profile information as well. Harry may request more information about Sally by pressing information button 84. Harry may also indicate his preference to communicate directly with Sally by selecting like button 86. In another example, Harry may expand his search to encompass a larger area (e.g., a twenty-five mile radius) to see other users that may be in his town, not just in the neighborhood in which he is currently located.
In some embodiments, matching server 20 may generate a profile pool and determine an order to display the profile pool to user 14. As an example only, consider a situation where user 14 is interested in participating in an online dating scenario. User 14 may participate in a registration process in matching server 20. As part of the registration process, matching server 20 may ask user 14 a series of questions which identifies characteristics about user 14. Thus, matching server 20 may ask about the height, weight, age, location, and ethnicity of user 14. It may also ask about the birthplace, parents, eating habits, activities, and goals of user 14. Matching server 20 may further use the registration process to discover what user 14 may be looking for in a match, such as age, weight, height, location, ethnicity, diet, education, etc. Further, matching server 20 may ask user 14 to indicate how important certain factors are when looking for a match. For example, matching server 20 may allow the user to indicate which characteristics in a potential match are a necessity. In another example, matching server 20 may ask, “How important is it that your match does not smoke?” Matching server 20 may also allow the user to indicate that certain characteristics are not important search criteria. For example, when asking user 14 about what height or weight user 14 is seeking in a match, matching server 20 may be configured to receive “not important” as a response. In yet another example, matching server 20 may allow user 14 to rate which factors are important on a numerical scale. For example, matching server 20 may ask user 14 the following: “On a scale of 1-10, how important is it that your match has the same education level as you?” In some embodiments, matching server 20 may specify that any number of questions or requested descriptions are necessary before registration may be concluded. As an example only, matching server 20 may require that user 14 communicate the sex of user 14 and the sex user 14 prefers to be matched with. After concluding the registration process, matching server 20 may store the responses of user 14 as a profile. This same process may be repeated by several different users 14, causing matching server 20 to contain a plurality of profiles. In an embodiment, matching server 20 may utilize information within social network 21 to gather this information for user 14 or to gather additional information.
Matching server 20 may be configured to search through a pool of profiles and present profiles to user 14. In some embodiments, matching server 20 may be configured to generate a pool of candidates for matching by default according to various characteristics and preferences of user 14 and other users of the system. Matching server 20 may also restrict entities from being included in the pool based on the status of the profile, or if user 14 has rejected or blocked an entity. Matching server 20 may also restrict entities from the pool that have blocked or rejected user 14. For example, matching server 20 may not allow profiles that are not in good standing to be included in the pool. In some embodiments, matching server 20 may be configured to generate the pool by first choosing seeds. Seeds include, but are not limited to, profiles that user 14 has sent a message to or profiles that user 14 has expressed a preference for. Each seed is then compared to other profiles to determine which profiles will be display to user 14. Any suitable method can be used to determine which entities are included in the pool. For example, any characteristics or algorithms described herein may form the basis of such a determination.
In some embodiments, matching server 20 may be configured to include behavioral scales. These may include multi-item scales for materialism and gender-role traditionalism. Such scales may provide the advantage of improved matching through deeper appreciation for the personality of entities in the system.
In some embodiments, matching server 20 may be configured to analyze profile text for categories. It may search for a number of text strings and then associate the profile with any number of categories. As an example only, matching server 20 may add any profile to the Cat category whose text contains any of the following strings:
“cat” “cats” “cat.” “cats.” “cat,” “cats,”
Matching server 20 may be configured to make it more likely that a profile will be displayed to user 14 if categories associated with the profile are also categories found in the user's profile who submitted the search request.
In one embodiment, matching server 20 may be configured to analyze the profiles of users 14 for keywords. Matching server 20 may be configured to search through the profile of users 14 for keywords that relate to things such as activities and interests. Matching server 20 may generate a score for a pair of users 14 based on a comparison between the list of keywords found in a first user's 14 profile and a second user 14's profile. In one embodiment, this is accomplished by storing a list of words in memory 26, and using it to identify keywords in the searched profiles. As an example only, a profile that contains the word “God” may be presented to a user 14 that has indicated that he/she is religious. In various embodiments, this may provide an advantage to user 14 in that user 14 is able to determine how similar he/she is with a potential match. In addition, the keyword analysis may be used by the system when searching and identifying matches for a user.
In another embodiment, matching server 20 may be configured to compare the locations of a first and second user 14. Matching server 20 may be configured to return all profiles within a certain radius of a user 14. This is advantageous because users that live further away are generally less appealing to a user.
In an embodiment, user 14 may select characteristics of profiles he or she wishes to view. For example, user 14 could choose a to view all females in the age range of 21-27 who are within 19 miles of the first user 14. Matching server 20, for example, could then communicate all profiles meeting the criteria user 14 through display 12 of terminal 10.
In some embodiments, terminal 10 may display one or more sponsored profiles. For example, a person, group of people, or entity may sponsor a profile. A user may sponsor a profile by paying a fee, providing goods and/or services, or any other suitable method. In some embodiments, sponsored profiles may be displayed to users differently than regular profiles, such as being displayed sooner and/or more frequently. As another example, a sponsored profile may be displayed to one or more users that otherwise would not have been displayed to such users (e.g., due to selections made by such users or aspects of the profiles of such users) because the profile is a sponsored profile. Some users may not be presented with sponsored profiles. For example, users may pay to avoid being presented with sponsored profiles or pay to be presented with sponsored profiles less frequently. In some embodiments, a preference selection for a sponsored profile may not be modified. As an example, modification button 83 may not be made available to modify a preference selection for a sponsored profile. In other embodiments, a preference selection for a sponsored profile may be modified. In some situations, certain users may be allowed to modify a preference selection for a sponsored profile while other uses may not be allowed to modify a preference selection for a sponsored profile. For example, the users that are allowed to modify a preference selection for a sponsored profile may be users that have paid a fee, provided goods and/or services, or have been selected using any other suitable criteria.
In some embodiments, matching server 20 creates a match between users after they have each expressed a positive preference for each other's profiles (e.g., using “like” button 86 and/or a swiping gesture). When matching server 20 creates a match, it may also provide the matched users with the ability to contact each other (e.g., through a “contact” button). In some embodiments, when a match is created, matching server 20 may immediately (or soon thereafter) present an option to the users that have been matched to engage in a communication session (e.g., a chat, an SMS message, an e-mail, a telephone call, a voice communication session, and/or a video communication session).
For example, user Harry may indicate a preference to communicate directly with user Sally by selecting like button 86. At this point, Sally is not aware that Harry expressed a preference for her. If Sally also requests matching server 20 present her with a set of possible matches, Harry may appear in her set. Sally may select like button 86 (or perform an associated swiping gesture) when viewing Harry's profile. Matching server 20 may then notify both Harry and Sally that a match occurred. At this point, both Harry and Sally are made aware that they each expressed approval of each other's profile. Matching server 20 then enables Harry and Sally to directly communicate with each other (e.g., through a private chat interface).
In some embodiments, one advantage of a system disclosing preferences of profiles to users when mutual approval has occurred is that a user can feel more secure in their privacy knowing that their preferences will be disclosed only to those that have expressed a preference for that user. As an example, a user can avoid embarrassment if their expression of preference for a profile was not reciprocated. This may lead to users more actively expressing their preferences. Such increased activity can be used by the matching system to generate more potential matches or better rankings of potential matches. In some embodiments, matching server 20 may be configured to allow direct communication between users when there has been a mutual expression of preference. This may be advantageous because users can avoid browsing, deleting, or responding to unwanted messages.
At step 902, in some embodiments, matching server 20 generates a set of user profiles in response to a request for matching from a user (e.g., a user 14). At step 904, matching server presents the set of user profiles to the user via terminal 10. Matching server 20 determines the contents and ordering of the set of user profiles by using, for example, a relevance algorithm based on certain aspects of a user's profile or by displaying user profiles randomly. For example, matching server 20 may include user profiles whose contents indicate location within a specified geographical radius and order the presentation of those user profiles based on the number of mutual friends in common with the first user.
At step 906, in some embodiments, matching server 20 receives an indication of a preference of the user regarding a presented user profile. Matching server 20 determines if the preference was an approval or a disapproval of the presented user profile at step 908. If disapproval of the presented user profile was expressed, the user is given the opportunity to modify the preference selection in step 916. If the user does not modify the indication of disapproval, then a match is not made. Matching server 20 may then store the preference in memory 26 in step 918 and not allow communication with second user 14 in step 920. If the user modifies the preference selection, then the method returns to step 906 where matching server 20 again receives the preference selection for the presented profile from the user. In some embodiments, if the user expresses approval for the presented user profile at step 908, the user may be given the opportunity to modify the preference selection in step 910. If the user modifies the preference selection, then the method returns to step 906 where matching server 20 again receives the preference selection for the presented profile. If the user does not modify the preference selection, matching server 20 will determine if the entity represented by the presented profile has also expressed a preference for the user at step 912. If matching server 20 detects a mutual expression of approval, then a match is determined between the two users. If a mutual expression of approval is not detected at step 912, then matching server 20 stores the preference of the user regarding the presented under profile for future comparison and continues to step 920 where matching server 20 determines that communications are not yet allowed.
The method then proceeds to step 1003 where system 100 determines whether the second user 14's profile is a sponsored profile. If system 100 determines that the second user 14's profile is a sponsored profile, the method proceeds to step 1010, where system 100 prohibits first user 14 from modifying the initial preference selection (e.g., by not making the modification feature available). If system 100 determines that the second user 14's profile is not a sponsored profile at step 1003, the method proceeds to step 1004. At step 1004, in some embodiments, first user 14 indicates a desire to modify the preference (e.g., by pressing modification button 83). System 100 determines whether first user 14's initial preference selection was approval at step 1004. If first user's initial preference selection not was approval, first user is allowed to go back and modify the preference selection at step 1006. If system 100 determines that first user 14's initial preference was approval in step 1004, the method proceeds to step 1008 where system 100 determines if second user 14 expressed a positive preference for first user 14. As discussed above, if both first and second users 14 express a positive preference for each other, there is a match. If system 100 determines that second user 14 expressed a positive preference for first user 14, then there is a match and the method proceeds to step 1010 where system 100 prohibits first user 14 from modifying the initial preference selection (e.g., by notifying the user that the modification feature is unavailable). However, if system 100 determines that second user 14 has not expressed a positive preference selection for first user 14 in step 1008, then the method proceeds to step 1006 where system 100 may allow first user 14 to modify the initial preference selection (e.g., by again presenting a card 88 to the user).
One advantage to this method is to allow user 14 to correct a mistake. The discovery process, as described in
Modifications, additions, or omissions may be made to the methods described herein without departing from the scope of the disclosure. For example, the steps may be combined, modified, or deleted where appropriate, and additional steps may be added. For example, the system may not determine whether the second user 14's profile is a sponsored profile (hence, step 1003 may not be performed). As another example, in some embodiments, the system may allow a user to modify a preference if there is a match. Additionally, the steps may be performed in any suitable order without departing from the scope of the present disclosure.
Although several embodiments have been illustrated and described in detail, it will be recognized that substitutions and alterations are possible without departing from the spirit and scope of the appended claims.
Number | Date | Country | |
---|---|---|---|
62073073 | Oct 2014 | US |