System and method for providing enhanced recommendation based on rating of offline experience

The system addresses the limitations of online recommendation systems by using offline interaction feedback to enhance user profiles and improve compatibility, leading to more successful face-to-face relationships.

JP2025100533APending Publication Date: 2025-07-03HINGE INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2025034207
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2019-10-09
Filing Date
2025-03-05
Publication Date
2025-07-03

AI Technical Summary

Technical Problem

Current online recommendation systems rely solely on user profile information for matching, which often fails to predict the success of offline relationships due to discrepancies between profile information and real-life attributes, leading to unsuccessful face-to-face meetings.

Method used

A system that monitors conversations and collects feedback from users who have met offline to assess the success of their interactions, providing personalized tips, improving profiles, or reporting violations based on user experiences.

Benefits of technology

Enhances the accuracy of recommendations by incorporating offline experience feedback, improving user profiles, and ensuring compatibility, thereby increasing the likelihood of successful face-to-face relationships.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025100533000001_ABST
    Figure 2025100533000001_ABST
Patent Text Reader

Abstract

To provide an apparatus for recommending users based on ratings of offline experiences.SOLUTION: An apparatus includes a processor that is configured to: receive a first set of text from a first user and transmit the first set of text to a second user; determine, based at least in part on the first set of text, that the first user and the second user had an in-person meeting; transmit a request to the first user for a first set of data, the first set of data including information about the in-person meeting between the first user and the second user; receive the first set of data from the first user; determine, based on the first set of data, a score of the second user; and transmit a notification, based on the score, to the second user.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention generally relates to the field of communications, and more particularly, to systems and methods for recommending users based on the evaluation of offline experiences.

Background Art

[0002] Networking architectures developed in a communication environment have become increasingly complex in recent years. A number of protocols and configurations have been developed to serve various groups of end-users with diverse networking needs. Many of these architectures have gained significant popularity because they can provide advantages such as automation, convenience, management, and an expansion of consumer choice. By using computer platforms together with networking architectures, an increase in communication, collaboration, and / or interaction has become possible. For example, using a particular network protocol may enable an end-user to connect online with other users who meet a particular search requirement. These protocols may be related to job hunting, services for finding individuals, real estate searches, or online dating. In many cases, after an online connection, the end-users may agree to meet each other offline.

Summary of the Invention

[0003] In a typical online recommendation system, a profile containing a set of specific attributes related to the participants of the system can be used to facilitate matching. For example, in the context of online dating, the profile can include attributes such as age, education, interests, etc. A typical online recommendation system can provide algorithmic estimates of compatibility scores between pairs of participants by comparing various attributes from each participant's profile. In addition, the online recommendation system can recommend based on the similarity of the user's matching history. For example, if both User A and User B have previously matched with Users C, D, and E, and User A has subsequently matched with User F, the system may also assume that User B has a high probability of matching with User F due to the similarity between the matching histories of User A and User B, and present User F to User B as a recommendation. Considering that the users of a typical recommendation system choose whether to match with the recommended user based on the information contained in the profile of the recommended user, in any of the above situations, the online recommendation system tends to rely on user profile information when forming recommendations.

[0004] User profile information can help facilitate matching between users within a recommendation system, but this information does not necessarily provide a good indicator of whether the matches formed between users within the system will lead to the success of relationships outside the system. For example, a pair of users may be selected to match with each other on the system based on the information contained in their profiles, but then one or both users may choose not to meet offline with the other user after the users have chatted online with each other. As another example, a pair of users who have matched with each other within the system may meet offline with each other, but then one or both users may choose not to participate in further meetings. In either case, even if the system recommends users to each other and the users choose to match with each other within the system, that match may not lead to the success of an offline relationship between the users. This can be due to several reasons. For example, in the context of online dating, even if users are actually compatible with each other, one or both users may have poor dating skills. As another example, one or both users may not have been honest in the information they provided to the system. For example, one or both users may have tried to deceive other users intentionally with the profile information provided to the system, or may have simply presented themselves in an overly positive manner. In either case, the discrepancy between the user's profile information and the user's real-life attributes may become apparent during a face-to-face meeting and may cause the other user to reject further meeting requests. As a further example, users may simply not be compatible based on personality facets that may not have been captured in the profile information submitted by the users.

[0005] Nevertheless, the fact that a pair of users matched on the system does not want to pursue an offline relationship can be useful information for the recommendation system to know. For example, if the match failed because one of the users had poor dating skills, the system can provide dating tips that can help that user improve their dating skills. As another example, if it is found that the match failed due to inaccurate profile information submitted by one of the users, the system can assist the user in correcting this inaccurate information. As a further example, if the match failed simply because the users were not well-suited, the system can integrate this additional information into the recommendation algorithm to increase the likelihood that future recommendations will lead to both matching success and success in face-to-face relationships. However, despite these potential uses / benefits, current online recommendation systems typically cannot capture information about the offline dating experiences of users matched within the system.

[0006] The present disclosure is intended to address one or more of the above problems with a recommendation tool. This tool monitors conversations and other data between pairs of users matched within the system to identify pairs of users who are likely to have met offline (e.g., gone on a date with each other). The tool then presents such users with a survey that is used to collect information about the meeting / dating. For example, the survey can first ask the user to confirm that they actually met. If the user met, the survey can ask the user whether the meeting was successful or not and the reasons why. If the users did not meet, the survey can ask the user to specify the reasons why they did not.

[0007] Based on the types of responses provided by the user, the system can utilize the information contained in the responses in various ways. For example, in a particular embodiment where a first user indicates that they did not meet a second user because the conversation skills shown by the second user during an online conversation between users were insufficient, the system may send one or more conversation hints to the second user. As another example, in a particular embodiment where a first user actually met a second user, but the dating skills shown by the second user were insufficient or the first user did not wish to proceed to any future meetings with the second user because the second user was different from what the first user had expected based on the information included in the second user's profile, the system may send one or more dating hints and / or ways to improve profile information to the second user. As another example, in a particular embodiment where a first user actually met a second user but felt deceived by the information in the second user's profile and thus did not wish to engage in any future meetings with the second user, the system may provide the first user with an opportunity to report the second user based on this deceit. If the system determines that this deceit is true and intentional, the system may prevent the second user from receiving recommendations for other users. As a further example, in a particular embodiment where a first user actually met a second user but did not wish to proceed to any future meetings with the second user simply because the first user did not feel a good compatibility with the second user, the system may incorporate this information into the recommendation algorithm used by the system to help increase the likelihood that future recommendations will lead to the success of an offline relationship. As an additional example, in a particular embodiment where both users indicate that they actually met each other and both wish to meet again in the future, the system may assist the users in setting up a second meeting. Specific embodiments of the recommendation tool are described below.

[0008] According to one embodiment, the method includes receiving a first set of texts from a first user. The method also includes sending the first set of texts to a second user. The method additionally includes determining, at least in part based on the first set of texts, that the first user and the second user had a face-to-face meeting. The method further includes sending a request for a first set of data to the first user. The first set of data includes information regarding the face-to-face 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 additionally includes determining a score for the second user based on the first set of data. The method further includes sending a notification to the second user based on the score.

[0009] According to yet another embodiment, the apparatus includes an interface and a hardware processor. The interface transmits and receives data via a network. The hardware processor uses the interface to receive a first set of texts from a first user. The processor also uses the interface to send the first set of texts to a second user. The processor additionally determines, at least in part based on the first set of texts, that the first user and the second user had a face-to-face meeting. The processor further uses the interface to send a request for a first set of data to the first user. The first set of data includes information regarding the face-to-face 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 additionally determines a score for the second user based on the first set of data. The processor further uses the interface to send a notification to the second user based on the score.

[0010] Certain embodiments provide one or more technical advantages. For example, one embodiment incorporates user feedback information into a machine learning recommendation algorithm, thereby providing enhanced recommendations to the user and thus reducing the processing and bandwidth resources expended by the system in providing recommendations to the user before the user matches and forms a successful relationship with another user offline. As another example, one embodiment may provide dating and / or communication tips to users who are unable to secure an offline date with online matching. As another example, one embodiment may enable a user to report another user for violating the system's service terms based on inaccurate / false profile information provided to the system by the other user. As a further example, one embodiment may provide location / activity suggestions to help improve future in-person meetings. Certain embodiments may include none, some, or all of the above technical advantages. One or more other technical advantages may be readily apparent to those of ordinary skill in the art from the drawings, descriptions, and claims included herein. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] To more fully understand the present disclosure, reference is made to the following description taken in conjunction with the accompanying drawings.

[0012]

Figure 1

Figure 2

Figure 3

Figure 4

Best Mode for Carrying Out the Invention

[0013] Embodiments of the present disclosure and their advantages can be understood by referring to FIGS. 1-4 of the drawings, where like numerals are used for like and corresponding parts of the various drawings.

[0014] FIG. 1 shows an exemplary system 100. As shown in FIG. 1, system 100 includes a recommendation tool 105, user(s) 110, device(s) 115, network 120A, network 120B, and database 185. Generally, the recommendation tool 105 monitors messages 155 transmitted between pairs of users 110 and determines that pairs of users 110 are likely to have met directly. Next, the recommendation tool 105 requests information about the offline experience from the pairs of users (via request 165) to determine whether the meeting was successful. If the meeting was successful, in certain embodiments, the recommendation tool 105 may help user 110 set up future meetings. If the meeting was not successful, in certain embodiments, the recommendation tool 105 may: (1) provide one or both users with date and / or communication hints 180; (2) assist one or both users in improving their profiles (e.g., by requesting additional / more accurate information from the users); (3) enable a user to report that another user has violated the service terms, and / or (4) send information that the meeting was not successful back to the system's recommendation algorithm to assist in improving future recommendations 175 provided by the recommendation tool 105 (i.e., help increase the likelihood that the recommendations 175 will result in successful dating relationships).

[0015] In certain embodiments, the present disclosure contemplates 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. Further, in some embodiments, the present disclosure contemplates that the recommendation tool 105 may operate based on user profiles 190 stored in the database 185 by another system and / or tool.

[0016] In certain embodiments of the present disclosure where the recommendation tool 105 uses the responses 170 to provide improved recommendations 175, it is contemplated that the recommendation algorithm used by the recommendation engine 180 to generate the recommendations 175 may operate based only on the responses 170. For example, the recommendation engine 180 may determine the recommendations 175 for the user 110A by comparing both the matching history 190A of the user 110A and the offline experience (determined from the response 170A) with the matching history 190 and the offline experience (determined from the response 170) of other users 110. As a specific example, consider a situation where a first user 110A has a matching history 195A similar to that of a third user 110C, and both the first user 110A and the third user 110C have had similar offline dating experiences. For example, both the first user 110A and the third user 110C may have had successful dates with a first set of users 110 and unsuccessful dates with a second set of users 110. Continuing the example, if the third user 110C then shows that they had a successful date with the second user 110B, the recommendation tool 105 may present the second user 110B to the first user 110A as a recommendation 175. Here, the recommendation tool 105 may operate based on the assumption that the similarity between the offline dating experiences of users 110A and 110C suggests a high likelihood that the user 110A will have a successful date with the second user 110B.

[0017] Alternatively, the present disclosure is intended that the response 170 can be used as a factor among a set of factors considered in a larger recommendation algorithm. For example, in certain embodiments, the user 110 can not only submit information about themselves (i.e., the information stored in the profile 190) to the recommendation tool 105, but the user 110 can also submit the preferred characteristics of other users who are sought to be matched with the recommendation tool 105. In either case, such information can include gender, preferred gender for potential matching, height, weight, age, location, ethnicity, place of origin, eating habits, activities, and goals. In addition, the user 110 can provide the recommendation tool 105 with information indicating how important a particular factor is when seeking a match. For example, the user 110 can indicate which characteristics are required in a potential match. As another example, the recommendation tool 105 can ask the user 110 to indicate "how important is it that your match does not smoke?". Also, the recommendation tool 105 can enable the user 110 to indicate that a certain characteristic is not an important search criterion. For example, the user 110A can indicate to the recommendation tool 105 that the weight and / or height of a potential match is not important. In certain embodiments, the recommendation tool 105 can prompt the user 110 to provide information to the tool. For example, the recommendation tool 105 can require the user 110 to answer some questions or provide some explanations before enabling the user to participate in the recommendation system.

[0018] In certain embodiments, the recommendation tool 105 may be configured to determine recommendations 175 by searching the information included in the profile 190, comparing the matching history 195 among users 110, and extracting information regarding the user's offline dating experiences from the responses 170. Techniques for determining relevant recommendations for user 110 may include considering the matching history 195 and the user 110's offline dating experiences to determine how well a user's preferences match the characteristics / attributes of other users and vice versa. For example, if the recommendation tool 105 determines that the preferences of a first user 110A strongly match the characteristics / attributes of a second user 110B, but that a plurality of other users 110 sharing a similar matching history 195 and offline dating experiences as the first user 110A had unsuccessful dates with the second user 110B, the recommendation tool 105 may choose not to present the second user 110B to the first user 110A as a recommendation 175. On the other hand, if the recommendation tool 105 determines that a plurality of other users 110 sharing a similar matching history 195 and offline dating experiences as the first user 110A had successful dates with the second user 110B, the recommendation tool 105 may choose to present the second user 110B to the first user 110A as a recommendation 175. In some embodiments, the recommendation tool 105 may be configured to generate a pool 175 of recommendations for user 110A according to various characteristics / attributes and preferences of user 110A and other users of the system. The recommendation tool 105 may assign scores to the pool of recommendations for user 110A based on the preferences and / or activities of user 110A, as well as information regarding the matching history 195 and the offline experiences of users 110 participating in the system. The tool 105 may also restrict an entity from being included in the pool of recommendations based on the profile status, location information regarding the entity, or location information regarding user 110A.In this way, a particular embodiment of tool 105 can provide recommendation 175 of user 110B to user 110A based on both the offline experiences of users 110A and 110B, as well as the information provided by users 110A and 110B when setting profiles 190A and 190B.

[0019] Device 115 can be used by user 110 to send and receive message 155. For example, user 110A can use device 115A to send message 155 to recommendation tool 105 (for eventual receipt by user 110B), and user 110B can use device 115B to receive message 155 from (from user 110A) recommendation tool 105. The present disclosure contemplates that message 155 can correspond to a portion of an online conversation between user 110A and user 110B. The present disclosure also contemplates that message 155 can include text, video, photos, or any combination of text, video, and / or photos.

[0020] Device 115 can also be used by user 110 to receive requests 165A and 165B. The present disclosure contemplates that requests 165A and 165B include surveys sent by recommendation tool 105 to users 110A and 110B, and that recommendation tool 105 seeks information regarding in-person meetings that it has determined are likely to have taken place between users 110A and 110B. For example, requests 165A and 165B can ask users 110A and 110B whether the users actually met directly, and if so, whether the users intended to meet again. In response to responses 170A and 170B received by recommendation tool 105 from users 110A and 110B, recommendation tool 105 can send additional questions to users 110A and 110B. For example, if user 110A indicates that they do not wish to meet user 110B again, request 165A can ask user 110A to indicate the reason.

[0021] In certain embodiments, device 115 may also send meeting data 160A and 160B to recommendation tool 105 to assist recommendation tool 105 in determining that there is a high likelihood that user 110A and user 110B have met directly. The present disclosure contemplates that meeting data 160A and 160B may include any information indicating that there is a high likelihood that user 110A and user 110B have met together in a physical location. For example, in certain embodiments, meeting data 160A and 160B may be GPS information, indicating that user 110A and user 110B were in approximately the same location at approximately the same time. As another example, in certain embodiments, meeting data 160A and 160B may include information submitted by user 110A and / or user 110B indicating that user 110A and user 110B have met with each other in a physical location.

[0022] In certain embodiments, device 115 may receive a notification 180 sent by recommendation tool 105. In some embodiments, notification 180 may include tips regarding ways to improve communication skills, dating skills / techniques, and / or user profile 190. In some embodiments, notification 180 may include ideas regarding future dates and / or conversation topics. In certain embodiments, notification 180 may be sent by recommendation tool 105 to device 115B of user 110B in response to information included in response 170A submitted by user 110A indicating that an offline experience between user 110A and user 110B has been successful.

