US12321566B2 - Message application improvement for recalling one to many private conversations - Google Patents
Message application improvement for recalling one to many private conversations Download PDFInfo
- Publication number
- US12321566B2 US12321566B2 US16/866,380 US202016866380A US12321566B2 US 12321566 B2 US12321566 B2 US 12321566B2 US 202016866380 A US202016866380 A US 202016866380A US 12321566 B2 US12321566 B2 US 12321566B2
- Authority
- US
- United States
- Prior art keywords
- group conversations
- machine
- group
- conversations
- learned model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/52—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/7243—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
Definitions
- the present application relates generally to user interfaces for messaging applications and, in one specific example, to methods and systems of user interface enhancements for automatically and efficiently providing an anticipated selection of an individual recipient or a group of recipients for a message that is to be sent via a messaging application.
- a social-networking system such as LinkedIn, may support one or more messaging applications (e.g., for allowing members of the social-networking system to communicate with one another).
- messaging applications e.g., for allowing members of the social-networking system to communicate with one another.
- FIG. 1 is a block diagram illustrating a client-server system, in accordance with an example embodiment.
- FIG. 2 is a block diagram showing the functional components of a social networking service within a networked system, in accordance with an example embodiment.
- FIG. 3 is an example method of enhancing a user interface of a messaging application of the social networking system of FIG. 2 .
- FIG. 4 is a block diagram illustrating an example architecture for an offline system for ranking connections and group conversations using a machine-learned model.
- FIG. 5 is a block diagram illustrating an example online systems design for supporting the user interface enhancement described herein.
- FIG. 6 A is a screenshot of an example user interface of a messaging application.
- FIG. 6 B is a screenshot of an additional example user interface of a messaging application.
- FIG. 7 is a screenshot of an example user interface in which one-on-one conversations with connections of the member are intermingled with group conversations.
- FIGS. 8 A and 8 B are screenshots of an example user interface in which a top number of group conversations is narrowed down as the target for a new message in real time based on characters being entered into an input of the messaging application.
- FIG. 9 is a block diagram illustrating a mobile device, according to an example embodiment.
- FIG. 10 is a block diagram of an example computer system on which methodologies and operations described herein may be executed, in accordance with example embodiments.
- Example methods and systems of enhancing usability and electronic resource efficiency using anticipated-recipient-matching algorithms and specialized user interfaces are disclosed.
- numerous specific details are set forth in order to provide a thorough understanding of example embodiments. It will be evident, however, to one skilled in the art that the present embodiments may be practiced without these specific details.
- the disclosed improvements over prior art systems include improved display interfaces, including those for devices with small screens.
- the improvements allow users (e.g., members of a social networking system) to more quickly access desired data stored in one or more databases, such as data corresponding to a heterogenous mix of entities, such as conversations with individual contacts of the user and conversations with groups of other users of the social networking system, that the users have previously engaged in (e.g., for purposes of identifying a target for sending of a new message via a messaging system associated with the social networking system).
- a limited list of a top number of likely, possible, and/or available targets is dynamically presented in an output portion of a user interface of a messaging application.
- the top number of targets is subset of the possible targets that are ranked highest in a ranked list of the possible targets, the subset being of a predetermined or configurable size, or based on a transgressing of each of the top number of targets of a predetermined or configurable ranking threshold.
- each of the top number of likely targets is selectable to initiate sending of a new message to the target.
- the listing of the top number of targets is dynamically updated in response to inputs received (e.g., via an input user interface portion of the messaging application).
- the dynamic updating is based on accessing or use of a Messenger Compose typeahead (TYAH) functionality of the messaging application (or another application associated with the messaging application that provides another point of entry for initiating sending of a new message using the messaging application).
- TYAH Messenger Compose typeahead
- each new input e.g., such as a keystroke
- a summary e.g., a top number
- targets e.g., within an output portion of the messaging application user interface
- the improvements disclosed herein allow users to quickly navigate, directly within the messaging application (e.g., in substantially real-time, such as when invoking a functionality of a messaging application to send a new message or to specify recipients for a new message), potentially large networks (e.g., hundreds or thousands) of contacts (or connections) and groups of other users of the social networking system to identify a target for a new message.
- users can identify a target without accessing or changing focus to one or more other applications (e.g., in order to identify different possible recipients or types of recipients).
- one or more algorithms for ranking contacts and group conversations, and for blending the rankings are used to identify the top number of possible targets based on inputs received and different types of possible targets (e.g., one-on-one messages and group conversations) are brought together within the output portion of the user interface for selection.
- time of users is saved because, for example, the users do not have to navigate the different types of targets separately and/or because the most relevant, likely, and/or available targets are more quickly or efficiently identified and surfaced together within the user interface for selection.
- techniques for improving an interactive user interface of a messaging application by dynamically identifying a top number of targets for a new message from a plurality of possible targets for the new message are disclosed.
- An interaction with the messaging application is detected.
- the interaction is indicative of an intent to identify a target for the new message from the plurality of possible targets for the new message.
- the interaction includes a specification of one or more keywords associated with the target in a search portion of the user interface.
- the plurality of possible targets includes individual connections and group conversations associated with a member of the social networking system.
- the identifying of the top number of targets is performed by applying a matching algorithm to the one or more keywords.
- the matching algorithm blends a ranking of the individual connections of and/or contacts associated with the member with a ranking of the group conversations associated with the member.
- a listing of identifiers associated with the top number of targets is caused to be presented in a search results portion of the user interface.
- Each of the identifiers is selectable to cause a field to be presented in the user interface for entering the new message.
- one or more modules are specially designed (e.g., through one or more operations or algorithms, including computer programming logic, described herein) and incorporated into one or more memories of a networked system (e.g., via one or more computer-implemented deployment process) to specially configure one or more computer processors of the networked system to perform one or more of the operations or algorithms described herein.
- FIG. 1 is a block diagram illustrating a client-server system 100 , in accordance with an example embodiment.
- a networked system 102 provides server-side functionality via a network 104 (e.g., the Internet or Wide Area Network (WAN)) to one or more clients.
- FIG. 1 illustrates, for example, a web client 106 (e.g., a browser) and a programmatic client 108 executing on respective client machines 110 and 112 .
- a web client 106 e.g., a browser
- programmatic client 108 executing on respective client machines 110 and 112 .
- An Application Program Interface (API) server 114 and a web server 116 are coupled to, and provide programmatic and web interfaces respectively to, one or more application servers 118 .
- the application servers 118 host one or more applications 120 .
- the application servers 118 are, in turn, shown to be coupled to one or more database servers 124 that facilitate access to one or more databases 126 . While the applications 120 are shown in FIG. 1 to form part of the networked system 102 , it will be appreciated that, in alternative embodiments, the applications 120 may form part of a service that is separate and distinct from the networked system 102 .
- system 100 shown in FIG. 1 employs a client-server architecture
- present disclosure is of course not limited to such an architecture, and could equally well find application in a distributed, or peer-to-peer, architecture system, for example.
- the various applications 120 could also be implemented as standalone software programs, which do not necessarily have networking capabilities.
- the web client 106 accesses the various applications 120 via the web interface supported by the web server 116 .
- the programmatic client 108 accesses the various services and functions provided by the applications 120 via the programmatic interface provided by the API server 114 .
- FIG. 1 also illustrates a third-party application 128 , executing on a third-party server machine 130 , as having programmatic access to the networked system 102 via the programmatic interface provided by the API server 114 .
- the third-party application 128 may, utilizing information retrieved from the networked system 102 , support one or more features or functions on a website hosted by the third party.
- the third-party website may, for example, provide one or more functions that are supported by the relevant applications of the networked system 102 .
- any website referred to herein may comprise online content that may be rendered on a variety of devices, including but not limited to, a desktop personal computer, a laptop, and a mobile device (e.g., a tablet computer, smartphone, etc.).
- a mobile device e.g., a tablet computer, smartphone, etc.
- any of these devices may be employed by a user to use the features of the present disclosure.
- a user can use a mobile app on a mobile device (any of machines 110 , 112 , and 130 may be a mobile device) to access and browse online content, such as any of the online content disclosed herein.
- a mobile server e.g., API server 114
- the networked system 102 may comprise functional components of a social networking service.
- front-end components may comprise a user interface module (e.g., a web server), which receives requests from various client-computing devices, and communicates appropriate responses to the requesting client devices.
- a user interface module e.g., a web server
- the user interface module(s) may receive requests in the form of Hypertext Transfer Protocol (HTTP) requests, or other web-based, application programming interface (API) requests.
- HTTP Hypertext Transfer Protocol
- API application programming interface
- the front-end components may log the interaction, including the type of interaction and any meta-data relating to the interaction, in a member activity and behavior database 256 .
- An application logic layer may include one or more various application server modules, which, in conjunction with the user interface module(s), generate various user interfaces (e.g., web pages) with data retrieved from various data sources in the data layer.
- application server modules are used to implement the functionality associated with various applications and/or services provided by the social networking service.
- the application logic layer includes execution of high-level scripting applications (e.g., Pig/Hadoop applications), execution of batch jobs (e.g., via one or more offline jobs, such as one or more Hadoop jobs), and so on.
- the application logic layer includes contact ranking module 220 configured to rank connections and/or contacts of a member of the social networking system with respect to a likelihood that the member intends to send a new message to one of the contacts, a conversation ranking module 222 configured to rank group conversations with respect to a likelihood that the member intends to a send a new message for inclusion in one of the group conversation, a blended target ranking module 224 for ranking targets (e.g., contacts and group conversations) by blending the rankings for the contacts and the group conversations, and a message initiation module 226 that is configured to cause presentation of a user interface field or widget for entering a new message that is to be communicated to one or more of the targets, as explained in more detail below.
- contact ranking module 220 configured to rank connections and/or contacts of a member of the social networking system with respect to a likelihood that the member intends to send a new message to one of the contacts
- a conversation ranking module 222 configured to rank group conversations with respect to a likelihood that the member intends to a send a new message
- a data layer may include several databases, such as a database 252 for storing profile data, including both member profile data and profile data for various organizations (e.g., companies, schools, etc.).
- a database 252 for storing profile data, including both member profile data and profile data for various organizations (e.g., companies, schools, etc.).
- the person when a person initially registers to become a member of the social networking service, the person will be prompted to provide some personal information, such as his or her name, age (e.g., birthdate), gender, interests, contact information, home town, address, the names of the member's spouse and/or family members, educational background (e.g., schools, majors, matriculation and/or graduation dates, etc.), employment history, skills, professional organizations, and so on.
- This information is stored, for example, in the database 252 .
- the representative may be prompted to provide certain information about the organization.
- This information may be stored, for example, in the database 252 , or another database (not shown).
- the profile data may be processed (e.g., in the background or offline) to generate various derived profile data. For example, if a member has provided information about various job titles the member has held with the same company or different companies, and for how long, this information can be used to infer or derive a member profile attribute indicating the member's overall seniority level, or seniority level within a particular company.
- importing or otherwise accessing data from one or more externally hosted data sources may enhance profile data for both members and organizations. For instance, with companies in particular, financial data may be imported from one or more external data sources, and made part of a company's profile.
- a member may invite other members, or be invited by other members, to connect via the social networking service.
- a “connection” may require or indicate a bi-lateral agreement by the members, such that both members acknowledge the establishment of the connection.
- a member may elect to “follow” another member.
- the concept of “following” another member typically is a unilateral operation, and at least with some embodiments, does not require acknowledgement or approval by the member that is being followed.
- the member who is following may receive status updates (e.g., in an activity or content stream) or other messages published by the member being followed, or relating to various activities undertaken by the member being followed.
- the member when a member follows an organization, the member becomes eligible to receive messages or status updates published on behalf of the organization. For instance, messages or status updates published on behalf of an organization that a member is following will appear in the member's personalized data feed, commonly referred to as an activity stream or content stream.
- the various associations and relationships that the members establish with other members, or with other entities and objects are stored and maintained within a social graph, shown in FIG. 2 with database 254 , and may be referred to as connections of or contacts associated with the members.
- the members' interactions and behavior e.g., content viewed, links or buttons selected, messages responded to, etc.
- the members' interactions and behavior may be tracked and information concerning the member's activities and behavior may be logged or stored, for example, as indicated in FIG. 2 by the database 256 .
- databases 252 , 254 , and 256 may be incorporated into database(s) 126 in FIG. 1 .
- other configurations are also within the scope of the present disclosure.
- the social networking system provides an application programming interface (API) module via which applications and services can access various data and services provided or maintained by the social networking service.
- applications may be browser-based applications, or may be operating system-specific.
- some applications may reside and execute (at least partially) on one or more mobile devices (e.g., phone, or tablet computing devices) with a mobile operating system.
- mobile devices e.g., phone, or tablet computing devices
- the applications or services that leverage the API may be applications and services that are developed and maintained by the entity operating the social networking service, other than data privacy concerns, nothing prevents the API from being provided to the public or to certain third-parties under special arrangements, thereby making the navigation recommendations available to third party applications and services.
- front-end and back-end systems are referred to herein as being used in the context of a social networking service, it is contemplated that it may also be employed in the context of any website or online services. Additionally, although features of the present disclosure can be used or presented in the context of a web page, it is contemplated that any user interface view (e.g., a user interface on a mobile device or on desktop software) is within the scope of the present disclosure.
- FIG. 3 is an example method 300 of enhancing a user interface of a messaging application of the social networking system 232 .
- the operations are performed by one or more modules of the front end and/or application logic layer of the social networking system 232 .
- one or more interactions with a messaging application are detected that are indicative of an intention of a member to send a new message using the messaging application.
- a member may be detected that a member has accessed a messaging application that is configured to receive a search query from a user for identifying a top number of targets (e.g., from contacts or group conversations of the member) for selection for sending a new message.
- a member is using an input portion of the messaging application (e.g., by typing one or more characters into a search box of a messaging application that uses a Messenger Compose typeahead (TYAH) functionality) or another entry point into the messaging application that indicates an intent to quickly start or resume a one-on-one conversation or a group conversation.
- Members of the social networking system may seek to rapidly navigate large networks of contacts or group conversations to find a target.
- a TYAH functionality of the messaging application may be enhanced to search a new type of freely message-able entity (e.g., group conversations) or merge multiple sources of freely message-able entities: connections (or contacts) and group conversations.
- connections include one-on-one conversations between the member and another member of the social networking system.
- Group conversations may include conversations that are conversations that involve more than just one-one-one conversations, such as conversations between multiple members of the social networking system.
- group conversations may comprise a small percentage of total conversations engaged in by a member, but may represent a source of high member engagement with respect to the social networking system.
- enhancing the user interface of the messaging application may include giving group conversations equal or near-equal representation in the conversation-retrieval and/or target-identification processes for new messages (e.g., through application of one or more ranking algorithms, as described in more detail below).
- a top number of targets for the new message are dynamically identified.
- the top number of targets may include a combination of one or more contacts of the member and one or more group conversations (e.g., such as one or more group conversations that the user has previous received or contributed to).
- the top number of targets are dynamically updated (e.g., responsive to user input in real time).
- the top number of targets may be updated in response to a user entering a character or a query term into an input portion of the user interface of the messaging application.
- the updating is based on application of one or more ranking algorithms to data pertaining to contacts of the member or group conversations associated with the member.
- one or more of the ranking algorithms are machine-learned models that are trained with features derived from the data stored in the one or more databases of the social networking system.
- the models are generated to optimize various metrics associated with improving the user interface of the messaging application, such as accuracy of label predictions, precision of the label predictions, time-to-click of a selection of a target, and click-through rate within the messaging application, as explained in more detail below.
- a selection of a target is received from the top number of targets.
- a field for entering a new message directed to the selected target is caused to be presented within the messaging user interface.
- a member may be able to quickly direct a new message to an intended recipient (e.g., with only one (or a small number of) interactions with the messaging application).
- FIG. 4 is a block diagram illustrating an example architecture 400 for a system for ranking connections and group conversations using a machine-learned model.
- group conversation participant names, conversation names, and/or other connection and conversation data or metadata e.g. employer names or other profile data associated with members participating in a group conversation
- the system specializes in searching group conversation names and participant names at low latency.
- group conversations e.g., in typeahead
- a user can query on the names of participants and the conversation name simultaneously.
- Group conversation search results are joined with the connections list (e.g., using a blending of rankings, as discussed in more detail below).
- a search input term “Srihari” may match one or more connections of the member and one or more group conversations associated with the member (e.g., in which the one or more connections are participants or in which a identifier (e.g., name or title) of the group conversation corresponds to the search input).
- An additional search input term or portion of an additional search input term e.g., “introduction” may improve the specificity of the search, causing one or more matching group conversations to be ranked higher in a blended search output that includes both the potential contacts and potential group conversations that the member is searching for.
- the one or more ranking algorithms applied to perform the searching are not just based on a strength of a string match against one or more indexed documents (e.g., messages included in a one-on-one conversation or a group conversation or associated metadata).
- indexed documents e.g., messages included in a one-on-one conversation or a group conversation or associated metadata.
- na ⁇ ve approach may cause a long conversation name to be ranked below a short conversation name because there would be a higher percentage of characters matched in the shorter name.
- unengaged or irrelevant group conversations may bubble up in the results, making it harder for members to find the target they are looking for.
- a ranking model is built to rank documents returned by a search infrastructure corresponding to various metrics. Determining a likelihood of a click on an identifier corresponding to the group conversations is one example of a metric. Impression and Action events in TYAH may serve as the training, testing, and validating data. A number of features, described below, may be provided to a learning algorithm to determine the weight and contribution of each predictor toward the calculation of the score for each metric (e.g., click through). These values may be used to rank results (e.g., in descending order from highest likelihood to lowest).
- Feature data may be mined from messaging application data and data sources, (e.g., from the data layer depicted in FIG. 2 ), including member-member relationships e.g., member to member affinities), conversations views, message sent data (self and general activity), and so on.
- features may include data items that correspond to impressions of conversation details and generic message send events.
- member-to-member relationships may be mined from data items corresponding to network connection strength, connection strength, and so on. Temporal patterns in activity leading up to the time of click may be evaluated with time frames that capture recent and historical patterns of engagement leading up to the impression: e.g., 24 hours, 3 days, 1 week, or 1 year. Such features enable the model to make sense of the potential time-based value of member activity in the messaging application as it correlates to usage (e.g., TYAH usage).
- the learned model may discover that most recent messages are not an important predictor (e.g., because the member likely sees most recent conversations when accessing the messaging application (e.g., via a screen displaying recipient suggestions before getting to the messaging application user interface)).
- it may be determined that pseudo-recent engagement is more positively predictive.
- the modelling process thus helps to make sense of this data (e.g., by assigning appropriate weightings to different features).
- key themes of signals may be used for modelling affinities of a member to group conversations.
- These themes may include personalized member engagement with group conversations (e.g., a member's conversation impressions and a number of a member's messages sent to the conversation, which may be temporal (e.g., over 24 hours or 3, 7, 30, or 100 days), member relationship with participants of the group conversations (e.g., number of participants, proportion of connections vs. non-connections of a member who are participants, strengths of connections of the members who are participants), general activity with respect to the group conversations (e.g., total count of messages (temporal) or age of thread), and a search context (e.g., what field was matched on, such as participant name vs. conversation name), classifying a matched member's activity in the group conversation (e.g., based on activity level of the matched member).
- personalized member engagement with group conversations e.g., a member's conversation impressions and a number of a member's messages sent to the
- a participant relationships theme may include features for a proportion of overlap in past or current company, proportion of overlap in past or current school, and a non-connection classification (e.g., for relationships that are not direct connections).
- a context classification theme may include features for an entry point context, a client type (e.g., iOS, Android, web), a device type (e.g., mobile or desktop). Other features may include classifying the matched member's activities in the group conversations, a number of participants matched, connections strengths of each matched participant, and so on.
- Metrics for determining a level of success of the model may include (1) Time to Click (TTC) for group conversations and total TTC for all possible entities/targets (e.g., both connections and group conversations); (2) Click Through Rate (CTR), and a configurable balance of CTR between connections and group conversations (here, it may be assumed that a low CTR is indicative of a bad user experience, such as a user leaving the messaging application to use other search tools; (3) distribution of click position (e.g., among ranked results), (4) impact on other messaging application metrics (e.g., number of messages sent or time spent using the messaging application).
- TTC Time to Click
- CTR Click Through Rate
- a configurable balance of CTR between connections and group conversations here, it may be assumed that a low CTR is indicative of a bad user experience, such as a user leaving the messaging application to use other search tools
- distribution of click position e.g., among ranked results
- impact on other messaging application metrics e.g., number of messages sent or time spent using
- rankings are precalculated from a learned model, using current tracking data collected in a daily (e.g., via one or more Hadoop process flows) and pushed to a data store (e.g., an in-memory “key-value” store, such as the data store depicted in FIG. 5 ) for rapid online access.
- a data store e.g., an in-memory “key-value” store, such as the data store depicted in FIG. 5
- TYAH TYAH impression and action events
- Observations are emitted from a client into a distributed file system (e.g., a Hadoop Distributed File System or “HDFS”).
- Observations and feature sources are linked into a model definition (e.g., via a specialized process).
- a modelling process may provide configurations to train on features and observations, producing and storing a machine-learned model. The daily flow re-uses the learned model and pushes predictions based on the most current data.
- rankings are computed periodically in an offline flow (e.g., every hour, every two hours, twice per day, or once per day) via a scheduled ranking (e.g., performed via one or more offline processes, such as one or more Hadoop processes).
- a scheduled ranking e.g., performed via one or more offline processes, such as one or more Hadoop processes.
- long-term numbers may be computed in a first time interval (e.g., once per day) and a lightweight mini job may be run more frequently.
- the mini-job may union and add to any counts calculated since the last job and rebuild rankings based on the union.
- both the full and mini-job may be replaced by a nearline stream processing system (e.g. Apache Samza) that emits the rankings to the storage system after asynchronously reacting to a triggering signal (e.g., a new group conversation getting created).
- a nearline stream processing system e.g. Apache Samza
- a triggering signal e.g., a new group conversation getting created
- FIG. 5 is a block diagram illustrating an example online systems design 500 for supporting the user interface enhancement described herein.
- an API serves the front end and makes function calls (e.g., to Recommendation Process) to retrieve ranked and blended results corresponding to interactions (e.g., TYAH) with the user interface of the messaging application.
- the goal the online system is to retrieve search results and rank, with little online cost in the ranking process. Therefore, for the ranking stage, the online system refers to a data store with precalculated scores for ranking.
- the data store provides reads with high throughput and low latency; it is a highly available, eventually-consistent, distributed key-value storage system.
- the client detects an interaction with a messaging application, calling a front-end API with information pertaining to the interaction. Based on an analysis of the information pertaining to the interaction, the front-end API detects that the interaction is a typeahead interaction. In response, the front-end API calls a Recommendation Process for performing the blended ranking.
- the Recommendation Process may call one or more additional APIs, including a Typeahead API and a Group Messaging API.
- the Typeahead API facilitates a dynamic search of one or more data sources, including group conversations of a member associated with the client device (e.g., via the Group Messaging API) and one-to-one conversations associated with the member (e.g., via a One-to-One Messaging API, not pictured).
- the dynamic search may be updated across one or more data sources each time a new input is received (e.g., via an input user interface element of the messaging application).
- one or more possible targets for a new message may be identified based on the searching of the one or more data sources and accessing of a preconfigured data store, such a key-value data store, for quickly determining matches across the one or more data sources in real-time.
- the Recommendation Process ranks targets (e.g., group conversations and/or one-to-one conversations) and/or blends the rankings of different types of targets associated with a searching member, as described herein.
- targets e.g., group conversations and/or one-to-one conversations
- the front-end application may query the messaging service for one or more decorations to associated with the targets, such as one or more photos from one or member profiles of one or more participants associated with one or more of the targets.
- FIG. 6 A is a screenshot 600 of an example user interface of a messaging application.
- the user can type one or more characters or phrases to identify a target for a new message. For example, as shown in FIG. 6 A , the characters “fr” have been typed into the input portion. However, even before any characters are entered into this input portion, a suggestion of a top number of recipients is caused to be presented in an output (e.g., second) portion of the user interface (e.g., based on the blending of rankings of different types of targets performed by a machine-learned model). As characters or terms are entered into the input portion, the output portion is updated in real time.
- an output e.g., second
- connections are highlighted in a first region of the output portion and group conversations are specified in a second region of the output portion.
- the first region of the output portion includes names of connections of the member (e.g., the portion of the listing ending in “Howard Fr apartment”) and a second region of the output portion has names of group conversations (e.g., the portion of the listing starting with “GROUP_NAME”).
- FIG. 6 B is a screenshot 650 of an additional example user interface of a messaging application.
- Information pertaining to a new group message may be automatically input into various fields of a new group message user interface, including the To: field, based on a selection of one of a top number of group conversations that were previously selected (e.g., in the user interface of FIG. 6 A .
- a top number of ranked connections may be presented for adding to the group message.
- a clicking of a user interface element e.g., a “Next” button may cause a user interface field to be presented for sending the group message to the selected targets.
- FIG. 7 is a screenshot 700 of an example user interface in which one-on-one conversations with connections of the member are intermingled with group conversations that are identified as being particular relevant to the member (e.g., based on application of a machine-learned algorithm for blending the rankings of group conversations and connections of the member).
- the output region may include a listing of potential targets.
- the listing may include an identification of a connection in the first slot, an identification of a four-member group conversation in a second slot, two more connections identified in slots three and four, and two more group conversations identified slots five and six.
- the order of the list may be based the blended ranking techniques described herein.
- one or more graphical indicators (or decorations) are provided in conjunction with each target in the list.
- the graphical indicators may be indicative of a number of people involved in each conversation.
- the graphical indicators may include photos (e.g., taken from member profiles) of one or more members involved in each conversation.
- the graphical indicators may be a selected subset of a plurality of graphical indicators corresponding to members involved in each conversation.
- the selection is based on a connection strength of the member with respect to particular members participating in the group conversation.
- two member profile photos may be selected as representative of a group conversation having participation from additional members, wherein the two member profiles are members having a particular strength to the member performing the search for a target conversation.
- one or more numerical indicators may be included in the one or more graphical indicators (e.g., to specify a total number of members are invited to participate or have actually participated in the group conversation or a total number of connections of the searching member who are invited to participate or who have actually participated in the group conversation).
- FIGS. 8 A and 8 B are screenshots 800 and 850 respectively of an example user interface in which a top number of group conversations is narrowed down as the targets for a new message in real time based on characters entered into an input of the messaging application and an application of a machine-learned model for generating blended rankings of connections and group conversations, as described herein.
- a name e.g., “Matt”
- group conversations corresponding to the identified characters (e.g., group conversations in which a member named Matt is a participant or even in which a person named Matt is mentioned within the messages included in the group conversation).
- graphical indicators for each possible target may include a combination of profile photos and numerical indicators, such as one or more profile photos of members that are engaged in a group conversation and have a connection strength to the member that transgresses a threshold connection strength, and a number indicating additional members of the social network (beyond those pictured) that are engaged in the group conversation.
- FIG. 9 is a block diagram illustrating a mobile device 900 , according to an example embodiment.
- the mobile device 900 can include a processor 1602 .
- the processor 1602 can be any of a variety of different types of commercially available processors suitable for mobile devices (for example, an XScale architecture microprocessor, a Microprocessor without Interlocked Pipeline Stages (MIPS) architecture processor, or another type of processor).
- a memory 1604 such as a random access memory (RAM), a Flash memory, or other type of memory, is typically accessible to the processor 1602 .
- RAM random access memory
- Flash memory or other type of memory
- the memory 1604 can be adapted to store an operating system (OS) 1606 , as well as application programs 1608 , such as a mobile location-enabled application that can provide location-based services (LBSs) to a user.
- OS operating system
- application programs 1608 such as a mobile location-enabled application that can provide location-based services (LBSs) to a user.
- the processor 1602 can be coupled, either directly or via appropriate intermediary hardware, to a display 1610 and to one or more input/output (I/O) devices 1612 , such as a keypad, a touch panel sensor, a microphone, and the like.
- the processor 1602 can be coupled to a transceiver 1614 that interfaces with an antenna 1616 .
- the transceiver 1614 can be configured to both transmit and receive cellular network signals, wireless data signals, or other types of signals via the antenna 1616 , depending on the nature of the mobile device 900 . Further, in some configurations, a GPS receiver 1618 can also make use of the antenna 1616 to receive GPS signals.
- Modules may constitute either software modules (e.g., code embodied (1) on a non-transitory machine-readable medium or (2) in a transmission signal) or hardware-implemented modules.
- a hardware-implemented module is tangible unit capable of performing certain operations and may be configured or arranged in a certain manner.
- one or more computer systems e.g., a standalone, client or server computer system
- one or more processors may be configured by software (e.g., an application or application portion) as a hardware-implemented module that operates to perform certain operations as described herein.
- a hardware-implemented module may be implemented mechanically or electronically.
- a hardware-implemented module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations.
- a hardware-implemented module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware-implemented module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- the term “hardware-implemented module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily or transitorily configured (e.g., programmed) to operate in a certain manner and/or to perform certain operations described herein.
- hardware-implemented modules are temporarily configured (e.g., programmed)
- each of the hardware-implemented modules need not be configured or instantiated at any one instance in time.
- the hardware-implemented modules comprise a general-purpose processor configured using software
- the general-purpose processor may be configured as respective different hardware-implemented modules at different times.
- Software may accordingly configure a processor, for example, to constitute a particular hardware-implemented module at one instance of time and to constitute a different hardware-implemented module at a different instance of time.
- Hardware-implemented modules can provide information to, and receive information from, other hardware-implemented modules. Accordingly, the described hardware-implemented modules may be regarded as being communicatively coupled. Where multiple of such hardware-implemented modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware-implemented modules. In embodiments in which multiple hardware-implemented modules are configured or instantiated at different times, communications between such hardware-implemented modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware-implemented modules have access. For example, one hardware-implemented module may perform an operation, and store the output of that operation in a memory device to which it is communicatively coupled.
- a further hardware-implemented module may then, at a later time, access the memory device to retrieve and process the stored output.
- Hardware-implemented modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
- processors may be temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions.
- the modules referred to herein may, in some example embodiments, comprise processor-implemented modules.
- the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented modules. The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations.
- the one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., Application Program Interfaces (APIs).)
- SaaS software as a service
- Example embodiments may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them.
- Example embodiments may be implemented using a computer program product, e.g., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable medium for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers.
- a computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, subroutine, or other unit suitable for use in a computing environment.
- a computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
- operations may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output.
- Method operations can also be performed by, and apparatus of example embodiments may be implemented as, special purpose logic circuitry, e.g., a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).
- FPGA field programmable gate array
- ASIC application-specific integrated circuit
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- both hardware and software architectures merit consideration.
- the choice of whether to implement certain functionality in permanently configured hardware e.g., an ASIC
- temporarily configured hardware e.g., a combination of software and a programmable processor
- a combination of permanently and temporarily configured hardware may be a design choice.
- hardware e.g., machine
- software architectures that may be deployed, in various example embodiments.
- FIG. 10 is a block diagram of an example computer system 1000 on which methodologies and operations described herein may be executed, in accordance with an example embodiment.
- the machine operates as a standalone device or may be connected (e.g., networked) to other machines.
- the machine may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
- the machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine.
- PC personal computer
- PDA Personal Digital Assistant
- STB set-top box
- WPA Personal Digital Assistant
- a cellular telephone a web appliance
- network router switch or bridge
- machine any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine.
- machine shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
- the example computer system 1000 includes a processor 1702 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 1704 and a static memory 1706 , which communicate with each other via a bus 1708 .
- the computer system 1000 may further include a graphics display unit 1710 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)).
- a graphics display unit 1710 e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)
- the computer system 1000 also includes an alphanumeric input device 1712 (e.g., a keyboard or a touch-sensitive display screen), a user interface (UI) navigation device 1714 (e.g., a mouse), a storage unit 1716 , a signal generation device 1718 (e.g., a speaker) and a network interface device 1720 .
- an alphanumeric input device 1712 e.g., a keyboard or a touch-sensitive display screen
- UI user interface
- storage unit 1716 e.g., a storage unit 1716
- signal generation device 1718 e.g., a speaker
- the storage unit 1716 includes a machine-readable medium 1722 on which is stored one or more sets of instructions and data structures (e.g., software) 1724 embodying or utilized by any one or more of the methodologies or functions described herein.
- the instructions 1724 may also reside, completely or at least partially, within the main memory 1704 and/or within the processor 1702 during execution thereof by the computer system 1000 , the main memory 1704 and the processor 1702 also constituting machine-readable media.
- machine-readable medium 1722 is shown in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions 1724 or data structures.
- the term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions (e.g., instructions 1724 ) for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure, or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions.
- the instructions 1724 may further be transmitted or received over a communications network 1726 using a transmission medium.
- the instructions 1724 may be transmitted using the network interface device 1720 and any one of a number of well-known transfer protocols (e.g., HTTP).
- Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), the Internet, mobile telephone networks, Plain Old Telephone Service (POTS) networks, and wireless data networks (e.g., WiFi and WiMax networks).
- POTS Plain Old Telephone Service
- the term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such software.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
Claims (20)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/866,380 US12321566B2 (en) | 2020-05-04 | 2020-05-04 | Message application improvement for recalling one to many private conversations |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/866,380 US12321566B2 (en) | 2020-05-04 | 2020-05-04 | Message application improvement for recalling one to many private conversations |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20210342038A1 US20210342038A1 (en) | 2021-11-04 |
| US12321566B2 true US12321566B2 (en) | 2025-06-03 |
Family
ID=78292810
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/866,380 Active 2040-07-24 US12321566B2 (en) | 2020-05-04 | 2020-05-04 | Message application improvement for recalling one to many private conversations |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US12321566B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250337704A1 (en) * | 2024-04-26 | 2025-10-30 | Snap Inc. | Sending group message to tagged contacts |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210352075A1 (en) * | 2020-05-08 | 2021-11-11 | Apple Inc. | Group identification using machine learning |
Citations (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060173961A1 (en) * | 2005-02-01 | 2006-08-03 | Microsoft Corporation | People-centric view of email |
| US20080071873A1 (en) * | 2006-09-20 | 2008-03-20 | John Nicholas Gross | Electronic Message System Recipient Recommender |
| US20140046961A1 (en) * | 2004-03-31 | 2014-02-13 | Google Inc. | Systems and methods for re-ranking displayed conversations |
| US20140108562A1 (en) * | 2012-10-12 | 2014-04-17 | John Panzer | Automatically Suggesting Groups Based on Past User Interaction |
| US20140244619A1 (en) * | 2013-02-26 | 2014-08-28 | Facebook, Inc. | Intelligent data caching for typeahead search |
| US20150347925A1 (en) * | 2014-05-27 | 2015-12-03 | Insidesales.com | Email optimization for predicted recipient behavior: suggesting changes that are more likely to cause a target behavior to occur |
| US20160063115A1 (en) * | 2014-08-27 | 2016-03-03 | Facebook, Inc. | Blending by Query Classification on Online Social Networks |
| US20160357761A1 (en) * | 2015-06-05 | 2016-12-08 | Apple Inc. | Techniques for suggesting recipients based on a context of a device |
| US20170068906A1 (en) * | 2015-09-09 | 2017-03-09 | Microsoft Technology Licensing, Llc | Determining the Destination of a Communication |
| US20170201575A1 (en) * | 2016-01-08 | 2017-07-13 | Facebook, Inc. | Pivot interface element for a messaging system |
| US20170279919A1 (en) * | 2016-03-22 | 2017-09-28 | Facebook, Inc. | Handling User Interface Components |
| US20180083905A1 (en) * | 2016-09-21 | 2018-03-22 | Facebook, Inc. | Module ranking for a modular inbox |
| US20180131660A1 (en) * | 2016-11-10 | 2018-05-10 | Facebook, Inc. | Managing digital messages across a plurality of social networking groups |
| US20190102396A1 (en) * | 2017-10-03 | 2019-04-04 | Facebook, Inc. | Systems and methods for ranking potential recipients of content items associated with a social networking system |
| US20190155916A1 (en) * | 2017-11-22 | 2019-05-23 | Facebook, Inc. | Retrieving Content Objects Through Real-time Query-Post Association Analysis on Online Social Networks |
-
2020
- 2020-05-04 US US16/866,380 patent/US12321566B2/en active Active
Patent Citations (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140046961A1 (en) * | 2004-03-31 | 2014-02-13 | Google Inc. | Systems and methods for re-ranking displayed conversations |
| US20060173961A1 (en) * | 2005-02-01 | 2006-08-03 | Microsoft Corporation | People-centric view of email |
| US20080071873A1 (en) * | 2006-09-20 | 2008-03-20 | John Nicholas Gross | Electronic Message System Recipient Recommender |
| US20140108562A1 (en) * | 2012-10-12 | 2014-04-17 | John Panzer | Automatically Suggesting Groups Based on Past User Interaction |
| US20140244619A1 (en) * | 2013-02-26 | 2014-08-28 | Facebook, Inc. | Intelligent data caching for typeahead search |
| US20150347925A1 (en) * | 2014-05-27 | 2015-12-03 | Insidesales.com | Email optimization for predicted recipient behavior: suggesting changes that are more likely to cause a target behavior to occur |
| US20160063115A1 (en) * | 2014-08-27 | 2016-03-03 | Facebook, Inc. | Blending by Query Classification on Online Social Networks |
| US20160357761A1 (en) * | 2015-06-05 | 2016-12-08 | Apple Inc. | Techniques for suggesting recipients based on a context of a device |
| US20170068906A1 (en) * | 2015-09-09 | 2017-03-09 | Microsoft Technology Licensing, Llc | Determining the Destination of a Communication |
| US20170201575A1 (en) * | 2016-01-08 | 2017-07-13 | Facebook, Inc. | Pivot interface element for a messaging system |
| US20170279919A1 (en) * | 2016-03-22 | 2017-09-28 | Facebook, Inc. | Handling User Interface Components |
| US20180083905A1 (en) * | 2016-09-21 | 2018-03-22 | Facebook, Inc. | Module ranking for a modular inbox |
| US20180131660A1 (en) * | 2016-11-10 | 2018-05-10 | Facebook, Inc. | Managing digital messages across a plurality of social networking groups |
| US20190102396A1 (en) * | 2017-10-03 | 2019-04-04 | Facebook, Inc. | Systems and methods for ranking potential recipients of content items associated with a social networking system |
| US20190155916A1 (en) * | 2017-11-22 | 2019-05-23 | Facebook, Inc. | Retrieving Content Objects Through Real-time Query-Post Association Analysis on Online Social Networks |
Non-Patent Citations (1)
| Title |
|---|
| IPCOM000257299D: "A System and Method to Suggest Context-Appropriate Names for @Mentions", Jan. 30, 2019. (Year: 2019). * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20250337704A1 (en) * | 2024-04-26 | 2025-10-30 | Snap Inc. | Sending group message to tagged contacts |
Also Published As
| Publication number | Publication date |
|---|---|
| US20210342038A1 (en) | 2021-11-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20190294731A1 (en) | Search query dispatcher using machine learning | |
| CN106687951B (en) | Inferred identity | |
| US9558613B2 (en) | Social network interaction via games | |
| US20170250930A1 (en) | Interactive content recommendation personalization assistant | |
| US11514402B2 (en) | Model selection using greedy search | |
| US10423689B2 (en) | Guided browsing experience | |
| US20160371276A1 (en) | Answer scheme for information request | |
| US20200097616A1 (en) | Routing of Cases Using Unstructured Input and Natural Language Processing | |
| US20190258984A1 (en) | Generative adversarial networks in predicting sequential data | |
| US10481750B2 (en) | Guided edit optimization | |
| US11176216B2 (en) | Context aware personalized query autocompletion | |
| US20200004827A1 (en) | Generalized linear mixed models for generating recommendations | |
| CN110059230A (en) | For improving the Generalized Linear Mixed Models of search | |
| US20180322463A1 (en) | Specialized user interfaces and processes for increasing user interactions with job postings in a social network / top jobs | |
| US10198512B2 (en) | Search relevance using past searchers' reputation | |
| US11436542B2 (en) | Candidate selection using personalized relevance modeling system | |
| US9432466B2 (en) | Member time zone inference | |
| US12321566B2 (en) | Message application improvement for recalling one to many private conversations | |
| US20160062621A1 (en) | User interface for funnel analysis | |
| US9848053B2 (en) | Systems and methods for measuring user engagement | |
| US20160062558A1 (en) | Backend techniques for funnel analysis | |
| US20210326401A1 (en) | Scaling workloads using staging and computation pushdown | |
| US20180197097A1 (en) | Constrained Multi-Slot Optimization for Ranking Recommendations | |
| CN109725962B (en) | Attribute Affinity-Based Action Prompt Transmission | |
| US20170124086A1 (en) | Ranking objects based on affinity |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LEON, ADAM;YIN, MONIQUE;GOLLAND, DAVID;AND OTHERS;SIGNING DATES FROM 20200501 TO 20200504;REEL/FRAME:052565/0164 |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STCV | Information on status: appeal procedure |
Free format text: NOTICE OF APPEAL FILED |
|
| STCV | Information on status: appeal procedure |
Free format text: APPEAL BRIEF (OR SUPPLEMENTAL BRIEF) ENTERED AND FORWARDED TO EXAMINER |
|
| STCV | Information on status: appeal procedure |
Free format text: EXAMINER'S ANSWER TO APPEAL BRIEF MAILED |
|
| STCV | Information on status: appeal procedure |
Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS |
|
| STCV | Information on status: appeal procedure |
Free format text: BOARD OF APPEALS DECISION RENDERED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |