Systems and methods for providing enhanced recommendations based on offline experience ratings

By identifying offline meeting information through online monitoring and surveys, and adjusting recommendation algorithms and providing techniques, the problem of unsuccessful matching in the online recommendation system was solved, improving the user matching success rate and experience.

CN114586024BActive Publication Date: 2025-10-31HINGE INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202080070786.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-10-09
Filing Date
2020-10-08
Publication Date
2025-10-31
Estimated Expiration
2040-10-08

AI Technical Summary

Technical Problem

Existing online recommendation systems cannot effectively capture users' offline dating experience information, which may lead to unsuccessful matching and prevents targeted improvements and optimizations.

Method used

By monitoring users' online conversations and data, we can identify potential offline meeting pairs, collect meeting information, provide surveys to determine meeting success, and adjust recommendation algorithms and provide dating tips based on user feedback.

Benefits of technology

It improved the success rate of online recommendation systems, reduced resource consumption, provided targeted suggestions to improve user profiles and communication skills, and enhanced the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114586024B_ABST
    Figure CN114586024B_ABST
Patent Text Reader

Abstract

An apparatus includes an interface and a processor. The processor uses the interface to receive a first set of text from a first user and transmits the first set of text to a second user. The processor determines, at least in part, that the first user and the second user have met in person based on the first set of text. The processor uses the interface to transmit a request for a first set of data to the first user. The first set of data includes information about the in-person meeting between the first user and the second user. The processor uses the interface to receive the first set of data from the first user. The processor determines a score for the second user based on the first set of data. The processor uses the interface to transmit a notification to the second user based on the score.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates generally to the field of communications, and more specifically, to a system and method for recommending users based on ratings of their offline experiences. Background Technology

[0002] In recent years, network architectures developed in communication environments have become increasingly complex. Numerous protocols and configurations have been developed to accommodate diverse groups of end-users with varying network needs. Many of these architectures have gained significant attention for their ability to provide automation, convenience, management, and enhanced consumer choice. Combining computing platforms with network architectures can increase communication, collaboration, and / or interaction. For example, certain network protocols can be used to allow end-users to connect online with other users who meet certain search criteria. These protocols might be related to job seeking, missing persons services, real estate searches, or online dating. In many cases, after connecting online, end-users may agree to meet offline. Summary of the Invention

[0003] In typical online recommendation systems, profiles comprising specific sets of attributes relevant to participants in the system can be used to facilitate matching. For example, in an online dating environment, profiles might include attributes such as age, education, and interests. Typical online recommendation systems can provide algorithmic estimates of suitability scores between pairs of participants by comparing various attributes in each participant's profile. Furthermore, online recommendation systems can make recommendations based on the similarity of users' matching history. For example, if users A and B have previously matched with users C, D, and E, and if user A subsequently matches with user F, the system can also present user F as a recommendation to user B based on the assumption that user B has a high probability of matching with user F (due to the similarity between the matching histories of users A and B). Given that users in typical recommendation systems choose whether to match with recommended users based on information contained in the recommended user profiles, in both of the above cases, online recommendation systems tend to rely on user profile information to form recommendations.

[0004] While user profiles can help facilitate matching between users in a recommendation system, this information isn't necessarily a good indicator of whether a match formed within the system will lead to a successful relationship outside the system. For example, a pair of users might choose to match on the system based on information in each other's profiles, but after chatting online, one or both users might not choose to meet the other offline. As another example, a pair of users who have matched in the system might meet offline, but subsequently, one or both users might choose not to participate in any further meetings. In either case, even if the system recommends users to each other and the users both choose to match in the system, the match doesn't necessarily lead to a successful offline relationship. This could be due to a variety of reasons. For example, in an online dating environment, one or both users might have poor dating skills, even if they are actually compatible. As another example, one or both users might not be honest about the information they provide to the system. For instance, one or both users might intentionally try to mislead other users with the profile information they provide to the system, or they might simply portray themselves in an overly positive light. In either case, inconsistencies between a user's profile information and their real-life attributes may surface during an in-person meeting, leading the other user to refuse any further meeting requests. As another example, users may simply be mismatched based on personality aspects that might not be captured in their submitted profiles.

[0005] The fact that a pair of users matched on a system may not want to pursue a relationship offline can be useful information for a recommendation system. For example, if a match fails due to one user's poor dating skills, the system can provide that user with dating tips to help them improve. Another example is if a match fails because one user submitted inaccurate profile information, the system can help users correct these inaccuracies. Yet another example is if a match fails because users are incompatible, the system can integrate this additional information into the recommendation algorithm to increase the likelihood of future recommendations leading to successful matches and successful real-world relationships. However, despite these potential uses / benefits, current online recommendation systems typically fail to capture information about the offline dating experiences of users already matched on the system.

[0006] This disclosure proposes a recommendation tool to address one or more of the aforementioned problems. The tool monitors conversations and other data between matched user pairs in the system to identify those pairs who are likely to meet offline (e.g., date each other). The tool then presents such users with a survey to gather information about the meeting / date. For example, the survey might first ask users to confirm that they have indeed met each other. If the users met, the survey might ask them to indicate whether the meeting was successful or unsuccessful, and why. If the users did not meet, the survey might ask them to indicate why they did not meet.

[0007] Depending on the type of response provided by the user, the system can use the information contained in the response in various different ways. For example, in some embodiments, if a first user indicates that he / she did not meet with a second user due to poor conversational skills demonstrated by the second user during an online conversation between users, the system can provide the second user with one or more conversational tips. As another example, in some embodiments, if a first user indicates that he / she did meet with a second user but does not want any further future meetings with the second user due to the second user's poor dating skills or because the second user's expectations differ from those of the first user based on the information contained in the second user's profile, the system can provide the second user with one or more dating tips and / or ways to improve the profile information. As yet another example, in some embodiments, if a first user indicates that he / she did meet with a second user but does not want any future meetings with the second user because he / she feels deceived by the second user's profile information, the system can provide the first user with the opportunity to report the second user based on such deception. If the system determines that the deception is real and intentional, the system can prevent the second user from receiving recommendations for any other user. As a further example, in some embodiments, if a first user indicates that he / she did meet with a second user, but does not want to continue any future meetings with the second user because he / she does not feel that he / she is suitable for the second user, the system may incorporate this information into the recommendation algorithm used by the system to help increase the likelihood of future recommendations successfully establishing offline relationships. As another example, in some embodiments, if both users indicate that they did meet with each other and they both want to meet again, the system can help the users establish a second meeting in the future. Some embodiments of the recommendation tool are described below.

[0008] According to one embodiment, a method includes receiving a first set of text from a first user. The method further includes transmitting the first set of text to a second user. The method also includes determining, at least in part, that the first user and the second user have met in person based on the first set of text. The method further includes transmitting a request to the first user for a first set of data. The first set of data includes information about the in-person meeting between the first user and the second user. The method also includes receiving the first set of data from the first user. The method further includes determining a score for the second user based on the first set of data. The method also includes transmitting a notification to the second user based on the score.

[0009] According to another embodiment, an apparatus includes an interface and a hardware processor. The interface sends and receives data over a network. The hardware processor uses the interface to receive a first set of text from a first user. The processor also uses the interface to transmit the first set of text to a second user. The processor further determines, at least in part, that the first user and the second user have met in person based on the first set of text. The processor further uses the interface to transmit a request for a first set of data to the first user. The first set of data includes information about the in-person meeting between the first user and the second user. The processor also uses the interface to receive the first set of data from the first user. The processor also determines a score for the second user based on the first set of data. The processor further uses the interface to transmit a notification to the second user based on the score.

[0010] Certain embodiments provide one or more technical advantages. For example, one embodiment may incorporate user feedback information into a machine learning recommendation algorithm to provide users with enhanced recommendations and correspondingly reduce the processing and bandwidth resources consumed by the system in providing recommendations to users before they are matched and form a successful relationship with another user offline. As another example, one embodiment may provide dating and / or communication tips to users who cannot secure an offline date through their online matching. As another example, one embodiment may enable users to report another user for violating the system's terms of service based on inaccurate / false profile information provided by another user to the system. As a further example, embodiments may provide location / activity suggestions to help improve future in-person meetings. Certain embodiments may exclude, partially include, or fully include the technical advantages described above. One or more other technical advantages may be apparent to those skilled in the art from the accompanying drawings, description, and claims included herein. Attached Figure Description

[0011] To gain a more complete understanding of this disclosure, reference is now made to the following description in conjunction with the accompanying drawings, wherein:

[0012] Figure 1 An example system is shown;