[0023] In certain embodiments, device 115 may also receive recommendation 175. The present disclosure contemplates that recommendation 175 may include profiles and / or profile information of other users 110 that are potentially compatible with user 110A, as determined by recommendation tool 105. In certain embodiments, recommendation 175 may be based entirely on responses 170 received from user 110. In some embodiments, recommendation 175 may be based in part on responses 170, profiles 190, and / or matching history 195.

[0024] Device 115 includes any suitable device for communicating with components of system 100 via network 120A. For example, device 115 may be, or be associated with, a telephone, mobile phone, computer, laptop, tablet, server, automated assistant, and / or virtual reality or augmented reality headset or sensor, or other device. The present disclosure contemplates that device 115 is 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, electronic notebook, personal digital assistant, tablet, or any other device capable of receiving, processing, storing, and / or communicating information with other components of system 100. Device 115 may also include a user interface such as a display, microphone, keypad, or other suitable terminal device usable by user 110. In some embodiments, an application executed by device 115 may perform the functions described herein. In certain embodiments, device 115 may communicate with recommendation tool 105 through network 120A via a web interface.

[0025] Networks 120A and 120B facilitate communication between various components of system 100. The present disclosure contemplates any suitable network operable to facilitate communication between components of system 100. Networks 120A and 120B can include any interconnected system capable of transmitting audio, video, signals, data, messages, or any combination of the foregoing. Networks 120A and 120B can include all or a portion of local, regional, or global communication or computer networks, such as other suitable communication links including 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), the Internet, a wired or wireless network, a corporate intranet, or combinations thereof, operable to facilitate communication between components. The present disclosure contemplates that, in certain embodiments, networks 120A and 120B correspond to the same network. Further, the present disclosure contemplates that, in some embodiments, networks 120A and 120B can correspond to different networks. For example, in certain embodiments, network 120A can be a global communication or computer network such as the Internet, and network 120B can be a private data network in use.

[0026] As shown in FIG. 1, recommendation tool 105 includes processor 125, memory 130, and interface 135. The present disclosure contemplates that processor 125, memory 130, and interface 135 are configured to perform any of the functions of recommendation tool 105 described herein. Generally, recommendation tool 105 implements meeting detector 140 and meeting evaluator 145. In certain embodiments, recommendation tool 105 additionally implements recommendation engine 150.

[0027] This disclosure is intended for a meeting detector 140 to be used by a recommendation tool 105 to determine that there is a high likelihood that a face-to-face meeting has taken place between a first user 110A and a second user 110B. This disclosure is intended for the meeting detector 140 to be able to determine that there is a high likelihood that a face-to-face meeting has been appropriately conducted between the first user 110A and the second user 110B. For example, in certain embodiments, the meeting detector 140 may monitor messages 155 exchanged between users 110A and 110B to determine that there is a high likelihood that users 110A and 110B have met directly. This disclosure is intended for messages 155 to be exchanged between users 110A and 110B via the recommendation tool 105 in response to users 110A and 110B selecting to match each other after recommendations 175 have been presented to each other by the recommendation tool 105. Accordingly, this disclosure is intended for a message 155 sent by user 110A and directed to user 110B to be first received by an interface 135 and then transmitted to the device 115B of user 110B. In certain embodiments, the interface 135 may provide access to the message 155 to the meeting detector 140 before transmitting the message 155 to user 110B. In some embodiments, the interface 135 may store a copy of the message 155 for subsequent access by the meeting detector 140.

[0028] This disclosure is intended for a meeting detector 140 to be able to use message 155 to determine that there is a high likelihood that user 110A and user 110B have met directly with each other in an appropriate way. For example, in certain embodiments, the meeting detector 140 may determine that there is a high likelihood that user 110A and user 110B have met directly with each other, based in part on identifying phone numbers within message 155. For example, the meeting detector 140 may examine message 155 and determine that message 155 contains a string of numbers having the format XXX-XXX-XXX, (XXX)XX-XXX, XXX-XXX, or any other similar format that may include contact information. As another example, the recommendation tool 105 may examine message 155 and determine that message 155 contains words or phrases related to contact information exchange, such as "call", "my number is", "my phone number", or any other appropriate phrase that may be related to contact information exchange. In certain embodiments, in response to determining that there is a high likelihood that user 110A and user 110B will exchange contact information, the meeting detector 140 may determine that there is a high likelihood that user 110A and user 110B are planning to meet with each other. The meeting detector 140 may further determine that there is a possibility that user 110A and user 110B have met with each other by waiting for a set number of days during which a meeting may occur after a suspicious contact information exchange. For example, in certain embodiments, the meeting detector 140 may determine that there is a high likelihood that user 110A and user 110B have met offline with each other by identifying an expected phone number exchange between user 110A and user 110B on the first day and then waiting for five days to pass.

[0029] As another example, in certain embodiments, the meeting detector 140 may determine that users 110A and 110B are likely to meet directly with each other by identifying one or more keywords or sets of keywords that tend to indicate an in-person meeting between the users. For example, the set of keywords may include phrases such as "I had a great time", "second date", "let's meet", "our date", "let's meet again", or other suitable phrases indicating that an in-person meeting may have taken place. The present disclosure contemplates that, in certain embodiments, the set of keywords may be stored in the memory 130.

[0030] As another example, in certain embodiments, the meeting detector 140 may determine that there is a high likelihood that user 110A and user 110B met each other by applying a machine learning algorithm to messages 155 exchanged between user 110A and user 110B. The present disclosure contemplates that the machine learning algorithm may be trained to determine a probability that a first user and a second user are likely to have met based on a conversation between the first user and the second user. For example, the machine learning algorithm may first be trained based on a set of training data that includes previous conversations between multiple pairs of users where it is known whether the users met directly or not. The machine learning algorithm may be trained to extract a set of attributes from the conversation and assign weights to such attributes, where the weights indicate the relative degree to which an attribute evidences the fact that a face-to-face meeting occurred between two users. For example, the set of attributes may include the frequency and number of messages 155 exchanged between users 110A and 110B, the timing of the first message 155 sent from user 110A to user 110B after users 110A and 110B were first matched on the system, specific keywords included within message 155, the day of the week on which a particular message was exchanged between users 110A and 110B, and / or any other suitable features. After applying the machine learning algorithm to messages 155 exchanged between users 110A and 110B, the meeting detector 140 may determine that there is a high likelihood that user 110A and user 110B met directly by determining that the likelihood (determined by the machine learning algorithm) that user 110A and user 110B met directly is greater than a predefined threshold.

[0031] As an additional example, after users 110A and 110B exchange message 155, meeting detector 140 may determine that there is a high likelihood that users 110A and 110B met directly by receiving meeting data 160A and 160B from users 110A and 110B in the form of location data. For example, in certain embodiments, meeting detector 140 may receive GPS data 160A and 160B from devices 115A and 115B. Next, meeting detector 140 may determine 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, and that the first time and the second time are also within a second tolerance range of each other, thereby determining that there is a high likelihood that users 110A and 110B met directly with each other.

[0032] As a further example, the meeting detector 140 may determine that the users 110A and 110B have met directly with each other by receiving meeting data 160A and / or 160B in the form of explicit instructions from the user 110A and / or the user 110B. For example, in certain embodiments, the user 110A and / or the user 110B may send messages 160A and / or 160B to the recommendation tool 105 stating that a face-to-face meeting has taken place between the user 110A and the user 110B. As an example, in certain embodiments, the recommendation tool 105 may provide the user 110 with a web interface and / or an application interface through which the 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 and / or application interface may include a place where the user 110 can indicate to the recommendation tool 105 that the user 110 has had a face-to-face meeting with another user. For example, in certain embodiments, the web and / or application interface may include a recommended location where the user 110 can view the recommendation 175. Next, the user 110A may move to the recommended location and perform an action related to the recommendation of the user 110B to indicate that the user 110A has previously had a face-to-face meeting with the previously recommended user 110B. For example, the user 110A may be able to view a gesture on the recommended location and on the screen of the user's mobile device 115A over the recommendation of the user 110B on the user's mobile device 115A to indicate that the user 110A has had a face-to-face meeting with the user 110B.

[0033] The meeting detector 140 can be a software module stored in the memory 130 and executed by the processor 125. An exemplary algorithm for the meeting detector 140 may include some of the following steps or similar steps: Set the meeting flag to 0; Receive the message 155 exchanged between user 110A and user 110B; If the message 155 contains a numeric string of the format XXX-XXX-XXX, (XXX)XXX-XXX, XXXX: {Wait for a predetermined number of days; Set the meeting flag to 1}; Otherwise, if the message 155 contains one or more keywords from a set of keywords: Set the meeting flag to 1; Otherwise, if the machine learning algorithm applied to the message 155 returns a probability greater than a predefined threshold: Set the meeting flag to 1; Otherwise, if user 110A sends meeting data 160A to the recommendation tool 105, indicating that user 110A has met directly with user 110B: Set the meeting flag to 1; Otherwise: {Receive GPS data 160A and 160B; Determine that user 110A was at the first location at the first time; Determine that user 110B was at the second location at the second time; If the first location and the second location are within the first tolerance range and the first time and the second time are within the second tolerance range: Set the meeting flag to 1; If the meeting flag is set to 1, determine that there is a high probability that user 110A and user 110B have met.

[0034] Once the meeting detector 140 determines that user 110A and user 110B have met directly with each other, the recommendation tool 105 may implement a meeting evaluator 145 to obtain information regarding the offline meeting from users 110A and 110B. This disclosure contemplates that the meeting evaluator 145 can obtain information regarding the offline meeting between users 110A and 110B by first presenting surveys 165A and 165B to these users and then analyzing responses 170A and 170B submitted by users 110A and 110B in response to questions presented by surveys 165A and 165B. This disclosure contemplates that surveys 165A and 165B may request responses 170A and 170B from users 110A and 110B in any suitable format. For example, surveys 165A and 165B may request that users 110A and 110B submit responses to questions in the form of multiple-choice selections, drop-down menu selections, yes / no responses, free-form responses, or any other suitable response format.

[0035] This disclosure contemplates that surveys 165A and 165B may present the same first question to users 110A and 110B, but subsequent questions may depend on the responses 170A and 170B that users 110A and 110B submitted to previous questions. For example, survey 165A may begin by asking user 110A whether they have actually had a face-to-face meeting with user 110B. If user 110A answers "no", survey 165A may continue by asking user 110A why they have not yet had a face-to-face meeting with user 110B and / or whether they plan to have a face-to-face meeting with user 110B in the future. On the other hand, if user 110A answers that they have actually had a face-to-face meeting with user 110B, survey 165A can continue by asking user 110A whether they enjoyed the meeting with user 110B and / or whether user 110A hopes to have a second meeting with user 110B. If user 110A answers affirmatively, survey 165A may continue by asking whether user 110A hopes to receive assistance in scheduling a second meeting. On the other hand, if user 110A answers that they do not hope to have a second face-to-face meeting, survey 165A may inquire as to the reason. For example, survey 165A may ask user 110A to select a reason from a set of reasons why they do not hope to have a second face-to-face meeting. Such reasons may include: (A) the profile information of user 110B was inaccurate; (B) user 110B behaved inappropriately on the date; (C) user 110B was boring; (D) user 110A was not satisfied with the selection of activities for the meeting / dating with user 110B; (E) user 110A did not feel a connection with user 110B, and / or may include other appropriate responses. In certain embodiments, survey 165A may simply ask user 110A to provide a free-form response indicating why they do not hope to have a second face-to-face meeting with user 110B.

[0036] In certain embodiments, the meeting evaluator 145 may determine the score of user 110B using response 170A. For example, in certain embodiments, if user 110A indicates through response 170A that user 110A desires 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 certain embodiments, if user 110A indicates through response 170A that user 110A does not desire a further meeting and / or contact with user 110B, the meeting evaluator 145 may assign a negative score to user 110B. In certain embodiments, different scores may be assigned to different categories of reasons why user 110A does not desire to have a further meeting with user 110B. For example, a score of -1 may indicate that user 110A believes the profile information of user 110B is inaccurate; a score of -2 may indicate that user 110A has found user 110B to be boring; a score of -3 may indicate that user 110A was not satisfied with the selection of meeting activities by user 110B; a score of -4 may indicate that user 110A simply did not feel a connection with user 110B; a score of -5 may indicate that user 110B behaved inappropriately during the meeting; a score of -6 may indicate that user 110B lied to user 110A about their occupation, education, and / or other important facts prior to the meeting.

[0037] In certain embodiments where the recommended tool 105 provides the user 110 with a web interface and / or an application interface through which the user 110 can communicate with the recommended tool 105, the meeting evaluator 145 may automatically send a survey 165A to the user 110A. First, the first user 110A accesses the web and / or application interface after the meeting detector 140 determines that there is a high likelihood that the users 110A and 110B met. For example, the meeting evaluator 145 may present the survey 165A to the user 110A by generating an automatic pop-up on the screen of the user 110A's device 115A after the user 110A accesses the web and / or application interface. In some embodiments, the meeting evaluator 145 may send one or more surveys 165A to the user 110A on a predetermined day of the week or at predetermined time intervals. For example, the meeting evaluator 145 may send the survey 165A to the user 110A every 10 days (provided that the meeting detector 140 determines that there is a high likelihood that the user 110A met with another user 110B during these 10 days). In some embodiments, the meeting evaluator 145 may send the user 110A a notification indicating that the survey 165A is available within the web and / or application interface for the user 110A to access. The user 110A may then access the survey 165A by logging into the web / application interface and navigating to the survey 165A.

[0038] Based on responses 170A and 170B provided by users 110A and 110B, meeting evaluator 145 may determine whether users 110A and 110B had an in-person meeting and, if so, whether the in-person meeting was successful. The present disclosure contemplates that the meeting evaluator may use this information for a variety of different purposes. For example, in certain embodiments, meeting evaluator 145 may aggregate this information and use it to provide statistics to user 110. As an example, meeting evaluator 145 may send notification 180 to user 110 stating that, according to survey 165, a certain percentage of online conversations facilitated by recommendation tool 105 lead to in-person conversations. As another example, meeting evaluator 145 may send notification 180 to user 110 stating that, according to survey 165, choosing a unique location for a first meeting leads to more successful meetings than choosing a chain restaurant.

[0039] In certain embodiments, the meeting evaluator 145 may use responses 170A and 170B to provide advice to user 110, who may have difficulty obtaining consent from other users to a first in-person meeting. For example, the meeting evaluator 145 may determine that user 110B frequently exchanges their phone number with other users, but less than 10% of such exchanges result in an in-person meeting. The meeting evaluator 145 may use response 170A from user 110A, who selected not to participate in an in-person meeting with user 110B, to determine why user 110B has difficulty setting up such a meeting. Based on this information, the meeting evaluator 145 may provide user 110B with tips for overcoming these difficulties. As an example, the meeting evaluator 145 may determine that response 170A frequently indicates that user 110A perceives user 110B as feeling insecure from the exchange of messages 155 between user 110A and user 110B. As a result, the meeting evaluator 145 may present user 110B with tip 180 on ways to appear more confident in conversation.

[0040] In certain embodiments, the meeting evaluator 145 may use responses 170A and 170B to provide hints to user 110B, who may feel that it is difficult to get user 110A to agree to a second in-person meeting while easily setting up the first in-person meeting. For example, responses 170A and 170B may indicate that users 110A and 110B had an in-person meeting and that user 110B desires to have a second in-person meeting, but user 110A does not desire to have a second in-person meeting. For example, user 110A may indicate through response 170A that user 110B appears to be 10 - 20 years older in person than shown by their profile picture. Accordingly, the meeting evaluator 145 may send hint 180 to user 110B recommending that user 110B update their profile picture. As another example, user 110A may indicate through response 170A that they decided to meet user 110B in person based on the fact that user 110B stated in their profile that they liked what user 110A reads; however, during the in-person meeting, user 110B was unable to name the last book they read. Accordingly, the meeting evaluator 145 may send hint 180 to user 110B recommending that user 110B update their activity / interest section on their profile by removing activities / interests that they are not regularly involved in. As a further example, user 110A may indicate through response 170A that they do not desire to meet user 110B again because user 110B took user 110A to a fast-food restaurant in a dangerous area of town during the first in-person meeting. Accordingly, the meeting evaluator 145 may send hint 180 to user 110B recommending a more appropriate location for the first in-person meeting.

[0041] This disclosure is intended that the meeting evaluator 145 can send a hint 180 to the user 110 in any suitable way. For example, in certain embodiments, the meeting evaluator 145 can send the hint 180 to the user 110 via email, text message, push notification, application message, and / or any other suitable way.

[0042] In certain embodiments, the meeting evaluator 145 can use the responses 170A and 170B to determine that the user 110B is likely to have violated one of the service conditions of the tool. For example, the response 170A may indicate that the user 110B behaved in a highly inappropriate way during a face-to-face meeting with the user 110A. As another example, the response 170A may indicate that the user 110B intentionally provided false information to the recommendation tool 105 for inclusion in their profile 110B. For example, the response 170A may indicate that the user 110B lied about their occupation, education, or other information about their profile, and that the user 110A discovered this falsehood during their face-to-face meeting with the user 110B. In such cases, the meeting evaluator 145 can send a notification 180 to the user 110B indicating that the user 110B is no longer permitted to communicate with other users 110 via the recommendation tool 105.

[0043] In certain embodiments, the meeting evaluator 145 may use responses 170A and 170B to provide feedback to users 110A and 110B regarding an in-person meeting. For example, if both users 110A and 110B indicate through responses 170A and 170B that they enjoyed the in-person meeting with each other 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 an offer / suggestion to assist users 110A and 110B in arranging the second in-person meeting. For example, the notification 180 may present a recommendation for a highly rated restaurant located near both user 110A and user 110B. As another example, the notification 180 may present an offer to assist users 110A and 110B in scheduling the second in-person meeting.

[0044] The meeting evaluator 145 can be a software module stored in the memory 130 and executed by the processor 125. An exemplary algorithm for the meeting evaluator 145 may include some or all of the following steps: Receive from the meeting detector 140 a notification that there is a possibility that user 110A and user 110B had a face-to-face meeting; Determine that user 110A accessed the web / application interface provided by the recommendation tool 105; Send a user 110A survey 165A, the first question of which asks whether user 110A and user 110B actually had a face-to-face meeting; If user 110A indicates having had a face-to-face meeting with user 110B: Present the first set of questions of survey 165A to user 110A and request information regarding the face-to-face meeting; Based on the response 165A, determine whether the face-to-face meeting was successful; If the face-to-face meeting was successful, send a notification 180 to user 110A and offer to assist in setting up a second face-to-face meeting; If the face-to-face meeting was not successful: Determine why the face-to-face meeting was not successful; If the face-to-face meeting was not successful because the profile information of 110B was inaccurate, send a hint 180 to user 110B recommending that user 110B update their profile information; If the face-to-face meeting was not successful because user 110A was not satisfied with the location / activity selected by user 110B for the face-to-face meeting, send a hint 180 to user 110B recommending alternative locations / activities for future meetings; If the face-to-face meeting was not successful because user 110B violated one or more of the service conditions of the tool, send a notification 180 to user 110B indicating that user 110B is no longer permitted to communicate with other users 110 via the recommendation tool 105};If it is shown that user 110A did not have a face-to-face meeting with user 110B, present the second set of questions of survey 165A to user 110A to request information on why user 110A and user 110B did not have a face-to-face meeting; determine one or more reasons why user 110A and user 110B did not have a face-to-face meeting; if user 110A and user 110B did not have a face-to-face meeting because there was not yet time to schedule a meeting, send a notification 180 to assist in setting up a direct meeting between the users; if user 110A and 110B did not have a face-to-face meeting because user 110A did not enjoy the online conversation with user 110B, send a hint 180 to user 110B to improve the online conversation.;

