KR20220123663A - Ranking Messages in Conversation Graphs in Messaging Platform Using Prediction Results - Google Patents

Ranking Messages in Conversation Graphs in Messaging Platform Using Prediction Results Download PDF

Info

Publication number
KR20220123663A
KR20220123663A KR1020227024795A KR20227024795A KR20220123663A KR 20220123663 A KR20220123663 A KR 20220123663A KR 1020227024795 A KR1020227024795 A KR 1020227024795A KR 20227024795 A KR20227024795 A KR 20227024795A KR 20220123663 A KR20220123663 A KR 20220123663A
Authority
KR
South Korea
Prior art keywords
messages
engagement
conversation
messaging platform
graph
Prior art date
Application number
KR1020227024795A
Other languages
Korean (ko)
Inventor
로히트 제인
아르빈드 티아가라얀
시앙이 젱
미날리 아가르왈
앨런 첸
토미 총
앤드류 헤이즌 슐라이키예르
Original Assignee
트위터, 인크.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US16/723,984 external-priority patent/US11057322B1/en
Priority claimed from US16/723,981 external-priority patent/US10951560B1/en
Priority claimed from US16/723,987 external-priority patent/US11516155B1/en
Application filed by 트위터, 인크. filed Critical 트위터, 인크.
Publication of KR20220123663A publication Critical patent/KR20220123663A/en

Links

Images

Classifications

    • G06Q50/50
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/30Transportation; Communications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/226Delivery according to priorities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-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

Abstract

일 양상에 따르면, 메시징 플랫폼에서 대화 그래프의 메시지들 순위를 매기기 위한 방법은 메시징 플랫폼 상에 저장된 대화 그래프의 메시지들을 리트리브하기 위한 대화 보기 요청을 수신하는 단계 및 예측 모델들을 사용하여 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하는 단계를 포함한다. 결정하는 단계는 예측 모델들과 관련된 복수의 신호들을 획득하는 단계 ― 복수의 신호들은 대화 그래프와 관련된 데이터 구조-관련 신호들을 포함함 ― 및 복수의 예측 결과들을 결정하기 위해 예측 모델들에 복수의 신호들을 입력하는 단계를 포함한다. 방법은, 메시징 플랫폼에 의해, 예측 결과들에 기초하여 복수의 메시지들 순위를 매기는 단계, 및 메시징 플랫폼에 의해, 네트워크를 통해, 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 복수의 메시지들의 서브세트를 송신하는 단계를 포함한다.According to one aspect, a method for ranking messages in a conversation graph in a messaging platform includes receiving a conversation view request to retrieve messages of a conversation graph stored on the messaging platform and using predictive models to represent a plurality of messages in the conversation graph using predictive models. and determining a plurality of prediction results for each of the messages. The determining includes obtaining a plurality of signals associated with the predictive models, the plurality of signals including data structure-related signals associated with the dialog graph, and sending the plurality of signals to the predictive models to determine a plurality of predictive results. inputting them. The method includes ranking, by the messaging platform, a plurality of messages based on prediction results, and at least a subset of the plurality of messages to be rendered on a client application according to the ranking, via a network, by the messaging platform. sending it.

Figure P1020227024795
Figure P1020227024795

Description

예측 결과들을 사용하여 메시징 플랫폼에서 대화 그래프들의 메시지들 순위 매기기Ranking Messages in Conversation Graphs in Messaging Platform Using Prediction Results

[0001] 본 출원은 2019년 12월 20일에 출원된 미국 정규 특허 출원 번호 제16/723,981호 및 2019년 12월 20일에 출원된 미국 특허 출원 번호 제16/723,984호 및 2019년 12월 20일에 출원된 미국 정규 특허 출원 번호 제16/723,987호의 연속(continuation)이고 그 출원들을 우선권으로 주장하며, 그 출원들의 개시내용들은 그 전체가 인용에 의해 본원에 포함된다.[0001] This application is filed on December 20, 2019 in U.S. Regular Patent Application No. 16/723,981 and in U.S. Patent Application Serial No. 16/723,984, filed on December 20, 2019 and filed on December 20, 2019 is a continuation of U.S. Patent Application Serial No. 16/723,987, which claims priority to the applications, the disclosures of which are incorporated herein by reference in their entirety.

[0002] 소셜 미디어 메시징 플랫폼은 그의 사용자들 간에 수백만 또는 수억 개의 소셜 미디어 메시지들의 교환을 용이하게 할 수 있다. 플랫폼에서 교환되는 메시지는 종종 플랫폼 사용자에게 최신 업데이트 또는 현재 이벤트에 대한 보고를 제공할 수 있다. 메시징 플랫폼 상에서 메시지들의 교환은 사용자들 간의 대화의 부분일 수 있다. 일부 종래의 메시징 시스템들은 사용자가 특정 메시지를 볼 때 대화의 부분들을 볼 수 있도록 메시지들의 답신 구조를 저장할 수 있다. 그러나 대화 보기를 형성하는 메시지들의 목록이 비교적 클 수 있으며, 이는 사용자에 대해 더 느린 로드 시간들로 이어질 수 있다.[0002] A social media messaging platform may facilitate the exchange of millions or hundreds of millions of social media messages among its users. Messages exchanged on the platform can often provide platform users with the latest updates or reporting on current events. The exchange of messages on a messaging platform may be part of a conversation between users. Some conventional messaging systems may store a reply structure of messages so that a user can view parts of a conversation when viewing a particular message. However, the list of messages forming the conversation view can be relatively large, which can lead to slower load times for the user.

[0003] 메시징 플랫폼은 메시징 플랫폼의 사용자들 간의 메시지들의 교환을 용이하게 한다. 메시지들은 메시징 플랫폼 상에서 발생하는 대화의 부분일 수 있다. 예컨대, 사용자는 플랫폼 상에 메시지를 게시할 수 있고 다른 사용자들은 그 메시지에 대한 답신들의 수를 게시하고 그 후 답신들에 대해 답신들을 게시하는 식이다. 답신 구조는 대화 그래프로서 저장될 수 있고 메시징 플랫폼은 메시징 플랫폼 상에서 발생하는 대화와 관련된 임의의 수의 대화 그래프들을 저장할 수 있다. 일부 예들에서, 대화 그래프는 비교적 클 수 있다(예컨대, 대화 그래프의 노드들의 수가 임계 수를 초과함). 대화 그래프들의 생성 및 유지는 특정 메시지와의 답신 관계에서 메시지들을 보기 위한 요청들에 응답할 때 정보의 더 빠른 리트리벌(retrieval)을 가능하게 할 수 있다.[0003] A messaging platform facilitates the exchange of messages between users of the messaging platform. Messages may be part of a conversation that takes place on a messaging platform. For example, a user can post a message on the platform and other users post the number of replies to the message and then replies to the replies, and so on. The reply structure may be stored as a conversation graph and the messaging platform may store any number of conversation graphs related to conversations occurring on the messaging platform. In some examples, the dialog graph can be relatively large (eg, the number of nodes in the dialog graph exceeds a threshold number). The creation and maintenance of conversation graphs may enable faster retrieval of information when responding to requests to view messages in a reply relationship with a particular message.

[0004] 대화 그래프와 연관된 특정 메시지를 볼 때, 사용자는 대화 그래프의 다른 메시지들을 보기 위해 메시지를 선택할 수 있으며, 여기서 클라이언트 애플리케이션은 메시징 플랫폼에 대한 대화 보기 요청을 생성한다. 대화 그래프와 관련된 모든 메시지들(비교적 클 수 있음)을 디스플레이하는 대신, 타임라인 관리자는 고유한 스코어링 시스템(인게이지먼트 예측(engagement prediction)들을 통합함)을 사용하여 대화 그래프의 메시지들 순위를 매겨서 특정 사용자에 대해 가장 관련성 있는 분기들(또는 노드들) 순위를 매기고(그리고 아마도, 선택하고), 그 후 클라이언트 애플리케이션의 사용자 인터페이스 상에 그 순위 목록(또는 그의 서브세트)을 제공한다. 이러한 방식으로 대화 그래프의 메시지들은 자신의 예측 결과들(부정적 예측 결과에 대해 긍정적 예측 결과가 균형을 이룸)의 레벨에 따라 디스플레이된다. 또한, 순위 목록을 제공하는 것은 메시징 플랫폼이 사용자들에게 제공되는 가치를 증가시키면서 더 적은 수의 응답들을 서빙하도록 허용한다. 예컨대, 메시징 플랫폼은 각각의 요청에 대한 응답의 서브세트(예컨대, 상위 10개, 15개, 20개 등의 응답들)를 제공할 수 있으며, 이는 서버 상에서 컴퓨테이션을 더 빠르게 하고, 사용자에 대한 로드 시간을 더 빠르게 하고 인게이지먼트에 대한 손실이 실질적으로 없을 수 있다(예컨대, 손실이 전혀 없음).[0004] When viewing a particular message associated with the conversation graph, the user can select the message to view other messages in the conversation graph, where the client application makes a conversation view request to the messaging platform. Instead of displaying all the messages related to the conversation graph (which can be relatively large), the timeline manager uses its own scoring system (which incorporates engagement predictions) to rank the messages in the conversation graph. It ranks (and possibly selects) the most relevant branches (or nodes) for a particular user, and then presents the ranked list (or a subset thereof) on the user interface of the client application. In this way, the messages of the conversation graph are displayed according to the level of their prediction results (positive prediction results are balanced against negative prediction results). Also, providing a ranked list allows the messaging platform to serve fewer responses while increasing the value provided to users. For example, a messaging platform may provide a subset of responses (eg, top 10, 15, 20, etc. responses) to each request, which speeds up computation on the server and The load times are faster and there can be virtually no loss to engagement (eg, no loss at all).

[0005] (메시징 플랫폼에서 실행되는) 예측 관리자는 하나 이상의 예측 모델들을 사용하여 대화 그래프의 각각의 후보 노드에 대한 예측 결과들을 결정할 수 있다. 예측 결과들은 대화 그래프의 각각의 메시지(또는 메시지들의 서브세트)에 대해 예측되는 사용자 인게이지먼트 결과들이다. 예측 결과들은 상호 인게이지먼트 확률을 포함한다. 상호 인게이지먼트 확률은 사용자가 대화 그래프를 더 전개할 것으로 예측되는(예컨대, 메시지에 답신할 것으로 예측되는) 확률 값을 표시한다. 예측 결과들에 대한 상호 인게이지먼트 확률의 통합은 플랫폼 상에서 더 많은 대화들을 장려할 수 있다. 일부 예들에서, 예측 결과는 상호 인게이지먼트 확률, 및 긍정적 인게이지먼트 확률 또는 부정적 인게이지먼트 확률 중 적어도 하나를 포함한다. 긍정적 인게이지먼트 확률은 사용자가 메시지에 긍정적으로 인게이징(engage)할 것으로 예측되는 확률 값을 표시한다(예컨대, 노드를 좋아요(like) 하기 또는 즐겨찾기(favoritize) 하기). 부정적 인게이지먼트 확률은 사용자가 메시지를 부정적으로 보거나 인게이징할 것으로 예측되는 확률 값을 표시한다(예컨대, 사용자는 노드가 욕설(abusive)임을 발견할 수 있음). 일부 예들에서, 예측 결과들은 상호 인게이지먼트 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률을 포함한다.[0005] A prediction manager (running on the messaging platform) may use one or more prediction models to determine prediction results for each candidate node of the conversation graph. The prediction results are the predicted user engagement results for each message (or a subset of messages) of the conversation graph. Prediction results include mutual engagement probabilities. The mutual engagement probability indicates a probability value at which the user is predicted to further develop the conversation graph (eg, to reply to a message). The incorporation of mutual engagement probabilities into prediction results can encourage more conversations on the platform. In some examples, the prediction result includes a mutual engagement probability and at least one of a positive engagement probability or a negative engagement probability. Positive engagement probability indicates a probability value that the user is expected to positively engage with the message (eg, like or favorite a node). The negative engagement probability indicates a probability value that the user is expected to negatively view or engage with the message (eg, the user may discover that the node is abusive). In some examples, the prediction results include a mutual engagement probability, a positive engagement probability, and a negative engagement probability.

[0006] 예측 모델들은 긍정적 인게이지먼트 확률을 예측하는 긍정적 인게이지먼트 모델, 부정적 인게이지먼트 확률을 예측하는 부정적 인게이지먼트 모델 및 상호 인게이지먼트 확률을 예측하는 상호 인게이지먼트 모델을 포함할 수 있다. 일부 예들에서, 예측 모델들은 하나 이상의 기계 학습 알고리즘들에 적용된 트레이닝 데이터를 사용하여 트레이닝된 기계 학습 모델들이다. 일부 예들에서, 예측 모델들은 신경망들을 포함한다. 트레이닝 데이터는 메시징 시스템이 활성화되어 있는 동안(그리고 예측 관리자가 인에이블됨) 클라이언트 이벤트 로그 및 주입 로그(injection log)로부터 획득된 이력 데이터의 조합일 수 있다. 이력 데이터는 시간 기간(예컨대, 일, 주, 월, 년 등)에 걸쳐 획득되고 그 후 오프라인 모드에서 예측 모델들을 트레이닝(또는 재트레이닝)하는 데 사용될 수 있다.[0006] The predictive models may include a positive engagement model predicting a positive engagement probability, a negative engagement model predicting a negative engagement probability, and a mutual engagement model predicting a mutual engagement probability. In some examples, the predictive models are machine learning models trained using training data applied to one or more machine learning algorithms. In some examples, predictive models include neural networks. The training data may be a combination of historical data obtained from the client event log and the injection log while the messaging system is active (and the predictive manager is enabled). Historical data may be acquired over a period of time (eg, days, weeks, months, years, etc.) and then used to train (or retrain) predictive models in an offline mode.

[0007] 대화 그래프의 메시지들을 리트리브하기 위한 대화 보기 요청에 대한 응답으로, 예측 관리자는 예측 결과들을 결정하기 위한 신호들을 획득하고 예측 결과들을 결정하기 위해 예측 모델에 신호들을 입력할 수 있다. 신호들은 클라이언트 애플리케이션에 의해 생성된 신호들 및/또는 메시징 플랫폼에 의해 생성된 신호들을 포함할 수 있다. 일부 예들에서, 신호들은 사용자 및 작성자의 소셜 그래프 및 인게이지먼트 이력을 포함한다. 그러나 신호들은 데이터 구조-관련 신호들, 건강-관련 신호들, 인게이지먼트 신호들, 소셜 그래프 신호들, 이력 집계 신호들 및/또는 콘텐츠-관련 신호들과 같은 매우 다양한 신호들을 포함할 수 있다. 예측에 사용된 신호들의 수 및 신호들의 상이한 카테고리들의 수는 모델 예측들의 정확도를 개선할 수 있다.[0007] In response to the conversation view request to retrieve messages of the conversation graph, the prediction manager may obtain signals to determine prediction results and input signals to the prediction model to determine prediction results. The signals may include signals generated by a client application and/or signals generated by a messaging platform. In some examples, the signals include a social graph and engagement history of the user and author. However, signals may include a wide variety of signals, such as data structure-related signals, health-related signals, engagement signals, social graph signals, historical aggregate signals, and/or content-related signals. The number of signals used for prediction and the number of different categories of signals can improve the accuracy of model predictions.

[0008] 예측 관리자는 예측 결과를 결합하여 각각의 노드에 대한 인게이지먼트 값을 획득을 수 있으며, 여기서 인게이지먼트 값은 대화 그래프의 메시지와의 예측된 인게이지먼트의 전체 레벨을 표시한다. 타임라인 관리자는 인게이지먼트 값들을 사용하여 사용자에 대해 대화 그래프의 가장 관련성 있는 분기(또는 노드)를 욕심껏(greedily) 선택할 수 있다. 가장 관련성 있는 분기(들)(또는 노드들)를 로케이팅하는 것 외에도, 타임라인 관리자는 인게이지먼트 값들에 기초하여 분기 중 얼만큼을 디스플레이할지를 결정할 수 있다. 또한 타임라인 관리자는 대화 그래프의 관련성 없는 부분들을 축소(collapse)시킬 수 있지만, 사용자가 그 부분들을 확장하여 대화 그래프의 다른 메시지들을 보도록 허용한다.[0008] The prediction manager may combine the prediction results to obtain an engagement value for each node, where the engagement value indicates the overall level of predicted engagement with the message in the dialog graph. The timeline manager can use the engagement values to greedily select the most relevant branch (or node) of the dialog graph for the user. In addition to locating the most relevant branch(s) (or nodes), the timeline manager can determine how many of the branches to display based on engagement values. The timeline manager can also collapse irrelevant parts of the dialog graph, but allows the user to expand those parts to view other messages in the dialog graph.

[0009] 인게이지먼트 값들에 따라 순위가 매겨진 메시지들은 각각의 사용자마다 특유할 수 있다. 예컨대, 대화 그래프의 일부 메시지들은 제1 사용자와 더 관련될 수 있는 반면, 대화 그래프의 다른 메시지들은 제2 사용자와 더 관련될 수 있다. 그러나 예측 관리자에 의해 결정되는 예측 결과들은 특정 사용자에게 맞춤제작된다. 대조적으로, 일부 종래의 접근법은 각각에 대해 동일한 보기를 제공할 수 있는 투표-기반 메커니즘을 사용한다. 또한, 메시징 플랫폼은 그의 스코어링 알고리즘 내에 상호 인게이지먼트 확률을 통합하기 때문에, 메시징 플랫폼은 메시징 플랫폼 상의 더 많은 대화들을 장려할 수 있다.[0009] Messages ranked according to engagement values may be specific to each user. For example, some messages in the conversation graph may be more relevant to a first user, while other messages in the conversation graph may be more relevant to a second user. However, the prediction results determined by the prediction manager are tailored to the specific user. In contrast, some conventional approaches use a vote-based mechanism that can provide the same view for each. Also, because the messaging platform incorporates mutual engagement probabilities within its scoring algorithm, the messaging platform can encourage more conversations on the messaging platform.

[0010] 일부 예들에서, 메시징 플랫폼은 대화 그래프의 메시지들과 관련하여 2-레벨 순위매김 시스템(two-level ranking system)을 수행한다. 예컨대, 2-레벨 순위매김 메커니즘(예컨대, 하드(hard) 순위매김 및 소프트(soft) 순위매김)은 메시징 플랫폼 상에서 대화들 내 욕설을 처리하는 효과적인 메커니즘을 제공할 수 있다. 일부 예들에서, 하드 순위매김은 대화의 메시지들(또는 분기들)을 복수의 섹션들로 분류(또는 섹션화)하는 것을 포함한다. 예컨대, 메시징 플랫폼은 대화 그래프의 노드들(또는 분기들)을 섹션들로 분할하는 콘텐츠 품질 분류기를 포함할 수 있다. 각각의 섹션은 품질 레벨의 상이한 카테고리화(categorization)(또는 분류)를 참조할 수 있다. 일부 예들에서, 콘텐츠 품질 분류기는 메시지의 콘텐츠 및 작성자의 행동, 프로필 또는 메시징 플랫폼 상의 인게이지먼트들과 관련된 다른 신호들에 기초하여 메시지들의 품질 분류를 결정하는 분류 모델(예컨대, 신경망)을 포함한다.[0010] In some examples, the messaging platform performs a two-level ranking system with respect to the messages in the conversation graph. For example, a two-level ranking mechanism (eg, hard ranking and soft ranking) may provide an effective mechanism for handling profanity in conversations on a messaging platform. In some examples, hard ranking includes categorizing (or sectioning) the messages (or branches) of the conversation into a plurality of sections. For example, the messaging platform may include a content quality classifier that divides the nodes (or branches) of the conversation graph into sections. Each section may refer to a different categorization (or classification) of quality levels. In some examples, the content quality classifier includes a classification model (eg, a neural network) that determines the quality classification of messages based on the message's content and the author's behavior, profile, or other signals related to engagements on the messaging platform. .