[0013] Figure 2 Explanation presented Figure 1 The system's recommendation tool can identify flowcharts of ways in which a pair of users might meet each other offline;

[0014] Figure 3 The presented flowchart illustrates a method, through which... Figure 1 The system's recommendation tools can request information about a meeting between a pair of users and use that information to provide dating tips and / or help facilitate future dates between one or both users; and

[0015] Figure 4 It shows Figure 1 The recommendation engine of the system's recommendation tools. Detailed Implementation

[0016] The embodiments and advantages of this disclosure can be seen by referring to the accompanying drawings. Figures 1 to 4 To understand this, the same reference numerals are used for the same and corresponding parts in each figure.

[0017] Figure 1 Example system 100 is shown. (e.g.) Figure 1 As shown, system 100 includes a recommendation tool 105, users 110, devices 115, networks 120A and 120B, and a database 185. Typically, recommendation tool 105 monitors messages 155 transmitted between pairs of users 110 to determine if the user pair 110 might meet in person. Recommendation tool 105 then solicits information from the paired users about their offline experience (via request 165) to determine if the meeting was successful. If the meeting is successful, in some embodiments, recommendation tool 105 can assist users 110 in arranging future meetings. If the meeting is unsuccessful, in some embodiments, the recommendation tool 105 may: (1) provide dating and / or communication tips 180 to one or both users; (2) assist one or both users in improving their profiles (e.g., by soliciting more / more accurate information from the users); (3) allow users to report other users for violating the terms of service; and / or (4) transmit information about the unsuccessful meeting back to the system's recommendation algorithm to help improve future recommendations 175 provided by the recommendation tool 105 (i.e., help increase the likelihood that recommendation 175 will lead to a successful dating relationship).

[0018] This disclosure envisions, in some embodiments, that the recommendation tool 105 may be configured to receive information submitted by a user and create a profile 190 for the user 110 based on that information. This disclosure also envisions, in some embodiments, that the recommendation tool 105 may operate on user profiles 190 already stored in a database 185 by another system and / or tool.

[0019] This disclosure envisions that in some embodiments, recommendation tool 105 uses response 170 to provide improved recommendation 175, and the recommendation algorithm used by recommendation engine 180 to generate recommendation 175 may operate only on response 170. For example, recommendation engine 180 may determine recommendation 175 for user 110A by comparing both user 110A's matching history 190A and offline experiences (determined based on response 170A) with those of other users 110A (also determined based on response 190). As a specific example, consider a scenario where first user 110A has a similar matching history 195A to third user 110C, and both first user 110A and third user 110C have similar offline dating experiences. For example, both first user 110A and third user 110C may have had successful dates with the first group of users 110, but unsuccessful dates with the second group of users 110. Continuing the example, if third user 110C subsequently indicates that he / she has successfully dated second user 110B, recommendation tool 105 may present second user 110B as recommendation 175 to first user 110A. Here, recommendation tool 105 may operate based on the assumption that user 110A may have a successful date with second user 110B, implying that user 110A might have a successful date with second user 110B, based on the similarity between the offline dating experiences of users 110A and 110C.

[0020] Alternatively, this disclosure envisions that response 170 could be used as one of a set of factors considered in a larger recommendation algorithm. For example, in some embodiments, user 110 may submit not only information about themselves to recommendation tool 105 (i.e., information stored in profile 190), but also preferred characteristics of other users they are seeking to match with. In both cases, such information may include gender, preferred gender of potential matches, height, weight, age, location, place of birth, dietary habits, activities, and goals. Additionally, user 110 may provide recommendation tool 105 with information indicating how important certain factors are in finding matches. For example, user 110 may indicate which features are required in potential matches. As another example, recommendation tool 105 may ask user 110 to indicate, “How important is it that your match doesn’t smoke?” Recommendation tool 105 may also allow user 110 to indicate that certain features are not important search criteria. For example, user 110A may indicate to recommendation tool 105 that the weight and / or height of potential matches are not important. In some embodiments, the recommendation tool 105 may prompt the user 110 to provide information to the tool. For example, the recommendation tool 105 may require the user 110 to answer several questions or provide several descriptions before the user can participate in the recommendation system.

[0021] In some embodiments, recommendation tool 105 may be configured to determine recommendations 175 by searching information contained in profile 190, comparing matching histories 195 between users 110, and extracting information about a user's offline dating experience from response 170. Techniques for determining relevant recommendations for user 110 may include determining the degree to which one user's preferences match the characteristics / attributes of another user, and vice versa, while taking into account user 110's matching history 195 and offline dating experiences. For example, if recommendation tool 105 determines that the preferences of first user 110A strongly match the characteristics / attributes of second user 110B, but multiple other users 110 who share similar matching histories 195 and offline dating experiences with first user 110A have had unsuccessful dates with second user 110B, recommendation tool 105 may choose not to present second user 110B as recommendation 175 to first user 110A. On the other hand, if recommendation tool 105 determines that multiple other users 110 who share similar matching history 195 and offline dating experience with first user 110A have successfully dated second user 110B, then recommendation tool 105 may choose to present second user 110B as a recommendation 175 to first user 110A. In some embodiments, recommendation tool 105 may be configured to generate a recommendation pool 175 for user 110A based on various characteristics / attributes and preferences of user 110A and other users in the system. Recommendation tool 105 may assign scores to user 110A's recommendation pool based on user 110A's preferences and / or activities, as well as matching history 195 and information about the offline experiences of users 110A participating in the system. Tool 105 may also restrict entities to be included in the recommendation pool based on profile status, location information about entities, or location information about user 110A. In this way, certain embodiments of tool 105 can provide user 110A with recommendations 175 of user 110B based on the offline experience of users 110A and 110B and the information provided by users 110A and 110B when setting up profiles 190A and 190B.

[0022] User 110 can use device 115 to send and receive message 155. For example, user 110A can use device 115A to transmit message 155 to recommendation tool 105 (for final reception by user 110B), and user 110B can use device 115B to receive message 155 from recommendation tool 105 (and originating from user 110A). This disclosure contemplates that message 155 may correspond to a portion of an online conversation between user 110A and user 110B. This disclosure also contemplates that message 155 may include text, video, images, or any combination of text, video, and / or images.

[0023] User 110 may also use device 115 to receive requests 165A and 165B. This disclosure envisions requests 165A and 165B comprising surveys transmitted to users 110A and 110B via recommendation tool 105, seeking information regarding a possible in-person meeting between users 110A and 110B as determined by recommendation tool 105. For example, requests 165A and 165B may ask users 110A and 110B whether they have indeed met in person, and if so, whether they intend to meet again. Based on responses 170A and 170B received by recommendation tool 105 from users 110A and 110B, recommendation tool 105 may transmit additional questions to users 110A and 110B. For example, if user 110A indicates that he / she does not want to see user 110B again, request 165A may ask user 110A to indicate why he / she does not want to see user 110B again.

[0024] In some embodiments, device 115 may also transmit meeting data 160A and 160B to recommendation tool 105 to help recommendation tool 105 determine that users 110A and 110B may meet each other in person. This disclosure contemplates that meeting data 160A and 160B may include any information indicating that users 110A and 110B may meet together at a physical location. For example, in some embodiments, meeting data 160A and 160B may be GPS information indicating that users 110A and 110B are at approximately the same location at approximately the same time. As another example, in some embodiments, meeting data 160A and 160B may include information submitted by users 110A and / or 110B stating that users 110A and 110B are meeting each other at a physical location.

[0025] In some embodiments, device 115 may receive notification 180 transmitted via recommendation tool 105. In some embodiments, notification 180 may include tips on methods for improving communication skills, dating skills / techniques, and / or user profile 190. In some embodiments, notification 180 may include ideas about future dates and / or conversation topics. In some embodiments, in response to information included in a response 170A submitted by user 110A indicating that he / she has had a successful offline experience with user 110B, recommendation tool 105 may transmit notification 180 to user 110B's device 115B.

[0026] In some embodiments, device 115 may also receive recommendation 175. This disclosure contemplates that recommendation 175 may include profiles and / or profile information of other users 110 who may be suitable for user 110A, as determined by recommendation tool 105. In some embodiments, recommendation 175 may be based entirely on response 170 received from user 110. In some embodiments, recommendation 175 may be based in part on response 170 and profile 190 and / or matching history 195.

[0027] Device 115 includes any suitable device for communicating with components of system 100 via network 120A. For example, device 115 may be, or may be accompanied by, a telephone, mobile phone, computer, laptop, tablet, server, automated assistant and / or virtual reality or augmented reality headset or sensor, or other device. This disclosure contemplates device 115 as any suitable device for sending and receiving communications via network 120A. By way of example and not limitation, device 115 may be a computer, laptop, wireless or cellular phone, e-notebook, personal digital assistant, tablet, or any other device capable of receiving, processing, storing, and / or transmitting information with other components of system 100. Device 115 may also include a user interface, such as a display, microphone, keyboard, or other suitable terminal equipment available to user 110. In some embodiments, an application executed by device 115 performs the functions described herein. In some embodiments, device 115 may communicate with recommendation tool 105 via network 120A through a web interface.

[0028] Networks 120A and 120B facilitate communication between various components of system 100. This disclosure contemplates that networks 120A and 120B are any suitable networks operable to facilitate communication between components of system 100. Networks 120A and 120B may include any interconnected system capable of transmitting audio, video, signals, data, messages, or any combination thereof. Networks 120A and 120B may include all or part of a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a local, regional, or global communications or computer network, such as the Internet, wired or wireless networks, a corporate intranet, or any other suitable communication link, including combinations thereof, operable to facilitate communication between components. This disclosure contemplates that in some embodiments, networks 120A and 120B correspond to the same network. This disclosure also contemplates that in some embodiments, networks 120A and 120B may correspond to different networks. For example, in some embodiments, network 120A may be a global communications or computer network, such as the Internet, while network 120B may be a private data network in use.

[0029] like Figure 1As shown, the recommendation tool 105 includes a processor 125, a memory 130, and an interface 135. This disclosure contemplates that the processor 125, memory 130, and interface 135 are configured to perform any of the functions of the recommendation tool 105 described herein. Generally, the recommendation tool 105 implements a meeting detector 140 and a meeting evaluator 145. In some embodiments, the recommendation tool 105 further implements a recommendation engine 150.

[0030] This disclosure envisions that a meeting detector 140 can be used by a recommendation tool 105 to determine a possible in-person meeting between a first user 110A and a second user 110B. The meeting detector 140 can determine in any suitable manner that an in-person meeting may have occurred between the first user 110A and the second user 110B. For example, in some embodiments, the meeting detector 140 can monitor messages 155 exchanged between users 110A and 110B to determine if users 110A and 110B may have met in person. This disclosure envisions that messages 155 can be exchanged by users 110A and 110B through the recommendation tool 105 in response to users 110A and 110B selecting to match each other after being presented with recommendations 175 by the recommendation tool 105. Therefore, messages 155 transmitted by user 110A and destined for user 110B are first received by interface 135 and then transmitted to user 110B's device 115B. In some embodiments, interface 135 may provide access to message 155 to meeting detector 140 before message 155 is transmitted to user 110B. In some embodiments, interface 135 may store copies of message 155, which meeting detector 140 may then access.

[0031] This disclosure contemplates that the meeting detector 140 can use message 155 in any suitable manner to determine that users 110A and 110B may meet each other in person. For example, in some embodiments, the meeting detector 140 may determine that users 110A and 110B may meet each other in person based in part on identifying a phone number in message 155. For example, the meeting detector 140 may examine message 155 and determine that message 155 contains a number string having the format XXX-XXX-XXXX, (XXX)XXX-XXXX, XXX-XXXX, or any other similar number format, which may include contact information. As another example, the recommendation tool 105 may examine message 155 and determine that message 155 contains words or phrases associated with the exchange of contact information, such as “call me,” “my number is,” “my phone number,” or any other suitable phrase that may be associated with the exchange of contact information. In some embodiments, in response to determining that users 110A and 110B may have exchanged contact information, the meeting detector 140 may determine that users 110A and 110B may plan to meet each other. Meeting detector 140 can further determine that users 110A and 110B may have met with each other during a set number of days after a suspicious exchange of contact information. For example, in some embodiments, meeting detector 140 can determine that users 110A and 110B may have met offline by identifying a possible phone number exchange between users 110A and 110B on day one and then waiting for a five-day period to pass.

[0032] As another example, in some embodiments, the meeting detector 140 can determine that users 110A and 110B may have met in person by recognizing one or more keywords or a set of keywords that tend to indicate an in-person meeting between the users. For example, the set of keywords may include words and / or phrases such as “I had a good time,” “second date,” “goodbye,” “our date,” “see you next time,” or any other appropriate words and / or phrases indicating that an in-person meeting may have already taken place.

[0033] As another example, in some embodiments, the meeting detector 140 can determine that users 110A and 110B are likely to meet by applying a machine learning algorithm to messages 155 exchanged between users 110A and 110B. This disclosure contemplates that the machine learning algorithm can be trained to determine the probability that a first user and a second user may meet based on a conversation between the two users. For example, the machine learning algorithm can first be trained on a set of training data that includes previous conversations between multiple pairs of users, where it is known that the users have met in person, or that the users have never met in person. The machine learning algorithm can be trained to extract a set of attributes from the conversations and assign weights to these attributes, where the weights indicate the relative extent to which the attributes prove the fact that the two users have met in person. For example, this set of attributes may include the frequency and number of messages 155 exchanged between users 110A and 110B, the time when the initial message 155 was sent from user 110A to user 110B after users 110A and 110B first matched on the system, certain keywords contained in the message 155, the dates of the week on which certain messages 155 were exchanged between users 110A and 110B, and / or any other suitable features. After applying the machine learning algorithm to the messages 155 exchanged between users 110A and 110B, the meeting detector 140 can determine that users 110A and 110B are likely to meet in person by determining that the probability (determined by the machine learning algorithm) that users 110A and 110B may meet in person is greater than a predetermined threshold.

[0034] As an additional example, after users 110A and 110B exchange message 155, the meeting detector 140 can determine that users 110A and 110B may be meeting in person by receiving meeting data 160A and 160B in the form of location data from users 110A and 110B. For example, in some embodiments, the meeting detector 140 may receive GPS data 160A and 160B from devices 115A and 115B. The meeting detector 140 can then determine that users 110A and 110B may be meeting in person by determining that the location of user 110A at a first time is within a first tolerance range of the location of user 110B at a second time, where the first time and the second time are also within a second tolerance range of each other.

[0035] As another example, the meeting detector 140 can determine that users 110A and 110B may have met in person with each other by receiving meeting data 160A and / or 160B in an explicitly indicative form from users 110A and / or 110B. For example, in some embodiments, users 110A and / or 110B may send messages 160A and / or 160B to the recommendation tool 105 indicating that an in-person meeting has occurred between users 110A and 110B. For example, in some embodiments, the recommendation tool 105 may provide a web interface and / or application interface to user 110, through which user 110 can communicate with the recommendation tool 105 (e.g., send and receive messages 155, receive recommendations 175, notifications 180, and requests 165). The web interface and / or application interface may include locations where user 110 may indicate to the recommendation tool 105 that they have met in person with another user. For example, in some embodiments, the web interface and / or application interface may include recommended locations where user 110 can view recommendations 175. User 110A can then indicate that he / she has met in person with User 110B, who was previously recommended to him / her, by navigating to the recommended location and performing an action related to User 110B's recommendation. For example, User 110A can view the recommended location on his / her mobile device 115A and make a gesture on the screen of his / her mobile device 115A over User 110B's recommendation to indicate that he / she has met in person with User 110B.

[0036] The meeting detector 140 may be a software module stored in memory 130 and executed by processor 125. An example algorithm for the meeting detector 140 may include some of the following or similar steps: setting a meeting flag to 0; receiving message 155 exchanged between user 110A and user 110B; if message 155 contains a numeric string in the format XXX-XXX-XXXX, (XXX)XXX-XXXX, XXX-XXXX: {wait for a predetermined number of days; set the meeting flag to 1}; otherwise, if message 155 contains one or more keywords from a set of keywords: set the meeting flag to 1; otherwise, if the probability returned by the machine learning algorithm applied to message 155 is greater than a predetermined threshold: The meeting flag is set to 1; otherwise, if user 110A transmits meeting data 160A to recommendation tool 105, instructing him / her to meet with user 110B in person: the meeting flag is set to 1; otherwise: {Receive GPS data 160A and 160B; determine that user 110A is in a first location at a first time; determine that user 110B is in a second location at a second time; if the first and second locations are within a first tolerance, and the first and second times are within a second tolerance: the meeting flag is set to 1}; if the meeting flag is set to 1, it is determined that user 110A and user 110B may meet.

