Dynamic adjustment of profile feed in a social network

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for presenting user profiles on a user interface. In some implementations, a server receives a request to view profiles for each of one or more other users from a client device associated with a requesting user. The server applies matching criteria to a profile of the requesting user and profiles for respective users to identify profiles for a sequence of profiles. The server enables sequential display of information representative of the identified profiles on a user interface of the client device, including enabling display of first information representative of a first profile of the identified profiles, determining a user review attribute for the first profile, dynamically adjusting the sequence of profiles based on the user review attribute, and enabling display of second information representative of a second profile of the identified profiles in the adjusted sequence of profiles.

BACKGROUND

The present disclosure relates to computer-implemented methods, systems, and apparatuses for social network applications.

Social networking applications enable individuals to match to other individuals with a goal of developing a personal, romantic, or professional relationship. After two individuals connect in a match, the matched individuals may communicate with one another electronically using the social networking application.

SUMMARY

This specification describes techniques for presenting a sequence of user profiles on a user interface on a social network application.

In an aspect, a method for presenting user profiles on a user interface includes receiving a request to view profiles for each of one or more other users from a client device associated with a requesting user. The requesting user and the other users are users of a social network.

Embodiments can include one or any combination of two or more of the following features.

The method applies matching criteria to a profile of the requesting user and profiles for respective users of the social network to identify profiles for a sequence of profiles. In some implementations, the sequence of profiles for the identified profiles is in a predefined order. The method determines the predefined order for the sequence of profiles. For example, the method orders the profiles based on a similarity between each profile and the profile of the requesting user.

Responsive to receipt of the request to access profiles, the method enables sequential display of information representative of the identified profiles on a user interface of the client device. The method enables display, on the user interface, of first information representative of a first profile of the identified profiles. The first profile is associated with a first user of the social network.

In response to a user interaction with the user interface during display of the first information, the method enables display, on the user interface, of second information representative of a second profile of the identified profiles. The second profile is associated with a second user of the social network. The second profile is the preceding profile in the sequence of profiles before the first profile. The second information representative of the second profile was displayed, in the sequential display on the user interface, immediately before the display of the first information representative of the first profile.

In some implementations, the method, in response to a user interaction with the user interface during display of the second information representative of the second profile, enables display, on the user interface, of the first information representative of the first profile of the identified profiles. The first information representative of the first profile has not previously been displayed on the user interface during a predetermined period of time.

In some implementations, the method dynamically determines the sequence of profiles based on the user interaction with the user interface during display of information representative of each of one or more profiles. The method determines a user review attribute for each displayed profile and based on the user interaction with the user interface. The user interaction with the user interface includes a user interaction with a user selectable element in the user interface. The user interaction with the user selectable element in the user interface includes, for example, one or more of tapping, swiping, dragging, or selecting the user selectable element. The user review attribute for a given profile is based on one or more of time spent interacting with the profile or movement of the pointer when the profile is displayed. Alternatively or in addition, the user review attribute for a given profile is based on eye movement of the user, a facial expression of the user, or a physiological reaction of the user when the profile is displayed. The method determines, based on the user review attribute, (i) profiles to be included in the sequence of profiles or (ii) an order of the profiles included in the sequence of profiles.

The method identifies one or more displayed profiles for which the user review attribute exceeds a predefined threshold. The method identifies one or more similar profiles to the one or more displayed profiles for which the user review attribute exceeds the predefined threshold. The method adjusts the sequence of profiles (i) to include the identified one or more similar profiles or (ii) to advance the one or more similar profiles in the sequence of profiles.

In some implementations, the method receives, from the requesting user, a vote to match with the second user associated with the second profile. Responsive to receiving the vote, the method adds the profile of the requesting user to a second sequence of profiles to be displayed to the second user.

In some implementations, the method receives, through the user interface, a vote not to match with the second user associated with the second profile. The method removes the second profile associated with the second user from the sequence of profiles.

In some implementations, the method receives a request to view multiple profiles concurrently. The method enables display of information representative of a first set of multiple profiles. Each profile of the first set of multiple profiles is associated with a corresponding user of the first set of multiple users of the social network. The method enables display of information representative of a second set of multiple profiles. The second set of multiple profiles is associated with a second set of multiple users of the social network. At least some of the second information representative of the second set of multiple profiles was displayed, in the sequential display on the user interface, immediately before the display of the first information representative of the first set of multiple profiles. The method receives a vote for a particular one of the multiple profiles that are displayed on the user interface.

In some implementations, the method receives, from a client device associated with a requesting user, a request to view profiles for each of one or more other users. The requesting user and the other users are users of a social network. The method applies matching criteria to a profile of the requesting user and profiles for respective users of the social network to identify profiles for a sequence of profiles. Responsive to receipt of the request to access profiles, the method enables sequential display, on a user interface of the client device, of information representative of the identified profiles, including the following process. The method enables display, on the user interface, of first information representative of a first profile of the identified profiles. The first profile is associated with a first user of the social network. The method determines a user review attribute for the first profile. The user review attribute indicates a characteristic of a user interaction with the user interface during display of the first information. The method dynamically adjusts the sequence of profiles based on the user review attribute. The method enables display, on the user interface, of second information representative of a second profile of the identified profiles in the adjusted sequence of profiles.