[0045] In certain embodiments, the recommendation tool 105 may additionally include a recommendation engine 150. In the present disclosure, in certain embodiments, the recommendation engine 150 is intended to supply the information obtained from the responses 170 to a recommendation algorithm used by the recommendation engine 150 to generate recommendations for users who are likely to be compatible with each other. In this way, certain embodiments may increase the likelihood of a successful in-person meeting because future user recommendations generated by the recommendation engine 150 are part of the feedback provided by the responses 170 regarding the success / failure of previous in-person meetings. For example, in certain embodiments, the recommendation engine 150 may determine that both user 110A and user 110B are likely to be compatible with users 110C, 110D, 110E, and 110F based on the information stored in user profiles 190A-190F. However, based on in-person meetings with users 110C-110F, the recommendation engine 150 may learn that user 110A was successful in in-person meetings with users 110C and 110D but failed in in-person meetings with users 110E and 110F, and that user 110B failed in in-person meetings with users 110C and 110D but was successful in in-person meetings with users 110E and 110F. This difference in the success of in-person meetings may be due to the presence of additional personality traits of users 110A-110F that the recommendation engine 150 may not have been able to capture from the information stored in profiles 190A-190F. Accordingly, the recommendation engine 150 may incorporate the information provided by users 110A and 110B regarding the success of their in-person meetings in order to improve future recommendations 175 presented to user 110. For example, the recommendation engine 150 may choose not to present user 110G as a recommendation 175 to user 110A in order to suggest that, although user 110A and user 110G may seem compatible based on the information stored in profiles 190A and 190G, user 110B was successful in an in-person meeting with user 110G while user 110A was not.

[0046] This disclosure is intended that the recommendation engine 150 can incorporate the information obtained from the answer 170 into the recommendation algorithm used by the recommendation engine 150 in any suitable way. For example, in certain embodiments, the recommendation engine 150 may include a collaborative-filtering algorithm that determines recommendations 175 for the user 110. In such embodiments, the recommendation engine 150 may determine the recommendations 175 for the user 110, in part, by comparing the matching histories 195 of the user 110. For example, if the recommendation engine 150 determines, based on the matching histories 195A and 195B, that both user 110A and 110B were selected to match with a group of similar users in the past (e.g., both user 110A and 110B were selected to match with users 110C - 110E), and then user 110B selects to match with user 110F, the recommendation engine 150 may determine, based on the similarity between the matching histories 195A and 195B, that user 110A is likely to also match with user 110F. Accordingly, the recommendation engine 150 may send the profile 190F of user 110F to user 110A as a recommendation 175. In such embodiments, the recommendation engine 150 may incorporate the information collected from the answer 170 into the collaborative-filtering algorithm by modifying the matching histories 195A - 195N based on the success / failure of the in-person meetings resulting from the matches stored in the matching histories 195A - 195N. For example, if user 110A previously matched with user 110B based on the profile 190B of user 110B, but then indicates (through answer 170A) to the recommendation tool 105 that the in-person meeting with user 110B failed, the recommendation engine 150 may modify the matching history 195A to indicate that user 110A did not actually match with user 110B.

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

[0048] In some embodiments, the recommendation engine 150 may use a machine learning algorithm to determine the recommendations 175. For example, the recommendation engine 150 may train a machine learning algorithm to extract a set of features based on the profiles 190, the matching history 195, and / or any other appropriate information, and use these features to determine the probability that a pair of users 110A and 110B may be compatible with each other. In such embodiments, the recommendation engine 150 may create additional machine-learning features related to the success / failure of in-person meetings between users 110 and incorporate the information obtained from the response 170 into this algorithm by assigning appropriate weights to these features. In this way, the recommendation engine 150 may determine improved recommendations 175 based in part on feedback from the user 110 regarding the success / failure of in-person meetings the user has participated in.

[0049] In some embodiments, the recommendation engine 150 may use the information obtained from the response 170 to provide the user 110 with additional information about the user that the recommendation engine 150 presents to the user 110 as a recommendation 175. For example, the recommendation engine 150 may present the recommendation of the user 110B to the user 110A along with information stating that the profile 190B of the user 110B is similar to the profile 190C of the user 110C which indicates that the user 110A has been successful in face-to-face meetings.

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

[0051] Processor 125 can be any electronic circuit including, but not limited to, a microprocessor, an application specific integrated circuit (ASIC), an application specific instruction set processor (ASIP), and / or a state machine, which are communicatively coupled to memory 130 and interface 135 and control the operation of recommendation tool 105. Processor 125 can be 8-bit, 16-bit, 32-bit, 64-bit, or any other suitable architecture. Processor 125 can include an arithmetic logic unit (ALU) for performing arithmetic and logical operations, processor registers for supplying 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 can include other hardware and software that operate to control and process 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(s) 115, interface 135, and memory 130. Processor 125 can be a programmable logic device, a microcontroller, a microprocessor, any suitable processing device, or any suitable combination of the above. Processor 125 is not limited to a single processing device and can include multiple processing devices.