[0037] Once the meeting detector 140 determines that users 110A and 110B may meet in person, the recommendation tool 105 can implement a meeting evaluator 145 to obtain information from users 110A and 110B about their offline meeting. This disclosure envisions that the meeting evaluator 145 can obtain information about the offline meeting between users 110A and 110B by first presenting surveys 165A and 165B to the users and then analyzing the responses 170A and 170B submitted by users 110A and 110B in response to the questions posed in surveys 165A and 165B. This disclosure envisions that surveys 165A and 165B can solicit responses 170A and 170B from users 110A and 110B in any suitable format. For example, surveys 165A and 165B can ask users 110A and 110B to submit answers to the questions in the form of multiple choice, drop-down menu selection, yes / no answers, free-form responses, or any other suitable response format.

[0038] This disclosure envisions that surveys 165A and 165B may present the same initial question to users 110A and 110B, but subsequent questions may depend on users 110A and 110B's responses 170A and 170B to the previously submitted questions. For example, survey 165A may begin by asking user 110A whether he / she actually met with user 110B in person. If user 110A answers "no," survey 165A may continue by asking user 110A why he / she has not yet met with user 110B in person, and / or whether he / she plans to meet with user 110B in person in the future. On the other hand, if user 110A answers that he / she did meet with user 110B in person, survey 165A may continue by asking user 110A whether he / she enjoyed the meeting with user 110B, and / or whether user 110A wishes to meet with user 110B in person a second time. If User 110A answers affirmatively, Survey 165A may proceed to ask User 110A if they would like help to establish a second meeting. Alternatively, if User 110A answers that they do not want a second in-person meeting, Survey 165A may then ask why. For example, Survey 165A may ask User 110A to choose from a set of reasons why they do not want a second in-person meeting. Such reasons might include: (A) User 110B's profile information is inaccurate; (B) User 110B behaved inappropriately during the date; (C) User 110B is boring; (D) User 110A is dissatisfied with the activities User 110B chose for the meeting / date; (E) User 110A has no feelings for User 110B; and / or any other suitable response. In some embodiments, Survey 165A may simply ask User 110A to provide a free-form response indicating why they do not want a second in-person meeting with User 110B.

[0039] In some embodiments, the meeting evaluator 145 may use response 170A to determine a score for user 110B. For example, in some embodiments, if user 110A indicates via response 170A that he / she wants to have a further in-person meeting with user 110B, the meeting evaluator 145 may assign a positive score to user 110B. On the other hand, in some embodiments, if user 110A indicates via response 170A that he / she does not want to have any further meetings and / or contact with user 110B, the meeting evaluator 145 may assign a negative score to user 110B. In some embodiments, different scores may be assigned to different categories of reasons why user 110A does not want to have any further meetings with user 110B. For example, -1 point might indicate that User 110A thinks User 110B's profile information is inaccurate; -2 points might indicate that User 110A finds User 110B boring; -3 points might indicate that User 110A is dissatisfied with the activities User 110B chose for the meeting; -4 points might indicate that User 110A simply doesn't feel anything for User 110B; -5 points might indicate that User 110B behaved inappropriately during the meeting; -6 points might indicate that User 110B lied to User 110A about his / her profession, education, and / or any other important facts before the meeting.

[0040] In some embodiments, the recommendation tool 105 provides a web interface and / or application interface to user 110, through which user 110 can communicate with the recommendation tool 105. After detector 140 has determined that users 110A and 110B may meet, the meeting evaluator 145 may automatically send survey 165A to user 110A the first time user 110A accesses the web and / or application interface. For example, after user 110A has accessed the web and / or application interface, the meeting evaluator 145 may present survey 165A to user 110A by generating an automatic pop-up window on the screen of user 110A's device 115A. In some embodiments, the meeting evaluator 145 may send one or more surveys 165A to user 110A on a predetermined date of the week or at predetermined time intervals. For example, the meeting evaluator 145 may send survey 165A to user 110A every 10 days (assuming that the meeting detector 140 has determined that user 110A may meet with another user 110B within these 10 days). In some embodiments, the meeting evaluator 145 may send a notification to user 110A, indicating that survey 165A is available to user 110A within a web and / or application interface. User 110A can then access survey 165A by logging into the web / application interface and navigating to survey 165A.

[0041] Based on responses 170A and 170B provided by users 110A and 110B, meeting evaluator 145 can determine whether users 110A and 110B conducted an in-person meeting, and if so, whether the meeting was successful. This disclosure envisions that the meeting evaluator can use this information for various different purposes. For example, in some embodiments, meeting evaluator 145 can aggregate this information and use it to provide statistical data to user 110. For example, meeting evaluator 145 can send a notification 180 to user 110 stating that, according to survey 165, a certain percentage of online conversations facilitated by recommendation tool 105 resulted in in-person meetings. As another example, meeting evaluator 145 can send a notification 180 to user 110 stating that, according to survey 165, choosing a unique location for a first meeting resulted in a more successful meeting than choosing a chain restaurant.

[0042] In some embodiments, the meeting evaluator 145 may use responses 170A and 170B to provide tips to user 110 who may have difficulty getting other users to agree to an initial in-person meeting. For example, the meeting evaluator 145 may determine that user 110B frequently exchanges his / her phone number with other users, but less than 10% of such exchanges result in an in-person meeting. The meeting evaluator 145 may be able to use response 170A from user 110A who chooses not to participate in an in-person meeting with user 110B to determine why user 110B has difficulty establishing such meetings. Based on this information, the meeting evaluator 145 may then provide user 110B with tips for overcoming these difficulties. For example, the meeting evaluator 145 may determine, based on message 155 exchanges between user 110A and user 110B, that response 170A frequently instructs user 110A to perceive user 110B as lacking confidence. As a result, the meeting evaluator 145 may present user 110B with tips 180 on how to appear more confident in conversations.

[0043] In some embodiments, the meeting evaluator 145 may use responses 170A and 170B to provide tips to user 110B who, while easily establishing an initial in-person meeting, may find it challenging to get user 110A to agree to a second in-person meeting. For example, responses 170A and 170B may indicate that users 110A and 110B have had an in-person meeting, and user 110B wants a second in-person meeting, but user 110A does not. For example, user 110A may indicate through response 170A that user 110B appears 10-20 years older in person than indicated by his / her profile picture. Therefore, the meeting evaluator 145 may convey tip 180 to user 110B, suggesting that user 110B update his / her profile picture. As another example, User 110A might indicate through response 170A that he / she decides to meet User 110B in person based on the fact that User 110B states in his / her profile that he / she enjoys reading; however, during their in-person meeting, User 110B is unable to recall the name of the last book he / she has read. Therefore, the meeting evaluator 145 could convey tip 180 to User 110B, suggesting that User 110B update the "His / Her Activities / Interests" section of his / her profile by removing activities / interests he / she doesn't frequently participate in. As another example, User 110A might indicate through response 170A that he / she doesn't want to meet User 110B a second time because User 110B took him / her to a fast-food restaurant in a dangerous area of ​​town during their first in-person meeting. Therefore, the meeting evaluator 145 could convey tip 180 to User 110B, suggesting a more suitable location for the first in-person meeting.

[0044] This disclosure envisions that the meeting evaluator 145 can transmit the tip 180 to the user 110 in any suitable manner. For example, in some embodiments, the meeting evaluator 145 may send the tip 180 to the user 110 via email, text message, push notification, application message, and / or any other suitable method.

[0045] In some embodiments, the meeting evaluator 145 may use responses 170A and 170B to determine that user 110B may have violated one of the tool's terms of service. For example, response 170A may indicate that user 110B behaved in a highly inappropriate manner during an in-person meeting with user 110A. As another example, response 170A may indicate that user 110B intentionally provided false information to the recommendation tool 105 to be included in his / her profile 110B. For example, response 170A may indicate that user 110B lied about his / her profession, education, or any other information in his / her profile, and user 110A discovered this deception during his / her in-person meeting with user 110B. In this case, the meeting evaluator 145 may send a notification 180 to user 110B indicating that user 110B will no longer be allowed to communicate with other users 110 through the recommendation tool 105.

[0046] In some embodiments, the meeting evaluator 145 may use responses 170A and 170B to provide feedback to users 110A and 110B regarding their in-person meeting. For example, if both users 110A and 110B indicate via responses 170A and 170B that they enjoyed their in-person meeting and wish to schedule a second in-person meeting, the meeting evaluator 145 may send a notification 180 to users 110A and 110B indicating that the in-person meeting was successful. In some embodiments, the notification 180 may additionally include suggestions / recommendations to help users 110A and 110B schedule a second in-person meeting. For example, the notification 180 may present recommendations for highly-rated restaurants located nearby to both users 110A and 110B. As another example, the notification 180 may present suggestions to users 110A and 110B to help them schedule a second in-person meeting.

[0047] Meeting evaluator 145 may be a software module stored in memory 130 and executed by processor 125. An example algorithm for meeting evaluator 145 may include some or all of the following steps: receiving notification from meeting detector 140 that users 110A and 110B may have a face-to-face meeting; determining that user 110A has accessed the web / application interface provided by recommendation tool 105; sending a survey 165A to user 110A, the first question of which asks whether user 110A and user 110B actually had a face-to-face meeting; if user 110A indicated that he / she had a face-to-face meeting with user 110B: {providing user 110A with the first set of questions in survey 165A requesting information about the face-to-face meeting; determining whether the face-to-face meeting was successful based on response 165A; if the face-to-face meeting was successful, sending notification 180 to user 110A offering assistance in establishing a second face-to-face meeting; if the face-to-face meeting was unsuccessful: {determining the reason for the face-to-face meeting's failure; if due to...} If the in-person meeting fails due to inaccurate profile information of User 110B, Tip 180 is sent to User 110B, suggesting that User 110B update his / her profile information; if the in-person meeting fails because User 110A is dissatisfied with the location / activity chosen by User 110B for the in-person meeting, Tip 180 is sent to User 110B, suggesting an alternative location / activity for the future meeting; if the in-person meeting fails because User 110B violates one or more of the tool's terms of service, Notification 180 is sent to User 110B, indicating that User 110B will no longer be allowed to communicate with other users 110 through Recommendation Tool 105; if User 110A indicates that he / she did not meet with User 110B in person, User 110A is provided with the second set of questions in Survey 165A, requesting information on why User 110A and User 110B did not meet in person. Determine one or more reasons why users 110A and 110B did not meet in person; if users 110A and 110B did not meet in person because they did not have time to schedule a meeting, send notification 180 to propose help establish a meeting between the users; if users 110A and 110B did not meet in person because user 110A did not like his / her online conversation with user 110B, send tip 180 to user 110B to improve the online conversation.

[0048] In some embodiments, recommendation tool 105 may additionally include recommendation engine 150. This disclosure contemplates that in some embodiments, recommendation engine 150 may provide information obtained from response 170 to a recommendation algorithm used by recommendation engine 150 to generate recommendations for users who may be suitable for each other. In this way, some embodiments may increase the likelihood that future user recommendations generated by recommendation engine 150 will lead to a successful in-person meeting, in part due to feedback provided by response 170 regarding the success / failure of a previous in-person meeting. For example, in some embodiments, recommendation engine 150 may determine, based on information stored in user profiles 190A through 190F, that users 110A and 110B may both be suitable for users 110C, 110D, 110E, and 110F. However, based on in-person meetings with users 110C through 110F, recommendation engine 150 can determine that user 110A had successful in-person meetings with users 110C and 110D, and unsuccessful in-person meetings with users 110E and 110F, while user 110B had unsuccessful in-person meetings with users 110C and 110D, and successful in-person meetings with users 110E and 110F. This difference in in-person meeting success may be due to the presence of additional personality traits of users 110A through 110F, which recommendation engine 150 may not be able to capture from the information stored in profiles 190A through 190F. Therefore, recommendation engine 150 can incorporate the information provided by users 110A and 110B regarding the success of their in-person meetings to refine future recommendations 175 presented to user 110. For example, recommendation engine 150 may choose not to present user 110G as recommendation 175 to user 110A, even though user 110A and user 110G seem appropriate based on the information stored in profiles 190A and 190G, because user 110B has successfully met user 110G in person, implying that user 110A may not have a successful meeting with user 110G in person.

[0049] This disclosure envisions that recommendation engine 150 can incorporate information obtained from response 170 into recommendation algorithms used by recommendation engine 150 in any suitable manner. For example, in some embodiments, recommendation engine 150 may include a collaborative filtering algorithm to determine recommendation 175 for user 110. In such embodiments, recommendation engine 150 may determine recommendation 175 for user 110 in part by comparing user 110's matching history 195. For example, if recommendation engine 150 determines based on matching history 195A and 195B that users 110A and 110B have both chosen to match with similar user groups in the past (e.g., users 110A and 110B both chose to match with users 110C to 110E), then if user 110B chooses to match with user 110F, recommendation engine 150 may determine based on the similarity between matching history 195A and 195B that user 110A may also match with user 110F. Therefore, recommendation engine 150 can send user 110F's profile 190F as recommendation 175 to user 110A. In such embodiments, recommendation engine 150 can incorporate information collected from response 170 into the collaborative filtering algorithm by modifying matching history 195A to 195N based on the success / failure of in-person meetings caused by matches stored in matching history 195A to 195N. For example, if user 110A previously matched with user 110B based on user 110B's profile 190B, but subsequently indicated to recommendation tool 105 (via response 170A) that his / her in-person meeting with user 110B was unsuccessful, then recommendation engine 150 can modify matching history 195A to indicate that user 110A did not actually match with user 110B.

[0050] In some embodiments, recommendation engine 150 may employ a collaborative filtering algorithm based entirely on information provided by user 110 through response 170 rather than matching history 195. For example, recommendation engine 150 may store information about successful / unsuccessful in-person meetings in database 185 and use that information to generate recommendation 175. For instance, if both user 110A and user 110B had successful in-person meetings with the first group of users 110 and unsuccessful in-person meetings with the second group of users 110, then if user 110B had a successful in-person meeting with user 110C, recommendation engine 150 may present user 110C's profile 190C as recommendation 175 to user 110A based on the assumption that, based on the similarity between the in-person meeting histories of user 110A and user 110B, if user 110B had a successful in-person meeting with user 110C, user 110A is also likely to have a successful in-person meeting with user 110C.

[0051] In some embodiments, recommendation engine 150 may use machine learning algorithms to determine recommendations 175. For example, recommendation engine 150 may train a machine learning algorithm to extract a set of features based on profile 190, matching history 195, and / or any other suitable information, and use these features to determine the probability that a pair of users 110A and 110B are suitable for each other. In such embodiments, recommendation engine 150 may incorporate information obtained from response 170 into the algorithm by creating additional machine learning features associated with the success / failure of in-person meetings between users 110 and assigning appropriate weights to those features. In this way, recommendation engine 150 may determine improved recommendations 175 in part based on feedback from users 110 regarding the success / failure of in-person meetings that users have already attended.

[0052] In some embodiments, recommendation engine 150 may use information obtained from response 170 to provide user 110 with additional information about those users that recommendation engine 150 presents to user 110 as recommendation 175. For example, recommendation engine 150 may present user 110B's recommendation to user 110A, along with information stating that user 110B's profile 190B is similar to user 110C's profile 190C and that user 110A indicates that he / she has successfully met user 110C in person.

[0053] Recommendation engine 150 may be a software module stored in memory 130 and executed by processor 125. An example algorithm for recommendation engine 180 is as follows: extract a set of features from profile 190, matching history 195, and / or responses 170; apply a machine learning algorithm to this set of features to determine the probability that user 110B is likely suitable for user 110A; if the probability is greater than a predetermined threshold, present recommendation 175 of user 110B to user 110A.

[0054] Processor 125 may be any electronic circuit, including but not limited to a microprocessor, application-specific integrated circuit (ASIC), application-specific instruction set processor (ASIP), and / or state machine, communicatively coupled to memory 130 and interface 135 and controlling the operation of recommendation tool 105. Processor 125 may be 8-bit, 16-bit, 32-bit, 64-bit, or any other suitable architecture. Processor 125 may include an arithmetic logic unit (ALU) for performing arithmetic and logical operations, processor registers for providing operands to the ALU and storing the results of ALU operations, and a control unit for fetching instructions from memory and executing them by directing the coordinated operation of the ALU, registers, and other components. Processor 125 may include other hardware and software for operating control and processing information. Processor 125 executes software stored in memory to perform any of the functions described herein. Processor 125 controls the operation and management of recommendation tool 105 by processing information received from network 120, device 115, interface 135, and memory 130. Processor 125 may be a programmable logic device, microcontroller, microprocessor, any suitable processing device, or any suitable combination thereof. The processor 125 is not limited to a single processing device and may contain multiple processing devices.

[0055] Memory 130 may permanently or temporarily store data, operating software, or other information for processor 125. Memory 130 may include any or a combination of volatile or non-volatile local or remote devices suitable for storing information. For example, memory 130 may include random access memory (RAM), read-only memory (ROM), magnetic storage devices, optical storage devices, or any other suitable information storage devices or combinations thereof. The software represents any suitable set of instructions, logic, or code contained in a computer-readable storage medium. For example, the software may be contained in memory 130, a disk, CD, or flash drive. In a particular embodiment, the software may include an application program executable by processor 125 to perform one or more of the functions described herein.

[0056] Interface 135 represents any suitable device operable to receive information from network 120A, transmit information through network 120A, perform appropriate processing of information, communicate with other devices, or any combination thereof. For example, interface 135 transmits a request 165, a recommendation 175, and / or a notification 180 to device 115. As another example, interface 135 receives meeting data 160 and / or a response 170 from device 115. As another example, interface 135 can facilitate the exchange of message 155 between users 110A and 110B by receiving message 155 transmitted by user 110A for eventual reception by user 110B, and then transmitting message 155 to user 110B. Interface 135 represents any port or connection (real or virtual, including any suitable hardware and / or software, including protocol conversion and data processing capabilities) for communication via a LAN, WAN, or other communication system that allows recommendation tool 105 to exchange information with device 115 and / or other components of system 100 through network 120A.

[0057] As described above, database 185 may store a set of user profiles 190. User profiles 190 define or represent the characteristics of user 110. Profiles 190 may be used by the public, members of the online dating system, and / or members of specific categories within the online dating system. Profiles 190 may contain information requested from user 110 when user 110 creates their online dating account, or information that these users otherwise enter into their profiles. Profiles 190 may include general information such as age, height, gender, and occupation, as well as detailed information that may include the user's interests, likes / dislikes, personal feelings, and / or worldview.

[0058] In some embodiments, database 185 may also store a set of matching histories 195. For a given user 110A, matching history 195A may indicate those users 110B that are presented to user 110A as recommendations 175 and that user 110A chooses to match with. In some embodiments, as described above, recommendation tool 105 may modify matching history 195 based on feedback provided by response 170. For example, if user 110A chooses to match with user 110B but subsequently indicates that he / she participated in an unsuccessful in-person meeting with user 110B (i.e., user 110A may indicate through response 170A that he / she does not wish to participate in any further in-person meetings with user 110B), then recommendation tool 105 may update matching history 195A to indicate that user 110A did not actually match with user 110B.

[0059] In some embodiments, recommendation tool 105 can help improve user 110's online matching experience in several ways by determining that user 110 may have participated in in-person meetings with other users and soliciting information about these meetings via request 165. For example, some embodiments can provide dating and / or communication tips to users who cannot secure offline dates through their online matching to help those users secure future dates. As another example, some embodiments can provide methods for improving profile information and / or tips for suggesting conversation topics, meeting locations, and / or meeting activities to help enable users to secure additional in-person meetings after the initial in-person meeting. As another example, some embodiments can help protect user 110's health / safety by allowing users to report another user for violating the system's terms of service based on inaccurate / deceptive profile information provided by other users or serious misconduct by other users. As a further example, some embodiments can provide enhanced recommendations 175 in part based on feedback from users' offline dating experiences.

[0060] Modifications, additions, or omissions may be made to the system described herein without departing from the scope of the invention. For example, system 100 may include any number of users 110, devices 115, networks 120A and 120B, and database 185. These components may be integrated or separate. Furthermore, the above operations may be performed by more, fewer, or other components. Additionally, any suitable logic, including software, hardware, and / or other logic, may be used to perform the operations. As used in this document, “each” means each member of a set or each member of a subset of a set.

[0061] Figure 2A flowchart illustrating how recommendation tool 105 can determine a pair of users who might meet each other in person is presented. In step 205, recommendation tool 105 receives message 155 from first user 110A and transmits message 155 to second user 110B. This disclosure envisions message 155 comprising text, video, images, or any combination of text, video, and / or images. In step 210, recommendation tool 105 determines whether message 155 includes a phone number or other contact information. This disclosure envisions recommendation tool 105 determining that message 155 includes a phone number in any suitable manner. For example, recommendation tool 105 may examine message 155 to determine whether message 155 contains a number string having the format XXX-XXX-XXXX, (XXX)XXX-XXXX, XXX-XXXX, or any other similar number format. As another example, recommendation tool 105 may examine message 155 to determine whether message 155 contains words or phrases associated with the exchange of contact information, such as “call me,” “my number is,” “my phone number,” or any other suitable phrase that might be associated with the exchange of contact information. If recommendation tool 105 determines that message 155 includes a phone number or other contact information, recommendation tool 105 may wait a predetermined number of days before determining in step 250 that users 110A and 110B may meet. This disclosure contemplates that recommendation tool 105 may wait any number of days before determining that users 110A and 110B may meet. For example, in some embodiments, recommendation tool 105 may wait three days. In some embodiments, recommendation tool 105 may wait five days.

[0062] If, in step 210, recommendation tool 105 determines that message 155 does not include a phone number or contact information, then in step 215, recommendation tool 105 determines whether message 155 contains one or more keywords from a set of keywords. If recommendation tool 105 determines that message 155 contains one or more keywords from a set of keywords, then in step 250, recommendation tool 105 determines that users 110A and 110B may meet. This disclosure contemplates that the set of keywords includes keywords that tend to indicate an in-person meeting between the users. For example, the set of keywords may include words and / or phrases such as “I had a good time,” “second date,” “goodbye,” “our date,” “see you next time,” or any other words and / or phrases that indicate the two people may have already met. This disclosure contemplates that in some embodiments, the set of keywords may be stored in memory 130.

[0063] If, in step 215, recommendation tool 105 determines that message 155 does not contain one or more keywords from a set of keywords, then in step 210, recommendation tool 105 provides message 155 to a machine learning algorithm. This disclosure envisions training a machine learning algorithm to determine the probability that users 110A and 110B might meet based on a conversation between two users. For example, the machine learning algorithm might first be trained on a set of training data that includes previous conversations between multiple pairs of users, where it is known that the users have met in person or have not met in person. The machine learning algorithm can be trained to extract a set of attributes from the conversation and assign weights to these attributes, where the weights indicate the relative degree to which the attributes prove the fact that a meeting has occurred between the two users. For example, this set of attributes may include the frequency and number of messages 155 exchanged between users 110A and 110B, the time when the initial message 155 was sent from user 110A to user 110B after their first match, certain keywords contained in the message 155, the dates of the week on which certain messages 155 were exchanged between users 110A and 110B, and / or any other suitable features. After applying the machine learning algorithm to the messages 155 exchanged between users 110A and 110B, recommendation tool 105 may obtain the probability in step 225 that users 110A and 110B may meet in person. In step 230, recommendation tool 105 may determine whether the probability is greater than a predetermined threshold. If, in step 230, recommendation tool 105 determines that the probability is greater than the predetermined threshold, then in step 250, recommendation tool 105 determines that users 110A and 110B may meet.

[0064] If, in step 230, the recommendation tool 105 determines that the probability is not greater than a predetermined threshold, then in step 235, the recommendation tool 105 receives meeting data 160A and 160B in the form of location data from users 110A and 110B. In step 240, the recommendation tool 105 uses the meeting data 160A and 160B to determine whether users 110A and 110B are in approximately the same location at approximately the same time. For example, the recommendation tool 105 may receive the location of user 110A at a first time and the location of user 110B at a second time. The recommendation tool 105 may then determine whether the location of user 110A at the first time is within a first tolerance range of the location of user 110B at the second time, and whether the first and second times are also within a second tolerance range of each other. If, in step 240, the recommendation tool determines that users 110A and 110B are in approximately the same location at approximately the same time, then in step 250, the recommendation tool 105 determines that users 110A and 110B may meet.

[0065] If, in step 240, recommendation tool 105 determines that users 110A and 110B are not in substantially the same location at approximately the same time, then in step 245, recommendation tool 105 determines whether users 110A and / or 110B have sent meeting data 160A and / or 160B to recommendation tool 105, explicitly indicating that users 110A and 110B have met. As an example, in some embodiments, recommendation tool 105 may provide user 110 with a web interface and / or application programming interface (API) through which user 110 can communicate with recommendation tool 105 (i.e., send and receive messages 155, receive recommendations 175, notifications 180, and requests 165). The web and / or API may include a location that user 110 can indicate to recommendation tool 105 where they have met in person with another user. For example, in some embodiments, the web and / or API may include a recommended location where user 110 can view recommendation 175. Then, user 110A can indicate that he / she has met in person with user 110B, who was previously recommended to him / her, by navigating to the recommended location and performing an action related to user 110B's recommendation. For example, user 110A can view the recommended location on his / her mobile device 115A and make a gesture on the screen of his / her mobile device 115A over user 110B's recommendation to indicate that he / she has met in person with user 110B. If, in step 245, the recommendation tool 105 receives explicit instructions 160A and / or 160B from user 110A and / or user 110B that user 110A and user 110B may meet, then in step 250, the recommendation tool 105 determines that user 110A and user 110B may meet.

[0066] Can be Figure 2 The method 200 shown can be modified, added to, or omitted. Method 200 may include more, fewer, or other steps. For example, the steps may be performed in parallel or in any suitable order. While recommended tool 105 (or components thereof) for performing these steps has been discussed, any suitable component of system 100, such as device 115, may perform one or more steps of the method.

[0067] Figure 3A flowchart illustrating how recommendation tool 105 requests information about a potential meeting between a pair of users and uses that information to provide dating tips and / or help facilitate future dates between the users. In step 305, recommendation tool 105 receives message 155 from first user 110A. In step 310, recommendation tool 105 transmits message 155 to second user 110B. In step 315, recommendation tool 105 uses message 155 to determine that first user 110A and second user 110B may have met offline together, as described above. Figure 2 As described in detail in the discussion. In response to determining that the first user 110A and the second user 110B may meet together, in step 320, the recommendation tool 105 transmits requests 165A and 165B to users 110A and 110B to seek information about the meeting. For example, in some embodiments, requests 165A and 165B may take the form of surveys provided to users 110A and 110B. In step 325, the recommendation tool 105 receives responses 170A and 170B submitted by users 110A and 110B in response to the questions posed by surveys 165A and 165B. This disclosure contemplates that surveys 165A and 165B may solicit responses 170A and 170B from users 110A and 110B in any suitable format. For example, surveys 165A and 165B may require users 110A and 110B to submit answers to the questions in the form of multiple choice, drop-down menu selection, yes / no answers, free-form responses, or any other suitable response format.

[0068] This disclosure envisions that surveys 165A and 165B may present the same initial question to users 110A and 110B, but subsequent questions may depend on users 110A and 110B's responses 170A and 170B to the previously submitted questions. For example, survey 165A may begin by asking user 110A whether he / she actually met user 110B in person. If user 110A answers "no," then survey 165A may continue by asking user 110A why he / she has not yet met user 110B in person, or whether he / she plans to meet user 110B in person in the future. On the other hand, if user 110A answers that he / she did meet user 110B in person, then survey 165A may continue by asking user 110A whether he / she enjoyed the meeting with user 110B, and / or whether user 110A wishes to have a second in-person meeting with user 110B. If User 110A answers affirmatively, Survey 165A may proceed to ask User 110A if they would like help to establish a second meeting. Alternatively, if User 110A answers that they do not want a second in-person meeting, Survey 165A may then ask why. For example, Survey 165A may ask User 110A to choose from a set of reasons why they do not want a second in-person meeting. Such reasons might include: (A) User 110B's profile information is inaccurate; (B) User 110B behaved inappropriately during the date; (C) User 110B is boring; (D) User 110A is dissatisfied with the activities User 110B chose for the meeting / date; (E) User 110A has no feelings for User 110B; and / or any other suitable response. In some embodiments, Survey 165A may simply ask User 110A to provide a free-form response indicating why they do not want a second in-person meeting with User 110B.

[0069] In step 330, the recommendation tool 105 may use response 170A to determine whether user 110B has violated one or more of the terms of service of the recommendation tool 105. For example, response 170A may instruct user 110B to behave in a highly inappropriate manner during the meeting and / or to lie to user 110B about his / her profession, education, and / or any other material facts before the meeting. If, in step 330, the recommendation tool 105 determines that user 110B may have violated one or more terms of service, then in step 335, the recommendation tool 105 may prevent user 110B from further contacting user 110A and / or any other user 110.

[0070] If, in step 330, recommendation tool 105 determines that user 110B may not have violated one or more terms of service, then in step 340, recommendation tool 105 may use response 170A to determine a score to be assigned to user 110B. For example, -1 point might indicate that user 110A finds user 110B's profile information inaccurate; -2 points might indicate that user 110A finds user 110B boring; -3 points might indicate that user 110A is dissatisfied with the activities user 110B chose for the meeting; and -4 points might indicate that user 110A simply doesn't feel anything for user 110B; -5 points might indicate that user 110B behaved inappropriately during the meeting. This disclosure contemplates that recommendation tool 105 may use any suitable rating system to assign scores to user 110B. Furthermore, this disclosure contemplates that determining a score for a second user 110B could simply involve assigning user 110B to one of a set of categories, where each category includes one or more reasons why the in-person meeting was unsuccessful.

[0071] In step 345, recommendation tool 105 may use the score determined for user 110B in step 340 to send notification 180 to user 110B. For example, in some embodiments, the score indicates that user 110A wants to attend a further in-person meeting with user 110B, and notification 180 may provide user 110B with an indication that the in-person meeting was successful. In some embodiments, notification 180 may additionally include suggestions / recommendations to help users 110A and 110B schedule a second in-person meeting. For example, notification 180 may present recommendations for highly-rated restaurants located nearby to both users 110A and 110B. As another example, notification 180 may present suggestions to users 110A and 110B to help them schedule a second in-person meeting.

[0072] In some embodiments where the score indicates that user 110A does not wish to participate in a further in-person meeting with user 110B, notification 180 may provide tips on how to improve the in-person meeting, how to improve user 110B's profile 190B, location / activity suggestions for further meetings with other users 110, and / or any other information / advice that may help user 110B to have more successful meetings with other users 110 in the future.

[0073] Can be Figure 3 The method 300 shown can be modified, added to, or omitted. Method 300 may include more, fewer, or other steps. For example, the steps may be performed in parallel or in any suitable order. While recommended tool 105 (or components thereof) for performing these steps has been discussed, any suitable component of system 100, such as device 115, may perform one or more steps of the method.

[0074] Figure 4 An example recommendation engine 150 is illustrated. This disclosure contemplates that in some embodiments, recommendation engine 150 may provide information obtained from response 170 to a recommendation algorithm used by recommendation engine 150 to generate recommendations for users who may be suitable for each other. In this way, some embodiments may increase the likelihood that future user recommendations generated by recommendation engine 150 will lead to a successful in-person meeting, in part due to the feedback provided by response 170 regarding the success / failure of a previous in-person meeting.

[0075] In some embodiments, such as Figure 4 As shown, recommendation engine 150 may employ machine learning algorithm 415 to determine recommendation 175. For example, recommendation engine 150 may train the machine learning algorithm to extract a set of features based on profile 190, scores 405 and 410 (determined based on responses 170A and 170B, respectively providing user 110A's evaluation of user 110B and user 110B's evaluation of user 110A) and / or any other suitable information, and use these features to determine the probability that a pair of users 110 can be suitable for each other. In such an embodiment, recommendation engine 150 may incorporate scores 405 and 410 into the algorithm by creating additional machine learning features associated with these scores and assigning appropriate weights to those features. In this way, recommendation engine 150 may determine improved recommendation 175 based in part on feedback from users 110 regarding the success / failure of in-person meetings that users have attended.

[0076] This disclosure envisions that recommendation engine 150 can incorporate information obtained from responses 170A and 170B into its recommendation algorithm in any suitable manner. For example, in some embodiments, recommendation engine 150 may include a collaborative filtering algorithm for determining recommendation 175 for user 110. In such embodiments, recommendation engine 150 may determine recommendation 175 for user 110 in part by comparing user 110's matching history 195. For example, if recommendation engine 150 determines based on matching history 195A and 195B that users 110A and 110B have both previously chosen to match with similar user groups (e.g., users 110A and 110B both chose to match with users 110C to 110E), then if user 110B chooses to match with user 110F, recommendation engine 150 may determine based on the similarity between matching history 195A and 195B that user 110A is also likely to match with user 110F. Therefore, recommendation engine 150 can send user 110F's profile 190F as recommendation 175 to user 110A. In such an embodiment, recommendation engine 150 can incorporate information collected from response 170 into the collaborative filtering algorithm by modifying matching history 195A to 195N based on the success / failure of in-person meetings caused by matches stored in matching history 195A to 195N. For example, if user 110A previously matched with user 110B based on user 110B's profile 190B, but subsequently indicated to recommendation tool 105 (via response 170A) that his / her in-person meeting with user 110B was unsuccessful, recommendation engine 150 can modify matching history 195A to indicate that user 110A did not actually match with user 110B.

[0077] In some embodiments, recommendation engine 150 may employ a collaborative filtering algorithm based on information provided by user 110 through response 170 rather than matching history 195. For example, recommendation engine 150 may store information about successful / unsuccessful in-person meetings in database 185 and use that information to generate recommendation 175. For instance, if user 110A and user 110B both had successful in-person meetings with the first group of users 110 and failed in-person meetings with the second group of users 110, then if user 110B had a successful in-person meeting with user 110C, recommendation engine 150 may present user 110C's profile 190C as recommendation 175 to user 110A. Based on the assumption that, given the similarity between the in-person meeting history of users 110A and 110B, if user 110B successfully meets in person with user 110C, then user 110A may also successfully meet in person with user 110C. Therefore, recommendation engine 150 can present profile 190C as recommendation 175 to user 110A.

[0078] Although the present invention includes multiple embodiments, numerous changes, variations, transformations, alterations and modifications may be suggested to those skilled in the art, and this disclosure is intended to cover such changes, variations, transformations, alterations and modifications that fall within the scope of the appended claims.

Claims

1. A method executed by at least one hardware processor, comprising the following steps: Messages from a first user to a second user are received using an interface operatively coupled to the at least one hardware processor and configured to send and receive data over a network. It is determined, at least in part, based on the message that the first user and the second user met in person, wherein determining that the first user and the second user met in person includes: An algorithm is applied to the message to determine the probability that the first user and the second user met in person, wherein the algorithm is trained on a set of training data, which includes historical messages between multiple pairs of users, wherein each historical message is labeled with whether a meeting in person occurred between the corresponding pair of users. By applying the algorithm, a set of attributes is extracted from the messages between the first user and the second user, the set of attributes including at least one of the following: The frequency of messages exchanged between the first user and the second user The number of messages exchanged between the first user and the second user. The time from the first user to the second user after the first user and the second user are matched. The exchanged messages contain at least one specific keyword, or On what day of the week is a specific message exchanged between the first and second users; and Assign a set of weights to the set of attributes, wherein the set of weights indicates the probability that the first user and the second user have met in person; and The degree to which the probability is determined is greater than a threshold; The interface is used to transmit a request to the first user for a first set of data regarding a personal meeting between the first user and the second user. Use the interface to receive the first set of data from the first user; The score of the second user is determined at least in part based on the first set of data, the score indicating the first user's expectation of a subsequent in-person meeting with the second user; In response to determining the score of the second user: The score-based recommendation algorithm; and The interface is used to send a notification to the first user based on the score; and An improved recommendation algorithm is generated by executing an updated recommendation algorithm to recommend a third user to the first user.

2. The method of claim 1, wherein determining that the first user and the second user met in person includes determining that the message received from the first user includes a telephone number.

3. The method of claim 1, wherein determining that the first user and the second user have met in person comprises: Receive location information indicating the location of the first user at a given time from the first user; Receive location information from the second user indicating the location of the second user at a second time; Determine the location of the first user at the first time within the first tolerance of the location of the second user at the second time. and Determine the first time within the second tolerance of the second time.

4. The method of claim 1, wherein determining that the first user and the second user have met in person comprises at least one of receiving an instruction from the first user that the first user and the second user have met in person and receiving an instruction from the second user that the first user and the second user have met in person.

5. The method of claim 1, wherein determining that the first user and the second user have met in person comprises locating at least one keyword from a set of keywords in the message received from the first user, the set of keywords including keywords indicating that the first user and the second user planned to meet.

6. The method of claim 1, wherein the notification includes at least one of a method for improving a user profile and a method for improving a date.

7. The method of claim 1, further comprising: The first set of data indicates that the second user violated the terms of service; and In response to the determination that the first set of data indicates that the second user has violated the terms of service, the second user is prevented from transmitting a second message destined for the fourth user.

8. The method of claim 1, further comprising: The first set of data indicates that the second user violated the terms of service; and In response to the determination that the first set of data indicated that the second user had violated the terms of service, the second user's service was terminated.

9. The method of claim 1, further comprising: The process of determining the fourth user as the fifth user based on the score of the second user includes implementing an updated recommendation algorithm that is applicable to determining a set of recommendations for a group of users based on a set of features including the score of the second user. and Present the profile of the fourth user to the fifth user.

10. The method of claim 1, further comprising: Receive the second message from the first user; The second message is sent to the third user; It was determined, at least in part, based on the second message that the first user and the third user had a second in-person meeting; A second request for a second set of data is sent to the first user, the second set of data including information about a second in-person meeting between the first user and the third user; Receive the second set of data from the first user; The second score for the third user is determined based on the second set of data; Part of the recommendation of the fourth user was based on the scores mentioned above and the second score; and Present the profile of the fourth user to the first user.

11. An apparatus comprising: An interface configured to send and receive data over a network; and A hardware processor operatively coupled to the interface is configured to: Use the interface to receive messages from the first user to the second user; It is determined, at least in part, based on the message that the first user and the second user met in person, wherein determining that the first user and the second user met in person includes: An algorithm is applied to the message to determine the probability that the first user and the second user met in person; and The degree to which the probability is determined is greater than a threshold; The interface is used to transmit a request to the first user for a first set of data regarding a personal meeting between the first user and the second user. Use the interface to receive the first set of data from the first user; The score of the second user is determined at least in part based on the first set of data, the score indicating the first user's expectation of a subsequent in-person meeting with the second user; In response to determining the score of the second user: The score-based recommendation algorithm; and Using the interface, a notification is sent to the first user based on the score; and An improved recommendation algorithm is generated by executing an updated recommendation algorithm to recommend a third user to the first user.

12. The apparatus of claim 11, wherein determining that the first user and the second user have met in person includes determining that a message received from the first user includes a telephone number.

13. The apparatus of claim 11, wherein determining that the first user and the second user have met in person comprises: Receive location information indicating the location of the first user at a given time from the first user; Receive location information from the second user indicating the location of the second user at a second time; Determine the location of the first user at the first time within the first tolerance of the location of the second user at the second time. and Determine the first time within the second tolerance of the second time.

14. The apparatus of claim 11, wherein determining that the first user and the second user have met in person comprises at least one of receiving an instruction from the first user that the first user and the second user have met in person and receiving an instruction from the second user that the first user and the second user have met in person.

15. The apparatus of claim 11, further comprising a memory configured to store a set of keywords, wherein determining that the first user and the second user have met in person includes locating at least one keyword from the set of keywords in a message received from the first user, the set of keywords including keywords indicating that the first user and the second user planned to meet.

16. The apparatus of claim 11, wherein: The processor is also configured to train the algorithm using a set of training data, which includes historical messages between multiple pairs of users, wherein each historical message is labeled with whether a face-to-face meeting has occurred between the corresponding pair of users, to determine the probability that the first user and the second user have met face-to-face, at least based on the message received from the first user. and It was confirmed that the first and second users met in person, including: By applying the algorithm, at least one attribute is extracted from the messages between the first user and the second user, wherein the at least one attribute includes at least one of the following: The frequency of messages exchanged between the first user and the second user The number of messages exchanged between the first user and the second user. The time from when the first user is sent to the second user after the first user and the second user are matched. The exchanged messages contain at least one specific keyword, or On what day of the week specific messages are exchanged between the first and second users; and Assign a set of weights to the set of attributes, wherein the set of weights indicates the degree of probability that the first user and the second user have met in person.

17. The apparatus according to claim 11, wherein, The notification includes at least one of the methods for improving user profiles and methods for improving dating.

18. The apparatus according to claim 11, wherein, The processor is also configured to: The first set of data indicates that the second user violated the terms of service; and In response to the determination that the first set of data indicates that the second user has violated the terms of service, the second user is prevented from transmitting a second message destined for the fourth user.

19. The apparatus according to claim 11, wherein, The processor is also configured to: The first set of data indicates that the second user violated the terms of service; and In response to the determination that the first set of data indicated that the second user had violated the terms of service, the second user's service was terminated.

20. The apparatus of claim 11, further comprising a database configured to store a set of profiles, wherein the processor is further configured to: The process of determining a fourth user based on the score of the second user to be the fifth user includes implementing an updated recommendation algorithm that is applicable to determining a set of recommendations for a group of users based partly on a set of features including the score of the second user; and Present the profile of the fourth user to the fifth user.

21. The apparatus according to claim 11, wherein, The processor is also configured to: Use the interface to receive a second message from the first user; Use the interface to transmit the second message to the third user; It was determined, at least in part, based on the second message that the first user and the third user had a second in-person meeting; The interface is used to transmit a second request for a second set of data to the first user, the second set of data including information about a second in-person meeting between the first user and the third user. Use the interface to receive the second set of data from the first user; The second score for the third user is determined based on the second set of data; Part of the recommendation of the fourth user was based on the aforementioned score and the second score; and The profile of the fourth user is presented to the first user.

Citation Information

Patent Citations

  • Communication message processing method and communication message processing device

    CN105141506A

  • Appointment task processing method and device, electronic equipment and computer storage medium

    CN109784517A

  • Learning-based recommendation system incorporating collaborative filtering and feedback

    US7885902B1