Embodiments of this aspect can include one or any combination of two or more of the foregoing features.

In an aspect, a computing system includes one or more processors and one or more storage devices storing instructions that are operable, when executed by the one or more processors, to cause the one or more processors to perform operations including receiving, from a client device associated with a requesting user, a request to view profiles for each of one or more other users. The requesting user and the other users are users of a social network. The operations includes applying matching criteria to a profile of the requesting user and profiles for respective users of the social network to identify profiles for a sequence of profiles. The operations includes, responsive to receipt of the request to access profiles, enabling sequential display, on a user interface of the client device, of information representative of the identified profiles, including: enabling display, on the user interface, of first information representative of a first profile of the identified profiles and in response to a user interaction with the user interface during display of the first information, enabling display, on the user interface, of second information representative of a second profile of the identified profiles. The first profile is associated with a first user of the social network. The second profile is associated with a second user of the social network. The second information representative of the second profile was displayed, in the sequential display on the user interface, immediately before the display of the first information representative of the first profile.

In some implementations, the operations include determining a user review attribute for the first profile. The user review attribute is indicative of a characteristic of a user interaction with the user interface during display of the first information. The operations includes dynamically adjusting the sequence of profiles based on the user review attribute.

Embodiments of the subject matter described in this specification can be implemented so as to realize one or more of the following advantages. First, the approaches described here can improve the quality of matches. For example, the social network application allows a user to navigate through a sequence of profiles of other users both in backward and forward directions, enabling users to vet various potential matches before choosing to vote on any given profile. The sequential presentation of profiles can also enable the user to find a match quickly, e.g., by displaying the most similar profile first in the sequence, thereby conserving bandwidth that would have been expended in a prolonged profile viewing session. Third, the sequence of profiles can be dynamically adjusted so that relevant matches are quickly and effectively presented to the user.

DETAILED DESCRIPTION

The present disclosure relates to approaches to presenting a sequence of user profiles on a user interface of a social network application, e.g., a social network application in the context of dating, professional recruiting or networking, interest-based discussion, or other suitable context. The social network application identifies potential matches between a particular user of the social network application (referred to as the requesting user) and one or more other users of the social network application. Profiles for those potential matches are presented to the requesting user in sequence interface. The profile in the sequence can be presented one profile at a time or multiple profiles concurrently. The requesting user can navigate forwards to see the next profile in the sequence. The requesting user can also move backwards to see the previous profile in the sequence, e.g., the profile that was displayed immediately prior to the currently displayed profile. The user can vote to establish a match with one or more other users of the social network application whose profiles are displayed on the user interface.