[0052] Memory 130 can store data, operating software, or other information for the processor 125, either permanently or temporarily. Memory 130 can include any one or combination of volatile or non-volatile local or remote devices suitable for storing information. For example, Memory 130 can include random access memory (RAM), read-only memory (ROM), magnetic storage devices, optical storage devices, or any other suitable information storage device, or a combination of these devices. Software represents any suitable set of instructions, logic, or code embodied in a computer-readable storage medium. For example, software can be embodied in Memory 130, a disk, a CD, or a flash drive. In certain embodiments, software can include applications executable by processor 125 to perform one or more of the functions described herein.

[0053] Interface 135 represents any suitable device operable to receive information from network 120A, transmit information over network 120A, perform appropriate processing of information, communicate with other devices, or perform any combination of the foregoing. For example, Interface 135 can transmit requests 165, recommendations 175, and / or notifications 180 to device 115. As another example, Interface 135 can receive meeting data 160 and / or responses 170 from device 115. As a further example, Interface 135 can receive message 155 sent by user 110A for ultimate receipt by user 110B and then facilitate the exchange of message 155 between users 110A and 110B by transmitting message 155 to user 110B. Interface 135 represents any real or virtual port or connection, including any suitable hardware and / or software including protocol conversion and data processing capabilities, for communicating over a LAN, WAN, or other communication system that enables recommendation tool 105 to exchange information with device 115 and / or other components of system 100 over network 120A.

[0054] As described above, database 185 may store a set of user profiles 190. User profiles 190 define or represent the characteristics of user 110. Profile 190 may be available to the general public, those who are members of the online dating system, and / or those in a particular category of members of the online dating system. Profile 190 may include information requested from user 110 when user 110 sets up their online dating account, or otherwise information entered by such a user into their profile. Profile 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.

[0055] In certain 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 who were presented to user 110A as recommendations 175 and whom user 110A selected to match with. In some embodiments, as described above, recommendation tool 105 may modify matching history 195 based on the feedback provided by responses 170. For example, if user 110A selected to match with user 110B, but later indicates that they participated in a face-to-face meeting with user 110B but it was not successful (i.e., user 110A may indicate through response 170A that they do not wish to participate in further face-to-face meetings with user 110B), recommendation tool 105 may update matching history 195A to indicate that user 110A did not actually match with user 110B.

[0056] In certain embodiments, when the user 110 is likely to participate in an in-person meeting with other users and requests information regarding these in-person meetings via request 165, the recommendation tool 105 can help improve the user 110's online matching experience in various different ways. For example, certain embodiments can provide dating and / or communication tips to users who cannot secure an offline date through online matching, which can help these users secure future dates. As another example, certain embodiments can provide tips regarding ways to improve profile information and / or proposed conversation topics, meeting locations, and / or meeting activities, which can help enable the user to secure additional in-person meetings after the first in-person meeting. As another example, certain embodiments can enable a user to report another user who violates the system's service conditions based on inaccurate / false profile information provided to the system by another user, or based on the significantly inappropriate behavior of another user, thereby helping to protect the health / safety of the user 110. As a further example, certain embodiments can provide enhanced recommendations 175, at least in part, based on feedback provided by the offline dating experiences of the system's users.

[0057] Modifications, additions, or omissions may be made to the systems 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 databases 185. Components may be integrated or separated. Further, the operations described above may be performed by more, fewer, or other components. Additionally, the operations may be performed using any suitable logic, including software, hardware, and / or other logic. As used in this document, "each" refers to each member of a set or each member of a subset of a set.

[0058] Figure 2 is a flowchart showing a way by which the recommendation tool 105 can determine that there is a high likelihood that the pair of users will meet directly with each other. At step 205, the recommendation tool 105 receives a message 155 from the first user 110A and sends the message 155 to the second user 110B. The present disclosure contemplates that the message 155 can include text, video, pictures, or any combination of text, video, and / or pictures. At step 210, the recommendation tool 105 determines whether the message 155 includes a phone number or other contact information. The present disclosure contemplates that the recommendation tool 105 can determine that the message 155 includes a phone number in any suitable way. For example, the recommendation tool 105 can examine the message 155 to determine whether the message 155 includes a string of numbers in the format XXX-XXX-XXXX, (XXX)XXX-XXX, XXX-XXX, or any other similar format. As another example, the recommendation tool 105 can examine the message 155 to determine whether the message 155 includes words or phrases related to contact information exchange, such as "call", "my number is", "my phone number", or any other suitable phrase that can be related to contact information exchange. If the recommendation tool 105 determines that the message 155 includes a phone number or other contact information, the recommendation tool 105 waits for a predetermined number of days and, at step 250, can determine that there is a high likelihood that the users 110A and 110B will meet. The present disclosure contemplates that the recommendation tool 105 can wait for any number of days before determining that there is a high likelihood that the users 110 and 110B will meet. For example, in certain embodiments, the recommendation tool 105 can wait for 3 days. In some embodiments, the recommendation tool 105 can wait for 5 days.

[0059] In step 210, if recommendation tool 105 determines that message 155 does not contain a phone number or contact information, in step 215, recommendation tool 105 determines whether message 155 includes one or more keywords from a set of keywords. If recommendation tool 105 determines that message 155 includes one or more keywords from the set of keywords, in step 250, recommendation tool 105 determines that there is a high likelihood that user 110A and user 110B have met. The present disclosure is intended that the set of keywords includes keywords that tend to indicate a face-to-face meeting between users. For example, the set of keywords may include phrases such as "I had a great time", "second date", "let's meet", "our date", "let's meet again", or any other phrase indicating that the two may have met. The present disclosure is intended that, in certain embodiments, the set of keywords may be stored in memory 130.

[0060] In step 215, if the recommendation tool 105 determines that the message 155 does not contain one or more keywords of the set of keywords, in step 210, the recommendation tool 105 provides the message 155 to a machine learning algorithm. The present disclosure contemplates that the machine learning algorithm can be trained such that the users 110A and 110B determine a high probability of having met based on a conversation between the two users. For example, the machine learning algorithm can first be trained based on a set of training data including previous conversations between pairs of multiple users where it is known whether the users met directly or did not meet directly. The machine learning algorithm can be trained to extract a set of attributes from the conversation and assign weights to such attributes, where the weights indicate the relative degree to which an attribute proves the fact that a meeting occurred between two users. For example, the set of attributes can include the frequency and number of messages 155 exchanged between users 110A and 110B, the timing of the initial message 155 sent from user 110A to user 110B after users 110A and 110B were first matched, specific keywords included within the message 155, the day of the week on which a specific message 155 is 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 recommendation tool 105 can obtain, in step 225, a high probability that users 110A and 110B met directly. In step 230, the recommendation tool 105 can determine whether the probability is greater than a predefined threshold. In step 230, if the recommendation tool 105 determines that the probability is greater than a predefined threshold, in step 250, the recommendation tool 105 determines that there is a high probability that users 110A and 110B met.

[0061] In step 230, when the recommendation tool 105 determines that the probability is below a predefined threshold, in step 235, the recommendation tool 105 receives the meeting data 160A and 160B from the users 110A and 110B in the form of location data. In step 240, the recommendation tool 105 uses the meeting data 160A and 160B to determine whether the users 110A and 110B were at approximately the same location at approximately the same time. For example, the recommendation tool 105 may receive the location of the user 110A at a first time and the location of the user 110B at a second time. Then, the recommendation tool 105 may determine whether the location of the user 110A at the first time is within a first tolerance range of the location of the user 110B at the second time, and also whether the first time and the second time are within a second tolerance range of each other. In step 240, if the recommendation tool determines that the users 110A and 110B were at approximately the same location at approximately the same time, in step 250, the recommendation tool 105 determines that there is a high likelihood that the users 110A and 110B met.

[0062] In step 240, when the recommendation tool 105 determines that the users 110A and 110B were not at approximately the same location at approximately the same time, in step 245, the recommendation tool 105 determines whether the users 110A and / or 110B sent the meeting data 160A and / or 160B to the recommendation tool 105, explicitly indicating that the users 110A and 110B met. As an example, in certain embodiments, the recommendation tool 105 may provide a web interface and / or an application interface to the user 110, through which the user 110 can communicate with the recommendation tool 105 (i.e., send and receive messages 155, and receive recommendations 175, notifications 180, and requests 165). The web and / or application interface may include a place where the user 110 can indicate to the recommendation tool 105 that the user 110 has met with another user in person. For example, in certain embodiments, the web and / or application interface may include a recommended place where the user 110 can view the recommendation 175. Next, the user 110A can move to the recommended place and perform an action related to the recommendation of the user 110B to indicate that the user 110A has had an in-person meeting with the user 110B who was previously recommended to him / her. For example, the user 110A can view a gesture on the recommended place and the screen of his / her mobile device 115A on the recommendation of the user 110B on his / her mobile device 115A to indicate that the user 110A has had an in-person meeting with the user 110B. In step 245, when the recommendation tool 105 receives the explicit indications 160A and / or 160B from the users 110A and / or 110B that the users 110A and 110B met, in step 250, the recommendation tool 105 determines that it is highly likely that the users 110A and 110B met.

[0063] Modifications, additions, or omissions may be made to method 200 shown in FIG. 2. Method 200 may include more, fewer, or other steps. For example, the steps may be performed in parallel or in any suitable order. Although recommended tool 105 (or its components) is discussed as performing the steps, any suitable component of system 100, such as device(s) 115, may perform one or more of the steps of this method.

[0064] FIG. 3 is a flowchart showing how the recommendation tool 105 requests information regarding likely meetings between pairs of users and uses this information to assist in providing date hints to one or both users and / or facilitating future dates between users. At step 305, the recommendation tool 105 receives a message 155 from the first user 110A. At step 310, the recommendation tool 105 transmits the message 155 to the second user 110B. At step 315, the recommendation tool 105 uses the message 155 to determine that the first user 110A and the second user 110B are likely to have had an offline meeting together as described in detail above in the description of FIG. 2. In response to determining that the first user 110A and the second user 110B are likely to have met together, at step 320, the recommendation tool 105 transmits requests 165A and 165B for information regarding the meeting to the users 110A and 110B. For example, in certain embodiments, the requests 165A and 165B may take the form of surveys provided to the users 110A and 110B. At step 325, the recommendation tool 105 receives responses 170A and 170B submitted by the users 110A and 110B in response to the questions presented by the surveys 165A and 165B. The present disclosure contemplates that the surveys 165A and 165B may request responses 170A and 170B from the users 110A and 110B in any suitable format. For example, the surveys 165A and 165B may request that the users 110A and 110B submit responses to the questions in the form of multiple-choice selections, drop-down menu selections, yes / no responses, free-form responses, or any other suitable response format.

[0065] This disclosure is intended such that surveys 165A and 165B can present the same initial question to users 110A and 110B, but subsequent questions can depend on the responses 170A and 170B that users 110A and 110B submitted to previous questions. For example, survey 165A can start by asking user 110A whether they have actually had a face-to-face meeting with user 110B. If user 110A answers "no", survey 165A can continue by asking user 110A why they have not yet had a face-to-face meeting with user 110B or whether they are planning a future face-to-face meeting with user 110B. On the other hand, if user 110A answers that they have actually had a face-to-face meeting with user 110B, survey 165A can then continue by asking user 110A whether they enjoyed the meeting with user 110B and / or whether user 110A hopes for a second face-to-face meeting with user 110B. If user 110A answers affirmatively, survey 165A can then continue by asking whether user 110A hopes to receive assistance in setting up the second meeting. On the other hand, if user 110A answers that they do not hope for a second face-to-face meeting, survey 165A can then inquire about the reason. For example, survey 165A can ask user 110A to select a reason from a set of reasons why they do not hope for a second face-to-face meeting. Such reasons can include: (A) the profile information of user 110B was inaccurate; (B) user 110B behaved inappropriately on the date; (C) user 110B was boring; (D) user 110A was not satisfied with the choice of activity for the meeting / dating with user 110B; (E) user 110A did not feel a connection with user 110B, and / or other suitable responses. In certain embodiments, survey 165A can simply ask user 110A to provide a free-form response indicating why they do not hope for a second face-to-face meeting with user 110B.

[0066] In step 330, the recommendation tool 105 may use the response 170A to determine whether user 110B has violated one or more of the service conditions of the recommendation tool 105. For example, the response 170A may indicate that user 110B behaved in a significantly inappropriate manner during the meeting and / or that user 110A lied about their occupation, education, and / or other important facts before the meeting. In step 330, if the recommendation tool 105 determines that user 110B is likely to have violated one or more service conditions, in step 335, the recommendation tool 105 may prevent user 110B from contacting user 110A further and / or from contacting other users 110.

[0067] In step 330, if the recommendation tool 105 determines that user 110B is likely not to have violated one or more service conditions, in step 340, the recommendation tool 105 may use the response 170A to determine a score to assign to user 110B. For example, score - 1 may indicate that user 110A believes that the profile information of user 110B is inaccurate; score - 2 may indicate that user 110A has found that user 110B is boring; score - 3 may indicate that user 110A was not satisfied with the selection of the meeting activities of user 110B; score - 4 may indicate that user 110A simply did not feel a connection with user 110B; score - 5 may indicate that user 110B behaved inappropriately during the meeting. The present disclosure contemplates that the recommendation tool 105 may use any suitable scoring system to assign a score to user 110B. Additionally, the present disclosure contemplates that determining the score of the second user 110B may simply involve assigning user 110B to a certain category among a set of categories, where each category in the set of categories includes one or more reasons why the in - person meeting was not successful.

[0068] In step 345, the recommendation tool 105 may send a notification 180 to the user 110B using the score determined for the user 110B in step 340. For example, in a particular embodiment where the score indicates that the user 110A desires to participate in a further in-person meeting with the user 110B, the notification 180 may indicate to the user 110B a notification of the success of the in-person meeting. In some embodiments, the notification 180 may additionally include an offer / proposal to assist the users 110A and 110B in arranging a second in-person meeting. For example, the notification 180 may present a recommendation of a highly rated restaurant located near both the user 110A and the user 110B. As another example, the notification 180 may present an offer to the users 110A and 110B to assist them in scheduling a second in-person meeting.

[0069] In a particular embodiment where the score indicates that the user 110A does not desire to participate in a further in-person meeting with the user 110B, the notification 180 may provide tips regarding ways to improve the in-person meeting, ways to improve the profile 190B of the user 110B, location / activity proposals for further meetings with other users 110, and / or any other information / proposals that can help the user 110B meet more successfully with other users 110 in the future.

[0070] Modifications, additions, or omissions may be made to the method 300 shown in FIG. 3. The method 300 may include more, fewer, or other steps. For example, the steps may be performed in parallel or in any suitable order. Although the recommendation tool 105 (or its components) has been discussed as performing the steps, any suitable component of the system 100, such as the device(s) 115, may perform one or more of the steps of this method.

[0071] FIG. 4 shows an exemplary recommendation engine 150. In certain embodiments, the present disclosure contemplates that the recommendation engine 150 may supply information obtained from responses 170 to a recommendation algorithm used by the recommendation engine 150 to generate recommendations for users who are likely to be compatible. In this way, certain embodiments may increase the likelihood that future user recommendations generated by the recommendation engine 150 will lead to successful in-person meetings, in part due to the feedback provided by responses 170 regarding the success / failure of previous in-person meetings.

[0072] In certain embodiments, as shown in FIG. 4, the recommendation engine 150 may use a machine learning algorithm 415 to determine recommendations 175. For example, the recommendation engine 150 may train a machine learning algorithm to extract a set of features based on profile 190, scores 405 and 410 (determined based on responses 170A and 170B and providing an evaluation of user 110B by user 110A and an evaluation of user 110B by user 110B, respectively), and / or any other suitable information, and use these features to determine the probability that pairs of users 110 may be compatible with each other. In such embodiments, the recommendation engine 150 may incorporate scores 405 and 410 into this algorithm by creating additional machine learning functions related to these scores and assigning appropriate weights to these functions. In this way, the recommendation engine 150 may determine improved recommendations 175 based in part on feedback from user 110 regarding the success / failure of in-person meetings in which the user participated.