[0011] 콘텐츠 품질 분류기는 제1 메시지가 비교적 저품질을 갖고 제2 메시지가 비교적 고품질을 갖는 것으로 결정할 수 있으며, 여기서 콘텐츠 품질 분류기는 제1 메시지(또는 제1 메시지를 포함하는 분기)를 제1 섹션(예컨대, 제1 섹션은 저품질 섹션으로 간주됨)에 할당할 수 있고, 제2 메시지(또는 제2 메시지를 포함하는 분기)를 제2 섹션(예컨대, 제2 섹션은 고품질 섹션으로 간주됨)에 할당할 수 있다. 2-레벨 순위매김 매커니즘의 소프트 순위매김은 위에서 설명된 인게이지먼트 값들을 사용하여 각각의 섹션 내의 메시지들(또는 분기들) 순위를 매기는 것을 포함할 수 있다. 그 후, 메시지들은 고품질 섹션의 순위 목록 다음에, 저품질 섹션의 순위 목록을 제공하는 방식으로 사용자에게 표면화된다.[0011] The content quality classifier may determine that the first message has relatively low quality and the second message has relatively high quality, wherein the content quality classifier divides the first message (or branch containing the first message) into a first section (eg, A first section may be assigned to a low quality section, and a second message (or a branch containing the second message) may be assigned to a second section (eg, the second section is considered a high quality section). have. Soft ranking of the two-level ranking mechanism may include ranking the messages (or branches) within each section using the engagement values described above. The messages are then surfaced to the user in such a way that they provide a ranked list of high quality sections followed by a ranked list of low quality sections.

[0012] 일 양상에 따르면, 예측 결과들을 사용하여 메시징 플랫폼에서 대화 그래프의 메시지들 순위를 매기기 위한 방법은 네트워크를 통해, 메시징 플랫폼 상에 저장된 대화 그래프의 메시지들을 리트리브하기 위한 대화 보기 요청을 수신하는 단계 및 메시징 플랫폼에 의해, 예측 모델들을 사용하여 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하는 단계를 포함한다. 복수의 예측 결과들은 상호 인게이지먼트 확률을 포함한다. 방법은, 메시징 플랫폼에 의해, 예측 결과들에 기초하여 복수의 메시지들 순위를 매기는 단계, 및 메시징 플랫폼에 의해, 네트워크를 통해, 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 복수의 메시지들의 서브세트를 송신하는 단계를 포함한다. 다른 양상들에 따르면, 대응하는 시스템 및 대응하는 명령들을 저장하는 비-일시적 컴퓨터-판독 가능 매체가 제공될 수 있다.[0012] According to an aspect, a method for ranking messages in a conversation graph in a messaging platform using prediction results comprises: receiving, via a network, a conversation view request to retrieve messages of a conversation graph stored on the messaging platform; determining, by the platform, a plurality of prediction results for each of a plurality of messages of the conversation graph using the prediction models. The plurality of prediction results include a mutual engagement probability. The method includes ranking, by the messaging platform, a plurality of messages based on prediction results, and at least a subset of the plurality of messages to be rendered on a client application according to the ranking, via a network, by the messaging platform. sending it. According to other aspects, a non-transitory computer-readable medium storing a corresponding system and corresponding instructions may be provided.

[0013] 일부 양상들에 따르면, 방법, 시스템, 및/또는 비-일시적 컴퓨터-판독 가능 매체는 다음 특징들(또는 이들의 임의의 조합) 중 하나 이상을 포함할 수 있다. 복수의 예측 결과들은 또한 긍정적 인게이지먼트 확률과 부정적 인게이지먼트 확률을 포함한다. 방법은 상호 인게이지먼트 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률을 사용하여 복수의 메시지들 각각에 대한 인게이지먼트 값을 컴퓨팅하는 단계를 더 포함할 수 있으며, 여기서 복수의 메시지들은 인게이지먼트 값들에 따라 순위가 매겨진다. 방법은 메시징 플랫폼에 의해, 메시징 플랫폼 상에서 교환된 메시지들의 답신 구조에 기초하여 대화 그래프를 생성하는 단계를 포함할 수 있고, 대화 그래프는 대화와 관련된 메시지들의 트리 데이터 구조를 포함한다. 방법은 메시징 플랫폼에 의해, 클라이언트 애플리케이션 또는 메시징 플랫폼 중 적어도 하나에 의해 생성된 신호들을 획득하는 단계, 및 메시징 플랫폼에 의해, 복수의 예측 결과들을 결정하기 위해 예측 모델들에 신호들을 입력하는 단계를 포함할 수 있다. 방법은 메시징 플랫폼에 의해, 트레이닝 데이터와 함께 입력된 기계 학습 알고리즘에 기초하여 예측 모델을 트레이닝하는 단계를 포함할 수 있다. 방법은 메시징 플랫폼에 의해, 대화 그래프 내 메시지들의 수가 임계 레벨보다 큰 것에 대한 응답으로, 복수의 메시지들로부터 후보 서브세트를 선택하는 단계를 포함할 수 있으며, 여기서 복수의 예측 결과들은 후보 서브세트의 각각의 메시지에 대해 결정된다. 방법은 메시징 플랫폼에 의해, 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 복수의 메시지들의 제1 서브세트를 송신하는 단계, 메시징 플랫폼에 의해, 클라이언트 애플리케이션으로부터 대화 그래프로부터의 부가적인 메시지들을 디스플레이하라는 요청을 수신하는 단계, 및 메시징 플랫폼에 의해, 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 복수의 메시지들의 제2 서브세트를 송신하는 단계를 포함할 수 있다. 대화 그래프는 대화 그래프의 메시지들을 표현하는 복수의 노드들의 어레인지먼트를 갖는 트리 데이터 구조를 포함할 수 있다. 방법은 메시징 플랫폼에 의해, 복수의 예측 결과들에 기초하여 복수의 메시지들 각각에 대한 인게이지먼트 값을 컴퓨팅하는 단계, 및 메시징 플랫폼에 의해, 인게이지먼트 값들을 사용하여 트리 데이터 구조의 하나 이상의 분기들을 선택하는 단계를 포함할 수 있다.[0013] According to some aspects, a method, system, and/or non-transitory computer-readable medium may include one or more of the following features (or any combination thereof). The plurality of prediction results also include a positive engagement probability and a negative engagement probability. The method may further comprise computing an engagement value for each of the plurality of messages using the mutual engagement probability, the positive engagement probability, and the negative engagement probability, wherein the plurality of messages are engaged They are ranked according to the easement values. The method may include generating, by the messaging platform, a conversation graph based on a reply structure of messages exchanged on the messaging platform, the conversation graph including a tree data structure of messages related to the conversation. The method includes obtaining, by the messaging platform, signals generated by at least one of a client application or the messaging platform, and inputting, by the messaging platform, the signals into predictive models to determine a plurality of predictive results. can do. The method may include training the predictive model based on the machine learning algorithm input with the training data by the messaging platform. The method may include selecting, by the messaging platform, a candidate subset from the plurality of messages in response to a number of messages in the conversation graph being greater than a threshold level, wherein the plurality of prediction results are of the candidate subset. It is determined for each message. The method includes sending, by the messaging platform, a first subset of the plurality of messages to be rendered on a client application according to a ranking, receiving, by the messaging platform, a request from the client application to display additional messages from the conversation graph. and sending, by the messaging platform, a second subset of the plurality of messages to be rendered on the client application according to the ranking. The dialog graph may include a tree data structure having an arrangement of a plurality of nodes representing messages of the dialog graph. The method includes, by the messaging platform, computing, by the messaging platform, an engagement value for each of a plurality of messages based on the plurality of prediction results, and, by the messaging platform, one or more of the tree data structure using the engagement values. may include selecting branches.

[0014] 일 양상에 따르면, 예측 결과들을 사용하여 메시징 플랫폼에서 대화 그래프들의 메시지들 순위를 매기기 위한 시스템은, 메시징 플랫폼 상에서 교환되는 메시지들의 답신 구조에 기초하여 대화 그래프를 생성하도록 구성된 대화 그래프 관리자 ― 대화 그래프는 대화의 메시지들의 데이터 구조를 포함함 ― , 클라이언트 애플리케이션 상의 사용자의 타임라인에서, 네트워크를 통해 메시지들의 스트림을 제공하도록 구성된 타임라인 관리자 ― 타임라인 관리자는 클라이언트 애플리케이션으로부터, 네트워크를 통해 대화 보기 요청을 수신하도록 구성됨 ― , 대화 보기 요청에 대한 응답으로, 예측 모델들을 사용하여 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하도록 구성된 인게이지먼트 예측기 ― 복수의 예측 결과들은 상호 인게이지먼트 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률 중 적어도 하나를 포함함 ― , 및 개개의 메시지에 대해 예측 결과들을 사용하여 복수의 메시지들 각각에 대한 인게이지먼트 값을 컴퓨팅하도록 구성된 인게이지먼트 스코어러를 포함한다. 타임라인 관리자는 인게이지먼트 값들을 사용하여 복수의 메시지들 순위를 매기고, 네트워크를 통해, 순위에 따라 타임라인 상에서 렌더링되도록 적어도 복수의 메시지들의 서브세트를 제공하도록 구성된다. 다른 양상들에 따르면, 대응하는 방법 및 대응하는 명령들을 저장하는 비-일시적 컴퓨터-판독 가능 매체가 제공될 수 있다.[0014] According to an aspect, a system for ranking messages of conversation graphs in a messaging platform using prediction results comprises: a conversation graph manager configured to generate a conversation graph based on a reply structure of messages exchanged on the messaging platform, the conversation graph comprising: comprising a data structure of messages of the conversation, in a timeline of a user on the client application, a timeline manager configured to provide a stream of messages over a network, the timeline manager receiving, from the client application, a request to view the conversation over the network an engagement predictor configured to determine, in response to a conversation view request, a plurality of prediction results for each of a plurality of messages of the conversation graph using the predictive models, wherein the plurality of prediction results are a mutual engagement probability , comprising at least one of a positive engagement probability and a negative engagement probability, and an engagement scorer configured to compute an engagement value for each of the plurality of messages using the prediction results for the individual message. includes The timeline manager is configured to rank the plurality of messages using the engagement values and provide, via the network, at least a subset of the plurality of messages to be rendered on the timeline according to the ranking. According to other aspects, a non-transitory computer-readable medium storing a corresponding method and corresponding instructions may be provided.

[0015] 일부 양상들에 따르면, 방법, 시스템, 및/또는 비-일시적 컴퓨터-판독 가능 매체는 위의/아래에 이어지는 특징들(또는 이들의 임의의 조합) 중 하나 이상을 포함할 수 있다. 상호 인게이지먼트 확률은 메시징 플랫폼이 대화 그래프의 메시지에 대한 답신을 수신할 것으로 예측되는 확률 값을 포함하고, 긍정적 인게이지먼트 확률은 메시징 플랫폼이 대화 그래프의 메시지와의 긍정적 사용자 인게이지먼트를 수신할 것으로 예측되는 확률 값을 포함하고, 부정적 인게이지먼트 확률은 메시징 플랫폼이 대화 그래프의 메시지와의 부정적 사용자 인게이지먼트를 수신할 것으로 예측되는 확률 값을 포함한다. 예측 모델들은 상호 인게이지먼트 모델, 긍정적 인게이지먼트 모델 및 부정적 인게이지먼트 모델을 포함한다. 인게이지먼트 예측기는 클라이언트 애플리케이션 또는 메시징 플랫폼 중 적어도 하나에 의해 생성된 신호들을 획득하고, 상호 인게이지먼트 모델, 긍정적 인게이지먼트 모델 및 부정적 인게이지먼트 모델에 신호들을 입력하여 상호 인게이지먼트 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률을 각각 획득하도록 구성된다. 시스템은 트레이닝 데이터와 함께 입력된 하나 이상의 기계 학습 알고리즘들에 기초하여 예측 모델을 주기적으로 트레이닝하도록 구성된 예측 모델 트레이너를 포함할 수 있고, 예측 모델 트레이너는 트레이닝된 예측 모델을 예측 관리자에게 제공하도록 구성된다. 시스템은 복수의 소스들로부터 후보 서브세트를 선택하도록 구성된 후보 메시지 선택기를 포함할 수 있으며, 여기서 복수의 소스들은 대화 그래프의 메시지들이 가장 최근에 게시된 것에 따라 순위가 매겨진 제1 소스 및 대화 그래프의 메시지들이 관련성 알고리즘에 따라 순위가 매겨진 제2 소스를 포함한다. 후보 서브세트는 제1 소스로부터의 다수의 메시지들 및 제2 소스로부터의 다수의 메시지들을 포함하고, 여기서 복수의 예측 결과들은 후보 서브세트의 각각의 메시지에 대해 결정된다. 대화 그래프의 데이터 구조는 대화 그래프의 메시지들을 표현하는 복수의 노드들의 어레인지먼트를 갖는 트리 데이터 구조를 포함하고, 여기서 타임라인 관리자는 인게이지먼트 값들을 사용하여 트리 데이터 구조의 분기를 선택하도록 구성된다. 인게이지먼트 스코어러는 상호 인게이지먼트 확률에 적용된 가중치가 부정적 인게이지먼트 확률에 적용된 가중치보다 높도록 상호 인게이지먼트 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률 각각에 가중치들을 적용하도록 구성된다.[0015] In accordance with some aspects, a method, system, and/or non-transitory computer-readable medium may include one or more of the features above/below (or any combination thereof). The mutual engagement probability includes a value of the probability that the messaging platform is expected to receive a reply to a message in the conversation graph, and the positive engagement probability includes the probability value that the messaging platform receives a positive user engagement with the message in the conversation graph. contains a probability value predicted to do, and the negative engagement probability includes a probability value that the messaging platform is predicted to receive a negative user engagement with a message in the conversation graph. Predictive models include a mutual engagement model, a positive engagement model, and a negative engagement model. The engagement predictor obtains signals generated by at least one of a client application or a messaging platform, and inputs the signals to a mutual engagement model, a positive engagement model and a negative engagement model to determine the mutual engagement probability; configured to obtain a positive engagement probability and a negative engagement probability, respectively. The system may include a predictive model trainer configured to periodically train the predictive model based on one or more machine learning algorithms input with the training data, the predictive model trainer configured to provide the trained predictive model to the predictive manager. . The system can include a candidate message selector configured to select a candidate subset from a plurality of sources, wherein the plurality of sources are of a first source and a conversation graph ranked according to most recently published messages in the conversation graph. The messages include a second source ranked according to a relevance algorithm. The candidate subset includes a plurality of messages from a first source and a plurality of messages from a second source, wherein a plurality of prediction results are determined for each message of the candidate subset. The data structure of the dialog graph includes a tree data structure having an arrangement of a plurality of nodes representing messages of the dialog graph, wherein the timeline manager is configured to select a branch of the tree data structure using engagement values. the engagement scorer is configured to apply weights to each of the mutual engagement probability, the positive engagement probability and the negative engagement probability such that the weight applied to the mutual engagement probability is higher than the weight applied to the negative engagement probability .

[0016] 일 양상에 따르면, 실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체에 관한 것이며, 이 실행 가능한 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금, 네트워크를 통해, 메시징 플랫폼 상에 저장된 대화 그래프의 메시지들에 대한 대화 보기 요청을 수신하고 ― 대화 그래프는 대화의 메시지들의 데이터 구조를 포함함 ― , 대화 그래프로부터 메시지들의 후보 서브세트를 선택하고, 예측 모델을 사용하여 후보 서브세트의 각각의 메시지에 대한 복수의 예측 결과들을 결정하고 ― 복수의 예측 결과들은 상호 인게이지먼트 확률을 포함하고, 상호 인게이지먼트 확률은 메시징 플랫폼이 후보 서브세트의 개개의 메시지에 대한 답신을 수신할 것으로 예측되는 확률 값을 포함함 ― , 예측 결과들을 사용하여 후보 서브세트의 각각의 메시지에 대한 인게이지먼트 값을 컴퓨팅하고, 인게이지먼트 값들을 사용하여 복수의 메시지들 순위를 매기고, 그리고 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 복수의 메시지들의 서브세트를 송신하게 하도록 구성된다. 다른 양상들에 따르면, 대응하는 시스템 및 대응하는 명령들을 저장하는 방법이 제공될 수 있다.[0016] According to one aspect, there is a non-transitory computer-readable medium having stored thereon executable instructions that, when executed by at least one processor, cause the at least one processor to cause: via a network, a messaging platform; receive a conversation view request for messages of the conversation graph stored on, the conversation graph including a data structure of the messages of the conversation, select a candidate subset of messages from the conversation graph, and use the predictive model to serve the candidate sub determine a plurality of prediction results for each message in the set, wherein the plurality of prediction results include a mutual engagement probability, wherein the mutual engagement probability causes the messaging platform to receive a reply to the respective message in the candidate subset. comprising a probability value predicted to do—compute an engagement value for each message in the candidate subset using the prediction results, rank the plurality of messages using the engagement values, and rank transmit at least a subset of the plurality of messages to be rendered on the client application according to According to other aspects, a corresponding system and method of storing corresponding instructions may be provided.

[0017] 일부 양상들에 따르면, 방법, 시스템, 및/또는 비-일시적 컴퓨터-판독 가능 매체는 위의/아래에 이어지는 특징들(또는 이들의 임의의 조합) 중 하나 이상을 포함할 수 있다. 후보 서브세트는 대화 그래프로부터의 다수의 가장 최근에 게시된 메시지들 및 다수의 상위-순위 메시지들을 포함한다. 대화 그래프의 데이터 구조는 대화 그래프의 메시지들을 표현하는 복수의 노드들의 어레인지먼트를 갖는 트리 데이터 구조를 포함한다. 동작들은 인게이지먼트 값들을 사용하여 트리 데이터 구조의 분기를 선택하는 것을 포함할 수 있다. 동작들은 트레이닝 데이터와 함께 입력된 하나 이상의 기계 학습 알고리즘들에 기초하여 예측 모델을 주기적으로 트레이닝하고 트레이닝된 예측 모델을 예측 관리자에게 제공하는 것을 포함할 수 있다.[0017] In accordance with some aspects, a method, system, and/or non-transitory computer-readable medium may include one or more of the features above/below (or any combination thereof). The candidate subset includes a number of most recently posted messages and a number of top-ranked messages from the conversation graph. The data structure of the dialog graph includes a tree data structure having an arrangement of a plurality of nodes representing messages of the dialog graph. The operations may include selecting a branch of the tree data structure using the engagement values. The operations may include periodically training the predictive model based on one or more machine learning algorithms input with the training data and providing the trained predictive model to the predictive manager.

[0018] 일 양상에 따르면, 예측 결과들을 사용하여 메시징 플랫폼에서 대화 그래프의 메시지들 순위를 매기기 위한 방법은 네트워크를 통해, 메시징 플랫폼 상에 저장된 대화 그래프의 메시지들을 리트리브하기 위한 대화 보기 요청을 수신하는 단계 및 메시징 플랫폼에 의해, 예측 모델들을 사용하여 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하는 단계를 포함한다. 결정하는 단계는 예측 모델들과 관련된 복수의 신호들을 획득하는 것 ― 복수의 신호들은 대화 그래프와 관련된 데이터 구조-관련 신호들을 포함함 ― 및 복수의 예측 결과들을 결정하기 위해 예측 모델들에 복수의 신호들을 입력하는 것을 포함할 수 있다. 방법은, 메시징 플랫폼에 의해, 예측 결과들에 기초하여 복수의 메시지들 순위를 매기는 단계, 및 메시징 플랫폼에 의해, 네트워크를 통해, 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 복수의 메시지들의 서브세트를 송신하는 단계를 포함한다. 다른 양상들에 따르면, 대응하는 시스템 및 대응하는 명령들을 저장하는 비-일시적 컴퓨터-판독 가능 매체가 제공될 수 있다.[0018] According to an aspect, a method for ranking messages in a conversation graph in a messaging platform using prediction results comprises: receiving, via a network, a conversation view request to retrieve messages of a conversation graph stored on the messaging platform; determining, by the platform, a plurality of prediction results for each of a plurality of messages of the conversation graph using the prediction models. The determining comprises obtaining a plurality of signals associated with the predictive models, the plurality of signals comprising data structure-related signals associated with the dialog graph, and sending the plurality of signals to the predictive models to determine a plurality of prediction results. may include entering The method includes ranking, by a messaging platform, a plurality of messages based on prediction results, and at least a subset of the plurality of messages to be rendered on a client application according to the ranking, via a network, by the messaging platform. sending it. According to other aspects, a non-transitory computer-readable medium storing a corresponding system and corresponding instructions may be provided.

[0019] 일부 양상들에 따르면, 방법, 시스템, 및/또는 비-일시적 컴퓨터-판독 가능 매체는 위의/아래에 이어지는 특징들(또는 이들의 임의의 조합) 중 하나 이상을 포함할 수 있다. 대화 그래프는 대화 그래프의 메시지들을 표현하는 복수의 노드들 및 노드 사이의 링크들을 표현하는 에지들을 갖는 트리 데이터 구조를 포함하고, 트리 데이터 구조는 노드들의 하나 이상의 분기들을 정의하고, 데이터 구조-관련 신호들은 대화 그래프 내에서 노드들의 수 및 분기들의 수를 표현하는 신호들을 포함한다. 데이터 구조-관련 신호들은 분기 내의 답신들의 수, 분기 내의 대화들의 수, 및 분기 또는 대화 그래프 내의 고유 작성자들의 수를 포함한다. 복수의 신호들은 클라이언트 애플리케이션의 사용자가 대화 그래프의 메시지의 작성자를 제한했는지를 표현하는 신호들을 포함한다. 복수의 신호들은 연결 그래프에서 클라이언트 애플리케이션의 사용자를 팔로우하는 사용자들의 인게이지먼트들을 포함하는 대화 그래프의 메시지들과 연관된 사용자 인게이지먼트 데이터를 표현하는 인게이지먼트 신호들을 포함한다. 복수의 신호들은 메시징 플랫폼 상의 클라이언트 애플리케이션의 사용자와 연관된 인게이지먼트 데이터를 포함하는 이력 집계 신호들을 포함한다. 복수의 신호들은 대화 그래프의 메시지들과 연관된 콘텐츠-관련 신호들을 포함한다. 적어도 복수의 신호들의 서브세트는 메시징 플랫폼 상에서 실행되는 하나 이상의 데이터 서비스들로부터 획득된다. 방법은 메시징 플랫폼에 의해, 클라이언트 애플리케이션으로부터 수신된 정보를 저장하는 클라이언트 이벤트 로그 및 메시징 플랫폼 상에서 실행되는 타임라인 관리자로부터의 정보를 저장하는 주입 로그로부터 트레이닝 데이터를 획득하는 단계, 및 메시징 플랫폼에 의해, 트레이닝 데이터와 함께 입력된 기계 학습 알고리즘에 기초하여 예측 모델을 트레이닝하는 단계를 포함할 수 있다.[0019] In accordance with some aspects, a method, system, and/or non-transitory computer-readable medium may include one or more of the features above/below (or any combination thereof). The dialog graph includes a tree data structure having a plurality of nodes representing messages of the dialog graph and edges representing links between nodes, the tree data structure defining one or more branches of the nodes, and a data structure-related signal These include signals representing the number of nodes and the number of branches within the dialog graph. Data structure-related signals include the number of replies in a branch, the number of conversations in the branch, and the number of unique authors in the branch or conversation graph. The plurality of signals includes signals indicative of whether a user of the client application has restricted a creator of a message of the conversation graph. The plurality of signals includes engagement signals representing user engagement data associated with messages of the dialog graph including engagements of users following the user of the client application in the connection graph. The plurality of signals includes historical aggregate signals comprising engagement data associated with a user of a client application on the messaging platform. The plurality of signals includes content-related signals associated with messages of the conversation graph. At least a subset of the plurality of signals is obtained from one or more data services running on the messaging platform. The method includes obtaining, by the messaging platform, training data from a client event log storing information received from a client application and an injection log storing information from a timeline manager running on the messaging platform, and by the messaging platform; It may include training the predictive model based on the machine learning algorithm input along with the training data.

[0020] 일 양상에 따르면, 예측 결과들을 사용하여 메시징 플랫폼에서 대화 그래프들의 메시지들 순위를 매기기 위한 시스템은, 메시징 플랫폼 상에서 교환되는 메시지들의 답신 구조에 기초하여 대화 그래프를 생성하도록 구성된 대화 그래프 관리자 ― 대화 그래프는 대화의 메시지들의 데이터 구조를 포함함 ― , 클라이언트 애플리케이션 상의 사용자의 타임라인에서, 네트워크를 통해 메시지들의 스트림을 제공하도록 구성된 타임라인 관리자 ― 타임라인 관리자는 클라이언트 애플리케이션으로부터, 네트워크를 통해 대화 보기 요청을 수신하도록 구성됨 ― , 및 대화 보기 요청에 대한 응답으로, 예측 모델들을 사용하여 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하도록 구성된 인게이지먼트 예측기를 포함한다. 인게이지먼트 예측기는 메시징 플랫폼 상에 저장된 하나 이상의 데이터 서비스들로부터 예측 모델들과 관련된 복수의 신호들을 획득하도록 구성되고, 인게이지먼트 예측기는 복수의 예측 결과들을 결정하기 위해 예측 모델들에 복수의 신호들을 입력하도록 구성된다. 시스템은 개개의 메시지들에 대한 예측 결과들을 사용하여 복수의 메시지들 각각에 대한 인게이지먼트 값을 컴퓨팅하도록 구성된 인게이지먼트 스코어러를 포함하고, 여기서 타임라인 관리자는 인게이지먼트 값들을 사용하여 복수의 메시지들 순위를 매기고; 그리고 네트워크를 통해, 순위에 따라 타임라인 상에서 렌더링되도록 적어도 복수의 메시지들의 서브세트를 제공하도록 구성된다. 다른 양상들에 따르면, 대응하는 방법 및 대응하는 명령들을 저장하는 비-일시적 컴퓨터-판독 가능 매체가 제공될 수 있다.[0020] According to an aspect, a system for ranking messages of conversation graphs in a messaging platform using prediction results comprises: a conversation graph manager configured to generate a conversation graph based on a reply structure of messages exchanged on the messaging platform, the conversation graph comprising: comprising a data structure of messages of the conversation, in a timeline of a user on the client application, a timeline manager configured to provide a stream of messages over a network, the timeline manager receiving, from the client application, a request to view the conversation over the network and an engagement predictor configured to determine, in response to the conversation view request, a plurality of prediction results for each of a plurality of messages of the conversation graph using the predictive models. The engagement predictor is configured to obtain a plurality of signals associated with the predictive models from one or more data services stored on the messaging platform, wherein the engagement predictor sends the plurality of signals to the predictive models to determine a plurality of predictive results. are configured to input The system includes an engagement scorer configured to compute an engagement value for each of a plurality of messages using the prediction results for the individual messages, wherein the timeline manager uses the engagement values to compute a plurality of engagement values. rank messages; and provide, via the network, at least a subset of the plurality of messages to be rendered on the timeline according to the ranking. According to other aspects, a non-transitory computer-readable medium storing a corresponding method and corresponding instructions may be provided.

[0021] 일부 양상들에 따르면, 방법, 시스템, 및/또는 비-일시적 컴퓨터-판독 가능 매체는 위의/아래에 이어지는 특징들(또는 이들의 임의의 조합) 중 하나 이상을 포함할 수 있다. 복수의 신호들은 대화 그래프와 관련된 데이터 구조-관련 신호들을 포함한다. 인게이지먼트 예측기는 제1 데이터 서비스로부터 하나 이상의 제1 신호들을 획득하고 제2 데이터 서비스로부터 하나 이상의 제2 신호들을 획득하도록 구성된다. 복수의 신호들은 적어도 하나의 건강-관련 신호들, 인게이지먼트 신호들, 소셜 그래프 신호들, 이력 집계 신호들 또는 콘텐츠-관련 신호들을 포함한다. 예측 모델들은 상호 인게이지먼트 모델, 긍정적 인게이지먼트 모델 및 부정적 인게이지먼트 모델을 포함하고, 인게이지먼트 예측기는 상호 인게이지먼트 모델, 긍정적 인게이지먼트 모델 및 부정적 인게이지먼트 모델에 신호들을 입력하여 상호 인게이지먼트 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률을 각각 획득하도록 구성된다. 시스템은 트레이닝 데이터와 함께 입력된 하나 이상의 기계 학습 알고리즘들에 기초하여 예측 모델을 주기적으로 트레이닝하도록 구성된 예측 모델 트레이너를 포함하고, 예측 모델 트레이너는 트레이닝된 예측 모델을 예측 관리자에게 제공하도록 구성된다. 복수의 신호들은 클라이언트 애플리케이션에 의해 생성된 신호들 및 메시징 플랫폼에 의해 생성된 신호들을 포함한다. 복수의 신호들은 유사성 신호들을 포함한다.[0021] In accordance with some aspects, a method, system, and/or non-transitory computer-readable medium may include one or more of the features above/below (or any combination thereof). The plurality of signals includes data structure-related signals associated with the dialog graph. The engagement predictor is configured to obtain one or more first signals from a first data service and obtain one or more second signals from a second data service. The plurality of signals includes at least one of health-related signals, engagement signals, social graph signals, historical aggregation signals, or content-related signals. The predictive models include a mutual engagement model, a positive engagement model and a negative engagement model, and the engagement predictor inputs signals to the mutual engagement model, positive engagement model and negative engagement model. to obtain a mutual engagement probability, a positive engagement probability, and a negative engagement probability, respectively. The system includes a predictive model trainer configured to periodically train the predictive model based on one or more machine learning algorithms input with the training data, the predictive model trainer configured to provide the trained predictive model to the predictive manager. The plurality of signals includes signals generated by a client application and signals generated by a messaging platform. The plurality of signals includes similarity signals.

[0022] 일 양상에 따르면, 실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체에 관한 것이며, 이 실행 가능한 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금, 네트워크를 통해, 메시징 플랫폼 상에 저장된 대화 그래프의 메시지들에 대한 대화 보기 요청을 수신하고 ― 대화 그래프는 대화의 메시지들의 데이터 구조를 포함함 ― ; 대화 그래프로부터 메시지들의 후보 서브세트를 선택하고, 예측 모델을 사용하여 후보 서브세트의 각각의 메시지에 대한 복수의 예측 결과들을 결정하고 ― 이는 대화 그래프와 관련된 데이터 구조-관련 신호들을 포함하는 복수의 신호들을 획득하는 것 그리고 복수의 예측 결과들을 결정하기 위해 예측 모델들에 복수의 신호들을 입력하는 것을 포함함 ― , 예측 결과들을 사용하여 후보 서브세트의 각각의 메시지에 대한 인게이지먼트 값을 컴퓨팅하고, 인게이지먼트 값들을 사용하여 복수의 메시지들 순위를 매기고, 그리고 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 복수의 메시지들의 서브세트를 송신하게 하도록 구성된다. 다른 양상들에 따르면, 대응하는 시스템 및 방법이 제공될 수 있다.[0022] According to one aspect, there is a non-transitory computer-readable medium having stored thereon executable instructions that, when executed by at least one processor, cause the at least one processor to cause: via a network, a messaging platform; receive a conversation view request for messages of the conversation graph stored on the dialog graph, wherein the conversation graph includes a data structure of messages of the conversation; select a candidate subset of messages from the conversation graph, and use the predictive model to determine a plurality of prediction results for each message in the candidate subset - a plurality of signals comprising data structure-related signals associated with the conversation graph and inputting a plurality of signals to the predictive models to determine a plurality of prediction results, using the prediction results to compute an engagement value for each message in the candidate subset; and rank the plurality of messages using the engagement values, and transmit at least a subset of the plurality of messages to be rendered on the client application according to the ranking. According to other aspects, a corresponding system and method may be provided.

[0023] 일부 양상들에 따르면, 방법, 시스템, 및/또는 비-일시적 컴퓨터-판독 가능 매체는 위의/아래에 이어지는 특징들(또는 이들의 임의의 조합) 중 하나 이상을 포함할 수 있다. 동작들은 클라이언트 애플리케이션으로부터 수신된 정보를 저장하는 클라이언트 이벤트 로그 및 메시징 플랫폼 상에서 실행되는 타임라인 관리자로부터의 정보를 저장하는 주입 로그로부터 트레이닝 데이터를 획득하는 것, 그리고 트레이닝 데이터와 함께 입력된 기계 학습 알고리즘에 기초하여 예측 모델을 트레이닝하는 것을 포함할 수 있다. 복수의 신호들은 적어도 하나의 건강-관련 신호들, 인게이지먼트 신호들, 소셜 그래프 신호들, 이력 집계 신호들 또는 콘텐츠-관련 신호들을 포함한다.[0023] In accordance with some aspects, a method, system, and/or non-transitory computer-readable medium may include one or more of the features above/below (or any combination thereof). The operations include obtaining training data from a client event log, which stores information received from a client application, and an injection log, which stores information from a timeline manager running on the messaging platform, and a machine learning algorithm input with the training data. training a predictive model based on the The plurality of signals includes at least one of health-related signals, engagement signals, social graph signals, historical aggregation signals, or content-related signals.

[0024] 일 양상에 따르면, 메시징 플랫폼에서 대화 그래프들의 메시지들 순위를 매기기 위한 방법은, 메시징 플랫폼에 의해, 대화 그래프의 메시지들의 콘텐츠 품질에 기초하여 복수의 섹션들로 메시지들을 분류하는 단계를 포함하고, 여기서 복수의 섹션들은 제1 섹션 및 제2 섹션을 포함한다. 제1 섹션은 제2 섹션의 메시지들보다 더 높은 품질로서 결정된 대화 그래프로부터의 메시지들을 갖는다. 방법은 메시징 플랫폼에 의해, 예측 모델들을 사용하여 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하는 단계, 메시징 플랫폼에 의해, 제1 섹션의 메시지들에 대해 예측 결과들에 기초하여 제1 섹션의 메시지들 순위를 매기는 단계, 및 메시징 플랫폼에 의해, 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 제1 섹션의 메시지들의 서브세트를 송신하는 단계를 포함한다. 다른 양상들에 따르면, 대응하는 시스템 및 대응하는 명령들을 저장하는 비-일시적 컴퓨터-판독 가능 매체가 제공될 수 있다.[0024] According to an aspect, a method for ranking messages in conversation graphs in a messaging platform includes classifying, by the messaging platform, messages into a plurality of sections based on content quality of messages in the conversation graph, wherein The plurality of sections includes a first section and a second section. The first section has messages from the conversation graph determined to be of higher quality than the messages of the second section. The method includes, by the messaging platform, determining, by the messaging platform, a plurality of predictive results for each of a plurality of messages of the conversation graph using the predictive models, based on the predictive results for the messages of the first section, by the messaging platform ranking the messages of the first section, and transmitting, by the messaging platform, at least a subset of the messages of the first section to be rendered on the client application according to the ranking. According to other aspects, a non-transitory computer-readable medium storing a corresponding system and corresponding instructions may be provided.

[0025] 일부 양상들에 따르면, 방법, 시스템, 및/또는 비-일시적 컴퓨터-판독 가능 매체는 위의/아래에 이어지는 특징들(또는 이들의 임의의 조합) 중 하나 이상을 포함할 수 있다. 방법은 메시징 플랫폼에 의해, 제2 섹션의 메시지들에 대해 복수의 예측 결과들에 기초하여 제2 섹션의 메시지들 순위를 매기는 단계를 포함한다. 일부 예들에서, 방법은 메시징 플랫폼에 의해, 클라이언트 애플리케이션 상에 대화 그래프의 부가적인 메시지들을 렌더링하라는 요청을 수신하는 단계, 및 메시징 플랫폼에 의해, 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 제2 섹션의 메시지들의 서브세트를 송신하는 단계를 포함한다. 분류하는 단계는 대화 그래프의 메시지의 메시지 식별자를 수신하는 단계 및 분류 모델을 사용하여 메시지가 제1 품질 섹션에 대응하는 콘텐츠 품질을 갖는다고 결정하는 단계를 포함할 수 있다. 방법은 메시지를 포함하는 대화 그래프의 분기를 제1 섹션에 할당하는 단계를 포함할 수 있다. 방법은 개개의 메시지의 복수의 예측 결과들을 사용하여 대화 그래프의 각각의 메시지에 대한 인게이지먼트 값을 컴퓨팅하는 단계를 포함할 수 있고, 제1 품질 섹션의 메시지들은 제1 품질 섹션의 메시지들의 인게이지먼트 값들에 따라 순위가 매겨진다. 예측 결과들은 상호 인게이지먼트 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률을 포함한다. 방법은 메시징 플랫폼에 의해, 메시징 플랫폼 상에서 교환된 메시지들의 답신 구조에 기초하여 대화 그래프를 생성하는 단계를 포함할 수 있고, 대화 그래프는 대화와 관련된 메시지들의 트리 데이터 구조를 포함한다. 복수의 예측 모델들은 상호 인게이지먼트 모델, 긍정적 인게이지먼트 모델 및 부정적 인게이지먼트 모델을 포함하고, 상호 인게이지먼트 모델, 긍정적 인게이지먼트 모델 또는 부정적 인게이지먼트 모델 중 적어도 하나는 신경망을 포함한다.[0025] In accordance with some aspects, a method, system, and/or non-transitory computer-readable medium may include one or more of the features above/below (or any combination thereof). The method includes ranking, by the messaging platform, the messages of the second section based on a plurality of prediction results for the messages of the second section. In some examples, the method includes receiving, by the messaging platform, a request to render additional messages of the conversation graph on the client application, and the message of at least the second section to be rendered by the messaging platform on the client application according to the ranking. transmitting a subset of Classifying may include receiving a message identifier of the message of the conversation graph and determining that the message has a content quality corresponding to the first quality section using the classification model. The method may include assigning a branch of the conversation graph comprising the message to the first section. The method may include computing an engagement value for each message of the conversation graph using the plurality of prediction results of the respective message, wherein the messages of the first quality section are engaged of the messages of the first quality section. They are ranked according to the easement values. The prediction results include a mutual engagement probability, a positive engagement probability and a negative engagement probability. The method may include generating, by the messaging platform, a conversation graph based on a reply structure of messages exchanged on the messaging platform, the conversation graph including a tree data structure of messages related to the conversation. The plurality of predictive models includes a mutual engagement model, a positive engagement model, and a negative engagement model, and at least one of the mutual engagement model, the positive engagement model, or the negative engagement model includes a neural network. do.

[0026] 일 양상에 따르면, 메시징 플랫폼에서 대화 그래프들의 메시지들 순위를 매기기 위한 시스템은, 메시징 플랫폼 상에서 교환되는 메시지들의 답신 구조에 기초하여 대화 그래프를 생성하도록 구성된 대화 그래프 관리자 ― 대화 그래프는 대화의 메시지들의 데이터 구조를 포함함 ― , 클라이언트 애플리케이션 상의 사용자의 타임라인에서, 네트워크를 통해 메시지들의 스트림을 제공하도록 구성된 타임라인 관리자 ― 타임라인 관리자는 클라이언트 애플리케이션으로부터, 네트워크를 통해 대화 보기 요청을 수신하도록 구성됨 ― , 및 대화 그래프의 메시지들의 콘텐츠 품질에 기초하여 복수의 섹션들로 메시지들을 분류하도록 구성된 콘텐츠 품질 분류기를 포함하고, 복수의 섹션들은 제1 섹션 및 제2 섹션을 포함한다. 제1 섹션은 제2 섹션의 메시지들보다 더 높은 품질로서 결정된 대화 그래프로부터의 메시지들을 갖는다. 시스템은 예측 모델들을 사용하여 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하도록 구성된 인게이지먼트 예측기, 및 개개의 메시지에 대해 복수의 예측 결과들을 사용하여 복수의 메시지들 각각에 대한 인게이지먼트 값을 컴퓨팅하도록 구성된 인게이지먼트 스코어러를 포함한다. 타임라인 관리자는 제1 섹션의 인게이지먼트 값들을 사용하여 제1 섹션의 메시지들 순위를 매기고, 순위에 따라 타임라인 상에서 렌더링되도록 적어도 제1 섹션의 메시지들의 서브세트를 네트워크를 통해 제공하도록 구성된다. 다른 양상들에 따르면, 대응하는 방법 및 대응하는 명령들을 저장하는 비-일시적 컴퓨터-판독 가능 매체가 제공될 수 있다.[0026] According to an aspect, a system for ranking messages of conversation graphs in a messaging platform comprises a conversation graph manager configured to generate a conversation graph based on a reply structure of messages exchanged on the messaging platform, the conversation graph comprising data of messages of the conversation. comprising: a timeline manager configured to provide a stream of messages over a network, in a timeline of a user on the client application, the timeline manager configured to receive, via the network, a conversation view request from the client application, and and a content quality classifier configured to classify the messages into a plurality of sections based on content quality of the messages of the conversation graph, the plurality of sections including a first section and a second section. The first section has messages from the conversation graph determined to be of higher quality than the messages of the second section. The system includes an engagement predictor configured to determine a plurality of prediction results for each of a plurality of messages of the conversation graph using the prediction models, and a plurality of prediction results for each of the plurality of messages using the plurality of prediction results for the respective message. and an engagement scorer configured to compute an engagement value. the timeline manager is configured to rank the messages of the first section using the engagement values of the first section, and provide at least a subset of the messages of the first section over the network to be rendered on the timeline according to the ranking . According to other aspects, a non-transitory computer-readable medium storing a corresponding method and corresponding instructions may be provided.

[0027] 일부 양상들에 따르면, 방법, 시스템, 및/또는 비-일시적 컴퓨터-판독 가능 매체는 위의/아래에 이어지는 특징들(또는 이들의 임의의 조합) 중 하나 이상을 포함할 수 있다. 인게이지먼트 예측기는 메시징 플랫폼 상에 저장된 하나 이상의 데이터 서비스들로부터 예측 모델들과 관련된 복수의 신호들을 획득하도록 구성되고, 인게이지먼트 예측기는 복수의 예측 결과들을 결정하기 위해 예측 모델들에 복수의 신호들을 입력하도록 구성된다. 복수의 신호들은 대화 그래프와 관련된 데이터 구조-관련 신호들을 포함한다. 타임라인 관리자는 제2 섹션의 인게이지먼트 값들을 사용하여 제2 섹션의 메시지들 순위를 별개로 매기도록 구성된다. 콘텐츠 품질 분류기는 대화 그래프의 메시지의 메시지 식별자를 수신하고, 분류 모델을 사용하여 메시지가 제1 품질 섹션에 대응하는 콘텐츠 품질을 갖는다고 결정하도록 구성된다. 복수의 예측 결과들은 상호 인게이지먼트 확률을 포함하고, 상호 인게이지먼트 확률은 메시징 플랫폼이 대화 그래프의 개개의 메시지에 대한 답신을 수신할 것으로 예측되는 확률 값을 포함한다. 시스템은 트레이닝 데이터와 함께 입력된 하나 이상의 기계 학습 알고리즘들에 기초하여 예측 모델을 주기적으로 트레이닝하도록 구성된 예측 모델 트레이너를 포함할 수 있고, 예측 모델 트레이너는 트레이닝된 예측 모델을 예측 관리자에게 제공하도록 구성된다.[0027] In accordance with some aspects, a method, system, and/or non-transitory computer-readable medium may include one or more of the features above/below (or any combination thereof). The engagement predictor is configured to obtain a plurality of signals associated with the predictive models from one or more data services stored on the messaging platform, wherein the engagement predictor sends the plurality of signals to the predictive models to determine a plurality of predictive results. are configured to input The plurality of signals includes data structure-related signals associated with the dialog graph. The timeline manager is configured to separately rank the messages of the second section using the engagement values of the second section. The content quality classifier is configured to receive a message identifier of the message of the conversation graph, and determine that the message has a content quality corresponding to the first quality section using the classification model. The plurality of prediction results includes a mutual engagement probability, wherein the mutual engagement probability includes a probability value at which the messaging platform is predicted to receive a reply to an individual message of the conversation graph. The system may include a predictive model trainer configured to periodically train the predictive model based on one or more machine learning algorithms input with the training data, the predictive model trainer configured to provide the trained predictive model to the predictive manager. .

[0028] 일 양상에 따르면, 실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체에 관한 것이며, 이 실행 가능한 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금, 분류 모델을 사용하여, 대화 그래프의 메시지들의 콘텐츠 품질에 기초하여 복수의 섹션들로 메시지들을 분류하고 ― 복수의 섹션들은 제1 섹션 및 제2 섹션을 포함하고, 제1 섹션은 제2 섹션의 메시지들보다 더 높은 품질로서 결정된 대화 그래프로부터의 메시지들을 가짐 ― ; 하나 이상의 예측 모델들을 사용하여, 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하고 ― 복수의 예측 결과들은 상호 인게이지먼트 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률을 포함함 ― ; 제1 섹션의 메시지들에 대해 복수의 예측 결과들에 기초하여 제1 섹션의 메시지들 순위를 매기고, 제2 섹션의 메시지들에 대해 복수의 예측 결과들에 기초하여 제2 섹션의 메시지들 순위를 매기고, 그리고 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 제1 품질 섹션의 메시지들의 서브세트를 송신하게 하도록 구성된다. 다른 양상들에 따르면, 대응하는 시스템 및 방법이 제공될 수 있다.[0028] According to one aspect, there is a non-transitory computer-readable medium having stored thereon executable instructions, which, when executed by at least one processor, cause the at least one processor to: classify the messages into a plurality of sections based on the content quality of the messages of the conversation graph, the plurality of sections comprising a first section and a second section, the first section being of higher quality than the messages of the second section with messages from the determined dialog graph; determine a plurality of prediction results for each of a plurality of messages of the conversation graph, using the one or more prediction models, the plurality of prediction results including a mutual engagement probability, a positive engagement probability, and a negative engagement probability Ham ― ; rank the messages in the first section based on the plurality of prediction results for the messages in the first section, and rank the messages in the second section based on the plurality of prediction results for the messages in the second section and transmit at least a subset of the messages of the first quality section to be rendered on the client application according to the ranking. According to other aspects, a corresponding system and method may be provided.

[0029] 일부 양상들에 따르면, 방법, 시스템, 및/또는 비-일시적 컴퓨터-판독 가능 매체는 위의/아래에 이어지는 특징들(또는 이들의 임의의 조합) 중 하나 이상을 포함할 수 있다. 동작들은 클라이언트 애플리케이션으로부터 수신된 정보를 저장하는 클라이언트 이벤트 로그 및 메시징 플랫폼 상에서 실행되는 타임라인 관리자로부터의 정보를 저장하는 주입 로그로부터 트레이닝 데이터를 획득하는 것, 그리고 트레이닝 데이터와 함께 입력된 기계 학습 알고리즘에 기초하여 예측 모델들을 트레이닝하는 것을 포함한다. 동작들은 대화 그래프의 제1 메시지의 메시지 식별자를 수신하는 것, 분류 모델을 사용하여, 제1 메시지가 제1 섹션에 대응하는 콘텐츠 품질을 갖는다고 결정하는 것, 대화 그래프의 제2 메시지의 메시지 식별자를 수신하는 것, 그리고 분류 모델을 사용하여, 제2 메시지가 제2 섹션에 대응하는 콘텐츠 품질을 갖는다고 결정하는 것을 포함할 수 있다. 동작들은 클라이언트 애플리케이션 상에 대화 그래프의 부가적인 메시지들을 렌더링하라는 요청을 수신하는 것 그리고 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 제2 섹션의 메시지들의 서브세트를 송신하는 것을 포함할 수 있다. 이들 및 다른 특징들은 상세한 개시내용에서 추가로 논의된다.[0029] In accordance with some aspects, a method, system, and/or non-transitory computer-readable medium may include one or more of the features above/below (or any combination thereof). The operations include obtaining training data from a client event log that stores information received from the client application and an injection log that stores information from a timeline manager running on the messaging platform, and a machine learning algorithm input with the training data. training predictive models based on The operations include receiving a message identifier of a first message of the conversation graph, determining, using the classification model, that the first message has a content quality corresponding to the first section, a message identifier of a second message of the conversation graph and determining, using the classification model, that the second message has a content quality corresponding to the second section. The operations may include receiving a request to render additional messages of the conversation graph on the client application and transmitting at least a subset of the messages of the second section to be rendered on the client application according to the ranking. These and other features are further discussed in the detailed disclosure.

[0030] 도 1a는 일 양상에 따라 예측 모델들로부터의 예측 결과들을 사용하여 대화 그래프들의 메시지들 순위를 매기기 위한 메시징 시스템을 예시한다.
[0031] 도 1b는 일 양상에 따라 메시징 시스템의 후보 메시지 선택기를 예시한다.
[0032] 도 1c는 일 양상에 따라 예측 결과들을 결정하기 위해 사용되는 신호들의 예들을 예시한다.
[0033] 도 1d는 일 양상에 따른 메시징 시스템의 예측 관리자를 예시한다.
[0034] 도 1e는 일 양상에 따라 예측 모델들에 대한 트레이닝 데이터를 생성하는 예를 예시한다.
[0035] 도 1f는 일 양상에 따라 콘텐츠 품질 분류기를 포함하는 2-레벨 순위매김 메커니즘의 예를 예시한다.
[0036] 도 2는 일 양상에 따라 신경망으로서의 예측 모델의 예를 예시한다.
[0037] 도 3은 일 양상에 따라 메시징 시스템의 예시적인 동작들을 도시하는 흐름도를 예시한다.
[0038] 도 4는 일 양상에 따라 메시징 시스템의 예시적인 동작들을 도시하는 흐름도를 예시한다.
[0039] 도 5는 일 양상에 따라 메시징 시스템의 예시적인 동작들을 도시하는 흐름도를 예시한다.
1A illustrates a messaging system for ranking messages in conversation graphs using prediction results from predictive models according to an aspect.
1B illustrates a candidate message selector of a messaging system in accordance with an aspect.
1C illustrates examples of signals used to determine prediction results according to an aspect.
1D illustrates a predictive manager of a messaging system according to an aspect.
1E illustrates an example of generating training data for predictive models according to an aspect.
1F illustrates an example of a two-level ranking mechanism including a content quality classifier according to an aspect.
2 illustrates an example of a predictive model as a neural network according to an aspect.
3 illustrates a flow diagram illustrating example operations of a messaging system in accordance with an aspect;
4 illustrates a flow diagram illustrating example operations of a messaging system in accordance with an aspect.
5 illustrates a flow diagram illustrating example operations of a messaging system in accordance with an aspect.

[0040] 도 1a 내지 도 1e는 일 양상에 따라 예측 모델들(112)로부터의 예측 결과들(118)을 사용하여 대화 그래프들(126)의 메시지들 순위를 매기기 위한 메시징 시스템(100)을 예시한다. 메시징 시스템(100)은 일 양상에 따라 서버 컴퓨터(102)에 의해 실행 가능한 메시징 플랫폼(104), 및 컴퓨팅 디바이스(152)에 의해 실행 가능한 클라이언트 애플리케이션(154)을 포함한다. 클라이언트 애플리케이션(154)은 메시징 플랫폼(104)과 통신하여, 네트워크(150)를 통해 메시징 플랫폼(104)의 다른 사용자들로(그리고 이들로부터) 메시지들을 송신(및 수신)한다.[0040] 1A-1E illustrate a messaging system 100 for ranking messages in conversation graphs 126 using prediction results 118 from predictive models 112 in accordance with an aspect. The messaging system 100 includes a messaging platform 104 executable by a server computer 102 , and a client application 154 executable by a computing device 152 , in accordance with one aspect. The client application 154 communicates with the messaging platform 104 to send (and receive) messages to (and from) other users of the messaging platform 104 over the network 150 .

[0041] 클라이언트 애플리케이션(154)은 사용자들이 메시지들을 게시하고 메시지들과 상호작용하는 소셜 미디어 메시징 애플리케이션일 수 있다. 일부 예들에서, 클라이언트 애플리케이션(154)은 컴퓨팅 디바이스(152)의 운영 체제 상에서 실행되는 네이티브(native) 애플리케이션이거나 또는 컴퓨팅 디바이스(152)의 브라우저-기반 애플리케이션과 함께 서버 컴퓨터(102)(또는 다른 서버) 상에서 실행되는 웹-기반 애플리케이션일 수 있다. 컴퓨팅 디바이스(152)는 클라이언트 애플리케이션(154) 및 메시징 플랫폼(104)이 서로 통신하도록 허용하는 방식으로 임의의 유형의 네트워크 연결들 및/또는 API(application programming interface)들을 사용하여 네트워크(150)를 통해 메시징 플랫폼(104)에 액세스할 수 있다.[0041] The client application 154 may be a social media messaging application through which users post and interact with messages. In some examples, client application 154 is a native application running on the operating system of computing device 152 or server computer 102 (or other server) along with a browser-based application of computing device 152 . It may be a web-based application running on it. Computing device 152 may be configured over network 150 using any type of network connections and/or application programming interfaces (APIs) in a manner that allows client application 154 and messaging platform 104 to communicate with each other. A messaging platform 104 may be accessed.

[0042] 컴퓨팅 디바이스(152)는 모바일 컴퓨팅 디바이스(예컨대, 스마트 폰, PDA, 태블릿, 또는 랩톱 컴퓨터) 또는 비-모바일 컴퓨팅 디바이스(예컨대, 데스크톱 컴퓨팅 디바이스)일 수 있다. 컴퓨팅 디바이스(152)는 또한 예컨대, 컴퓨팅 디바이스(152)가 셀룰러 네트워크와 통신할 수 있게 하는 모바일 네트워크 인터페이스, 컴퓨팅 디바이스(152)가 Wi-Fi 기지국과 통신할 수 있게 하는 Wi-Fi 네트워크 인터페이스, 컴퓨팅 디바이스(152)가 다른 블루투스 디바이스들과 통신할 수 있게 하는 블루투스 네트워크 인터페이스, 및/또는 컴퓨팅 디바이스(152)가 네트워크(150)에 액세스하는 것을 가능하게 하는 이더넷 연결 또는 다른 유선 연결과 같은 다양한 네트워크 인터페이스 회로를 포함한다.[0042] Computing device 152 may be a mobile computing device (eg, a smart phone, PDA, tablet, or laptop computer) or a non-mobile computing device (eg, a desktop computing device). Computing device 152 may also include, for example, a mobile network interface that enables computing device 152 to communicate with a cellular network, a Wi-Fi network interface that enables computing device 152 to communicate with a Wi-Fi base station, computing Various network interfaces, such as a Bluetooth network interface that enables device 152 to communicate with other Bluetooth devices, and/or an Ethernet connection or other wired connection that enables computing device 152 to access network 150 . includes a circuit.

[0043] 서버 컴퓨터(102)는 단일 컴퓨팅 디바이스일 수 있거나 워크로드 및 자원들을 공유하기 위해 통신 가능하게 연결된 둘 이상의 분산 컴퓨팅 디바이스들의 표현일 수 있다. 서버 컴퓨터(102)는 적어도 하나의 프로세서, 및 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금, 본원에서 논의된 동작들을 수행하게 하는 실행 가능 명령들을 저장하는 비-일시적 컴퓨터-판독 가능 매체를 포함할 수 있다.[0043] Server computer 102 may be a single computing device or may be a representation of two or more distributed computing devices communicatively coupled to share workloads and resources. The server computer 102 is at least one processor and non-transitory computer-readable storing executable instructions that, when executed by the at least one processor, cause the at least one processor to perform the operations discussed herein. media may be included.

[0044] 메시징 플랫폼(104)은 사용자 디바이스들(이들 중 하나가 컴퓨팅 디바이스(152)로서 도시됨) 간의 통신(예컨대, 실시간 통신)을 용이하게 하기 위한 컴퓨팅 플랫폼이다. 메시징 플랫폼(104)은 개인들, 기업들 및/또는 엔티티들(예컨대, 가명 계정들, 신규 계정들 등)의 수백만 개의 계정들(141)을 저장할 수 있다. 각각의 계정(141)의 하나 이상의 사용자들은 메시징 플랫폼(104)을 사용하여 메시징 플랫폼(104) 내부 및/또는 외부의 다른 계정들(141)에 메시지를 전송할 수 있다. 일부 예들에서, 메시징 플랫폼(104)은 예컨대, 최소 지연으로 다른 사용자들과 대화하고 동시 세션들 동안 하나 이상의 다른 사용자들과 대화를 수행하기 위해 사용자들이 "실시간"으로 통신하는 것을 가능하게 할 수 있다. 다시 말해서, 메시징 플랫폼(104)은 사용자가 메시지들을 브로드캐스트하는 것을 허용할 수 있고 사용자들 간의 라이브 대화를 용이하게 하기 위해 합리적 시간 프레임(예컨대, 2초 미만) 내에 하나 이상의 다른 사용자들에게 메시지들을 디스플레이할 수 있다. 일부 예들에서, 메시지의 수신자들은 메시지를 브로드캐스트하는 사용자의 계정과의 미리 정의된 그래프 관계를 연결 그래프(134)에 가질 수 있다.[0044] Messaging platform 104 is a computing platform for facilitating communication (eg, real-time communication) between user devices, one of which is shown as computing device 152 . The messaging platform 104 may store millions of accounts 141 of individuals, businesses, and/or entities (eg, pseudonymous accounts, new accounts, etc.). One or more users of each account 141 may use the messaging platform 104 to send messages to other accounts 141 within and/or external to the messaging platform 104 . In some examples, the messaging platform 104 may enable users to communicate “in real time,” eg, to chat with other users with minimal delay and to conduct a conversation with one or more other users during concurrent sessions. . In other words, the messaging platform 104 may allow a user to broadcast messages and send messages to one or more other users within a reasonable time frame (eg, less than two seconds) to facilitate live conversations between users. can be displayed. In some examples, recipients of the message may have a predefined graph relationship in the connection graph 134 with the account of the user broadcasting the message.

[0045] 연결 그래프(134)는 메시징 플랫폼(104) 내 어떤 계정들(141)이 특정 계정(141)과 연관(예컨대, 특정 계정(141)을 팔로잉하고, 그와 친구사이이고, 그를 구독 등을 함)되고, 이에 따라 특정 계정(141)으로부터 메시지들을 수신하도록 구독되는지를 표시하는 데이터 구조를 포함한다. 예컨대, 연결 그래프(134)는 제1 계정을 제2 계정과 링크할 수 있으며, 이는 제1 계정이 제2 계정과 관계가 있음을 표시한다. 제2 계정의 사용자는 제1 계정의 사용자에 의해 메시징 플랫폼(104) 상에 게시된 메시지들을 볼 수 있다(그리고/또는 그 반대의 경우도 마찬가지임). 관계들은 단방향(예컨대, 팔로워/팔로잉 대상(followee)) 및/또는 양방향(예컨대, 프랜드쉽(friendship))을 포함할 수 있다. 메시지들은 특정 메시징 시스템 또는 프로토콜에 의해 제한될 수 있는 다양한 길이들 중 임의의 길이일 수 있다.[0045] The connection graph 134 shows that certain accounts 141 in the messaging platform 104 are associated with a particular account 141 (eg, follow, be friends with, subscribe to, and the like, the particular account 141 ). ) and thus includes a data structure indicating whether it is subscribed to receive messages from a particular account 141 . For example, the connection graph 134 may link a first account with a second account, indicating that the first account is related to a second account. A user of the second account can view messages posted on the messaging platform 104 by the user of the first account (and/or vice versa). Relationships may include one-way (eg, follower/followee) and/or two-way (eg, friendship). Messages may be of any of a variety of lengths, which may be limited by a particular messaging system or protocol.