In some implementations, the social network application identifies potential matches between a particular user of the social network application and a set of users (also referred to as a group). The group is associated with one or more categories, e.g., a particular topic or interest. For example, a set of users may belong to a group that includes students who went to the same high school. As another example, a set of users may belong to a group of dog owners. As yet another example, a set of users may belong to a group who likes to watch horror movies. The social network application identifies a potential match for a user for each existing and new groups. For example, the social network application may identify a set of users who might be interested in forming a group. The requesting user can navigate forwards and backwards to see the group suggested by the social network. The requesting user and a group, e.g., a representative user or each users in the group (e.g., following a majority's decision), can vote to establish a match.

FIG.1illustrates an example of a social network system100. The system100includes a plurality of client devices102athrough102nin communication with a server104via a network106, which may be a wired or wireless network or any combination thereof. Each client device102athrough102n(referred to collectively as client devices102) includes one or more processors (e.g., central processing unit)110in communication with input/output devices112via a bus114. The input/output devices112can include a touch display, keyboard, mouse, and the like. A network interface circuit116is also connected to the bus114to provide wired and/or wireless connectivity to the network106. A memory or other storage medium120is also connected to the bus114. The memory120stores instructions executed by the processor110. In particular, the memory120stores instructions for a social network application122, such as a dating application, which communicates with the server104to coordinate interactions between users that have been identified as potential matches (e.g., potentials friends, dating partners, business partners, etc.). In some implementations, each client device102is a mobile device (e.g., smartphone, laptop, tablet, wearable device, etc.) executing the social network application122. Different client devices102are operated by different users that subscribe to the same social network application122.

The server104includes one or more processors130, bus132, input/output devices134and a network interface circuit136to provide connectivity to the network106. A memory140is connected to the bus132. The memory140stores a matching engine142with instructions executed by the processors130to implement social networking operations, such as matching of users, display of profiles, and enablement of interaction between users. In some implementations, the system100includes a database146in communication with the server104that stores information for use by the social network application122and/or the matching engine142. For instance, the database146can store user profile information, match information, message information, or other information. In some implementations, the system100processes information in the database146(e.g., by generating fast-access identifiers or references) such that the access to the information is computationally efficient. For example, the system100can apply the filter of a particular user to the database146to obtain records associated with the particular user. In some implementations, the system100optimizes a structure of the database146based on a data processing bandwidth to facilitate load balancing.

In operation, a user of a client device102can create a personal profile to participate in the social network application122. For example, referring toFIG.2A, a user can create a personal profile by interacting with a user interface to provide profile information200, such as their name202, age204, biographical text206, photographs208, and a range of other information210(e.g., city, links to social network profiles on other networks, etc.) that allow the user to characterize himself or herself. The user can specify their interests250for use in identifying potential matches. For example, as shown inFIG.2B, a user can specify their interests250by interacting with a user interface to provide various criteria252athrough252nthat the user is looking for in a potential match, such as age, distance, hobbies, commitment disposition, or combinations of them, among others. In some implementations, the system100(e.g., the matching engine142) can identify one or more criteria instead of or in addition to those specified by the user based on, for example, analysis of the user's interactions with the system100.

The system100(e.g., the matching engine142) applies matching criteria to a profile of a given user (referred to as the “requesting user”) and profiles for respective other users of the social network application122. For example, the matching engine142can derive matching criteria from the interests250, and can use the matching criteria to identify potential matches. In general, the matching engine142can use filters, applied rules, machine learning, or combinations of them, among others, to identify potential matches for the requesting user. For example, the matching engine142can generate one or more filters or rules based on the interests of the requesting user, and can apply the filters or rules to profile information for other users to identify potential matches for the requesting user. The matching engine142can include a machine learning model (e.g., a neural network model) trained to identify features from the interests of the requesting user, and the machine learning model can process profile information for other users to identify potential matches for the requesting user.

In some examples, the matching engine142can rank the profiles of the identified potential matches, e.g., based on similarities between the profile of the requesting user and the profiles of the identified potential matches. In an example, the matching engine142ranks the profiles based on how the interests of an identified potential match aligns with the requesting user's interests; a profile of an identified potential match whose interests align most closely with those of the requesting user is ranked highest among the profiles of the identified potential matches. Other factors, such as location, age, or other factors, can also be used in ranking the profiles.

In some implementations, the matching engine142identifies a potential match between the requesting user and a set of users, e.g., who belong to an existing group or who share a similar interest but have not yet formed a group. The matching engine142can rank the groups based on how the interests of the requesting user aligns with one or more categories the respective group is associated with.

The profiles of the identified potential matches, e.g., between a first user and a second user, between a first user and a first group, and between a first user and a set of other users who have not yet formed a group, are presented to the requesting user in sequence on a user interface, e.g., according to their ranking. The user can scroll forwards and backwards through the sequence of profiles to view both subsequent profiles in the sequence (e.g., profiles that have not yet been presented to the requesting user within some time period, e.g., within the current browsing session) and previous profiles in the sequence (e.g., profiles that have previously been presented to the requesting user). This approach to bidirectional navigation through the sequence of profiles provides the requesting user with fine-grained control over the profiles that he or she views and enables the requesting user to take his or her time before deciding whether to vote to match with a given profile.

FIG.3illustrates an example sequence350of profiles352a-nfor presentation to a requesting user, each corresponding to a different user of the application122. For example, a first profile352ain the sequence350is associated with Jane Doe. In some examples, the profiles in the sequence350are in a predetermined order, e.g., ranked based on similarity, with the profile of the requesting user with the profile352abeing the highest ranked and each successive profile352b-352nbeing the next lower in rank. In some examples, the sequence of profiles is randomly generated, e.g., from among the profiles that meet a threshold level of similarity with the profile of the requesting user. The randomly generated sequence of profiles can be determined prior to display of the profiles to the requesting or can be generated in real time as the user views the profiles. In some implementations, some of the profiles in the example sequence350includes group profiles. A group profile is a profile of a set of users who belong to a same group, e.g., based on shared interests. In some implementations, a group profile includes the profile of a representative member from the group. In some implementations, a group profile includes a set of representative profiles of some of the members of the group.

In the example sequence350ofFIG.3, the first profile352ais initially presented to the requesting user. Because the profile352ais the first profile to be presented, the user can only navigate forwards through the sequence350, to the next profile352b. From the profile352b, the requesting user can move forwards or backwards through the sequence of profiles350. For instance, the user can navigate forwards again to the next profile352cor backwards through the sequence to the previously presented profile352a. When there are multiple prior profiles, the user can navigate backwards through each one in turn. For instance, from the profile352c, the user can navigate backwards through the sequence350to the previous profile352band then backwards again to the previous profile352a. Navigation forwards or backwards through the sequence of profiles can help the requesting user to effectively identify profiles with which he or she may wish to match, e.g., by providing the ability to return to a previously viewed profile, e.g., after comparing that profile to subsequently presented profiles.

FIG.4Aillustrates an example interface400, also referred to as a matching feed, displayed on a client device102aon which profiles of identified potential matches are presented sequentially to a requesting user operating the client device102a. The matching feed400includes a user selectable element for the requesting user to request to view profiles for each of one or more other users of the social network application. In the example ofFIG.4A, the user selectable element is implemented as a view settings interface401. The view settings interface401presents multiple settings401a-401bfor the requesting user to indicate whether he or she would like to view one profile at a time (setting401a) or multiple profiles concurrently (setting401b). In some implementations, the system100(e.g., the matching engine142) sets one of the available settings as a default setting, e.g., setting401afor display of one profile at a time, and thus the requesting user can simply select to view profiles without specifying a setting. In some implementations, the view settings interface401presents an option whether the requesting user would like to be matched with a group.

Referring toFIG.4B, when the user selects the option to view one profile at a time, the matching feed400displays a first profile403associated with a first user, (here, Jane Doe) of the sequence of profiles. In some implementations, Jane Doe's profile403is the first profile in the sequence350, e.g., the highest ranked profile based on similarity to the requesting user's profile. In some implementations, e.g., when the profiles are not ranked, Jane Doe's profile403is a randomly selected profile from among the profiles of identified potential matches with the requesting user. The displayed profile403includes information such as a name, age, biographical text, photographs, or a range of other fields (e.g., city, links to social media profiles on other networks, etc.).

The matching feed400includes a selectable element402that allows the requesting user to vote to match with the first user (e.g., Jane Doe) associated with the displayed profile403. In some implementations, the first user is a representative user from an existing group. Matching with the first user, in this instance, indicates matching with the particular group the first user belongs to.FIG.4Cillustrates a vote interface420that is displayed in the matching feed400in response to the requesting user's interaction with the selectable element402, e.g., tapping, swiping, dragging, or selecting the element402. The vote interface420provides an option to vote ‘yes’422a, an option to vote ‘no’422b, and an option to ‘skip/defer’422c. A ‘yes’ vote indicates that the requesting user would like to match with Jane Doe. A ‘no’ vote indicates that the requesting user is not interested in matching with Jane Doe. In the example ofFIG.4C, the vote options422a-422care presented as radio buttons. In some implementations, the requesting user can vote to match with the first user associated with the displayed profile403by swiping (e.g., clicking and dragging the matching feed400or the displayed profile403using fingers) off the screen in a certain direction (e.g., right to vote ‘yes’; left to vote ‘no’; up to ‘skip/defer’). Other input methods can also be used to indicate a vote.

In some implementations, when the requesting user votes ‘yes’ on a displayed profile403, the system adds the requesting user's profile to the sequence of profiles to be presented to the user (e.g., Jane Doe) associated with the displayed profile403. In some implementations, the user (e.g., Jane Doe) who is associated with the displayed profile403is notified of the requesting user's ‘yes’ vote given the opportunity to view the requesting user's profile of the requesting user and vote for the requesting user.

When the requesting user votes ‘no’ on a displayed profile403, the system removes the displayed profile403from the set of identified potential matches such that that profile is not displayed to the requesting user again. In some implementations, the requesting user's profile is also removed from the set of identified potential matches to the other user (e.g., Jane Doe's set of identified potential matches). The removal of the profile(s) from the respective set of identified potential matches can be permanent or for a given time period, e.g., the current browsing session, 24 hours, a week, or another time period.

Referring again toFIG.3, the user can view additional profiles from the sequence of profiles350. The matching feed400includes a forward selectable element406that allows the requesting user to view the next profile in the sequence of profiles of identified potential matches. The next profile in the sequence can be a profile that has not previously been presented to the requesting user in a given time period, e.g., the current browsing session, the past 24 hours, the past week, or another time period. The matching feed400also includes a backward selectable element404that allows the requesting user to view the immediately preceding profile in the sequence350, e.g., the profile that was displayed immediately before the currently displayed profile403. In some implementations, when the currently displayed profile403is the first profile to have been presented to the requesting user in a given time period, the matching feed400does not display the backward selectable element404or (as shown inFIG.4C), displays an inactive version of the backward selectable element404.

Referring also toFIG.4D, when the requesting user selects the forward selectable element406, the matching feed400displays Sarah Doe's profile405. Sarah Doe's profile405is immediately after Jane Doe's profile403in the sequence of profiles350to be presented to the requesting user. For instance, when the profiles in the sequence350are ranked, Sarah Doe's profile405is ranked second after Jane Doe's profile403. When the profiles in the sequence350, Sarah Doe's profile405is a randomly selected profile from among the profiles of identified potential matches with the requesting user. The user can vote on Sarah Doe's profile405, e.g., as described above.