[0073] This disclosure is intended that the recommendation engine 150 can incorporate the information obtained from the responses 170A and 170B into its recommendation algorithm in any suitable way. For example, in certain embodiments, the recommendation engine 150 may include a collaborative filtering algorithm that is used to determine the recommendation 175 for the user 110. In such embodiments, the recommendation engine 150 may determine the recommendation 175 for the user 110 by comparing, at least in part, the matching history 195 of the user 110. For example, if the recommendation engine 150 determines that both users 110A and 110B have been selected to match with a similar group of users in the past based on the matching histories 195A and 195B (e.g., both users 110A and 110B have been selected to match with users 110C - 110E), and then if user 110B is selected to match with user 110F, the recommendation engine 150 may determine that user 110A is likely to also match with user 110F based on the similarity between the matching histories 195A and 195B. Accordingly, the recommendation engine 150 may send the profile 190F of the user 110F to the user 110A as the recommendation 175. In such embodiments, the recommendation engine 150 may incorporate the information collected from the response 170 into the collaborative filtering algorithm by modifying the matching histories 195A - 195N based on the success / failure of the in - person meetings resulting from the matches stored in the matching histories 195A - 195N. For example, if user 110A previously matched with user 110B based on the profile 190B of user 110B, but then indicates (through response 170A) to the recommendation tool 105 that the in - person meeting with user 110B failed, the recommendation engine 150 may modify the matching history 195A to indicate that user 110A did not actually match with user 110B.

[0074] In some embodiments, the recommendation engine 150 may use a collaborative filtering algorithm based on information provided by the user 110 via the response 170 rather than the matching history 195. For example, the recommendation engine 150 may store information regarding the success / failure of in-person meetings in the database 185 and use this information to generate recommendations 175. For example, if both user 110A and user 110B have succeeded in in-person meetings with a first group of users 110 and failed in in-person meetings with a second group of users 110, and then if user 110B has succeeded in an in-person meeting with user 110C, the recommendation engine 150 may present the profile 190C of user 110C as a recommendation 175 to user 110A. The recommendation engine 150 may present the profile 190C as a recommendation 175 to user 110A based on the assumption that user 110A is also likely to succeed in an in-person meeting with user 110C based on the similarity between the in-person meeting histories of user 110A and user 110B, when user 110B has succeeded in an in-person meeting with user 110C.

[0075] The present disclosure includes some embodiments, but numerous changes, variations, modifications, conversions, and alterations may be suggested to those skilled in the art, and the present disclosure is intended to embrace such changes, variations, modifications, conversions, and alterations as falling within the scope of the appended claims.

Claims

1. A method executed by at least one hardware processor, comprising: determining that the first user and the second user had a face-to-face meeting based on at least a first set of text exchanged between the first user and the second user; sending a request for feedback regarding the second user to the first user, wherein the feedback includes information regarding the face-to-face meeting between the first user and the second user; receiving the feedback from the first user; determining a score for the second user based on at least the feedback; in response to determining the score for the second user: updating a recommendation algorithm based on at least the score; and generating an improved recommendation for a user profile for the first user using the updated recommendation algorithm. A method.

2. The step of determining that the first user and the second user had a face-to-face meeting includes determining that the first set of text includes a phone number. The method according to claim 1.

3. The step of determining that the first user and the second user had a face-to-face meeting includes: receiving location information indicating the location of the first user at a first time from the first user; receiving location information indicating the location of the second user at a second time from the second user; determining that the location of the first user at the first time is within a first tolerance range of the location of the second user at the second time; and determining that the first time is within a second tolerance range of the second time. The method according to claim 1.

4. The step of determining that the first user and the second user had a face-to-face meeting includes receiving at least one of an indication from the first user that the first user and the second user had a face-to-face meeting and an indication that the first user and the second user had a face-to-face meeting. The method according to claim 1.

5. The step of determining that the first user and the second user have had the face-to-face meeting includes searching for at least one keyword in the set of keywords in the set of the first text, and the set of keywords includes keywords indicating that the first user and the second user are planning to meet each other. The method according to claim 1.

6. Further including the step of sending a notification to the second user, the notification including at least one of a method for improving the user profile and a method for improving the date. The method according to claim 1.

7. The step of determining that the feedback indicates that the second user has violated the service conditions; In response to the step of determining that the feedback indicates that the second user has violated the service conditions, the step of preventing the second user from sending a set of second text directed to a third user; Further including The method according to claim 1.

8. The step of sending the user profile to the first user; and The step of enabling communication between the first user and a third user associated with the user profile; further including. The method according to claim 1.

9. The step of determining a recommendation of a third user for a fourth user based on the score of the second user, the step of determining the recommendation of the third user for the fourth user includes implementing the recommendation algorithm configured to determine a set of recommendations among a set of users based at least in part on a set of features including the score of the second user, the step; The step of presenting a second user profile associated with the third user to the fourth user; further including. The method according to claim 1.

10. The step of receiving a set of second text from the first user; The step of sending the set of second text to a third user; The step of determining that the first user and the third user have had a second face-to-face meeting based at least in part on the set of second text; Sending a second request to the first user for a second set of data, the second set of data including information regarding the second in-person meeting between the first user and the third user; Receiving the second set of data from the first user; Determining a second score for the third user based on the second set of data; Determining a recommendation for a fourth user to the first user, based at least in part on the score and the second score; Presenting a second user profile associated with the fourth user to the first user; further comprising The method according to claim 1.

11. An interface configured to send and receive data via a network; A hardware processor, comprising: Determining that the first user and the second user had an in-person meeting based on at least a first set of text exchanged between the first user and the second user; Sending a feedback request regarding the second user to the first user, the feedback including information regarding the in-person meeting between the first user and the second user; Receiving the feedback from the first user; Determining a score for the second user based at least in part on the feedback; In response to determining the score for the second user: Updating a recommendation algorithm based at least in part on the score; Generating an improved recommendation for a user profile for the first user using the updated recommendation algorithm; A hardware processor configured to; having An apparatus.

12. Determining that the first user and the second user had the in-person meeting includes determining that the first set of text includes a phone number. The apparatus according to claim 11.

13. Determining that the first user and the second user had the in-person meeting includes: Receiving location information from the first user indicating the location of the first user at a first time; Receiving location information from the second user indicating the location of the second user at a second time; determining that the position of the first user at the first time is within a first tolerance range of the position of the second user at the second time; determining that the first time is within a second tolerance range of the second time; including The apparatus according to claim 11.

14. Determining that the first user and the second user had the face-to-face meeting includes receiving at least one of an indication from the first user that the first user and the second user had the face-to-face meeting and an indication from the second user that the first user and the second user had the face-to-face meeting. The apparatus according to claim 11.

15. Determining that the first user and the second user had the face-to-face meeting includes finding at least one keyword from a set of keywords within the set of first texts, the set of keywords including keywords indicating that the first user and the second user are planning to meet. The apparatus according to claim 11.

16. The hardware processor is further configured to send a notification to the second user, the notification including at least one of a method for improving the user profile and a method for improving the date. The apparatus according to claim 11.

17. The hardware processor further: determines that the feedback indicates that the second user has violated the service conditions; prevents the second user from sending a set of second texts directed to a third user in response to determining that the feedback indicates that the second user has violated the service conditions; is configured as The apparatus according to claim 11.

18. The hardware processor further: sends the user profile to the first user; enables communication between the first user and a third user associated with the user profile; is configured as The apparatus according to claim 11.

19. The hardware processor further: Based on the score of the second user, determine a recommendation of a third user for a fourth user, and determining the recommendation of the third user for the fourth user includes implementing the recommendation algorithm configured to determine a set of recommendations among a set of users, based in part on a set of features including the score of the second user; Present a second user profile associated with the third user to the fourth user; configured as; The apparatus according to claim 11.

20. The hardware processor further: Receive a second set of texts from the first user; Transmit the second set of texts to a third user; Determine that the first user and the third user had a second in-person meeting, based at least in part on the second set of texts; Send a second request to the first user for a second set of data, the second set of data including information regarding the second in-person meeting between the first user and the third user; Receive the second set of data from the first user using the interface; Determine a second score of the third user based on the second set of data; Determine a recommendation of a fourth user for the first user, based in part on the score and the second score; Present a second profile associated with the fourth user to the first user; configured as; The apparatus according to claim 11.

Citation Information

Patent Citations

  • Systems and methods of patternizing logged user-initiated events for scheduling functions

    US10417613B1

  • Embedded programs and interfaces for chat conversations

    US20180367483A1

  • System and method for providing enhanced questions for matching in a network environment

    US8010546B2