[0046] 일부 예들에서, 특정 사용자에 의해 작성된 메시지들을 보는 데 관심이 있는 사용자들은 특정 사용자를 팔로우하도록 선택할 수 있다. 제1 사용자는, 제1 사용자가 팔로우하고 싶은 사용자로서 제2 사용자를 식별함으로써 제2 사용자를 팔로우할 수 있다. 제1 사용자가 제2 사용자를 팔로우하고 싶다고 표시한 후, 연결 그래프(134)는 관계를 반영하도록 업데이트되고, 제1 사용자에게는 제2 사용자에 의해 작성된 메시지들이 제공될 것이다. 사용자들은 다수의 사용자들을 팔로우하도록 선택할 수 있다. 또한, 사용자는 메시지들에 응답하고 그리하여 서로 대화할 수 있다. 또한, 사용자들은 자신의 팔로워들과 메시지를 공유하거나 인게이지먼트가 자신의 팔로워들과 공유되는 메시지를 즐겨찾기 하기(또는 "좋아요 하기(liking)")하는 것과 같이 메시지들에 인게이징(engage)할 수 있다.[0046] In some examples, users interested in viewing messages created by a particular user may choose to follow the particular user. The first user may follow the second user by identifying the second user as a user the first user wants to follow. After the first user indicates that he wants to follow the second user, the connection graph 134 will be updated to reflect the relationship, and the first user will be provided with messages created by the second user. Users may choose to follow multiple users. In addition, users can respond to messages and thus interact with each other. Users can also engage with messages, such as by sharing the message with their followers or by liking (or "like") the message the engagement is shared with their followers. can do.

[0047] 메시징 플랫폼(104) 상에서 교환되는 메시지들은 메시지 저장소(138)에 저장된다. 메시지 저장소(138)는 레코드들을 저장하는 하나 이상의 테이블들을 포함할 수 있다. 일부 예들에서 각각의 레코드는 별개로 저장된 메시지에 대응한다. 예컨대, 레코드는 메시징 플랫폼(104)에 게시된 메시지에 대한 메시지 식별자, 메시지의 작성자를 식별하는 작성자 식별자(예컨대, @tristan), 메시지 콘텐츠(예컨대, 텍스트, 이미지, 비디오 및/또는 웹 콘텐츠의 URL), 메시지의 본문에서 식별된 하나 이상의 참가자 계정 식별자들 및/또는 (메시지가 메시지에 대한 답신인 경우) 메시지가 답신하는 부모 메시지를 식별하는 답신 정보를 식별할 수 있다.[0047] Messages exchanged on the messaging platform 104 are stored in a message store 138 . Message store 138 may include one or more tables that store records. In some examples each record corresponds to a separately stored message. For example, the record may include a message identifier for a message posted to the messaging platform 104 , an author identifier identifying the author of the message (eg, @tristan), and the message content (eg, a URL to text, image, video, and/or web content). ), one or more participant account identifiers identified in the body of the message, and/or reply information identifying the parent message to which the message replies (if the message is a reply to a message).

[0048] 메시징 플랫폼(104)은 대화 그래프들(126)을 생성하는 대화 그래프 관리자(136), 및 메시지들의 타임라인(156)을 클라이언트 애플리케이션(154)에 주입하는 타임라인 관리자(142)를 포함한다. 메시징 플랫폼(104)은 대화 그래프(126)로부터 메시지들의 후보 서브세트(133)를 선택하는 후보 메시지 선택기(108)를 포함한다. 메시징 플랫폼(104)은 예측과 관련된 신호들(106)을 획득하고 신호들(106)을 하나 이상의 예측 모델들(112)에 입력하여 예측 결과들(118)을 결정하는 예측 관리자(110)를 포함한다. 일부 예들에서, 예측 관리자(110)는 예측 결과들(118)에 기초하여 인게이지먼트 값들(116)을 계산하고, 타임라인 관리자(142)는 인게이지먼트 값들(116)을 사용하여 대화 그래프(126)의 메시지들 순위를 매기고(그리고 선택하고) 메시지들의 순위 목록(158)을 클라이언트 애플리케이션(154)에 제공한다. 메시징 플랫폼(104)은 트레이닝 데이터(148)를 획득하고 트레이닝 데이터(148)와 함께 입력된 하나 이상의 기계 학습 알고리즘들(149)을 사용하여 예측 모델들(112)을 트레이닝하는 예측 모델 트레이너(140)를 포함한다.[0048] The messaging platform 104 includes a conversation graph manager 136 that creates conversation graphs 126 , and a timeline manager 142 that injects a timeline 156 of messages into a client application 154 . The messaging platform 104 includes a candidate message selector 108 that selects a candidate subset 133 of messages from the conversation graph 126 . The messaging platform 104 includes a prediction manager 110 that obtains signals 106 related to prediction and inputs the signals 106 into one or more prediction models 112 to determine prediction results 118 . do. In some examples, prediction manager 110 calculates engagement values 116 based on prediction results 118 , and timeline manager 142 uses engagement values 116 to graph the conversation ( It ranks (and selects) the messages of 126 , and provides a ranked list 158 of messages to the client application 154 . The messaging platform 104 obtains training data 148 and trains the predictive models 112 using one or more machine learning algorithms 149 input with the training data 148 . includes

[0049] 보다 상세하게는, 대화 그래프 관리자(136)는 메시지들이 메시징 플랫폼(104) 상에서 교환됨에 따라 하나 이상의 대화 그래프들(126)을 생성(및 업데이트)한다. 일부 예들에서, 대화 그래프들(126)은 메시징 플랫폼(104)과 연관된 데이터 저장 디바이스에 저장된다. 일부 예들에서, 대화 그래프들(126)은 타임라인 관리자(142)에 저장된다. 메시징 플랫폼(104)은 다수의 대화 그래프들(126)(예컨대, 수백, 수천 또는 수백만 개의 대화 그래프들(126))을 저장할 수 있다. 각각의 대화 그래프(126)는 오리지널 비-답신 메시지(예컨대, 루트 메시지)에 대한 답신들의 구조를 표현할 수 있다. 예컨대, 사용자가 오리지널 비-답신 메시지를 생성하여 메시징 플랫폼(104) 상에 게시할 때마다, 잠재적인 새로운 대화가 시작될 수 있다. 그 후 다른 사람들은 오리지널 또는 "루트" 메시지들에 답신하고 그 자신의 답신 분기들을 생성할 수 있다. 시간이 지남에 따라, 오리지널 비-답신 메시지에 대한 답신들(및/또는 오리지널 비-답신 메시지에 대한 답신들에 대한 답신들)의 수가 임계 레벨을 초과하는 경우, 대화 그래프 관리자(136)는 대화 그래프(126)에 대화 식별자를 할당할 수 있고, 대화 식별자는 대화 그래프(126)를 고유하게 식별할 수 있다. 일부 예들에서, 대화 그래프 관리자(136)는 답신과 함께 각각의 메시지에 대화 식별자를 할당할 수 있다. 예컨대, 메시징 플랫폼이 메시지 A를 갖고 그 후 누군가가 메시지 B로 이에 응답하는 경우, 메시지 A에는 대화를 식별하는 데 사용할 수 있는 대화 식별자가 할당되며, 이는 아래에서 상세히 논의되는 바와 같은 대화 그래프(126)로 이어진다. 일부 예들에서, 메시지에 대한 답신이 있는 경우, 대화가 있는 것이다.[0049] More specifically, the conversation graph manager 136 creates (and updates) one or more conversation graphs 126 as messages are exchanged on the messaging platform 104 . In some examples, conversation graphs 126 are stored in a data storage device associated with messaging platform 104 . In some examples, conversation graphs 126 are stored in timeline manager 142 . Messaging platform 104 may store a number of conversation graphs 126 (eg, hundreds, thousands, or millions of conversation graphs 126 ). Each conversation graph 126 may represent a structure of replies to an original non-reply message (eg, a root message). For example, whenever a user creates and posts an original non-reply message on the messaging platform 104 , a potential new conversation may be initiated. Others can then reply to the original or "root" messages and create their own reply branches. Over time, if the number of replies to the original non-reply message (and/or replies to replies to the original non-reply message) exceeds a threshold level, the conversation graph manager 136 displays the conversation A conversation identifier may be assigned to the graph 126 , and the conversation identifier may uniquely identify the conversation graph 126 . In some examples, conversation graph manager 136 may assign a conversation identifier to each message with a reply. For example, if the messaging platform has message A and then someone responds to it with message B, message A is assigned a conversation identifier that can be used to identify the conversation, which is discussed in detail below in conversation graph 126 . ) leads to In some examples, if there is a reply to the message, there is a conversation.

[0050] 대화 그래프(126)는 대화 내 메시지들을 표현하는 계층적 데이터 구조일 수 있다. 일부 예들에서, 대화 그래프(126)는 비선형 또는 선형 데이터 구조를 포함한다. 일부 예들에서, 대화 그래프(126)는 트리 데이터 구조를 포함한다. 대화 그래프(126)는 메시지들을 표현하는 노드들(128)(또는 정점들) 및 노드들(128) 사이의 링크들을 표현하는 에지들(130)(또는 아크들)을 포함할 수 있다. 대화 그래프(126)는 각각의 노드(128)에 개개의 메시지의 메시지 식별자를 저장할 수 있다. 일부 예들에서, 대화 그래프(126)는 각각의 노드(128)에 개개의 메시지의 작성자의 사용자 식별자를 저장한다. 대화 그래프(126)는 노드들(128)의 하나 이상의 분기들(132)을 정의할 수 있다. 일부 예들에서, 분기(132)는 하나 이상의 노드들(128)을 포함하는 대화 그래프(126)의 일부(예컨대, 서브-트리)이다. 일부 예들에서, 분기(132)는 에지(130)에 의해 연결된 적어도 2개의 노드들(128)일 수 있고, 여기서 노드들(128) 중 하나는 리프 노드이다. 일부 예들에서, 분기(132)는 단일 라인으로 연결된 메시지들(예컨대, 리프 메시지, 리프 메시지에 연결된 제1 부모 메시지, 제1 부모 메시지에 연결된 제2 부모 메시지 식으로, 부모 메시지가 다른 부모 메시지를 갖지 않을 때까지)로서 정의될 수 있다.[0050] Conversation graph 126 may be a hierarchical data structure representing messages within a conversation. In some examples, dialog graph 126 includes a non-linear or linear data structure. In some examples, dialog graph 126 includes a tree data structure. Conversation graph 126 may include nodes 128 (or vertices) representing messages and edges 130 (or arcs) representing links between nodes 128 . Conversation graph 126 may store the message identifier of each message at each node 128 . In some examples, conversation graph 126 stores in each node 128 the user identifier of the author of the respective message. Conversation graph 126 may define one or more branches 132 of nodes 128 . In some examples, branch 132 is a portion (eg, a sub-tree) of dialog graph 126 that includes one or more nodes 128 . In some examples, branch 132 may be at least two nodes 128 connected by edge 130 , where one of nodes 128 is a leaf node. In some examples, branch 132 is a single-line concatenated message (eg, a leaf message, a first parent message coupled to a leaf message, a second parent message coupled to a first parent message, etc.) ) can be defined as

[0051] "노드"라는 용어는 대화 그래프(126) 내의 메시지로서 지칭될 수 있거나, "메시지"라는 용어는 그 메시지가 대화 그래프(126)의 부분으로서 포함되는 경우 노드(128)로서 지칭될 수 있다는 것에 주의한다. 특정 노드(128)는 에지(130)를 통해 다른 노드(128)에 링크될 수 있고, 에지(130)의 방향은 부모 메시지를 식별한다. 노드들(128)은 루트 메시지, 루트 메시지에 대한 답신 내 메시지, 루트 메시지에 대한 답신 내 메시지들에 대한 답신 내 메시지들 등을 표현할 수 있다.[0051] Note that the term “node” may refer to a message within the conversation graph 126 , or the term “message” may refer to a node 128 if the message is included as part of the conversation graph 126 . do. A particular node 128 may be linked to another node 128 via an edge 130 , and the direction of the edge 130 identifies the parent message. Nodes 128 may represent a root message, a message in a reply to a root message, messages in a reply to a message in a reply to a root message, and the like.

[0052] 대화 그래프 관리자(136)는 메시지들의 답신 구조에 기초하여 대화 그래프(126)를 생성할 수 있다. 답신 구조는 각각의 메시지와 연관된 메타데이터 및/또는 메시지 콘텐츠 내로부터 식별된 답신 정보에 기초하여 식별될 수 있다. 일부 예들에서, 답신 구조는 메시지를 작성하기 위해 클라이언트 애플리케이션(154)으로부터 수신된 각각의 메시지와 연관된 메타데이터에 기초하여 식별된다. 예컨대, 사용자는 클라이언트 애플리케이션(154)의 사용자 인터페이스 상에 디스플레이된 메시지 아래에 디스플레이된 답신 링크를 클릭할 수 있다. 그 후, 클라이언트 애플리케이션(154)은 답신 메시지 초안을 작성하기 위한 메시지 작성 상자를 디스플레이할 수 있다. 클라이언트 애플리케이션(154)은 답신 메시지와의 답신 관계(예컨대, 부모 메시지의 메시지 식별자)를 포함하는 메타데이터를 제출할 수 있다. 일부 예들에서, 답신 관계는 메시지 콘텐츠 내에서 사용자에 의해 명시적으로 정의될 수 있다(예컨대, 메시지의 본문 내에서 사용자 계정(141)(예컨대, @tristan)을 식별함). 이 예에서, 답신 구조는 메시지의 본문 내에서 언급된 하나 이상의 계정 식별자들 및/또는 메시지 식별자들을 식별함으로써 식별될 수 있다.[0052] The conversation graph manager 136 may generate the conversation graph 126 based on the reply structure of the messages. A reply structure may be identified based on metadata associated with each message and/or reply information identified from within the message content. In some examples, a reply structure is identified based on metadata associated with each message received from the client application 154 to compose the message. For example, the user may click a reply link displayed below the message displayed on the user interface of the client application 154 . The client application 154 may then display a compose message box to draft a reply message. The client application 154 may submit metadata including a reply relationship with the reply message (eg, the message identifier of the parent message). In some examples, the reply relationship may be explicitly defined by the user within the message content (eg, identifying the user account 141 (eg, @tristan) within the body of the message). In this example, the reply structure may be identified by identifying one or more account identifiers and/or message identifiers mentioned within the body of the message.

[0053] 타임라인 관리자(142)는 네트워크(150)를 통해, 디지털 정보를 송신하여 클라이언트 애플리케이션(154)이 클라이언트 애플리케이션(154)의 사용자 인터페이스 상에 소셜 콘텐츠의 타임라인(156)을 렌더링 및 디스플레이하는 것을 가능하게 한다. 타임라인(156)은 메시지들의 스트림(예컨대, 메시지 A, 메시지 B, 메시지 C)을 포함한다. 일부 예들에서, 메시지들의 스트림은 역연대순으로 배열된다. 일부 예들에서, 메시지 스트림은 연대순으로 배열된다. 일부 예들에서, 타임라인(156)은 특정 사용자 특유의 소셜 콘텐츠의 타임라인이다. 일부 예들에서, 타임라인(156)은 메시징 플랫폼(104)에 의해 큐레이트된(curated)(예컨대, 생성 및 어셈블리된) 메시지들의 스트림을 포함한다. 일부 예들에서, 타임라인(156)은 메시징 플랫폼(104) 상의 검색으로부터 기인한 메시지들의 목록을 포함한다. 일부 예들에서, 타임라인(156)은 클라이언트 애플리케이션(154)의 사용자의 계정(141)과 관계가 있는 계정들(141)로부터의 사용자들에 의해 게시된 메시지들의 스트림(예컨대, 사용자가 메시징 플랫폼(104) 상에서 팔로우하기로 선택한 계정들(141)로부터의 메시지들의 스트림)을 포함한다. 일부 예들에서, 메시지들의 스트림은 프로모팅된 메시지 또는 재-공유된 메시지들을 포함한다.[0053] Timeline manager 142 sends digital information, via network 150 , to enable client application 154 to render and display timeline 156 of social content on a user interface of client application 154 . make it Timeline 156 includes a stream of messages (eg, message A, message B, message C). In some examples, the stream of messages is arranged in reverse chronological order. In some examples, the message stream is arranged chronologically. In some examples, timeline 156 is a timeline of social content specific to a particular user. In some examples, timeline 156 includes a stream of messages curated (eg, created and assembled) by messaging platform 104 . In some examples, timeline 156 includes a list of messages resulting from a search on messaging platform 104 . In some examples, timeline 156 is a stream of messages posted by users from accounts 141 that are associated with user's account 141 of client application 154 (eg, when a user 104) a stream of messages from accounts 141 that it has chosen to follow. In some examples, the stream of messages includes a promoted message or re-shared messages.

[0054] 타임라인(156) 상에서 메시지들을 볼 때, 사용자는 타임라인(156)으로부터 메시지들 중 하나(예컨대, 메시지 B)를 선택할 수 있으며, 이는 클라이언트 애플리케이션(154)이 대화 보기 요청(121)을 생성하고 네트워크(150)를 통해 메시징 플랫폼(104)으로 전송하게 할 수 있다. 일부 예들에서, 선택된 메시지(예컨대, 메시지 B)는 대화 그래프(126) 내에서 엔트리 포인트 또는 기준 포인트로서 역할을 할 수 있는 콘텍스트 메시지 또는 초점 메시지로서 지칭될 수 있다. 대화 보기 요청(121)은 대화 그래프(126)로부터 메시지들을 리트리브하기 위한 요청일 수 있다. 일부 예들에서, 대화 보기 요청(121)은 선택된 메시지들의 메시지 식별자 및 클라이언트 애플리케이션(154)의 사용자의 사용자 식별자를 포함한다. 일부 예들에서, 대화 보기 요청(121)은 또한 요청의 시간, 사용자가 어느 디바이스 상에 있는지, 운영 체제(OS) 버전, 및/또는 요청과 연관된 다른 메타데이터를 포함한다.[0054] When viewing messages on timeline 156 , the user may select one of the messages from timeline 156 (eg, message B), which causes client application 154 to generate conversation view request 121 and to the messaging platform 104 over the network 150 . In some examples, the selected message (eg, message B) may be referred to as a context message or focus message, which may serve as an entry point or reference point within the conversation graph 126 . The conversation view request 121 may be a request to retrieve messages from the conversation graph 126 . In some examples, the conversation view request 121 includes a message identifier of the selected messages and a user identifier of a user of the client application 154 . In some examples, the conversation view request 121 also includes the time of the request, which device the user is on, the operating system (OS) version, and/or other metadata associated with the request.

[0055] 대화 보기 요청(121)에 대한 응답으로, 타임라인 관리자(142)는 예측 관리자(110)를 제어하여 대화 그래프(126)의 각각의 메시지(또는 그의 서브세트)에 대한 예측 결과들(118)을 생성하고 예측 결과들(118)에 기초하여 각각의 메시지에 대한 인게이지먼트 값(116)을 컴퓨팅한다. 예컨대, 예측 관리자(110)는 인게이지먼트 예측기(125) 및 인게이지먼트 스코어러(114)를 포함한다. 대화 보기 요청(121)에 대한 응답으로, 인게이지먼트 예측기(125)는 예측과 관련된 신호들(106)을 획득하고 신호들(106)을 예측 모델들(112)에 입력하여 대화 그래프(126) 내 각각의 메시지(또는 메시지들의 서브세트)에 대한 예측 결과들(118)을 결정할 수 있다. 일부 예들에서, 예측 결과들(118)은 상호 인게이지먼트 확률(124)을 포함한다. 일부 예들에서, 예측 결과(118)는 상호 인게이지먼트 확률(124), 및 긍정적 인게이지먼트 확률(120) 또는 부정적 인게이지먼트 확률(122) 중 적어도 하나를 포함한다. 일부 예들에서, 예측 결과들(118)은 상호 인게이지먼트 확률(124), 긍정적 인게이지먼트 확률(120), 및 부정적 인게이지먼트 확률(122)을 포함한다.[0055] In response to the conversation view request 121 , the timeline manager 142 controls the prediction manager 110 to display the prediction results 118 for each message (or a subset thereof) of the conversation graph 126 . and compute an engagement value 116 for each message based on the prediction results 118 . For example, the prediction manager 110 includes an engagement predictor 125 and an engagement scorer 114 . In response to the conversation view request 121 , the engagement predictor 125 obtains signals 106 related to the prediction and inputs the signals 106 into the predictive models 112 to generate a conversation graph 126 . may determine prediction results 118 for each message (or a subset of messages) in . In some examples, the prediction results 118 include a mutual engagement probability 124 . In some examples, the prediction result 118 includes a mutual engagement probability 124 , and at least one of a positive engagement probability 120 or a negative engagement probability 122 . In some examples, the prediction results 118 include a mutual engagement probability 124 , a positive engagement probability 120 , and a negative engagement probability 122 .

[0056] 인게이지먼트 스코어러(114)는 예측 결과들(118)을 사용하여(예컨대, 예측 결과들(118)을 결하여 인게이지먼트 값(116)을 생성함) 개개의 메시지에 대한 인게이지먼트 값(116)을 컴퓨팅할 수 있다. 인게이지먼트 값들(116)은 대화 그래프(126)의 메시지들 순위를 매기기 위해 타임라인 관리자(142)에 의해 사용되며, 타임라인 관리자(142)는 사용자의 타임라인(156) 내의 순위 목록(158)으로서 네트워크(150)를 통해 메시지들(또는 대화 그래프(126)의 메시지들의 서브세트)를 제공할 수 있다. 순위 목록(158)(예컨대, 메시지 1, 메시지 2, 메시지 3)은 예측 결과들(118)에 의해 결정되는 인게이지먼트 값들(116)에 따라 순위가 매겨진 대화 그래프(126)의 메시지들 중 일부 또는 전부를 포함할 수 있다.[0056] Engagement scorer 114 uses prediction results 118 (eg, combines prediction results 118 to produce engagement value 116 ) for an engagement value ( 116) can be computed. Engagement values 116 are used by timeline manager 142 to rank messages in conversation graph 126 , which timeline manager 142 uses to rank list 158 in user's timeline 156 . ) via network 150 (or a subset of messages in conversation graph 126 ). Ranked list 158 (eg, message 1, message 2, message 3) is some of the messages of conversation graph 126 ranked according to engagement values 116 determined by prediction results 118 . or all of them.

[0057] 일부 예들에서, 후보 메시지 선택기(108)는 예측 관리자(110)에 의해 분석될 대화 그래프(126)의 메시지들의 일부를 선택한다. 다시 말해, 후보 메시지 선택기(108)는 대화 그래프(126)에 포함된 더 많은 수의 메시지들로부터 후보 메시지들을 선택할 수 있으며, 여기서 후보 메시지들은 예측 관리자(110)에 의한 예측 분석의 대상이 되는 메시지들이다. 일부 예들에서, 대화 그래프(126)는 비교적 크고, 대화 그래프(126)에 포함된 노드들(128)의 수가 임계 레벨을 초과(예컨대, 3000개 또는 4000개 메시지 초과)하는 경우, 후보 메시지 선택기(108)는 예측 관리자(110)에 의한 추가 분석을 위해 (모든 노드들(128) 대신에) 노드들(128)의 서브세트를 선택할 수 있다. 다시 말해, 노드들(128)의 수가 임계 레벨을 초과하는 경우, 후보 메시지 선택기(108)는 노드들(128)의 서브세트를 식별할 수 있고, 이러한 노드들(128)의 식별은 예측을 수행하기 위해 예측 관리자(110)에 제공된다. 이는 기술적 자원 소비를 감소(예컨대, 상당히 감소)시킬 수 있고 메시징 플랫폼(104)이 보다 양질의 응답들을 전달하도록 허용할 수 있다. 예컨대, 대화 그래프(126)가 30,000개의 응답들(또는 노드들(128))을 갖지만, 위에서 설명된 기술을 사용하는 경우, 메시징 플랫폼(104)은 메시지들의 상위 X 량(예컨대, X는 3000일 수 있음)을 선택하고, 이들에 대한 신호들을 수집하고, 그 후 이 신호들의 점수를 매겨, 사용자에게 디스플레이할 메시지의 상위 Y 량(예컨대, Y는 10일 수 있음)을 선택하며, 이는 사용자에게 전달되는 응답들의 품질에 영향을 주지 않으면서 컴퓨테이셔널 자원(computational resource)들의 양을 감소(예컨대, 상당히 감소)시킬 수 있다.[0057] In some examples, the candidate message selector 108 selects a portion of the messages of the conversation graph 126 to be analyzed by the prediction manager 110 . In other words, the candidate message selector 108 may select candidate messages from a larger number of messages included in the conversation graph 126 , where the candidate messages are the message to be subjected to predictive analysis by the predictive manager 110 . admit. In some examples, conversation graph 126 is relatively large, and when the number of nodes 128 included in conversation graph 126 exceeds a threshold level (eg, more than 3000 or 4000 messages), a candidate message selector ( 108 may select a subset of nodes 128 (instead of all nodes 128 ) for further analysis by prediction manager 110 . In other words, if the number of nodes 128 exceeds a threshold level, the candidate message selector 108 can identify a subset of nodes 128 , and identification of such nodes 128 performs the prediction. It is provided to the prediction manager 110 to do so. This may reduce (eg, significantly reduce) technical resource consumption and may allow the messaging platform 104 to deliver better quality responses. For example, if the conversation graph 126 has 30,000 responses (or nodes 128), but using the technique described above, the messaging platform 104 will display the top X amount of messages (eg, where X is 3000 days). can), collect signals for them, and then score these signals to select the top Y quantity of messages to display to the user (eg, Y could be 10), which gives the user It can reduce (eg, significantly reduce) the amount of computational resources without affecting the quality of the delivered responses.

[0058] 예컨대, 도 1b를 참조하면, 후보 메시지 선택기(108)는 대화 그래프(126) 내 메시지들의 수가 임계 레벨보다 큰 것에 대한 응답으로 대화 그래프(126)로부터 후보 서브세트(133)를 선택할 수 있으며, 여기서 예측 결과(118)는 후보 서브세트(133)의 각각의 메시지에 대해 결정된다. 일부 예들에서, 후보 서브세트(133)는 대화 그래프(126) 내 메시지들의 총 수보다 적은 다수의 메시지들을 포함한다. 일부 예들에서, 후보 메시지 선택기(108)는 하나 이상의 후보 메시지 소스들(131)로부터 후보 서브세트(133)를 선택한다. 일부 예들에서, 후보 메시지 선택기(108)는 다수의 소스들로부터의 대화 보기에 대한 후보들을 병합할 수 있다. 예컨대, 후보 메시지 선택기(108)는 제1 소스(131-1)로부터 대화 그래프(126)에 포함된 메시지들의 제1 세트 및 제2 소스(131-2)로부터 대화 그래프(126)에 포함된 메시지들의 제2 세트를 선택하며, 여기서 후보 서브세트(133)는 메시지들의 제1 및 제2 세트들을 포함한다.[0058] For example, referring to FIG. 1B , the candidate message selector 108 may select a candidate subset 133 from the conversation graph 126 in response to the number of messages in the conversation graph 126 being greater than a threshold level, where A prediction result 118 is determined for each message in the candidate subset 133 . In some examples, the candidate subset 133 includes a number of messages that are less than the total number of messages in the conversation graph 126 . In some examples, the candidate message selector 108 selects the candidate subset 133 from one or more candidate message sources 131 . In some examples, candidate message selector 108 may merge candidates for a conversation view from multiple sources. For example, candidate message selector 108 may include a first set of messages included in conversation graph 126 from first source 131-1 and messages included in conversation graph 126 from second source 131-2. select a second set of , where the candidate subset 133 includes the first and second sets of messages.

[0059] 일부 예들에서, 제1 소스(131-1)는 가장 최근에 게시된 것에 따라 순위가 매겨진 대화 그래프(126)의 메시지들을 포함한다. 일부 예들에서, 후보 메시지 선택기(108)는 제1 소스(131-1)로부터 대화 그래프(126) 내 가장 최근 메시지들의 수(n)(예컨대, 시간 순서)를 선택한다. 일부 예들에서, 수(n)는 2000 내지 4500의 범위에 있다. 일부 예들에서, 수(n)는 2500 내지 3500의 범위에 있다. 일부 예들에서, 제2 소스(131-2)는 관련성 알고리즘(예컨대, 발견적 알고리즘)에 따라 순위가 매겨진 대화 그래프(126)의 메시지들을 포함한다. 일부 예들에서, 제2 소스(131-2)에 대한 관련성 순위는 대화 그래프(126) 내 메시지들이 클라이언트 애플리케이션(154)의 사용자의 사용자 계정(141)에 링크된 사용자 계정들(141)로부터의 것인지에 기초한다. 일부 예들에서, 관련성 알고리즘은 수신된 인게이지먼트들의 양, 좋아요, 댓글(comment)들 및/또는 재-공유들의 수와 같은 신호들, 메시지가 사진, 비디오 및/또는 링크를 갖는지와 같은 메시지 메타데이터를 표현하는 신호들 및/또는 메시지가 유독성이고(toxic), NSFW 또는 메시지의 작성자가 최근에 보고된 경우와 같이 작성자 메타데이터 및 건강 관련 메타데이터를 표현하는 신호와 같은 신호들을 사용한다. 후보 메시지 선택기(108)는 제2 소스(131-2)로부터 대화 그래프(126)의 상위-순위 메시지들의 수(p)를 선택한다. 일부 예들에서, 수(p)는 200 내지 1500의 범위에 있다. 일부 예들에서, 수(p)는 500 내지 1000의 범위에 있다. 일부 예들에서, 수(p)는 수(n)보다 작다. 후보 서브세트(133)는 제1 소스(131-1)로부터의 메시지들의 수(n) 및 제2 소스(131-2)로부터의 메시지들의 수(p)를 포함할 수 있으며, 여기서 예측 결과들(118)은 후보 서브세트(133)의 각각의 메시지에 대해 결정된다.[0059] In some examples, first source 131-1 includes messages in conversation graph 126 ranked according to most recently posted. In some examples, candidate message selector 108 selects a number n (eg, chronological order) of most recent messages in conversation graph 126 from first source 131-1. In some examples, the number n is in the range of 2000 to 4500. In some examples, the number n is in the range of 2500 to 3500. In some examples, second source 131 - 2 includes messages in conversation graph 126 ranked according to a relevance algorithm (eg, a heuristic algorithm). In some examples, the relevance ranking for the second source 131 - 2 is based on whether the messages in the conversation graph 126 are from user accounts 141 linked to the user account 141 of the user of the client application 154 . based on In some examples, the relevance algorithm may include signals such as the amount of engagements received, the number of likes, comments and/or re-shares, and message meta such as whether the message has a photo, video and/or link. Signals representing data and/or signals representing health-related metadata are used, such as when the message is toxic and the NSFW or the author of the message has recently been reported. The candidate message selector 108 selects the number p of top-ranked messages of the conversation graph 126 from the second source 131 - 2 . In some examples, the number p is in the range of 200 to 1500. In some examples, the number p is in the range of 500 to 1000. In some examples, number p is less than number n. The candidate subset 133 may include a number n of messages from the first source 131-1 and a number p of messages from the second source 131-2, where the prediction results are 118 is determined for each message in the candidate subset 133 .

[0060] 대화 그래프(126) 내 노드들(128)(또는 후보 메시지 선택기(108)에 의해 식별된 것들) 중 적어도 일부(또는 노드들(128) 전부)에 대해, 인게이지먼트 예측기(125)는 예측 모델들(112)을 사용하여, 개개의 메시지에 대한 긍정적 인게이지먼트 확률(120), 부정적 인게이지먼트 확률(122), 및/또는 상호 인게이지먼트 확률(124)을 예측할 수 있다. 예컨대, 대화 보기 요청(121)에 대한 응답으로, 예측 관리자(110)는 인게이지먼트 예측기(125)를 제어하여 신호들(106)을 획득하고 신호들(106)을 예측 모델들(112)에 적용하여 대화 그래프(126)의 선택된 노드들(128)에 대한 예측 결과들(118)을 결정할 수 있다.[0060] For at least some (or all of the nodes 128 ) of the nodes 128 (or those identified by the candidate message selector 108 ) in the conversation graph 126 , the engagement predictor 125 is a predictive model Elements 112 may be used to predict a positive engagement probability 120 , a negative engagement probability 122 , and/or a mutual engagement probability 124 for an individual message. For example, in response to the conversation view request 121 , the prediction manager 110 controls the engagement predictor 125 to obtain the signals 106 and the signals 106 to the predictive models 112 . applied to determine prediction results 118 for the selected nodes 128 of the dialog graph 126 .

[0061] 예측 관리자(110)는 하나 이상의 데이터 서비스들(165)로부터 신호들(106)을 획득할 수 있다. 데이터 서비스(들)(165)는 메시징 플랫폼(104) 및/또는 클라이언트 애플리케이션(154)에 의해 획득된 데이터를 컴퓨팅하거나 그렇지 않으면 유도하는 메시징 플랫폼(104) 상의 컴포넌트들일 수 있다. 일부 예들에서, 예측 관리자(110)는 서버 통신 인터페이스를 통해 데이터 서비스들(165)과 통신할 수 있다. 일부 예들에서, 예측 관리자(110)는 하나 이상의 API들을 통해 데이터 서비스(들)(165)로부터 신호들(106)의 적어도 일부를 획득할 수 있다. 일부 예들에서, 대화 보기 요청(121)에 대한 응답으로, 예측 관리자(110)는 중고품 호출(thrift call) 또는 RPC(remote procedure call)를 데이터 서비스(들)(165)로 송신하고, 그 후 적절한 데이터 서비스(들)(165)로부터 신호들(106) 중 적어도 일부를 수신할 수 있다. 일부 예들에서, 예측 관리자(110)는 REST(representational state transfer) 요청을 데이터 서비스(들)(165)에 송신하고 그 후 적절한 데이터 서비스(들)(165)로부터 신호들(106) 중 적어도 일부를 수신할 수 있다. 일부 예들에서, 예측 관리자(110)는 GraphQL 요청을 통해 데이터 서비스(들)(165)와 통신한다. 일부 예들에서, 예측 관리자(110)는 대화 그래프 관리자(136) 및/또는 타임라인 관리자(142)를 포함하는 메시징 플랫폼(104)의 다른 컴포넌트들로부터 신호들(106)의 일부를 획득한다.[0061] Prediction manager 110 may obtain signals 106 from one or more data services 165 . The data service(s) 165 may be components on the messaging platform 104 that compute or otherwise derive data obtained by the messaging platform 104 and/or the client application 154 . In some examples, prediction manager 110 may communicate with data services 165 via a server communication interface. In some examples, prediction manager 110 may obtain at least a portion of signals 106 from data service(s) 165 via one or more APIs. In some examples, in response to the conversation view request 121 , the predictive manager 110 sends a thrift call or remote procedure call (RPC) to the data service(s) 165 , after which the appropriate at least some of the signals 106 from the data service(s) 165 . In some examples, the prediction manager 110 sends a representational state transfer (REST) request to the data service(s) 165 and then receives at least some of the signals 106 from the appropriate data service(s) 165 . can receive In some examples, prediction manager 110 communicates with data service(s) 165 via a GraphQL request. In some examples, prediction manager 110 obtains a portion of signals 106 from other components of messaging platform 104 , including conversation graph manager 136 and/or timeline manager 142 .

[0062] 신호들(106)은 클라이언트 애플리케이션(154) 상에 메시지들을 디스플레이하기 위해 예측 사용자 결과들과 관련된, 메시징 플랫폼(104)에 의해 생성되고 그리고/또는 클라이언트 애플리케이션(154)에 의해 생성된 신호들을 포함할 수 있다. 예컨대, 신호들(106)은 클라이언트 애플리케이션(154)과의 사용자 상호작용에 기초하여 클라이언트 애플리케이션(154)에 의해 생성된 신호들을 포함할 수 있다. 클라이언트 애플리케이션(154)에 의해 생성된 신호들은 저장을 위해 메시징 플랫폼(104)으로 송신될 수 있다. 클라이언트 애플리케이션(154)에 의해 생성된 신호들은 메시지들과의 긍정적 사용자 인게이지먼트(예컨대, 즐겨찾기, 좋아요, 재공유) 및/또는 메시지들과의 부정적 사용자 인게이지먼트(예컨대, 욕설 콘텐츠의 보고)와 같은 인게이지먼트 정보를 표현하는 신호들을 포함할 수 있다. 일부 예들에서, 신호들(106)은 메시징 플랫폼(104)에 의해 생성된 신호들을 포함할 수 있다. 일부 예들에서, 메시징 플랫폼(104)에 의해 생성된 신호들은 사용자의 연결 그래프(134)로부터 생성된 데이터, 대화 그래프(126)로부터 생성된 데이터, 플랫폼 상의 사용자 행위로부터 생성된 데이터(예컨대, 사용자가 메시지들과의 인게이지먼트를 한 횟수 등) 및/또는 사용자 감정을 예측하는 의미 분석(semantic analysis)의 결과 또는 하나 이상의 메시지들의 토픽을 결정하는 토픽 분석의 결과와 같이 메시지들의 콘텐츠로부터 생성된 데이터를 표현하는 신호들을 포함할 수 있다.[0062] Signals 106 may include signals generated by the messaging platform 104 and/or generated by the client application 154 related to predictive user results to display messages on the client application 154 . can For example, signals 106 may include signals generated by client application 154 based on user interaction with client application 154 . Signals generated by the client application 154 may be sent to the messaging platform 104 for storage. Signals generated by the client application 154 may include positive user engagement with messages (eg, favorites, likes, reshares) and/or negative user engagement with messages (eg, reporting of profane content). ) may include signals representing engagement information, such as. In some examples, signals 106 may include signals generated by messaging platform 104 . In some examples, signals generated by messaging platform 104 may include data generated from a user's connection graph 134 , data generated from conversation graph 126 , data generated from user actions on the platform (eg, data generated by a user data generated from the content of messages, such as the result of a semantic analysis that predicts user sentiment or the result of a topic analysis that determines the topic of one or more messages) and/or may include signals representing

[0063] 도 1c에 도시된 바와 같이, 신호들(106)은 대화 그래프(126)와 관련된 데이터 구조-관련 신호들(101), 대화 그래프(126)로부터 클라이언트 애플리케이션(154)의 사용자에게 메시지들을 제공하는 건강과 관련된 건강-관련 신호들(103), 대화 그래프(126)의 메시지들에 대한 사용자 인게이지먼트와 관련된 인게이지먼트 신호들(105), 사용자의 연결 그래프(134)로부터의 데이터와 관련된 소셜 그래프 신호들(107), 메시징 플랫폼(104)에 의해 집계된 데이터와 관련된 이력 집계 신호들(109), 대화 그래프(126)의 메시지들의 콘텐츠와 관련된 콘텐츠-관련 신호들(111), 및/또는 사용자가 즐겨찾기 한 또는 좋아요 한 다른 메시지들과 메시지가 얼마나 유사한지 그리고/또는 사용자가 메시지와 인게이징한 다른 사용자들과 얼마나 유사한지를 표현하는 유사성 신호들(113)을 포함할 수 있다. 그러나, 신호들(106)은 디스플레이하는 메시지들로부터 사용자 결과들을 예측하는 것과 관련된 임의의 유형의 카테고리화 또는 신호들의 입도를 포함할 수 있다.[0063] 1C , signals 106 are data structure-related signals 101 associated with conversation graph 126 , health providing messages from conversation graph 126 to a user of client application 154 . health-related signals 103 associated with, engagement signals 105 associated with user engagement for messages in conversation graph 126 , and social graph associated with data from user's connection graph 134 . Signals 107 , historical aggregate signals 109 associated with data aggregated by messaging platform 104 , content-related signals 111 associated with the content of messages in conversation graph 126 , and/or a user may include similarity signals 113 representing how similar the message is to other messages it has liked or liked and/or how similar the user is to other users with whom it has engaged with the message. However, signals 106 may include any type of categorization or granularity of signals related to predicting user results from displaying messages.

[0064] 데이터 구조-관련 신호들(101)은 대화 그래프(126)로부터의 데이터와 관련된 신호들을 포함할 수 있다. 일부 예들에서, 데이터 구조-관련 신호들(101)은 노드들(128)의 수, 에지들(130)의 수, 분기들(132)의 수, 각각의 분기(132)의 길이 또는 크기, 부모 노드들의 수, 자식 노드들의 수, 리프 노드들의 수, 대화 그래프(126)의 높이(예컨대, 리프 노드까지의 가장 긴 경로의 길이) 및/또는 노드의 깊이(예컨대, 노드의 깊이는 루트 노드까지의 경로 길이임)를 표현하는 신호들을 포함할 수 있다. 일부 예들에서, 데이터 구조-관련 신호들(101)은 분기(132)와 같은 대화 그래프(126)의 서브세트 또는 대화 그래프(126) 내 고유한 작성자들의 수를 표현하는 하나 이상의 신호들을 포함한다. 일부 예들에서, 데이터 구조-관련 신호들(101)은 대화 그래프(126) 내의 특정 유형의 데이터(예컨대, 이미지, 비디오, 비디오에 대한 링크 등)를 갖는 메시지의 로케이션을 표현하는 신호들을 포함한다. 일부 예들에서, 대화 그래프(126) 내의 특정 메시지와 관련하여, 데이터 구조-관련 신호들(101)은 메시지가 자식 노드인지, 메시지가 부모 노드인지, 메시지가 리프 노드인지, 대화 그래프(126) 내 메시지의 로케이션, 메시지를 포함하는 분기(132)의 로케이션, 메시지를 포함하는 분기(132)의 크기, 대화 그래프(126) 내의 메시지의 깊이를 표현하는 신호들을 포함할 수 있다.[0064] The data structure-related signals 101 may include signals related to data from the conversation graph 126 . In some examples, the data structure-related signals 101 include the number of nodes 128 , the number of edges 130 , the number of branches 132 , the length or size of each branch 132 , the parent The number of nodes, the number of child nodes, the number of leaf nodes, the height of the dialog graph 126 (eg, the length of the longest path to the leaf node) and/or the depth of the node (eg, the depth of the node is up to the root node) is the path length of ). In some examples, data structure-related signals 101 include one or more signals representing a subset of dialog graph 126 , such as branch 132 , or a number of unique authors within dialog graph 126 . In some examples, data structure-related signals 101 include signals representing a location of a message having a particular type of data (eg, image, video, link to a video, etc.) within conversation graph 126 . In some examples, with respect to a particular message in the conversation graph 126 , the data structure-related signals 101 determine whether the message is a child node, whether the message is a parent node, whether the message is a leaf node, or whether the message is a leaf node. It may include signals representing the location of the message, the location of the branch containing the message 132 , the size of the branch containing the message 132 , and the depth of the message in the conversation graph 126 .

[0065] 데이터 구조-관련 신호들(101)은 분기 맥락 특징들을 포함할 수 있다. 일부 예들에서, 데이터 구조-관련 신호들(101)은 분기(132) 내의 답신들의 수, 분기(132) 내의 대화들의 수, 클라이언트 애플리케이션(154)의 사용자와 루트 메시지의 작성자 간의 분기(132) 내의 대화들의 수, 애플리케이션(154)의 사용자와 새로운 메시지에서 언급된 사용자 간의 분기(132) 내의 대화 수, 및/ 또는 특정 노드(예컨대, 초점 메시지)와 리프 노드 간의 대화들의 수를 표현하는 신호들을 포함한다. 일부 예들에서, 분기 맥락 특징들과 관련하여, 대화는 적어도 2명의 사용자들 사이에서 앞뒤로 정의될 수 있다. 일부 예들에서, 대화는 사용자 A에 의해 게시된 메시지, 사용자 B에 의해 게시된 답신, 그리고 그 후 사용자 A에 의해 게시된 답신으로서 정의될 수 있다.[0065] The data structure-related signals 101 may include branch context characteristics. In some examples, the data structure-related signals 101 may be the number of replies in branch 132 , the number of conversations in branch 132 , the number of conversations in branch 132 between the user of the client application 154 and the originator of the root message. contains signals representing the number of conversations, the number of conversations in branch 132 between the user of the application 154 and the user mentioned in the new message, and/or the number of conversations between a particular node (eg, focus message) and a leaf node. do. In some examples, with respect to branching context features, a conversation may be defined back and forth between at least two users. In some examples, a conversation may be defined as a message posted by user A, a reply posted by user B, and then a reply posted by user A.

[0066] 일부 예들에서, 대화 그래프 관리자(136)는 예측 관리자(110)로부터 대화 식별자를 수신하고, 그 후 대화 식별자에 따라 대화 그래프(126)로부터 데이터 구조-관련 신호들(101)을 유도하거나 결정할 수 있고, 메시징 플랫폼(104) 상의 데이터 저장소에 데이터 구조-관련 신호들(101)을 저장할 수 있다. 일부 예들에서, 대화 보기 요청(121)에 대한 응답으로, 예측 관리자(110)는 데이터 구조-관련 신호들(101)을 유도하거나 결정하고 그 후 예측 결과들(118)을 결정하기 위해 예측 모델(112)과 함께 사용될 데이터 구조 관련 신호(101)를 대화 그래프 관리자(136)로부터 수신하도록 대화 그래프 관리자(136)를 제어할 수 있다. 일부 예들에서, 예측 관리자(110)는 대화 그래프(126)로부터 데이터 구조-관련 신호들(101)을 유도하거나 결정할 수 있다. 일부 예들에서, 대화 보기 요청(121)에 대한 응답으로, 예측 관리자(110)는 대화 식별자를 대화 그래프 관리자(136)에 송신하고, 그 후 대화 그래프(126)를 수신하여 대화 그래프(126)로부터 데이터 구조-관련 신호들(101)을 유도하거나 결정할 수 있다.[0066] In some examples, the conversation graph manager 136 may receive the conversation identifier from the prediction manager 110 , and then derive or determine the data structure-related signals 101 from the conversation graph 126 according to the conversation identifier and , store the data structure-related signals 101 in a data store on the messaging platform 104 . In some examples, in response to the conversation view request 121 , the prediction manager 110 derives or determines the data structure-related signals 101 and then determines the prediction results 118 . The dialog graph manager 136 may be controlled to receive the data structure related signal 101 to be used together with the 112 from the dialog graph manager 136 . In some examples, prediction manager 110 may derive or determine data structure-related signals 101 from conversation graph 126 . In some examples, in response to the conversation view request 121 , the prediction manager 110 sends a conversation identifier to the conversation graph manager 136 , and then receives the conversation graph 126 from the conversation graph 126 . The data structure-related signals 101 may be derived or determined.

[0067] 건강-관련 신호들(103)은 클라이언트 애플리케이션(154)의 사용자에게 대화 그래프(126)의 메시지를 제시하는 건강을 표현하는 신호들을 포함할 수 있다. 일부 예들에서, 건강-관련 신호들(103)은 클라이언트 애플리케이션(154)의 사용자가 과거에 대화 그래프(126) 내 메시지의 작성자를 제한(예컨대, 차단, 뮤팅(muted) 등)했는지를 표현하는 신호들을 포함할 수 있다. 건강-관련 신호들(103)은 메시징 플랫폼(104) 상의 데이터 저장소에 저장될 수 있다. 일부 예들에서, 예측 관리자(110)는 건강-관련 신호들(103)을 획득하기 위해 데이터 서비스(165)(예컨대, 건강 데이터 서비스)에 요청을 송신할 수 있으며, 여기서 요청은 대화 그래프(126)의 메시지들의 메시지 식별자들 및/또는 클라이언트 애플리케이션(154)의 사용자의 사용자 식별자를 포함할 수 있다.[0067] Health-related signals 103 may include health-representing signals presenting a message of conversation graph 126 to a user of client application 154 . In some examples, the health-related signals 103 are a signal representing whether the user of the client application 154 has restricted (eg, blocked, muted, etc.) the author of a message in the conversation graph 126 in the past. may include The health-related signals 103 may be stored in a data store on the messaging platform 104 . In some examples, predictive manager 110 may send a request to data service 165 (eg, health data service) to obtain health-related signals 103 , where the request is conversation graph 126 . message identifiers of the messages of , and/or the user identifier of the user of the client application 154 .

[0068] 인게이지먼트 신호들(105)은 대화 그래프(126)의 메시지와 연관된 사용자 인게이지먼트 데이터를 표현할 수 있다. 일부 예들에서, 인게이지먼트 신호들(105)은 대화 그래프(126)의 메시지에 대해 인게이지먼트들의 수(예컨대, 메시지들이 즐겨찾기되거나 좋아요 된 횟수들, 메시지에 대한 답신들의 수, 메시지가 재공유된 횟수들)를 표현하는 신호들을 포함한다. 일부 예들에서, 인게이지먼트 신호들(105)은 사용자의 연결 그래프(134)에서 클라이언트 애플리케이션(154)의 사용자를 팔로우하는 사용자들의 인게이지먼트들(예컨대, 메시지는 사용자의 연결 그래프(134)에서 클라이언트 애플리케이션(154)의 사용자를 팔로우하는 사용자들에 의해 제공된 하나 이상의 인게이지먼트들을 갖는지)을 표현하는 하나 이상의 신호들을 포함한다. 일부 예들에서, 예측 관리자(110)는 인게이지먼트 데이터를 저장하는 데이터 서비스(168)로부터 인게이지먼트 신호들(105)을 획득한다. 일부 예들에서, 예측 관리자(110)는 대화 그래프(126)의 메시지 식별자들을 포함할 수 있는 요청을 송신할 수 있고, 예측 관리자(110)는 데이터 서비스(165)로부터 인게이지먼트 신호들(105)을 수신할 수 있다.[0068] Engagement signals 105 may represent user engagement data associated with a message in conversation graph 126 . In some examples, engagement signals 105 may be the number of engagements for a message in conversation graph 126 (eg, the number of times messages were favorited or liked, number of replies to the message, number of replies to the message, shared number of times). In some examples, the engagement signals 105 are the engagements of users following the user of the client application 154 in the user's connection graph 134 (eg, the message is in the user's connection graph 134 ). one or more signals indicative of having one or more engagements provided by users following the user of the client application 154 . In some examples, prediction manager 110 obtains engagement signals 105 from data service 168 that stores engagement data. In some examples, prediction manager 110 may send a request that may include message identifiers of conversation graph 126 , and prediction manager 110 may send engagement signals 105 from data service 165 . can receive

[0069] 소셜 그래프 신호들(107)은 연결 그래프(134)로부터의 정보를 표현하는 신호들을 포함할 수 있다. 일부 예들에서, 소셜 그래프 신호들(107)은 클라이언트 애플리케이션(154)의 사용자가 시간 기간에 걸쳐 메시지 작성자의 메시지들을 즐겨찾기하거나 좋아요 한 횟수들, 사용자가 연결 그래프(134) 내 메시지의 작성자와 링크되었는지, 및/또는 사용자가 시간 기간에 걸쳐 메시지 작성자의 메시지를 재공유하거나 답신한 횟수들을 표현하는 신호들을 포함한다. 일부 예들에서, 예측 관리자(110)는 소셜 그래프 신호들을 저장하는 데이터 서비스(168)로부터 소셜 그래프 신호들(107)을 획득한다. 일부 예들에서, 예측 관리자(110)는 클라이언트 애플리케이션(154)의 사용자의 사용자 식별자를 포함할 수 있는 요청을 송신할 수 있고, 예측 관리자(110)는 데이터 서비스(165)로부터 소셜 그래프 신호들(107)을 수신할 수 있다.[0069] Social graph signals 107 may include signals representing information from connection graph 134 . In some examples, social graph signals 107 include the number of times the user of the client application 154 has liked or liked the message author's messages over a period of time, the user's link with the message author in the connection graph 134 . and/or signals representing the number of times the user has reshared or replied to the message author's message over a period of time. In some examples, prediction manager 110 obtains social graph signals 107 from data service 168 that stores social graph signals. In some examples, prediction manager 110 can send a request that can include a user identifier of a user of client application 154 , and prediction manager 110 can send social graph signals 107 from data service 165 . ) can be received.

[0070] 이력 집계 신호들(109)은 메시징 플랫폼(104) 상의 사용자 행위를 표현하는 신호들을 포함할 수 있다. 일부 예들에서, 이력 집계 신호들(109)은 클라이언트 애플리케이션(154)의 사용자가 시간 기간 동안 메시징 플랫폼(104) 상의 메시지들을 즐겨찾기한 횟수들, 클라이언트 애플리케이션(154)의 사용자가 시간 기간 동안 메시징 플랫폼(104) 상의 메시지들을 재공유한 횟수들 및/또는 클라이언트 애플리케이션(154)의 사용자가 시간 기간 동안 메시징 플랫폼(104) 상의 메시지들에 답신한 횟수들을 표현하는 신호들을 포함할 수 있다. 시간 기간은 지난 날, 지난 달, 또는 지난 해 등 이내일 수 있다. 일부 예들에서, 이력 집계 신호들(109)은 클라이언트 애플리케이션(154)의 사용자가 이미지 또는 비디오를 포함하는 메시지들을 즐겨찾기하고, 좋아요하고, 재공유하고 그리고/또는 답신한 횟수들을 표현하는 신호들을 포함할 수 있다. [0070] The historical aggregation signals 109 may include signals representing user behavior on the messaging platform 104 . In some examples, historical aggregation signals 109 include the number of times the user of the client application 154 has favorited messages on the messaging platform 104 over a period of time, the number of times the user of the client application 154 has viewed the messaging platform during the period of time. signals representing the number of times messages on 104 have been reshared and/or the number of times a user of the client application 154 has responded to messages on the messaging platform 104 over a period of time. The time period may be within the past day, last month, last year, etc. In some examples, the historical aggregation signals 109 include signals representing the number of times a user of the client application 154 has liked, liked, reshared, and/or replied to messages containing an image or video. can do.

[0071] 일부 예들에서, 이력 집계 신호들(109)은 클라이언트 애플리케이션(154)의 사용자가 연결 그래프(134)에서 사용자에 링크된 계정들(141)로부터의 메시지들을 즐겨찾기, 좋아요, 재공유하고 그리고/또는 그에 답신한 횟수들, 및/또는 사용자가 연결 그래프(134)에서 사용자에 링크되지 않은 계정들(141)로부터의 메시지들을 즐겨찾기, 좋아요, 재공유하고 그리고/또는 그에 답신한 횟수들을 표현하는 신호들을 포함할 수 있다. 일부 예들에서, 예측 관리자(110)는 메시징 플랫폼(104) 상의 데이터 저장소로부터 이력 집계 신호들(109)을 획득한다. 일부 예들에서, 예측 관리자(110)는 이력 집계 신호들(109)을 획득하기 위해 데이터 서비스(165)에 요청을 송신한다. 일부 예들에서, 요청은 클라이언트 애플리케이션(154)의 사용자의 사용자 식별자를 포함한다. 일부 예들에서, 이력 집계 신호들(109)은 일괄 집계 정보 및 실시간 집계 정보를 포함한다. 일괄 집계 정보는 비교적 긴 이력(예컨대, 50일 초과)을 포함할 수 있다. 일부 예들에서 일괄 집계 정보는 지난 날(또는 지난 며칠)로부터의 상호작용을 포함하지 않을 수 있다. 실시간 집계 정보는 비교적 최근 상호작용 이력(예컨대, 지난 30분 정도 이내)을 포함할 수 있다.[0071] In some examples, historical aggregation signals 109 indicate that a user of client application 154 may bookmark, like, reshare messages from accounts 141 linked to the user in connection graph 134 and/or A signal representing the number of times it has responded, and/or the number of times the user has bookmarked, liked, reshared and/or replied to messages from accounts 141 not linked to the user in the connection graph 134 . may include In some examples, prediction manager 110 obtains historical aggregate signals 109 from a data store on messaging platform 104 . In some examples, prediction manager 110 sends a request to data service 165 to obtain historical aggregation signals 109 . In some examples, the request includes a user identifier of a user of the client application 154 . In some examples, historical aggregation signals 109 include batch aggregation information and real-time aggregation information. Batch aggregation information may include a relatively long history (eg, more than 50 days). In some examples, the batch aggregate information may not include interactions from the past day (or past few days). The real-time aggregate information may include a history of relatively recent interactions (eg, within the last 30 minutes or so).

[0072] 콘텐츠-관련 신호들(111)은 대화 그래프(126)의 메시지의 콘텐츠들의 하나 이상의 양상들을 표현하는 신호들을 포함할 수 있다. 일부 예들에서, 콘텐츠-관련 신호들(111)은 메시지의 길이 및/또는 콘텐츠가 텍스트, 비디오 또는 이미지를 포함하는지를 표현하는 신호들을 포함할 수 있다. 일부 예들에서, 예측 관리자(110)는 메시징 플랫폼(104) 상의 데이터 저장소로부터 콘텐츠-관련 신호들(111)을 획득한다. 일부 예들에서, 예측 관리자(110)는 콘텐츠-관련 신호들(111)을 획득하기 위해 데이터 서비스(165)에 요청을 송신한다. 일부 예들에서, 요청은 대화 그래프(126)의 메시지들의 메시지 식별자들을 포함한다.[0072] The content-related signals 111 may include signals representing one or more aspects of the contents of the message of the conversation graph 126 . In some examples, content-related signals 111 may include signals representing the length of the message and/or whether the content includes text, video, or image. In some examples, prediction manager 110 obtains content-related signals 111 from a data store on messaging platform 104 . In some examples, prediction manager 110 sends a request to data service 165 to obtain content-related signals 111 . In some examples, the request includes message identifiers of messages of conversation graph 126 .

[0073] 유사성 신호들(113)은, 사용자가 즐겨찾기 또는 좋아요 한 다른 메시지들과 메시지가 얼마나 유사한지를 표현하는 하나 이상의 신호들을 포함할 수 있다. 예컨대, 유사성 신호들(113)은 특정 메시지와 사용자가 즐겨찾기 또는 좋아요 한 하나 이상의 다른 메시지들 사이의 유사성의 레벨을 표현할 수 있고, 유사성의 레벨이 비교적 높은 경우, 이는 잠재적 긍정적 인게이지먼트의 표시를 제공할 수 있다. 일부 예들에서, 유사성 신호들(113)은 사용자가 메시지에 인게이징한 다른 사용자들과 얼마나 유사한지를 표현하는 하나 이상의 신호들을 포함할 수 있다. 예컨대, 사용자의 사용자 프로필이 메시지에 인게이징한 사용자 프로필들과 비교적 유사한 것으로 결정되는 경우, 이는 잠재적 긍정적 인게이지먼트의 표시를 제공할 수 있다. 일부 예들에서, 예측 관리자(110)는 메시징 플랫폼(104) 상의 데이터 저장소로부터 유사성 신호들(113)을 획득할 수 있다. 일부 예들에서, 예측 관리자(110)는 유사성 신호들(113)을 획득하기 위한 요청을 데이터 서비스(165)에 송신할 수 있다. 일부 예들에서, 요청은 사용자의 메시지 식별자들 및/또는 사용자 식별자들을 포함할 수 있다.[0073] Similarity signals 113 may include one or more signals representing how similar the message is to other messages that the user has liked or liked. For example, similarity signals 113 may represent a level of similarity between a particular message and one or more other messages that the user has liked or liked, and if the level of similarity is relatively high, this is an indication of potential positive gauge. can provide In some examples, similarity signals 113 may include one or more signals representing how similar the user is to other users engaged in the message. For example, if the user's user profile is determined to be relatively similar to the user profiles engaged in the message, this may provide an indication of potential positive engagement. In some examples, prediction manager 110 may obtain similarity signals 113 from a data store on messaging platform 104 . In some examples, prediction manager 110 may send a request to data service 165 to obtain similarity signals 113 . In some examples, the request may include the user's message identifiers and/or user identifiers.

[0074] 일부 예들에서, (예컨대, 특히, 메시지가 입소문(viral)이 날 때마다 뷰어-저자 관계들과 관련된 신호들에 대해) 예측을 위해 사용되는 신호들(106) 중 적어도 일부를 획득하기 위해 기술적인 어려움들 또는 난관들이 존재한다. 인기 메시지들은 비교적 많은 양(예컨대, 일부 경우들에서, 80K 초과)의 응답들을 가질 수 있다. 이는 또한 다수의 사용자들이 동시에 인기 메시지를 시도(try)하고 볼 수 있음을 의미한다. 각각의 뷰어에 대해, 메시징 플랫폼(104)은 인기 메시지에 답신한 모든 작성자들과의 관계를 획득할 수 있다. 후보 메시지 선택기(108)와 관련하여 위에서 설명된 기술들을 사용하여, 메시징 플랫폼(104)은 80K로부터 4K로 메시지들의 총 수를 필터링할 수 있을 수 있으며, 이는 여전히, 관계 신호들을 획득하기 위한 4K개의 뷰어 작성자 쌍들이 있을 수 있음을 의미할 수 있다.[0074] In some examples, it is technically possible to obtain at least some of the signals 106 used for prediction (eg, particularly for signals related to viewer-author relationships whenever the message goes viral). Difficulties or difficulties exist. Popular messages may have a relatively large amount of responses (eg, in some cases greater than 80K). This also means that multiple users can try and view popular messages at the same time. For each viewer, the messaging platform 104 may obtain a relationship with all authors who have responded to popular messages. Using the techniques described above with respect to the candidate message selector 108, the messaging platform 104 may filter the total number of messages from 80K to 4K, which is still 4K for obtaining relationship signals. It may mean that there may be viewer-writer pairs.

[0075] 또한, 일부 예들에서, 뷰어가 작성자를 팔로우하지 않기 때문에, 뷰어 작성자 관계는 심지어 존재하지 않을 수 있다. 이러한 유형들의 상황을 처리하기 위해, 데이터 서비스(166)에 대해 키(key)로서 뷰어-작성자에 의한 질의(query) 대신, 메시징 플랫폼(104)은 한 번에 뷰어 식별자에 의해 질의되고 다른 모든 작성자들과의 그의 관계를 얻을 수 있다. 그 후, 메시징 플랫폼(104)은 임의의 작성자들이 답신들의 작성자들과 오버랩되는지를 결정하고 적절한 경우 신호들을 유지할 수 있다. 이는 뷰어 당 4K개의 호출들을 행하는 대신에 예측 관리자(110)가 하나의 호출을 생성 및 송신할 수 있기 때문에 네트워크 호출들을 비교적 큰 크기만큼 감소시킨다.[0075] Also, in some examples, the viewer author relationship may not even exist because the viewer does not follow the author. To handle these types of situations, instead of querying by viewer-author as a key to data service 166, messaging platform 104 is queried by viewer identifier at once and all other authors You can get his relationship with them. Messaging platform 104 may then determine if any authors overlap with the authors of replies and maintain signals if appropriate. This reduces network calls by a relatively large amount because prediction manager 110 can make and send one call instead of making 4K calls per viewer.