From Sarah Doe's profile405, the requesting user can view the next profile in the sequence350by selecting the forward selectable element406. Alternatively, the requesting user can select the backward selectable element404to view the profile immediately before Sarah Doe's profile405in the sequence350. In some implementations, selection of the backward selectable element404from the display of a given profile causes display of the profile that was displayed immediately prior to display of the given profile. For instance, when the requesting user selects the backward selectable element404from the display of Sarah Doe's profile405, the matching feed400displays Jane Doe's profile403again.

In some implementations, the profile that is displayed responsive to selection of the backward selectable element404depends on the requesting user's votes on the previously displayed profiles. As discussed above, the profile of a user on which the requesting user has voted ‘no’ is removed from the sequence of profiles350. When a profile is removed from the sequence of profiles350, that removed profile is no longer available for display as part of the sequence. For instance, following the example ofFIGS.4B and4D, the requesting user voted ‘skip/defer’ to Jane, ‘no’ to Sarah, and is currently viewing Anna's profile, which was the next profile in the sequence350following Sarah's profile. Because the requesting user voted ‘no’ to Sarah, Sarah's profile has been removed from the sequence350of profiles. Thus, when the requesting user selects the backward selectable element from the display of Anna's profile, the matching feed400displays Jane's profile, not Sarah's profile.

In some implementations, the requesting user can modify their previous vote when they return to a previously viewed profile using the backward selectable element404. In some implementations, modifying a previous vote to match is limited to a predefined time from the time the requesting user first entered the vote, e.g., one minute. In some implementations, the requesting user can modify a previous vote for a given other user as long as that other user has not yet been notified or has not yet voted on the requesting user.

Referring again toFIG.4A, the requesting user can select the setting401bon the view settings interface401to view multiple profiles concurrently (also referred as a panoramic feed).

FIG.5Aillustrates a panoramic feed500displaying a panoramic view of multiple profiles501a-501d. In some implementations, the panoramic view includes multiple group profiles. Each group profile represents an existing group that includes two or more users of the application. The profiles of the identified potential matches are presented as sets of multiple profiles concurrently to the requesting user in sequence on the user interface, e.g., according to their ranking. The panoramic feed500presents a predetermined number (N) of profiles concurrently from the sequence of the profiles. For example, for a sequence that includes Jane, Sarah, Anna, Lisa, Olivia, Emma, Sophia, and Harper, the panoramic feed500presents Jane's, Sarah's, Anna's, and Lisa's profiles501a-501d(for the case that Nis 4). In some implementations, the requesting user can customize the number of profiles to be displayed concurrently. In some implementations, the system100can determine the number of profiles to be displayed concurrently based on attributes of the user's device, such as a screen size.

Each displayed profile includes profile information such as names (illustrated), age, biographical text, photographs, or a range of other fields. The requesting user can select one of the displayed profiles in the panoramic feed to view additional profile information for the selected profile. For example, when the requesting user selects Jane's profile501a, detailed information from Jane's profile is displayed.

The panoramic feed500includes a selectable element502. As described above, the selectable element502allows the requesting user to vote to match with a user whose profile information is displayed in the panoramic feed500. The requesting can interact with the selectable element502, e.g., tapping, swiping, dragging, or selecting the element502and subsequently specifying to vote ‘yes’, ‘no’, or ‘skip/defer’ (e.g., as described above for the selectable element402).

In some implementations, when the requesting user votes ‘yes’ on a displayed profile (e.g., Jane's profile501a), the system adds the requesting user's profile to the sequence of profiles to be presented to the user (e.g., Jane) associated with that profile and/or notifies the user of the requesting user's ‘yes’ vote. When the requesting user votes ‘no’ on a displayed profile, the system removes that profile from the requesting user's set of identified potential matches, e.g., as described above. In some implementations, the requesting user's profile is also removed from the set of identified potential matches to the other user. The removal of the profile(s) from the respective set of identified potential matches can be permanent or for a given time period, e.g., the current browsing session, 24 hours, a week, or another time period.

The panoramic feed500includes a forward selectable element506that allows the requesting user to view a new set of N profiles in the sequence of profiles of identified potential matches. The next set of N profiles can be profiles that have not previously been presented to the requesting user in a given time period, e.g., the current browsing session, past 24 hours, or past week. For example, referring toFIG.5B, the panoramic feed500displays the next set of N profiles501e-501h, e.g., Olivia's, Emma's, Sophia's, and Harper's profiles, responsive to the requesting user's selection of the forward selectable element506.

The panoramic feed500includes a backward selectable element504that allows the requesting user to view the set of N preceding profiles in the sequence, e.g., the N profiles that were displayed immediately before the currently displayed set of profiles. For example, from the display of the profiles501e-501has shown inFIG.5B, the requesting user can view the N preceding profiles in the sequence (the Jane's, Sarah's, Anna's, and Lisa's profiles501a-501d) by selecting the backward selectable element504.

In some implementations, when the first set of profiles is the only set of profiles presented to the requesting user so far, the panoramic feed500does not display the backward selectable element504, or displays an inactive version of the backward selectable element504.

In some implementations, the system removes the profile of a user for which the requesting user has voted for ‘no.’ For example, fromFIG.5Awhere the requesting user votes ‘no’ to Lisa among the first set of profiles, Lisa's profile is removed from the sequence of profiles. The sequence then becomes Jane, Sarah, Anna, Olivia, Emma, Sophia, and Harper. The user can then select the forward selectable element506, and the next set of profiles in the sequence (here, Olivia's, Emma's, Sophia's, and Harper's profiles as shown inFIG.5B) is presented to the requesting user. FromFIG.5B, when the requesting user then selects the backward selectable element504, the panoramic feed500displays Jane's, Sarah's, Anna's, and Olivia's profiles, without Lisa's profile, which was previously removed from the sequence. Olivia's profile is presented along with Jane's, Sarah's, and Anna's profiles, because Olivia's profile is now the next profile in the sequence after Anna's profile.

In some implementations, the sequence of profiles is in a predefined order, meaning the sequence is not dynamically changed depending on the requesting user's behavior. In some implementations, the sequence of profiles for the identified potential matches for a requesting user is dynamically determined or adjusted upon the requesting user's interaction with the matching feed400or based on detecting change in the requesting user's profile information (e.g., interests, criteria, location). For example, based on how the requesting user has voted on the profiles that have been already been displayed on the user interface, the system (e.g., the matching engine142) dynamically readjusts the sequence of profiles (e.g., changes the ranking of the profiles), either during the current user session or for the next user session.

In some implementations, which profiles are included in the sequence of profiles for a requesting user are dynamically adjusted based on factors such as a change in the requesting user's profile information (e.g., interests, criteria, location among other factors) or the user's voting patterns. For example, when requesting user changes his location, the system100(e.g., the matching engine142) reapplies matching criteria to the profile of the requesting user, identifies a new set of potential matches, and adds the profiles for those potential matches to the sequence of profiles to be presented to the requesting user, e.g., in his next browsing session. In detecting change in the requesting user's profile information and reapplying matching criteria, the system100utilizes the database146in accessing records associated with the requesting user.

In some implementations, the sequence of profiles for a requesting user is dynamically adjusted based on a user review attribute for each of one or more profiles presented to the requesting. In some implementations, the sequence of profiles is dynamically adjusted during a browsing session. In some implementations, the sequence of profiles is dynamically adjusted for a subsequent browsing session (e.g., the next time the user logs on, the sequence of profiles is adjusted). The dynamic adjustment can include an adjustment of the order of the profiles in the sequence, an adjustment of which profiles are included in the sequence, or both.

The user review attribute is indicative of the requesting user's interaction with the user interface during display of information representative of a profile associated with a user of the social network. The user review attribute for a given presented profile is based on factors such as time the requesting user spent interacting with the presented profile (e.g., viewing the profile, voting on the profile, holding a pointer over the profile, etc.)), movement of the pointer (e.g., how quickly the pointer moved over the profile, how long the pointer lingered on particular features of the profile, location of the pointer when lingering or when a selection or vote is made), selection parameters (e.g., fast double clicks, a slow single click), or other attributes related to the requesting user's interaction with the presented profile (e.g., viewing, tapping, swiping, dragging, or selecting one or more user selectable elements on the user interface).

In some implementations, the user review attribute for a given presented profile is based on a machine learning-guided interest classifier that processes data associated with the user's interaction with or behavior while viewing the presented profile, e.g., eye movement facial reaction, physiology (e.g., heart rate), or other interaction or behavior, e.g., obtained by components of the client device, such as a camera or heart rate sensor. Based on these data, the machine learning-guided interest classifier infers the user's interest in the presented profile. In one example, an elevated heart rate (e.g., above the user's baseline heart rate, averaged across a specified time period) while looking at a presented profile can indicate the user's excitement towards the presented profile. In another example, the user's eyebrow lift can indicate that the user reacted positively towards the presented profile. In some examples, the user's interest can be assigned a value from among a set of available values, e.g., “super excited,” “excited,” “indifferent,” and “not interested,” which value is incorporated into the determination of the user review attribute for the presented profile. The user can be asked to grant permission to participate in this behavioral interest classifier approach to inferring interest.

In some examples, The machine learning-guided interest classifier is trained (e.g., on data obtained with multiple users) to infer the user's interest given a particular set of data (e.g., facial expressions, eye movements, or physiological data). Based on the performance of the accuracy of the interest classifier, the interest classifier can be retrained with additional data.

The user review attribute for a presented profile is indicative of the requesting user's interest in the presented profile. As such, the user review attribute is usable by the system (e.g., the matching engine142) in learning the requesting user's preferences (e.g., what the requesting user is looking for in a profile). In some implementations, the system can identify additional profiles to be included in the sequence of profiles, or remove profiles from the sequence of profiles, based on the user review attribute for each of multiple previously presented profiles. For example, if the user review attribute indicates that the requesting user tends to linger longer on and smiles more often at profiles of users living in Boston, the profiles of other users living in Boston can be added to the sequence of profiles. In this example, the user review attribute takes into account both the pointer movement of the user and the user's facial reaction. Conversely, if the user review attribute indicates that the requesting user scrolls quickly through profiles of users who have pets, other profiles of pet owners can be removed from the sequence of profiles. In this way, over time, the frequency with which profiles of interest to the requesting user are presented to the requesting user is increased as the system learns the requesting user's preferences.

In some implementations, the system uses the user review attribute to adjust the order of the profiles in the sequence of profiles. For example, the system can adjust the order of the profiles such that profiles similar to profiles in which the requesting user had previously indicated interest are advanced in the sequence for earlier presentation to the requesting user. Conversely, profiles similar to profiles in which the requesting user displayed little interest are moved back in the sequence for later presentation to the requesting user.

In some implementations, the user review attribute can be assigned one of a set of discrete values. For instance, the user review attribute for a given presented profile can be assigned a value of “1” if one or more factors indicative of the requesting user's interaction with the presented profile exceeds a threshold, and a value of “0” otherwise. In an example, the user review attribute is assigned a value of ‘1’ if the requesting user spent more than a threshold amount of time interacting with the presented profile (e.g., more than 2 minutes), and “0” if the requesting user spent less than the threshold amount of time interacting with the presented profile. The threshold amount of time can be adjusted by the system, by the requesting user, or both, or can be a default setting. In some implementations, the predefined threshold is determined by a machine learning method trained on identifying an optimal threshold that distinguishes profiles the user is likely interested in based on the user review attribute.

In some examples, various factors that contribute to the user review attribute can have different weights. For instance, when the requesting user votes “yes” on a presented profile, that interaction is weighted more highly as an indication of interest than when the requesting user lingers on a profile for longer than the threshold amount of time but then votes “no” on that profile.

The system100(e.g., the matching feed400and/or the panoramic feed500) can determine a mutual vote between two users and establishes a one-to-one communication between two users who have been matched. As described above, when the requesting user votes ‘yes’ on a profile for a particular user, the system adds the requesting user's profile to a sequence of profiles to be presented to the other user and/or otherwise enables the other user to vote on the requesting user. When the other user also votes ‘yes’ on the requesting user, a match is established between the two users.

FIG.6Aillustrates an example one-to-one communication interface600that allows two matched users, e.g., User A using a client device102aand User B using a client device102b, to communicate with each other. In this example, User A and User B have been matched (e.g., both voting ‘yes’ to each other's profile information) by the social network application122. In some implementations, the system100enables the one-to-one communication interface600immediately after identifying a new match. In some implementations, the system100supplies a notification, e.g., in a form of a pop-up window, that the requesting user has been matched.

The one-to-one communication interface600can be a combination of one or more of message, audio, and video data. In the example ofFIG.6A, the one-to-one live communication interface600includes message data via a chat window602where the matched users can send messages using a send message box604.

The one-to-one communication interface600can provide a feature that allows matched users to see each other's profile via a profile selectable element606. Referring toFIG.6B, the application122can present the matched user's profile information through the user interface608, in response to the user's selection of the profile selectable element606. In some implementations, in response to the user's selection of the other user's name in the chat window602as shown inFIG.6A, the application122can present the matched user's profile information through the user interface608as shown inFIG.6B. As described above, the user interface608can include profile information, such as name, age, biographical text, photographs, and a range of other fields.

The one-to-one communication interface600allows a user to express his or her reactions. For example, in response to a first user's live communication, a second user may react with one or more of emojis, pictures, and videos. In some implementations, users in the one-to-one communication interface600may apply a visual filter to his or her image data, e.g., applying a sticker to his or her face or blurring a background.

In some implementations, the one-to-one communication interface600is between the requesting user and a group that includes two or more users. Features applicable to the one-to-one communication interface600between two users are equally applicable to a user being matched with a group.

FIG.7is a flowchart of an example process700for presenting user profiles on a user interface. The process is described as being performed by a system of one or more computers programmed appropriately in accordance with this specification. For example, the matching engine142from the system100ofFIG.1can perform at least a portion of the example process. In some implementations, various steps of a method of providing a live streaming based discovery channel can be run in parallel, in combination, in loops, or in any order.

The live streaming based discovery channel refers to a live communication each user of the social media application can initiate. For example, a first user can join a second user's live communication, and they can interact with each other, e.g., sending messages and voting to match. In some implementations, multiple users join a particular user's live communication, where the multiple users view the live communication and participate, e.g., sending messages, reactions, and votes to match with the particular user.

A request to view profiles for each of one or more other users is received from a client device associated with a requesting user (702). The requesting user and the other users are users of a social network, e.g., the application122. As described above referringFIG.4A, the requesting user can request to view profiles of one or more other users by interacting with a view settings interface. In some implementations, the requesting user requests to view multiple profiles concurrently.

Matching criteria are applied to a profile of the requesting user and profiles for respective users of the social network to identify profiles for a sequence of profiles (704). The sequence of profiles include the profiles of the identified potential matches, e.g., ordered according to their ranking. Factors, such as interests, location, age, or other factors, can be used in identifying the profiles and in determining the sequence of profiles. In some implementations, the sequence of profiles for the identified profiles is in a predefined order. The predefined order for the sequence of profiles can be determined, e.g., based on a similarity between each profile and the profile of the requesting user.

In some implementations, the sequence of profiles is dynamically determined based on the user interaction with the user interface during display of information representative of each of one or more profiles. The user interaction with the user interface includes a user interaction, such as tapping, swiping, dragging, or selection, with a user selectable element in the user interface.

Responsive to receipt of the request to access profiles, information representative of the identified profiles is displayed sequentially (706).

Specifically, first information representative of a first profile of the identified profiles is displayed (708). The first profile is associated with a first user of the social network. For the case of the panoramic feed, information representative of a first set of multiple profiles is displayed, where each profile of the first set of multiple profiles is associated with a corresponding user of the first set of multiple users of the social network.

Response to a user interaction with the user interface during display of the first information, second information representative of a second profile in the sequence is displayed (710). The second profile is associated with a second user of the social network, and the second profile is the preceding profile in the sequence of profiles before the first profile. The second information representative of the second profile was displayed, in the sequential display on the user interface, immediately before the display of the first information representative of the first profile.

For the case of the panoramic feed, information representative of a second set of multiple profiles is displayed, where the second set of multiple profiles is associated with a second set of multiple users of the social network; at least some of the second information representative of the second set of multiple profiles was displayed, in the sequential display on the user interface, immediately before the display of the first information representative of the first set of multiple profiles.

In some implementations, the system enables display, on the user interface, of a live streaming based discovery channel. In some implementations, the system enables display of the live streaming based discovery channel in parallel, in combination, or in loops with the enabling display of the first information representative of the first profile or the second information representative of the second profile. For example, the user interface can include the live streaming based discovery channel next to the profile information. That is, a user may join a live communication or continue to swipe across profiles (e.g., one profile at a time, or select a profile from the panoramic feed). In some implementations, the system receives a user preference on which screen, e.g., live streams or profiles, the user would like to see. In response to receiving a request to view the live streaming based discovery channel, the system enables display of available live streamings on the user interface. For example, similar to the panoramic feed, a plurality of live streamings is displayed; a user can select a particular live streaming to join. In some implementations, the system enables display of one live streaming at a time, and a user can interact with the user interface, e.g., by swiping in a particular direction or touching a screen, to join a particular live streaming. The user can move both forwards and backwards to see the previous live streaming or a profile of a user associated with the previous live streaming.

In some implementations, for the requesting user, the system enables the live streaming of the matched users. In this case, the requesting user can navigate through live streamings on the user interface and interact with the matched users by exchanging messages. In some implementations, both the requesting user and the user broadcasting the live streaming can live stream, e.g., the broadcasting user may grant a permission, to the requesting user, to live stream or join the broadcasting user's live stream.

In some implementations, a vote is received from the requesting user to match with the second user associated with the second profile. Responsive to receipt of the vote, the profile of the requesting user is added to a second sequence of profiles to be displayed to the second user. For the case of the panoramic feed, a vote for a particular one of the multiple profiles that are displayed on the user interface is received.

In some implementations, a vote is received not to match with the second user associated with the second profile and the second profile associated with the second user is removed from the sequence of profiles. For the case of the panoramic feed, a vote not to match with a particular one of the multiple profiles that are displayed on the user interface is received.

FIG.8is a flowchart of an example process800for presenting user profiles on a user interface. The process is described as being performed by a system of one or more computers programmed appropriately in accordance with this specification. For example, the matching engine142from the system100ofFIG.1can perform at least a portion of the example process. In some implementations, various steps of a method of providing a live streaming based discovery channel can be run in parallel, in combination, in loops, or in any order.

A user review attribute for the first profile is determined (810). The user review attribute is indicative of the requesting user's interaction with the user interface during display of the first information.

The sequence of profiles is dynamically adjusted based on the user review attribute (812). In some implementations, one or more displayed profiles for which the user review attribute exceeds a predefined threshold are identified. One or more similar profiles to the displayed profiles for which the user review attribute exceeds a predefined threshold are identified. The sequence of profiles is adjusted such that the one or more similar profiles are prioritized (e.g., added to the sequence of profiles or advanced in the sequence of profiles). In some implementation, the sequence of profiles is adjusted in the current browsing session. In some implementation, the sequence of profiles is adjusted for a subsequent browsing session.

Second information representative of a second profile of the identified profiles in the adjusted sequence of profiles is displayed on the user interface (814). The second profile is associated with a second user of the social network, and the second profile is the next profile in the adjusted sequence of profiles after the first profile.