[0076] 메시지 레벨 신호들은 다른 기술적 어려움이 존재할 수 있다. 예컨대, 대규모 대화들에 대해 메시징 플랫폼(104)은 각각의 뷰어에 대해 4K개의 질의들로 다른 데이터 서비스들(166)에 질의할 수 있다. 이는 데이터 서비스(166)가 동일한 메시지 식별자에 대해 너무 많은 질의들을 수신하는 "핫-키(hot-key)" 문제들을 유발할 수 있다. 위에서 식별된 어려움을 극복하기 위해, 메시징 플랫폼(104)은 인-메모리 캐싱(in-memory caching)을 사용할 수 있다. 기본 데이터 서비스(166)가 핫-키를 표시하는 경우, 서비스는 메모리에 특징들을 캐시할 것이다. 예컨대, 메시지 T는 입소문이 나고 응답들 R1,R2...R4000을 갖고, 메시지 특징들은 메시지 내 문자들의 수이다. 그 후 1000명의 사용자들이 동일한 메시지에 대한 요청들을 동시에(또는 거의 동시에) 전송한다. 데이터 서비스(166)가 핫-키를 표시하는 경우, 각각의 사용자에 대해 데이터 서비스(166)를 호출하는 대신, 메시징 플랫폼(104)은 매우 짧은 지속기간 동안 메모리에 R1,R2..R4000에 대한 문자 값을 각각 저장하고 그것들을 단지 사용할 수 있다.[0076] Message level signals may present other technical difficulties. For example, for large conversations, the messaging platform 104 may query other data services 166 with 4K queries for each viewer. This can cause “hot-key” problems in which data service 166 receives too many queries for the same message identifier. To overcome the difficulties identified above, the messaging platform 104 may employ in-memory caching. If the underlying data service 166 indicates a hot-key, the service will cache the features in memory. For example, message T is word of mouth and has responses R1, R2...R4000, the message characteristics being the number of characters in the message. 1000 users then send requests for the same message simultaneously (or nearly simultaneously). When data service 166 presents a hot-key, instead of invoking data service 166 for each user, messaging platform 104 stores in memory for R1,R2..R4000 for a very short duration. You can store character values individually and just use them.

[0077] 예측 모델들(112)은 트레이닝 데이터(148)와 함께 입력된 하나 이상의 기계 학습 알고리즘들(149)에 의해 트레이닝된 예측 모델들이다. 기계 학습 알고리즘들(149)은 마르코프(Markov) 모델들, 로지스틱 회귀, 결정 트리 분석, 랜덤 포레스트 분석, 신경망(neural net)들 및 이들의 조합들 중 하나 이상을 포함할 수 있다. 일반적으로, 기계 학습은 컴퓨터가 작업들의 클래스들을 수행하는 동안 기계 학습 프로세스가 획득하는 경험 또는 데이터로부터 생성된 피드백을 사용하여 이러한 작업들을 수행하도록 배우는 분야이다. 지도식 기계 학습에서, 컴퓨터는 오퍼레이터 또는 프로그래머에 의해 미리 결정된 대로 예시적인 입력들과 원하는 출력들 사이를 매핑하는 하나 이상의 규칙들 또는 기능들을 학습할 수 있다. 그 후, 레이블링된 데이터 포인트들은 컴퓨터를 트레이닝하는 데 사용될 수 있다. 비지도식 기계 학습은 레이블링되지 않은 데이터를 사용하는 것을 수반할 수 있고, 컴퓨터는 그 후 예컨대, 데이터 세트의 차원수(dimensionality)를 감소시킴으로써 데이터의 암시적 관계를 식별할 수 있다.[0077] Predictive models 112 are predictive models trained by one or more machine learning algorithms 149 input with training data 148 . Machine learning algorithms 149 may include one or more of Markov models, logistic regression, decision tree analysis, random forest analysis, neural nets, and combinations thereof. In general, machine learning is the field in which a computer learns to perform classes of tasks while using feedback generated from experience or data that a machine learning process acquires while performing classes of tasks. In supervised machine learning, a computer may learn one or more rules or functions that map between exemplary inputs and desired outputs as predetermined by an operator or programmer. The labeled data points can then be used to train the computer. Unsupervised machine learning can involve using unlabeled data, and a computer can then identify implicit relationships in the data, for example, by reducing the dimensionality of the data set.

[0078] 도 1d에 도시된 바와 같이, 예측 모델들(112)은 긍정적 인게이지먼트 모델(115), 부정적 인게이지먼트 모델(117) 및 상호 인게이지먼트 모델(119)을 포함할 수 있다. 긍정적 인게이지먼트 모델(115)은 긍정적 인게이지먼트 확률(120)을 컴퓨팅하도록 구성되고, 부정적 인게이지먼트 모델(117)은 부정적 인게이지먼트 확률(122)을 컴퓨팅하도록 구성되며, 상호 인게이지먼트 모델(119)은 상호 인게이지먼트 확률(124)을 컴퓨팅하도록 구성된다. 예컨대, 대화 보기 요청(121)(예컨대, 사용자가 메시지 B를 선택함)에 대한 응답으로, 인게이지먼트 예측기(125)는 신호들(106)을 획득하고 신호들(106)(이는 또한 사용자 식별자 및 메시지 식별자를 포함함)을 긍정적 인게이지먼트 모델(115), 부정적 인게이지먼트 모델(117) 및/또는 상호 인게이지먼트 모델(119)에 적용하여 긍정적 인게이지먼트 확률(120), 부정적 인게이지먼트 확률(122) 및/또는 상호 인게이지먼트 확률(124)을 각각 결정할 수 있다.[0078] As shown in FIG. 1D , the predictive models 112 may include a positive engagement model 115 , a negative engagement model 117 , and a mutual engagement model 119 . The positive engagement model 115 is configured to compute a positive engagement probability 120 , and the negative engagement model 117 is configured to compute a negative engagement probability 122 , The model 119 is configured to compute the mutual engagement probability 124 . For example, in response to the conversation view request 121 (eg, the user selects message B), the engagement predictor 125 obtains signals 106 and signals 106 (which are also user identifiers). and message identifier) to the positive engagement model 115, negative engagement model 117 and/or mutual engagement model 119 to obtain positive engagement probability 120, negative engagement An engagement probability 122 and/or a mutual engagement probability 124 may be determined, respectively.

[0079] 긍정적 인게이지먼트 확률(120)은 사용자가 메시지를 긍정적으로 보거나 인게이징할 것으로 예측되는 확률 값을 표시한다. 일부 예들에서, 긍정적 인게이지먼트 확률(120)에 대한 확률 값은 제1 값과 제2 값 사이의 숫자(x)이며, 여기서 제1 값은 사용자가 메시지를 긍정적으로 보거나 인게이징할 것으로 예측되는 0 가능성(chance)을 표현하고, 제2 값은 사용자가 메시지를 긍정적으로 보거나 인게이징할 것으로 예측되는 100% 가능성을 표현한다. 일부 예들에서, 긍정적 인게이지먼트 확률(120)에 대한 확률 값은 양수이다. 일부 예들에서, 제1 값은 0이고 제2 값은 1이다. 그러나, 제1 값 및 제2 값에 대한 값들은 임의의 유형의 범위(예컨대, 0 내지 1, 0 내지 50, 0 내지 100 등)를 정의할 수 있다. 다시 말해, 긍정적 인게이지먼트 확률(120)은 사용자가 메시지를 즐겨찾기하거나, 좋아요 하거나, 공유할 것으로 예측되는 가능성의 레벨을 표시한다.[0079] The positive engagement probability 120 indicates a probability value that the user is expected to positively view or engage with the message. In some examples, the probability value for positive engagement probability 120 is a number (x) between a first value and a second value, wherein the first value is a value at which the user is expected to positively view or engage the message. 0 represents a chance, and a second value represents a 100% likelihood that the user will positively view or engage the message. In some examples, the probability value for positive engagement probability 120 is positive. In some examples, the first value is 0 and the second value is 1. However, the values for the first value and the second value may define any type of range (eg, 0 to 1, 0 to 50, 0 to 100, etc.). In other words, the positive engagement probability 120 indicates the level of likelihood that the user is predicted to like, like, or share the message.

[0080] 부정적 인게이지먼트 확률(122)은 사용자가 메시지를 부정적으로 보거나 인게이징할 것으로 예측되는 확률 값을 표시한다. 일부 예들에서, 부정적 인게이지먼트 확률(122)에 대한 확률 값은 제1 값과 제2 값 사이의 숫자(y)이며, 여기서 제1 값은 사용자가 메시지를 부정적으로 보거나 인게이징할 것으로 예측되는 0 가능성을 표현하고, 제2 값은 사용자가 메시지를 부정적으로 보거나 인게이징할 것으로 예측되는 100% 가능성을 표현한다. 일부 예들에서, 부정적 인게이지먼트 확률(122)에 대한 확률 값은 음수이다. 일부 예들에서, 제1 값은 0이고 제2 값은 음수이다. 그러나, 제1 값 및 제2 값에 대한 값들은 임의의 유형의 범위(예컨대, 0 내지 -1, 0 내지 -50, 0 내지 -100 등)를 정의할 수 있다. 일부 예들에서, 부정적 인게이지먼트 확률(122)은 사용자가 메시지의 작성자를 차단하고, 메시지의 작성자를 언팔로우하고 그리고/또는 메시지를 욕설로서 보고할 것으로 예측되는 가능성의 레벨을 표시한다.[0080] Negative engagement probability 122 indicates a probability value that the user is expected to negatively view or engage with the message. In some examples, the probability value for negative engagement probability 122 is a number y between a first value and a second value, wherein the first value is a value at which the user is expected to negatively view or engage the message. 0 represents a likelihood, and a second value represents a 100% likelihood that the user will negatively view or engage the message. In some examples, the probability value for negative engagement probability 122 is negative. In some examples, the first value is 0 and the second value is negative. However, the values for the first value and the second value may define any type of range (eg, 0 to -1, 0 to -50, 0 to -100, etc.). In some examples, negative engagement probability 122 indicates a level of likelihood that a user is expected to block the author of the message, unfollow the author of the message, and/or report the message as abusive.

[0081] 상호 인게이지먼트 확률(124)은 사용자가 대화 그래프(126)를 계속 전개할 것으로 예측되는 확률 값을 표시한다. 일부 예들에서, 상호 인게이지먼트 확률(124)에 대한 확률 값은 제1 값과 제2 값 사이의 숫자(z)이며, 여기서 제1 값은 사용자가 대화 그래프(126)를 계속 전개할 것으로 예측되는 0 가능성을 표현하고, 제2 값은 사용자가 대화 그래프(126)를 계속 전개할 것으로 예측되는 100% 가능성을 표현한다. 일부 예들에서, 상호 인게이지먼트 확률(124)에 대한 확률 값은 양수이다. 일부 예들에서, 제1 값은 0이고 제2 값은 1이다. 그러나, 제1 값 및 제2 값에 대한 값들은 임의의 유형의 범위(예컨대, 0 내지 1, 0 내지 50, 0 내지 100 등)를 정의할 수 있다. 일부 예들에서, 상호 인게이지먼트 확률(124)은 사용자가 메시지에 답신하고 그리하여 대화 그래프(126)를 추가로 전개할 것으로 예측되는 가능성의 레벨을 표시한다.[0081] Mutual engagement probability 124 indicates a probability value at which the user is predicted to continue developing dialog graph 126 . In some examples, the probability value for the mutual engagement probability 124 is a number z between a first value and a second value, wherein the first value predicts that the user will continue to develop the conversation graph 126 . represents a zero probability of being, and the second value represents a 100% probability that the user is expected to continue developing the conversation graph 126 . In some examples, the probability value for mutual engagement probability 124 is positive. In some examples, the first value is 0 and the second value is 1. However, the values for the first value and the second value may define any type of range (eg, 0 to 1, 0 to 50, 0 to 100, etc.). In some examples, the mutual engagement probability 124 indicates a level of likelihood that the user is expected to reply to the message and thus further develop the conversation graph 126 .

[0082] 특정 후보 노드(128)와 관련하여, 인게이지먼트 예측기(125)는 긍정적 인게이지먼트 모델(115)을 사용하여, 메시지가 사용자에 의해 긍정적 인게이지먼트를 수신할 특정 확률을 갖는다고 결정하고, 부정적 인게이지먼트 모델(117)을 사용하여, 메시지는 사용자에 의해 부정적 인게이지먼트를 수신할 특정 확률을 갖는다고 결정하고, 상호 인게이지먼트 모델(119)을 사용하여, 메시지가 사용자에 의해 상호 인게이지먼트를 수신할 특정 확률을 갖는다고 결정할 수 있다. 일부 예들에서, 각각의 후보 노드(128)에 대해, 인게이지먼트 예측기(125)는 모든 3개의 예측 결과들(118)을 결정한다. 일부 예들에서, 각각의 노드(128)에 대해, 인게이지먼트 예측기(125)는 상호 인게이지먼트 확률(124), 및 긍정적 인게이지먼트 확률(120) 또는 부정적 인게이지먼트 확률(122) 중 적어도 하나를 예측한다.[0082] With respect to a particular candidate node 128, the engagement predictor 125 uses the positive engagement model 115 to determine that the message has a certain probability of receiving positive engagement by the user; Using the negative engagement model 117, it is determined that the message has a certain probability of receiving a negative engagement by the user, and using the mutual engagement model 119, the message is mutually engaged by the user. It may be determined that it has a certain probability of receiving an engagement. In some examples, for each candidate node 128 , the engagement predictor 125 determines all three prediction results 118 . In some examples, for each node 128 , engagement predictor 125 determines mutual engagement probability 124 , and at least one of positive engagement probability 120 or negative engagement probability 122 . predict one.

[0083] 인게이지먼트 스코어러(114)는 예측 결과들(118)을 사용하여 대화 그래프(126) 내 메시지들에 대한 인게이지먼트 값들(116)을 컴퓨팅한다. 인게이지먼트 값(116)은 개개의 노드(128)에 대한 전체 인게이지먼트 값(예컨대, 클라이언트 애플리케이션(154)의 사용자에 대한 관련성 레벨을 표시함)을 제공할 수 있으며, 이는 메시징 플랫폼(104) 상에서 보다 건강한 대화(healthy conversation)들을 장려한다. 예컨대, 특정 후보 노드(128)와 관련하여, 인게이지먼트 스코어러(114)는 긍정적 인게이지먼트 확률(120), 부정적 인게이지먼트 확률(122), 및 상호 인게이지먼트 확률(124)을 결합하여 인게이지먼트 값(116)을 제공할 수 있으며, 이는 사용자에 대한 가장 관련성 있는 노드들(128)을 선택하는 데 사용될 수 있다. 예컨대, 인게이지먼트 스코어러(114)는 예측 결과들(118)의 값들을 결합하여 특정 메시지에 대한 인게이지먼트 값(116)을 결정할 수 있다. 부정적 인게이지먼트 확률(122)의 확률 값이 비교적 높은 경우(예컨대, 더 큰 음의 값을 가짐), 이 값은 상호 인게이지먼트 확률(124) 및 긍정적 인게이지먼트 확률(120)의 양의 값들을 상쇄할 수 있다. 간단한 예에서, 긍정적 인게이지먼트 확률(120)이 +10이고 부정적 인게이지먼트 확률(122)이 -10이고 상호 인게이지먼트 확률(124)이 +10인 경우, 메시지에 대한 인게이지먼트 값(116)은 +10이다.[0083] Engagement scorer 114 uses prediction results 118 to compute engagement values 116 for messages in conversation graph 126 . Engagement value 116 may provide an overall engagement value (eg, indicative of a level of relevance for a user of client application 154 ) for an individual node 128 , which may include messaging platform 104 . ) encourages healthier conversations. For example, with respect to a particular candidate node 128, the engagement scorer 114 combines a positive engagement probability 120, a negative engagement probability 122, and a mutual engagement probability 124 to An engagement value 116 may be provided, which may be used to select the most relevant nodes 128 for the user. For example, engagement scorer 114 may combine values of prediction results 118 to determine engagement value 116 for a particular message. If the probability value of negative engagement probability 122 is relatively high (eg, having a greater negative value), then this value is the positive value of mutual engagement probability 124 and positive engagement probability 120 . values can be offset. In a simple example, if the positive engagement probability 120 is +10, the negative engagement probability 122 is -10, and the mutual engagement probability 124 is +10, the engagement value for the message ( 116) is +10.

[0084] 일부 예들에서, 인게이지먼트 스코어러(114)는 예측 결과들(118)에 가중치를 적용하고 그 후 가중된 긍정적 인게이지먼트 확률(120), 부정적 인게이지먼트 확률(122), 및 상호 인게이지먼트 확률(124)에 기초하여 인게이지먼트 값(116)을 컴퓨팅할 수 있다. 일부 예들에서, 상호 인게이지먼트 확률(124)에 적용된 가중치는 음의 인게이지먼트 확률(122)에 적용된 가중치보다 더 크다.[0084] In some examples, engagement scorer 114 weights prediction results 118 and then weights positive engagement probability 120 , negative engagement probability 122 , and mutual engagement An engagement value 116 may be computed based on the probability 124 . In some examples, the weight applied to the mutual engagement probability 124 is greater than the weight applied to the negative engagement probability 122 .

[0085] 인게이지먼트 값들(116)은 사용자에게 렌더링되도록 대화 그래프(126) 내의 관련성 있는 메시지 또는 메시지들의 분기를 선택하는 데 사용된다. 예컨대, 타임라인 관리자(142)는 예측 관리자(110)로부터 인게이지먼트 값들(116)을 수신하고 인게이지먼트 값들(116)을 사용하여 대화 그래프(126) 내 메시지들 순위를 매긴다(예컨대, 최고로부터 최저로). 타임라인 관리자(142)는 순위에 따라 타임라인(156) 상에서 렌더링되도록 적어도 대화 그래프(126)의 메시지들의 서브세트를 네트워크(150)를 통해 제공할 수 있다. 일부 예들에서, 타임라인 관리자(142)는 타임라인(156) 상에서 렌더링되도록 대화 그래프(126)의 메시지들의 서브세트만을 제공하고, 여기서 서브세트는 대화 그래프(126)의 더 높은 순위의 메시지들을 포함한다. 그 후, 타임라인 관리자(142)는 클라이언트 애플리케이션(154)으로부터 대화 그래프(126)의 부가적인 메시지들에 대한 요청을 수신할 수 있고(예컨대, 대화 그래프(126)의 더 많은 메시지들을 보기 위해 사용자 어포던스(user affordance)를 선택함), 타임라인 관리자(142)는 클라이언트 애플리케이션(154)에 송신되도록 대화 그래프(126)로부터 메시지들의 다음 그룹을 선택할 수 있다. 이러한 방식으로, 메시징 시스템(100)은 긍정적 인게이지먼트를 제공할 가능성이 적은 대화 그래프(126)의 부분들을 축소할 수 있지만, 그 후 사용자에 의해 요청될 때 이러한 메시지를 표면화할 수 있다.[0085] Engagement values 116 are used to select a relevant message or branch of messages in conversation graph 126 to be rendered to the user. For example, timeline manager 142 receives engagement values 116 from prediction manager 110 and uses engagement values 116 to rank messages in conversation graph 126 (eg, best from the lowest). The timeline manager 142 may provide at least a subset of the messages of the conversation graph 126 over the network 150 to be rendered on the timeline 156 according to a ranking. In some examples, timeline manager 142 provides only a subset of the messages of conversation graph 126 to be rendered on timeline 156 , where the subset includes higher ranked messages in conversation graph 126 . do. Timeline manager 142 may then receive a request from client application 154 for additional messages in conversation graph 126 (eg, a user to view more messages in conversation graph 126 ). selecting a user affordance), timeline manager 142 may select the next group of messages from conversation graph 126 to be sent to client application 154 . In this way, the messaging system 100 may collapse portions of the conversation graph 126 that are less likely to provide positive engagement, but may then surface these messages when requested by the user.

[0086] 일부 예들에서, 타임라인 관리자(142)는 인게이지먼트 값들(116)을 사용하여 타임라인(156) 상에 렌더링되도록 대화 그래프(126)의 하나 이상의 분기들(132)(또는 분기(132)의 서브세트)을 선택한다. 예컨대, 분기(132)가 높은 인게이지먼트 값들(116)(또는 임계 레벨을 넘는 인게이지먼트 값들(116))을 갖는 하나 이상의 노드들(128)을 포함하는 경우, 분기(132)가 사용자에게 대화에 대한 더 많은 맥락을 제공하기 위해 낮은 인게이지먼트 값(116)(또는 임계 레벨 아래의 인게이지먼트 값들(116))을 갖는 하나 이상의 노드들(128)을 포함할 수 있다는 사실에도 불구하고, 타임라인 관리자(142)는 클라이언트 애플리케이션(154)에 전달된 메시지들의 일부로서 렌더링되도록 전체 분기(132)를 선택할 수 있다. 일부 예들에서, 특정 분기(132)는 특정 분기(132) 내의 노드들(128)에 대한 인게이지먼트 값들(116)의 평균일 수 있는 전체 결합 값과 연관된다. 그 후, 타임라인 관리자(142)는 그들의 전체 인게이지먼트 값들에 따라 분기들(132) 순위를 매길 수 있다.[0086] In some examples, timeline manager 142 uses engagement values 116 to render on timeline 156 on one or more branches 132 (or branch 132 ) of dialog graph 126 . subset) is selected. For example, if branch 132 includes one or more nodes 128 with high engagement values 116 (or engagement values 116 above a threshold level), then branch 132 to the user Notwithstanding the fact that it may include one or more nodes 128 with a low engagement value 116 (or engagement values 116 below a threshold level) to provide more context for the conversation. , the timeline manager 142 may select the entire branch 132 to be rendered as part of the messages delivered to the client application 154 . In some examples, a particular branch 132 is associated with an overall combined value, which may be the average of the engagement values 116 for nodes 128 within the particular branch 132 . The timeline manager 142 may then rank the branches 132 according to their overall engagement values.

[0087] 일부 예들에서, 타임라인 관리자(142)는 클라이언트 애플리케이션(154)에 제공되는 메시지들의 세트에의 포함을 위해 높은 인게이지먼트 값들(또는 임계 레벨을 넘는 인게이지먼트 값들(116))을 갖는 노드들(128)을 선택한다. 일부 예들에서, 타임라인 관리자(142)는 최고-최저 인게이지먼트 값들(116)에 따라(예컨대, 여기서 최고 인게이지먼트 값들(116)을 갖는 분기들(132) 또는 노드들(128)이 사용자에게 먼저 제시됨), 선택된 분기들(132) 및/또는 노드들(128) 순위를 매긴다. 메시징 플랫폼(104)은 그의 스코어링 알고리즘 내에 상호 인게이지먼트 확률(124)을 통합(또는 예측)하기 때문에, 메시징 플랫폼(104)은 메시징 플랫폼(104) 상의 더 많은 대화들을 장려한다.[0087] In some examples, the timeline manager 142 provides nodes with high engagement values (or engagement values 116 above a threshold level) for inclusion in the set of messages provided to the client application 154 . Choose (128). In some examples, timeline manager 142 determines that according to highest-lowest engagement values 116 (eg, where branches 132 or nodes 128 with highest engagement values 116 are user first), the selected branches 132 and/or nodes 128 are ranked. Because the messaging platform 104 incorporates (or predicts) the mutual engagement probability 124 within its scoring algorithm, the messaging platform 104 encourages more conversations on the messaging platform 104 .

[0088] 일부 예들에서, 순위 목록(158)은 사용자와 관련성 있는 것으로 결정되는 대화 그래프(126)의 메시지들의 서브세트를 표현한다. 예컨대, 대화 그래프(126)의 일부 메시지들은 제1 사용자와 관련될 수 있는 반면, 대화 그래프(126)의 다른 메시지들은 제2 사용자와 관련될 수 있다. 대조적으로, 일부 종래의 접근법은 각각에 대해 동일한 보기를 제공할 수 있는 투표-기반 메커니즘을 사용한다. 더 상세하게는, 인게이지먼트 예측기(125)는 제1 사용자와 관련된 신호들(106)(예컨대, 인게이지먼트 이력, 연결 그래프 데이터 등)을 획득하고 대화 그래프(126) 내 각각의 메시지에 대한 예측 결과들(118)을 획득할 수 있으며, 이는 그 후 인게이지먼트 값들(116)을 컴퓨팅하는 데 사용된다. 타임라인 관리자(142)는 예측 관리자(110)로부터 인게이지먼트 값들(116)을 수신하고, 그 후 인게이지먼트 값들(116)을 사용하여 대화 그래프(126)의 메시지들 순위를 매길 수 있다(이는 (예컨대, 상호 인게이지먼트 확률(124)을 통합함으로써) 사용자가 대화를 계속할 가능성을 증가시킬 수 있음).[0088] In some examples, ranked list 158 represents a subset of messages of conversation graph 126 that are determined to be relevant to the user. For example, some messages in conversation graph 126 may relate to a first user, while other messages in conversation graph 126 may relate to a second user. In contrast, some conventional approaches use a vote-based mechanism that can provide the same view for each. More specifically, the engagement predictor 125 obtains the signals 106 (eg, engagement history, connection graph data, etc.) associated with the first user and for each message in the conversation graph 126 . Prediction results 118 may be obtained, which are then used to compute engagement values 116 . Timeline manager 142 may receive engagement values 116 from prediction manager 110 , and then use engagement values 116 to rank messages in conversation graph 126 ( This may increase the likelihood that the user will continue the conversation (eg, by incorporating the mutual engagement probability 124 ).

[0089] 그러나, 제2 사용자와 관련하여, 인게이지먼트 예측기(125)는 제2 사용자와 관련된 신호들(106)을 획득하고, 제2 사용자에 맞춤제작된 예측 결과들(118)을 획득할 수 있으며, 이는 그 후 인게이지먼트 값들(116)을 컴퓨팅하는 데 사용된다. 그 후, 타임라인 관리자(142)는 인게이지먼트 값들(116)을 사용하여 대화 그래프(126) 내 메시지들 순위를 매길 수 있다. 따라서, 제2 사용자에 대해 클라이언트 애플리케이션(154) 상에 디스플레이되는 순위 목록(158)의 메시지들은 제1 사용자에 대해 클라이언트 애플리케이션(154) 상에 디스플레이되는 순위 목록(158)의 메시지들과 상이할 수 있다.[0089] However, with respect to the second user, the engagement predictor 125 may obtain signals 106 associated with the second user, and prediction results 118 tailored to the second user, This is then used to compute the engagement values 116 . The timeline manager 142 may then use the engagement values 116 to rank the messages in the conversation graph 126 . Accordingly, the messages in the ranked list 158 displayed on the client application 154 for the second user may be different from the messages in the ranked list 158 displayed on the client application 154 for the first user. have.

[0090] 메시징 플랫폼(104)은 예측 모델들(112)(예컨대, 긍정적 인게이지먼트 모델(115), 부정적 인게이지먼트 모델(117) 및 상호 인게이지먼트 모델(119))을 트레이닝하고 트레이닝된 예측 모델들(112)을 인게이지먼트 예측기(125)에 제공하여서, 인게이지먼트 예측기(125)가 대화 보기들을 결정할 때 예측 결과들(118)을 결정할 수 있게 하는 예측 모델 트레이너(140)를 포함한다. 일부 예들에서, 예측 모델 트레이너(140)는 예측 모델들(112)을 재트레이닝(및 이에 의해 업데이트)하기 위해 주기적으로(예컨대, 매일, 매주, 매월) 실행되도록 구성된다. 일부 예들에서, 예측 모델 트레이너(140)는 트레이닝 데이터(148)를 사용하여 예측 모델들(112)을 트레이닝하기 위해 오프라인 모드에서 동작하고, 그 후 예측 관리자(110)가 활성일 때 온라인 모드에서 사용되도록 예측 관리자(110)에 예측 모델들(112)을 전송한다. 일부 예들에서, 예측 모델 트레이너(140)는 긍정적 인게이지먼트 모델(115), 부정적 인게이지먼트 모델(117), 및 상호 인게이지먼트 모델(119)의 가중치들 및 편향들을 예측 관리자(110)에 전송한다.[0090] The messaging platform 104 trains predictive models 112 (eg, positive engagement model 115 , negative engagement model 117 , and mutual engagement model 119 ) and uses the trained predictive models. and a predictive model trainer 140 that provides 112 to engagement predictor 125 to enable engagement predictor 125 to determine predictive results 118 when determining conversation views. In some examples, predictive model trainer 140 is configured to run periodically (eg, daily, weekly, monthly) to retrain (and thereby update) predictive models 112 . In some examples, predictive model trainer 140 operates in offline mode to train predictive models 112 using training data 148 , and then uses in online mode when predictive manager 110 is active. The prediction models 112 are transmitted to the prediction manager 110 as much as possible. In some examples, predictive model trainer 140 assigns weights and biases of positive engagement model 115 , negative engagement model 117 , and mutual engagement model 119 to predictive manager 110 . send.

[0091] 일부 예들에서, 예측 모델 트레이너(140)는 서버 컴퓨터(102) 상에서 실행된다. 일부 예들에서, 예측 모델 트레이너(140)는 서버 컴퓨터(102)와 별개인 컴퓨팅 디바이스 상에서 실행되며, 여기서 예측 모델 트레이너(140) 및 인게이지먼트 예측기(125)는 네트워킹 인터페이스를 통해 서로 통신한다. 도 1d에 도시된 바와 같이, 예측 모델 트레이너(140)는 하나 이상의 기계 학습 알고리즘들(149)에 따라 트레이닝 데이터(148)를 사용하여 예측 모델들(112)을 트레이닝한다. 트레이닝 데이터(148)는 신호들(106)과 관련하여 논의된 데이터 중 하나 이상(또는 임의의 조합)을 포함할 수 있으며, 이 데이터는 이전 시간 기간으로부터의 이력 데이터, 예컨대, 지난 날, 지난 달, 지난 해 등으로부터의 데이터일 수 있다. 예컨대, 트레이닝 데이터(148)는 데이터 구조-관련 신호들(101), 건강-관련 신호들(103), 인게이지먼트 신호들(105), 소셜 그래프 신호들(107), 이력 집계 신호들(109) 및 콘텐츠-관련 신호들(111)을 포함한다.[0091] In some examples, predictive model trainer 140 runs on server computer 102 . In some examples, predictive model trainer 140 runs on a computing device separate from server computer 102 , where predictive model trainer 140 and engagement predictor 125 communicate with each other via a networking interface. 1D , predictive model trainer 140 trains predictive models 112 using training data 148 in accordance with one or more machine learning algorithms 149 . Training data 148 may include one or more (or any combination) of data discussed with respect to signals 106 , which data may include historical data from a previous time period, eg, last day, last month. , data from last year, etc. For example, training data 148 may include data structure-related signals 101 , health-related signals 103 , engagement signals 105 , social graph signals 107 , historical aggregation signals 109 . ) and content-related signals 111 .

[0092] 도 1e는 일 양상에 따라 예측 모델(112)을 트레이닝하기 위해 트레이닝 데이터(148)를 획득하는 예를 예시한다. 예컨대, 타임라인 관리자(142)는 메시지들의 스트림을 클라이언트 애플리케이션(154)에 주입할 수 있다. 하나 이상의 스트림 주입들의 부분으로서, 타임라인 관리자(142)는 주입 로그(127)에 메시지 주입들에 관한 정보를 저장할 수 있다. 주입 로그(127)는 어떤 메시지들이 클라이언트 애플리케이션(154)에 제공되었는지를 식별할 수 있고 주입들과 연관된 특정 특징들을 식별할 수 있다. 일부 예들에서, 특징들은 위에서 설명된 신호들(106) 중 임의의 것과 관련된 정보를 포함할 수 있다. 또한, 주입 로그(127)는 예측 결과들(118) 및/또는 하나 이상의 대화 그래프들(126)의 메시지들과 연관된 인게이지먼트 값들(116)과 같은 예측 관리자(110)에 대한 세부사항들을 포함할 수 있다. 사용자들이 클라이언트 애플리케이션(154) 상의 메시지들과 상호작용할 때, 클라이언트 이벤트 로그(123)는 사용자가 메시지들에 답신했는지, 특정 메시지들을 즐겨찾기하거나 좋아요 했는지, 메시지들을 재공유했는지 등과 같은 사용자 인게이지먼트 정보를 저장한다. 일부 예들에서, 클라이언트 이벤트 로그(123)는 메시지가 사진 또는 비디오를 가졌는지, 그리고/또는 메시지가 대화 그래프(126)의 특정 깊이로부터 온 것인지와 같은 정보를 포함한다. 클라이언트 이벤트 로그(123)의 정보는 저장을 위해 메시징 플랫폼(104)으로 송신될 수 있다. 트레이닝 데이터(148)는 클라이언트 이벤트 로그(123)로부터의 정보 및 주입 로그(127)로부터의 정보를 포함할 수 있고, 트레이닝 데이터(148)는 예측 모델들(112)을 트레이닝하는 데 사용된다. 일부 예들에서, 예측 모델 트레이너(140)는 오프라인 분석에서 예측 모델들(112)을 주기적으로 트레이닝하고, 트레이닝의 결과들(예컨대, 가중치/편향)을 예측 관리자(110)에 전송한다.[0092] 1E illustrates an example of obtaining training data 148 to train a predictive model 112 in accordance with an aspect. For example, timeline manager 142 can inject a stream of messages into client application 154 . As part of one or more stream injections, timeline manager 142 may store information about message injections in injection log 127 . The injection log 127 may identify which messages were provided to the client application 154 and may identify specific characteristics associated with injections. In some examples, the features may include information related to any of the signals 106 described above. The injection log 127 also includes details about the prediction manager 110 , such as engagement values 116 associated with messages in the prediction results 118 and/or one or more conversation graphs 126 . can do. As users interact with messages on the client application 154 , the client event log 123 displays user engagement such as whether the user has responded to messages, liked or liked certain messages, re-shared messages, and the like. Save the information. In some examples, the client event log 123 includes information such as whether the message had a photo or video, and/or whether the message was from a particular depth of the conversation graph 126 . The information in the client event log 123 may be sent to the messaging platform 104 for storage. Training data 148 may include information from client event log 123 and information from injection log 127 , and training data 148 is used to train predictive models 112 . In some examples, predictive model trainer 140 periodically trains predictive models 112 in offline analysis and sends the results of the training (eg, weight/bias) to predictive manager 110 .

[0093] 일부 예들에서, 메시징 플랫폼(104)은 대화 그래프(126)의 메시지들과 관련하여 2-레벨 순위매김 메커니즘을 수행하도록 구성된다. 예컨대, 2-레벨 순위매김은 메시징 플랫폼(104) 상의 대화들 내 욕설을 처리하는 효과적인 메커니즘을 제공할 수 있다. 일부 예들에서, 2-레벨 순위매김은 하드 순위매김 및 소프트 순위매김을 포함한다. 일부 예들에서, 하드 순위매김은 작성자 및/또는 메시지가 욕설이라고 간주되는 신뢰도 레벨에 기초하여 대화 그래프(126)의 메시지들을 상이한 섹션들(또는 그룹들)로 섹션화(sectioning)하는 것을 포함한다. 일부 예들에서, 하드 순위매김은 대화 보기 요청(121)을 요청하는 사용자의 관점에서 개인화되지 않는다. 오히려, 하드 순위매김은 콘텐츠 자체에 대한 신호들 및/또는 메시지의 작성자에 대한 신호들을 사용하여 수행될 수 있다. 일부 예들에서, 소프트 순위매김은 예측 결과들(118)을 컴퓨팅하고 대화 그래프(126) 내 메시지들에 대한 인게이지먼트 값들(116)을 생성하고 그 후 인게이지먼트 값들(116)에 따라 각각의 섹션 내 메시지들 순위를 매기는 것을 포함한다. 일부 예들에서, 위에서 설명된 바와 같이, 소프트 순위매김은 대화 보기 요청(121)을 요청하는 사용자의 관점에서 개인화된다. 이러한 방식으로, 인게이지먼트 값들(116)에 따라 순위가 매겨진 보다 고품질 섹션의 메시지들이 사용자에게 제시된다. 일부 예들에서, 하드 순위매김이 먼저 수행되고, 그 후 소프트 순위매김이 이어진다. 그러나, 일부 예들에서, 하드 순위매김은 하드 순위매김을 수행하기 위해 예측 모델들(112)의 출력을 사용함으로써 개인화될 수 있다.[0093] In some examples, the messaging platform 104 is configured to perform a two-level ranking mechanism with respect to the messages of the conversation graph 126 . For example, two-level ranking may provide an effective mechanism for handling profanity in conversations on the messaging platform 104 . In some examples, the two-level ranking includes hard ranking and soft ranking. In some examples, hard ranking includes sectioning the messages of conversation graph 126 into different sections (or groups) based on author and/or confidence level at which the message is considered profane. In some examples, the hard ranking is not personalized from the perspective of the user requesting the conversation view request 121 . Rather, hard ranking may be performed using signals to the content itself and/or signals to the author of the message. In some examples, soft ranking computes the prediction results 118 and generates engagement values 116 for messages in the conversation graph 126 and then ranks each according to the engagement values 116 . Includes ranking the messages in a section. In some examples, as described above, the soft ranking is personalized from the perspective of the user requesting the conversation view request 121 . In this way, a higher quality section of messages ranked according to engagement values 116 is presented to the user. In some examples, hard ranking is performed first, followed by soft ranking. However, in some examples, hard ranking may be personalized by using the output of predictive models 112 to perform hard ranking.

[0094] 도 1a 및 도 1f와 관련하여 도시된 바와 같이, 일부 예들에서, 메시징 플랫폼(104)은 메시지들의 콘텐츠 품질에 기초하여 복수의 섹션들(160)로 대화 그래프(126)의 메시지들을 분류(예컨대, 섹션화)하도록 구성된 콘텐츠 품질 분류기(147)를 포함할 수 있다. 메시지들의 콘텐츠 품질은 메시지 레벨 또는 작성자 레벨에서 욕설(또는 유독성) 확률들(또는 신뢰도들)을 포함할 수 있다. 일부 예들에서, 콘텐츠 품질 분류기(147)는 특정 메시지에 대한 욕설 확률(예컨대, 이는 콘텐츠 자체가 욕설이거나 메시지를 생성하는 작성자 또는 계정이 플랫폼 상에서 욕설 행위에 링크될 수 있는 확률에 기초할 수 있음)을 결정(또는 수신)할 수 있다. 욕설 확률이 비교적 높은 경우(또는 작성자 및/또는 메시지가 욕설로 간주되는 신뢰도 레벨이 비교적 높은 경우), 콘텐츠 품질 분류기(147)는 메시지를 하나의 섹션(160)(예컨대, 저품질 또는 욕설 섹션)으로 분류할 수 있거나, 욕설 확률이 비교적 낮은 경우(또는 메시지 및/또는 작성자가 욕설로 간주되는 신뢰도 레벨이 비교적 낮은 경우), 콘텐츠 품질 분류기(147)는 메시지를 다른 섹션(160)(예컨대, 고품질 또는 비-욕설 섹션)으로 분류할 수 있다. 다시 말해서, 콘텐츠 품질 분류기(147)는 대화 그래프(126)의 노드들(128)(또는 분기들(132))을 섹션들(160)로 분할하도록 구성된다. 각각의 섹션(160)은 품질 레벨(또는 욕설(또는 유독성) 레벨)의 상이한 카테고리화(또는 분류)를 지칭할 수 있다. 콘텐츠 품질 분류기(147)는 제1 메시지가 비교적 저품질을 갖고 제2 메시지가 비교적 고품질을 갖는 것으로 결정할 수 있으며, 여기서 콘텐츠 품질 분류기(147)는 제1 메시지(또는 제1 메시지를 포함하는 분기(132))를 제1 섹션(예컨대, 제1 섹션은 저품질 섹션으로 간주됨)에 할당할 수 있고, 제2 메시지(또는 제2 메시지를 포함하는 분기(132))를 제2 섹션(예컨대, 제2 섹션은 고품질 섹션으로 간주됨)에 할당할 수 있다.[0094] As shown in relation to FIGS. 1A and 1F , in some examples, the messaging platform 104 classifies (eg, categorizes the messages of the conversation graph 126 into a plurality of sections 160 based on the content quality of the messages (eg, and a content quality classifier 147 configured to section). The content quality of messages may include profanity (or toxic) probabilities (or beliefs) at the message level or at the author level. In some examples, the content quality classifier 147 may be based on the proficiency of profanity for a particular message (e.g., it may be based on the probability that the content itself is profane or that the author or account generating the message may be linked to profanity on the platform) can be determined (or received). If the probability of profanity is relatively high (or if the author and/or the message has a relatively high level of confidence that the message is considered profane), the content quality classifier 147 divides the message into a section 160 (eg, low quality or profane section). If it is possible to classify, or if the probability of profanity is relatively low (or if the message and/or author has a relatively low level of confidence that the message and/or author is considered profane), the content quality classifier 147 may classify the message into another section 160 (e.g., high quality or non-profanity section). In other words, the content quality classifier 147 is configured to partition the nodes 128 (or branches 132 ) of the conversation graph 126 into sections 160 . Each section 160 may refer to a different categorization (or classification) of quality levels (or profanity (or toxic) levels). The content quality classifier 147 may determine that the first message has a relatively low quality and the second message has a relatively high quality, where the content quality classifier 147 may determine the first message (or branch 132 containing the first message). )) to the first section (eg, the first section is considered a low quality section), and the second message (or branch 132 containing the second message) to the second section (eg, the second section) Sections are considered high quality sections).

[0095] 콘텐츠 품질 분류기(147)에 의해 수행되는 분류 또는 섹션화는 2-레벨 순위매김 메커니즘의 제1 부분(예컨대, 하드 순위매김)으로 간주될 수 있다. 일부 예들에서, 섹션들(160)은 적어도 2개의 상이한 섹션들을 포함할 수 있으며, 이들 각각은 별개의 품질 카테고리 또는 분류를 표현한다. 일부 예들에서, 섹션들(160)은 저품질 섹션(162), 중품질 섹션(164), 및 고품질 섹션(166)을 포함한다. 일부 예들에서 섹션이라는 용어는 카테고리 또는 분류를 지칭할 수 있다. 3개의 섹션들(160)이 도 1f에 도시되지만, 섹션들(160)은 2개의 섹션들을 포함하는 섹션들의 임의의 수 또는 3개 초과의 섹션들의 임의의 수를 포함할 수 있다. 콘텐츠 품질 분류기(147)에 의한 분류 이후, 저품질 섹션(162)은 저품질인 것으로 결정된 대화 그래프(126)로부터 노드들(128)(또는 분기(132))을 식별하거나 이를 포함하고, 중품질 섹션(164)은 중품질인 것으로 결정된 대화 그래프(126)로부터 노드들(128)(또는 분기(132))을 식별하거나 이를 포함하고, 고품질 섹션(166)은 고품질인 것으로 결정된 대화 그래프(126)로부터 노드들(128)(또는 분기(132))을 식별하거나 이를 포함한다. 일부 예들에서, 중품질 섹션(164)은 욕설일 수 있는 메시지들을 포함하거나 메시지를 게시하는 계정이 중간 신뢰도로 욕설 행위에 링크될 수 있는 확률이 있다. 일부 예들에서, 저품질 섹션(162)은 방관자에 의해 보고되고 검토된 경우 욕설로서 판단될 가능성이 높은 메시지들을 포함하거나, 신뢰할 수 없는 링크를 포함하거나 메시지를 게시하는 계정이 높은 확률로 욕설 행위에 링크된다.[0095] The classification or sectioning performed by the content quality classifier 147 may be considered the first part of a two-level ranking mechanism (eg, hard ranking). In some examples, sections 160 may include at least two different sections, each representing a distinct quality category or classification. In some examples, sections 160 include low quality section 162 , medium quality section 164 , and high quality section 166 . In some examples the term section may refer to a category or classification. Although three sections 160 are shown in FIG. 1F , sections 160 may include any number of sections including two sections or any number of more than three sections. After classification by the content quality classifier 147, the low-quality section 162 identifies or contains nodes 128 (or branch 132) from the dialog graph 126 that has been determined to be of low quality, and the medium-quality section ( 164 identifies or includes nodes 128 (or branch 132 ) from dialog graph 126 determined to be of medium quality, and high quality section 166 is a node from dialog graph 126 determined to be of high quality Identify or include s 128 (or branch 132 ). In some examples, the medium quality section 164 contains messages that may be abusive or there is a probability that the account posting the message may be linked to abusive behavior with medium confidence. In some examples, the low-quality section 162 contains messages that are likely to be judged as abusive if reported and reviewed by bystanders, contain untrusted links, or link to abusive behavior with a high probability that the account posting the message is do.

[0096] 일부 예들에서, 콘텐츠 품질 분류기(147)는 대화 그래프(126)의 노드들(128)(또는 분기들(132))을 섹션들(160)로 분류하는 분류 모델(161)(또는 다수의 모델들)을 포함한다. 일부 예들에서, 분류 모델(161)은 하나 이상의 기계 학습 알고리즘에 적용된 트레이닝 데이터를 사용하여 트레이닝되는 기계 학습 모델이다. 일부 예들에서, 분류 모델(161)은 신경망을 포함한다. 트레이닝 데이터는 시간 기간(예컨대, 일, 주, 월, 년 등)에 걸쳐 획득되고 그 후 오프라인 모드 ― 이 경우 업데이트된 분류 모델(161)은 콘텐츠 품질 분류기(147)로 송신됨 ― 에서 분류 모델(161)을 트레이닝(또는 재트레이닝)하는 데 사용될 수 있다.[0096] In some examples, the content quality classifier 147 classifies the nodes 128 (or branches 132 ) of the conversation graph 126 into sections 160 , the classification model 161 (or multiple models). ) is included. In some examples, classification model 161 is a machine learning model that is trained using training data applied to one or more machine learning algorithms. In some examples, the classification model 161 comprises a neural network. Training data is acquired over a period of time (eg, days, weeks, months, years, etc.) and then the classification model ( 161) can be used to train (or retrain).

[0097] 콘텐츠 품질 분류기(147)는 분류 모델(161)과 관련된 하나 이상의 신호들(163)을 획득하고 분류 모델(161)에 신호들(163)을 입력하여 대화 그래프(126)의 어떤 메시지들이 저품질 섹션(162), 중품질 섹션(164) 또는 고품질 섹션(166)으로 분류되어야 하는지를 결정할 수 있다. 대화 그래프(126)의 특정 메시지(예컨대, 노드(128))에 대해, 분류 모델(161)의 출력은 품질 분류, 예컨대, 저품질 섹션(162), 중품질 섹션(164), 또는 고품질 섹션(166) 중 어느 하나를 식별할 수 있다. 일부 예들에서, 대화 그래프(126)의 노드들(128)(또는 분기들(132))은 분류 모델(161)에 의해 결정된 섹션(160)(또는 분류)으로 주석이 달린다. 일부 예들에서, 콘텐츠 품질 분류기(147)는 메시징 플랫폼(104) 상의 데이터 저장소에 노드들(128)(또는 분기들(132))의 분류를 저장한다.[0097] The content quality classifier 147 obtains one or more signals 163 associated with the classification model 161 and inputs the signals 163 to the classification model 161 so that any messages in the conversation graph 126 are identified as low quality sections ( 162 ), medium quality section 164 , or high quality section 166 . For a particular message (eg, node 128 ) of conversation graph 126 , the output of classification model 161 is a quality classification, eg, low-quality section 162 , medium-quality section 164 , or high-quality section 166 . ) can be identified. In some examples, nodes 128 (or branches 132 ) of dialog graph 126 are annotated with section 160 (or classification) determined by classification model 161 . In some examples, the content quality classifier 147 stores the classification of nodes 128 (or branches 132 ) in a data store on the messaging platform 104 .

[0098] 대화 그래프(126)의 특정 메시지를 분류하기 위해, 일부 예들에서, 신호들(163)은 클라이언트 애플리케이션(154)에 의해 생성된 하나 이상의 신호들 및/또는 메시징 플랫폼(104)에 의해 생성된 하나 이상의 신호들을 포함한다. 일부 예들에서, 신호들(163)은 예측 결과들(118)을 결정하는 데 사용되는 신호들(106)과 상이한 하나 이상의 신호들을 포함한다. 일부 예들에서, 신호들(163)은 메시지의 콘텐츠를 표현하는 하나 이상의 신호들을 포함한다. 일부 예들에서, 신호들(163)은 콘텐츠를 생성한 작성자의 사용자 이력을 표현하는 하나 이상의 신호들을 포함한다. 일부 예들에서, 신호들(163)은 콘텐츠를 생성한 작성자의 사용자 프로필을 모델링하는 하나 이상의 신호들을 포함한다. 일부 예들에서, 신호들(163)은 메시징 플랫폼(104) 상에서 작성자의 행동을 모델링하는 하나 이상의 신호들을 포함한다. 일부 예들에서, 신호들(163)은 메시지 텍스트, 로깅 이력과 같은 사용자의 행동 이력, 사용자가 사용중인 디바이스의 유형, 그들이 욕설로서 보고된 횟수들 등을 표현하는 신호들을 포함할 수 있다. 이들 신호들(163)에 기초하여, 콘텐츠 품질 분류기(147)는 메시지가 욕설인지 및/또는 사용자가 폭력적(abusive)인지를 예측할 수 있다. 일단 그 확률들(또는 신뢰도들 또는 점수들)이 결정되면, 콘텐츠 품질 분류기(147)는 섹션화 결정들을 내릴 수 있다. 예컨대, 메시지가 높은 신뢰도로 욕설이고 그것을 작성한 사용자가 또한 높은 신뢰도로 폭력적인 경우, 콘텐츠 품질 분류기(147)는 메시지를 최악의 품질 섹션, 예컨대, 저품질 섹션(162)에서 분류할 수 있다.[0098] To classify a particular message in the conversation graph 126 , in some examples, the signals 163 may include one or more signals generated by the client application 154 and/or one or more signals generated by the messaging platform 104 . includes signals. In some examples, signals 163 include one or more signals that are different from signals 106 used to determine prediction results 118 . In some examples, signals 163 include one or more signals representing content of the message. In some examples, signals 163 include one or more signals representing a user history of an author who created the content. In some examples, signals 163 include one or more signals that model a user profile of an author who created the content. In some examples, signals 163 include one or more signals that model an author's behavior on messaging platform 104 . In some examples, signals 163 may include signals representing message text, a history of the user's actions, such as logging history, the type of device the user is using, the number of times they have been reported as abusive, and the like. Based on these signals 163 , the content quality classifier 147 can predict whether the message is abusive and/or the user is abusive. Once the probabilities (or beliefs or scores) have been determined, the content quality classifier 147 can make sectioning decisions. For example, if the message is abusive with high confidence and the user who wrote it is also violent with high confidence, content quality classifier 147 may classify the message in a worst quality section, eg, low quality section 162 .

[0099] 일부 예들에서, 콘텐츠 품질 분류기(147)는 메시지의 메시지 식별자 및/또는 콘텐츠를 생성한 작성자의 사용자 식별자를 수신할 수 있고, 메시지 식별자 및/또는 사용자 식별자에 대한 응답으로 콘텐츠 품질 분류기(147)는 분류 모델(161)에 입력될 신호들(163)을 획득할 수 있다. 일부 예들에서, 콘텐츠 품질 분류기(147)는 메시지 저장소(138)로부터 메시지의 콘텐츠를 획득하기 위해 메시지 식별자를 사용할 수 있다. 일부 예들에서, 메시지 식별자를 수신하는 대신에, 콘텐츠 품질 분류기(147)는 메시지의 콘텐츠를 수신할 수 있다. 일부 예들에서, 콘텐츠 품질 분류기(147)는 도 1c를 참조하여 설명된 바와 같이 임의의 방식으로 하나 이상의 데이터 서비스들(165)과 통신함으로써 작성자에 속하는 하나 이상의 신호들을 획득하기 위해 사용자 식별자를 사용할 수 있다. 일부 예들에서, 섹션들(160) 중 하나로의 메시지의 분류는 메시지 생성 시에 수행될 수 있다. 일부 예들에서, 메시지의 분류는 대화 보기 요청(121)의 수신 시간에(또는 그 쯤에) 수행된다. 일부 예들에서, 콘텐츠 품질 분류기(147)는 신호들(163)을 분류 모델(161)과 호환 가능한 포맷으로 변환할 수 있다.[0099] In some examples, content quality classifier 147 may receive a message identifier of the message and/or a user identifier of an author who created the content, and in response to the message identifier and/or user identifier, content quality classifier 147 Signals 163 to be input to the classification model 161 may be obtained. In some examples, the content quality classifier 147 may use the message identifier to obtain the content of the message from the message store 138 . In some examples, instead of receiving the message identifier, the content quality classifier 147 may receive the content of the message. In some examples, the content quality classifier 147 may use the user identifier to obtain one or more signals belonging to the author by communicating with one or more data services 165 in any manner as described with reference to FIG. 1C . have. In some examples, classification of the message into one of sections 160 may be performed upon message creation. In some examples, the classification of the message is performed at (or about) the time of receipt of the conversation view request 121 . In some examples, the content quality classifier 147 can convert the signals 163 into a format compatible with the classification model 161 .

[00100] 일부 예들에서, 타임라인 관리자(142) 및/또는 예측 관리자(110)는 서버 통신 인터페이스(예컨대, 중고품 호출, REST 호출, GraphQL 요청 등)를 통해 콘텐츠 품질 분류기(147)와 통신할 수 있으며, 여기서 메시지 식별자 및 /또는 사용자 식별자는 콘텐츠 품질 분류기(147)로 송신되고, 콘텐츠 품질 분류기(147)는 결정된 분류 대로 대화 그래프(126)의 노드(128)(또는 분기(132))에 주석을 달고 그리고/또는 서버 통신 인터페이스를 통해 분류 정보를 요청하는 서비스에 분류를 리턴한다. 콘텐츠 품질 분류기(147)는 메시지가 저품질 섹션(162), 중품질 섹션(164) 또는 고품질 섹션(166)에 대응하는 콘텐츠 품질을 갖는지를 결정하기 위해 신호들(163)을 예측 모델(들)(161)에 제공할 수 있다. 일부 예들에서, 예측 결과들(118)과 달리, 섹션들(160)로의 메시지 분류는 대화 보기 요청(121)과 연관된 사용자에 대해 개인화되지 않는다.[00100] In some examples, timeline manager 142 and/or prediction manager 110 may communicate with content quality classifier 147 via a server communication interface (eg, thrift call, REST call, GraphQL request, etc.), where The message identifier and/or user identifier are sent to the content quality classifier 147, which annotates the node 128 (or branch 132) of the conversation graph 126 as determined by the classification; and / or return the classification to the service requesting the classification information through the server communication interface. The content quality classifier 147 evaluates the signals 163 to predictive model(s) ( 161) can be provided. In some examples, unlike the prediction results 118 , the message classification into sections 160 is not personalized for the user associated with the conversation view request 121 .

[00101] 대화 보기 요청(121)에 대한 응답으로, 위에서 이전에 논의된 바와 같이, 타임라인 관리자(142)는 예측 관리자(110)를 제어하여 대화 그래프(126)의 각각의 메시지(또는 그의 서브세트)에 대한 예측 결과들(118)을 생성하고 예측 결과들(118)에 기초하여 각각의 메시지에 대한 인게이지먼트 값(116)을 컴퓨팅한다. 예컨대, 인게이지먼트 예측기(125)는 예측과 관련된 신호들(106)을 획득하고 신호들(106)을 예측 모델들(112)에 입력하여 대화 그래프(126) 내 각각의 메시지(또는 메시지들의 서브세트)에 대한 예측 결과들(118)을 결정할 수 있다. 일부 예들에서, 예측 결과들(118)은 상호 인게이지먼트 확률(124)을 포함한다. 일부 예들에서, 예측 결과(118)는 상호 인게이지먼트 확률(124), 및 긍정적 인게이지먼트 확률(120) 또는 부정적 인게이지먼트 확률(122) 중 적어도 하나를 포함한다. 일부 예들에서, 예측 결과들(118)은 상호 인게이지먼트 확률(124), 긍정적 인게이지먼트 확률(120), 및 부정적 인게이지먼트 확률(122)을 포함한다.[00101] In response to the conversation view request 121 , as previously discussed above, the timeline manager 142 controls the prediction manager 110 to display each message (or a subset thereof) in the conversation graph 126 . generate prediction results 118 for each message and compute an engagement value 116 for each message based on the prediction results 118 . For example, engagement predictor 125 obtains signals 106 associated with prediction and inputs signals 106 to predictive models 112 for each message (or sub-messages) in conversation graph 126 . set) for prediction results 118 . In some examples, the prediction results 118 include a mutual engagement probability 124 . In some examples, the prediction result 118 includes a mutual engagement probability 124 , and at least one of a positive engagement probability 120 or a negative engagement probability 122 . In some examples, the prediction results 118 include a mutual engagement probability 124 , a positive engagement probability 120 , and a negative engagement probability 122 .

[00102] 인게이지먼트 스코어러(114)는 예측 결과들(118)을 사용하여(예컨대, 인게이지먼트 값(116)을 생성하기 위해 예측 결과들(118)을 결합함) 개개의 메시지에 대한 인게이지먼트 값(116)을 컴퓨팅할 수 있다. 그 후, 인게이지먼트 값들(116)은 저품질 섹션(162), 중품질 섹션(164) 및 고품질 섹션(166) 내 메시지들 순위를 개별적으로 매기기 위해 타임라인 관리자(142)에 의해 사용된다.[00102] Engagement scorer 114 uses prediction results 118 (eg, combines prediction results 118 to produce engagement value 116 ) an engagement value for an individual message. (116) can be computed. Engagement values 116 are then used by timeline manager 142 to rank messages in low quality section 162 , medium quality section 164 , and high quality section 166 individually.

[00103] 일부 예들에서, 타임라인 관리자는 콘텐츠 품질 분류기(147)로부터 저품질 섹션(162)으로서 분류된 메시지들의 목록들, 콘텐츠 품질 분류기(147)로부터 중품질 섹션(164)으로서 분류된 메시지들의 목록들, 및 콘텐츠 품질 분류기(147)로부터 고품질 섹션(166)으로서 분류된 메시지들의 목록들을 수신할 수 있다. 또한, 타임라인 관리자는 예측 관리자(110)로부터 인게이지먼트 값들(116)을 수신할 수 있다. 개개의 섹션(160) 내의 메시지들에 대한 인게이지먼트 값들(116)을 사용한 특정 섹션(160) 내의 메시지들의 순위 매김은 도 1f의 2-레벨 순위매김 메커니즘의 제2 부분으로 간주될 수 있다. 일부 예들에서, 2-레벨 순위매김 메커니즘의 제2 부분은 메시지들의 소프트 순위매김으로 간주될 수 있다.[00103] In some examples, the timeline manager includes lists of messages classified as low quality section 162 from content quality classifier 147 , lists of messages classified as medium quality section 164 from content quality classifier 147 , and Lists of messages classified as high quality section 166 may be received from content quality classifier 147 . The timeline manager may also receive engagement values 116 from the prediction manager 110 . Ranking of messages within a particular section 160 using the engagement values 116 for messages within the respective section 160 may be considered a second part of the two-level ranking mechanism of FIG. 1F . In some examples, the second part of the two-level ranking mechanism may be considered soft ranking of messages.

[00104] 일부 예들에서, 타임라인 관리자(142)는 예측 관리자(110)로부터의 인게이지먼트 값들(116)을 사용하여 순위가 매겨진, 저품질 섹션(162)에서 분류된 메시지들의 제1 순위 목록(158-1)을 생성할 수 있다. 일부 예들에서, 제1 순위 목록(158-1)은 저품질로서 분류된 대화 그래프(126)의 분기들(132)을 포함하고, 분기들(132)은 그들의 인게이지먼트 값들(116)에 따라 저품질 섹션(162) 내에서 순위가 매겨진다. 타임라인 관리자(142)는 예측 관리자(110)로부터의 인게이지먼트 값들(116)을 사용하여 순위가 매겨진, 중품질 섹션(164)에서 분류된 메시지들의 제2 순위 목록(158-2)을 생성할 수 있다. 일부 예들에서, 제2 순위 목록(158-2)은 중품질로서 분류된 대화 그래프(126)의 분기들(132)을 포함하고, 분기들(132)은 그들의 인게이지먼트 값들(116)에 따라 중품질 섹션(164) 내에서 순위가 매겨진다. 타임라인 관리자(142)는 예측 관리자(110)로부터의 인게이지먼트 값들(116)을 사용하여 순위가 매겨진, 고품질 섹션(166)에서 분류된 메시지들의 제3 순위 목록(158-3)을 생성할 수 있다. 일부 예들에서, 제3 순위 목록(158-3)은 고품질로서 분류된 대화 그래프(126)의 분기들(132)을 포함하고, 분기들(132)은 그들의 인게이지먼트 값들(116)에 따라 고품질 섹션(166) 내에서 순위가 매겨진다.[00104] In some examples, the timeline manager 142 is a first ranked list 158 - 1 of messages classified in the low quality section 162 , ranked using the engagement values 116 from the prediction manager 110 . ) can be created. In some examples, the first ranked list 158 - 1 includes branches 132 of the conversation graph 126 classified as low quality, the branches 132 being low quality according to their engagement values 116 . Within section 162 are ranked. The timeline manager 142 uses the engagement values 116 from the prediction manager 110 to generate a second ranked list 158-2 of messages classified in the medium quality section 164, ranked. can do. In some examples, second ranked list 158 - 2 includes branches 132 of conversation graph 126 classified as medium quality, branches 132 according to their engagement values 116 . They are ranked within the medium quality section 164 . The timeline manager 142 may use the engagement values 116 from the prediction manager 110 to generate a third ranked list 158-3 of messages classified in the high quality section 166, ranked. can In some examples, the third ranked list 158 - 3 includes branches 132 of the conversation graph 126 classified as high quality, the branches 132 being high quality according to their engagement values 116 . Within section 166 are ranked.

[00105] 타임라인 관리자(142)는 클라이언트 애플리케이션(154) 상에서 렌더링되도록 순위에 따라 적어도 고품질 섹션(166)의 메시지들의 서브세트를 송신할 수 있다(예컨대, 제3 순위 목록(158-3)의 적어도 일부를 송신함). 이러한 방식으로, 클라이언트 애플리케이션(154)의 사용자는 고품질로 간주되는 메시지들 ― 이들은 또한 그들의 인게이지먼트 값들(116)에 따라 또한 순위가 매겨짐 ― 을 볼 수 있다. 타임라인 관리자(142)는 대화 그래프(126)로부터 부가적인 메시지들을 보기 위한 후속 요청(들)을 요청할 수 있으며, 여기서 타임라인 관리자(142)는 제2 순위 목록(158-2)의 적어도 일부를 송신하고 나서, 제1 순위 목록(158-1)의 적어도 일부를 송신할 수 있다.[00105] The timeline manager 142 may transmit at least a subset of the messages of the high quality section 166 according to the rank to be rendered on the client application 154 (eg, at least a portion of the third ranked list 158-3). sent). In this way, the user of the client application 154 can see messages that are considered high quality, which are also ranked according to their engagement values 116 as well. The timeline manager 142 may request subsequent request(s) to view additional messages from the conversation graph 126 , where the timeline manager 142 selects at least a portion of the second ranked list 158-2. After transmitting, at least a portion of the first ranked list 158 - 1 may be transmitted.

[00106] 일부 예들에서, 타임라인 관리자(142)는 제3 순위 목록(158-3), 제2 순위 목록(158-2), 그 다음 제1 순위 목록(158-1)의 순서에 따라 대화 그래프(126)의 메시지들 순위를 매긴다. 따라서, 클라이언트 애플리케이션(154)은 먼저 인게이지먼트 값들(116)에 따라 순위가 매겨진 고품질 섹션(166)으로부터 메시지들을 렌더링하고, 인게이지먼트 값들(116)에 따라 순위가 매겨진 중품질 섹션(164)으로부터 메시지들을 렌더링하고, 마지막으로 인게이지먼트 값들(116)에 따라 순위가 매겨진 저품질 섹션(162)으로부터 메시지들을 렌더링한다. 고품질 섹션(166)이 10개의 메시지를 포함하고, 중품질 섹션(164)이 10개의 메시지를 포함하고, 저품질 섹션(162)은 10개의 메시지를 포함하는 경우 그리고 디스플레이된 메시지 임계치가 15인 경우, 클라이언트 애플리케이션(154)은 제3 순위 목록(158-3) 전체 및 제2 순위 목록(158-2)의 5개의 메시지들을 렌더링한다. 타임라인 관리자(142)는 대화 그래프(126)의 부가적인 메시지들을 디스플레이하라는 요청을 수신할 수 있으며, 여기서 타임라인 관리자(142)는 제2 순위 목록(158-2)의 남은 5개 메시지들을 송신하고 나서 제1 순위 목록(158-1)을 송신할 수 있다.[00106] In some examples, the timeline manager 142 arranges the conversation graph 126 according to the order of the third ranked list 158-3, the second ranked list 158-2, then the first ranked list 158-1. ) to rank the messages. Accordingly, the client application 154 first renders the messages from the high quality section 166 ranked according to the engagement values 116 , and the medium quality section 164 ranked according to the engagement values 116 . Render messages from , and finally from low quality section 162 ranked according to engagement values 116 . If high quality section 166 contains 10 messages, medium quality section 164 contains 10 messages, low quality section 162 contains 10 messages, and the displayed message threshold is 15; The client application 154 renders the entire third ranked list 158-3 and five messages of the second ranked list 158-2. Timeline manager 142 may receive a request to display additional messages in conversation graph 126 , where timeline manager 142 sends the remaining five messages of second ranked list 158-2. Then, the first priority list 158-1 may be transmitted.

[00107] 일부 예들에서, 하드 순위매김은 하드 순위매김을 수행하기 위해 예측 모델들(112)의 출력을 사용함으로써 개인화될 수 있다. 예컨대, 예측 관리자(110)는 위에서 논의된 바와 같이 예측 결과들(118) 및 인게이지먼트 값들(116)을 결정할 수 있다. 콘텐츠 품질 분류기(147)는 하드 순위매김이 대화 보기 요청(121)을 개시한 사용자의 관점에서 개인화되도록 하드 순위매김 기술들에 따라 메시지들을 분류(및/또는 순위 매김)하기 위해 예측 관리자(110)의 출력들을 사용할 수 있다.[00107] In some examples, the hard ranking may be personalized by using the output of the predictive models 112 to perform the hard ranking. For example, prediction manager 110 may determine prediction results 118 and engagement values 116 as discussed above. The content quality classifier 147 is configured to classify (and/or rank) messages according to hard ranking techniques such that the hard ranking is personalized from the perspective of the user who initiated the conversation view request 121 . outputs can be used.

[00108] 도 2는 일 양상에 따른 신경망(219)을 예시한다. 신경망(219)은 도 1a 내지 도 1d의 메시징 시스템(100)의 상호 인게이지먼트 모델(119)의 일 예일 수 있다. 그러나, 도 2와 관련하여 논의된 특징들은 긍정적 인게이지먼트 모델(115) 및 부정적 인게이지먼트 모델(117)을 포함하는 예측 모델들(112) 중 임의의 것에 적용될 수 있다. 일부 예들에서, 신경망(219)은 도 1f의 분류 모델(161)의 예일 수 있다. 신경망(219)은 상호 인게이지먼트 확률(224)을 출력하도록 구성된다. 상호 인게이지먼트 확률(224)은 도 1a의 상호 인게이지먼트 확률(124)의 예일 수 있다. 신경망(219)은 노드들(260)의 상호 연결된 그룹일 수 있으며, 여기서 각각의 노드(260)는 인공 뉴런을 표현한다. 노드들(260)은 층들로 서로 연결되며, 하나의 층의 출력이 다음 층의 입력이 된다. 신경망(219)은 입력 층(262)에 의해 수신되는 입력(X1, X2 내지 XN)(예컨대, 신호들(106))을 변형하고, 이를 하나 이상의 은닉 층들(264)을 통해 변형하고(예컨대, 도 2는 하나의 은닉 층(264)을 예시함) 출력 층(266)을 통해 출력(Y1)(예컨대, 상호 인게이지먼트 확률(124))을 생성한다. 각각의 층은 노드들(260)의 세트의 서브세트로 구성된다.2 illustrates a neural network 219 according to an aspect. The neural network 219 may be an example of the mutual engagement model 119 of the messaging system 100 of FIGS. 1A-1D . However, the features discussed with respect to FIG. 2 can be applied to any of the predictive models 112 including the positive engagement model 115 and the negative engagement model 117 . In some examples, neural network 219 may be an example of classification model 161 of FIG. 1F . Neural network 219 is configured to output mutual engagement probability 224 . Mutual engagement probability 224 may be an example of mutual engagement probability 124 of FIG. 1A . Neural network 219 may be an interconnected group of nodes 260 , where each node 260 represents an artificial neuron. The nodes 260 are interconnected by layers, and the output of one layer becomes the input of the next layer. Neural network 219 transforms the input X 1 , X 2 through X N (eg, signals 106 ) received by input layer 262 , and transforms it through one or more hidden layers 264 , and (eg, FIG. 2 illustrates one hidden layer 264 ) produces an output Y 1 (eg, mutual engagement probability 124 ) via output layer 266 . Each layer consists of a subset of the set of nodes 260 .

[00109] 상호 인게이지먼트 확률(224)을 획득하기 위해 신경망(219)을 사용하는 것은 신경망(219)의 상호 연결된 노드들(260)에 가중화되고 편향된 숫자 입력을 적용하고 그들의 출력을 컴퓨팅하는 것을 수반할 수 있다. 신경망(219)의 각각의 노드(260)에 적용되는 가중치들 및 편향은 예컨대, 기계 학습 알고리즘(149)을 사용하여 (예컨대, 도 1a의 예측 모델 트레이너(140)에 의해) 신경망(219)을 트레이닝함으로써 획득될 수 있다. 신경망(219)의 노드들(260)은 적어도 입력 층(262) 및 출력 층(266)을 포함하는 둘 이상의 층들로 조직화될 수 있다. 다층 신경망(219)의 경우, 하나의 층으로부터의 출력이 다음 층에 대한 입력으로서 역할을 할 수 있다. 외부 출력 연결들이 없는 층들은 은닉 층들(264)로서 지칭될 수 있다. 각각의 노드(260)의 출력은 그의 입력의 가중 합에 편향을 더한 것의 함수이다.[00109] Using the neural network 219 to obtain the mutual engagement probability 224 may involve applying a weighted and biased numeric input to the interconnected nodes 260 of the neural network 219 and computing their outputs. can The weights and biases applied to each node 260 of the neural network 219 are computed using, for example, the machine learning algorithm 149 (eg, by the predictive model trainer 140 of FIG. 1A ). It can be obtained by training. The nodes 260 of the neural network 219 may be organized into two or more layers including at least an input layer 262 and an output layer 266 . In the case of a multi-layer neural network 219 , the output from one layer may serve as an input to the next layer. Layers without external output connections may be referred to as hidden layers 264 . The output of each node 260 is a function of the weighted sum of its inputs plus the bias.

[00110] 상호 인게이지먼트 확률(224)을 획득하기 위해, 특징 값들(X1...XN)의 벡터는 입력 층(262)의 각각의 노드(260)에 대한 입력으로서 적용된다. 일부 예들에서, 특징 값들(X1...XN)의 벡터는 위에서 설명된 신호들(106)의 값들을 포함한다. 입력 층(262)은 은닉 층(264)의 노드들(260) 각각에 값들을 분배한다. 은닉 층(264)의 노드(260)에 도달하면, 각각의 입력 노드로부터의 값은 가중치로 곱해지고, 결과적인 가중화된 값들이 합산되고 가중화된 편향 값에 추가되어 결합된 값을 생성한다. 결합된 값은 값을 출력하는 전달 또는 활성화 함수를 통해 전달된다. 다음으로, 은닉 층(264)으로부터의 출력들은 신경망(219)의 출력 층(266)의 노드(260)로 분배된다. 출력 층(266)의 노드(260)에 도달하면, 각각의 은닉 층 노드로부터의 값은 가중치로 곱해지고, 결과적인 가중화된 값들이 합산되고 가중화된 편향 값에 추가되어 결합된 값을 생성한다. 결합된 값은 Y1(예컨대, 상호 인게이지먼트 확률(224))을 출력하는 전달 또는 활성화 함수를 통해 전달된다.To obtain a mutual engagement probability 224 , a vector of feature values X 1 ...X N is applied as input to each node 260 of the input layer 262 . In some examples, the vector of feature values X 1 ...X N includes values of the signals 106 described above. The input layer 262 distributes values to each of the nodes 260 of the hidden layer 264 . Upon reaching node 260 of hidden layer 264, the value from each input node is multiplied by a weight, and the resulting weighted values are summed and added to the weighted bias value to produce a combined value. . The combined value is passed through a pass or activation function that outputs a value. Next, the outputs from the hidden layer 264 are distributed to the node 260 of the output layer 266 of the neural network 219 . Upon reaching node 260 of output layer 266, the value from each hidden layer node is multiplied by a weight, and the resulting weighted values are summed and added to the weighted bias value to produce a combined value. do. The combined value is passed through a transfer or activation function that outputs Y 1 (eg, mutual engagement probability 224 ).

[00111] 도 3은 일 양상에 따라 대화 그래프의 메시징 순위를 매기기 위한 메시징 플랫폼의 예시적인 동작들을 도시하는 흐름도(300)를 예시한다.[00111] 3 illustrates a flow diagram 300 illustrating example operations of a messaging platform for ranking messaging of a conversation graph in accordance with an aspect.

[00112] 동작(302)은 네트워크(150)를 통해, 서버 컴퓨터(102)에 의해 실행 가능한 메시징 플랫폼(104) 상에 저장된 대화 그래프(126)의 메시지들을 리트리브하기 위한 대화 보기 요청(121)을 수신하는 것을 포함한다. 동작(304)은 메시징 플랫폼(104)에 의해, 예측 모델들(112)을 사용하여 대화 그래프(126)의 복수의 메시지들 각각에 대한 복수의 예측 결과들(118)을 결정하는 것을 포함하며, 여기서 복수의 예측 결과들(118)은 상호 인게이지먼트 확률(124)을 포함한다. 동작(306)은 메시징 플랫폼(104)에 의해, 예측 결과들(118)에 기초하여 복수의 메시지들 순위를 매기는 것을 포함한다. 동작(308)은 메시징 플랫폼(104)에 의해, 네트워크(150)를 통해, 순위에 따라 클라이언트 애플리케이션(154) 상에서 렌더링되도록 적어도 복수의 메시지들의 서브세트를 송신하는 것을 포함한다.[00112] The operation 302 includes receiving, via the network 150 , the conversation view request 121 for retrieving the messages of the conversation graph 126 stored on the messaging platform 104 executable by the server computer 102 . include The operation 304 includes determining, by the messaging platform 104 , a plurality of predictive results 118 for each of a plurality of messages of the conversation graph 126 using the predictive models 112 , Here, the plurality of prediction results 118 include a mutual engagement probability 124 . Act 306 includes ranking, by messaging platform 104 , a plurality of messages based on prediction results 118 . Operation 308 includes transmitting, by the messaging platform 104 , over the network 150 , at least a subset of the plurality of messages to be rendered on the client application 154 according to a ranking.

[00113] 도 4는 일 양상에 따라 대화 그래프의 메시지들 순위를 매기기 위한 메시징 플랫폼의 예시적인 동작들을 도시하는 흐름도(400)를 예시한다.[00113] 4 illustrates a flow diagram 400 illustrating example operations of a messaging platform for ranking messages in a conversation graph in accordance with an aspect.

[00114] 동작(402)은 네트워크(150)를 통해, 서버 컴퓨터(102)에 의해 실행 가능한 메시징 플랫폼(104) 상에 저장된 대화 그래프(126)의 메시지들을 리트리브하기 위한 대화 보기 요청(121)을 수신하는 것을 포함한다. 동작(404)은 메시징 플랫폼(104)에 의해, 예측 모델들(112)을 사용하여 대화 그래프(126)의 복수의 메시지들 각각에 대한 복수의 예측 결과들(118)을 결정하는 것을 포함한다. 결정하는 것은 예측 모델들(112)과 관련된 복수의 신호들(106)을 획득하는 것 ― 복수의 신호들은 대화 그래프(126)와 관련된 데이터 구조-관련 신호들(101)을 포함함 ― 및 복수의 예측 결과들(118)을 결정하기 위해 예측 모델들(112)에 복수의 신호들(106)을 입력하는 것을 포함할 수 있다. 동작(406)은 메시징 플랫폼(104)에 의해, 예측 결과들(118)에 기초하여 복수의 메시지들 순위를 매기는 것을 포함한다. 동작(408)은 메시징 플랫폼(104)에 의해, 네트워크(150)를 통해, 순위에 따라 클라이언트 애플리케이션(154) 상에서 렌더링되도록 적어도 복수의 메시지들의 서브세트를 송신하는 것을 포함한다.[00114] Operation 402 involves receiving, via network 150 , a conversation view request 121 for retrieving messages of the conversation graph 126 stored on the messaging platform 104 executable by the server computer 102 . include Operation 404 includes determining, by the messaging platform 104 , a plurality of predictive results 118 for each of a plurality of messages of the conversation graph 126 using the predictive models 112 . Determining includes obtaining a plurality of signals 106 associated with the predictive models 112 , the plurality of signals including data structure-related signals 101 associated with the dialog graph 126 , and a plurality of inputting the plurality of signals 106 to the prediction models 112 to determine prediction results 118 . Operation 406 includes ranking, by the messaging platform 104 , a plurality of messages based on the prediction results 118 . Act 408 includes sending, by the messaging platform 104 , over the network 150 , at least a subset of the plurality of messages to be rendered on the client application 154 according to a ranking.

[00115] 도 5는 일 양상에 따라 대화 그래프의 메시징 순위를 매기기 위한 메시징 플랫폼의 예시적인 동작들을 도시하는 흐름도(500)를 예시한다.[00115] 5 illustrates a flow diagram 500 illustrating example operations of a messaging platform for ranking messaging of a conversation graph in accordance with an aspect.

[00116] 동작(502)은 메시징 플랫폼(104)에 의해, 메시지들의 콘텐츠 품질에 기초하여 복수의 섹션들(160)로 대화 그래프(126)의 메시지들을 분류하는 것을 포함하며, 여기서 복수의 섹션들(160)은 제1 섹션 및 제2 섹션을 포함한다. 제1 섹션은 제2 섹션의 메시지들보다 더 높은 품질로서 결정된 대화 그래프(126)로부터의 메시지들을 갖는다. 동작(504)은 메시징 플랫폼(104)에 의해, 예측 모델들(112)을 사용하여 대화 그래프(126)의 복수의 메시지들 각각에 대한 복수의 예측 결과들(118)을 결정하는 것을 포함한다. 동작(506)은 메시징 플랫폼(104)에 의해, 제1 섹션의 메시지들에 대한 예측 결과들(118)에 기초하여 제1 섹션의 메시지들 순위를 매기는 것을 포함한다. 동작(508)은 메시징 플랫폼(104)에 의해, 순위에 따라 클라이언트 애플리케이션(154) 상에서 렌더링되도록 적어도 제1 섹션의 메시지서브세트를 송신하는 것을 포함한다.[00116] Act 502 includes categorizing, by messaging platform 104 , messages of conversation graph 126 into a plurality of sections 160 based on content quality of the messages, where plurality of sections 160 . includes a first section and a second section. The first section has messages from the conversation graph 126 determined to be of higher quality than the messages in the second section. Operation 504 includes determining, by the messaging platform 104 , a plurality of predictive results 118 for each of a plurality of messages of the conversation graph 126 using the predictive models 112 . Operation 506 includes ranking, by the messaging platform 104 , the messages of the first section based on the prediction results 118 for the messages of the first section. Act 508 includes sending, by the messaging platform 104 , the message subset of at least the first section to be rendered on the client application 154 according to the ranking.

[00117] 위의 설명에서, 수많은 세부사항들이 기술된다. 그러나, 본 개시내용의 이점을 갖는 당업자에게는 본 개시내용의 구현들이 이러한 특정 세부사항들 없이 실시될 수 있다는 것이 명백할 것이다. 일부 예시들에서, 잘-알려진 구조들 및 디바이스들은, 설명을 불명료하게 하는 것을 회피하기 위해 상세하게 도시되기보다는 블록도 형태로 도시된다.[00117] In the above description, numerous details are set forth. However, it will be apparent to one skilled in the art having the benefit of this disclosure that implementations of the disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form rather than in detail in order to avoid obscuring the description.

[00118] 상세한 설명의 일부 부분들은 컴퓨터 메모리 내에서 데이터 비트들에 대한 동작들의 기호적 표현들 및 알고리즘들의 관점에서 제시된다. 이들 알고리즘 설명들 또는 표현들은, 그들의 작업의 본질을 다른 당업자들에게 가장 효율적으로 전달하기 위하여 데이터 프로세싱 분야의 당업자들에 의해 사용되는 수단이다. 알고리즘은 여기에서 그리고 일반적으로, 원하는 결과로 이어지는 단계들의 자기 모순이 없는 시퀀스(self-consistent sequence)인 것으로 간주된다. 단계들은 물리량의 물리적 조작들을 요구하는 것들이다. 반드시 그러한 것은 아니지만 일반적으로, 그러한 양들은, 저장되고, 전달되고, 결합되고, 비교되고 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 취한다. 때로는, 주로 일반적인 용법의 이유들로, 이들 신호들은 비트들, 값들, 엘리먼트들, 심볼들, 문자들, 항들, 숫자들 등으로 지칭하는 것이 편리한 것으로 증명되었다.[00118] Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions or representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here and generally considered to be a self-consistent sequence of steps leading to a desired result. Steps are those that require physical manipulations of physical quantities. Generally, though not necessarily, such quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, etc.

[00119] 그러나 이러한 및 유사한 용어들 전부는 적절한 물리량과 연관될 것이고, 이러한 양들에 적용되는 편리한 레이블일 뿐이라는 점을 염두에 두어야 한다. 위의 논의들로부터 명백한 바와 같이 달리 구체적으로 언급되지 않으면, 설명 전반에 걸쳐, "식별하는", "결정하는", "계산하는", "업데이트하는", "송신하는", "수신하는", "생성하는", "변경하는" 등과 같은 용어들을 활용한 논의들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적(예컨대, 전자적) 양들로서 표현되는 데이터를, 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장, 송신 또는 디스플레이 디바이스들 내의 물리적 양들로서 유사하게 표현되는 다른 데이터로 조작 및/또는 변형하는 컴퓨터 시스템, 또는 유사한 전자 컴퓨팅 디바이스의 액션(action)들 및 프로세스들을 지칭한다는 것이 인지된다.[00119] It should be borne in mind, however, that all of these and similar terms will be associated with the appropriate physical quantities, and are merely convenient labels applied to these quantities. As apparent from the above discussions, unless specifically stated otherwise, throughout the description, "identifying", "determining", "calculating", "updating", "sending", "receiving", Discussions utilizing terms such as “generating,” “altering,” and the like refer to computer system memories or registers or other such data represented as physical (eg, electronic) quantities within registers and memories of a computer system. It is recognized that reference to actions and processes of a computer system, or similar electronic computing device, that manipulates and/or transforms other data similarly represented as physical quantities within information storage, transmission, or display devices.

[00120] 본 개시내용의 구현들은 또한 본원에서의 동작들을 수행하기 위한 장치에 관한 것이다. 이 장치는 요구되는 목적을 위해 특별히 구성될 수 있거나, 또는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은 플로피 디스크들, 광학 디스크들, CD-ROM들 및 자기-광학 디스크들, ROM(read-only memory)들, RAM(random access memory)들, EPROM들, EEPROM들, 자기 또는 광학 카드들, 플래시 메모리, 또는 전자 명령들을 저장하기에 적합한 임의의 유형의 매체들과 같은(그러나 이에 제한되지 않음) 비-일시적인 컴퓨터-판독 가능 저장 매체에 저장될 수 있다.[00120] Implementations of the present disclosure also relate to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purpose, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may include floppy disks, optical disks, CD-ROMs and magneto-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards. may be stored in a non-transitory computer-readable storage medium such as, but not limited to, flash memory, or any tangible medium suitable for storing electronic instructions.

[00121] "예" 또는 "예시적인"이란 단어는 예, 경우, 또는 예시로서 역할을 하는 것을 의미하도록 본원에서 사용된다. "예" 또는 "예시적인" 것으로서 본원에서 설명된 임의의 양상 또는 설계는 다른 양상들 또는 설계들에 비해 반드시 바람직하거나 유리한 것으로서 해석될 필요는 없다. 오히려, "예" 또는 "예시적인"이란 단어들의 사용은 견고한 방식으로 개념들을 제시하도록 의도된다. 본 출원에서 사용되는 바와 같은 "또는"이란 용어는 배타적인 "또는" 보다는 포괄적인 "또는"을 의미하도록 의도된다. 즉, 달리 명시되거나 문맥상 명확하지 않으면, "X는 A 또는 B를 포함한다"는 본래의 포괄적인 치환들 중 임의의 치환을 의미하도록 의도된다. 즉, X는 A를 포함하고; X는 B를 포함하고; 또는 X가 A 및 B 둘 모두 포함하는 경우, 위의 경우들 중 임의의 것 하에서 "X는 A 또는 B를 포함한다"가 만족된다. 부가적으로, 본 출원 및 첨부된 청구항들에서 사용된 바와 같은 단수 표현들은 달리 명시되지 않거나 단수 형태로 지시되는 것으로 문맥상 명확하지 않으면, "하나 이상"을 의미하도록 일반적으로 해석되어야 한다. 또한, 전체에 걸쳐 "구현예" 또는 "일 실시예" 또는 "구현" 또는 "일 구현"이라는 용어의 사용은, 그러한 것으로 설명되지 않는 한 동일한 실시예 또는 구현을 의미하는 것으로 의도되지 않는다. 또한, 본원에서 사용되는 바와 같은 "제1", "제2", "제3", "제4" 등의 용어들은 상이한 엘리먼트들 간을 구별하기 위한 레이블들로서 의도되고, 반드시 그의 수치 지정에 따라 서수 의미를 가질 필요는 없다.[00121] The word “example” or “exemplary” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example” or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words "example" or "exemplary" is intended to present concepts in a robust manner. The term “or” as used herein is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless otherwise specified or clear from context, "X comprises A or B" is intended to mean any of the original inclusive permutations. That is, X comprises A; X comprises B; or when X includes both A and B, then "X includes A or B" is satisfied under any of the above cases. Additionally, the singular expressions as used in this application and the appended claims are to be construed generally to mean “one or more” unless otherwise specified or clear from context to be indicated in the singular form. Also, use of the terms “embodiment” or “an embodiment” or “implementation” or “an implementation” throughout is not intended to mean the same embodiment or implementation unless otherwise described. Also, as used herein, terms such as “first,” “second,” “third,” “fourth,” etc. are intended as labels to distinguish between different elements, and not necessarily according to their numerical designation. It doesn't have to have an ordinal meaning.

[00122] 본원에서 제시된 알고리즘들 및 디스플레이들은 본질적으로 임의의 특정 컴퓨터 또는 다른 장치와 관련되지 않는다. 다양한 범용 시스템들은 본원에서의 교시내용에 따라 프로그램들과 함께 사용될 수 있거나, 요구된 방법 단계들을 수행하기 위해 보다 전문화된 장치를 구성하는 것이 편리할 수 있다. 이러한 다양한 시스템들에 대해 요구되는 구조는 아래의 설명에서 나타날 것이다. 또한, 본 개시내용은 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않는다. 다양한 프로그래밍 언어들은 본원에서 설명된 바와 같은 본 개시내용의 교시내용들을 구현하기 위해 사용될 수 있다는 것이 인지될 것이다.[00122] The algorithms and displays presented herein are not inherently related to any particular computer or other device. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may be convenient to construct a more specialized apparatus to perform the required method steps. The required structure for these various systems will appear in the description below. In addition, the present disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the present disclosure as described herein.

[00123] 위의 설명은, 본 개시내용의 여러 구현들의 양호한 이해를 제공하기 위해, 특정한 시스템들, 컴포넌트들, 방법들 등의 예들과 같은 다수의 특정한 세부사항들을 기술한다. 그러나, 본 개시내용의 적어도 일부 구현들이 그러한 특정한 세부사항들 없이도 실시될 수 있다는 것이 당업자에게 명백할 것이다. 다른 경우들에서, 본 개시내용을 불필요하게 모호하게 하는 것을 회피하기 위해, 잘-알려진 컴포넌트들 또는 방법들은 상세히 설명되지 않거나, 또는 간단한 블록도 포맷으로 제시된다. 따라서, 위에서 기술된 특정 세부사항들은 단지 예들일 뿐이다. 특정한 구현들은 이들 예시적인 세부사항들에서 변할 수 있고, 여전히 본 개시내용의 범위 내에 있는 것으로 고려될 수 있다.[00123] The above description sets forth numerous specific details, such as examples of specific systems, components, methods, etc., in order to provide a good understanding of various implementations of the present disclosure. It will be apparent, however, to one skilled in the art, that at least some implementations of the present disclosure may be practiced without these specific details. In other instances, well-known components or methods are not described in detail or are presented in simple block diagram format in order to avoid unnecessarily obscuring the present disclosure. Accordingly, the specific details set forth above are merely examples. Particular implementations may vary in these exemplary details and are still considered to be within the scope of the present disclosure.

Claims (58)

예측 결과들을 사용하여 메시징 플랫폼에서 대화 그래프들의 메시지들 순위를 매기기 위한 컴퓨터-구현 방법으로서,
네트워크를 통해, 상기 메시징 플랫폼 상에 저장된 대화 그래프의 메시지들을 리트리브(retrieve)하기 위한 대화 보기 요청을 수신하는 단계;
상기 메시징 플랫폼에 의해, 예측 모델들을 사용하여 상기 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하는 단계 ― 상기 복수의 예측 결과들은 상호 인게이지먼트(engagement) 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률을 포함함 ― ;
상기 복수의 예측 결과들을 사용하여 상기 복수의 메시지들 각각에 대한 인게이지먼트 값을 컴퓨팅하는 단계;
상기 메시징 플랫폼에 의해, 인게이지먼트 값들에 기초하여 상기 복수의 메시지들 순위를 매기는 단계; 및
상기 메시징 플랫폼에 의해, 상기 네트워크를 통해, 상기 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 상기 복수의 메시지들의 서브세트를 송신하는 단계를 포함하는, 컴퓨터-구현 방법.
A computer-implemented method for ranking messages in conversation graphs in a messaging platform using prediction results, comprising:
receiving, via a network, a conversation view request to retrieve messages of a conversation graph stored on the messaging platform;
determining, by the messaging platform, a plurality of prediction results for each of a plurality of messages of the conversation graph using predictive models, wherein the plurality of prediction results are a mutual engagement probability, positive engagement including probabilities and negative engagement probabilities;
computing an engagement value for each of the plurality of messages using the plurality of prediction results;
ranking, by the messaging platform, the plurality of messages based on engagement values; and
sending, by the messaging platform, over the network, at least a subset of the plurality of messages to be rendered on a client application according to the ranking.
제1 항에 있어서,
상기 상호 인게이지먼트 확률은 상기 메시징 플랫폼이 개개의 메시지에 대한 답신을 수신할 것으로 예측되는 확률 값을 포함하는, 컴퓨터-구현 방법.
The method of claim 1,
wherein the mutual engagement probability comprises a value of a probability that the messaging platform is expected to receive a reply to the respective message.
제1 항 또는 제2 항에 있어서,
상기 예측 모델들은 하나 이상의 신경망들을 포함하는, 컴퓨터-구현 방법.
3. The method according to claim 1 or 2,
wherein the predictive models comprise one or more neural networks.
제1 항 내지 제3 항 중 어느 한 항에 있어서,
상기 메시징 플랫폼에 의해, 상기 메시징 플랫폼 상에서 교환된 메시지들의 답신 구조에 기초하여 상기 대화 그래프를 생성하는 단계를 더 포함하고,
상기 대화 그래프는 대화와 관련된 메시지들의 트리(tree) 데이터 구조를 포함하는, 컴퓨터-구현 방법.
4. The method according to any one of claims 1 to 3,
generating, by the messaging platform, the conversation graph based on a reply structure of messages exchanged on the messaging platform;
wherein the conversation graph comprises a tree data structure of messages related to the conversation.
제1 항 내지 제4 항 중 어느 한 항에 있어서,
상기 결정하는 단계는,
상기 메시징 플랫폼에 의해, 상기 클라이언트 애플리케이션 또는 상기 메시징 플랫폼 중 적어도 하나에 의해 생성된 신호들을 획득하는 단계; 및
상기 메시징 플랫폼에 의해, 상기 복수의 예측 결과들을 결정하기 위해 상기 예측 모델들에 상기 신호들을 입력하는 단계를 포함하는, 컴퓨터-구현 방법.
5. The method according to any one of claims 1 to 4,
The determining step is
obtaining, by the messaging platform, signals generated by at least one of the client application or the messaging platform; and
and inputting, by the messaging platform, the signals into the predictive models to determine the plurality of predictive results.
제1 항 내지 제5 항 중 어느 한 항에 있어서,
상기 메시징 플랫폼에 의해, 트레이닝 데이터와 함께 입력된 기계 학습 알고리즘에 기초하여 상기 예측 모델들을 트레이닝하는 단계를 더 포함하는, 컴퓨터-구현 방법.
6. The method according to any one of claims 1 to 5,
and training the predictive models based on a machine learning algorithm input with training data by the messaging platform.
제1 항 내지 제6 항 중 어느 한 항에 있어서,
상기 메시징 플랫폼에 의해, 상기 대화 그래프 내 메시지들의 수가 임계 레벨보다 큰 것에 대한 응답으로, 상기 복수의 메시지들로부터 후보 서브세트를 선택하는 단계를 더 포함하고,
상기 복수의 예측 결과들은 상기 후보 서브세트의 각각의 메시지에 대해 결정되는, 컴퓨터-구현 방법.
7. The method according to any one of claims 1 to 6,
selecting, by the messaging platform, a candidate subset from the plurality of messages in response to a number of messages in the conversation graph being greater than a threshold level;
wherein the plurality of prediction results are determined for each message in the candidate subset.
제1 항 내지 제7 항 중 어느 한 항에 있어서,
상기 메시징 플랫폼에 의해, 상기 순위에 따라 상기 클라이언트 애플리케이션 상에서 렌더링되도록 상기 복수의 메시지들의 제1 서브세트를 송신하는 단계;
상기 메시징 플랫폼에 의해, 상기 클라이언트 애플리케이션으로부터 상기 대화 그래프로부터의 부가적인 메시지들을 디스플레이하라는 요청을 수신하는 단계; 및
상기 메시징 플랫폼에 의해, 상기 순위에 따라 상기 클라이언트 애플리케이션 상에서 렌더링되도록 상기 복수의 메시지들의 제2 서브세트를 송신하는 단계를 더 포함하는, 컴퓨터-구현 방법.
8. The method according to any one of claims 1 to 7,
sending, by the messaging platform, a first subset of the plurality of messages to be rendered on the client application according to the ranking;
receiving, by the messaging platform, a request from the client application to display additional messages from the conversation graph; and
sending, by the messaging platform, a second subset of the plurality of messages to be rendered on the client application according to the ranking.
제1 항 내지 제8 항 중 어느 한 항에 있어서,
상기 대화 그래프는 상기 대화 그래프의 메시지들을 표현하는 복수의 노드들의 어레인지먼트를 갖는 트리 데이터 구조를 포함하고,
상기 컴퓨터-구현 방법은 상기 메시징 플랫폼에 의해, 상기 인게이지먼트 값들을 사용하여 상기 트리 데이터 구조의 하나 이상의 분기들을 선택하는 단계를 더 포함하는, 컴퓨터-구현 방법.
9. The method according to any one of claims 1 to 8,
the dialog graph comprises a tree data structure having an arrangement of a plurality of nodes representing messages of the dialog graph;
wherein the computer-implemented method further comprises selecting, by the messaging platform, one or more branches of the tree data structure using the engagement values.
예측 결과들을 사용하여 메시징 플랫폼에서 대화 그래프들의 메시지들 순위를 매기기 위한 시스템으로서,
메시징 플랫폼 상에서 교환되는 메시지들의 답신 구조에 기초하여 대화 그래프를 생성하도록 구성된 대화 그래프 관리자 ― 상기 대화 그래프는 대화의 메시지들의 데이터 구조를 포함함 ― ;
클라이언트 애플리케이션 상의 사용자의 타임라인에서, 네트워크를 통해 메시지들의 스트림을 제공하도록 구성된 타임라인 관리자 ― 상기 타임라인 관리자는 상기 클라이언트 애플리케이션으로부터, 상기 네트워크를 통해 대화 보기 요청을 수신하도록 구성됨 ― ;
상기 대화 보기 요청에 대한 응답으로, 예측 모델들을 사용하여 상기 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하도록 구성된 인게이지먼트 예측기 ― 상기 복수의 예측 결과들은 상호 인게이지먼트 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률을 포함함 ― ; 및
개개의 메시지에 대한 상기 예측 결과들을 사용하여 상기 복수의 메시지들 각각에 대한 인게이지먼트 값을 컴퓨팅하도록 구성된 인게이지먼트 스코어러(engagement scorer)를 포함하고,
상기 타임라인 관리자는 인게이지먼트 값들을 사용하여 상기 복수의 메시지들 순위를 매기고, 상기 네트워크를 통해, 상기 순위에 따라 상기 타임라인 상에서 렌더링되도록 적어도 상기 복수의 메시지들의 서브세트를 제공하도록 구성되는, 시스템.
A system for ranking messages in conversation graphs in a messaging platform using prediction results, comprising:
a conversation graph manager configured to generate a conversation graph based on a reply structure of messages exchanged on a messaging platform, the conversation graph comprising a data structure of messages of the conversation;
a timeline manager configured to provide, in a timeline of a user on a client application, a stream of messages over a network, wherein the timeline manager is configured to receive, from the client application, a conversation view request via the network;
an engagement predictor configured to, in response to the conversation view request, determine a plurality of prediction results for each of a plurality of messages of the conversation graph using predictive models, wherein the plurality of prediction results include a mutual engagement probability; including positive engagement probability and negative engagement probability; and
an engagement scorer configured to compute an engagement value for each of the plurality of messages using the prediction results for the respective message;
wherein the timeline manager is configured to rank the plurality of messages using engagement values and provide, via the network, at least a subset of the plurality of messages for rendering on the timeline according to the ranking; system.
제10 항에 있어서,
상기 상호 인게이지먼트 확률은 상기 메시징 플랫폼이 상기 대화 그래프의 메시지에 대한 답신을 수신할 것으로 예측되는 확률 값을 포함하고, 상기 긍정적 인게이지먼트 확률은 상기 메시징 플랫폼이 상기 대화 그래프의 메시지와의 긍정적 사용자 인게이지먼트를 수신할 것으로 예측되는 확률 값을 포함하고, 상기 부정적 인게이지먼트 확률은 상기 메시징 플랫폼이 상기 대화 그래프의 메시지와의 부정적 사용자 인게이지먼트를 수신할 것으로 예측되는 확률 값을 포함하는, 시스템.
11. The method of claim 10,
wherein the mutual engagement probability comprises a probability value that the messaging platform is expected to receive a reply to the message in the conversation graph, and the positive engagement probability is that the messaging platform is positive with the message in the conversation graph. a probability value that is predicted to receive user engagement, wherein the negative engagement probability includes a probability value that the messaging platform is predicted to receive a negative user engagement with a message in the conversation graph. , system.
제10 항 또는 제11 항에 있어서,
상기 예측 모델들은 상호 인게이지먼트 모델, 긍정적 인게이지먼트 모델 및 부정적 인게이지먼트 모델을 포함하고, 상기 인게이지먼트 예측기는 상기 클라이언트 애플리케이션 또는 상기 메시징 플랫폼 중 적어도 하나에 의해 생성된 신호들을 획득하고, 상기 상호 인게이지먼트 모델, 상기 긍정적 인게이지먼트 모델 및 상기 부정적 인게이지먼트 모델에 상기 신호들을 입력하여 상기 상호 인게이지먼트 확률, 상기 긍정적 인게이지먼트 확률 및 상기 부정적 인게이지먼트 확률을 각각 획득하도록 구성되는, 시스템.
12. The method of claim 10 or 11,
wherein the predictive models include a mutual engagement model, a positive engagement model and a negative engagement model, wherein the engagement predictor obtains signals generated by at least one of the client application or the messaging platform; inputting the signals to the mutual engagement model, the positive engagement model, and the negative engagement model to obtain the mutual engagement probability, the positive engagement probability, and the negative engagement probability, respectively constituted, system.
제10 항 내지 제12 항 중 어느 한 항에 있어서,
트레이닝 데이터와 함께 입력된 하나 이상의 기계 학습 알고리즘들에 기초하여 상기 예측 모델들을 주기적으로 트레이닝하도록 구성된 예측 모델 트레이너를 더 포함하고,
상기 예측 모델 트레이너는 상기 트레이닝된 예측 모델들을 상기 예측 관리자에게 제공하도록 구성되는, 시스템.
13. The method according to any one of claims 10 to 12,
a predictive model trainer configured to periodically train the predictive models based on one or more machine learning algorithms input with training data;
and the predictive model trainer is configured to provide the trained predictive models to the predictive manager.
제10 항 내지 제13 항 중 어느 한 항에 있어서,
복수의 소스들로부터 후보 서브세트를 선택하도록 구성된 후보 메시지 선택기를 더 포함하고,
상기 복수의 소스들은 상기 대화 그래프의 메시지들이 가장 최근에 게시된 것에 따라 순위가 매겨진 제1 소스 및 상기 대화 그래프의 메시지들이 관련성 알고리즘에 따라 순위가 매겨진 제2 소스를 포함하고, 상기 후보 서브세트는 상기 제1 소스로부터의 다수의 메시지들 및 상기 제2 소스로부터의 다수의 메시지들을 포함하고, 상기 복수의 예측 결과들은 상기 후보 서브세트의 각각의 메시지에 대해 결정되는, 시스템.
14. The method according to any one of claims 10 to 13,
further comprising a candidate message selector configured to select a candidate subset from the plurality of sources;
The plurality of sources includes a first source ranked according to most recently published messages in the conversation graph and a second source ranked messages in the conversation graph according to a relevance algorithm, wherein the candidate subset comprises: a plurality of messages from the first source and a plurality of messages from the second source, wherein the plurality of prediction results are determined for each message in the candidate subset.
제10 항 내지 제14 항 중 어느 한 항에 있어서,
상기 대화 그래프의 데이터 구조는 상기 대화 그래프의 메시지들을 표현하는 복수의 노드들의 어레인지먼트를 갖는 트리 데이터 구조를 포함하고, 상기 타임라인 관리자는 상기 인게이지먼트 값들을 사용하여 상기 트리 데이터 구조의 분기를 선택하도록 구성되는, 시스템.
15. The method according to any one of claims 10 to 14,
The data structure of the dialog graph includes a tree data structure having an arrangement of a plurality of nodes representing messages of the dialog graph, and the timeline manager uses the engagement values to select a branch of the tree data structure a system configured to
제10 항 내지 제15 항 중 어느 한 항에 있어서,
상기 인게이지먼트 스코어러는 상기 상호 인게이지먼트 확률에 적용된 가중치가 상기 부정적 인게이지먼트 확률에 적용된 가중치보다 높도록 상기 상호 인게이지먼트 확률, 상기 긍정적 인게이지먼트 확률 및 상기 부정적 인게이지먼트 확률 각각에 가중치들을 적용하도록 구성되는, 시스템.
16. The method according to any one of claims 10 to 15,
The engagement scorer is configured to calculate each of the mutual engagement probability, the positive engagement probability, and the negative engagement probability such that the weight applied to the mutual engagement probability is higher than the weight applied to the negative engagement probability. A system configured to apply weights.
실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체로서,
상기 실행 가능한 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
네트워크를 통해, 메시징 플랫폼 상에 저장된 대화 그래프의 메시지들에 대한 대화 보기 요청을 수신하고 ― 상기 대화 그래프는 대화의 메시지들의 데이터 구조를 포함함 ― ;
상기 대화 그래프로부터 메시지들의 후보 서브세트를 선택하고;
예측 모델을 사용하여 상기 후보 서브세트의 각각의 메시지에 대한 복수의 예측 결과들을 결정하고 ― 상기 복수의 예측 결과들은 상호 인게이지먼트 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률을 포함하고, 상기 상호 인게이지먼트 확률은 상기 메시징 플랫폼이 상기 후보 서브세트의 개개의 메시지에 대한 답신을 수신할 것으로 예측되는 확률 값을 포함함 ― ;
상기 예측 결과들을 사용하여 상기 후보 서브세트의 각각의 메시지에 대한 인게이지먼트 값을 컴퓨팅하고;
인게이지먼트 값들을 사용하여 상기 복수의 메시지들 순위를 매기고; 그리고
상기 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 상기 복수의 메시지들의 서브세트를 송신하게 하도록 구성되는, 실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체.
A non-transitory computer-readable medium having stored thereon executable instructions, comprising:
The executable instructions, when executed by at least one processor, cause the at least one processor to:
receive, via a network, a conversation view request for messages of a conversation graph stored on a messaging platform, wherein the conversation graph includes a data structure of messages of the conversation;
select a candidate subset of messages from the conversation graph;
determine a plurality of prediction results for each message of the candidate subset using a predictive model, wherein the plurality of prediction results include a mutual engagement probability, a positive engagement probability and a negative engagement probability; the mutual engagement probability comprises a probability value at which the messaging platform is predicted to receive a reply to an individual message in the candidate subset;
compute an engagement value for each message in the candidate subset using the prediction results;
rank the plurality of messages using engagement values; and
and transmit at least a subset of the plurality of messages to be rendered on a client application according to the ranking.
제17 항에 있어서,
상기 후보 서브세트는 상기 대화 그래프로부터의 다수의 가장 최근에 게시된 메시지들 및 다수의 상위-순위 메시지들을 포함하는, 실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체.
18. The method of claim 17,
wherein the candidate subset comprises a plurality of most recently posted messages and a plurality of top-ranked messages from the conversation graph.
제17 항 또는 제18 항에 있어서,
상기 대화 그래프의 데이터 구조는 상기 대화 그래프의 메시지들을 표현하는 복수의 노드들의 어레인지먼트를 갖는 트리 데이터 구조를 포함하고,
상기 실행 가능한 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금, 상기 인게이지먼트 값들을 사용하여 상기 트리 데이터 구조의 분기를 선택하게 하도록 추가로 구성되는, 실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체.
19. The method according to claim 17 or 18,
The data structure of the dialog graph includes a tree data structure having an arrangement of a plurality of nodes representing messages of the dialog graph,
store the executable instructions, wherein the executable instructions are further configured to, when executed by the at least one processor, cause the at least one processor to select a branch of the tree data structure using the engagement values. a non-transitory computer-readable medium.
제17 항 내지 제19 항 중 어느 한 항에 있어서,
상기 실행 가능한 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
트레이닝 데이터와 함께 입력된 하나 이상의 기계 학습 알고리즘들에 기초하여 상기 예측 모델들을 주기적으로 트레이닝하고; 그리고
상기 트레이닝된 예측 모델들을 예측 관리자에게 제공하게 하도록 추가로 구성되는, 실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체.
20. The method according to any one of claims 17 to 19,
The executable instructions, when executed by at least one processor, cause the at least one processor to:
periodically train the predictive models based on one or more machine learning algorithms input with training data; and
A non-transitory computer-readable medium having stored thereon executable instructions, further configured to cause the trained predictive models to be provided to a predictive manager.
예측 결과들을 사용하여 메시징 플랫폼에서 대화 그래프들의 메시지들 순위를 매기기 위한 컴퓨터-구현 방법으로서,
네트워크를 통해, 상기 메시징 플랫폼 상에 저장된 대화 그래프의 메시지들을 리트리브하기 위한 대화 보기 요청을 수신하는 단계;
상기 메시징 플랫폼에 의해, 예측 모델들을 사용하여 상기 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하는 단계 ― 상기 복수의 예측 결과들을 결정하는 단계는,
상기 예측 모델들과 관련된 복수의 신호들을 획득하는 단계; 및
상기 복수의 예측 결과들을 결정하기 위해 상기 예측 모델들에 상기 복수의 신호들을 입력하는 단계를 포함하고, 상기 복수의 신호들은 상기 대화 그래프와 관련된 데이터 구조-관련 신호들을 포함함 ― ;
상기 메시징 플랫폼에 의해, 상기 예측 결과들에 기초하여 상기 복수의 메시지들 순위를 매기는 단계; 및
상기 메시징 플랫폼에 의해, 상기 네트워크를 통해, 상기 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 상기 복수의 메시지들의 서브세트를 송신하는 단계를 포함하는, 컴퓨터-구현 방법.
A computer-implemented method for ranking messages in conversation graphs in a messaging platform using prediction results, comprising:
receiving, via a network, a conversation view request to retrieve messages of a conversation graph stored on the messaging platform;
determining, by the messaging platform, a plurality of prediction results for each of a plurality of messages of the conversation graph using predictive models, wherein determining the plurality of prediction results comprises:
obtaining a plurality of signals associated with the predictive models; and
inputting the plurality of signals to the prediction models to determine the plurality of prediction results, the plurality of signals including data structure-related signals associated with the dialog graph;
ranking, by the messaging platform, the plurality of messages based on the prediction results; and
sending, by the messaging platform, over the network, at least a subset of the plurality of messages to be rendered on a client application according to the ranking.
제21 항에 있어서,
상기 대화 그래프는 상기 대화 그래프의 메시지들을 표현하는 복수의 노드들 및 상기 노드들 사이의 링크들을 표현하는 에지들을 갖는 트리 데이터 구조를 포함하고, 상기 트리 데이터 구조는 노드들의 하나 이상의 분기들을 정의하고, 상기 데이터 구조-관련 신호들은 상기 대화 그래프 내에서 노드들의 수 및 분기들의 수를 표현하는 신호들을 포함하는, 컴퓨터-구현 방법.
22. The method of claim 21,
wherein the dialog graph comprises a tree data structure having a plurality of nodes representing messages of the dialog graph and edges representing links between the nodes, the tree data structure defining one or more branches of the nodes; wherein the data structure-related signals include signals representing a number of nodes and a number of branches within the dialog graph.
제21 항 또는 제22 항에 있어서,
상기 데이터 구조-관련 신호들은 분기 내의 답신들의 수, 분기 내의 대화들의 수, 및 분기 또는 상기 대화 그래프 내의 고유 작성자들의 수를 포함하는, 컴퓨터-구현 방법.
23. The method of claim 21 or 22,
wherein the data structure-related signals include a number of replies in a branch, a number of conversations in a branch, and a number of unique authors within a branch or conversation graph.
제21 항 내지 제23 항 중 어느 한 항에 있어서,
상기 복수의 신호들은 상기 클라이언트 애플리케이션의 사용자가 상기 대화 그래프의 메시지의 작성자를 제한했는지를 표현하는 신호들을 포함하는, 컴퓨터-구현 방법.
24. The method according to any one of claims 21 to 23,
wherein the plurality of signals include signals representing whether a user of the client application has restricted a creator of a message of the conversation graph.
제21 항 내지 제24 항 중 어느 한 항에 있어서,
상기 복수의 신호들은 연결 그래프에서 상기 클라이언트 애플리케이션의 사용자를 팔로우하는 사용자들의 인게이지먼트들을 포함하는 상기 대화 그래프의 메시지들과 연관된 사용자 인게이지먼트 데이터를 표현하는 인게이지먼트 신호들을 포함하는, 컴퓨터-구현 방법.
25. The method according to any one of claims 21 to 24,
wherein the plurality of signals comprises engagement signals representing user engagement data associated with messages of the conversation graph comprising engagements of users following a user of the client application in the connection graph; How to implement.
제21 항 내지 제25 항 중 어느 한 항에 있어서,
상기 복수의 신호들은 상기 메시징 플랫폼 상의 상기 클라이언트 애플리케이션의 사용자와 연관된 인게이지먼트 데이터를 포함하는 이력 집계 신호들을 포함하는, 컴퓨터-구현 방법.
26. The method according to any one of claims 21 to 25,
wherein the plurality of signals comprises historical aggregate signals comprising engagement data associated with a user of the client application on the messaging platform.
제21 항 내지 제26 항 중 어느 한 항에 있어서,
상기 복수의 신호들은 상기 대화 그래프의 메시지들과 연관된 콘텐츠-관련 신호들을 포함하는, 컴퓨터-구현 방법.
27. The method according to any one of claims 21 to 26,
wherein the plurality of signals include content-related signals associated with messages in the conversation graph.
제21 항 내지 제27 항 중 어느 한 항에 있어서,
적어도 상기 복수의 신호들의 서브세트는 상기 메시징 플랫폼 상에서 실행되는 하나 이상의 데이터 서비스들로부터 획득되는, 컴퓨터-구현 방법.
28. The method according to any one of claims 21 to 27,
at least the subset of the plurality of signals is obtained from one or more data services executing on the messaging platform.
제21 항 내지 제28 항 중 어느 한 항에 있어서,
상기 메시징 플랫폼에 의해, 상기 클라이언트 애플리케이션으로부터 수신된 정보를 저장하는 클라이언트 이벤트 로그 및 상기 메시징 플랫폼 상에서 실행되는 타임라인 관리자로부터의 정보를 저장하는 주입 로그로부터 트레이닝 데이터를 획득하는 단계; 및
상기 메시징 플랫폼에 의해, 상기 트레이닝 데이터와 함께 입력된 기계 학습 알고리즘에 기초하여 상기 예측 모델들을 트레이닝하는 단계를 더 포함하는, 컴퓨터-구현 방법.
29. The method according to any one of claims 21 to 28,
obtaining, by the messaging platform, training data from a client event log storing information received from the client application and an injection log storing information from a timeline manager running on the messaging platform; and
and training, by the messaging platform, the predictive models based on a machine learning algorithm input with the training data.
예측 결과들을 사용하여 메시징 플랫폼에서 대화 그래프들의 메시지들 순위를 매기기 위한 시스템으로서,
메시징 플랫폼 상에서 교환되는 메시지들의 답신 구조에 기초하여 대화 그래프를 생성하도록 구성된 대화 그래프 관리자 ― 상기 대화 그래프는 대화의 메시지들의 데이터 구조를 포함함 ― ;
클라이언트 애플리케이션 상의 사용자의 타임라인에서, 네트워크를 통해 메시지들의 스트림을 제공하도록 구성된 타임라인 관리자 ― 상기 타임라인 관리자는 상기 클라이언트 애플리케이션으로부터, 상기 네트워크를 통해 대화 보기 요청을 수신하도록 구성됨 ― ;
상기 대화 보기 요청에 대한 응답으로, 예측 모델들을 사용하여 상기 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하도록 구성된 인게이지먼트 예측기 ― 상기 인게이지먼트 예측기는 상기 메시징 플랫폼 상에 저장된 하나 이상의 데이터 서비스들로부터 상기 예측 모델들과 관련된 복수의 신호들을 획득하도록 구성되고, 상기 인게이지먼트 예측기는 상기 복수의 예측 결과들을 결정하기 위해 상기 예측 모델들에 상기 복수의 신호들을 입력하도록 구성되고, 상기 복수의 신호들은 상기 대화 그래프와 관련된 데이터 구조-관련 신호들을 포함함 ― ; 및
개개의 메시지에 대한 상기 예측 결과들을 사용하여 상기 복수의 메시지들 각각에 대한 인게이지먼트 값을 컴퓨팅하도록 구성된 인게이지먼트 스코어러를 포함하고,
상기 타임라인 관리자는, 상기 인게이지먼트 값들을 사용하여 상기 복수의 메시지들 순위를 매기고, 상기 네트워크를 통해, 상기 순위에 따라 상기 타임라인 상에서 렌더링되도록 적어도 상기 복수의 메시지들의 서브세트를 제공하도록 구성되는, 시스템.
A system for ranking messages in conversation graphs in a messaging platform using prediction results, comprising:
a conversation graph manager configured to generate a conversation graph based on a reply structure of messages exchanged on a messaging platform, the conversation graph comprising a data structure of messages of the conversation;
a timeline manager configured to provide, in a timeline of a user on a client application, a stream of messages over a network, wherein the timeline manager is configured to receive, from the client application, a conversation view request via the network;
an engagement predictor configured to determine, in response to the conversation view request, a plurality of prediction results for each of a plurality of messages of the conversation graph using predictive models, the engagement predictor being stored on the messaging platform and obtain a plurality of signals associated with the predictive models from one or more data services, wherein the engagement predictor is configured to input the plurality of signals to the predictive models to determine the plurality of predictive results; , wherein the plurality of signals include data structure-related signals associated with the dialog graph; and
an engagement scorer configured to compute an engagement value for each of the plurality of messages using the prediction results for the respective message;
wherein the timeline manager is configured to rank the plurality of messages using the engagement values and provide, via the network, at least a subset of the plurality of messages for rendering on the timeline according to the ranking. becoming a system.
제30 항에 있어서,
상기 인게이지먼트 예측기는, 상기 메시징 플랫폼 상의 제1 데이터 서비스로부터 하나 이상의 제1 신호들을 획득하고 상기 메시징 플랫폼 상의 제2 데이터 서비스로부터 하나 이상의 제2 신호들을 획득하도록 구성되는, 시스템.
31. The method of claim 30,
wherein the engagement predictor is configured to obtain one or more first signals from a first data service on the messaging platform and obtain one or more second signals from a second data service on the messaging platform.
제30 항 또는 제31 항에 있어서,
상기 복수의 신호들은 인게이지먼트 신호들, 소셜 그래프 신호들, 이력 집계 신호들, 및/또는 콘텐츠-관련 신호들을 포함하는, 시스템.
32. The method of claim 30 or 31,
wherein the plurality of signals include engagement signals, social graph signals, historical aggregation signals, and/or content-related signals.
제30 항 내지 제32 항 중 어느 한 항에 있어서,
상기 예측 모델들은 상호 인게이지먼트 모델, 긍정적 인게이지먼트 모델 및 부정적 인게이지먼트 모델을 포함하고, 상기 인게이지먼트 예측기는 상기 상호 인게이지먼트 모델, 상기 긍정적 인게이지먼트 모델 및 상기 부정적 인게이지먼트 모델에 상기 신호들을 입력하여 상호 인게이지먼트 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률을 각각 획득하도록 구성되는, 시스템.
33. The method according to any one of claims 30 to 32,
The predictive models include a mutual engagement model, a positive engagement model and a negative engagement model, wherein the engagement predictor includes the mutual engagement model, the positive engagement model and the negative engagement model. and input the signals into a model to obtain a mutual engagement probability, a positive engagement probability, and a negative engagement probability, respectively.
제30 항 내지 제33 항 중 어느 한 항에 있어서,
상기 트레이닝 데이터와 함께 입력된 하나 이상의 기계 학습 알고리즘들에 기초하여 상기 예측 모델들을 주기적으로 트레이닝하도록 구성된 예측 모델 트레이너를 더 포함하고,
상기 예측 모델 트레이너는 상기 트레이닝된 예측 모델들을 상기 예측 관리자에게 제공하도록 구성되는, 시스템.
34. The method according to any one of claims 30 to 33,
a predictive model trainer configured to periodically train the predictive models based on one or more machine learning algorithms input with the training data;
and the predictive model trainer is configured to provide the trained predictive models to the predictive manager.
제30 항 내지 제34 항 중 어느 한 항에 있어서,
상기 복수의 신호들은 상기 클라이언트 애플리케이션에 의해 생성된 신호들 및 상기 메시징 플랫폼에 의해 생성된 신호들을 포함하는, 시스템.
35. The method according to any one of claims 30 to 34,
wherein the plurality of signals include signals generated by the client application and signals generated by the messaging platform.
제30 항 내지 제35 항 중 어느 한 항에 있어서,
상기 복수의 신호들은 유사성 신호들을 포함하는, 시스템.
36. The method according to any one of claims 30 to 35,
wherein the plurality of signals comprises similarity signals.
실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체로서,
상기 실행 가능한 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
네트워크를 통해, 메시징 플랫폼 상에 저장된 대화 그래프의 메시지들에 대한 대화 보기 요청을 수신하고 ― 상기 대화 그래프는 대화의 메시지들의 데이터 구조를 포함함 ― ;
상기 대화 그래프로부터 메시지들의 후보 서브세트를 선택하고;
예측 모델을 사용하여 상기 후보 서브세트의 각각의 메시지에 대한 복수의 예측 결과들을 결정하고 ― 상기 복수의 예측 결과들을 결정하는 것은,
상기 대화 그래프와 관련된 데이터 구조-관련 신호들을 포함하는 복수의 신호들을 획득하는 것; 및
상기 복수의 예측 결과들을 결정하기 위해 상기 예측 모델들에 상기 복수의 신호들을 입력하는 것을 포함함 ― ;
상기 예측 결과들을 사용하여 상기 후보 서브세트의 각각의 메시지에 대한 인게이지먼트 값을 컴퓨팅하고;
상기 인게이지먼트 값들을 사용하여 상기 복수의 메시지들 순위를 매기고; 그리고
상기 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 상기 복수의 메시지들의 서브세트를 송신하게 하도록 구성되는, 실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체.
A non-transitory computer-readable medium having stored thereon executable instructions, comprising:
The executable instructions, when executed by at least one processor, cause the at least one processor to:
receive, via a network, a conversation view request for messages of a conversation graph stored on a messaging platform, wherein the conversation graph includes a data structure of messages of the conversation;
select a candidate subset of messages from the conversation graph;
determining a plurality of prediction results for each message of the candidate subset using a predictive model, wherein determining the plurality of prediction results comprises:
obtaining a plurality of signals comprising data structure-related signals associated with the dialog graph; and
inputting the plurality of signals to the predictive models to determine the plurality of prediction results;
compute an engagement value for each message in the candidate subset using the prediction results;
rank the plurality of messages using the engagement values; and
and transmit at least a subset of the plurality of messages to be rendered on a client application according to the ranking.
제37 항에 있어서,
상기 실행 가능한 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
상기 클라이언트 애플리케이션으로부터 수신된 정보를 저장하는 클라이언트 이벤트 로그 및 상기 메시징 플랫폼 상에서 실행되는 타임라인 관리자로부터의 정보를 저장하는 주입 로그로부터 트레이닝 데이터를 획득하고; 그리고
상기 트레이닝 데이터와 함께 입력된 기계 학습 알고리즘에 기초하여 상기 예측 모델들을 트레이닝하게 하도록 추가로 구성되는, 실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체.
38. The method of claim 37,
The executable instructions, when executed by at least one processor, cause the at least one processor to:
obtain training data from a client event log storing information received from the client application and an injection log storing information from a timeline manager running on the messaging platform; and
A non-transitory computer-readable medium having stored thereon executable instructions, further configured to train the predictive models based on a machine learning algorithm input with the training data.
메시징 플랫폼에서 대화 그래프들의 메시지들 순위를 매기기 위한 컴퓨터-구현 방법으로서,
메시징 플랫폼에 의해, 대화 그래프의 메시지들의 콘텐츠 품질에 기초하여 복수의 섹션들로 상기 메시지들을 분류하는 단계 ― 상기 복수의 섹션들은 제1 섹션 및 제2 섹션을 포함하고, 상기 제1 섹션은 상기 제2 섹션의 메시지들보다 더 높은 품질로서 결정된 대화 그래프로부터의 메시지들을 가짐 ― ;
상기 메시징 플랫폼에 의해, 예측 모델들을 사용하여 상기 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하는 단계;
상기 메시징 플랫폼에 의해, 상기 제1 섹션의 메시지들에 대해 상기 예측 결과들에 기초하여 상기 제1 섹션의 메시지들 순위를 매기는 단계; 및
상기 메시징 플랫폼에 의해, 상기 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 상기 제1 섹션의 메시지들의 서브세트를 송신하는 단계를 포함하는, 컴퓨터-구현 방법.
A computer-implemented method for ranking messages in conversation graphs in a messaging platform, comprising:
classifying, by a messaging platform, the messages into a plurality of sections based on content quality of the messages in a conversation graph, the plurality of sections comprising a first section and a second section, the first section comprising the first section having messages from the dialog graph determined as higher quality than the messages in section 2;
determining, by the messaging platform, a plurality of prediction results for each of a plurality of messages of the conversation graph using predictive models;
ranking, by the messaging platform, the messages of the first section based on the prediction results for the messages of the first section; and
sending, by the messaging platform, at least a subset of the messages of the first section to be rendered on a client application according to the ranking.
제39 항에 있어서,
상기 메시징 플랫폼에 의해, 상기 제2 섹션의 메시지들에 대해 상기 복수의 예측 결과들에 기초하여 상기 제2 섹션의 메시지들 순위를 매기는 단계를 더 포함하는, 컴퓨터-구현 방법.
40. The method of claim 39,
ranking, by the messaging platform, the messages of the second section based on the plurality of prediction results for the messages of the second section.
제40 항에 있어서,
상기 메시징 플랫폼에 의해, 상기 클라이언트 애플리케이션 상에 상기 대화 그래프의 부가적인 메시지들을 렌더링하라는 요청을 수신하는 단계; 및
상기 메시징 플랫폼에 의해, 상기 순위에 따라 상기 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 상기 제2 섹션의 메시지들의 서브세트를 송신하는 단계를 더 포함하는, 컴퓨터-구현 방법.
41. The method of claim 40,
receiving, by the messaging platform, a request to render additional messages of the conversation graph on the client application; and
sending, by the messaging platform, at least a subset of the messages of the second section to be rendered on the client application according to the ranking.
제39 항 내지 제41 항 중 어느 한 항에 있어서,
상기 분류하는 단계는,
상기 대화 그래프의 메시지의 메시지 식별자를 수신하는 단계; 및
분류 모델을 사용하여, 상기 메시지가 상기 제1 섹션에 대응하는 콘텐츠 품질을 갖는다고 결정하는 단계를 포함하는, 컴퓨터-구현 방법.
42. The method according to any one of claims 39 to 41,
The classification step is
receiving a message identifier of a message of the conversation graph; and
determining, using a classification model, that the message has a content quality corresponding to the first section.
제39 항 내지 제42 항 중 어느 한 항에 있어서,
상기 메시지를 포함하는 상기 대화 그래프의 분기를 상기 제1 섹션에 할당하는 단계를 더 포함하는, 컴퓨터-구현 방법.
43. The method according to any one of claims 39 to 42,
and assigning a branch of the conversation graph containing the message to the first section.
제39 항 내지 제43 항 중 어느 한 항에 있어서,
개개의 메시지의 복수의 예측 결과들을 사용하여 상기 대화 그래프의 각각의 메시지에 대한 인게이지먼트 값을 컴퓨팅하는 단계를 더 포함하고,
상기 제1 품질 섹션의 메시지들은 상기 제1 품질 섹션의 메시지들의 인게이지먼트 값들에 따라 순위가 매겨지는, 컴퓨터-구현 방법.
44. The method according to any one of claims 39 to 43,
computing an engagement value for each message in the conversation graph using the plurality of prediction results of the respective message;
and the messages of the first quality section are ranked according to engagement values of the messages of the first quality section.
제39 항 내지 제44 항 중 어느 한 항에 있어서,
상기 예측 결과들은 상호 인게이지먼트 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률을 포함하는, 컴퓨터-구현 방법.
45. The method according to any one of claims 39 to 44,
wherein the prediction results include a mutual engagement probability, a positive engagement probability, and a negative engagement probability.
제39 항 내지 제45 항 중 어느 한 항에 있어서,
상기 메시징 플랫폼에 의해, 상기 메시징 플랫폼 상에서 교환된 메시지들의 답신 구조에 기초하여 상기 대화 그래프를 생성하는 단계를 더 포함하고,
상기 대화 그래프는 대화와 관련된 메시지들의 트리 데이터 구조를 포함하는, 컴퓨터-구현 방법.
46. The method according to any one of claims 39 to 45,
generating, by the messaging platform, the conversation graph based on a reply structure of messages exchanged on the messaging platform;
wherein the conversation graph comprises a tree data structure of messages related to the conversation.
제39 항 내지 제46 항 중 어느 한 항에 있어서,
상기 복수의 예측 모델들은 상호 인게이지먼트 모델, 긍정적 인게이지먼트 모델 및 부정적 인게이지먼트 모델을 포함하고, 상기 상호 인게이지먼트 모델, 상기 긍정적 인게이지먼트 모델 또는 상기 부정적 인게이지먼트 모델 중 적어도 하나는 신경망을 포함하는, 컴퓨터-구현 방법.
47. The method according to any one of claims 39 to 46,
The plurality of predictive models include a mutual engagement model, a positive engagement model, and a negative engagement model, and at least one of the mutual engagement model, the positive engagement model, or the negative engagement model. is a computer-implemented method comprising a neural network.
메시징 플랫폼에서 대화 그래프들의 메시지들 순위를 매기기 위한 시스템으로서,
메시징 플랫폼 상에서 교환되는 메시지들의 답신 구조에 기초하여 대화 그래프를 생성하도록 구성된 대화 그래프 관리자 ― 상기 대화 그래프는 대화의 메시지들의 데이터 구조를 포함함 ― ;
클라이언트 애플리케이션 상의 사용자의 타임라인에서, 네트워크를 통해 메시지들의 스트림을 제공하도록 구성된 타임라인 관리자 ― 상기 타임라인 관리자는 상기 클라이언트 애플리케이션으로부터, 상기 네트워크를 통해 대화 보기 요청을 수신하도록 구성됨 ― ;
상기 대화 그래프의 메시지들의 콘텐츠 품질에 기초하여 복수의 섹션들로 상기 메시지들을 분류하도록 구성된 콘텐츠 품질 분류기 ― 상기 복수의 섹션들은 제1 섹션 및 제2 섹션을 포함하고, 상기 제1 섹션은 상기 제2 섹션의 메시지들보다 더 높은 품질로서 결정된 대화 그래프로부터의 메시지들을 가짐 ― ;
예측 모델들을 사용하여 상기 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하도록 구성된 인게이지먼트 예측기; 및
개개의 메시지에 대한 상기 복수의 예측 결과들을 사용하여 상기 복수의 메시지들 각각에 대한 인게이지먼트 값을 컴퓨팅하도록 구성된 인게이지먼트 스코어러를 포함하고,
상기 타임라인 관리자는 상기 제1 섹션의 인게이지먼트 값들을 사용하여 상기 제1 섹션의 메시지들 순위를 매기고, 상기 순위에 따라 상기 타임라인 상에서 렌더링되도록 적어도 상기 제1 섹션의 메시지들의 서브세트를 상기 네트워크를 통해 제공하도록 구성되는, 시스템.
A system for ranking messages in conversation graphs in a messaging platform, comprising:
a conversation graph manager configured to generate a conversation graph based on a reply structure of messages exchanged on a messaging platform, the conversation graph comprising a data structure of messages of the conversation;
a timeline manager configured to provide, in a timeline of a user on a client application, a stream of messages over a network, wherein the timeline manager is configured to receive, from the client application, a conversation view request via the network;
a content quality classifier configured to classify the messages into a plurality of sections based on content quality of the messages of the conversation graph, the plurality of sections comprising a first section and a second section, the first section comprising the second section having messages from the dialog graph determined to be of higher quality than the messages in the section;
an engagement predictor configured to determine a plurality of prediction results for each of a plurality of messages of the conversation graph using predictive models; and
an engagement scorer configured to compute an engagement value for each of the plurality of messages using the plurality of prediction results for the respective message;
The timeline manager ranks the messages of the first section using the engagement values of the first section and selects at least a subset of the messages of the first section to be rendered on the timeline according to the ranking. A system configured to serve over a network.
제48 항에 있어서,
상기 인게이지먼트 예측기는 상기 메시징 플랫폼 상에 저장된 하나 이상의 데이터 서비스들로부터 상기 예측 모델들과 관련된 복수의 신호들을 획득하도록 구성되고, 상기 인게이지먼트 예측기는 상기 복수의 예측 결과들을 결정하기 위해 상기 예측 모델들에 상기 복수의 신호들을 입력하도록 구성되는, 시스템.
49. The method of claim 48,
the engagement predictor is configured to obtain a plurality of signals associated with the predictive models from one or more data services stored on the messaging platform, wherein the engagement predictor is configured to obtain the plurality of signals to determine the plurality of predictive results. and input the plurality of signals to models.
제49 항에 있어서,
상기 복수의 신호들은 상기 대화 그래프와 관련된 데이터 구조-관련 신호들을 포함하는, 시스템.
50. The method of claim 49,
wherein the plurality of signals include data structure-related signals associated with the dialog graph.
제48 항 내지 제50 항 중 어느 한 항에 있어서,
상기 타임라인 관리자는 상기 제2 섹션의 인게이지먼트 값들을 사용하여 상기 제2 섹션의 메시지들 순위를 별개로 매기도록 구성되는, 시스템.
51. The method according to any one of claims 48 to 50,
and the timeline manager is configured to separately rank the messages of the second section using the engagement values of the second section.
제48 항 내지 제51 항 중 어느 한 항에 있어서,
상기 콘텐츠 품질 분류기는 상기 대화 그래프의 메시지의 메시지 식별자를 수신하고, 분류 모델을 사용하여 상기 메시지가 상기 제1 품질 섹션에 대응하는 콘텐츠 품질을 갖는다고 결정하도록 구성되는, 시스템.
52. The method according to any one of claims 48 to 51,
wherein the content quality classifier is configured to receive a message identifier of a message of the conversation graph and to determine that the message has a content quality corresponding to the first quality section using a classification model.
제48 항 내지 제52 항 중 어느 한 항에 있어서,
상기 복수의 예측 결과들은 상호 인게이지먼트 확률을 포함하고, 상기 상호 인게이지먼트 확률은 상기 메시징 플랫폼이 상기 대화 그래프의 개개의 메시지에 대한 답신을 수신할 것으로 예측되는 확률 값을 포함하는, 시스템.
53. The method according to any one of claims 48 to 52,
wherein the plurality of prediction results include a mutual engagement probability, wherein the mutual engagement probability includes a probability value at which the messaging platform is predicted to receive a reply to an individual message in the conversation graph.
제48 항 내지 제53 항 중 어느 한 항에 있어서,
상기 트레이닝 데이터와 함께 입력된 하나 이상의 기계 학습 알고리즘들에 기초하여 상기 예측 모델들을 주기적으로 트레이닝하도록 구성된 예측 모델 트레이너를 더 포함하고,
상기 예측 모델 트레이너는 상기 트레이닝된 예측 모델들을 상기 예측 관리자에게 제공하도록 구성되는, 시스템.
54. The method according to any one of claims 48 to 53,
a predictive model trainer configured to periodically train the predictive models based on one or more machine learning algorithms input with the training data;
and the predictive model trainer is configured to provide the trained predictive models to the predictive manager.
실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체로서,
상기 실행 가능한 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
분류 모델을 사용하여, 메시지들의 콘텐츠 품질에 기초하여 복수의 섹션들로 대화 그래프의 메시지들을 분류하고 ― 상기 복수의 섹션들은 제1 섹션 및 제2 섹션을 포함하고, 상기 제1 섹션은 상기 제2 섹션의 메시지들보다 더 높은 품질로서 결정된 대화 그래프로부터의 메시지들을 가짐 ― ;
하나 이상의 예측 모델들을 사용하여, 상기 대화 그래프의 복수의 메시지들 각각에 대한 복수의 예측 결과들을 결정하고 ― 상기 복수의 예측 결과들은 상호 인게이지먼트 확률, 긍정적 인게이지먼트 확률 및 부정적 인게이지먼트 확률을 포함함 ― ;
상기 제1 섹션의 메시지들에 대해 상기 복수의 예측 결과들에 기초하여 상기 제1 섹션의 메시지들 순위를 매기고;
상기 제2 섹션의 메시지들에 대해 상기 복수의 예측 결과들에 기초하여 상기 제2 섹션의 메시지들 순위를 매기고; 그리고
상기 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 상기 제1 품질 섹션의 메시지들의 서브세트를 송신하게 하도록 구성되는, 실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체.
A non-transitory computer-readable medium having stored thereon executable instructions, comprising:
The executable instructions, when executed by at least one processor, cause the at least one processor to:
Classify the messages of the conversation graph into a plurality of sections based on the content quality of the messages, using a classification model, the plurality of sections comprising a first section and a second section, the first section comprising the second section having messages from the dialog graph determined to be of higher quality than the messages in the section;
using one or more predictive models to determine a plurality of prediction results for each of a plurality of messages of the conversation graph, wherein the plurality of prediction results are a mutual engagement probability, a positive engagement probability and a negative engagement probability. including ― ;
rank the messages of the first section based on the plurality of prediction results for the messages of the first section;
rank the messages of the second section based on the plurality of prediction results for the messages of the second section; and
and transmit at least a subset of the messages of the first quality section to be rendered on a client application according to the ranking.
제55 항에 있어서,
상기 실행 가능한 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
상기 클라이언트 애플리케이션으로부터 수신된 정보를 저장하는 클라이언트 이벤트 로그 및 메시징 플랫폼 상에서 실행되는 타임라인 관리자로부터의 정보를 저장하는 주입 로그로부터 트레이닝 데이터를 획득하고; 그리고
상기 트레이닝 데이터와 함께 입력된 기계 학습 알고리즘에 기초하여 상기 예측 모델들을 트레이닝하게 하도록 추가로 구성되는, 실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체.
56. The method of claim 55,
The executable instructions, when executed by at least one processor, cause the at least one processor to:
obtain training data from a client event log storing information received from the client application and an injection log storing information from a timeline manager running on a messaging platform; and
A non-transitory computer-readable medium having stored thereon executable instructions, further configured to train the predictive models based on a machine learning algorithm input with the training data.
제55 항 또는 제56 항에 있어서,
상기 실행 가능한 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
상기 대화 그래프의 제1 메시지의 메시지 식별자를 수신하고;
상기 분류 모델을 사용하여, 상기 제1 메시지가 상기 제1 섹션에 대응하는 콘텐츠 품질을 갖는다고 결정하고;
상기 대화 그래프의 제2 메시지의 메시지 식별자를 수신하고; 그리고
상기 분류 모델을 사용하여, 상기 제2 메시지가 상기 제2 섹션에 대응하는 콘텐츠 품질을 갖는다고 결정하게 하도록 추가로 구성되는, 실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체.
57. The method of claim 55 or 56,
The executable instructions, when executed by at least one processor, cause the at least one processor to:
receive a message identifier of a first message of the conversation graph;
determine, using the classification model, that the first message has a content quality corresponding to the first section;
receive a message identifier of a second message of the conversation graph; and
and use the classification model to determine that the second message has a content quality corresponding to the second section.
제55 항 내지 제57 항 중 어느 한 항에 있어서,
상기 실행 가능한 명령들은 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금,
상기 클라이언트 애플리케이션 상에 상기 대화 그래프의 부가적인 메시지들을 렌더링하라는 요청을 수신하고; 그리고
상기 순위에 따라 클라이언트 애플리케이션 상에서 렌더링되도록 적어도 상기 제2 섹션의 메시지들의 서브세트를 송신하게 하도록 추가로 구성되는, 실행 가능한 명령들을 저장한 비-일시적 컴퓨터-판독 가능 매체.
58. The method according to any one of claims 55 to 57,
The executable instructions, when executed by at least one processor, cause the at least one processor to:
receive a request to render additional messages of the conversation graph on the client application; and
and transmit at least a subset of the messages of the second section to be rendered on a client application according to the ranking.
KR1020227024795A 2019-12-20 2020-12-10 Ranking Messages in Conversation Graphs in Messaging Platform Using Prediction Results KR20220123663A (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US16/723,981 2019-12-20
US16/723,984 2019-12-20
US16/723,984 US11057322B1 (en) 2019-12-20 2019-12-20 Ranking messages of conversation graphs in a messaging platform using machine-learning signals
US16/723,981 US10951560B1 (en) 2019-12-20 2019-12-20 Ranking messages of conversation graphs in a messaging platform using predictive outcomes
US16/723,987 US11516155B1 (en) 2019-12-20 2019-12-20 Hard and soft ranking messages of conversation graphs in a messaging platform
US16/723,987 2019-12-20
PCT/US2020/070895 WO2021127687A1 (en) 2019-12-20 2020-12-10 Ranking messages of conversation graphs in a messaging platform using predictive outcomes

Publications (1)

Publication Number Publication Date
KR20220123663A true KR20220123663A (en) 2022-09-08

Family

ID=74186992

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227024795A KR20220123663A (en) 2019-12-20 2020-12-10 Ranking Messages in Conversation Graphs in Messaging Platform Using Prediction Results

Country Status (5)

Country Link
JP (1) JP2022552918A (en)
KR (1) KR20220123663A (en)
AU (1) AU2020405265A1 (en)
CA (1) CA3165466A1 (en)
WO (1) WO2021127687A1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9143468B1 (en) * 2013-01-08 2015-09-22 Twitter, Inc. Identifying relevant messages in a conversation graph
US9449050B1 (en) * 2013-01-08 2016-09-20 Twitter, Inc. Identifying relevant messages in a conversation graph
US9418117B1 (en) * 2013-01-08 2016-08-16 Twitter, Inc. Displaying relevant messages of a conversation graph
JP6719727B2 (en) * 2016-03-23 2020-07-08 富士ゼロックス株式会社 Purchase behavior analysis device and program

Also Published As

Publication number Publication date
CA3165466A1 (en) 2021-06-24
JP2022552918A (en) 2022-12-20
WO2021127687A1 (en) 2021-06-24
AU2020405265A1 (en) 2022-07-21

Similar Documents

Publication Publication Date Title
US11057322B1 (en) Ranking messages of conversation graphs in a messaging platform using machine-learning signals
US9967226B2 (en) Personalized delivery time optimization
US9953063B2 (en) System and method of providing a content discovery platform for optimizing social network engagements
KR101829770B1 (en) Online social persona management
US20170235788A1 (en) Machine learned query generation on inverted indices
US20180253659A1 (en) Data Processing System with Machine Learning Engine to Provide Automated Message Management Functions
Tang et al. Predicting individual retweet behavior by user similarity: a multi-task learning approach
Yeung et al. A proactive personalized mobile news recommendation system
US10783447B2 (en) Information appropriateness assessment tool
US11487791B2 (en) Latent feature extraction from a network graph
US11003720B1 (en) Relevance-ordered message search
US20170052761A1 (en) Expert signal ranking system
US20190179878A1 (en) Generating organization-specific tags for communications from various sources of an organization using an expanded knowledge graph for organization-specific content
US10891539B1 (en) Evaluating content on social media networks
Strobbe et al. Interest based selection of user generated content for rich communication services
WO2021184776A1 (en) Image recognition method and apparatus, computer device and storage medium
Abbas Social network analysis using deep learning: applications and schemes
US10951560B1 (en) Ranking messages of conversation graphs in a messaging platform using predictive outcomes
EP3113042A1 (en) A method for providing contextual information, an information processing system and a computer program product
US20200401880A1 (en) Generating a recommended target audience based on determining a predicted attendance utilizing a machine learning approach
Koprinska et al. People-to-people reciprocal recommenders
US20200342351A1 (en) Machine learning techniques to distinguish between different types of uses of an online service
KR20220123663A (en) Ranking Messages in Conversation Graphs in Messaging Platform Using Prediction Results
US11516155B1 (en) Hard and soft ranking messages of conversation graphs in a messaging platform
US20220329556A1 (en) Detect and alert user when sending message to incorrect recipient or sending inappropriate content to a recipient

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E601 Decision to refuse application