JP2022552918A - Ranking Messages in Conversation Graphs in Messaging Platforms Using Prediction Results - Google Patents

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

Info

Publication number
JP2022552918A
JP2022552918A JP2022537485A JP2022537485A JP2022552918A JP 2022552918 A JP2022552918 A JP 2022552918A JP 2022537485 A JP2022537485 A JP 2022537485A JP 2022537485 A JP2022537485 A JP 2022537485A JP 2022552918 A JP2022552918 A JP 2022552918A
Authority
JP
Japan
Prior art keywords
messages
engagement
message
conversation
messaging platform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022537485A
Other languages
Japanese (ja)
Inventor
ジャイン、ロヒット
ティアガラジャン、アービンド
ツェン、シャンイー
アガーワル、ミナーリ
チェン、アレン
チョン、トミー
ヘイズン シュライキュアー、アンドリュー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Twitter Inc
Original Assignee
Twitter Inc
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 Twitter Inc filed Critical Twitter Inc
Publication of JP2022552918A publication Critical patent/JP2022552918A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • G06Q50/50
    • 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 of a conversation graph in a messaging platform includes receiving a conversation viewing request to retrieve conversation graph messages stored in the messaging platform; and determining a plurality of prediction results for each of the plurality of messages of the conversation graph. The determining step includes acquiring a plurality of signals related to the prediction model, including data structure related signals related to the conversation graph, and determining the plurality of prediction results. inputting the information into the prediction model. The method includes: the messaging platform ranking the plurality of messages based on the prediction results; and the messaging platform rendering at least one of the plurality of messages through the network at a client application according to the rank. and transmitting the part.

Description

本発明は、予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのコンピュータ実装方法およびシステムに関する。 The present invention relates to a computer-implemented method and system for ranking messages in a conversation graph in a messaging platform using predictive results.

ソーシャルメディアメッセージングプラットホームは、そのユーザ間の何百万または数億のソーシャルメディアメッセージの交換を行うことができる。プラットホームにて交換されるメッセージは、多くの場合、プラットホームのユーザに最新のアップデートまたは現在のイベントに関するレポートを提供することが可能である。メッセージングプラットホームにおけるメッセージの交換は、ユーザ間の会話の一部であってよい。いくつかの従来のメッセージングシステムは、ユーザが特定のメッセージを閲覧するときに会話の一部を閲覧することができるように、メッセージのリプライ構造を記憶してよい。しかしながら、会話ビューを形成するメッセージのリストは比較的大きい場合があり、それによってユーザに低速のロード時間を引き起こす場合がある。 Social media messaging platforms are capable of exchanging millions or hundreds of millions of social media messages between their users. Messages exchanged on the platform can often provide the user of the platform with the latest updates or reports on current events. An exchange of messages in a messaging platform may be part of a conversation between users. Some conventional messaging systems may store the reply structure of messages so that users can view parts of the conversation when viewing a particular message. However, the list of messages forming a conversation view may be relatively large, thereby causing slow load times for the user.

メッセージングプラットホームは、メッセージングプラットホームのユーザ間のメッセージの交換を行う。メッセージは、メッセージングプラットホームにて行われた会話の一部であってよい。例えば、ユーザは、プラットホームにメッセージを投稿してよい。他のユーザは、そのメッセージに対する複数のリプライを、次いで、そのリプライに対するリプライなどを投稿してよい。リプライ構造は、会話グラフとして記憶されてよい。メッセージングプラットホームは、メッセージングプラットホームにて行う会話に関連する任意の数の会話グラフを記憶してよい。いくつかの例では、会話グラフは比較的大きい(例えば、会話グラフにおける複数のノードが、閾値を超える)。会話グラフの生成および維持は、特定のメッセージとのリプライ関係におけるメッセージを閲覧するリクエストに応答する時に、情報の迅速な取出しを可能にする。 A messaging platform facilitates the exchange of messages between users of the messaging platform. A message may be part of a conversation conducted on a messaging platform. For example, a user may post a message on the platform. Other users may post multiple replies to that message, then replies to that reply, and so on. A reply structure may be stored as a conversation graph. A messaging platform may store any number of conversation graphs associated with conversations conducted on the messaging platform. In some examples, the conversation graph is relatively large (eg, multiple nodes in the conversation graph exceed a threshold). Generating and maintaining a conversation graph enables rapid retrieval of information when responding to requests to view messages in a reply relationship to a particular message.

会話グラフに関連付けられている特定のメッセージを閲覧する時に、ユーザは、会話グラフの他のメッセージを閲覧するようにメッセージを選択してよく、ここで、クライアントアプリケーションは、メッセージングプラットホームに対する会話閲覧要求を生成する。会話グラフに関連するメッセージのすべて(比較的大きい場合がある)を表示するよりも、タイムラインマネージャは、特定のユーザにとって最も関連性のあるブランチ(またはノード)をランク付けするように、会話グラフのメッセージを一意スコアリングシステム(エンゲージメント予測を組み込む)を用いてランク付けしてよく、次いで、ランク付けされたリスト(またはそれらの一部(サブセット))を提供してよい。このようにして、会話グラフのメッセージは、予測結果(否定的な予測結果に対して肯定的な予測結果のバランスを取る)の自身のレベルに従って表示される。これに加えて、ランク付けされたリストを提供することによって、メッセージングプラットホームは、より少数の応答を供給しながら、ユーザに提供される値を増加させることを可能にする。例えば、メッセージングプラットホームは、リクエストごとに応答のサブセット(例えば、上位10,15,20などの応答)を提供してよい。これによって、サーバにおけるより速い計算、ユーザにとってのより早いロード時間を生じ得、エンゲージメントに関してほぼ損失がない。 When viewing a particular message associated with a conversation graph, a user may select a message to view other messages in the conversation graph, where the client application submits a conversation viewing request to the messaging platform. Generate. Rather than displaying all of the messages (which may be relatively large) that are related to the conversation graph, the Timeline Manager uses the conversation graph to rank the branches (or nodes) that are most relevant to a particular user. messages may be ranked using a unique scoring system (which incorporates engagement predictions) and then a ranked list (or a subset thereof) may be provided. In this way, messages in the conversation graph are displayed according to their level of prediction results (balancing positive prediction results against negative prediction results). Additionally, by providing a ranked list, the messaging platform allows increasing the value provided to the user while providing fewer responses. For example, the messaging platform may provide a subset of responses (eg, top 10, 15, 20, etc. responses) for each request. This can result in faster computation on the server, faster load times for the user, and almost no loss in terms of engagement.

予測マネージャ(メッセージングプラットホームにて実行する)は、1つまたは複数の予測モデルを用いて、会話グラフにおける候補ノードごとに予測結果を決定してよい。予測結果は、会話グラフのメッセージ(またはメッセージのサブセット)ごとに予測されるユーザエンゲージメント結果である。予測結果は、相互エンゲージメント確率を含む。相互エンゲージメント確率は、ユーザが会話グラフをさらに発展させると予測される(例えば、メッセージに対しリプライすると予測される)確率値を示す。相互エンゲージメント確率の予測結果への組込みは、プラットホームにおけるより多くの会話を奨励してよい。いくつかの例では、予測結果は、相互エンゲージメント確率と、正のエンゲージメント確率および負のエンゲージメント確率の1つ以上と、を含む。正のエンゲージメント確率は、ユーザがメッセージに肯定的なエンゲージメントを行う(例えば、いいねまたはノードをお気に入りに追加する)と予測される確率値を示す。負のエンゲージメント確率は、ユーザがメッセージに否定的な閲覧またはエンゲージメントを行うと予測される(例えば、ユーザが、ノードが罵りであると考える場合がある)確率値を示す。いくつかの例では、予測結果は、相互エンゲージメント確率と、正のエンゲージメント確率と、負のエンゲージメント確率と、を含む。 A prediction manager (running on the messaging platform) may use one or more prediction models to determine a prediction result for each candidate node in the conversation graph. The predicted result is the predicted user engagement result for each message (or subset of messages) of the conversation graph. Prediction results include mutual engagement probabilities. A mutual engagement probability indicates a probability value that a user is expected to further develop the conversation graph (eg, to reply to a message). Incorporating mutual engagement probabilities into prediction results may encourage more conversations on the platform. In some examples, the predicted results include mutual engagement probabilities and one or more of positive engagement probabilities and negative engagement probabilities. A positive engagement probability indicates a probability value that a user is expected to engage positively with a message (eg, like or add a node to favorites). A negative engagement probability indicates a probability value that a user is expected to negatively view or engage with the message (eg, the user may think the node is a swear word). In some examples, the predicted results include mutual engagement probabilities, positive engagement probabilities, and negative engagement probabilities.

予測モデルは、正のエンゲージメント確率を予測する正のエンゲージメントモデルと、負のエンゲージメント確率を予測する負のエンゲージメントモデルと、相互エンゲージメント確率を予測する相互エンゲージメントモデルとを含んでよい。いくつかの例では、予測モデルは、1つまたは複数の機械学習アルゴリズムに適用される訓練データを用いて訓練される機械学習モデルである。いくつかの例では、予測モデルは、ニューラルネットワークを含む。訓練データは、メッセージングシステムがアクティブである(および予測マネージャが有効にされている)間にクライアントイベントログおよびインジェクションログから取得された履歴データの組合せであってよい。履歴データは、ある期間(例えば、1日、1週、1月、1年など)にわたって取得されてよく、次いで、オフラインモードにおいて予測モデルを訓練(または再訓練)するように用いられてよい。ここで、更新された予測モデルは、予測マネージャに送信されてよい。 The predictive models may include a positive engagement model that predicts positive engagement probabilities, a negative engagement model that predicts negative engagement probabilities, and a cross-engagement model that predicts cross-engagement probabilities. In some examples, the predictive model is a machine learning model that is trained using training data applied to one or more machine learning algorithms. In some examples, predictive models include neural networks. Training data may be a combination of historical data obtained from client event logs and injection logs while the messaging system is active (and the prediction manager is enabled). Historical data may be obtained over a period of time (eg, a day, a week, a month, a year, etc.) and then used to train (or retrain) a predictive model in offline mode. The updated forecast model may now be sent to the forecast manager.

会話グラフのメッセージを取り出すための会話閲覧リクエストに応答して、予測マネージャは、予測結果を決定するための信号を取得し、予測結果を決定するようにその信号を予測モデルに入力してよい。信号は、クライアントアプリケーションによって生成された信号および/またはメッセージングプラットホームによって生成された信号を含んでよい。いくつかの例では、信号は、ユーザおよび作成者(auther)のソーシャルグラフおよびエンゲージメント履歴を含む。しかしながら、信号は、データ構造関連信号、健康関連信号、エンゲージメント信号、ソーシャルグラフ信号、履歴集約信号、および/またはコンテンツ関連信号などの多様な信号を含んでよい。信号の数および予測に用いられる信号の様々なカテゴリの数は、モデル予測の精度を向上させてよい。 In response to a conversation view request to retrieve a message of the conversation graph, the prediction manager may obtain a signal to determine the prediction result and input the signal into the prediction model to determine the prediction result. The signals may include signals generated by the client application and/or signals generated by the messaging platform. In some examples, the signals include the user's and author's social graph and engagement history. However, the signals may include a variety of signals such as data structure related signals, health related signals, engagement signals, social graph signals, history aggregation signals, and/or content related signals. The number of signals and the number of different categories of signals used for prediction may improve the accuracy of the model prediction.

予測マネージャは、ノードごとのエンゲージメント値を取得するように予測結果を組み合わせてよい。ここで、エンゲージメント値は、会話グラフのメッセージへの予測されたエンゲージメントの総合レベルを示す。タイムラインマネージャは、ユーザについての会話グラフの最も関連性のあるブランチ(またはノード)を貪欲に選択するように、エンゲージメント値を用いてよい。最も関連性のあるブランチ(またはノード)をロケーティングすることに加えて、タイムラインマネージャは、エンゲージメント値に基づいて表示するブランチの量を決定してよい。さらに、タイムラインマネージャは、会話グラフの関連性のない部分を折り畳んでよいが、ユーザが会話グラフの他のメッセージを閲覧するためにそれらの部分を展開することを可能にする。 The prediction manager may combine prediction results to obtain an engagement value for each node. Here, the engagement value indicates the total level of predicted engagement with the messages in the conversation graph. The timeline manager may use the engagement value to greedily select the most relevant branches (or nodes) of the conversation graph for the user. In addition to locating the most relevant branches (or nodes), the timeline manager may determine the amount of branches to display based on engagement value. Additionally, the timeline manager may collapse irrelevant parts of the conversation graph, but allow the user to expand those parts to view other messages in the conversation graph.

エンゲージメント値に従ってランク付けされたメッセージは、各ユーザに特有であってよい。例えば、会話グラフのいくつかのメッセージは、第1のユーザにより関連性があってよく、一方で、会話グラフの他のメッセージが第2のユーザに関連性があってよい。しかしながら、予測マネージャによって決定された予測結果は、特定のユーザに合わせられてよい。対照的に、いくつかの従来のアプローチは、各々について同一の閲覧を提供することができる投票ベースの機構を用いる。これに加えて、メッセージングプラットホームは相互作用エンゲージメント確率を自身のスコアリングアルゴリズム内に組み込むため、メッセージングプラットホームは、メッセージングプラットホームにおけるより多くの会話を奨励してよい。 Messages ranked according to engagement value may be unique to each user. For example, some messages in the conversation graph may be more relevant to the first user, while other messages in the conversation graph may be relevant to the second user. However, the prediction results determined by the prediction manager may be tailored to specific users. In contrast, some conventional approaches use vote-based mechanisms that can provide identical views for each. Additionally, because the messaging platform incorporates interactive engagement probabilities into its scoring algorithm, the messaging platform may encourage more conversations on the messaging platform.

いくつかの例では、メッセージングプラットホームは、会話グラフのメッセージに対して2レベルランキングシステムを行う。例えば、2レベルランキング機構(例えば、ハードランキングおよびソフトランキング)は、メッセージングプラットホーム上の会話における罵りに対処するための効果的な機構を提供してよい。いくつかの例では、ハードランキングは、会話のメッセージ(またはブランチ)を複数のセクションへと分類(またはセクショニング)する。例えば、メッセージングプラットホームは、会話グラフのノード(またはブランチ)をセクションへと分割するコンテンツ品質分類器を備えてよい。各セクションは、品質レベルの異なるカテゴリ化(または分類)を意味してよい。いくつかの例では、コンテンツ品質分類器は、メッセージのコンテンツおよび作成者の挙動、プロフィール、またはメッセージングプラットホーム上のエンゲージメントに関連する他の信号に基づいて、メッセージの品質分類を決定する分類モデル(例えば、ニューラルネットワーク)を含む。 In some examples, the messaging platform performs a two-level ranking system on the messages of the conversation graph. For example, a two-level ranking mechanism (eg, hard ranking and soft ranking) may provide an effective mechanism for combating swearing in conversations on messaging platforms. In some examples, hard ranking classifies (or sectioning) messages (or branches) of a conversation into multiple sections. For example, a messaging platform may include a content quality classifier that divides nodes (or branches) of a conversation graph into sections. Each section may represent a different categorization (or classification) of quality levels. In some examples, a content quality classifier is a classification model (e.g., , neural networks).

コンテンツ品質分類器は、第1のメッセージが比較的低品質であり、第2のメッセージが比較的高品質であることを決定してよい。ここで、コンテンツ品質分類器は、第1のメッセージ(または第1のメッセージを含むブランチ)を第1のセクション(例えば、低品質セクションと考えられている第1のセクション)に割り当ててよく、第2のメッセージ(または第2のメッセージを含むブランチ)を第2のセクション(例えば、高品質セクションと考えられている第2のセクション)に割り当ててよい。2レベルランキング機構のソフトランキングは、上記のエンゲージメント値を用いて各セクション内にメッセージ(またはブランチ)をランク付けすることを含んでよい。次いで、メッセージは、高品質セクションのランク付けされたリストを、続いて低品質セクションのランク付けされたリストを提供するように、ユーザに提示されてよい。 A content quality classifier may determine that the first message is of relatively low quality and the second message is of relatively high quality. Here, the content quality classifier may assign the first message (or the branch containing the first message) to the first section (eg, the first section considered a low quality section), 2 messages (or the branch containing the second message) may be assigned to the second section (eg, the second section considered the high quality section). Soft ranking, a two-level ranking mechanism, may involve ranking messages (or branches) within each section using the engagement values described above. A message may then be presented to the user to provide a ranked list of high quality sections followed by a ranked list of low quality sections.

一態様によれば、予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするための方法は、ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージを取り出すように会話閲覧リクエストを受信する工程と、前記メッセージングプラットホームが、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する決定工程と、を備える。前記複数の予測結果は、相互エンゲージメント確率を含む。方法は、前記メッセージングプラットホームが、前記予測結果に基づいて前記複数のメッセージをランク付けする工程と、前記メッセージングプラットホームが、前記ネットワークを通じて、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくともサブセットを送信する工程と、を備える。さらなる態様によれば、対応するシステムおよび対応する命令を記憶する非一時的なコンピュータ可読媒体が提供されてよい。 According to one aspect, a method for ranking conversation graph messages in a messaging platform using prediction results receives, over a network, a conversation view request to retrieve conversation graph messages stored in the messaging platform. and determining, where the messaging platform uses a predictive model to determine a plurality of predicted outcomes for each of a plurality of messages of the conversation graph. The plurality of prediction results includes mutual engagement probabilities. The method comprises the steps of: the messaging platform ranking the plurality of messages based on the predicted results; and the messaging platform rendering at least a subset of the plurality of messages in a client application according to the rankings over the network. and transmitting. According to further aspects, a non-transitory computer-readable medium storing a corresponding system and corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記複数の予測結果はまた、正のエンゲージメント確率、および負のエンゲージメント確率を含む。前記方法は、前記相互エンゲージメント確率、前記正のエンゲージメント確率、および前記負のエンゲージメント確率を用いて前記複数のメッセージの各々についてエンゲージメント値を計算する工程を備え、前記複数のメッセージは、前記エンゲージメント値に従ってランク付けされる。前記方法は、前記メッセージングプラットホームが、前記メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて前記会話グラフを生成する工程であって、前記会話グラフは会話に関連するメッセージのツリーデータ構造を含む、工程を備えてよい。前記方法は、前記メッセージングプラットホームが、前記クライアントアプリケーションと前記メッセージングプラットホームとのうちの1つ以上によって生成された信号を取得する工程と、前記メッセージングプラットホームが、前記複数の予測結果を決定するように、前記信号を前記予測モデルに対し入力する工程と、を備えてよい。前記方法は、前記メッセージングプラットホームが、訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程を備えてよい。前記方法は、前記メッセージングプラットホームが、前記会話グラフにおけるメッセージの数が閾値レベルを超えていることに応答して、前記複数のメッセージから候補のサブセットを選択する工程であって、前記複数の予測結果は、前記候補のサブセットのメッセージごとに決定される、工程をさらに備えてよい。前記方法は、前記メッセージングプラットホームが、前記ランクに従って前記クライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの第1のサブセットを送信する工程と、前記メッセージングプラットホームが、前記会話グラフからの追加のメッセージを表示するリクエストを前記クライアントアプリケーションから受信する工程と、前記メッセージングプラットホームが、前記ランクに従って前記クライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの第2のサブセットを送信する工程と、をさらに備えてよい。前記会話グラフは、前記会話グラフの前記メッセージを表す複数のノードの配置を有するツリーデータ構造を含んでよい。前記方法は、前記メッセージングプラットホームが、前記複数の予測結果に基づいて前記複数のメッセージごとにエンゲージメント値を計算する工程と、前記メッセージングプラットホームが、前記エンゲージメント値を用いて、前記ツリーデータ構造の1つまたは複数のブランチを選択する工程と、をさらに備えてよい。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more of the following features (or any combination thereof). The plurality of predicted outcomes also includes a positive engagement probability and a negative engagement probability. The method comprises calculating 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 matched according to the engagement value. Ranked. The method comprises the steps of: the messaging platform generating the conversation graph based on a reply structure of messages exchanged on the messaging platform, the conversation graph comprising a tree data structure of messages associated with a conversation; A process may be provided. The method comprises the steps of: the messaging platform obtaining signals generated by one or more of the client application and the messaging platform; and the messaging platform determining the plurality of predicted results, and inputting said signal to said prediction model. The method may comprise the messaging platform training the predictive model based on a machine learning algorithm fed with training data. The method comprises the steps of: the messaging platform, in response to a number of messages in the conversation graph exceeding a threshold level, selecting a candidate subset from the plurality of messages; is determined for each message of said candidate subset. The method comprises the steps of: the messaging platform sending a first subset of the plurality of messages rendered in the client application according to the rank; and the messaging platform displaying additional messages from the conversation graph. It may further comprise receiving a request from the client application, and the messaging platform sending a second subset of the plurality of messages rendered in the client application according to the rank. The conversation graph may include a tree data structure having an arrangement of nodes representing the messages of the conversation graph. The method comprises the steps of: the messaging platform calculating an engagement value for each of the plurality of messages based on the plurality of predicted results; or selecting a plurality of branches.

一態様によれば、予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのシステムは、メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて会話グラフを生成するように構成されている会話グラフマネージャであって、前記会話グラフは会話のメッセージのデータ構造を含む、会話グラフマネージャと、ネットワークを通じてクライアントアプリケーション上のユーザのタイムラインにメッセージのストリームを提供するように構成されているタイムラインマネージャであって、前記ネットワークを通じて、会話閲覧リクエストを前記クライアントアプリケーションから受信するように構成されている、タイムラインマネージャと、前記会話閲覧リクエストに応答して、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定するように構成されているエンゲージメント予測器であって、前記複数の予測結果は、相互エンゲージメント確率と、正のエンゲージメント確率および負のエンゲージメント確率のうちの1つ以上とを含む、エンゲージメント予測器と、それぞれのメッセージについての前記予測結果を用いて前記複数のメッセージの各々についてエンゲージメント値を計算するように構成されているエンゲージメントスコアラと、を備える。前記タイムラインマネージャは、前記エンゲージメント値を用いて前記複数のメッセージをランク付けし、前記ランクに従って前記タイムラインにおいてレンダリングされる前記複数のメッセージの少なくともサブセットを、前記ネットワークを通じて提供するように構成されている。さらなる態様によれば、対応する方法および対応する命令を記憶する非一時的なコンピュータ可読媒体が提供されてよい。 According to one aspect, a system for ranking messages of a conversation graph in a messaging platform using prediction results is configured to generate a conversation graph based on reply structures of messages exchanged in the messaging platform. a conversation graph manager, said conversation graph including a data structure of messages of a conversation; a timeline manager configured to receive, over the network, a request to view a conversation from the client application; An engagement predictor configured to determine a plurality of predicted outcomes for each of a plurality of messages, the plurality of predicted outcomes being a mutual engagement probability and one of a positive engagement probability and a negative engagement probability. and an engagement scorer configured to calculate an engagement value for each of the plurality of messages using the prediction results for each message. The timeline manager is configured to rank the plurality of messages using the engagement value and provide over the network at least a subset of the plurality of messages rendered in the timeline according to the ranking. there is According to further aspects, a non-transitory computer-readable medium storing corresponding methods and corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記相互エンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフのメッセージに対するリプライを受信すると予測される確率値を含み、前記正のエンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフの前記メッセージへの肯定的なユーザエンゲージメントを受信すると予測される確率値を含み、前記負のエンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフの前記メッセージへの否定的なユーザエンゲージメントを受信すると予測される確率値を含む。前記予測モデルは、相互エンゲージメントモデル、正のエンゲージメントモデル、および負のエンゲージメントモデルを含む。前記エンゲージメント予測器は、前記クライアントアプリケーションと前記メッセージングプラットホームとのうちの1つ以上によって生成された信号を取得し、前記信号を前記相互エンゲージメントモデル、前記正のエンゲージメントモデル、および前記負のエンゲージメントモデルに入力するように、また前記相互エンゲージメント確率、前記正のエンゲージメント確率、および前記負のエンゲージメント確率をそれぞれ取得するように構成されている。前記システムは、訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練するように構成されている予測モデルトレーナであって、訓練された前記予測モデルを前記予測マネージャに対し提供するように構成されている、予測モデルトレーナをさらに備えてよい。前記システムは、複数のソースから候補のサブセットを選択するように構成されている候補メッセージセレクタをさらに備えてよく、前記複数のソースは、最近投稿されたものに従ってランク付けされた前記会話グラフの前記メッセージを有する第1のソースと、関連性アルゴリズムに従ってランク付けされた前記会話グラフの前記メッセージを有する第2のソースと、を含む。前記候補のサブセットは、前記第1のソースからのある数のメッセージと前記第2のソースからのある数のメッセージとを含み、前記複数の予測結果は前記候補のサブセットのメッセージごとに決定される。前記会話グラフの前記データ構造は、前記会話グラフの前記メッセージを表す複数のノードの配置を有するツリーデータ構造を含み、前記タイムラインマネージャは、前記エンゲージメント値を用いて前記ツリーデータ構造のブランチを選択するように構成されている。前記エンゲージメントスコアラは、前記相互エンゲージメント確率に適用される重み付けが前記負のエンゲージメント確率に適用される重み付けよりも高くなるように、前記相互エンゲージメント確率、前記正のエンゲージメント確率、および前記負のエンゲージメント確率の各々に重み付けを適用するように構成されている。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The mutual engagement probability includes a probability value that the messaging platform expects to receive a reply to the message in the conversation graph, and the positive engagement probability indicates that the messaging platform will receive an acknowledgment to the message in the conversation graph. said negative engagement probability comprises a probability value that said messaging platform is expected to receive negative user engagement to said message of said conversation graph. . The predictive models include mutual engagement models, positive engagement models, and negative engagement models. The engagement predictor obtains signals generated by one or more of the client application and the messaging platform and applies the signals to the mutual engagement model, the positive engagement model, and the negative engagement model. configured to input and obtain the mutual engagement probability, the positive engagement probability, and the negative engagement probability, respectively. The system is a predictive model trainer configured to periodically train the predictive model based on one or more machine learning algorithms input with training data, the trained predictive model being: A predictive model trainer configured to provide to the predictive manager may further comprise. The system may further comprise a candidate message selector configured to select a subset of candidates from a plurality of sources, wherein the plurality of sources are selected from the conversation graph ranked according to the most recently posted. A first source with messages and a second source with said messages of said conversation graph ranked according to a relevance algorithm. The candidate subset includes a number of messages from the first source and a number of messages from the second source, and the plurality of prediction results is determined for each message of the candidate subset. . The data structure of the conversation graph includes a tree data structure having an arrangement of a plurality of nodes representing the messages of the conversation graph, and the timeline manager selects a branch of the tree data structure using the engagement value. is configured to The engagement scorer determines the mutual engagement probability, the positive engagement probability, and the negative engagement probability such that the weighting applied to the mutual engagement probability is higher than the weighting applied to the negative engagement probability. It is configured to apply a weighting to each.

一態様によれば、実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによる実行時、前記1つ以上のプロセッサに、ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージについての会話閲覧リクエストを受信する工程であって、前記会話グラフは会話のメッセージのデータ構造を含む、工程と、前記会話グラフからメッセージの候補のサブセットを選択する工程と、予測モデルを用いて前記候補のサブセットのメッセージごとに複数の予測結果を決定する工程であって、前記複数の予測結果は、相互エンゲージメント確率を含み、前記相互エンゲージメント確率は、前記メッセージングプラットホームが、前記候補のサブセットのそれぞれのメッセージに対するリプライを受信すると予測される確率値を含む、工程と、前記予測結果を用いて前記候補のサブセットのメッセージごとにエンゲージメント値を計算する工程と、前記エンゲージメント値を用いて前記複数のメッセージをランク付けする工程と、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくともサブセットを送信する工程と、を行わせるように構成されている、非一時的なコンピュータ可読媒体。さらなる態様によれば、対応する命令を記憶する対応するシステムおよび方法が提供されてよい。 According to one aspect, a non-transitory computer-readable medium storing executable instructions that, when executed by one or more processors, communicates with the one or more processors over a network to a messaging platform. selecting a candidate subset of messages from the conversation graph; and determining a plurality of predicted outcomes for each message of the candidate subset using a predictive model, wherein the plurality of predicted outcomes comprises a cross-engagement probability, the cross-engagement probability is associated with the messaging platform. includes a predicted probability value of receiving a reply to each message of the candidate subset; calculating an engagement value for each message of the candidate subset using the prediction result; ranking the plurality of messages using a value; and sending at least a subset of the plurality of messages rendered in a client application according to the ranking. computer readable medium. According to further aspects, corresponding systems and methods for storing corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記候補のサブセットは、前記会話グラフからのある数の最近投稿されたメッセージとある数の上位にランク付けされたメッセージとを含む。前記会話グラフの前記データ構造は、前記会話グラフの前記メッセージを表す複数のノードの配置を有するツリーデータ構造を含む。前記動作は、前記エンゲージメント値を用いて前記ツリーデータ構造のブランチを選択する工程を備えてよい。前記動作は、訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練する工程と、訓練された前記予測モデルを予測マネージャに提供する工程と、を備えてよい。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The candidate subset includes a number of recently posted messages and a number of top ranked messages from the conversation graph. The data structure of the conversation graph includes a tree data structure having an arrangement of a plurality of nodes representing the messages of the conversation graph. The act may comprise selecting a branch of the tree data structure using the engagement value. The operations comprise periodically training the prediction model based on one or more machine learning algorithms input with training data, and providing the trained prediction model to a prediction manager. you can

一態様によれば、予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするための方法は、ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージを取り出すように会話閲覧リクエストを受信する工程と、前記メッセージングプラットホームが、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する決定工程と、を備える。前記決定工程は、前記会話グラフに関連するデータ構造関連信号を含む、前記予測モデルに関連性のある複数の信号を取得する工程と、前記複数の予測結果を決定するように、前記複数の信号を前記予測モデルに入力する工程と、を含んでよい。方法は、前記メッセージングプラットホームが、前記予測結果に基づいて前記複数のメッセージをランク付けする工程と、前記メッセージングプラットホームが、前記ネットワークを通じて、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくともサブセットを送信する工程と、を備える。さらなる態様によれば、対応するシステムおよび対応する命令を記憶する非一時的なコンピュータ可読媒体が提供されてよい。 According to one aspect, a method for ranking conversation graph messages in a messaging platform using prediction results receives, over a network, a conversation view request to retrieve conversation graph messages stored in the messaging platform. and determining, where the messaging platform uses a predictive model to determine a plurality of predicted outcomes for each of a plurality of messages of the conversation graph. The determining step includes obtaining a plurality of signals associated with the prediction model, including data structure-related signals associated with the conversation graph; into the prediction model. The method comprises the steps of: the messaging platform ranking the plurality of messages based on the predicted results; and the messaging platform rendering at least a subset of the plurality of messages in a client application according to the rankings over the network. and transmitting. According to further aspects, a non-transitory computer-readable medium storing a corresponding system and corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記会話グラフは、前記会話グラフの前記メッセージを表す複数のノードと前記ノード間のリンクを表すエッジとを有するツリーデータ構造を含み、前記ツリーデータ構造はノードの1つまたは複数のブランチを定め、前記データ構造関連信号は前記会話グラフ内のノードの数とブランチの数とを表す信号を含む。前記データ構造関連信号は、ブランチ内のリプライの数、ブランチ内の会話の数、およびブランチまたは前記会話グラフ内のユニーク作成者の数を含む。前記複数の信号は、前記クライアントアプリケーションのユーザが前記会話グラフのメッセージの作成者を制限したかを表す信号を含む。前記複数の信号は、接続グラフにおける前記クライアントアプリケーションのユーザをフォローしているユーザのエンゲージメントを含む、前記会話グラフの前記メッセージに関連付けられているユーザエンゲージメントデータを表すエンゲージメント信号を含む。前記複数の信号は、前記メッセージングプラットホームにおける前記クライアントアプリケーションのユーザに関連付けられているエンゲージメントデータを含む履歴集約信号を含む。前記複数の信号は、前記会話グラフのメッセージに関連付けられているコンテンツ関連信号を含む。前記複数の信号の少なくともサブセットは、前記メッセージングプラットホームにおいて実行する1つまたは複数のデータサービスから取得される。前記方法は、前記メッセージングプラットホームが、前記クライアントアプリケーションから受信された情報を記憶するクライアントイベントログと、前記メッセージングプラットホームにおいて実行するタイムラインマネージャからの情報を記憶するインジェクションログと、から訓練データを取得する工程と、前記メッセージングプラットホームが、前記訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程と、を備えてよい。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . the conversation graph includes a tree data structure having a plurality of nodes representing the messages of the conversation graph and edges representing links between the nodes, the tree data structure defining one or more branches of nodes; The data structure related signals include signals representing the number of nodes and the number of branches within the conversation graph. The data structure related signals include the number of replies within a branch, the number of conversations within a branch, and the number of unique authors within a branch or the conversation graph. The plurality of signals includes a signal indicative of whether a user of the client application has restricted creators of messages of the conversation graph. The plurality of signals includes engagement signals representing user engagement data associated with the messages of the conversation graph, including engagement of users following users of the client application in a connection graph. The plurality of signals includes historical aggregated signals including engagement data associated with users of the 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 are obtained from one or more data services executing on the messaging platform. The method obtains training data from a client event log in which the messaging platform stores information received from the client application and an injection log in which information from a timeline manager executing on the messaging platform is stored. and said messaging platform training said predictive model based on a machine learning algorithm input with said training data.

一態様によれば、予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのシステムは、メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて会話グラフを生成するように構成されている会話グラフマネージャであって、前記会話グラフは会話のメッセージのデータ構造を含む、会話グラフマネージャと、ネットワークを通じてクライアントアプリケーション上のユーザのタイムラインにメッセージのストリームを提供するように構成されているタイムラインマネージャであって、前記ネットワークを通じて、会話閲覧リクエストを前記クライアントアプリケーションから受信するように構成されている、タイムラインマネージャと、前記会話閲覧リクエストに応答して、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定するように構成されているエンゲージメント予測器と、を備える。前記エンゲージメント予測器は、前記メッセージングプラットホームに記憶されている1つまたは複数のデータサービスから前記予測モデルに関連性のある複数の信号を取得するように構成されており、前記複数の予測結果を決定するように前記複数の信号を前記予測モデルに入力するように構成されている。前記システムは、それぞれのメッセージについての前記予測結果を用いて、前記複数のメッセージの各々についてエンゲージメント値を計算するように構成されているエンゲージメントスコアラを備え、前記タイムラインマネージャは、前記エンゲージメント値を用いて前記複数のメッセージをランク付けし、前記ランクに従って前記タイムラインにおいてレンダリングされる前記複数のメッセージの少なくともサブセットを前記ネットワークを通じて提供するように構成されている。さらなる態様によれば、対応する方法および対応する命令を記憶する非一時的なコンピュータ可読媒体が提供されてよい。 According to one aspect, a system for ranking messages of a conversation graph in a messaging platform using prediction results is configured to generate a conversation graph based on reply structures of messages exchanged in the messaging platform. a conversation graph manager, said conversation graph including a data structure of messages of a conversation; a timeline manager configured to receive a conversation viewing request from the client application over the network; and an engagement predictor configured to determine a plurality of predicted outcomes for each of the plurality of messages. The engagement predictor configured to obtain a plurality of signals relevant to the predictive model from one or more data services stored on the messaging platform to determine the plurality of prediction outcomes. configured to input the plurality of signals to the predictive model so as to The system comprises an engagement scorer configured to calculate an engagement value for each of the plurality of messages using the predicted results for each message, the timeline manager using the engagement value ranks the plurality of messages in the network and provides over the network at least a subset of the plurality of messages rendered in the timeline according to the ranking. According to further aspects, a non-transitory computer-readable medium storing corresponding methods and corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記複数の信号は、前記会話グラフに関連するデータ構造関連信号を含む。前記エンゲージメント予測器は、第1のデータサービスから1つまたは複数の第1の信号を取得し、第2のデータサービスから1つまたは複数の第2の信号を取得するように構成されている。前記複数の信号は、1つ以上の健康関連信号、エンゲージメント信号、ソーシャルグラフ信号、履歴集約信号、またはコンテンツ関連信号を含む。前記予測モデルは、相互エンゲージメントモデル、正のエンゲージメントモデル、および負のエンゲージメントモデルを含み、前記エンゲージメント予測器は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率をそれぞれ取得するように、前記信号を前記相互エンゲージメントモデル、前記正のエンゲージメントモデル、および前記負のエンゲージメントモデルに入力するように構成されている。前記システムは、訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練するように構成されている予測モデルトレーナであって、訓練された前記予測モデルを前記予測マネージャに対し提供するように構成されている、予測モデルトレーナをさらに備えてよい。前記複数の信号は、前記クライアントアプリケーションによって生成された信号および前記メッセージングプラットホームによって生成された信号を含む。前記複数の信号は類似性信号を含む。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The plurality of signals includes data structure related signals associated with the conversation graph. The engagement predictor is configured to obtain one or more first signals from a first data service and one or more second signals from a second data service. The plurality of signals includes one or more of health-related signals, engagement signals, social graph signals, history aggregation signals, or content-related signals. The prediction model includes a mutual engagement model, a positive engagement model, and a negative engagement model, and the engagement predictor obtains mutual engagement probability, positive engagement probability, and negative engagement probability, respectively. configured to input signals into the mutual engagement model, the positive engagement model and the negative engagement model. The system is a predictive model trainer configured to periodically train the predictive model based on one or more machine learning algorithms input with training data, the trained predictive model being: A predictive model trainer configured to provide to the predictive manager may further comprise. The plurality of signals includes signals generated by the client application and signals generated by the messaging platform. The plurality of signals includes similarity signals.

一態様によれば、実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによる実行時、前記1つ以上のプロセッサに、ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージについての会話閲覧リクエストを受信する工程であって、前記会話グラフは会話のメッセージのデータ構造を含む、工程と、前記会話グラフからメッセージの候補のサブセットを選択する工程と、予測モデルを用いて前記候補のサブセットのメッセージごとに複数の予測結果を決定する工程であって、前記会話グラフに関連するデータ構造関連信号を含む複数の信号を取得する工程と、前記複数の予測結果を決定するように前記複数の信号を前記予測モデルに入力する工程と、を含む工程と、前記予測結果を用いて前記候補のサブセットのメッセージごとにエンゲージメント値を計算する工程と、前記エンゲージメント値を用いて前記複数のメッセージをランク付けする工程と、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくともサブセットを送信する工程と、を行わせるように構成されている、非一時的なコンピュータ可読媒体。さらなる態様によれば、対応するシステムおよび方法が提供されてよい。 According to one aspect, a non-transitory computer-readable medium storing executable instructions that, when executed by one or more processors, communicates with the one or more processors over a network to a messaging platform. selecting a candidate subset of messages from the conversation graph; determining a plurality of predicted outcomes for each message of said candidate subset using a prediction model, obtaining a plurality of signals including data structure related signals associated with said conversation graph; inputting the plurality of signals into the prediction model to determine a plurality of prediction outcomes; and using the prediction outcomes to calculate an engagement value for each message of the candidate subset; ranking the plurality of messages using the engagement value; and sending at least a subset of the plurality of messages rendered in a client application according to the ranking. Temporary computer readable medium. According to further aspects, corresponding systems and methods may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記動作は、前記クライアントアプリケーションから受信された情報を記憶するクライアントイベントログと、前記メッセージングプラットホームにおいて実行するタイムラインマネージャからの情報を記憶するインジェクションログと、から訓練データを取得する工程と、前記訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程と、をさらに備えてよい。前記複数の信号は、1つ以上の健康関連信号、エンゲージメント信号、ソーシャルグラフ信号、履歴集約信号、またはコンテンツ関連信号を含む。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The actions include obtaining 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; training the predictive model based on a data-inputted machine learning algorithm. The plurality of signals includes one or more of health-related signals, engagement signals, social graph signals, history aggregation signals, or content-related signals.

一態様によれば、メッセージングプラットホームにおける会話グラフのメッセージをランク付けするための方法であって、メッセージングプラットホームが、会話グラフのメッセージを、前記メッセージのコンテンツ品質に基づいて複数のセクションへと分類する工程であって、前記複数のセクションは、第1のセクションおよび第2のセクションを含む、分類工程を備える。前記第1のセクションは、前記第2のセクションのメッセージよりも高品質であると決定された前記会話グラフからのメッセージを有する。前記方法は、前記メッセージングプラットホームが、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する工程と、前記メッセージングプラットホームが、前記第1のセクションの前記メッセージについての前記予測結果に基づいて前記第1のセクションの前記メッセージをランク付けする工程と、前記メッセージングプラットホームが、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第1のセクションの前記メッセージの少なくともサブセットを送信する工程と、を備える。さらなる態様によれば、対応するシステムおよび対応する命令を記憶する非一時的なコンピュータ可読媒体が提供されてよい。 According to one aspect, a method for ranking conversation graph messages in a messaging platform, wherein the messaging platform classifies conversation graph messages into a plurality of sections based on content quality of said messages. and the plurality of sections comprises a sorting step 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 method comprises the steps of: the messaging platform determining a plurality of predicted outcomes for each of the plurality of messages of the conversation graph using a predictive model; ranking the messages of the first section based on prediction results; and the messaging platform sending at least a subset of the messages of the first section rendered in a client application according to the ranking. , provided. According to further aspects, a non-transitory computer-readable medium storing a corresponding system and corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記方法は、前記メッセージングプラットホームが、前記第2のセクションの前記メッセージについての前記複数の予測結果に基づいて前記第2のセクションの前記メッセージをランク付けする工程を備える。いくつかの例では、前記方法は、前記メッセージングプラットホームが、前記会話グラフの追加のメッセージを前記クライアントアプリケーションにおいてレンダリングするリクエストを受信する工程と、前記メッセージングプラットホームが、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第2のセクションの前記メッセージの少なくともサブセットを送信する工程と、を備える。前記分類工程は、前記会話グラフのメッセージのメッセージ識別子を受信する工程と、分類モデルを用いて、前記メッセージが前記第1のセクションに対応するコンテンツ品質を有すると決定する工程と、を含んでよい。前記方法は、前記メッセージを含む前記会話グラフのブランチを前記第1のセクションに割り当てる工程を備えてよい。前記方法は、それぞれのメッセージの前記複数の予測結果を用いて、前記会話グラフのメッセージごとにエンゲージメント値を計算する工程を備え、前記第1の品質セクションの前記メッセージは、前記第1の品質セクションの前記メッセージのエンゲージメント値に従ってランク付けされる。前記予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含む。前記方法は、前記メッセージングプラットホームが、前記メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて前記会話グラフを生成する工程であって、前記会話グラフは会話に関連するメッセージのツリーデータ構造を含む、工程をさらに備えてよい。前記複数の予測モデルは、相互エンゲージメントモデル、正のエンゲージメントモデル、および負のエンゲージメントモデルを含み、前記相互エンゲージメントモデル、前記正のエンゲージメントモデル、および前記負のエンゲージメントモデルのうちの1つ以上はニューラルネットワークを含む。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The method comprises the messaging platform ranking the messages of the second section based on the plurality of prediction results for the messages of the second section. In some examples, the method comprises the steps of: the messaging platform receiving a request to render additional messages of the conversation graph in the client application; and the messaging platform rendered in the client application according to the rank. and sending at least a subset of said messages of said second section. The classifying step may include receiving a message identifier for a message of the conversation graph and using a classification model to determine that the message has a content quality corresponding to the first section. . The method may comprise assigning a branch of the conversation graph containing the message to the first section. The method comprises calculating an engagement value for each message of the conversation graph using the plurality of prediction results for each message, wherein the messages of the first quality section are are ranked according to the engagement value of said messages in . The prediction results include mutual engagement probabilities, positive engagement probabilities, and negative engagement probabilities. The method comprises the steps of: the messaging platform generating the conversation graph based on a reply structure of messages exchanged on the messaging platform, the conversation graph comprising a tree data structure of messages associated with a conversation; Further steps may be included. The plurality of predictive models includes a mutual engagement model, a positive engagement model, and a negative engagement model, wherein one or more of the mutual engagement model, the positive engagement model, and the negative engagement model are neural networks. including.

一態様によれば、メッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのシステムは、メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて会話グラフを生成するように構成されている会話グラフマネージャであって、前記会話グラフは会話のメッセージのデータ構造を含む、会話グラフマネージャと、ネットワークを通じて、クライアントアプリケーション上のユーザのタイムラインにメッセージのストリームを提供するように構成されているタイムラインマネージャであって、会話閲覧リクエストをネットワークを通じて前記クライアントアプリケーションから受信するように構成されている、タイムラインマネージャと、前記会話グラフの前記メッセージを、前記メッセージのコンテンツ品質に基づいて複数のセクションへと分類するように構成されているコンテンツ品質分類器であって、前記複数のセクションは第1のセクションおよび第2のセクションを含む、コンテンツ品質分類器と、を備える。前記第1のセクションは、前記第2のセクションのメッセージよりも高品質であると決定された前記会話グラフからのメッセージを有する。前記システムは、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定するように構成されているエンゲージメント予測器と、それぞれのメッセージについての前記複数の予測結果を用いて前記複数のメッセージの各々についてエンゲージメント値を計算するように構成されているエンゲージメントスコアラと、を備える。前記タイムラインマネージャは、前記第1のセクションのエンゲージメント値を用いて前記第1のセクションの前記メッセージをランク付けし、前記ランクに従って前記タイムラインにおいてレンダリングされる前記第1のセクションの前記メッセージの少なくともサブセットを、前記ネットワークを通じて提供するように構成されている。さらなる態様によれば、対応する方法および対応する命令を記憶する非一時的なコンピュータ可読媒体が提供されてよい。 According to one aspect, a system for ranking messages in a conversation graph in a messaging platform is a conversation graph manager configured to generate a conversation graph based on reply structures of messages exchanged in the messaging platform. a conversation graph manager, wherein the conversation graph includes a data structure of messages of a conversation; and a timeline manager configured to provide a stream of messages to a user's timeline on a client application over a network. a timeline manager configured to receive conversation view requests from the client application over a network; and to classify the messages of the conversation graph into a plurality of sections based on content quality of the messages. 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 system includes an engagement predictor configured to determine a plurality of predicted outcomes for each of a plurality of messages of the conversation graph using a predictive model; and using the plurality of predicted outcomes for each message. and an engagement scorer configured to calculate an engagement value for each of the plurality of messages. The timeline manager ranks the messages of the first section using the engagement value of the first section, and at least of the messages of the first section rendered in the timeline according to the rank. A subset is configured to be provided over the network. According to further aspects, a non-transitory computer-readable medium storing corresponding methods and corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記エンゲージメント予測器は、前記メッセージングプラットホームに記憶されている1つまたは複数のデータサービスから、前記予測モデルに関連性のある複数の信号を取得するように構成されており、前記複数の予測結果を決定するように、前記複数の信号を前記予測モデルに入力するように構成されている。前記複数の信号は、前記会話グラフに関連するデータ構造関連信号を含む。前記タイムラインマネージャは、前記第2のセクションのエンゲージメント値を用いて前記第2のセクションの前記メッセージを別々にランク付けするように構成されている。前記コンテンツ品質分類器は、前記会話グラフのメッセージのメッセージ識別子を受信するように、また分類モデルを用いて、前記メッセージが前記第1の品質セクションに対応するコンテンツ品質を有することを決定するように構成されている。前記複数の予測結果は相互エンゲージメント確率を含み、前記相互エンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフのそれぞれのメッセージに対するリプライを受信すると予測される確率値を含む。前記システムは、訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練するように構成されている予測モデルトレーナであって、訓練された前記予測モデルを前記予測マネージャに対し提供するように構成されている、予測モデルトレーナをさらに備えてよい。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The engagement predictor is configured to obtain a plurality of signals relevant to the predictive model from one or more data services stored on the messaging platform, and extracts the plurality of prediction results. configured to input the plurality of signals to the predictive model to determine. The plurality of signals includes data structure related signals associated with the conversation graph. The timeline manager is configured to separately rank the messages of the second section using the engagement value of the second section. The content quality classifier receives a message identifier for a message of the conversation graph and uses a classification model to determine that the message has a content quality corresponding to the first quality section. It is configured. The plurality of prediction results includes mutual engagement probabilities, wherein the mutual engagement probabilities include probability values that the messaging platform is expected to receive a reply to each message of the conversation graph. The system is a predictive model trainer configured to periodically train the predictive model based on one or more machine learning algorithms input with training data, the trained predictive model being: A predictive model trainer configured to provide to the predictive manager may further comprise.

一態様によれば、実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによる実行時、前記1つ以上のプロセッサに、分類モデルを用いて、会話グラフのメッセージを前記メッセージのコンテンツ品質に基づいて複数のセクションへと分類する工程であって、前記複数のセクションは第1のセクションおよび第2のセクションを含み、前記第1のセクションは前記第2のセクションのメッセージよりも高品質であると決定された前記会話グラフからのメッセージを有する、工程と、1つまたは複数の予測モデルを用いて、前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する工程であって、前記複数の予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含む、工程と、前記第1のセクションの前記メッセージを前記第1のセクションの前記メッセージについての前記複数の予測結果に基づいてランク付けする工程と、前記第2のセクションの前記メッセージを前記第2のセクションの前記メッセージについての前記複数の予測結果に基づいてランク付けする工程と、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第1の品質セクションの前記メッセージの少なくともサブセットを送信する工程と、を行わせるように構成されている、非一時的なコンピュータ可読媒体。さらなる態様によれば、対応するシステムおよび方法が提供されてよい。 According to one aspect, a non-transitory computer-readable medium storing executable instructions that, when executed by one or more processors, cause the one or more processors to use a classification model to: , classifying messages of a conversation graph into a plurality of sections based on content quality of said messages, said plurality of sections including a first section and a second section, said first section said for each of the plurality of messages of the conversation graph using one or more predictive models, having messages from the conversation graph determined to be of higher quality than the messages of the second section; wherein the plurality of prediction results includes a mutual engagement probability, a positive engagement probability, and a negative engagement probability; and ranking the messages in the second section based on the plurality of prediction results for the messages in the second section. and transmitting at least a subset of said messages of said first quality section rendered in a client application according to said rank. According to further aspects, corresponding systems and methods may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記動作は、前記クライアントアプリケーションから受信された情報を記憶するクライアントイベントログと、メッセージングプラットホームにおいて実行するタイムラインマネージャからの情報を記憶するインジェクションログと、から訓練データを取得する工程と、前記訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程と、を備える。前記動作は、前記会話グラフの第1のメッセージのメッセージ識別子を受信する工程と、前記分類モデルを用いて、前記第1のメッセージが前記第1のセクションに対応するコンテンツ品質を有すると決定する工程と、前記会話グラフの第2のメッセージのメッセージ識別子を受信する工程と、前記分類モデルを用いて、前記第2のメッセージが前記第2のセクションに対応するコンテンツ品質を有すると決定する工程と、を備えてよい。前記動作は、前記会話グラフの追加のメッセージを前記クライアントアプリケーションにおいてレンダリングするリクエストを受信する工程と、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第2のセクションの前記メッセージの少なくともサブセットを送信する工程と、を備えてよい。これらのおよび他の特徴は、詳細な説明においてさらに説明される。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The actions include obtaining 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 training the predictive model based on a machine learning algorithm input by . The act comprises receiving a message identifier for a first message of the conversation graph and using the classification model to determine that the first message has a content quality corresponding to the first section. and receiving a message identifier of a second message of the conversation graph, and using the classification model to determine that the second message has a content quality corresponding to the second section; may be provided. The act comprises receiving a request to render additional messages of the conversation graph in the client application and sending at least a subset of the messages of the second section to be rendered in the client application according to the rank. , may be provided. These and other features are explained further in the detailed description.

一態様に係る、予測モデルからの予測結果を用いて会話グラフのメッセージをランク付けするためのメッセージングシステムを示す図。1 illustrates a messaging system for ranking messages in a conversation graph using predictive results from predictive models, according to one aspect. FIG. 一態様に係る、メッセージングシステムの候補メッセージセレクタを示す図。1 illustrates a candidate message selector of a messaging system, according to one aspect; FIG. 一態様に係る、予測結果を決定するために用いられる信号の例を示す図。FIG. 4 illustrates an example of signals used to determine a prediction result, according to one aspect. 一態様に係る、メッセージングシステムの予測マネージャを示す図。1 illustrates a prediction manager of a messaging system, according to one aspect; FIG. 一態様に係る、予測モデル用の訓練データを生成する一例を示す図。FIG. 4 illustrates an example of generating training data for a predictive model, according to one aspect. 一態様に係る、コンテンツ品質分類器を含む2レベルランキング機構の一例を示す図。1 illustrates an example of a two-level ranking mechanism including a content quality classifier, according to one aspect; FIG. 一態様に係る、ニューラルネットワークとしての予測モデルの一例を示す図。FIG. 3 illustrates an example predictive model as a neural network, according to one aspect. 一態様に係る、メッセージングシステムの例示的な動作を示すフローチャート。4 is a flowchart illustrating exemplary operation of a messaging system, according to one aspect. 一態様に係る、メッセージングシステムの例示的な動作を示すフローチャート。4 is a flowchart illustrating exemplary operation of a messaging system, according to one aspect. 一態様に係る、メッセージングシステムの例示的な動作を示すフローチャート。4 is a flowchart illustrating exemplary operation of a messaging system, according to one aspect.

図1A~図1Eは、一態様に係る予測モデル112からの予測結果118を用いる会話グラフ126のメッセージをランク付けするためのメッセージングシステム100を示す。メッセージングシステム100は、一態様では、サーバコンピュータ102によって実行可能なメッセージングプラットホーム104と、コンピューティングデバイス152によって実行可能なクライアントアプリケーション154と、を備える。クライアントアプリケーション154は、ネットワーク150を通じて、メッセージングプラットホーム104と通信し、メッセージングプラットホーム104の他のユーザに(および他のユーザから)メッセージを送信(および受信)する。 1A-1E illustrate a messaging system 100 for ranking messages in a conversation graph 126 using predictive results 118 from predictive models 112 according to one aspect. Messaging system 100 , in one aspect, comprises a messaging platform 104 executable by server computer 102 and a client application 154 executable by computing device 152 . Client application 154 communicates with messaging platform 104 over network 150 to send (and receive) messages to (and from) other users of messaging platform 104 .

クライアントアプリケーション154は、ソーシャルメディアメッセージングアプリケーションであってよい。ソーシャルメディアメッセージングアプリケーションでは、ユーザがメッセージを投稿し、メッセージと対話する。いくつかの例では、クライアントアプリケーション154は、コンピューティングデバイス152のオペレーティングシステム上にて実行されるネイティブアプリケーションであり、またはコンピューティングデバイス152のブラウザベースのアプリケーションと連携して、サーバコンピュータ102(または他のサーバ)上にて実行される、ウェブベースのアプリケーションであってよい。コンピューティングデバイス152は、クライアントアプリケーション154とメッセージングプラットホーム104とが、互いに通信することを可能にするように、任意の種類のネットワーク接続および/またはアプリケーションプログラミングインタフェース(API)を用いて、ネットワーク150を介して、メッセージングプラットホーム104に対してアクセスしてよい。 Client application 154 may be a social media messaging application. Social media messaging applications allow users to post and interact with messages. In some examples, client application 154 is a native application that runs on the operating system of computing device 152, or in conjunction with a browser-based application of computing device 152, to server computer 102 (or other It may be a web-based application running on a server of the Computing device 152 may be connected via network 150 using any type of network connection and/or application programming interface (API) to enable client application 154 and messaging platform 104 to communicate with each other. to access messaging platform 104 .

コンピューティングデバイス152は、モバイルコンピューティングデバイス(例えば、スマートフォン、PDA、タブレット、もしくはラップトップコンピュータ)、または非モバイルコンピューティングデバイス(例えば、デスクトップコンピューティングデバイス)であってよい。コンピューティングデバイス152は、例えば、コンピューティングデバイス152がそれを通じてセルラネットワークと通信することができる、モバイルネットワークインターフェース、コンピューティングデバイス152がそれを用いてWi-Fiベースの局と通信することができる、Wi-Fiネットワークインターフェース、コンピューティングデバイス152がそれを用いて他のBluetooth(登録商標)デバイスと通信することができる、Bluetoothネットワークインターフェース、および/またはコンピューティングデバイス152がネットワーク150に対してアクセスすることを可能にする、イーサネット(登録商標)接続もしくは他の有線接続などの、様々なネットワークインターフェース回路も備える。 Computing device 152 may be a mobile computing device (eg, smart phone, PDA, tablet, or laptop computer) or a non-mobile computing device (eg, desktop computing device). The computing device 152 has, for example, a mobile network interface through which the computing device 152 can communicate with a cellular network, a Wi-Fi based station with which the computing device 152 can communicate; A Wi-Fi network interface, a Bluetooth network interface with which computing device 152 can communicate with other Bluetooth® devices, and/or access by computing device 152 to network 150 It also includes various network interface circuitry, such as an Ethernet connection or other wired connection, that allows for

サーバコンピュータ102は、単一のコンピューティングデバイスであってよく、またはワークロードおよびリソースを共有するために通信可能に接続された、2つ以上の分散コンピューティングデバイスの表現であってよい。サーバコンピュータ102は、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されたときに、1つ以上のプロセッサに、本明細書において説明される動作を行わせる、実行可能な命令を記憶する、非一時的コンピュータ可読媒体とを備えてよい。 Server computer 102 may be a single computing device or a representation of two or more distributed computing devices communicatively coupled to share workload and resources. The server computer 102 stores one or more processors and executable instructions that, when executed by the one or more processors, cause the one or more processors to perform the operations described herein. , and a non-transitory computer-readable medium.

メッセージングプラットホーム104は、ユーザデバイス(そのうちの1つはコンピューティングデバイス152として示されている)間の通信(例えば、リアルタイム通信)を行うための、コンピューティングプラットフォームである。メッセージングプラットホーム104は、個人、企業、および/またはエンティティの何百万ものアカウント141(例えば、スードニムアカウント、ノベルティアカウントなど)を記憶してよい。各アカウント141の1人または複数のユーザは、メッセージングプラットホーム104の内部および/または外部の他のアカウント141に対してメッセージを送信するために、メッセージングプラットホーム104を使用してよい。いくつかの例では、メッセージングプラットホーム104は、ユーザが、「リアルタイム」に通信すること、例えば、最小遅延により他のユーザと会話すること、および同時セッション中に、1人または複数の他のユーザと会話を行うことを可能にしてよい。換言すると、メッセージングプラットホーム104は、ユーザが、メッセージをブロードキャストすることを可能にしてよく、ユーザ間のライブ会話を行うために、妥当な時間フレーム(例えば、2秒未満)内に、1人または複数の他のユーザに対してメッセージを表示してよい。いくつかの例では、メッセージの受信者は、メッセージをブロードキャストしたユーザのアカウントを有する接続グラフ134において、所定のグラフ関連性を有してよい。 Messaging platform 104 is a computing platform for 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 (eg, pseudonym accounts, novelty accounts, etc.) of individuals, businesses, and/or entities. One or more users of each account 141 may use messaging platform 104 to send messages to other accounts 141 internal and/or external to messaging platform 104 . In some examples, messaging platform 104 enables users to communicate in "real time," e.g., converse with other users with minimal delay, and to communicate with one or more other users during concurrent sessions. It may be possible to have a conversation. In other words, messaging platform 104 may allow users to broadcast messages to one or more users within a reasonable time frame (eg, less than two seconds) to conduct live conversations between users. may display messages to other users of In some examples, recipients of a message may have a predetermined graphical relationship in the connection graph 134 with the account of the user who broadcast the message.

接続グラフ134は、メッセージングプラットホーム104内のどのアカウント141が、特定のアカウント141と関連付けられ(例えば、フォローしている、友人である、サブスクライブされているなど)、したがって、特定のアカウント141からメッセージを受信するようにサブスクライブされているかを示す、データ構造を含む。例えば、接続グラフ134は、第1のアカウントを第2のアカウントとリンクさせてよい。これは、第1のアカウントが、第2のアカウントと関連性があることを示す。第2のアカウントのユーザは、第1のアカウントのユーザによってメッセージングプラットホーム104上に投稿されたメッセージを閲覧してよい(および/または、第1のアカウントのユーザは、第2のアカウントのユーザによってメッセージングプラットホーム104上に投稿されたメッセージを閲覧してよい)。関連性は、一方向性(例えば、フォロワ/フォロイ)、および/または双方向性(例えば、友人関係)を含んでよい。メッセージは、特定のメッセージングシステムまたはプロトコルによって制限され得る、様々な長さのいずれかであることが可能である。 The connection graph 134 indicates which accounts 141 within the messaging platform 104 are associated with (e.g., followed, friends with, subscribed to, etc.) a particular account 141 and therefore messages from a particular account 141 . Contains a data structure that indicates whether you are subscribed to receive For example, connection graph 134 may link a first account with a second account. This indicates that the first account is related to the second account. The second account user may view messages posted on messaging platform 104 by the first account user (and/or the first account user may view messages posted by the second account user). may view messages posted on the platform 104). Relationships may include unidirectional (eg, follower/follower) and/or bidirectional (eg, friendship). Messages can be any of a variety of lengths, which may be limited by a particular messaging system or protocol.

いくつかの例では、特定のユーザによって書かれたメッセージを閲覧することに関心があるユーザは、特定のユーザをフォローすることを選ぶことが可能である。第1のユーザは、第1のユーザがフォローしたいユーザとして、第2のユーザを識別することによって、第2のユーザをフォローすることが可能である。第1のユーザが、第2のユーザをフォローしたいことを示した後、接続グラフ134は、関連性を反映するように更新され、第1のユーザには、第2のユーザによって書かれたメッセージが提供される。ユーザは、複数のユーザをフォローすることを選ぶことが可能である。ユーザは、メッセージに応答することも可能であり、それによって、互いに会話をすることが可能である。これに加えて、ユーザは、メッセージを自身のフォロワと共有すること、またはエンゲージメントが自身のフォロワと共有されているメッセージをお気に入りに入れる(もしくは「いいね」する)ことなど、メッセージにエンゲージしてよい。 In some examples, a user interested in viewing messages written by a particular user may choose to follow the particular user. A first user can follow a second user by identifying the second user as a user that the first user wishes to follow. After the first user indicates that they want to follow the second user, the connection graph 134 is updated to reflect the relevance and the first user receives messages written by the second user. is provided. A user can choose to follow multiple users. Users can also respond to messages, thereby allowing them to converse with each other. In addition to this, users can engage with messages, such as sharing messages with their followers, or favouriting (or "liking") messages whose engagement is shared with their followers. good.

メッセージングプラットホーム104にて交換されたメッセージは、メッセージリポジトリ138に記憶される。メッセージリポジトリ138は、記録を記憶する1つまたは複数のテーブルを備えてよい。いくつかの例では、各記録は、別々に記憶されたメッセージに対応する。例えば、ある記録は、メッセージングプラットホーム104に投稿されたメッセージについてのメッセージ識別子、メッセージの作成者を識別する作成者識別子(例えば、@tristan)、メッセージコンテンツ(例えば、テキスト、画像、ビデオ、および/またはウェブコンテンツのURL)、メッセージの本文において識別されている1つまたは複数の参加者アカウント識別子、および/またはメッセージをリプライされる親メッセージ(メッセージがあるメッセージに対するリプライである場合)を識別するリプライ情報を識別してよい。 Messages exchanged on messaging platform 104 are stored in message repository 138 . Message repository 138 may comprise one or more tables that store records. In some examples, each record corresponds to a separately stored message. For example, a record may include a message identifier for a message posted to messaging platform 104, an author identifier identifying the author of the message (e.g., @tristan), message content (e.g., text, image, video, and/or web content URL), 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 is replied (if the message is a reply to a message) can be identified.

メッセージングプラットホーム104は、会話グラフ126を生成する会話グラフマネージャ136と、メッセージのタイムライン156をクライアントアプリケーション154へとインジェクションするタイムラインマネージャ142とを備える。メッセージングプラットホーム104は、会話グラフ126からメッセージの候補サブセット133を選択する候補メッセージセレクタ108を備える。メッセージングプラットホーム104は、予測に関連する信号106を取得するとともに、予測結果118を決定するようにその信号106を1つまたは複数の予測モデル112へと入力する、予測マネージャ110を備える。いくつかの例では、予測マネージャ110は、予測結果118に基づいてエンゲージメント値116を計算する。タイムラインマネージャ142は、エンゲージメント値116を用いて会話グラフ126のメッセージをランク付け(および選択)し、メッセージのランク付けされたリスト158をクライアントアプリケーション154に提供する。メッセージングプラットホーム104は、予測データ148を取得し、トレーニングデータ148により入力された1つまたは複数の機械学習アルゴリズム149を用いて予測モデル112を訓練する、予測モデルトレーナ140を備える。 The messaging platform 104 comprises a conversation graph manager 136 that generates a conversation graph 126 and a timeline manager 142 that injects a timeline 156 of messages into the client application 154 . Messaging platform 104 comprises candidate message selector 108 that selects candidate subset 133 of messages from conversation graph 126 . The messaging platform 104 comprises a prediction manager 110 that obtains signals 106 related to predictions and inputs the signals 106 to one or more prediction models 112 to determine prediction results 118 . In some examples, prediction manager 110 calculates engagement value 116 based on prediction results 118 . The timeline manager 142 ranks (and selects) messages in the conversation graph 126 using the engagement values 116 and provides a ranked list 158 of messages to the client application 154 . Messaging platform 104 includes predictive model trainer 140 that obtains predictive data 148 and trains predictive model 112 using one or more machine learning algorithms 149 input by training data 148 .

さらに詳細には、会話グラフマネージャ136は、メッセージがメッセージングプラットホーム104にて交換されると、1つまたは複数の会話グラフ126を生成(および更新)する。いくつかの例では、会話グラフ126は、メッセージングプラットホーム104に関連付けられているデータストレージデバイスに記憶される。いくつかの例では、会話グラフ126は、タイムラインマネージャ142にて記憶される。メッセージングプラットホーム104は、複数の会話グラフ126(例えば、数百、数千、または何百万もの会話フラフ126)を記憶してよい。各会話グラフ126は、オリジナルのリプライではないメッセージ(例えば、ルートメッセージ)に対するリプライの構造を表してよい。例えば、ユーザがオリジナルのリプライではないメッセージをメッセージングプラットホーム104に生成し投稿するたびに、潜在的な新たな会話が開始され得る。他者は、次いで、オリジナルまたは「ルート」メッセージに対してリプライし、自身のリプライブランチを生成することが可能である。時間とともに、オリジナルのリプライではないメッセージに対するリプライ(および/または、オリジナルのリプライではないメッセージに対するリプライに対するリプライ)の数は、閾値レベルを超えると、会話グラフマネージャ136は、会話識別子を会話グラフ126に割り当ててよく、会話識別子は、会話グラフ126を一意に識別してよい。いくつかの例では、会話グラフマネージャ136は、会話識別子を、リプライを有する各メッセージに割り当ててよい。例えば、メッセージングプラットホームがメッセージAを有し、誰かがメッセージBによりメッセージAに対し反応した場合、メッセージAには、会話を識別するのに用いられることが可能である会話識別子が割り当てられる。これによって、以下に詳細に説明されるように、会話グラフ126を生じる。いくつかの例では、メッセージに対するリプライがある場合、会話が存在する。 More specifically, conversation graph manager 136 generates (and updates) one or more conversation graphs 126 as messages are exchanged on messaging platform 104 . In some examples, conversation graph 126 is stored in a data storage device associated with messaging platform 104 . In some examples, conversation graph 126 is stored at timeline manager 142 . The messaging platform 104 may store multiple conversation graphs 126 (eg, hundreds, thousands, or millions of conversation graphs 126). Each conversation graph 126 may represent the structure of replies to messages that were not original replies (eg, root messages). For example, each time a user creates and posts a message to messaging platform 104 that is not an original reply, a potential new conversation can be started. Others can then reply to the original or "root" message, generating their own reply branches. Over time, when the number of replies to messages that are not original replies (and/or replies to replies to messages that are not original replies) exceeds a threshold level, conversation graph manager 136 adds conversation identifiers to conversation graph 126. A conversation identifier may be assigned and may uniquely identify the conversation graph 126 . In some examples, conversation graph manager 136 may assign a conversation identifier to each message that has a reply. For example, if a messaging platform has message A and someone responds to message A with message B, message A is assigned a conversation identifier that can be used to identify the conversation. This yields conversation graph 126, as described in detail below. In some instances, a conversation exists if there is a reply to a message.

会話グラフ126は、会話におけるメッセージを表す階層データ構造であってよい。いくつかの例では、会話グラフ126は、非線形または線形データ構造を含む。いくつかの例では、会話グラフ126は、ツリーデータ構造を含む。会話グラフ126は、メッセージを表すノード128(または頂点)と、ノード128間のリンクを表すエッジ130(または弧)を備えてよい。会話グラフ126は、各ノード128におけるそれぞれのメッセージのメッセージ識別子を記憶してよい。いくつかの例では、会話グラフ126は、各ノード128におけるそれぞれのメッセージの作成者のユーザ識別子を記憶する。会話グラフ126は、ノード128の1つまたは複数のブランチ132を定めてよい。いくつかの例では、ブランチ132は、1つまたは複数のノード128を含む会話グラフ126の一部(例えば、部分ツリー)である。いくつかの例では、ブランチ132は、エッジ130によって接続されている2つ以上のノード128であってよい。ここで、ノード128のうちの1つはリーフノードである。いくつかの例では、ブランチ132は、単一線において接続されているメッセージ(例えば、リーフメッセージ、そのリーフメッセージに対し接続されている第1の親メッセージ、その第1の親メッセージに対し接続されている第2の親メッセージなど、親メッセージが別の親メッセージを有しなくなるまで)として定められてよい。 Conversation graph 126 may be a hierarchical data structure that represents the messages in a conversation. In some examples, conversation graph 126 includes a non-linear or linear data structure. In some examples, conversation graph 126 includes a tree data structure. Conversation graph 126 may comprise nodes 128 (or vertices) representing messages and edges 130 (or arcs) representing links between nodes 128 . Conversation graph 126 may store a message identifier for each message at each node 128 . In some examples, conversation graph 126 stores the user identifier of the creator of each message at each node 128 . Conversation graph 126 may define one or more branches 132 of nodes 128 . In some examples, branch 132 is a portion (eg, subtree) of conversation graph 126 that includes one or more nodes 128 . In some examples, branch 132 may be two or more nodes 128 connected by edge 130 . Here, one of the nodes 128 is a leaf node. In some examples, branch 132 may be a message connected in a single line (e.g., a leaf message, a first parent message connected to the leaf message, a first parent message connected to the first parent message). (until the parent message does not have another parent message, such as a second parent message that has another parent message).

用語「ノード」は、会話グラフ126内のメッセージとして参照されてよく、用語「メッセージ」は、そのメッセージが会話グラフ126の一部として含まれるノード128として参照されてよい。特定のノード128は、エッジ130を介して別のノード128にリンクされてよく、エッジ130の方向は親メッセージを識別する。ノード128は、ルートメッセージ、ルートメッセージに対するリプライにおけるメッセージ、ルートメッセージに対するリプライにおけるメッセージに対するリプライにおけるメッセージなどを表してよい。 The term “node” may be referred to as a message within conversation graph 126 and the term “message” may be referred to as node 128 whose message is included as part of conversation graph 126 . A particular node 128 may be linked to another node 128 via an edge 130, the direction of edge 130 identifying the parent message. Node 128 may represent a root message, a message in reply to a root message, a message in reply to a message in reply to a root message, and so on.

会話グラフマネージャ136は、メッセージのリプライ構造に基づいて会話グラフ126を生成してよい。リプライ構造は、メッセージコンテンツ内から識別された各メッセージおよび/またはリプライ情報に関連付けられているメタデータに基づいて識別されてよい。いくつかの例では、リプライ構造は、メッセージを構成するようにクライアントアプリケーション154から受信された各メッセージに関連付けられているメタデータに基づいて識別される。例えば、ユーザは、クライアントアプリケーション154のユーザインタフェースに表示されているメッセージの下に表示されているリプライリンクをクリックしてよい。クライアントアプリケーション154は、次いで、リプライメッセージを下書きするためのメッセージ構成箱を表示してよい。クライアントアプリケーション154は、リプライメッセージとのリプライ関係(例えば、親メッセージのメッセージ識別子)を含むメタデータを発行してよい。いくつかの例では、リプライ関係は、メッセージコンテンツ内のユーザによって明示的に定められる(例えば、メッセージの本文内のユーザアカウント141(例えば、@tristan)を識別する)。この例では、リプライ構造は、メッセージの本文内に言及された1つまたは複数のアカウント識別子および/またはメッセージ識別子を識別することによって識別されてよい。 The conversation graph manager 136 may generate the conversation graph 126 based on the message's reply structure. 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, reply structures are identified based on metadata associated with each message received from client application 154 to compose the message. For example, the user may click on a reply link displayed below a message displayed on the user interface of client application 154 . Client application 154 may then display a message composition box for drafting a reply message. Client application 154 may publish metadata that includes the reply relationship with the reply message (eg, the message identifier of the parent message). In some examples, the reply relationship is explicitly defined by the user in the message content (eg, identifying user account 141 (eg, @tristan) in 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.

タイムラインマネージャ142は、クライアントアプリケーション154がソーシャルコンテンツのタイムライン156を、クライアントアプリケーション154のユーザインタフェースにおいてレンダリングし表示することを可能にするように、ネットワーク150を通じてデジタル情報を送信してよい。タイムライン156は、メッセージ(例えば、メッセージA、メッセージB、メッセージC)のストリームを含む。いくつかの例では、メッセージのストリームは、逆時系列順に編成される。いくつかの例では、メッセージのストリームは、時系列順に編成される。いくつかの例では、タイムライン156は、特定のユーザに特有のソーシャルコンテンツのタイムラインである。いくつかの例では、タイムライン156は、メッセージングプラットホーム104によってキュレーションされた(例えば、生成され組み立てられた)ストリームを含む。いくつかの例では、タイムライン156は、メッセージングプラットホーム104における検索から得られたメッセージのリストを含む。いくつかの例では、タイムライン156は、クライアントアプリケーション154のユーザのアカウント141と関係しているアカウント141からユーザによって投稿されたメッセージのストリーム(例えば、ユーザがメッセージングプラットホーム104においてフォローすることを選択したアカウント141からのメッセージのストリーム)を含む。いくつかの例では、メッセージのストリームは、プロモーションされたメッセージまたは再共有されたメッセージを含む。 Timeline manager 142 may transmit digital information over network 150 to enable client application 154 to render and display social content timeline 156 in the user interface of client application 154 . Timeline 156 includes a stream of messages (eg, message A, message B, message C). In some examples, the stream of messages is organized in reverse chronological order. In some examples, the stream of messages is organized in chronological order. In some examples, timeline 156 is a timeline of social content specific to a particular user. In some examples, timeline 156 includes streams curated (eg, generated and assembled) by messaging platform 104 . In some examples, timeline 156 includes a list of messages resulting from searches on messaging platform 104 . In some examples, the timeline 156 is a stream of messages posted by the user from the account 141 associated with the user's account 141 of the client application 154 (e.g., messages the user has chosen to follow on the messaging platform 104). stream of messages from account 141). In some examples, the stream of messages includes promoted or re-shared messages.

タイムライン156におけるメッセージを閲覧する時、ユーザは、タイムライン156からメッセージのうちの1つ(例えば、メッセージB)を選択してよい。これによって、クライアントアプリケーション154に、ネットワーク150を通じて、メッセージングに対し、会話閲覧リクエスト121を生成し送信させてよい。いくつかの例では、選択されたメッセージ(例えば、メッセージB)は、コンテンツメッセージ、または会話グラフ126内のエントリポイントまたは参照のポイントとして機能し得るフォーカルメッセージと呼ばれてよい。会話閲覧リクエスト121は、会話グラフ126からメッセージを取り出すリクエストであってよい。いくつかの例では、会話閲覧リクエスト121は、選択されたメッセージのメッセージ識別子とクライアントアプリケーション154のユーザのユーザ識別子とを含む。いくつかの例では、会話閲覧リクエスト121は、リクエストの時刻、ユーザがオンにしているデバイス、オペレーティングシステム(OS)、および/またはリクエストに関連付けられている他のメタデータを含む。 When viewing messages in timeline 156, a user may select one of the messages from timeline 156 (eg, message B). This may cause client application 154 to generate and send conversation view request 121 for messaging over network 150 . In some examples, the selected message (eg, message B) may be referred to as a content message or focal message, which may serve as an entry point or point of reference within conversation graph 126 . View conversation request 121 may be a request to retrieve a message from conversation graph 126 . In some examples, view conversation request 121 includes the message identifier of the selected message and the user identifier of the user of client application 154 . In some examples, the conversation view request 121 includes the time of the request, the device the user has turned on, the operating system (OS), and/or other metadata associated with the request.

会話閲覧リクエスト121に応答して、タイムラインマネージャ142は、会話グラフ126のメッセージ(またはそれらのサブセット)ごとに予測結果118を生成するように、予測マネージャ110を制御してよく、予測結果118に基づいてメッセージごとにエンゲージメント値116を計算してよい。例えば、予測マネージャ110は、エンゲージメント予測器125およびエンゲージメントスコアラ114を備える。会話閲覧リクエスト121に応答して、エンゲージメント予測器125は、予測に関連する信号106を取得し、会話グラフ126におけるメッセージ(またはメッセージのサブセット)ごとに予測結果118を決定するようにその信号106を予測モデル112に入力してよい。いくつかの例では、予測結果118は、相互エンゲージメント確率124を含む。いくつかの例では、予測結果118は、相互エンゲージメント確率124と、正のエンゲージメント確率120および負のエンゲージメント確率122の1つ以上を含む。いくつかの例では、予測結果118は、相互エンゲージメント確率124と、正のエンゲージメント確率120と、負のエンゲージメント確率122と、を含む。 In response to conversation view requests 121, timeline manager 142 may control prediction manager 110 to generate prediction results 118 for each message (or a subset thereof) of conversation graph 126, where prediction results 118 An engagement value 116 may be calculated for each message based on. For example, prediction manager 110 comprises engagement predictor 125 and engagement scorer 114 . In response to conversation view request 121, engagement predictor 125 obtains prediction-related signal 106 and uses that signal 106 to determine prediction outcome 118 for each message (or subset of messages) in conversation graph 126. It may be input to predictive model 112 . In some examples, prediction results 118 include cross-engagement probabilities 124 . In some examples, predicted results 118 include mutual engagement probabilities 124 and one or more of positive engagement probabilities 120 and negative engagement probabilities 122 . In some examples, predicted results 118 include mutual engagement probability 124 , positive engagement probability 120 , and negative engagement probability 122 .

エンゲージメントスコアラ114は、予測結果118を用いて(例えば、エンゲージメント値116を生成するように予測結果118を組み合わせて)、それぞれのメッセージについてエンゲージメント値116を計算してよい。エンゲージメント値116は、タイムラインマネージャ142によって、会話グラフのメッセージをランク付けするように用いられる。タイムラインマネージャ142は、ネットワーク150を通じて、メッセージ(または会話グラフ126のメッセージのサブセット)を、ユーザのタイムライン156内のランク付けされたリスト158として提供してよい。ランク付けされたリスト158(例えば、メッセージ1、メッセージ2、メッセージ3)は、予測結果118によって決定されたエンゲージメント値116に従ってランク付けされた、会話グラフ126のメッセージのうちのいくつかまたはすべてを含んでよい。 Engagement scorer 114 may use prediction results 118 (eg, combine prediction results 118 to produce engagement value 116) to calculate engagement value 116 for each message. The engagement value 116 is used by the timeline manager 142 to rank messages in the conversation graph. Timeline manager 142 may provide messages (or a subset of messages in conversation graph 126 ) as ranked lists 158 in user's timeline 156 over network 150 . Ranked list 158 (eg, message 1, message 2, message 3) includes some or all of the messages of conversation graph 126 ranked according to engagement value 116 determined by prediction results 118. OK.

いくつかの例では、候補メッセージセレクタ108は、予測マネージャ110によって解析される会話グラフ126のメッセージの一部を選択する。換言すると、候補メッセージセレクタ108は、会話グラフ126に含まれる多数のメッセージから候補のメッセージを選択する。ここで、候補メッセージは、予測マネージャ110による予測解析を受けやすいメッセージである。いくつかの例では、会話グラフ126は比較的大きく、会話グラフ126に含まれるノード128の数が閾値レベルを上回る場合(例えば、3000または4000個を超えるメッセージ)、候補メッセージセレクタ108は、予測マネージャ110によるさらなる解析のためにノード128のサブセット(ノード128のすべてではなく)を選択してよい。換言すると、ノード128の数が閾値レベルを超えると、候補メッセージセレクタ108は、ノード128のサブセットを識別し、それらのノード128の識別情報は、予測を行うように予測マネージャ110に対し提供される。これは、技術的資源消費を減少させ(例えば、大幅に減少させ)、メッセージングプラットホーム104により多くの品質応答を送達させ得る。例えば、会話グラフ126が3万の反応(またはノード128)を有する場合、上記の技術を用いて、メッセージングプラットホーム104は、上位Xの量のメッセージ(例えば、Xは3000であってよい)を選択し、それらに対する信号を収集し、それらをスコアリングして、ユーザに表示するための上位Yの量のメッセージ(例えば、Yは10であってよい)を選択してよい。これによって、ユーザに送達される応答の品質に影響を及ぼすことなく計算資源の量を減少させる(例えば、大幅に減少させる)ことができる。 In some examples, candidate message selector 108 selects a portion of messages in conversation graph 126 to be parsed by prediction manager 110 . In other words, candidate message selector 108 selects candidate messages from a number of messages contained in conversation graph 126 . Here, candidate messages are those messages that are amenable to predictive analysis by the predictive manager 110 . In some examples, the conversation graph 126 is relatively large, and if the number of nodes 128 included in the conversation graph 126 exceeds a threshold level (eg, more than 3000 or 4000 messages), the candidate message selector 108 uses the prediction manager A subset of nodes 128 (rather than all of nodes 128) may be selected for further analysis by 110. FIG. In other words, when the number of nodes 128 exceeds a threshold level, candidate message selector 108 identifies a subset of nodes 128, and the identification of those nodes 128 is provided to prediction manager 110 to make a prediction. . This may reduce (eg, significantly reduce) technical resource consumption and allow messaging platform 104 to deliver more quality responses. For example, if conversation graph 126 has 30,000 responses (or nodes 128), using the techniques described above, messaging platform 104 selects the top X volume messages (eg, X may be 3000). , collect signals for them, score them, and select the top Y amount of messages (eg, Y may be 10) to display to the user. This allows the amount of computational resources to be reduced (eg, significantly reduced) without affecting the quality of the response delivered to the user.

例えば、図1Bを参照すると、候補メッセージセレクタ108は、閾値レベルを超えている会話グラフ126における多数のメッセージに応答して、会話グラフ126から候補のサブセット133を選択してよい。ここで、予測結果118は、候補のサブセット133のメッセージごとに決定される。いくつかの例では、候補のサブセット133は、会話グラフ126におけるメッセージの総数未満である複数のメッセージを含む。いくつかの例では、候補メッセージセレクタ108は、1つまたは複数の候補メッセージソース131から候補のサブセット133を選択する。いくつかの例では、候補メッセージセレクタ108は、複数のソースから会話閲覧用の候補にマージしてよい。例えば、候補メッセージセレクタ108は、第1のソース131-1から会話グラフ126に含まれている第1の組のメッセージを、第2のソース131-2から会話グラフ126に含まれている第2の組のメッセージを選択する。ここで、候補のサブセット133は、第1の組のメッセージおよび第2の組のメッセージを含む。 For example, referring to FIG. 1B, candidate message selector 108 may select subset 133 of candidates from conversation graph 126 in response to a number of messages in conversation graph 126 exceeding a threshold level. Here, a prediction result 118 is determined for each message of the candidate subset 133 . In some examples, candidate subset 133 includes a plurality of messages that are less than the total number of messages in conversation graph 126 . In some examples, candidate message selector 108 selects a subset of candidates 133 from one or more candidate message sources 131 . In some examples, candidate message selector 108 may merge candidates for conversation viewing from multiple sources. For example, candidate message selector 108 selects a first set of messages contained in conversation graph 126 from first source 131-1 as a second set of messages contained in conversation graph 126 from second source 131-2. select a set of messages. Here, candidate subset 133 includes the first set of messages and the second set of messages.

いくつかの例では、第1のソース131-1は、直近に投稿されたものに従ってランク付けされた会話グラフ126のメッセージを含む。いくつかの例では、候補メッセージセレクタ108は、会話グラフ126におけるある個数(n)の直近のメッセージ(例えば、時間的順番)を第1のソース131-1から選択する。いくつかの例では、個数(n)は、2000~4500の範囲にある。いくつかの例では、個数(n)は、2500~3500の範囲にある。いくつかの例では、第2のソース131-2は、関連性アルゴリズム(例えば、発見的アルゴリズム)に従ってランク付けされた会話グラフ126のメッセージを含む。いくつかの例では、第2のソース131-2についての関連性ランキングは、会話グラフ126におけるメッセージが、クライアントアプリケーション154のユーザのユーザアカウント141にリンクされているユーザアカウント141からであるかに基づく。いくつかの例では、関連性アルゴリズムは、受信されたエンゲージメントの量、いいねの数、コメント、および/または再共有などの信号、メッセージが写真、ビデオ、および/またはリンクであるかなどのメッセージメタデータを表す信号、および/または、メッセージが毒がある、職場閲覧注意(NSFW)、またはメッセージの作成者が最近通報されたかなどの健康関連メタデータを用いる。いくつかの例では、候補メッセージセレクタ108は、会話グラフ126におけるある個数(p)の上位にランク付けされたメッセージを第2のソース131-2から選択する。いくつかの例では、個数(p)は、200~1500の範囲にある。いくつかの例では、個数(p)は、500~1000の範囲にある。いくつかの例では、個数(p)は、個数(n)未満である。候補のサブセット133は、第1のソース131-1からの個数(n)のメッセージと、第2のソース131-2からの個数(p)のメッセージと、を含んでよい。ここで、予測結果118は、候補のサブセット133のメッセージごとに決定される。 In some examples, first source 131-1 includes messages of conversation graph 126 ranked according to most recently posted. In some examples, candidate message selector 108 selects a certain number (n) of the most recent (eg, chronological order) messages in conversation graph 126 from first source 131-1. In some examples, the number (n) is in the range of 2000-4500. In some examples, the number (n) is in the range of 2500-3500. In some examples, second source 131-2 includes messages of 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 message in the conversation graph 126 is from a user account 141 linked to the user account 141 of the user of the client application 154. . In some examples, the relevance algorithm may be a message, such as the amount of engagement received, the number of likes, comments, and/or signals such as re-shares, whether the message is a photo, video, and/or link. Signals representing metadata and/or health-related metadata such as whether the message is poisonous, workplace warnings (NSFW), or whether the creator of the message has been recently reported. In some examples, candidate message selector 108 selects a certain number (p) of top ranked messages in conversation graph 126 from second source 131-2. In some examples, the number (p) is in the range of 200-1500. In some examples, the number (p) is in the range of 500-1000. In some examples, the number (p) is less than the 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. Here, a prediction result 118 is determined for each message of the candidate subset 133 .

会話グラフ126(または候補メッセージセレクタ108によって識別されたもの)におけるノード128の少なくともいくつか(またはノード128のすべて)では、エンゲージメント予測器125は、予測モデル112を用いて、それぞれのメッセージについて、正のエンゲージメント確率120、負のエンゲージメント確率122、および/または相互エンゲージメント確率を予測してよい。例えば、会話閲覧リクエスト121に応答して、予測マネージャ110は、エンゲージメント予測器125を制御し、信号106を取得するとともに、その信号106を予測モデル112に適用し、会話グラフ126の選択されたノード128について予測結果118を決定してよい。 At least some of the nodes 128 (or all of the nodes 128) in the conversation graph 126 (or those identified by the candidate message selector 108), the engagement predictor 125 uses the predictive model 112 to predict a positive engagement probability 120, negative engagement probability 122, and/or mutual engagement probability may be predicted. For example, in response to a conversation view request 121, the prediction manager 110 controls the engagement predictor 125 to obtain the signal 106, apply the signal 106 to the prediction model 112, and select nodes of the conversation graph 126. A prediction result 118 may be determined for 128 .

予測マネージャ110は、信号106を1つまたは複数のデータサービス165から取得してよい。データサービス165は、メッセージングプラットホーム104および/またはクライアントアプリケーション154によって取得されたデータを計算するまたは導出する、メッセージングプラットホーム104上のコンポーネントであってよい。いくつかの例では、予測マネージャ110は、サーバ通信インタフェースを通じてデータサービス165と通信してよい。いくつかの例では、予測マネージャ110は、データサービス165から1つまたは複数のAPIを介して信号106の少なくともいくつかを取得してよい。いくつかの例では、会話閲覧リクエスト121に応答して、予測マネージャ110は、スリフト呼出しまたは遠隔手続呼出し(RPC)をデータサービス165に対し送信し、次いで、信号106の少なくともいくつかを関連データサービス165から受信してよい。いくつかの例では、予測マネージャ110は、表現可能状態転送(REST)リクエストをデータサービス165に対し送信し、次いで、信号106の少なくともいくつかを関連データサービス165から受信してよい。いくつかの例では、予測マネージャ110は、GraphQLリクエストによりデータサービス165と通信する。いくつかの例では、予測マネージャ110は、信号106のいくつかを、会話グラフマネージャ136および/またはタイムラインマネージャ142を含むメッセージングプラットホーム104の他のコンポーネントから取得する。 Prediction manager 110 may obtain signals 106 from one or more data services 165 . Data service 165 may be a component on messaging platform 104 that computes or derives data obtained by messaging platform 104 and/or client application 154 . In some examples, prediction manager 110 may communicate with data service 165 through a server communication interface. In some examples, prediction manager 110 may obtain at least some of signals 106 from data service 165 via one or more APIs. In some examples, in response to view conversation request 121, prediction manager 110 sends a thrift call or remote procedure call (RPC) to data service 165 and then sends at least some of signals 106 to the associated data service. 165 may be received. In some examples, prediction manager 110 may send a representable state transfer (REST) request to data service 165 and then receive at least some of signals 106 from associated data service 165 . In some examples, prediction manager 110 communicates with data service 165 via GraphQL requests. In some examples, prediction manager 110 obtains some of signals 106 from other components of messaging platform 104 including conversation graph manager 136 and/or timeline manager 142 .

信号106は、クライアントアプリケーション154にメッセージを表示するためにユーザ結果を予測することに関連する、メッセージングプラットホーム104によって生成されたおよび/またはクライアントアプリケーション154によって生成された信号を含んでよい。例えば、信号106は、クライアントアプリケーション154とのユーザの対話に基づいてクライアントアプリケーション154によって生成された信号を含んでよい。クライアントアプリケーション154によって生成された信号は、メッセージングプラットホーム104における記憶のためにメッセージングプラットホーム104に対し送信されてよい。クライアントアプリケーション154によって生成された信号は、メッセージへの肯定的なユーザエンゲージメント(例えば、お気に入りに入れる、いいね、再共有)などのエンゲージメント情報、および/またはメッセージへの否定的なユーザエンゲージメント(例えば、罵りコンテンツの報告)を表す信号を含む。いくつかの例では、信号106は、メッセージングプラットホーム104によって生成された信号を含んでよい。いくつかの例では、メッセージングプラットホーム104によって生成された信号は、ユーザの接続グラフ134から生成されたデータ、会話グラフ126から生成されたデータ、プラットホームにおけるユーザ挙動から生成されたデータ(例えば、ユーザがメッセージにエンゲージメントを行った回数)、および/または、ユーザ感情を予測する意味解析の結果または1つもしくは複数のメッセージのトピックを決定するトピック解析の結果などのメッセージのコンテンツから生成されたデータを表す信号を含んでよい。 Signals 106 may include signals generated by messaging platform 104 and/or generated by client application 154 related to predicting user outcomes for displaying messages to client application 154 . For example, signals 106 may include signals generated by client application 154 based on user interactions with client application 154 . Signals generated by client application 154 may be sent to messaging platform 104 for storage on messaging platform 104 . Signals generated by client application 154 may be engagement information, such as positive user engagement with the message (e.g., favorite, like, reshare) and/or negative user engagement with the message (e.g., report of swear content). In some examples, signals 106 may include signals generated by messaging platform 104 . In some examples, the signals generated by the messaging platform 104 may be data generated from the user's connection graph 134, data generated from the conversation graph 126, data generated from user behavior on the platform (e.g., if the user and/or data generated from the content of the message, such as the results of semantic analysis to predict user sentiment or topical analysis to determine the topic of one or more messages. May contain signals.

図1Cに示されるように、信号106は、会話グラフ126に関連するデータ構造関連信号101、会話グラフ126からのメッセージをクライアントアプリケーション154のユーザに対し提供する健康に関連する健康関連信号103、会話グラフ126のメッセージに対するユーザエンゲージメントに関連するエンゲージメント信号105、ユーザの接続グラフ134からのデータに関連するソーシャルグラフ信号107、メッセージングプラットホーム104によって集約されたデータに関連する履歴集約信号109、会話グラフ126のメッセージのコンテンツに関連するコンテンツ関連信号111、および/または、メッセージが、ユーザがお気に入りに入れたまたはいいねした他のメッセージとどのくらい類似するか、および/またはユーザが、ユーザがメッセージにエンゲージメントした他のユーザとどのくらい類似するかを表す類似性信号113を含んでよい。しかしながら、信号106は、表示するメッセージからユーザ結果を予測することに関連する、任意の種類のカテゴリのまたは粒度の信号を含んでよい。 As shown in FIG. 1C, signals 106 include a data structure related signal 101 associated with conversation graph 126, a health related signal 103 providing messages from conversation graph 126 to the user of client application 154, a conversation Engagement signal 105 related to user engagement with messages in graph 126; social graph signal 107 related to data from user's connection graph 134; historical aggregation signal 109 related to data aggregated by messaging platform 104; Content-related signals 111 related to the content of the message and/or how similar the message is to other messages that the user has favorited or liked and/or how the user has engaged with the message. may include a similarity signal 113 representing how similar the user is to the user. However, signal 106 may include any type of categorical or granular signal relevant to predicting user outcomes from displayed messages.

データ構造関連信号101は、会話グラフ126からのデータに関連する信号を含んでよい。いくつかの例では、データ構造関連信号101は、ノード128の数、エッジ130の数、ブランチ132の数、各ブランチ132の長さまたは大きさ、親ノードの数、子ノードの数、リーフノードの数、会話グラフ126の高さ(例えば、リーフノードまでの最長パスの長さ)、および/またはノードの深さ(例えば、ノードの深さは、ルートノードまでのパスの長さである)を表す信号を含んでよい。いくつかの例では、データ構造関連信号101は、会話グラフ126におけるユニーク作成者またはブランチ132などの会話グラフ126のサブセットの数を表す1つまたは複数の信号を含む。いくつかの例では、データ構造関連信号101は、会話グラフ126内のある種類のデータ(例えば、画像、ビデオ、ビデオへのリンクなど)を有するメッセージのロケーションを表す信号を含む。いくつかの例では、会話グラフ126内の特定のメッセージに対して、データ構造関連信号101は、メッセージが子ノードであるか、メッセージが親ノードであるか、メッセージがリーフノードであるか、会話グラフ126内のメッセージのロケーション、そのメッセージを含むブランチ132のロケーション、そのメッセージを含むブランチ132の大きさ、会話グラフ126内のメッセージの深さを表す信号を含んでよい。 Data structure related signals 101 may include signals related to data from 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 number of parent nodes, the number of child nodes, the number of leaf nodes. , the height of the conversation graph 126 (e.g., the length of the longest path to a leaf node), and/or the depth of the nodes (e.g., the depth of a node is the length of the path to the root node) may include a signal representing In some examples, data structure related signals 101 include one or more signals representing the number of unique authors in conversation graph 126 or subsets of conversation graph 126 , such as branches 132 . In some examples, data structure-related signals 101 include signals representing locations of messages having some type of data (eg, images, videos, links to videos, etc.) within conversation graph 126 . In some examples, for a particular message in conversation graph 126, data structure related signal 101 indicates whether the message is a child node, whether the message is a parent node, whether the message is a leaf node, whether the conversation Signals representing the location of the message within graph 126, the location of branch 132 containing the message, the size of branch 132 containing the message, and the depth of the message within conversation graph 126 may be included.

データ構造関連信号101は、ブランチ文脈フィーチャを含んでよい。いくつかの例では、データ構造関連信号101は、ブランチ132内のリプライの数、ブランチ132内の会話の数、クライアントアプリケーション154のユーザとルートメッセージの作成者との間のブランチ132内の会話の数、アプリケーション154のユーザと新しいメッセージにおいてメンションされているユーザとの間のブランチ132内の会話の数、および/または特定のノード(例えば、フォーカルメッセージ)とリーフノードとの間の会話の数を表す信号を含む。いくつかの例では、ブランチ文脈フィーチャについて、会話は、2人以上のユーザ間における往復と定められてよい。いくつかの例では、会話は、ユーザAによって投稿されたメッセージ、ユーザBによって投稿されたリプライ、および次いでユーザAによって投稿されたリプライと定められてよい。 Data structure related signals 101 may include branch context features. In some examples, data structure related signals 101 may include the number of replies within branch 132, the number of conversations within branch 132, the number of conversations within branch 132 between the user of client application 154 and the originator of the root message. number, the number of conversations within branch 132 between users of application 154 and users mentioned in new messages, and/or the number of conversations between a particular node (e.g., a focal message) and a leaf node. contains a signal that represents In some examples, for branch context features, a conversation may be defined as a round trip between two or more 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.

いくつかの例では、会話グラフマネージャ136は、会話識別子を予測マネージャ110から受信し、データ構造関連信号101を会話識別子に従って会話グラフ126から導出または決定してよく、データ構造関連信号101をメッセージングプラットホーム104におけるデータストレージに記憶してよい。例えば、会話閲覧リクエスト121に応答して、予測マネージャ110は、会話グラフマネージャ136を制御し、データ構造関連信号101を導出または決定し、次いで、予測結果118を決定するべく予測モデル112により用いられるように、データ構造関連信号101を会話グラフマネージャ136から受信してよい。いくつかの例では、予測マネージャ110は、データ構造関連信号101を会話グラフ126から導出または決定してよい。いくつかの例では、会話閲覧リクエスト121に応答して、予測マネージャ110は、会話識別子を会話グラフマネージャ136に対し送信してよく、次いで、データ構造関連信号101を会話グラフ126から導出または決定するように会話グラフ126を受信してよい。 In some examples, the conversation graph manager 136 may receive the conversation identifier from the prediction manager 110, derive or determine the data structure related signal 101 from the conversation graph 126 according to the conversation identifier, and transfer the data structure related signal 101 to the messaging platform. It may be stored in data storage at 104 . For example, in response to conversation view request 121, prediction manager 110 controls conversation graph manager 136 to derive or determine data structure related signals 101, which are then used by prediction models 112 to determine prediction results 118. As such, data structure related signals 101 may be received from conversation 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 view conversation request 121, prediction manager 110 may send a conversation identifier to conversation graph manager 136, which then derives or determines data structure related signals 101 from conversation graph 126. Conversation graph 126 may be received as follows.

健康関連信号103は、会話グラフ126のメッセージをクライアントアプリケーション154のユーザに対し提示することの健康を表す信号を含んでよい。いくつかの例では、健康関連信号103は、クライアントアプリケーション154のユーザが、過去の会話グラフ126におけるメッセージの作成者を制限(例えば、ブロック、ミュートなど)したかを表す信号を含んでよい。健康関連信号103は、メッセージングプラットホーム104におけるデータストレージに記憶されてよい。いくつかの例では、予測マネージャ110は、健康関連信号103を取得するように、リクエストをデータサービス165(例えば、健康データサービス)に対し送信してよい。ここで、リクエストは、会話グラフ126のメッセージのメッセージ識別子および/またはクライアントアプリケーション154のユーザのユーザ識別子を含んでよい。 Health-related signals 103 may include signals representing the health of presenting messages of conversation graph 126 to a user of client application 154 . In some examples, health-related signal 103 may include a signal representing whether a user of client application 154 has restricted (eg, blocked, muted, etc.) authors of messages in past conversation graph 126 . Health-related signals 103 may be stored in data storage in messaging platform 104 . In some examples, prediction manager 110 may send a request to data service 165 (eg, health data service) to obtain health-related signal 103 . Here, the request may include the message identifier of the message of conversation graph 126 and/or the user identifier of the user of client application 154 .

エンゲージメント信号105は、会話グラフ126のメッセージに関連付けられているユーザエンゲージメントデータを表してよい。いくつかの例では、エンゲージメント信号105は、会話グラフ126のメッセージに対するエンゲージメントの数(例えば、メッセージがお気に入りに入れられたまたはいいねされた回数、メッセージに対するリプライの数、メッセージが再共有された回数)を表す信号を含む。いくつかの例では、エンゲージメント信号105は、ユーザの接続グラフ134においてクライアントアプリケーション154のユーザをフォローしているユーザのエンゲージメント(例えば、メッセージが、ユーザの接続グラフ134においてクライアントアプリケーション154のユーザをフォローしているユーザによって提供された1つまたは複数のエンゲージメントを有するか)を表す1つまたは複数の信号を含む。いくつかの例では、予測マネージャ110は、エンゲージメントデータを記憶するデータサービス168からエンゲージメント信号105を取得する。いくつかの例では、予測マネージャ110は、会話グラフ126のメッセージ識別子を含み得るリクエストを送信してよい。予測マネージャ110は、データサービス165からエンゲージメント信号105を受信してよい。 Engagement signals 105 may represent user engagement data associated with messages in conversation graph 126 . In some examples, the engagement signal 105 is the number of engagements for a message in the conversation graph 126 (e.g., the number of times the message has been favorited or liked, the number of replies to the message, the number of times the message has been re-shared). ). In some examples, the engagement signal 105 is the engagement of the user following the user of the client application 154 in the user's connection graph 134 (e.g., the message follows the user of the client application 154 in the user's connection graph 134). has one or more engagements provided by a user who is In some examples, prediction manager 110 obtains engagement signal 105 from data service 168 that stores engagement data. In some examples, prediction manager 110 may send a request that may include a message identifier for conversation graph 126 . Prediction manager 110 may receive engagement signal 105 from data service 165 .

ソーシャルグラフ信号107は、接続グラフ134からの情報を表す信号を含んでよい。いくつかの例では、ソーシャルグラフ信号107は、クライアントアプリケーション154のユーザがある期間にわたってメッセージの作成者のメッセージをお気に入りに入れたまたはいいねした回数、ユーザが接続グラフ134におけるメッセージの作成者にリンクされているか、および/またはユーザがある期間にわたってメッセージの作成者のメッセージを再共有したまたはリプライした回数を表す信号を含む。いくつかの例では、予測マネージャ110は、ソーシャルグラフ信号を記憶するデータサービス168からソーシャルグラフ信号107を取得する。いくつかの例では、予測マネージャ110は、クライアントアプリケーション154のユーザのユーザ識別子を含み得るリクエストを送信してよい。予測マネージャ110は、データサービス165からソーシャルグラフ信号107を受信してよい。 Social graph signals 107 may include signals representing information from connection graph 134 . In some examples, the social graph signal 107 indicates the number of times a user of the client application 154 has favorited or liked the message's creator's message over time, the user's link to the message's creator in the connection graph 134 . and/or a signal representing the number of times the user has re-shared or replied to the message's 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 may send a request that may include the user identifier of the user of client application 154 . Prediction manager 110 may receive social graph signals 107 from data service 165 .

履歴集約信号109は、メッセージングプラットホーム104におけるユーザ挙動を表す信号を含んでよい。いくつかの例では、履歴集約信号109は、クライアントアプリケーション154のユーザがある期間中にメッセージングプラットホーム104におけるメッセージをお気に入りに入れた回数、クライアントアプリケーション154のユーザがある期間中にメッセージングプラットホーム104におけるメッセージを再共有した回数、および/またはクライアントアプリケーション154のユーザがある期間中にメッセージングプラットホーム104におけるメッセージにリプライした回数を表す信号を含んでよい。期間は、前日、先月、昨年内などであってよい。いくつかの例では、履歴集約信号109は、クライアントアプリケーション154のユーザが、画像またはビデオを含むメッセージをお気に入りに入れた、いいねした、再共有した、および/またはそのメッセージに対しリプライした回数を表す信号を含んでよい。 Historical aggregated signals 109 may include signals representative of user behavior on messaging platform 104 . In some examples, history aggregation signal 109 may be the number of times the user of client application 154 favorited a message on messaging platform 104 over a period of time, the number of times the user of client application 154 favorited a message on messaging platform 104 over a period of time, A signal representing the number of times it has been re-shared and/or the number of times a user of client application 154 has replied to a message on messaging platform 104 over a period of time may be included. The period may be the previous day, the last month, the last year, or the like. In some examples, history aggregation signal 109 counts the number of times a user of client application 154 favorited, liked, re-shared, and/or replied to a message containing an image or video. may include a signal representing

いくつかの例では、履歴集約信号109は、クライアントアプリケーション154のユーザが、接続グラフ134におけるユーザに対しリンクされたアカウント141からのメッセージをお気に入りに入れた、いいねした、再共有した、および/またはそのメッセージに対しリプライした回数、および/または、ユーザが、接続グラフ134におけるユーザに対しリンクされていないアカウント141からのメッセージをお気に入りに入れた、いいねした、再共有した、および/またはそのメッセージに対しリプライした回数を表す信号を含んでよい。いくつかの例では、予測マネージャ110は、メッセージングプラットホーム104におけるデータストレージから履歴集約信号109を取得する。いくつかの例では、予測マネージャ110は、履歴集約信号109を取得するリクエストをデータサービス165に対し送信する。いくつかの例では、リクエストは、クライアントアプリケーション154のユーザのユーザ識別子を含む。いくつかの例では、履歴集約信号109は、バッチ集約情報およびリアルタイム集約情報を含む。バッチ集約情報は、比較的長い履歴(例えば、50日を超える)を含んでよい。いくつかの例では、バッチ集約情報は、前日(またはここ数日)からの対話を含まなくてよい。リアルタイム集約情報は、比較的最近の対話履歴(例えば、ここ30分以内など)を含んでよい。 In some examples, the history aggregation signal 109 indicates that the user of the client application 154 has favorited, liked, re-shared, and/or messages from accounts 141 linked to the user in the connection graph 134 . or the number of times the message was replied to, and/or the user favorited, liked, re-shared, and/or messages from accounts 141 not linked to the user in connection graph 134 A signal representing the number of times the message has been replied to may be included. In some examples, prediction manager 110 obtains historical aggregated signal 109 from data storage in messaging platform 104 . In some examples, prediction manager 110 sends a request to data service 165 to obtain historical aggregated signal 109 . In some examples, the request includes the user identifier of the user of client application 154 . In some examples, historical aggregated signal 109 includes batch aggregated information and real-time aggregated information. Batch aggregate information may include a relatively long history (eg, over 50 days). In some examples, batch aggregate information may not include interactions from the previous day (or the last few days). Real-time aggregate information may include relatively recent interaction history (eg, within the last 30 minutes, etc.).

コンテンツ関連信号111は、会話グラフ126のメッセージのコンテンツの1つまたは複数の態様を表す信号を含んでよい。いくつかの例では、コンテンツ関連信号111は、メッセージの長さ、および/またはコンテンツがテキスト、ビデオ、または画像を含むかを表す信号を含んでよい。いくつかの例では、予測マネージャ110は、メッセージングプラットホーム104におけるデータストレージからコンテンツ関連信号111を取得する。いくつかの例では、予測マネージャ110は、コンテンツ関連信号111を取得するように、リクエストをデータサービス165に対し送信する。いくつかの例では、リクエストは、会話グラフ126のメッセージのメッセージ識別子を含む。 Content-related signals 111 may include signals representing one or more aspects of the content of messages in conversation graph 126 . In some examples, content-related signals 111 may include signals that indicate the length of the message and/or whether the content includes text, video, or images. In some examples, prediction manager 110 obtains content-related signals 111 from data storage in messaging platform 104 . In some examples, prediction manager 110 sends a request to data service 165 to obtain content-related signal 111 . In some examples, the request includes the message identifier of the message in conversation graph 126 .

類似性信号113は、メッセージが、ユーザがお気に入りに入れたまたはいいねした他のメッセージとどのくらい類似するかを表す1つまたは複数の信号を含んでよい。例えば、類似性信号113は、特定のメッセージとユーザがお気に入りに入れたまたはいいねした1つまたは複数のメッセージとの間の類似性のレベルを表してよい。類似性のレベルが比較的高い場合、類似性信号113は、潜在的な肯定的エンゲージメントの指標を提供する。いくつかの例では、類似性信号113は、ユーザが、メッセージへとエンゲージメントした他のユーザとどのくらい類似するかを表す1つまたは複数の信号を含んでよい。例えば、ユーザのユーザプロフィールが、メッセージにエンゲージメントしたユーザプロフィールと比較的類似していると決定されると、潜在的な肯定的エンゲージメントの指標を提供してよい。いくつかの例では、予測マネージャ110は、メッセージングプラットホーム104におけるデータストレージから類似性信号113を取得してよい。いくつかの例では、予測マネージャ110は、類似性信号113を取得するように、リクエストをデータサービス165に対し送信する。いくつかの例では、リクエストは、メッセージ識別子および/またはユーザのユーザ識別子を含んでよい。 Similarity signals 113 may include one or more signals representing how similar a message is to other messages that a user has favorited or liked. For example, similarity signal 113 may represent the level of similarity between a particular message and one or more messages that the user has favorited or liked. If the level of similarity is relatively high, the similarity signal 113 provides an indication of potential positive engagement. In some examples, similarity signal 113 may include one or more signals representing how similar the user is to other users engaged with the message. For example, determining that a user's user profile is relatively similar to a user profile that has engaged with a message may provide an indication of potential positive engagement. In some examples, prediction manager 110 may obtain affinity signal 113 from data storage in messaging platform 104 . In some examples, prediction manager 110 sends a request to data service 165 to obtain affinity signal 113 . In some examples, the request may include the message identifier and/or the user's user identifier.

いくつかの例では、予測に用いられる信号106の少なくともいくつかを取得するために、技術的困難またはハードルが存在する(例えば、特に、メッセージが拡散されると、閲覧者と作成者との関係に関連する信号について)。人気のメッセージは、比較的大量(例えば、いくつかの場合、8万を超える)の応答を有し得る。これは、多くのユーザが、同時に人気のメッセージを試すおよび閲覧し得ることを意味する。閲覧者ごとに、メッセージングプラットホーム104は、人気のメッセージにリプライしたすべての作成者との自身の関係を取得してよい。候補メッセージセレクタ108に対して上記の技術を用いると、メッセージングプラットホーム104は、8万~4千までのメッセージの総数をフィルタすることができてよい。これは、関係信号を取得するように、4千の閲覧者と作成者との対が存在し得ることをやはり意味してよい。 In some instances, there are technical difficulties or hurdles to obtain at least some of the signals 106 used for prediction (e.g., the relationship between viewers and creators, especially if the message is spread). for signals associated with ). Popular messages may have a relatively high volume of responses (eg, over 80,000 in some cases). This means that many users can try and view popular messages at the same time. For each viewer, messaging platform 104 may obtain its relationship with all authors who have replied to the popular message. Using the techniques described above for candidate message selector 108, messaging platform 104 may be able to filter a total number of messages from 80,000 to 4,000. This may also mean that there may be 4,000 viewer-author pairs to obtain a relationship signal.

また、いくつかの例では、閲覧者と作成者との関係は、閲覧者が作成者をフォローしていないため存在しなくてもよい。これらの種類の状況を扱うため、閲覧者と作成者とによってデータサービス166に対するキーとしてクエリする代わりに、メッセージングプラットホーム104は、閲覧者識別子によってクエリし、すべての他の作成者との自身の関係を一度に得ることが可能である。次いで、メッセージングプラットホーム104は、存在する場合、作成者のリプライの作成者との重複を決定し、関連する信号を維持することが可能である。これは、閲覧者当たり4千の呼出しをする代わりに、予測マネージャ110が1つの呼出しを生成し送信し得るため、ネットワークを通じて比較的大規模に呼出しを減少させる。 Also, in some instances, a viewer-author relationship may not exist because the viewer does not follow the author. To handle these kinds of situations, instead of querying by viewers and creators as keys to data service 166, messaging platform 104 queries by viewer identifiers and their relationships with all other creators. can be obtained at once. The messaging platform 104 can then determine overlap with the creator of the creator's reply, if any, and maintain associated signals. This reduces calls through the network to a relatively large extent because the prediction manager 110 can generate and send one call instead of 4,000 calls per viewer.

メッセージレベル信号には、別の技術的困難性が存在し得る。例えば、大きい会話では、メッセージングプラットホーム104は、他のデータサービス166を閲覧者ごとの4千のクエリによりクエリしてよい。これは、データサービス166が同一のメッセージ識別子についてあまりに多くのクエリを受信する「ホットキー」問題を生じ得る。上で特定された困難を克服するため、メッセージングプラットホーム104は、インメモリキャッシングを用いてよい。サービスは、下部のデータサービス166がホットキーを示す場合、メモリにフィーチャをキャッシュする。例えば、メッセージTが拡散され、応答R1,R2…R4000を有し、メッセージフィーチャは、メッセージにおける文字数である。次いで、1000人のユーザが同一のメッセージについてのリクエストを同時に(またはほぼ同時に)送信する。データサービス166がホットキーを示す場合、メッセージングプラットホーム104は、R1,R2…R4000について文字値を各々メモリに、非常に短時間で記憶することが可能であり、ユーザごとにデータサービス166を呼び出す代わりに、ただそれらを用いることが可能である。 Another technical difficulty can exist with message level signals. For example, in a large conversation, messaging platform 104 may query other data services 166 with 4,000 queries per viewer. This can create a "hotkey" problem where the data service 166 receives too many queries for the same message identifier. To overcome the difficulties identified above, messaging platform 104 may employ in-memory caching. The service caches the feature in memory if the underlying data service 166 indicates a hotkey. For example, a message T is spread with responses R1, R2...R4000 and the message feature is the number of characters in the message. Then 1000 users send requests for the same message at the same time (or near the same time). If the data service 166 indicates a hotkey, the messaging platform 104 can store the character values for R1, R2 . , it is possible to just use them.

予測モデル112は、訓練データ148が入力された1つまたは複数の機械学習アルゴリズム149によって訓練された予測モデルである。機械学習アルゴリズム149は、マルコフモデル、ロジスティック回帰、決定木分析、ランダムフォレスト分析、ニューラルネット、およびそれらの組合せのうちの1つまたは複数を含んでよい。一般に、機械学習は、コンピュータが、コンピュータのタスクの実行中に機械学習処理が獲得する経験またはデータから生成されたフィードバックを用いて、それらのタスクのクラスを行うように学習する分野である。教師あり機械学習では、コンピュータは、例示的な入力と所望の出力との間においてオペレータまたはプログラムによって予め定められたようにマッピングするための1つまたは複数の役割または機能を学習することが可能である。ラベル付けされたデータポイントは、次いで、コンピュータを訓練する際に用いられることが可能である。教師なし機械学習は、ラベル付けされていないデータを用いることを含むことが可能である。コンピュータは、次いで、例えば、データセットの次元を減少させることによって、データにおける暗黙的な関係を識別することが可能である。 Predictive model 112 is a predictive model 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 a class of tasks using feedback generated from the experience or data that the machine learning process acquires while performing those tasks on the computer. Supervised machine learning allows a computer to learn one or more roles or functions to map between exemplary inputs and desired outputs in a manner predetermined by an operator or program. be. The labeled data points can then be used in training a computer. Unsupervised machine learning can involve using unlabeled data. The computer can then identify implicit relationships in the data, for example, by reducing the dimensionality of the data set.

図1Dに示されるように、予測モデル112は、正のエンゲージメントモデル115、負のエンゲージメントモデル117、および相互エンゲージメントモデル119を含んでよい。正のエンゲージメントモデル115は、正のエンゲージメント確率120を計算するように構成されており、負のエンゲージメントモデル117は、負のエンゲージメント確率122を計算するように構成されており、相互エンゲージメントモデル119は、相互エンゲージメント確率124を計算するように構成されている。例えば、会話閲覧リクエスト121(例えば、ユーザがメッセージBを選択する)に応答して、エンゲージメント予測器125は、信号106を取得し、信号106(ユーザ識別子およびメッセージ識別子も含む)を正のエンゲージメントモデル115、負のエンゲージメントモデル117、および/または相互エンゲージメントモデル119に適用してよく、正のエンゲージメント確率120、負のエンゲージメント確率122、および/または相互エンゲージメント確率124をそれぞれ決定する。 As shown in FIG. 1D, predictive models 112 may include positive engagement models 115, negative engagement models 117, and mutual engagement models 119. As shown in FIG. Positive engagement model 115 is configured to calculate a positive engagement probability 120, negative engagement model 117 is configured to calculate a negative engagement probability 122, and mutual engagement model 119 is configured to: It is configured to calculate mutual engagement probability 124 . For example, in response to conversation view request 121 (eg, user selects message B), engagement predictor 125 obtains signal 106 and assigns signal 106 (which also includes user identifier and message identifier) to a positive engagement model 115, negative engagement model 117, and/or mutual engagement model 119 to determine positive engagement probability 120, negative engagement probability 122, and/or mutual engagement probability 124, respectively.

正のエンゲージメント確率120は、ユーザがメッセージに肯定的な閲覧をするまたはエンゲージメントを行うと予測される確率値を示す。いくつかの例では、正のエンゲージメント確率120についての確率値は、第1の値と第2の値との間の数(x)である。ここで、第1の値は、ユーザがメッセージに肯定的な閲覧をするまたはエンゲージメントを行うと予測される0の可能性を表し、第2の値は、ユーザがメッセージに肯定的な閲覧をするまたはエンゲージメントを行うと予測される100%の可能性を表す。いくつかの例では、正のエンゲージメント確率120についての確率値は正の数である。いくつかの例では、第1の値は0であり、第2の値は1である。しかしながら、第1の値および第2の値は、あらゆる種類の範囲を定めてよい(例えば、0~1、0~50、0~100など)。換言すると正のエンゲージメント確率120は、ユーザがメッセージをお気に入りに入れる、いいねする、または共有すると予測される見込みのレベルを示す。 A positive engagement probability 120 indicates a probability value that a 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 the first value and the second value. Here, the first value represents a probability of 0 that the user is predicted to view or engage with the message positively, and the second value represents the probability that the user will view the message positively. Or represents a 100% chance of being predicted to engage. In some examples, the probability value for positive engagement probability 120 is a positive number. In some examples, the first value is 0 and the second value is 1. However, the first value and the second value may define any kind of range (eg, 0-1, 0-50, 0-100, etc.). In other words, the positive engagement probability 120 indicates the level of likelihood that a user is expected to favorite, like, or share the message.

負のエンゲージメント確率122は、ユーザがメッセージに否定的な閲覧をするまたはエンゲージメントを行うと予測される確率値を示す。いくつかの例では、負のエンゲージメント確率122についての確率値は、第1の値と第2の値との間の数(y)である。ここで、第1の値は、ユーザがメッセージに否定的な閲覧をするまたはエンゲージメントを行うと予測される0の可能性を表し、第2の値は、ユーザがメッセージに否定的な閲覧をするまたはエンゲージメントを行うと予測される100%の可能性を表す。いくつかの例では、負のエンゲージメント確率122についての確率値は負の数である。いくつかの例では、第1の値は0であり、第2の値は負の1である。しかしながら、第1の値および第2の値は、あらゆる種類の範囲を定めてよい(例えば、0~-1、0~-50、0~-100など)。換言すると、負のエンゲージメント確率122は、ユーザがメッセージの作成者をブロックする、メッセージの作成者のフォローを外す、および/またはメッセージを罵りであると報告する見込みのレベルを示す。 Negative engagement probability 122 indicates the probability value that a 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 the first value and the second value. Here, the first value represents a probability of 0 that the user is predicted to view or engage with the message negatively, and the second value represents the probability that the user will view the message negatively. Or represents a 100% chance of being predicted to engage. In some examples, the probability value for negative engagement probability 122 is a negative number. In some examples, the first value is 0 and the second value is negative one. However, the first and second values may define any kind of range (eg, 0 to -1, 0 to -50, 0 to -100, etc.). In other words, negative engagement probability 122 indicates the level of likelihood that a user will block the message creator, unfollow the message creator, and/or report the message as abusive.

相互エンゲージメント確率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をさらに発展させると予測される見込みのレベルを示す。 Mutual engagement probability 124 indicates a probability value that the user is expected to continue to develop conversation graph 126 . In some examples, the probability value for mutual engagement probability 124 is a number (z) between the first value and the second value. Here, the first value represents a probability of 0 that the user is expected to continue to develop the conversation graph 126 and the second value is 100% that the user is expected to continue to develop the conversation graph 126. represents the possibility of In some examples, the probability value for mutual engagement probability 124 is a positive number. In some examples, the first value is 0 and the second value is 1. However, the first value and the second value may define any kind of range (eg, 0-1, 0-50, 0-100, etc.). In some examples, mutual engagement probability 124 indicates the level of likelihood that users are expected to further develop conversation graph 126 by replying to messages.

特定の候補のノード128について、エンゲージメント予測器125は、正のエンゲージメントモデル115を用いて、メッセージがユーザによって肯定的エンゲージメントを受信するある確率を有することを決定し、負のエンゲージメントモデル117を用いて、メッセージがユーザによって否定的エンゲージメントを受信するある確率を有することを決定し、相互エンゲージメントモデル119を用いて、メッセージがユーザによって相互エンゲージメントを受信するある確率を有することを決定してよい。いくつかの例では、各候補ノード128について、エンゲージメント予測器125は、3つすべての予測結果118を決定する。いくつかの例では、各ノード128について、エンゲージメント予測器125は、相互エンゲージメント確率124と、正のエンゲージメント確率120および負のエンゲージメント確率122のうちの1つ以上とを予測する。 For a particular candidate node 128, engagement predictor 125 uses positive engagement model 115 to determine that the message has a certain probability of receiving positive engagement by the user, and negative engagement model 117 to , may determine that the message has a certain probability of receiving negative engagement by the user, and using the mutual engagement model 119, determine that the message has a certain probability of receiving mutual engagement by the user. In some examples, for each candidate node 128, engagement predictor 125 determines all three prediction outcomes 118. In some examples, for each node 128 , engagement predictor 125 predicts mutual engagement probability 124 and one or more of positive engagement probability 120 and negative engagement probability 122 .

エンゲージメントスコアラ114は、予測結果118を用いて、会話グラフ126におけるメッセージについてエンゲージメント値116を計算する。エンゲージメント値116は、それぞれのノード128についての全エンゲージメント値(例えば、クライアントアプリケーション154のユーザについての関連性のレベルを示す)を提供してよい。これは、メッセージングプラットホーム104におけるより健康的な会話を奨励する。例えば、特定の候補のノード128について、エンゲージメントスコアラ114は、正のエンゲージメント確率120、負のエンゲージメント確率122、および相互エンゲージメント確率124を組み合わせて、ユーザについて最も関連性のあるノード128を選択するように用いられ得るエンゲージメント値116を提供してよい。例えば、エンゲージメントスコアラ114は、予測結果118の値を組み合わせて、特定のメッセージについてのエンゲージメント値116を決定してよい。負のエンゲージメント確率122の確率値が比較的高い(例えば、より大きい負の値を有する)場合、この値は、正のエンゲージメント確率120および相互エンゲージメント確率124の正の値をずらしてよい。単純な例では、正のエンゲージメント確率120が+10であり、負のエンゲージメント確率122が-10であり、相互エンゲージメント確率124が+10である場合、メッセージについてのエンゲージメント値116は+10である。 Engagement scorer 114 uses prediction results 118 to calculate engagement values 116 for messages in conversation graph 126 . Engagement value 116 may provide an overall engagement value for each node 128 (eg, indicating a level of relevance for the user of client application 154). This encourages healthier conversations on messaging platform 104 . For example, for a particular candidate node 128, engagement scorer 114 combines positive engagement probability 120, negative engagement probability 122, and cross-engagement probability 124 to select the most relevant node 128 for the user. An engagement value 116 may be provided that may be used. For example, engagement scorer 114 may combine the values of predicted results 118 to determine engagement value 116 for a particular message. If the probability value of negative engagement probability 122 is relatively high (eg, has a larger negative value), this value may offset the positive values of positive engagement probability 120 and mutual engagement probability 124 . 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, then the engagement value 116 for the message is +10.

いくつかの例では、エンゲージメントスコアラ114は、予測結果118に重み付けを適用してよく、次いで、重み付けされた正のエンゲージメント確率120、負のエンゲージメント確率122、および相互エンゲージメント確率124に基づいてエンゲージメント値116を計算してよい。いくつかの例では、相互エンゲージメント確率124に適用される重み付けは、負のエンゲージメント確率122に適用される重み付けよりも大きい。 In some examples, the engagement scorer 114 may apply weightings to the predicted results 118 and then determine the engagement value 116 based on the weighted positive engagement probabilities 120, negative engagement probabilities 122, and mutual engagement probabilities 124. can be calculated. In some examples, the weighting applied to mutual engagement probability 124 is greater than the weighting applied to negative engagement probability 122 .

エンゲージメント値116は、ユーザに対しレンダリングされるように、会話グラフ126内の関連性のあるメッセージまたはメッセージのブランチを選択する用いられる。例えば、タイムラインマネージャ142は、予測マネージャ110からエンゲージメント値116を受信し、そのエンゲージメント値116を会話グラフ126におけるメッセージをランク付けする(例えば、最高から最低まで)ように用いる。タイムラインマネージャ142は、ネットワーク150を通じて、ランクに従ってタイムライン156においてレンダリングされる会話グラフ126のメッセージの少なくともサブセットを提供してよい。いくつかの例では、タイムラインマネージャ142は、タイムライン156においてレンダリングされる会話グラフ126のメッセージのサブセットしか提供しない。ここで、サブセットは、会話グラフ126のより高いランク付けされたメッセージを含む。次いで、タイムラインマネージャ142は、会話グラフ126の追加のメッセージについてのリクエストをクライアントアプリケーション154から受信してよい(例えば、会話グラフ126のより多くのメッセージを閲覧するようにユーザアフォーダンスを選択する)。タイムラインマネージャ142は、クライアントアプリケーション154へと送信されるように会話グラフ126からメッセージの次のグループを選択してよい。このようにして、メッセージングシステム100は、肯定的エンゲージメントを提供する可能性が低い会話グラフ126の一部を折り畳んでよいが、ユーザによってリクエストされたときにそれらのメッセージを提示してよい。 The engagement value 116 is used to select relevant messages or branches of messages within the 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, highest to lowest). Timeline manager 142 may provide at least a subset of messages of conversation graph 126 rendered in timeline 156 according to rank over network 150 . In some examples, timeline manager 142 only provides a subset of the messages of conversation graph 126 rendered in timeline 156 . Here, the subset contains the higher ranked messages of conversation graph 126 . Timeline manager 142 may then receive a request from client application 154 for additional messages in conversation graph 126 (eg, select a user affordance to view more messages in conversation graph 126). Timeline manager 142 may select the next group of messages from conversation graph 126 to be sent to client application 154 . In this manner, messaging system 100 may collapse portions of conversation graph 126 that are less likely to provide positive engagement, but present those messages when requested by a user.

いくつかの例では、タイムラインマネージャ142は、エンゲージメント値116を用いてタイムラインにおいてレンダリングされる会話グラフ126の1つまたは複数のブランチ(またはブランチ132のサブセット)を選択する。例えば、ブランチ132は、高いエンゲージメント値116(または閾値レベルを超えるエンゲージメント値116)を有する1つまたは複数のノードを含む。タイムラインマネージャ142は、ブランチ132が低いエンゲージメント値116(または閾値レベルを以下のエンゲージメント値116)を有する1つまたは複数のノード128を含み得るという事実にかかわらず、ユーザに会話に関するより多くの文脈を提供するように、クライアントアプリケーション154に対し送達されるメッセージの一部としてレンダリングされるブランチ132全体を選択してよい。いくつかの例では、特定のブランチ132は、特定のブランチ132内のノード128についてのエンゲージメント値116の平均であり得る全エンゲージメント値に関連付けられている。次いで、タイムラインマネージャ142は、ブランチ132の全エンゲージメント値に従ってブランチ132をランク付けしてよい。 In some examples, timeline manager 142 selects one or more branches (or a subset of branches 132) of conversation graph 126 to be rendered in the timeline using engagement value 116. FIG. For example, branch 132 includes one or more nodes with high engagement values 116 (or engagement values 116 above a threshold level). The timeline manager 142 provides the user with more context about the conversation, despite the fact that the branch 132 may contain one or more nodes 128 with low engagement values 116 (or engagement values 116 below the threshold level). The entire branch 132 may be selected to be rendered as part of the message delivered to the client application 154 to provide the . In some examples, a particular branch 132 is associated with a total engagement value, which may be an average of engagement values 116 for nodes 128 within the particular branch 132 . The timeline manager 142 may then rank the branches 132 according to their total engagement value.

いくつかの例では、タイムラインマネージャ142は、クライアントアプリケーション154に対し提供されるメッセージの組に含めるように高いエンゲージメント値(または閾値レベルを超えるエンゲージメント値116)を有するノード128を選択する。いくつかの例では、タイムラインマネージャ142は、選択されたブランチ132および/またはノード128を最高から最低までのエンゲージメント値116に従ってランク付けする(例えば、ここでは、最高のエンゲージメント値116を有するブランチ132またはノード128がユーザに最初に提示される)。メッセージングプラットホーム104は、そのスコアリングアルゴリズム内に相互エンゲージメント確率124を組み込む(または予測する)ため、メッセージングプラットホーム104は、メッセージングプラットホーム104におけるより多くの会話を奨励する。 In some examples, timeline manager 142 selects nodes 128 with high engagement values (or engagement values 116 above a threshold level) for inclusion in the set of messages provided to client application 154 . In some examples, the timeline manager 142 ranks the selected branches 132 and/or nodes 128 according to engagement value 116 from highest to lowest (e.g., here the branch 132 with the highest engagement value 116 or node 128 is presented to the user first). Because messaging platform 104 incorporates (or predicts) mutual engagement probabilities 124 within its scoring algorithm, messaging platform 104 encourages more conversations on messaging platform 104 .

いくつかの例では、ランク付けされたリスト158は、ユーザに関連性があると決定された会話グラフ126のメッセージのサブセットを表す。例えば、会話グラフ126のいくつかのメッセージは、第1のユーザに関連性があってよく、一方、会話グラフ126の他のメッセージは、第2のユーザに関連性があってよい。対照的に、いくつかの従来のアプローチは、各々について同一の閲覧を提供することができる投票ベースの機構を用いる。さらに詳細には、エンゲージメント予測器125は、第1のユーザに関連する信号106(例えば、エンゲージメント履歴、接続グラフデータなど)を取得してよく、会話グラフ126におけるメッセージごとに、次いでエンゲージメント値116を計算するように用いられる予測結果118を取得してよい。タイムラインマネージャ142は、予測マネージャ110からエンゲージメント値116を受信してよく、次いで、エンゲージメント値116(ユーザが会話を続ける可能性を増加させ得る(例えば、相互エンゲージメント確率124を組み込むことによって))を用いて会話グラフ126のメッセージをランク付けしてよい。 In some examples, ranked list 158 represents a subset of messages in conversation graph 126 determined to be relevant to the user. For example, some messages in conversation graph 126 may be relevant to a first user, while other messages in conversation graph 126 may be relevant to a second user. In contrast, some conventional approaches use vote-based mechanisms that can provide identical views for each. More specifically, the engagement predictor 125 may obtain signals 106 (e.g., engagement history, connection graph data, etc.) associated with the first user, and for each message in the conversation graph 126, then the engagement value 116. Predicted results 118 used to compute may be obtained. The timeline manager 142 may receive the engagement value 116 from the prediction manager 110 and then apply the engagement value 116 (which may increase the likelihood that the user will continue the conversation (eg, by incorporating mutual engagement probability 124)). may be used to rank messages in conversation graph 126 .

しかしながら、第2のユーザについて、エンゲージメント予測器125は、第2のユーザに関連する信号106を取得してよく、次いでエンゲージメント値116を計算するように用いられる第2のユーザに合わせられた予測結果118を取得してよい。次いで、タイムラインマネージャ142は、エンゲージメント値116を用いて、会話グラフ126におけるメッセージをランク付けしてよい。このように、第2のユーザのためにクライアントアプリケーション154に表示されるランク付けされたリスト158は、第1のユーザのためにクライアントアプリケーション154に表示されるランク付けされたリスト158のメッセージとは異なってよい。 However, for a second user, the engagement predictor 125 may obtain the signal 106 associated with the second user and then predictive results tailored to the second user used to calculate the engagement value 116. 118 may be obtained. Timeline manager 142 may then rank messages in conversation graph 126 using engagement value 116 . Thus, the ranked list 158 displayed in the client application 154 for the second user is different from the messages in the ranked list 158 displayed in the client application 154 for the first user. can be different.

メッセージングプラットホーム104は、予測モデル112(例えば、正のエンゲージメントモデル115、負のエンゲージメントモデル117、および相互エンゲージメントモデル119)を訓練する予測モデルトレーナ140を備える。メッセージングプラットホーム104は、エンゲージメント予測器125が会話閲覧を決定する時に予測結果118を決定することが可能であるように、訓練された予測モデル112をエンゲージメント予測器125に提供する。いくつかの例では、予測モデルトレーナ140は、予測モデル112を再訓練し(およびそれによって)更新するように、定期的に(例えば、毎日、毎週、毎月)実行するように構成されている。いくつかの例では、予測モデルトレーナ140は、訓練データ148を用いて予測モデル112を訓練するように、オフラインモードにて動作し、次いで、予測マネージャ110がアクティブである時にオンラインモードにてもちいられるように、予測モデル112を予測マネージャ110に対し送信する。いくつかの例では、予測モデルトレーナ140は、正のエンゲージメントモデル115、負のエンゲージメントモデル117、および相互エンゲージメントモデル119の重み付けおよびバイアスを予測マネージャ110に送信する。 Messaging platform 104 includes a predictive model trainer 140 that trains predictive models 112 (eg, positive engagement model 115, negative engagement model 117, and mutual engagement model 119). Messaging platform 104 provides trained predictive model 112 to engagement predictor 125 so that engagement predictor 125 can determine predicted outcome 118 when determining conversation viewing. In some examples, predictive model trainer 140 is configured to run periodically (eg, daily, weekly, monthly) to retrain (and thereby update) predictive model 112 . In some examples, predictive model trainer 140 operates in offline mode to train predictive model 112 using training data 148, and is then employed in online mode when predictive manager 110 is active. As such, the prediction model 112 is sent to the prediction manager 110 . In some examples, predictive model trainer 140 sends the weightings and biases of positive engagement model 115 , negative engagement model 117 , and cross-engagement model 119 to prediction manager 110 .

いくつかの例では、予測モデルトレーナ140は、サーバコンピュータ102上にて実行する。いくつかの例では、予測モデルトレーナ140は、サーバコンピュータ102とは別個のコンピューティングデバイス上にて実行する。ここで、予測モデルトレーナ140とエンゲージメント予測器125とは、互いにネットワーキングインタフェースにより通信する。図1Dに示されるように、予測モデルトレーナ140は、1つまたは複数の機械学習アルゴリズム149に従って、訓練データ148を用いて予測モデル112を訓練する。訓練データ148は、信号106について説明されたデータのうちの1つまたは複数(または任意の組合せ)を含んでよい。データは、以前の期間、例えば、ここ1日、ここ1ヶ月、ここ1年などからの履歴データ、であってよい。例えば、訓練データ148は、データ構造関連信号101、健康関連信号103、エンゲージメント信号105、ソーシャルグラフ信号107、履歴集約信号109、およびコンテンツ関連信号111を含む。 In some examples, predictive model trainer 140 executes on server computer 102 . In some examples, predictive model trainer 140 executes on a computing device separate from server computer 102 . Here, predictive model trainer 140 and engagement predictor 125 communicate with each other over a networking interface. As shown in FIG. 1D, predictive model trainer 140 trains predictive model 112 using training data 148 according to one or more machine learning algorithms 149 . Training data 148 may include one or more (or any combination) of the data described for signal 106 . The data may be historical data from a previous period of time, eg, the last day, the last month, the last year, and so on. For example, training data 148 includes data structure related signals 101 , health related signals 103 , engagement signals 105 , social graph signals 107 , history aggregation signals 109 , and content related signals 111 .

図1Eは、一態様に係る予測モデル112を訓練するための訓練データ148を取得する一例を示す。例えば、タイムラインマネージャ142は、クライアントアプリケーション154に対しメッセージのストリームをインジェクションしてよい。1つまたは複数のストリームインジェクションの一部として、タイムラインマネージャ142は、インジェクションログ127におけるメッセージインジェクションに関する情報を記憶してよい。インジェクションログ127は、どのメッセージがクライアントアプリケーション154に提供されたかを識別してよく、インジェクションに関連付けられているあるフィーチャを識別してよい。いくつかの例では、フィーチャは、上記の信号106のいずれかに関連する情報を含んでよい。これに加えて、インジェクションログ127は、1つまたは複数の会話グラフ126のメッセージに関連付けられている予測結果118および/またはエンゲージメント値116などの予測マネージャ110に関する詳細を含んでよい。ユーザがクライアントアプリケーション154においてメッセージと対話する際、クライアントイベントログ123は、ユーザがメッセージにリプライしたか、メッセージをお気に入りに入れたかまたはいいねしたか、メッセージを再共有したかなどのユーザエンゲージメント情報を記憶する。いくつかの例では、クライアントイベントログ123は、メッセージが写真またはビデオを有するか、および/またはメッセージが会話グラフ126におけるある深さから来たものであるかなどの情報を含む。クライアントイベントログ123における情報は、メッセージングプラットホーム104における記憶のためにメッセージングプラットホーム104に対し送信されてよい。訓練データ148は、クライアントイベントログ123からの情報およびインジェクションログ127からの情報を含んでよい。訓練データ148は、予測モデル112を訓練するように用いられる。いくつかの例では、予測モデルトレーナ140は、オフライン分析により予測モデル112を定期的に訓練し、訓練の結果(例えば、重み付け/バイアス)を予測マネージャ110に対し送信する。 FIG. 1E illustrates an example of obtaining training data 148 for training predictive model 112 according to one aspect. For example, timeline manager 142 may inject a stream of messages to client application 154 . As part of one or more stream injections, timeline manager 142 may store information about message injections in injection log 127 . Injection log 127 may identify which messages were provided to client application 154 and may identify certain features associated with the injection. In some examples, the features may include information related to any of the signals 106 described above. Additionally, injection log 127 may include details about prediction manager 110 , such as prediction results 118 and/or engagement values 116 associated with one or more conversation graph 126 messages. As the user interacts with the message in the client application 154, the client event log 123 captures user engagement information such as whether the user has replied to the message, favorited or liked the message, and re-shared the message. Remember. In some examples, client event log 123 includes information such as whether the message has a photo or video and/or whether the message came from some depth in conversation graph 126 . Information in client event log 123 may be sent to messaging platform 104 for storage in messaging platform 104 . Training data 148 may include information from client event log 123 and information from injection log 127 . Training data 148 is used to train predictive model 112 . In some examples, predictive model trainer 140 periodically trains predictive model 112 by offline analysis and sends training results (eg, weights/biases) to predictive manager 110 .

いくつかの例では、メッセージングプラットホーム104は、会話グラフ126のメッセージに対して2レベルランキング機構を行うように構成されている。例えば、2レベルランキング機構は、メッセージングプラットホーム104上の会話における罵りに対処するための効果的な機構を提供してよい。いくつかの例では、2レベルランキングは、ハードランキングとソフトランキングとを含む。いくつかの例では、ハードランキングは、メッセージが罵りであるおよび/または作成者が罵りがちであると考えられている確信のレベルに基づいて、会話グラフ126のメッセージを異なるセクション(またはグループ)へとセクショニングすることを含む。いくつかの例では、ハードランキングは、会話閲覧リクエスト121をリクエストするユーザの視点からパーソナライズされない。むしろ、ハードランキングは、コンテンツ自身に関する信号および/またはメッセージの作成者に関する信号を用いて行われてよい。いくつかの例では、ソフトランキングは、予測結果118を計算することと、会話グラフ126におけるメッセージについてのエンゲージメント値116を生成することと、次いでエンゲージメント値116に従って各セクションにおけるメッセージをランク付けすることとを含む。いくつかの例では、上に説明されたように、ソフトランキングは、会話閲覧リクエスト121をリクエストするユーザの視点からパーソナライズされる。このようにして、より高い品質セクションからのメッセージが、エンゲージメント値116に従ってランク付けされたユーザに対し提示される。いくつかの例では、ハードランキングが最初に行われ、次いで、ソフトランキングが続く。しかしながら、いくつかの例では、ハードランキングは、ハードランキングを行うように、予測モデル112の出力を用いることによってパーソナライズされることが可能である。 In some examples, messaging platform 104 is configured to perform a two-level ranking mechanism for messages in conversation graph 126 . For example, a two-level ranking mechanism may provide an effective mechanism for dealing with swearing in conversations on messaging platform 104 . In some examples, the two-level ranking includes hard ranking and soft ranking. In some examples, hard ranking divides messages in conversation graph 126 into different sections (or groups) based on the level of confidence that the message is profanity and/or that the author is profane. including sectioning with In some examples, hard rankings are not personalized from the perspective of the user requesting the View Conversation Request 121 . Rather, hard ranking may be done using signals about the content itself and/or signals about the creator of the message. In some examples, soft ranking includes computing predicted results 118, generating engagement values 116 for messages in conversation graph 126, and then ranking messages in each section according to engagement values 116. including. In some examples, soft rankings are personalized from the perspective of the user requesting the View Conversation Request 121, as described above. In this way, messages from higher quality sections are presented to users ranked according to engagement value 116 . In some examples, hard ranking is performed first, followed by soft ranking. However, in some examples, hard rankings can be personalized by using the output of predictive model 112 to do hard rankings.

図1Aおよび図1Fについて示されるように、いくつかの例では、メッセージングプラットホーム104は、メッセージのコンテンツ品質に基づいて会話グラフ126のメッセージを複数のセクション160へと分類する(例えば、セクショニングする)ように構成されているコンテンツ品質分類器147を備えてよい。メッセージのコンテンツ品質は、メッセージレベルまたは作成者レベルにて罵り(または毒がある)である確率(または確信)を含んでよい。いくつかの例では、コンテンツ品質分類器147は、特定のメッセージについて罵りである確率を決定(または受信)してよい。(例えば、これは、コンテンツ自身が罵りであり得るかまたは作成者もしくはメッセージを生成するアカウントが罵り挙動にリンクされ得る確率に基づいてよい)。罵りである確率が比較的高い(またはメッセージおよび/または作成者が罵りであると考えられる確信レベルが比較的高い)場合、コンテンツ品質分類器147は、メッセージを1つのセクション160(例えば、低品質または罵りセクション)へと分類してよい。または、罵りである確率が比較的低い(またはメッセージおよび/または作成者が罵りであると考えられる確信レベルが比較的低い)場合、コンテンツ品質分類器147は、メッセージを別のセクション160(例えば、高品質または罵りでないセクション)へと分類してよい。換言すると、コンテンツ品質分類器147は、会話グラフ126のノード128(またはブランチ132)を複数のセクション160へと分割するように構成されている。各セクション160は、品質レベル(または罵り(もしくは毒がある)レベル)の異なるカテゴリ化(または分類)を参照してよい。コンテンツ品質分類器147は、第1のメッセージが比較的低品質であり、第2のメッセージが比較的高品質であると決定してよい。ここで、コンテンツ品質分類器147は、第1のメッセージ(または第1のメッセージを含むブランチ132)を第1のセクション(例えば、第1のセクションは低品質セクションと考えられている)に割り当ててよく、第2のメッセージ(または第2のメッセージを含むブランチ132)を第2のセクション(例えば、第2のセクションは高品質セクションと考えられている)に割り当ててよい。 As shown with respect to FIGS. 1A and 1F, in some examples, messaging platform 104 may classify (eg, section) messages of conversation graph 126 into multiple sections 160 based on the content quality of the messages. may include a content quality classifier 147 configured as: The content quality of a message may include the probability (or belief) of being abusive (or poisonous) at the message level or author level. In some examples, content quality classifier 147 may determine (or receive) a probability of being an abusive for a particular message. (For example, this may be based on the probability that the content itself may be abusive or the creator or account generating the message may be linked to abusive behavior). If the probability of being an abusive is relatively high (or the level of confidence that the message and/or creator is considered an abusive is relatively high), the content quality classifier 147 classifies the message into one section 160 (e.g., low quality). or swearing section). Alternatively, if the probability of being an abusive is relatively low (or the level of confidence that the message and/or creator is considered an abusive is relatively low), the content quality classifier 147 classifies the message into another section 160 (e.g., high quality or non-swear section). In other words, content quality classifier 147 is configured to divide node 128 (or branch 132 ) of conversation graph 126 into multiple sections 160 . Each section 160 may refer to a different categorization (or classification) of quality level (or cursed (or poisonous) level). Content quality classifier 147 may determine that the first message is of relatively low quality and the second message is of relatively high quality. Here, content quality classifier 147 assigns the first message (or branch 132 containing the first message) to the first section (eg, the first section is considered a low quality section). Well, the second message (or branch 132 containing the second message) may be assigned to the second section (eg, the second section is considered a high quality section).

コンテンツ品質分類器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は、傍観者によって報告されレビューされた場合に、または低品質セクション162は、信頼できないリンクを含む場合、またはメッセージを投稿するアカウントが高確率にて罵り挙動にリンクされている場合に、罵りであると判断される可能性が高いメッセージを含む。 The classification or sectioning performed by content quality classifier 147 may be considered the first part (eg, hard ranking) of a two-level ranking mechanism. In some examples, section 160 may include two or more different sections, each representing a separate quality category or classification. In some examples, section 160 includes 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 taxonomy. Although three sections 160 are shown in FIG. 1F, sections 160 may include any number of sections, including two sections or any number greater than three. After being classified by content quality classifier 147, low quality section 162 contains or identifies nodes 128 (or branches 132) from conversation graph 126 that have been determined to be of low quality, and medium quality section 164 contains or identifies nodes of medium quality. and the high quality section 166 contains or identifies nodes 128 (or branches 132) from the conversation graph 126 that have been determined to be of high quality. contains or identifies In some examples, medium quality section 164 includes messages that may be abusive. Alternatively, there is a probability that the account posting the message could be linked with swearing behavior with moderate confidence. In some examples, a low quality section 162 may be reported and reviewed by a bystander, or a low quality section 162 may contain untrustworthy links, or an account posting a message may have a high probability of abusive behavior. Contains messages that would likely be judged to be profanity if linked to.

いくつかの例では、コンテンツ品質分類器147は、会話グラフ126のノード128(またはブランチ132)をセクション160へと分類する分類モデル161(または複数のモデル)を含む。いくつかの例では、分類モデル161は、1つまたは複数の機械学習アルゴリズムに適用される訓練データを用いて訓練される機械学習モデルである。いくつかの例では、分類モデル161は、ニューラルネットワークを含む。訓練データは、ある期間(例えば、1日、1週、1月、1年など)にわたって取得されてよく、次いで、オフラインモードにおいて分類モデル161を訓練(または再訓練)するように用いられてよい。ここで、更新された分類モデル161は、コンテンツ品質分類器147に対し送信される。 In some examples, content quality classifier 147 includes a classification model 161 (or models) that classifies nodes 128 (or branches 132 ) of conversation graph 126 into sections 160 . 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, classification model 161 includes a neural network. Training data may be obtained over a period of time (eg, a day, a week, a month, a year, etc.) and then used to train (or retrain) the classification model 161 in offline mode. . The updated classification model 161 is now sent to the content quality classifier 147 .

コンテンツ品質分類器147は、分類モデル161に関連する1つまたは複数の信号163を取得し、会話グラフ126のどのメッセージが低品質セクション162、中品質セクション164、または高品質セクション166へと分類されるかを決定するように、その信号163を分類モデル161に入力してよい。会話グラフ126の特定のメッセージ(例えば、ノード128)について、分類モデル161の出力は、品質分類、例えば、低品質セクション162、中品質セクション164、または高品質セクション166のいずれかを識別してよい。いくつかの例では、会話グラフ126のノード128(またはブランチ132)は、分類モデル161によって決定されたセクション160により注釈を付される。いくつかの例では、コンテンツ品質分類器147は、ノード128(またはブランチ132)の分類をメッセージングプラットホーム104上のデータストアに記憶する。 Content quality classifier 147 obtains one or more signals 163 associated with classification model 161 to determine which messages in conversation graph 126 are classified into low quality section 162, medium quality section 164, or high quality section 166. That signal 163 may be input to the classification model 161 so as to determine whether the For a particular message (e.g., node 128) of conversation graph 126, the output of classification model 161 may identify a quality classification, e.g., either low quality section 162, medium quality section 164, or high quality section 166. . In some examples, nodes 128 (or branches 132 ) of conversation graph 126 are annotated with sections 160 determined by classification model 161 . In some examples, content quality classifier 147 stores the classification of node 128 (or branch 132 ) in a data store on messaging platform 104 .

会話グラフ126の特定のメッセージを分類するように、いくつかの例では、信号163は、クライアントアプリケーション154によって生成された1つまたは複数の信号および/またはメッセージングプラットホーム104によって生成された1つまたは複数の信号を含む。いくつかの例では、信号163は、予測結果118を決定するように用いられる信号106とは異なる1つまたは複数の信号を含む。いくつかの例では、信号163は、メッセージのコンテンツを表す1つまたは複数の信号を含む。いくつかの例では、信号163は、コンテンツを生成した作成者のユーザ履歴を表す1つまたは複数の信号を含む。いくつかの例では、信号163は、コンテンツを生成した作成者のユーザプロフィールをモデリングする1つまたは複数の信号を含む。いくつかの例では、信号163は、メッセージングプラットホーム104における作成者の挙動をモデリングする1つまたは複数の信号を含む。いくつかの例では、信号163は、メッセージテキスト、ロギング履歴などのユーザの挙動履歴、ユーザが用いているデバイスの種類、何回罵りであると報告されたか、などを表す信号を含んでよい。これらの信号163に基づいて、コンテンツ品質分類器147は、メッセージが罵りであるか、および/またはユーザが罵りがちであるかを予測してよい。それらの確率(または確信もしくはスコア)が決定されると、コンテンツ品質分類器147は、セクショニング決定を行うことが可能である。例えば、メッセージが高い確信により罵りであり、そのメッセージを書いたユーザもまた高い確信により罵りがちである場合、コンテンツ品質分類器147は、そのメッセージを最低品質セクション、例えば低品質セクション162に分類してよい。 To classify a particular message in conversation graph 126, in some examples, signal 163 is one or more signals generated by client application 154 and/or one or more signals generated by messaging platform 104. signal. In some examples, signal 163 includes one or more signals that are different from signal 106 used to determine prediction result 118 . In some examples, signal 163 includes one or more signals representing the content of the message. In some examples, signal 163 includes one or more signals representing the user history of the author who generated the content. In some examples, signals 163 include one or more signals that model the user profile of the author who generated the content. In some examples, signals 163 include one or more signals that model author behavior on messaging platform 104 . In some examples, signals 163 may include signals representing message text, user behavior history such as logging history, type of device the user is using, how many times the user has been reported as swearing, and the like. Based on these signals 163, the content quality classifier 147 may predict whether the message is profanity and/or whether the user is prone to profanity. Once those probabilities (or beliefs or scores) are determined, the content quality classifier 147 can make sectioning decisions. For example, if a message is abusive with high confidence and the user who wrote the message is also abusive with high confidence, content quality classifier 147 classifies the message into the lowest quality section, e.g. you can

いくつかの例では、コンテンツ品質分類器147は、メッセージのメッセージ識別子および/またはコンテンツを生成した作成者のユーザ識別子を受信してよい。メッセージ識別子および/またはユーザ識別子に応答して、コンテンツ品質分類器147は、分類モデル161に入力される信号163を取得してよい。いくつかの例では、コンテンツ品質分類器147は、メッセージのコンテンツをメッセージリポジトリ138から取得するように、メッセージ識別子を用いてよい。いくつかの例では、メッセージ識別子を受信する代わりに、コンテンツ品質分類器147は、メッセージのコンテンツを受信してよい。いくつかの例では、コンテンツ品質分類器147は、図1Cを参照して説明された任意の手法により1つまたは複数のデータサービス165と通信することによって作成者に適用される1つまたは複数の信号を取得するように、ユーザ識別子を用いてよい。いくつかの例では、メッセージの複数のセクション160のうちの1つへの分類は、メッセージの生成の時に行われてよい。いくつかの例では、メッセージの分類は、会話閲覧リクエスト121の受信の時に(またはその付近に)行われる。いくつかの例では、コンテンツ品質分類器147は、信号163を分類モデル161と互換であるフォーマットに変換してよい。 In some examples, content quality classifier 147 may receive the message identifier of the message and/or the user identifier of the author who generated the content. In response to the message identifier and/or user identifier, content quality classifier 147 may obtain signal 163 that is input to classification model 161 . In some examples, content quality classifier 147 may use the message identifier to retrieve the content of the message from message repository 138 . In some examples, instead of receiving a message identifier, content quality classifier 147 may receive the content of the message. In some examples, the content quality classifier 147 applies one or more categorizations to authors by communicating with one or more data services 165 through any of the techniques described with reference to FIG. 1C. A user identifier may be used to acquire the signal. In some examples, the categorization of a message into one of multiple sections 160 may occur at the time of message generation. In some examples, message categorization occurs at (or near) receipt of the view conversation request 121 . In some examples, content quality classifier 147 may convert signal 163 into a format compatible with classification model 161 .

いくつかの例では、タイムラインマネージャ142および/または予測マネージャ110は、サーバ通信インタフェース(例えば、スリフト呼出し、REST呼出し、GraphQLリクエストなど)を通じてコンテンツ品質分類器147と通信してよい。ここで、メッセージ識別子および/またはユーザ識別子は、コンテンツ品質分類器147へと送信される。コンテンツ品質分類器147は、会話グラフ126のノード128(またはブランチ132)に、決定された分類により注釈を付す、および/またはその分類を、分類情報をリクエストするサービスへとサーバ通信インタフェースを介して返す。コンテンツ品質分類器147は、信号163を、メッセージが低品質セクション162、中品質セクション164、または高品質セクション166に対応するコンテンツ品質を有するかを決定するように、予測モデル161に対し提供してよい。いくつかの例では、予測結果118とは異なり、メッセージのセクション160への分類は、会話閲覧リクエスト121に関連付けられているユーザにパーソナライズされない。 In some examples, timeline manager 142 and/or prediction manager 110 may communicate with content quality classifier 147 through a server communication interface (eg, Thrift calls, REST calls, GraphQL requests, etc.). Here, the message identifier and/or user identifier are sent to content quality classifier 147 . The content quality classifier 147 annotates the node 128 (or branch 132) of the conversation graph 126 with the determined classification and/or passes the classification to the service requesting the classification information via the server communication interface. return. Content quality classifier 147 provides signal 163 to predictive model 161 to determine whether the message has a content quality corresponding to low quality section 162, medium quality section 164, or high quality section 166. good. In some examples, unlike predicted results 118 , the categorization of messages into sections 160 is not personalized to the user associated with view conversation request 121 .

会話閲覧リクエスト121に応答して、すでに上に説明されたように、タイムラインマネージャ142は、予測マネージャ110を制御し、会話グラフ126のメッセージ(またはメッセージのサブセット)ごとに予測結果118を生成してよく、予測結果118に基づいてメッセージごとにエンゲージメント値116を計算してよい。例えば、エンゲージメント予測器125は、予測に関連する信号106を取得し、会話グラフ126におけるメッセージ(またはメッセージのサブセット)ごとに予測結果118を決定するように、信号106を予測モデル112に入力してよい。いくつかの例では、予測結果118は、相互エンゲージメント確率124を含む。いくつかの例では、予測結果118は、相互エンゲージメント確率124と、正のエンゲージメント確率120および負のエンゲージメント確率122のうちの1つ以上とを含む。いくつかの例では、予測結果118は、相互エンゲージメント確率124と、正のエンゲージメント確率120と、負のエンゲージメント確率122と、を含む。 In response to view conversation request 121, timeline manager 142 controls prediction manager 110 to generate prediction results 118 for each message (or subset of messages) of conversation graph 126, as already described above. and an engagement value 116 may be calculated for each message based on the predicted results 118 . For example, engagement predictor 125 obtains prediction-related signal 106 and inputs signal 106 into predictive model 112 to determine predicted outcome 118 for each message (or subset of messages) in conversation graph 126. good. In some examples, prediction results 118 include cross-engagement probabilities 124 . In some examples, predicted results 118 include mutual engagement probabilities 124 and one or more of positive engagement probabilities 120 and negative engagement probabilities 122 . In some examples, predicted results 118 include mutual engagement probability 124 , positive engagement probability 120 , and negative engagement probability 122 .

エンゲージメントスコアラ114は、予測結果118を用いて(例えば、エンゲージメント値116を生成するように予測結果118を組み合わせて)、それぞれのメッセージについてエンゲージメント値116を計算してよい。次いで、エンゲージメント値116は、メッセージを別々に、低品質セクション162、中品質セクション164、および高品質セクション166にランク付けするように、タイムラインマネージャ142によって用いられる。 Engagement scorer 114 may use prediction results 118 (eg, combine prediction results 118 to produce engagement value 116) to calculate engagement value 116 for each message. The engagement value 116 is then used by the timeline manager 142 to rank the messages into low quality section 162, medium quality section 164, and high quality section 166 separately.

いくつかの例では、タイムラインマネージャは、コンテンツ品質分類器147から低品質セクション162と分類されたメッセージのリストを、コンテンツ品質分類器147から中品質セクション164と分類されたメッセージのリストを、またhコンテンツ品質分類器147から高品質セクション166と分類されたメッセージのリストを受信してよい。また、タイムラインマネージャは、予測マネージャ110からエンゲージメント値116を受信してよい。それぞれのセクション160内のメッセージについてのエンゲージメント値116を用いた特定のセクション160内のメッセージのランク付けは、図1Fの2レベルランキング機構の第2の部分と考えられてよい。いくつかの例では、2レベルランキング機構の第2の部分は、メッセージのソフトランキングと考えられてよい。 In some examples, the timeline manager provides a list of messages classified as low quality section 162 from content quality classifier 147, a list of messages classified as medium quality section 164 from content quality classifier 147, and h Content quality classifier 147 may receive a list of messages classified as high quality section 166 . The timeline manager may also receive engagement values 116 from the forecast manager 110 . Ranking messages within a particular section 160 using 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 a soft ranking of messages.

いくつかの例では、タイムラインマネージャ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内においてランク付けされる。 In some examples, timeline manager 142 generates first ranked list 158-1 of messages categorized in low quality section 162, ranked using engagement value 116 from prediction manager 110. may be generated. In some examples, first ranked list 158-1 includes branches 132 of conversation graph 126 classified as low quality. Branches 132 are ranked within the poor quality section 162 according to their engagement value 116 . Timeline manager 142 may generate a second ranked list 158 - 2 of messages categorized in medium quality section 164 ranked using engagement values 116 from prediction manager 110 . In some examples, second ranked list 158-2 includes branches 132 of conversation graph 126 classified as medium quality. Branches 132 are ranked within medium quality section 164 according to their engagement value 116 . Timeline manager 142 may generate a third ranked list 158 - 3 of messages categorized in high quality section 166 ranked using engagement values 116 from prediction manager 110 . In some examples, third ranked list 158-3 includes branches 132 of conversation graph 126 classified as high quality. Branches 132 are ranked within high quality section 166 according to their engagement value 116 .

タイムラインマネージャ142は、クライアントアプリケーション154にてレンダリングされるランクに従って、高品質セクション166のメッセージの少なくともサブセットを送信(例えば、第3のランク付けされたリスト158-3の少なくとも一部を送信)してよい。このようにして、クライアントアプリケーション154のユーザは、メッセージのエンゲージメント値116に従ってランク付けもされた高品質と考えられているメッセージを閲覧してよい。タイムラインマネージャ142は、会話グラフ126から追加のメッセージを閲覧するための後続のリクエストをリクエストしてよい。ここで、タイムラインマネージャ142は、第2のランク付けされたリスト158-2の少なくとも一部を、続いて第1のランク付けされたリスト158-1の少なくとも一部を送信してよい。 Timeline manager 142 transmits at least a subset of messages in high quality section 166 (eg, at least a portion of third ranked list 158-3) according to rank rendered at client application 154. you can In this manner, a user of client application 154 may view messages that are considered high quality that are also ranked according to the message's engagement value 116 . Timeline manager 142 may request subsequent requests to view additional messages from conversation graph 126 . Here, timeline manager 142 may send at least a portion of second ranked list 158-2 followed by at least a portion of first ranked list 158-1.

いくつかの例では、タイムラインマネージャ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、続いて第1のランク付けされたリスト158-1の他の5つのメッセージを送信してよい。 In some examples, the timeline manager 142 selects the third ranked list 158-3, the second ranked list 158-2, followed by the first ranked list 158-1. Rank the messages in the conversation graph 126 according to order. Thus, client application 154 first renders messages from high quality section 166 ranked according to engagement value 116, renders messages from medium quality section 164 ranked according to engagement value 116, and finally , render messages from the low quality section 162 ranked according to engagement value 116 . If the high quality section 166 contains 10 messages, the medium quality section 164 contains 10 messages, and the low quality section 162 contains 10 messages, and the threshold of displayed messages is 15. , the client application 154 renders the entire third ranked list 158-3 and the five messages of the second ranked list 158-2. Timeline manager 142 may receive requests to display additional messages in conversation graph 126 . The timeline manager 142 may now send the second ranked list 158-2, followed by the other five messages of the first ranked list 158-1.

いくつかの例では、ハードランキングは、ハードランキングを行うように、予測モデル112の出力を用いることによってパーソナライズされることが可能である。例えば、予測マネージャ110は、上に説明されたように、予測結果118とエンゲージメント値116とを決定してよい。コンテンツ品質分類器147は、ハードランキング技術に従ってメッセージを分類(および/またはランク付け)するように、予測マネージャ110の出力を用いてよく、ハードランキングは、会話閲覧リクエスト121を開始したユーザの視点からパーソナライズされる。 In some examples, hard rankings can be personalized by using the output of predictive model 112 to do hard rankings. For example, prediction manager 110 may determine prediction results 118 and engagement values 116 as described above. Content Quality Classifier 147 may use the output of Prediction Manager 110 to classify (and/or rank) messages according to a hard ranking technique, which is from the perspective of the user who initiated View Conversation Request 121. Personalized.

図2は、一態様に係るニューラルネットワーク219を示す。ニューラルネットワーク219は、図1A~図1Dのメッセージングシステム100の相互エンゲージメントモデル119の一例であってよい。しかしながら、図2を参照して説明されたフィーチャは、正のエンゲージメントモデル115および負のエンゲージメントモデル117を含む予測モデル112のいずれかに適用されてよい。いくつかの例では、ニューラルネットワーク219は、図1Fの分類モデル161の一例であってよい。ニューラルネットワーク219は、相互エンゲージメント確率224を出力するように構成されている。相互エンゲージメント確率224は、図1Aの相互エンゲージメント確率124の一例であってよい。ニューラルネットワーク219は、ノード260の相互接続されたグループであってよく、ここで、各ノード260は人工ニューロンを表す。ノード260は互いに層により接続されており、1つの層の出力が次の層の入力となる。ニューラルネットワーク219は、入力層262によって受信された入力X,X~X(例えば、信号106)を変換し、それを1つまたは複数の隠れ層264(例えば、図2は、1つの隠れ層264を示す)を通じて変換し、出力層266により出力Y(例えば、相互エンゲージメント確率124)を生成する。各層は、1組のノード260のサブセットからなる。 FIG. 2 illustrates a neural network 219 according to one aspect. Neural network 219 may be an example of mutual engagement model 119 of messaging system 100 of FIGS. 1A-1D. However, the features described with reference to FIG. 2 may be applied to any of predictive models 112 including positive engagement model 115 and 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 . Cross-engagement probability 224 may be an example of cross-engagement probability 124 in FIG. 1A. Neural network 219 may be an interconnected group of nodes 260, where each node 260 represents an artificial neuron. Nodes 260 are connected to each other by layers, with the output of one layer being the input of the next layer. Neural network 219 transforms the input X 1 , X 2 -X n (eg, signal 106) received by input layer 262 and feeds it to one or more hidden layers 264 (eg, FIG. ) to produce an output Y 1 (eg, mutual engagement probability 124 ) by output layer 266 . Each layer consists of a subset of the set of nodes 260 .

相互エンゲージメント確率224を取得するようにニューラルネットワーク219を用いることは、重み付けされバイアスされた数値入力を、ニューラルネットワーク219における相互接続されたノード260に適用し、それらの出力を計算することを含んでよい。ニューラルネットワーク219における各ノード260に対し適用される重み付けおよびバイアスは、例えば、機械学習アルゴリズム149を用いて(例えば、図1Aの予測モデルトレーナ140によって)、ニューラルネットワーク219を訓練することによって取得されてよい。ニューラルネットワーク219におけるノード260は、少なくとも入力層262と出力層266とを含む2つ以上の層に編成されてよい。複数層のニューラルネットワーク219では、1つの層からの出力は、次の層への入力としての役割をしてよい。外部出力接続を有しない層は、隠れ層264と呼ばれてよい。各ノード260の出力は、その入力とバイアスとの重み付けされた合計の関数である。 Using neural network 219 to obtain mutual engagement probabilities 224 includes applying weighted and biased numerical inputs to interconnected nodes 260 in neural network 219 and calculating their outputs. good. The weightings and biases applied to each node 260 in neural network 219 are obtained by training neural network 219, for example, using machine learning algorithm 149 (eg, by predictive model trainer 140 of FIG. 1A). good. Nodes 260 in neural network 219 may be organized into two or more layers, including at least an input layer 262 and an output layer 266 . In a multi-layer neural network 219, the output from one layer may serve as the input to the next layer. Layers with no 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 and bias.

相互エンゲージメント確率224を取得するように、特徴値のベクトル(X...X)は、入力層262における各ノード260に対する入力として適用される。いくつかの例では、特徴値のベクトル(X...X)は、上に説明された信号106の値を含む。入力層262は、隠れ層264におけるノード260の各々に値を分配する。隠れ層264におけるノード260に到達すると、各入力ノードからの値は、ある重み付けが乗算され、得られた重み付け値は足し合わされ、重み付けされたバイアス値に加算され結合値を生成する。結合値は、値を出力する変換または活性化関数を通過する。次に、隠れ層264からの出力は、ニューラルネットワーク219の出力層266におけるノード260へと分配される。出力層266におけるノード260に到達すると、各隠れ層ノードからの値は、ある重み付けが乗算され、得られた重み付け値は足し合わされ、結合値を生成するように重み付けされたバイアス値に加算される。結合値は、Y(例えば、相互エンゲージメント確率224)を出力する変換または活性化関数を通過する。 A vector of feature values (X 1 . . . X N ) is applied as input to each node 260 in input layer 262 to obtain mutual engagement probabilities 224 . In some examples, the vector of feature values (X 1 . . . X N ) includes the values of signal 106 described above. Input layer 262 distributes values to each of the nodes 260 in hidden layer 264 . Upon reaching node 260 in 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 bound value is passed through a transformation or activation function that outputs the value. The output from hidden layer 264 is then distributed to nodes 260 in output layer 266 of neural network 219 . Upon reaching node 260 in output layer 266, the values from each hidden layer node are multiplied by a weight and the resulting weighted values are summed and added to the weighted bias value to produce the combined value. . The combined values are passed through a transformation or activation function that outputs Y 1 (eg, mutual engagement probability 224).

図3は、一態様に係る会話グラフのメッセージングをランク付けするためのメッセージングプラットホーム104の例示的な動作を示すフローチャート300を示す。
動作302は、ネットワーク150を通じて、サーバコンピュータ102によって実行可能なメッセージングプラットホーム104に記憶されている会話グラフ126のメッセージを取り出すように、会話閲覧リクエスト121を受信する工程を含む。動作304は、メッセージングプラットホーム104が、予測モデル112を用いて、会話グラフ126の複数のメッセージの各々について複数の予測結果を決定する工程を含む。ここで、複数の予測結果118は、相互エンゲージメント確率124を含む。動作306は、メッセージングプラットホーム104が、予測結果118に基づいて複数のメッセージをランク付けする工程を含む。動作308は、メッセージングプラットホーム104がネットワーク150を通じて、ランクに従ってクライアントアプリケーション154においてレンダリングされる複数のメッセージの少なくともサブセットを送信する工程を含む。
FIG. 3 depicts a flowchart 300 illustrating exemplary operation of the messaging platform 104 for ranking conversation graph messaging according to an aspect.
Operation 302 includes receiving conversation view request 121 to retrieve messages of conversation graph 126 stored in messaging platform 104 executable by server computer 102 over network 150 . Act 304 includes messaging platform 104 using predictive model 112 to determine a plurality of predicted outcomes for each of the plurality of messages in conversation graph 126 . Here, multiple prediction results 118 include mutual engagement probabilities 124 . Act 306 includes messaging platform 104 ranking the plurality of messages based on predicted results 118 . Act 308 includes messaging platform 104 sending at least a subset of the plurality of messages rendered in client application 154 according to rank over network 150 .

図4は、一態様に係る会話グラフのメッセージをランク付けするためのメッセージングプラットホームの例示的な動作を示す。
動作402は、ネットワーク150を通じて、サーバコンピュータ102によって実行可能なメッセージングプラットホーム104に記憶されている会話グラフ126のメッセージを取り出すように、会話閲覧リクエスト121を受信する工程を含む。動作404は、メッセージングプラットホーム104が、予測モデル112を用いて、会話グラフ126の複数のメッセージの各々について複数の予測結果を決定する決定工程を含む。決定工程は、予測モデル112に関連性のある複数の信号106を取得する工程を含んでよい。ここで、複数の信号は、会話グラフ126に関連するデータ構造関連信号101を含み、複数の予測結果118を決定するように、複数の信号106を予測モデル112に入力する。動作406は、メッセージングプラットホーム104が、予測結果118に基づいて複数のメッセージをランク付けする工程を含む。動作408は、メッセージングプラットホーム104がネットワーク150を通じて、ランクに従ってクライアントアプリケーション154においてレンダリングされる複数のメッセージの少なくともサブセットを送信する工程を含む。
FIG. 4 illustrates exemplary operation of a messaging platform for ranking messages of a conversation graph according to one aspect.
Operation 402 includes receiving conversation view request 121 to retrieve messages of conversation graph 126 stored in messaging platform 104 executable by server computer 102 over network 150 . Operation 404 includes determining, in which messaging platform 104 uses predictive model 112 to determine a plurality of predicted outcomes for each of the plurality of messages in conversation graph 126 . The determining step may include obtaining a plurality of signals 106 that are relevant to predictive model 112 . Here, the plurality of signals includes data structure related signals 101 associated with the conversation graph 126 and inputs the plurality of signals 106 to the predictive model 112 to determine the plurality of predicted outcomes 118 . Act 406 includes messaging platform 104 ranking the plurality of messages based on predicted results 118 . Act 408 includes messaging platform 104 sending at least a subset of the plurality of messages rendered in client application 154 according to rank over network 150 .

図5は、一態様に係る会話グラフのメッセージングをランク付けするためのメッセージングプラットホームの例示的な動作を示すフローチャート500を示す。
動作502は、メッセージングプラットホーム104が、会話グラフ126のメッセージを、メッセージのコンテンツ品質に基づいて複数のセクション160へと分類する工程を含む。ここで、複数のセクション160は、第1のセクションと第2のセクションとを含む。第1のセクションは、第2のセクションのメッセージよりも高品質であると決定された、会話グラフ126からのメッセージを有する。動作504は、メッセージングプラットホーム104が、予測モデル112を用いて、会話グラフ126の複数のメッセージの各々について複数の予測結果を決定する決定工程を含む。動作506は、メッセージングプラットホーム104が、第1のセクションのメッセージを、第1のセクションのメッセージについての予測結果118に基づいてランク付けする工程を含む。動作508は、メッセージングプラットホーム104が、ランクに従ってクライアントアプリケーション154においてレンダリングされる第1のセクションのメッセージの少なくともサブセットを送信する工程を含む。
FIG. 5 depicts a flowchart 500 illustrating exemplary operation of a messaging platform for ranking conversation graph messaging in accordance with an aspect.
Operation 502 includes messaging platform 104 classifying messages in conversation graph 126 into multiple sections 160 based on the content quality of the messages. Here, multiple sections 160 include a first section and a second section. The first section has messages from conversation graph 126 determined to be of higher quality than the messages of the second section. Operation 504 includes determining, in which messaging platform 104 uses predictive model 112 to determine a plurality of predicted outcomes for each of the plurality of messages in conversation graph 126 . Act 506 includes messaging platform 104 ranking the first section messages based on predicted results 118 for the first section messages. Act 508 includes messaging platform 104 sending at least a subset of the messages of the first section rendered in client application 154 according to rank.

上記では、多数の詳細が説明されている。しかしながら、本開示の利益を有する当業者には、本開示の実装は、これらの特定の詳細なしに実施されうることが明らかである。いくつかの例では、周知の構造およびデバイスは、説明を不明瞭にすることを避けるように、詳細ではなく、ブロック図の形態により示されている。 Numerous details have been described above. 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.

詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作のアルゴリズムおよび記号表現の観点から提示されている。これらのアルゴリズム的な記述および表現は、データ処理技術の当業者が、他の当業者に自分の仕事の実質を最も効果的に伝えるべく使用する手段である。アルゴリズムとは、ここでは一般に、所望の結果に至る自己矛盾のない一連の工程であると考えられている。その工程は、物理量の物理的操作を必要とするものである。通常、必ずしもそうではないが、これらの量は、記憶、転送、結合、比較、およびその他の操作が可能である電気信号または磁気信号の形態をとる。これらの信号をビット、値、要素、記号、文字、用語、数などと呼ぶことは、主として一般的な使用上の理由から、時として便利であることが示されている。 Some portions of the detailed descriptions are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and 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 generally thought here to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these 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, or the like.

しかしながら、これらの用語および類似の用語のすべては、適切な物理量と関連付けられるべきであり、これらの量に対して適用される便利なラベルにすぎないことに留意されたい。具体的に別段の定めがなされない限り、上記の議論から明らかなように、記載全体を通じて、「識別する」、「決定する」、「算出する」、「更新する」、「送信する」、「受信する」、「生成する」、「変更する」などの用語を利用した議論は、コンピュータシステムのレジスタおよびメモリ内の(例えば、電子的な)物理量として表現されたデータを、コンピュータシステムメモリもしくはレジスタ内の、または他のそうした情報記憶デバイス、送信デバイス、もしくは表示デバイス内の物理量として同様に表現された他のデータにするように操作および変換する、コンピュータシステムまたは類似の電子コンピューティングデバイスのアクションおよびプロセスに言及していることが理解される。 Note, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, it should be apparent from the discussion above that throughout the description "identify", "determine", "calculate", "update", "transmit", " Discussions using terms such as "receive", "generate", and "modify" refer to data represented as (e.g., electronic) physical quantities in computer system registers and memory as computer system memory or registers. the action of a computer system or similar electronic computing device that manipulates and transforms it into other data similarly represented as physical quantities within or in other such information storage, transmission, or display devices; It is understood that reference is made to processes.

本開示の実装は、本明細書における動作を実行するための装置にも関連する。この装置は、必要な目的のために特別に構成されてよく、コンピュータに記憶されたコンピュータプログラムによって選択的に始動(起動)または再構成されている汎用コンピュータを含んでよい。そうしたコンピュータプログラムは、フロッピディスク、光ディスク、CD-ROM、および磁気光ディスクを含む、任意の種類のディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気もしくは光カード、フラッシュメモリ、または電子命令を記憶するのに適した任意の種類の媒体などの、非一時的コンピュータ可読記憶媒体内に記憶されてよいが、それらに限定されない。 Implementations of the present disclosure also relate to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such computer programs may be stored on any kind of disk, including floppy disk, optical disk, CD-ROM and magneto-optical disk, read only memory (ROM), random access memory (RAM), EPROM, EEPROM, magnetic or optical cards, flash It may be stored in a non-transitory computer-readable storage medium, such as, but not limited to, memory or any type of medium suitable for storing electronic instructions.

「例」または「例示的」という語句は、本明細書において、例、事例、または例示として役立つことを意味するために使用される。本明細書において、「例」または「例となる」として説明される、任意の態様または設計は、他の態様または設計よりも好ましいまたは有利であると、必ずしも解釈されるべきではない。むしろ、「例」または「例となる」という語の使用は、具体的なやり方で、概念を提示することが意図されている。本出願において使用される場合、「または」という用語は、排他的な「または」ではなく、包含的な「または」を意味することが意図されている。すなわち、別段の指定がない限り、または文脈から明らかでない限り、「XはAまたはBを含む」は、自然な包含的な順列のいずれかを意味することが意図されている。すなわち、XがAを含む場合、XがBを含む場合、またはXがAとBの両方を含む場合、「XはAまたはBを含む」が、前記の事例のいずれの下において、満たされる。加えて、本出願および添付の特許請求の範囲において使用される場合、冠詞「a」および「an」は、別段の指定がない限り、または単数形に向けられていることが文脈から明らかでない限り、一般に「1つまたは複数」を意味すると解釈されるべきである。さらに、全体を通して「実施」もしくは「1つの実施形態」、または「実施」もしくは「1つの実施」という用語の使用は、そのように説明されない限り、同じ実施形態または実施を意味することは意図されていない。さらに、本明細書において使用される場合、「第1の」、「第2の」、「第3の」、「第4」などの用語は、異なる要素を弁別するためのラベルとして意味されており、それらの数的な指示に従った、序数の意味を必ずしも有さないことがある。 The words "example" or "exemplary" are 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 word "example" or "exemplary" is intended to present concepts in a concrete fashion. As used in this application, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or." That is, unless specified otherwise, or clear from context, "X comprises A or B" is intended to mean any of its natural inclusive permutations. That is, if X contains A, X contains B, or X contains both A and B, then "X contains A or B" is satisfied under any of the above cases. . In addition, as used in this application and the appended claims, the articles "a" and "an" are used unless otherwise specified or clear from the context that they are directed to the singular , should generally be taken to mean "one or more". Further, use of the terms "implementation" or "one embodiment" or "implementation" or "one implementation" throughout is intended to mean the same embodiment or implementation unless so stated. not Moreover, as used herein, the terms “first,” “second,” “third,” “fourth,” etc. are meant as labels to distinguish different elements. and may not necessarily have an ordinal meaning according to their numerical designation.

本明細書において提示されるアルゴリズムおよび表示は、いずれの特定のコンピュータまたは他の装置にも本質的に関連しない。様々な汎用システムが、本明細書における教示に従ったプログラムとともに使用されてよく、または必要とされる方法工程を実行するために、より専門化された装置を構築することが、便利であると分かることがある。様々なこれらのシステムのために必要とされる構造は、以下の説明から現れる。加えて、本開示は、いずれの特定のプログラミング言語も参照せずに、説明される。本明細書において説明される本開示の教示を実施するために、様々なプログラミング言語が、使用されてよいことが理解されよう。 The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. I know something. The required structure for a variety of these systems will appear from the description below. Additionally, the present disclosure is described without 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 disclosure described herein.

上記の説明は、本開示のいくつかの実施の良好な理解を提供するために、具体的なシステム、コンポーネント、および方法などの例など、数々の具体的な詳細を明らかにする。しかしながら、本開示の少なくともいくつかの実施は、これらの具体的な詳細なしに実践されてよいことが、当業者には明らかである。他の事例においては、本開示を不必要に不明瞭にすることを避けるために、よく知られたコンポーネントまたは方法は、詳細に説明されず、または単純なブロック図フォーマットで提示される。したがって、上で明らかにされた具体的な詳細は、例にすぎない。特定の実施は、これらの詳細例から変化するが、依然として本開示の範囲内であることが企図され得る。 The above description reveals numerous specific details, such as examples of specific systems, components, methods, etc., in order to provide a good understanding of some implementations of the present disclosure. However, it will be apparent to those skilled in the art that at least some implementations of this 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 disclosed above are only examples. Particular implementations may vary from these detailed examples and still be contemplated within the scope of the present disclosure.

本発明は、予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのコンピュータ実装方法およびシステムに関する。 The present invention relates to a computer-implemented method and system for ranking messages in a conversation graph in a messaging platform using predictive results.

ソーシャルメディアメッセージングプラットホームは、そのユーザ間の何百万または数億のソーシャルメディアメッセージの交換を行うことができる。プラットホームにて交換されるメッセージは、多くの場合、プラットホームのユーザに最新のアップデートまたは現在のイベントに関するレポートを提供することが可能である。メッセージングプラットホームにおけるメッセージの交換は、ユーザ間の会話の一部であってよい。いくつかの従来のメッセージングシステムは、ユーザが特定のメッセージを閲覧するときに会話の一部を閲覧することができるように、メッセージのリプライ構造を記憶してよい。しかしながら、会話ビューを形成するメッセージのリストは比較的大きい場合があり、それによってユーザに低速のロード時間を引き起こす場合がある。 Social media messaging platforms are capable of exchanging millions or hundreds of millions of social media messages between their users. Messages exchanged on the platform can often provide the user of the platform with the latest updates or reports on current events. An exchange of messages in a messaging platform may be part of a conversation between users. Some conventional messaging systems may store message reply structures so that users can view parts of the conversation when viewing a particular message. However, the list of messages forming a conversation view may be relatively large, thereby causing slow load times for the user.

メッセージングプラットホームは、メッセージングプラットホームのユーザ間のメッセージの交換を行う。メッセージは、メッセージングプラットホームにて行われた会話の一部であってよい。例えば、ユーザは、プラットホームにメッセージを投稿してよい。他のユーザは、そのメッセージに対する複数のリプライを、次いで、そのリプライに対するリプライなどを投稿してよい。リプライ構造は、会話グラフとして記憶されてよい。メッセージングプラットホームは、メッセージングプラットホームにて行う会話に関連する任意の数の会話グラフを記憶してよい。いくつかの例では、会話グラフは比較的大きい(例えば、会話グラフにおける複数のノードが、閾値を超える)。会話グラフの生成および維持は、特定のメッセージとのリプライ関係におけるメッセージを閲覧するリクエストに応答する時に、情報の迅速な取出しを可能にする。 A messaging platform facilitates the exchange of messages between users of the messaging platform. A message may be part of a conversation conducted on a messaging platform. For example, a user may post a message on the platform. Other users may post multiple replies to that message, then replies to that reply, and so on. A reply structure may be stored as a conversation graph. A messaging platform may store any number of conversation graphs associated with conversations conducted on the messaging platform. In some examples, the conversation graph is relatively large (eg, multiple nodes in the conversation graph exceed a threshold). Generating and maintaining a conversation graph enables rapid retrieval of information when responding to requests to view messages in a reply relationship to a particular message.

会話グラフに関連付けられている特定のメッセージを閲覧する時に、ユーザは、会話グラフの他のメッセージを閲覧するようにメッセージを選択してよく、ここで、クライアントアプリケーションは、メッセージングプラットホームに対する会話閲覧要求を生成する。会話グラフに関連するメッセージのすべて(比較的大きい場合がある)を表示するよりも、タイムラインマネージャは、特定のユーザにとって最も関連性のあるブランチ(またはノード)をランク付けするように、会話グラフのメッセージを一意スコアリングシステム(エンゲージメント予測を組み込む)を用いてランク付けしてよく、次いで、ランク付けされたリスト(またはそれらの一部(サブセット))を提供してよい。このようにして、会話グラフのメッセージは、予測結果(否定的な予測結果に対して肯定的な予測結果のバランスを取る)の自身のレベルに従って表示される。これに加えて、ランク付けされたリストを提供することによって、メッセージングプラットホームは、より少数の応答を供給しながら、ユーザに提供される値を増加させることを可能にする。例えば、メッセージングプラットホームは、リクエストごとに応答のサブセット(例えば、上位10,15,20などの応答)を提供してよい。これによって、サーバにおけるより速い計算、ユーザにとってのより早いロード時間を生じ得、エンゲージメントに関してほぼ損失がない。 When viewing a particular message associated with a conversation graph, a user may select a message to view other messages in the conversation graph, where the client application submits a conversation viewing request to the messaging platform. Generate. Rather than displaying all of the messages (which may be relatively large) that are relevant to the conversation graph, the timeline manager uses the conversation graph to rank the branches (or nodes) that are most relevant to a particular user. messages may be ranked using a unique scoring system (which incorporates engagement predictions) and then a ranked list (or a subset thereof) may be provided. In this way, messages in the conversation graph are displayed according to their level of prediction results (balancing positive prediction results against negative prediction results). In addition to this, by providing a ranked list, the messaging platform allows increasing the value provided to the user while providing fewer responses. For example, the messaging platform may provide a subset of responses (eg, top 10, 15, 20, etc. responses) for each request. This can result in faster computation on the server, faster load times for the user, and almost no loss in terms of engagement.

予測マネージャ(メッセージングプラットホームにて実行する)は、1つまたは複数の予測モデルを用いて、会話グラフにおける候補ノードごとに予測結果を決定してよい。予測結果は、会話グラフのメッセージ(またはメッセージのサブセット)ごとに予測されるユーザエンゲージメント結果である。予測結果は、相互エンゲージメント確率を含む。相互エンゲージメント確率は、ユーザが会話グラフをさらに発展させると予測される(例えば、メッセージに対しリプライすると予測される)確率値を示す。相互エンゲージメント確率の予測結果への組込みは、プラットホームにおけるより多くの会話を奨励してよい。いくつかの例では、予測結果は、相互エンゲージメント確率と、正のエンゲージメント確率および負のエンゲージメント確率の1つ以上と、を含む。正のエンゲージメント確率は、ユーザがメッセージに肯定的なエンゲージメントを行う(例えば、いいねまたはノードをお気に入りに追加する)と予測される確率値を示す。負のエンゲージメント確率は、ユーザがメッセージに否定的な閲覧またはエンゲージメントを行うと予測される(例えば、ユーザが、ノードが罵りであると考える場合がある)確率値を示す。いくつかの例では、予測結果は、相互エンゲージメント確率と、正のエンゲージメント確率と、負のエンゲージメント確率と、を含む。 A prediction manager (running on the messaging platform) may use one or more prediction models to determine a prediction result for each candidate node in the conversation graph. The predicted result is the predicted user engagement result for each message (or subset of messages) of the conversation graph. Prediction results include mutual engagement probabilities. A mutual engagement probability indicates a probability value that a user is expected to further develop the conversation graph (eg, to reply to a message). Incorporating mutual engagement probabilities into prediction results may encourage more conversations on the platform. In some examples, the predicted results include mutual engagement probabilities and one or more of positive engagement probabilities and negative engagement probabilities. A positive engagement probability indicates a probability value that a user is expected to engage positively with a message (eg, like or add a node to favorites). A negative engagement probability indicates a probability value that a user is expected to negatively view or engage with the message (eg, the user may think the node is a swear word). In some examples, the predicted results include mutual engagement probabilities, positive engagement probabilities, and negative engagement probabilities.

予測モデルは、正のエンゲージメント確率を予測する正のエンゲージメントモデルと、負のエンゲージメント確率を予測する負のエンゲージメントモデルと、相互エンゲージメント確率を予測する相互エンゲージメントモデルとを含んでよい。いくつかの例では、予測モデルは、1つまたは複数の機械学習アルゴリズムに適用される訓練データを用いて訓練される機械学習モデルである。いくつかの例では、予測モデルは、ニューラルネットワークを含む。訓練データは、メッセージングシステムがアクティブである(および予測マネージャが有効にされている)間にクライアントイベントログおよびインジェクションログから取得された履歴データの組合せであってよい。履歴データは、ある期間(例えば、1日、1週、1月、1年など)にわたって取得されてよく、次いで、オフラインモードにおいて予測モデルを訓練(または再訓練)するように用いられてよい。ここで、更新された予測モデルは、予測マネージャに送信されてよい。 The predictive models may include a positive engagement model that predicts positive engagement probabilities, a negative engagement model that predicts negative engagement probabilities, and a cross-engagement model that predicts cross-engagement probabilities. In some examples, the predictive model is a machine learning model that is trained using training data applied to one or more machine learning algorithms. In some examples, predictive models include neural networks. Training data may be a combination of historical data obtained from client event logs and injection logs while the messaging system is active (and the prediction manager is enabled). Historical data may be obtained over a period of time (eg, a day, a week, a month, a year, etc.) and then used to train (or retrain) a predictive model in offline mode. The updated forecast model may now be sent to the forecast manager.

会話グラフのメッセージを取り出すための会話閲覧リクエストに応答して、予測マネージャは、予測結果を決定するための信号を取得し、予測結果を決定するようにその信号を予測モデルに入力してよい。信号は、クライアントアプリケーションによって生成された信号および/またはメッセージングプラットホームによって生成された信号を含んでよい。いくつかの例では、信号は、ユーザおよび作成者(auther)のソーシャルグラフおよびエンゲージメント履歴を含む。しかしながら、信号は、データ構造関連信号、健康関連信号、エンゲージメント信号、ソーシャルグラフ信号、履歴集約信号、および/またはコンテンツ関連信号などの多様な信号を含んでよい。信号の数および予測に用いられる信号の様々なカテゴリの数は、モデル予測の精度を向上させてよい。 In response to a conversation view request to retrieve a message of the conversation graph, the prediction manager may obtain a signal for determining the prediction result and input the signal into the prediction model to determine the prediction result. The signals may include signals generated by the client application and/or signals generated by the messaging platform. In some examples, the signals include the user's and author's social graph and engagement history. However, the signals may include a variety of signals such as data structure related signals, health related signals, engagement signals, social graph signals, history aggregation signals, and/or content related signals. The number of signals and the number of different categories of signals used for prediction may improve the accuracy of the model prediction.

予測マネージャは、ノードごとのエンゲージメント値を取得するように予測結果を組み合わせてよい。ここで、エンゲージメント値は、会話グラフのメッセージへの予測されたエンゲージメントの総合レベルを示す。タイムラインマネージャは、ユーザについての会話グラフの最も関連性のあるブランチ(またはノード)を貪欲に選択するように、エンゲージメント値を用いてよい。最も関連性のあるブランチ(またはノード)をロケーティングすることに加えて、タイムラインマネージャは、エンゲージメント値に基づいて表示するブランチの量を決定してよい。さらに、タイムラインマネージャは、会話グラフの関連性のない部分を折り畳んでよいが、ユーザが会話グラフの他のメッセージを閲覧するためにそれらの部分を展開することを可能にする。 The prediction manager may combine prediction results to obtain an engagement value for each node. Here, the engagement value indicates the total level of predicted engagement with the messages in the conversation graph. The timeline manager may use the engagement value to greedily select the most relevant branches (or nodes) of the conversation graph for the user. In addition to locating the most relevant branches (or nodes), the timeline manager may determine the amount of branches to display based on engagement value. Additionally, the timeline manager may collapse irrelevant parts of the conversation graph, but allow the user to expand those parts to view other messages in the conversation graph.

エンゲージメント値に従ってランク付けされたメッセージは、各ユーザに特有であってよい。例えば、会話グラフのいくつかのメッセージは、第1のユーザにより関連性があってよく、一方で、会話グラフの他のメッセージが第2のユーザに関連性があってよい。しかしながら、予測マネージャによって決定された予測結果は、特定のユーザに合わせられてよい。対照的に、いくつかの従来のアプローチは、各々について同一の閲覧を提供することができる投票ベースの機構を用いる。これに加えて、メッセージングプラットホームは相互作用エンゲージメント確率を自身のスコアリングアルゴリズム内に組み込むため、メッセージングプラットホームは、メッセージングプラットホームにおけるより多くの会話を奨励してよい。 Messages ranked according to engagement value may be unique to each user. For example, some messages in the conversation graph may be more relevant to the first user, while other messages in the conversation graph may be relevant to the second user. However, the prediction results determined by the prediction manager may be tailored to specific users. In contrast, some conventional approaches use vote-based mechanisms that can provide the same view for each. Additionally, because the messaging platform incorporates interactive engagement probabilities into its scoring algorithm, the messaging platform may encourage more conversations on the messaging platform.

いくつかの例では、メッセージングプラットホームは、会話グラフのメッセージに対して2レベルランキングシステムを行う。例えば、2レベルランキング機構(例えば、ハードランキングおよびソフトランキング)は、メッセージングプラットホーム上の会話における罵りに対処するための効果的な機構を提供してよい。いくつかの例では、ハードランキングは、会話のメッセージ(またはブランチ)を複数のセクションへと分類(またはセクショニング)する。例えば、メッセージングプラットホームは、会話グラフのノード(またはブランチ)をセクションへと分割するコンテンツ品質分類器を備えてよい。各セクションは、品質レベルの異なるカテゴリ化(または分類)を意味してよい。いくつかの例では、コンテンツ品質分類器は、メッセージのコンテンツおよび作成者の挙動、プロフィール、またはメッセージングプラットホーム上のエンゲージメントに関連する他の信号に基づいて、メッセージの品質分類を決定する分類モデル(例えば、ニューラルネットワーク)を含む。 In some examples, the messaging platform performs a two-level ranking system on the messages of the conversation graph. For example, a two-level ranking mechanism (eg, hard ranking and soft ranking) may provide an effective mechanism for combating swearing in conversations on messaging platforms. In some examples, hard ranking classifies (or sectioning) messages (or branches) of a conversation into multiple sections. For example, a messaging platform may include a content quality classifier that divides nodes (or branches) of a conversation graph into sections. Each section may represent a different categorization (or classification) of quality levels. In some examples, a content quality classifier is a classification model (e.g., , neural networks).

コンテンツ品質分類器は、第1のメッセージが比較的低品質であり、第2のメッセージが比較的高品質であることを決定してよい。ここで、コンテンツ品質分類器は、第1のメッセージ(または第1のメッセージを含むブランチ)を第1のセクション(例えば、低品質セクションと考えられている第1のセクション)に割り当ててよく、第2のメッセージ(または第2のメッセージを含むブランチ)を第2のセクション(例えば、高品質セクションと考えられている第2のセクション)に割り当ててよい。2レベルランキング機構のソフトランキングは、上記のエンゲージメント値を用いて各セクション内にメッセージ(またはブランチ)をランク付けすることを含んでよい。次いで、メッセージは、高品質セクションのランク付けされたリストを、続いて低品質セクションのランク付けされたリストを提供するように、ユーザに提示されてよい。 A content quality classifier may determine that the first message is of relatively low quality and the second message is of relatively high quality. Here, the content quality classifier may assign the first message (or the branch containing the first message) to the first section (eg, the first section considered a low quality section), 2 messages (or the branch containing the second message) may be assigned to the second section (eg, the second section considered the high quality section). Soft ranking, a two-level ranking mechanism, may involve ranking messages (or branches) within each section using the engagement values described above. A message may then be presented to the user to provide a ranked list of high quality sections followed by a ranked list of low quality sections.

一態様によれば、予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするための方法は、ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージを取り出すように会話閲覧リクエストを受信する工程と、前記メッセージングプラットホームが、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する決定工程と、を備える。前記複数の予測結果は、相互エンゲージメント確率を含む。方法は、前記メッセージングプラットホームが、前記予測結果に基づいて前記複数のメッセージをランク付けする工程と、前記メッセージングプラットホームが、前記ネットワークを通じて、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくともサブセットを送信する工程と、を備える。さらなる態様によれば、対応するシステムおよび対応する命令を記憶する非一時的なコンピュータ可読媒体が提供されてよい。 According to one aspect, a method for ranking conversation graph messages in a messaging platform using prediction results receives, over a network, a conversation view request to retrieve conversation graph messages stored in the messaging platform. and determining, where the messaging platform uses a predictive model to determine a plurality of predicted outcomes for each of a plurality of messages of the conversation graph. The plurality of prediction results includes mutual engagement probabilities. The method comprises the steps of: the messaging platform ranking the plurality of messages based on the predicted results; and the messaging platform rendering at least a subset of the plurality of messages in a client application according to the rankings over the network. and transmitting. According to further aspects, a non-transitory computer-readable medium storing a corresponding system and corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記複数の予測結果はまた、正のエンゲージメント確率、および負のエンゲージメント確率を含む。前記方法は、前記相互エンゲージメント確率、前記正のエンゲージメント確率、および前記負のエンゲージメント確率を用いて前記複数のメッセージの各々についてエンゲージメント値を計算する工程を備え、前記複数のメッセージは、前記エンゲージメント値に従ってランク付けされる。前記方法は、前記メッセージングプラットホームが、前記メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて前記会話グラフを生成する工程であって、前記会話グラフは会話に関連するメッセージのツリーデータ構造を含む、工程を備えてよい。前記方法は、前記メッセージングプラットホームが、前記クライアントアプリケーションと前記メッセージングプラットホームとのうちの1つ以上によって生成された信号を取得する工程と、前記メッセージングプラットホームが、前記複数の予測結果を決定するように、前記信号を前記予測モデルに対し入力する工程と、を備えてよい。前記方法は、前記メッセージングプラットホームが、訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程を備えてよい。前記方法は、前記メッセージングプラットホームが、前記会話グラフにおけるメッセージの数が閾値レベルを超えていることに応答して、前記複数のメッセージから候補のサブセットを選択する工程であって、前記複数の予測結果は、前記候補のサブセットのメッセージごとに決定される、工程をさらに備えてよい。前記方法は、前記メッセージングプラットホームが、前記ランクに従って前記クライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの第1のサブセットを送信する工程と、前記メッセージングプラットホームが、前記会話グラフからの追加のメッセージを表示するリクエストを前記クライアントアプリケーションから受信する工程と、前記メッセージングプラットホームが、前記ランクに従って前記クライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの第2のサブセットを送信する工程と、をさらに備えてよい。前記会話グラフは、前記会話グラフの前記メッセージを表す複数のノードの配置を有するツリーデータ構造を含んでよい。前記方法は、前記メッセージングプラットホームが、前記複数の予測結果に基づいて前記複数のメッセージごとにエンゲージメント値を計算する工程と、前記メッセージングプラットホームが、前記エンゲージメント値を用いて、前記ツリーデータ構造の1つまたは複数のブランチを選択する工程と、をさらに備えてよい。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more of the following features (or any combination thereof). The plurality of predicted outcomes also includes a positive engagement probability and a negative engagement probability. The method comprises calculating 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 matched according to the engagement value. Ranked. The method comprises the steps of: the messaging platform generating the conversation graph based on a reply structure of messages exchanged on the messaging platform, the conversation graph comprising a tree data structure of messages associated with a conversation; A process may be provided. The method comprises the steps of: the messaging platform obtaining signals generated by one or more of the client application and the messaging platform; and the messaging platform determining the plurality of predicted results, and inputting said signal to said prediction model. The method may comprise the messaging platform training the predictive model based on a machine learning algorithm fed with training data. The method comprises the steps of: the messaging platform, in response to a number of messages in the conversation graph exceeding a threshold level, selecting a candidate subset from the plurality of messages; is determined for each message of said candidate subset. The method comprises the steps of: the messaging platform sending a first subset of the plurality of messages rendered in the client application according to the rank; and the messaging platform displaying additional messages from the conversation graph. It may further comprise receiving a request from the client application, and the messaging platform sending a second subset of the plurality of messages rendered in the client application according to the rank. The conversation graph may include a tree data structure having an arrangement of nodes representing the messages of the conversation graph. The method comprises the steps of: the messaging platform calculating an engagement value for each of the plurality of messages based on the plurality of predicted results; or selecting a plurality of branches.

一態様によれば、予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのシステムは、メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて会話グラフを生成するように構成されている会話グラフマネージャであって、前記会話グラフは会話のメッセージのデータ構造を含む、会話グラフマネージャと、ネットワークを通じてクライアントアプリケーション上のユーザのタイムラインにメッセージのストリームを提供するように構成されているタイムラインマネージャであって、前記ネットワークを通じて、会話閲覧リクエストを前記クライアントアプリケーションから受信するように構成されている、タイムラインマネージャと、前記会話閲覧リクエストに応答して、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定するように構成されているエンゲージメント予測器であって、前記複数の予測結果は、相互エンゲージメント確率と、正のエンゲージメント確率および負のエンゲージメント確率のうちの1つ以上とを含む、エンゲージメント予測器と、それぞれのメッセージについての前記予測結果を用いて前記複数のメッセージの各々についてエンゲージメント値を計算するように構成されているエンゲージメントスコアラと、を備える。前記タイムラインマネージャは、前記エンゲージメント値を用いて前記複数のメッセージをランク付けし、前記ランクに従って前記タイムラインにおいてレンダリングされる前記複数のメッセージの少なくともサブセットを、前記ネットワークを通じて提供するように構成されている。さらなる態様によれば、対応する方法および対応する命令を記憶する非一時的なコンピュータ可読媒体が提供されてよい。 According to one aspect, a system for ranking messages of a conversation graph in a messaging platform using prediction results is configured to generate a conversation graph based on reply structures of messages exchanged in the messaging platform. a conversation graph manager, said conversation graph including a data structure of messages of a conversation; a timeline manager configured to receive a conversation viewing request from the client application over the network; An engagement predictor configured to determine a plurality of predicted outcomes for each of a plurality of messages, the plurality of predicted outcomes being a mutual engagement probability and one of a positive engagement probability and a negative engagement probability. and an engagement scorer configured to calculate an engagement value for each of the plurality of messages using the prediction results for each message. The timeline manager is configured to rank the plurality of messages using the engagement value and provide over the network at least a subset of the plurality of messages rendered in the timeline according to the ranking. there is According to further aspects, a non-transitory computer-readable medium storing corresponding methods and corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記相互エンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフのメッセージに対するリプライを受信すると予測される確率値を含み、前記正のエンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフの前記メッセージへの肯定的なユーザエンゲージメントを受信すると予測される確率値を含み、前記負のエンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフの前記メッセージへの否定的なユーザエンゲージメントを受信すると予測される確率値を含む。前記予測モデルは、相互エンゲージメントモデル、正のエンゲージメントモデル、および負のエンゲージメントモデルを含む。前記エンゲージメント予測器は、前記クライアントアプリケーションと前記メッセージングプラットホームとのうちの1つ以上によって生成された信号を取得し、前記信号を前記相互エンゲージメントモデル、前記正のエンゲージメントモデル、および前記負のエンゲージメントモデルに入力するように、また前記相互エンゲージメント確率、前記正のエンゲージメント確率、および前記負のエンゲージメント確率をそれぞれ取得するように構成されている。前記システムは、訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練するように構成されている予測モデルトレーナであって、訓練された前記予測モデルを前記予測マネージャに対し提供するように構成されている、予測モデルトレーナをさらに備えてよい。前記システムは、複数のソースから候補のサブセットを選択するように構成されている候補メッセージセレクタをさらに備えてよく、前記複数のソースは、最近投稿されたものに従ってランク付けされた前記会話グラフの前記メッセージを有する第1のソースと、関連性アルゴリズムに従ってランク付けされた前記会話グラフの前記メッセージを有する第2のソースと、を含む。前記候補のサブセットは、前記第1のソースからのある数のメッセージと前記第2のソースからのある数のメッセージとを含み、前記複数の予測結果は前記候補のサブセットのメッセージごとに決定される。前記会話グラフの前記データ構造は、前記会話グラフの前記メッセージを表す複数のノードの配置を有するツリーデータ構造を含み、前記タイムラインマネージャは、前記エンゲージメント値を用いて前記ツリーデータ構造のブランチを選択するように構成されている。前記エンゲージメントスコアラは、前記相互エンゲージメント確率に適用される重み付けが前記負のエンゲージメント確率に適用される重み付けよりも高くなるように、前記相互エンゲージメント確率、前記正のエンゲージメント確率、および前記負のエンゲージメント確率の各々に重み付けを適用するように構成されている。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The mutual engagement probability includes a probability value that the messaging platform expects to receive a reply to the message in the conversation graph, and the positive engagement probability indicates that the messaging platform will receive an acknowledgment to the message in the conversation graph. said negative engagement probability comprises a probability value that said messaging platform is expected to receive negative user engagement to said message of said conversation graph. . The predictive models include mutual engagement models, positive engagement models, and negative engagement models. The engagement predictor obtains signals generated by one or more of the client application and the messaging platform and applies the signals to the mutual engagement model, the positive engagement model, and the negative engagement model. configured to input and obtain the mutual engagement probability, the positive engagement probability, and the negative engagement probability, respectively. The system is a predictive model trainer configured to periodically train the predictive model based on one or more machine learning algorithms input with training data, the trained predictive model being: A predictive model trainer configured to provide to the predictive manager may further comprise. The system may further comprise a candidate message selector configured to select a subset of candidates from a plurality of sources, wherein the plurality of sources are selected from the conversation graph ranked according to the most recently posted. A first source with messages and a second source with said messages of said conversation graph ranked according to a relevance algorithm. The candidate subset includes a number of messages from the first source and a number of messages from the second source, and the plurality of prediction results is determined for each message of the candidate subset. . The data structure of the conversation graph includes a tree data structure having an arrangement of a plurality of nodes representing the messages of the conversation graph, and the timeline manager selects a branch of the tree data structure using the engagement value. is configured to The engagement scorer determines the mutual engagement probability, the positive engagement probability, and the negative engagement probability such that the weighting applied to the mutual engagement probability is higher than the weighting applied to the negative engagement probability. It is configured to apply a weighting to each.

一態様によれば、実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによる実行時、前記1つ以上のプロセッサに、ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージについての会話閲覧リクエストを受信する工程であって、前記会話グラフは会話のメッセージのデータ構造を含む、工程と、前記会話グラフからメッセージの候補のサブセットを選択する工程と、予測モデルを用いて前記候補のサブセットのメッセージごとに複数の予測結果を決定する工程であって、前記複数の予測結果は、相互エンゲージメント確率を含み、前記相互エンゲージメント確率は、前記メッセージングプラットホームが、前記候補のサブセットのそれぞれのメッセージに対するリプライを受信すると予測される確率値を含む、工程と、前記予測結果を用いて前記候補のサブセットのメッセージごとにエンゲージメント値を計算する工程と、前記エンゲージメント値を用いて前記複数のメッセージをランク付けする工程と、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくともサブセットを送信する工程と、を行わせるように構成されている、非一時的なコンピュータ可読媒体。さらなる態様によれば、対応する命令を記憶する対応するシステムおよび方法が提供されてよい。 According to one aspect, a non-transitory computer-readable medium storing executable instructions that, when executed by one or more processors, communicates with the one or more processors over a network to a messaging platform. selecting a candidate subset of messages from the conversation graph; and determining a plurality of predicted outcomes for each message of the candidate subset using a predictive model, wherein the plurality of predicted outcomes comprises a cross-engagement probability, the cross-engagement probability is determined by the messaging platform. includes a probability value predicted to receive a reply to each message of the candidate subset; calculating an engagement value for each message of the candidate subset using the prediction result; ranking the plurality of messages using a value; and sending at least a subset of the plurality of messages rendered in a client application according to the ranking. computer readable medium. According to further aspects, corresponding systems and methods for storing corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記候補のサブセットは、前記会話グラフからのある数の最近投稿されたメッセージとある数の上位にランク付けされたメッセージとを含む。前記会話グラフの前記データ構造は、前記会話グラフの前記メッセージを表す複数のノードの配置を有するツリーデータ構造を含む。前記動作は、前記エンゲージメント値を用いて前記ツリーデータ構造のブランチを選択する工程を備えてよい。前記動作は、訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練する工程と、訓練された前記予測モデルを予測マネージャに提供する工程と、を備えてよい。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The candidate subset includes a number of recently posted messages and a number of top ranked messages from the conversation graph. The data structure of the conversation graph includes a tree data structure having an arrangement of a plurality of nodes representing the messages of the conversation graph. The act may comprise selecting a branch of the tree data structure using the engagement value. The operations comprise periodically training the prediction model based on one or more machine learning algorithms input with training data, and providing the trained prediction model to a prediction manager. you can

一態様によれば、予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするための方法は、ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージを取り出すように会話閲覧リクエストを受信する工程と、前記メッセージングプラットホームが、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する決定工程と、を備える。前記決定工程は、前記会話グラフに関連するデータ構造関連信号を含む、前記予測モデルに関連性のある複数の信号を取得する工程と、前記複数の予測結果を決定するように、前記複数の信号を前記予測モデルに入力する工程と、を含んでよい。方法は、前記メッセージングプラットホームが、前記予測結果に基づいて前記複数のメッセージをランク付けする工程と、前記メッセージングプラットホームが、前記ネットワークを通じて、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくともサブセットを送信する工程と、を備える。さらなる態様によれば、対応するシステムおよび対応する命令を記憶する非一時的なコンピュータ可読媒体が提供されてよい。 According to one aspect, a method for ranking conversation graph messages in a messaging platform using prediction results receives, over a network, a conversation view request to retrieve conversation graph messages stored in the messaging platform. and determining, where the messaging platform uses a predictive model to determine a plurality of predicted outcomes for each of a plurality of messages of the conversation graph. The determining step includes obtaining a plurality of signals associated with the prediction model, including data structure-related signals associated with the conversation graph; into the prediction model. The method comprises the steps of: the messaging platform ranking the plurality of messages based on the predicted results; and the messaging platform rendering at least a subset of the plurality of messages in a client application according to the rankings over the network. and transmitting. According to further aspects, a non-transitory computer-readable medium storing a corresponding system and corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記会話グラフは、前記会話グラフの前記メッセージを表す複数のノードと前記ノード間のリンクを表すエッジとを有するツリーデータ構造を含み、前記ツリーデータ構造はノードの1つまたは複数のブランチを定め、前記データ構造関連信号は前記会話グラフ内のノードの数とブランチの数とを表す信号を含む。前記データ構造関連信号は、ブランチ内のリプライの数、ブランチ内の会話の数、およびブランチまたは前記会話グラフ内のユニーク作成者の数を含む。前記複数の信号は、前記クライアントアプリケーションのユーザが前記会話グラフのメッセージの作成者を制限したかを表す信号を含む。前記複数の信号は、接続グラフにおける前記クライアントアプリケーションのユーザをフォローしているユーザのエンゲージメントを含む、前記会話グラフの前記メッセージに関連付けられているユーザエンゲージメントデータを表すエンゲージメント信号を含む。前記複数の信号は、前記メッセージングプラットホームにおける前記クライアントアプリケーションのユーザに関連付けられているエンゲージメントデータを含む履歴集約信号を含む。前記複数の信号は、前記会話グラフのメッセージに関連付けられているコンテンツ関連信号を含む。前記複数の信号の少なくともサブセットは、前記メッセージングプラットホームにおいて実行する1つまたは複数のデータサービスから取得される。前記方法は、前記メッセージングプラットホームが、前記クライアントアプリケーションから受信された情報を記憶するクライアントイベントログと、前記メッセージングプラットホームにおいて実行するタイムラインマネージャからの情報を記憶するインジェクションログと、から訓練データを取得する工程と、前記メッセージングプラットホームが、前記訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程と、を備えてよい。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . the conversation graph includes a tree data structure having a plurality of nodes representing the messages of the conversation graph and edges representing links between the nodes, the tree data structure defining one or more branches of nodes; The data structure related signals include signals representing the number of nodes and the number of branches within the conversation graph. The data structure related signals include the number of replies within a branch, the number of conversations within a branch, and the number of unique authors within a branch or the conversation graph. The plurality of signals includes a signal indicative of whether a user of the client application has restricted creators of messages of the conversation graph. The plurality of signals includes engagement signals representing user engagement data associated with the messages of the conversation graph, including engagement of users following users of the client application in a connection graph. The plurality of signals includes historical aggregated signals including engagement data associated with users of the 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 are obtained from one or more data services executing on the messaging platform. The method obtains training data from a client event log in which the messaging platform stores information received from the client application and an injection log in which information from a timeline manager executing on the messaging platform is stored. and said messaging platform training said predictive model based on a machine learning algorithm input with said training data.

一態様によれば、予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのシステムは、メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて会話グラフを生成するように構成されている会話グラフマネージャであって、前記会話グラフは会話のメッセージのデータ構造を含む、会話グラフマネージャと、ネットワークを通じてクライアントアプリケーション上のユーザのタイムラインにメッセージのストリームを提供するように構成されているタイムラインマネージャであって、前記ネットワークを通じて、会話閲覧リクエストを前記クライアントアプリケーションから受信するように構成されている、タイムラインマネージャと、前記会話閲覧リクエストに応答して、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定するように構成されているエンゲージメント予測器と、を備える。前記エンゲージメント予測器は、前記メッセージングプラットホームに記憶されている1つまたは複数のデータサービスから前記予測モデルに関連性のある複数の信号を取得するように構成されており、前記複数の予測結果を決定するように前記複数の信号を前記予測モデルに入力するように構成されている。前記システムは、それぞれのメッセージについての前記予測結果を用いて、前記複数のメッセージの各々についてエンゲージメント値を計算するように構成されているエンゲージメントスコアラを備え、前記タイムラインマネージャは、前記エンゲージメント値を用いて前記複数のメッセージをランク付けし、前記ランクに従って前記タイムラインにおいてレンダリングされる前記複数のメッセージの少なくともサブセットを前記ネットワークを通じて提供するように構成されている。さらなる態様によれば、対応する方法および対応する命令を記憶する非一時的なコンピュータ可読媒体が提供されてよい。 According to one aspect, a system for ranking messages of a conversation graph in a messaging platform using prediction results is configured to generate a conversation graph based on reply structures of messages exchanged in the messaging platform. a conversation graph manager, said conversation graph including a data structure of messages of a conversation; a timeline manager configured to receive, over the network, a request to view a conversation from the client application; and an engagement predictor configured to determine a plurality of predicted outcomes for each of the plurality of messages. The engagement predictor configured to obtain a plurality of signals relevant to the predictive model from one or more data services stored on the messaging platform to determine the plurality of prediction outcomes. configured to input the plurality of signals to the predictive model so as to The system comprises an engagement scorer configured to calculate an engagement value for each of the plurality of messages using the predicted results for each message, the timeline manager using the engagement value ranks the plurality of messages by a method and provides over the network at least a subset of the plurality of messages rendered in the timeline according to the ranking. According to further aspects, a non-transitory computer-readable medium storing corresponding methods and corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記複数の信号は、前記会話グラフに関連するデータ構造関連信号を含む。前記エンゲージメント予測器は、第1のデータサービスから1つまたは複数の第1の信号を取得し、第2のデータサービスから1つまたは複数の第2の信号を取得するように構成されている。前記複数の信号は、1つ以上の健康関連信号、エンゲージメント信号、ソーシャルグラフ信号、履歴集約信号、またはコンテンツ関連信号を含む。前記予測モデルは、相互エンゲージメントモデル、正のエンゲージメントモデル、および負のエンゲージメントモデルを含み、前記エンゲージメント予測器は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率をそれぞれ取得するように、前記信号を前記相互エンゲージメントモデル、前記正のエンゲージメントモデル、および前記負のエンゲージメントモデルに入力するように構成されている。前記システムは、訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練するように構成されている予測モデルトレーナであって、訓練された前記予測モデルを前記予測マネージャに対し提供するように構成されている、予測モデルトレーナをさらに備えてよい。前記複数の信号は、前記クライアントアプリケーションによって生成された信号および前記メッセージングプラットホームによって生成された信号を含む。前記複数の信号は類似性信号を含む。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The plurality of signals includes data structure related signals associated with the conversation graph. The engagement predictor is configured to obtain one or more first signals from a first data service and one or more second signals from a second data service. The plurality of signals includes one or more of health-related signals, engagement signals, social graph signals, history aggregation signals, or content-related signals. The prediction model includes a mutual engagement model, a positive engagement model, and a negative engagement model, and the engagement predictor obtains mutual engagement probability, positive engagement probability, and negative engagement probability, respectively. configured to input signals into the mutual engagement model, the positive engagement model and the negative engagement model. The system is a predictive model trainer configured to periodically train the predictive model based on one or more machine learning algorithms input with training data, the trained predictive model being: A predictive model trainer configured to provide to the predictive manager may further comprise. The plurality of signals includes signals generated by the client application and signals generated by the messaging platform. The plurality of signals includes similarity signals.

一態様によれば、実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによる実行時、前記1つ以上のプロセッサに、ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージについての会話閲覧リクエストを受信する工程であって、前記会話グラフは会話のメッセージのデータ構造を含む、工程と、前記会話グラフからメッセージの候補のサブセットを選択する工程と、予測モデルを用いて前記候補のサブセットのメッセージごとに複数の予測結果を決定する工程であって、前記会話グラフに関連するデータ構造関連信号を含む複数の信号を取得する工程と、前記複数の予測結果を決定するように前記複数の信号を前記予測モデルに入力する工程と、を含む工程と、前記予測結果を用いて前記候補のサブセットのメッセージごとにエンゲージメント値を計算する工程と、前記エンゲージメント値を用いて前記複数のメッセージをランク付けする工程と、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくともサブセットを送信する工程と、を行わせるように構成されている、非一時的なコンピュータ可読媒体。さらなる態様によれば、対応するシステムおよび方法が提供されてよい。 According to one aspect, a non-transitory computer-readable medium storing executable instructions that, when executed by one or more processors, communicates with the one or more processors over a network to a messaging platform. selecting a candidate subset of messages from the conversation graph; determining a plurality of predicted outcomes for each message of said candidate subset using a prediction model, obtaining a plurality of signals including data structure related signals associated with said conversation graph; inputting the plurality of signals into the prediction model to determine a plurality of prediction outcomes; and using the prediction outcomes to calculate an engagement value for each message of the candidate subset; ranking the plurality of messages using the engagement value; and sending at least a subset of the plurality of messages rendered in a client application according to the ranking. Temporary Computer Readable Medium. According to further aspects, corresponding systems and methods may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記動作は、前記クライアントアプリケーションから受信された情報を記憶するクライアントイベントログと、前記メッセージングプラットホームにおいて実行するタイムラインマネージャからの情報を記憶するインジェクションログと、から訓練データを取得する工程と、前記訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程と、をさらに備えてよい。前記複数の信号は、1つ以上の健康関連信号、エンゲージメント信号、ソーシャルグラフ信号、履歴集約信号、またはコンテンツ関連信号を含む。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The actions include obtaining 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; training the predictive model based on a data-inputted machine learning algorithm. The plurality of signals includes one or more of health-related signals, engagement signals, social graph signals, history aggregation signals, or content-related signals.

一態様によれば、メッセージングプラットホームにおける会話グラフのメッセージをランク付けするための方法であって、メッセージングプラットホームが、会話グラフのメッセージを、前記メッセージのコンテンツ品質に基づいて複数のセクションへと分類する工程であって、前記複数のセクションは、第1のセクションおよび第2のセクションを含む、分類工程を備える。前記第1のセクションは、前記第2のセクションのメッセージよりも高品質であると決定された前記会話グラフからのメッセージを有する。前記方法は、前記メッセージングプラットホームが、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する工程と、前記メッセージングプラットホームが、前記第1のセクションの前記メッセージについての前記予測結果に基づいて前記第1のセクションの前記メッセージをランク付けする工程と、前記メッセージングプラットホームが、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第1のセクションの前記メッセージの少なくともサブセットを送信する工程と、を備える。さらなる態様によれば、対応するシステムおよび対応する命令を記憶する非一時的なコンピュータ可読媒体が提供されてよい。 According to one aspect, a method for ranking conversation graph messages in a messaging platform, wherein the messaging platform classifies conversation graph messages into a plurality of sections based on content quality of said messages. and the plurality of sections comprises a sorting step 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 method comprises the steps of: the messaging platform determining a plurality of predicted outcomes for each of the plurality of messages of the conversation graph using a predictive model; ranking the messages of the first section based on prediction results; and the messaging platform sending at least a subset of the messages of the first section rendered in a client application according to the ranking. , provided. According to further aspects, a non-transitory computer-readable medium storing a corresponding system and corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記方法は、前記メッセージングプラットホームが、前記第2のセクションの前記メッセージについての前記複数の予測結果に基づいて前記第2のセクションの前記メッセージをランク付けする工程を備える。いくつかの例では、前記方法は、前記メッセージングプラットホームが、前記会話グラフの追加のメッセージを前記クライアントアプリケーションにおいてレンダリングするリクエストを受信する工程と、前記メッセージングプラットホームが、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第2のセクションの前記メッセージの少なくともサブセットを送信する工程と、を備える。前記分類工程は、前記会話グラフのメッセージのメッセージ識別子を受信する工程と、分類モデルを用いて、前記メッセージが前記第1のセクションに対応するコンテンツ品質を有すると決定する工程と、を含んでよい。前記方法は、前記メッセージを含む前記会話グラフのブランチを前記第1のセクションに割り当てる工程を備えてよい。前記方法は、それぞれのメッセージの前記複数の予測結果を用いて、前記会話グラフのメッセージごとにエンゲージメント値を計算する工程を備え、前記第1の品質セクションの前記メッセージは、前記第1の品質セクションの前記メッセージのエンゲージメント値に従ってランク付けされる。前記予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含む。前記方法は、前記メッセージングプラットホームが、前記メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて前記会話グラフを生成する工程であって、前記会話グラフは会話に関連するメッセージのツリーデータ構造を含む、工程をさらに備えてよい。前記複数の予測モデルは、相互エンゲージメントモデル、正のエンゲージメントモデル、および負のエンゲージメントモデルを含み、前記相互エンゲージメントモデル、前記正のエンゲージメントモデル、および前記負のエンゲージメントモデルのうちの1つ以上はニューラルネットワークを含む。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The method comprises the messaging platform ranking the messages of the second section based on the plurality of prediction results for the messages of the second section. In some examples, the method comprises the steps of: the messaging platform receiving a request to render additional messages of the conversation graph in the client application; and the messaging platform rendered in the client application according to the rank. and sending at least a subset of said messages of said second section. The classifying step may include receiving a message identifier for a message of the conversation graph and using a classification model to determine that the message has a content quality corresponding to the first section. . The method may comprise assigning a branch of the conversation graph containing the message to the first section. The method comprises calculating an engagement value for each message of the conversation graph using the plurality of prediction results for each message, wherein the messages of the first quality section are are ranked according to the engagement value of said messages in . The prediction results include mutual engagement probabilities, positive engagement probabilities, and negative engagement probabilities. The method comprises the steps of: the messaging platform generating the conversation graph based on a reply structure of messages exchanged on the messaging platform, the conversation graph comprising a tree data structure of messages associated with a conversation; Further steps may be included. The plurality of predictive models includes a mutual engagement model, a positive engagement model, and a negative engagement model, wherein one or more of the mutual engagement model, the positive engagement model, and the negative engagement model are neural networks. including.

一態様によれば、メッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのシステムは、メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて会話グラフを生成するように構成されている会話グラフマネージャであって、前記会話グラフは会話のメッセージのデータ構造を含む、会話グラフマネージャと、ネットワークを通じて、クライアントアプリケーション上のユーザのタイムラインにメッセージのストリームを提供するように構成されているタイムラインマネージャであって、会話閲覧リクエストをネットワークを通じて前記クライアントアプリケーションから受信するように構成されている、タイムラインマネージャと、前記会話グラフの前記メッセージを、前記メッセージのコンテンツ品質に基づいて複数のセクションへと分類するように構成されているコンテンツ品質分類器であって、前記複数のセクションは第1のセクションおよび第2のセクションを含む、コンテンツ品質分類器と、を備える。前記第1のセクションは、前記第2のセクションのメッセージよりも高品質であると決定された前記会話グラフからのメッセージを有する。前記システムは、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定するように構成されているエンゲージメント予測器と、それぞれのメッセージについての前記複数の予測結果を用いて前記複数のメッセージの各々についてエンゲージメント値を計算するように構成されているエンゲージメントスコアラと、を備える。前記タイムラインマネージャは、前記第1のセクションのエンゲージメント値を用いて前記第1のセクションの前記メッセージをランク付けし、前記ランクに従って前記タイムラインにおいてレンダリングされる前記第1のセクションの前記メッセージの少なくともサブセットを、前記ネットワークを通じて提供するように構成されている。さらなる態様によれば、対応する方法および対応する命令を記憶する非一時的なコンピュータ可読媒体が提供されてよい。 According to one aspect, a system for ranking messages in a conversation graph in a messaging platform is a conversation graph manager configured to generate a conversation graph based on reply structures of messages exchanged in the messaging platform. a conversation graph manager, wherein the conversation graph includes a data structure of messages of a conversation; and a timeline manager configured to provide a stream of messages to a user's timeline on a client application over a network. a timeline manager configured to receive conversation view requests from the client application over a network; and to classify the messages of the conversation graph into a plurality of sections based on content quality of the messages. 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 system includes an engagement predictor configured to determine a plurality of predicted outcomes for each of a plurality of messages of the conversation graph using a predictive model; and using the plurality of predicted outcomes for each message. and an engagement scorer configured to calculate an engagement value for each of the plurality of messages. The timeline manager ranks the messages of the first section using the engagement value of the first section, and at least of the messages of the first section rendered in the timeline according to the rank. A subset is configured to be provided over the network. According to further aspects, a non-transitory computer-readable medium storing corresponding methods and corresponding instructions may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記エンゲージメント予測器は、前記メッセージングプラットホームに記憶されている1つまたは複数のデータサービスから、前記予測モデルに関連性のある複数の信号を取得するように構成されており、前記複数の予測結果を決定するように、前記複数の信号を前記予測モデルに入力するように構成されている。前記複数の信号は、前記会話グラフに関連するデータ構造関連信号を含む。前記タイムラインマネージャは、前記第2のセクションのエンゲージメント値を用いて前記第2のセクションの前記メッセージを別々にランク付けするように構成されている。前記コンテンツ品質分類器は、前記会話グラフのメッセージのメッセージ識別子を受信するように、また分類モデルを用いて、前記メッセージが前記第1の品質セクションに対応するコンテンツ品質を有することを決定するように構成されている。前記複数の予測結果は相互エンゲージメント確率を含み、前記相互エンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフのそれぞれのメッセージに対するリプライを受信すると予測される確率値を含む。前記システムは、訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練するように構成されている予測モデルトレーナであって、訓練された前記予測モデルを前記予測マネージャに対し提供するように構成されている、予測モデルトレーナをさらに備えてよい。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The engagement predictor is configured to obtain a plurality of signals relevant to the predictive model from one or more data services stored on the messaging platform, and extracts the plurality of prediction results. configured to input the plurality of signals to the predictive model to determine. The plurality of signals includes data structure related signals associated with the conversation graph. The timeline manager is configured to separately rank the messages of the second section using the engagement value of the second section. The content quality classifier receives a message identifier for a message of the conversation graph and uses a classification model to determine that the message has a content quality corresponding to the first quality section. It is configured. The plurality of prediction results includes mutual engagement probabilities, wherein the mutual engagement probabilities include probability values that the messaging platform is expected to receive a reply to each message of the conversation graph. The system is a predictive model trainer configured to periodically train the predictive model based on one or more machine learning algorithms input with training data, the trained predictive model being: A predictive model trainer configured to provide to the predictive manager may further comprise.

一態様によれば、実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによる実行時、前記1つ以上のプロセッサに、分類モデルを用いて、会話グラフのメッセージを前記メッセージのコンテンツ品質に基づいて複数のセクションへと分類する工程であって、前記複数のセクションは第1のセクションおよび第2のセクションを含み、前記第1のセクションは前記第2のセクションのメッセージよりも高品質であると決定された前記会話グラフからのメッセージを有する、工程と、1つまたは複数の予測モデルを用いて、前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する工程であって、前記複数の予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含む、工程と、前記第1のセクションの前記メッセージを前記第1のセクションの前記メッセージについての前記複数の予測結果に基づいてランク付けする工程と、前記第2のセクションの前記メッセージを前記第2のセクションの前記メッセージについての前記複数の予測結果に基づいてランク付けする工程と、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第1の品質セクションの前記メッセージの少なくともサブセットを送信する工程と、を行わせるように構成されている、非一時的なコンピュータ可読媒体。さらなる態様によれば、対応するシステムおよび方法が提供されてよい。 According to one aspect, a non-transitory computer-readable medium storing executable instructions that, when executed by one or more processors, cause the one or more processors to use a classification model to: , classifying messages of a conversation graph into a plurality of sections based on content quality of said messages, said plurality of sections including a first section and a second section, said first section said for each of the plurality of messages of the conversation graph using one or more predictive models, having messages from the conversation graph determined to be of higher quality than the messages of the second section; wherein the plurality of prediction results includes a mutual engagement probability, a positive engagement probability, and a negative engagement probability; and ranking the messages in the second section based on the plurality of prediction results for the messages in the second section. and transmitting at least a subset of said messages of said first quality section rendered in a client application according to said rank. According to further aspects, corresponding systems and methods may be provided.

いくつかの態様によれば、方法、システム、および/または非一時的なコンピュータ可読媒体は、上記/下記の以下の特徴のうちの1つまたは複数(またはそれらの任意の組合せ)を含んでよい。前記動作は、前記クライアントアプリケーションから受信された情報を記憶するクライアントイベントログと、メッセージングプラットホームにおいて実行するタイムラインマネージャからの情報を記憶するインジェクションログと、から訓練データを取得する工程と、前記訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程と、を備える。前記動作は、前記会話グラフの第1のメッセージのメッセージ識別子を受信する工程と、前記分類モデルを用いて、前記第1のメッセージが前記第1のセクションに対応するコンテンツ品質を有すると決定する工程と、前記会話グラフの第2のメッセージのメッセージ識別子を受信する工程と、前記分類モデルを用いて、前記第2のメッセージが前記第2のセクションに対応するコンテンツ品質を有すると決定する工程と、を備えてよい。前記動作は、前記会話グラフの追加のメッセージを前記クライアントアプリケーションにおいてレンダリングするリクエストを受信する工程と、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第2のセクションの前記メッセージの少なくともサブセットを送信する工程と、を備えてよい。これらのおよび他の特徴は、詳細な説明においてさらに説明される。 According to some aspects, methods, systems, and/or non-transitory computer-readable media may include one or more (or any combination thereof) of the following features above/below: . The actions include obtaining 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 training the predictive model based on a machine learning algorithm input by . The act comprises receiving a message identifier for a first message of the conversation graph and using the classification model to determine that the first message has a content quality corresponding to the first section. and receiving a message identifier of a second message of the conversation graph, and using the classification model to determine that the second message has a content quality corresponding to the second section; may be provided. The act comprises receiving a request to render additional messages of the conversation graph in the client application and sending at least a subset of the messages of the second section to be rendered in the client application according to the rank. , may be provided. These and other features are explained further in the detailed description.

一態様に係る、予測モデルからの予測結果を用いて会話グラフのメッセージをランク付けするためのメッセージングシステムを示す図。1 illustrates a messaging system for ranking messages in a conversation graph using predictive results from predictive models, according to one aspect. FIG. 一態様に係る、メッセージングシステムの候補メッセージセレクタを示す図。1 illustrates a candidate message selector of a messaging system, according to one aspect; FIG. 一態様に係る、予測結果を決定するために用いられる信号の例を示す図。FIG. 4 illustrates an example of signals used to determine a prediction result, according to one aspect. 一態様に係る、メッセージングシステムの予測マネージャを示す図。1 illustrates a prediction manager of a messaging system, according to one aspect; FIG. 一態様に係る、予測モデル用の訓練データを生成する一例を示す図。FIG. 4 illustrates an example of generating training data for a predictive model, according to one aspect. 一態様に係る、コンテンツ品質分類器を含む2レベルランキング機構の一例を示す図。1 illustrates an example of a two-level ranking mechanism including a content quality classifier, according to one aspect; FIG. 一態様に係る、ニューラルネットワークとしての予測モデルの一例を示す図。FIG. 3 illustrates an example predictive model as a neural network, according to one aspect. 一態様に係る、メッセージングシステムの例示的な動作を示すフローチャート。4 is a flowchart illustrating exemplary operation of a messaging system, according to one aspect. 一態様に係る、メッセージングシステムの例示的な動作を示すフローチャート。4 is a flowchart illustrating exemplary operation of a messaging system, according to one aspect. 一態様に係る、メッセージングシステムの例示的な動作を示すフローチャート。4 is a flowchart illustrating exemplary operation of a messaging system, according to one aspect.

図1A~図1Eは、一態様に係る予測モデル112からの予測結果118を用いる会話グラフ126のメッセージをランク付けするためのメッセージングシステム100を示す。メッセージングシステム100は、一態様では、サーバコンピュータ102によって実行可能なメッセージングプラットホーム104と、コンピューティングデバイス152によって実行可能なクライアントアプリケーション154と、を備える。クライアントアプリケーション154は、ネットワーク150を通じて、メッセージングプラットホーム104と通信し、メッセージングプラットホーム104の他のユーザに(および他のユーザから)メッセージを送信(および受信)する。 1A-1E illustrate a messaging system 100 for ranking messages in a conversation graph 126 using predictive results 118 from predictive models 112 according to one aspect. Messaging system 100 , in one aspect, comprises a messaging platform 104 executable by server computer 102 and a client application 154 executable by computing device 152 . Client application 154 communicates with messaging platform 104 over network 150 to send (and receive) messages to (and from) other users of messaging platform 104 .

クライアントアプリケーション154は、ソーシャルメディアメッセージングアプリケーションであってよい。ソーシャルメディアメッセージングアプリケーションでは、ユーザがメッセージを投稿し、メッセージと対話する。いくつかの例では、クライアントアプリケーション154は、コンピューティングデバイス152のオペレーティングシステム上にて実行されるネイティブアプリケーションであり、またはコンピューティングデバイス152のブラウザベースのアプリケーションと連携して、サーバコンピュータ102(または他のサーバ)上にて実行される、ウェブベースのアプリケーションであってよい。コンピューティングデバイス152は、クライアントアプリケーション154とメッセージングプラットホーム104とが、互いに通信することを可能にするように、任意の種類のネットワーク接続および/またはアプリケーションプログラミングインタフェース(API)を用いて、ネットワーク150を介して、メッセージングプラットホーム104に対してアクセスしてよい。 Client application 154 may be a social media messaging application. Social media messaging applications allow users to post and interact with messages. In some examples, client application 154 is a native application that runs on the operating system of computing device 152, or in conjunction with a browser-based application of computing device 152, to server computer 102 (or other It may be a web-based application running on a server of Computing device 152 may be connected via network 150 using any type of network connection and/or application programming interface (API) to enable client application 154 and messaging platform 104 to communicate with each other. to access messaging platform 104 .

コンピューティングデバイス152は、モバイルコンピューティングデバイス(例えば、スマートフォン、PDA、タブレット、もしくはラップトップコンピュータ)、または非モバイルコンピューティングデバイス(例えば、デスクトップコンピューティングデバイス)であってよい。コンピューティングデバイス152は、例えば、コンピューティングデバイス152がそれを通じてセルラネットワークと通信することができる、モバイルネットワークインターフェース、コンピューティングデバイス152がそれを用いてWi-Fiベースの局と通信することができる、Wi-Fiネットワークインターフェース、コンピューティングデバイス152がそれを用いて他のBluetooth(登録商標)デバイスと通信することができる、Bluetoothネットワークインターフェース、および/またはコンピューティングデバイス152がネットワーク150に対してアクセスすることを可能にする、イーサネット(登録商標)接続もしくは他の有線接続などの、様々なネットワークインターフェース回路も備える。 Computing device 152 may be a mobile computing device (eg, smart phone, PDA, tablet, or laptop computer) or a non-mobile computing device (eg, desktop computing device). The computing device 152 has, for example, a mobile network interface through which the computing device 152 can communicate with a cellular network, a Wi-Fi based station with which the computing device 152 can communicate; A Wi-Fi network interface, a Bluetooth network interface with which computing device 152 can communicate with other Bluetooth® devices, and/or access by computing device 152 to network 150 It also includes various network interface circuitry, such as an Ethernet connection or other wired connection, that allows for

サーバコンピュータ102は、単一のコンピューティングデバイスであってよく、またはワークロードおよびリソースを共有するために通信可能に接続された、2つ以上の分散コンピューティングデバイスの表現であってよい。サーバコンピュータ102は、1つ以上のプロセッサと、1つ以上のプロセッサによって実行されたときに、1つ以上のプロセッサに、本明細書において説明される動作を行わせる、実行可能な命令を記憶する、非一時的コンピュータ可読媒体とを備えてよい。 Server computer 102 may be a single computing device or a representation of two or more distributed computing devices communicatively coupled to share workload and resources. The server computer 102 stores one or more processors and executable instructions that, when executed by the one or more processors, cause the one or more processors to perform the operations described herein. , and a non-transitory computer-readable medium.

メッセージングプラットホーム104は、ユーザデバイス(そのうちの1つはコンピューティングデバイス152として示されている)間の通信(例えば、リアルタイム通信)を行うための、コンピューティングプラットフォームである。メッセージングプラットホーム104は、個人、企業、および/またはエンティティの何百万ものアカウント141(例えば、スードニムアカウント、ノベルティアカウントなど)を記憶してよい。各アカウント141の1人または複数のユーザは、メッセージングプラットホーム104の内部および/または外部の他のアカウント141に対してメッセージを送信するために、メッセージングプラットホーム104を使用してよい。いくつかの例では、メッセージングプラットホーム104は、ユーザが、「リアルタイム」に通信すること、例えば、最小遅延により他のユーザと会話すること、および同時セッション中に、1人または複数の他のユーザと会話を行うことを可能にしてよい。換言すると、メッセージングプラットホーム104は、ユーザが、メッセージをブロードキャストすることを可能にしてよく、ユーザ間のライブ会話を行うために、妥当な時間フレーム(例えば、2秒未満)内に、1人または複数の他のユーザに対してメッセージを表示してよい。いくつかの例では、メッセージの受信者は、メッセージをブロードキャストしたユーザのアカウントを有する接続グラフ134において、所定のグラフ関連性を有してよい。 Messaging platform 104 is a computing platform for 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 (eg, pseudonym accounts, novelty accounts, etc.) of individuals, businesses, and/or entities. One or more users of each account 141 may use messaging platform 104 to send messages to other accounts 141 internal and/or external to messaging platform 104 . In some examples, messaging platform 104 enables users to communicate in "real time," e.g., converse with other users with minimal delay, and to communicate with one or more other users during concurrent sessions. It may be possible to have a conversation. In other words, messaging platform 104 may allow users to broadcast messages to one or more users within a reasonable time frame (eg, less than two seconds) to conduct live conversations between users. may display messages to other users of In some examples, recipients of a message may have a predetermined graphical relationship in the connection graph 134 with the account of the user who broadcast the message.

接続グラフ134は、メッセージングプラットホーム104内のどのアカウント141が、特定のアカウント141と関連付けられ(例えば、フォローしている、友人である、サブスクライブされているなど)、したがって、特定のアカウント141からメッセージを受信するようにサブスクライブされているかを示す、データ構造を含む。例えば、接続グラフ134は、第1のアカウントを第2のアカウントとリンクさせてよい。これは、第1のアカウントが、第2のアカウントと関連性があることを示す。第2のアカウントのユーザは、第1のアカウントのユーザによってメッセージングプラットホーム104上に投稿されたメッセージを閲覧してよい(および/または、第1のアカウントのユーザは、第2のアカウントのユーザによってメッセージングプラットホーム104上に投稿されたメッセージを閲覧してよい)。関連性は、一方向性(例えば、フォロワ/フォロイ)、および/または双方向性(例えば、友人関係)を含んでよい。メッセージは、特定のメッセージングシステムまたはプロトコルによって制限され得る、様々な長さのいずれかであることが可能である。 The connection graph 134 indicates which accounts 141 within the messaging platform 104 are associated with (e.g., followed, friends with, subscribed to, etc.) a particular account 141 and therefore messages from a particular account 141 . Contains a data structure that indicates whether you are subscribed to receive For example, connection graph 134 may link a first account with a second account. This indicates that the first account is related to the second account. The second account user may view messages posted on messaging platform 104 by the first account user (and/or the first account user may view messages posted by the second account user). may view messages posted on the platform 104). Relationships may include unidirectional (eg, follower/follower) and/or bidirectional (eg, friendship). Messages can be any of a variety of lengths, which may be limited by a particular messaging system or protocol.

いくつかの例では、特定のユーザによって書かれたメッセージを閲覧することに関心があるユーザは、特定のユーザをフォローすることを選ぶことが可能である。第1のユーザは、第1のユーザがフォローしたいユーザとして、第2のユーザを識別することによって、第2のユーザをフォローすることが可能である。第1のユーザが、第2のユーザをフォローしたいことを示した後、接続グラフ134は、関連性を反映するように更新され、第1のユーザには、第2のユーザによって書かれたメッセージが提供される。ユーザは、複数のユーザをフォローすることを選ぶことが可能である。ユーザは、メッセージに応答することも可能であり、それによって、互いに会話をすることが可能である。これに加えて、ユーザは、メッセージを自身のフォロワと共有すること、またはエンゲージメントが自身のフォロワと共有されているメッセージをお気に入りに入れる(もしくは「いいね」する)ことなど、メッセージにエンゲージしてよい。 In some examples, a user interested in viewing messages written by a particular user may choose to follow the particular user. A first user can follow a second user by identifying the second user as a user that the first user wishes to follow. After the first user indicates that they want to follow the second user, the connection graph 134 is updated to reflect the relevance and the first user receives messages written by the second user. is provided. A user can choose to follow multiple users. Users can also respond to messages, thereby allowing them to converse with each other. In addition to this, users can engage with messages, such as sharing messages with their followers, or favouriting (or "liking") messages whose engagement is shared with their followers. good.

メッセージングプラットホーム104にて交換されたメッセージは、メッセージリポジトリ138に記憶される。メッセージリポジトリ138は、記録を記憶する1つまたは複数のテーブルを備えてよい。いくつかの例では、各記録は、別々に記憶されたメッセージに対応する。例えば、ある記録は、メッセージングプラットホーム104に投稿されたメッセージについてのメッセージ識別子、メッセージの作成者を識別する作成者識別子(例えば、@tristan)、メッセージコンテンツ(例えば、テキスト、画像、ビデオ、および/またはウェブコンテンツのURL)、メッセージの本文において識別されている1つまたは複数の参加者アカウント識別子、および/またはメッセージをリプライされる親メッセージ(メッセージがあるメッセージに対するリプライである場合)を識別するリプライ情報を識別してよい。 Messages exchanged on messaging platform 104 are stored in message repository 138 . Message repository 138 may comprise one or more tables that store records. In some examples, each record corresponds to a separately stored message. For example, a record may include a message identifier for a message posted to messaging platform 104, an author identifier identifying the author of the message (e.g., @tristan), message content (e.g., text, image, video, and/or web content URL), 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 is replied (if the message is a reply to a message) can be identified.

メッセージングプラットホーム104は、会話グラフ126を生成する会話グラフマネージャ136と、メッセージのタイムライン156をクライアントアプリケーション154へとインジェクションするタイムラインマネージャ142とを備える。メッセージングプラットホーム104は、会話グラフ126からメッセージの候補サブセット133を選択する候補メッセージセレクタ108を備える。メッセージングプラットホーム104は、予測に関連する信号106を取得するとともに、予測結果118を決定するようにその信号106を1つまたは複数の予測モデル112へと入力する、予測マネージャ110を備える。いくつかの例では、予測マネージャ110は、予測結果118に基づいてエンゲージメント値116を計算する。タイムラインマネージャ142は、エンゲージメント値116を用いて会話グラフ126のメッセージをランク付け(および選択)し、メッセージのランク付けされたリスト158をクライアントアプリケーション154に提供する。メッセージングプラットホーム104は、予測データ148を取得し、トレーニングデータ148により入力された1つまたは複数の機械学習アルゴリズム149を用いて予測モデル112を訓練する、予測モデルトレーナ140を備える。 The messaging platform 104 comprises a conversation graph manager 136 that generates a conversation graph 126 and a timeline manager 142 that injects a timeline 156 of messages into the client application 154 . Messaging platform 104 includes candidate message selector 108 that selects candidate subset 133 of messages from conversation graph 126 . The messaging platform 104 comprises a prediction manager 110 that obtains signals 106 related to predictions and inputs the signals 106 to one or more prediction models 112 to determine prediction results 118 . In some examples, prediction manager 110 calculates engagement value 116 based on prediction results 118 . The timeline manager 142 ranks (and selects) messages in the conversation graph 126 using the engagement values 116 and provides a ranked list 158 of messages to the client application 154 . Messaging platform 104 includes predictive model trainer 140 that obtains predictive data 148 and trains predictive model 112 using one or more machine learning algorithms 149 input by training data 148 .

さらに詳細には、会話グラフマネージャ136は、メッセージがメッセージングプラットホーム104にて交換されると、1つまたは複数の会話グラフ126を生成(および更新)する。いくつかの例では、会話グラフ126は、メッセージングプラットホーム104に関連付けられているデータストレージデバイスに記憶される。いくつかの例では、会話グラフ126は、タイムラインマネージャ142にて記憶される。メッセージングプラットホーム104は、複数の会話グラフ126(例えば、数百、数千、または何百万もの会話フラフ126)を記憶してよい。各会話グラフ126は、オリジナルのリプライではないメッセージ(例えば、ルートメッセージ)に対するリプライの構造を表してよい。例えば、ユーザがオリジナルのリプライではないメッセージをメッセージングプラットホーム104に生成し投稿するたびに、潜在的な新たな会話が開始され得る。他者は、次いで、オリジナルまたは「ルート」メッセージに対してリプライし、自身のリプライブランチを生成することが可能である。時間とともに、オリジナルのリプライではないメッセージに対するリプライ(および/または、オリジナルのリプライではないメッセージに対するリプライに対するリプライ)の数は、閾値レベルを超えると、会話グラフマネージャ136は、会話識別子を会話グラフ126に割り当ててよく、会話識別子は、会話グラフ126を一意に識別してよい。いくつかの例では、会話グラフマネージャ136は、会話識別子を、リプライを有する各メッセージに割り当ててよい。例えば、メッセージングプラットホームがメッセージAを有し、誰かがメッセージBによりメッセージAに対し反応した場合、メッセージAには、会話を識別するのに用いられることが可能である会話識別子が割り当てられる。これによって、以下に詳細に説明されるように、会話グラフ126を生じる。いくつかの例では、メッセージに対するリプライがある場合、会話が存在する。 More specifically, conversation graph manager 136 generates (and updates) one or more conversation graphs 126 as messages are exchanged on messaging platform 104 . In some examples, conversation graph 126 is stored in a data storage device associated with messaging platform 104 . In some examples, conversation graph 126 is stored at timeline manager 142 . The messaging platform 104 may store multiple conversation graphs 126 (eg, hundreds, thousands, or millions of conversation graphs 126). Each conversation graph 126 may represent the structure of replies to messages that were not original replies (eg, root messages). For example, each time a user creates and posts a message to messaging platform 104 that is not an original reply, a potential new conversation can be started. Others can then reply to the original or "root" message, generating their own reply branches. Over time, when the number of replies to messages that are not original replies (and/or replies to replies to messages that are not original replies) exceeds a threshold level, conversation graph manager 136 adds conversation identifiers to conversation graph 126. A conversation identifier may be assigned and may uniquely identify the conversation graph 126 . In some examples, conversation graph manager 136 may assign a conversation identifier to each message that has a reply. For example, if a messaging platform has message A and someone responds to message A with message B, message A is assigned a conversation identifier that can be used to identify the conversation. This yields conversation graph 126, as described in detail below. In some instances, a conversation exists if there is a reply to a message.

会話グラフ126は、会話におけるメッセージを表す階層データ構造であってよい。いくつかの例では、会話グラフ126は、非線形または線形データ構造を含む。いくつかの例では、会話グラフ126は、ツリーデータ構造を含む。会話グラフ126は、メッセージを表すノード128(または頂点)と、ノード128間のリンクを表すエッジ130(または弧)を備えてよい。会話グラフ126は、各ノード128におけるそれぞれのメッセージのメッセージ識別子を記憶してよい。いくつかの例では、会話グラフ126は、各ノード128におけるそれぞれのメッセージの作成者のユーザ識別子を記憶する。会話グラフ126は、ノード128の1つまたは複数のブランチ132を定めてよい。いくつかの例では、ブランチ132は、1つまたは複数のノード128を含む会話グラフ126の一部(例えば、部分ツリー)である。いくつかの例では、ブランチ132は、エッジ130によって接続されている2つ以上のノード128であってよい。ここで、ノード128のうちの1つはリーフノードである。いくつかの例では、ブランチ132は、単一線において接続されているメッセージ(例えば、リーフメッセージ、そのリーフメッセージに対し接続されている第1の親メッセージ、その第1の親メッセージに対し接続されている第2の親メッセージなど、親メッセージが別の親メッセージを有しなくなるまで)として定められてよい。 Conversation graph 126 may be a hierarchical data structure that represents the messages in a conversation. In some examples, conversation graph 126 includes a non-linear or linear data structure. In some examples, conversation graph 126 includes a tree data structure. Conversation graph 126 may comprise nodes 128 (or vertices) representing messages and edges 130 (or arcs) representing links between nodes 128 . Conversation graph 126 may store a message identifier for each message at each node 128 . In some examples, conversation graph 126 stores the user identifier of the creator of each message at each node 128 . Conversation graph 126 may define one or more branches 132 of nodes 128 . In some examples, branch 132 is a portion (eg, subtree) of conversation graph 126 that includes one or more nodes 128 . In some examples, branch 132 may be two or more nodes 128 connected by edge 130 . Here, one of the nodes 128 is a leaf node. In some examples, branch 132 may be a message connected in a single line (e.g., a leaf message, a first parent message connected to that leaf message, a first parent message connected to that first parent message). (until the parent message does not have another parent message, such as a second parent message that has another parent message).

用語「ノード」は、会話グラフ126内のメッセージとして参照されてよく、用語「メッセージ」は、そのメッセージが会話グラフ126の一部として含まれるノード128として参照されてよい。特定のノード128は、エッジ130を介して別のノード128にリンクされてよく、エッジ130の方向は親メッセージを識別する。ノード128は、ルートメッセージ、ルートメッセージに対するリプライにおけるメッセージ、ルートメッセージに対するリプライにおけるメッセージに対するリプライにおけるメッセージなどを表してよい。 The term “node” may be referred to as a message within conversation graph 126 and the term “message” may be referred to as node 128 whose message is included as part of conversation graph 126 . A particular node 128 may be linked to another node 128 via an edge 130, the direction of edge 130 identifying the parent message. Node 128 may represent a root message, a message in reply to a root message, a message in reply to a message in reply to a root message, and so on.

会話グラフマネージャ136は、メッセージのリプライ構造に基づいて会話グラフ126を生成してよい。リプライ構造は、メッセージコンテンツ内から識別された各メッセージおよび/またはリプライ情報に関連付けられているメタデータに基づいて識別されてよい。いくつかの例では、リプライ構造は、メッセージを構成するようにクライアントアプリケーション154から受信された各メッセージに関連付けられているメタデータに基づいて識別される。例えば、ユーザは、クライアントアプリケーション154のユーザインタフェースに表示されているメッセージの下に表示されているリプライリンクをクリックしてよい。クライアントアプリケーション154は、次いで、リプライメッセージを下書きするためのメッセージ構成箱を表示してよい。クライアントアプリケーション154は、リプライメッセージとのリプライ関係(例えば、親メッセージのメッセージ識別子)を含むメタデータを発行してよい。いくつかの例では、リプライ関係は、メッセージコンテンツ内のユーザによって明示的に定められる(例えば、メッセージの本文内のユーザアカウント141(例えば、@tristan)を識別する)。この例では、リプライ構造は、メッセージの本文内に言及された1つまたは複数のアカウント識別子および/またはメッセージ識別子を識別することによって識別されてよい。 The conversation graph manager 136 may generate the conversation graph 126 based on the message's reply structure. 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, reply structures are identified based on metadata associated with each message received from client application 154 to compose the message. For example, the user may click on a reply link displayed below a message displayed on the user interface of client application 154 . Client application 154 may then display a message composition box for drafting a reply message. Client application 154 may publish metadata that includes the reply relationship with the reply message (eg, the message identifier of the parent message). In some examples, the reply relationship is explicitly defined by the user in the message content (eg, identifying user account 141 (eg, @tristan) in 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.

タイムラインマネージャ142は、クライアントアプリケーション154がソーシャルコンテンツのタイムライン156を、クライアントアプリケーション154のユーザインタフェースにおいてレンダリングし表示することを可能にするように、ネットワーク150を通じてデジタル情報を送信してよい。タイムライン156は、メッセージ(例えば、メッセージA、メッセージB、メッセージC)のストリームを含む。いくつかの例では、メッセージのストリームは、逆時系列順に編成される。いくつかの例では、メッセージのストリームは、時系列順に編成される。いくつかの例では、タイムライン156は、特定のユーザに特有のソーシャルコンテンツのタイムラインである。いくつかの例では、タイムライン156は、メッセージングプラットホーム104によってキュレーションされた(例えば、生成され組み立てられた)ストリームを含む。いくつかの例では、タイムライン156は、メッセージングプラットホーム104における検索から得られたメッセージのリストを含む。いくつかの例では、タイムライン156は、クライアントアプリケーション154のユーザのアカウント141と関係しているアカウント141からユーザによって投稿されたメッセージのストリーム(例えば、ユーザがメッセージングプラットホーム104においてフォローすることを選択したアカウント141からのメッセージのストリーム)を含む。いくつかの例では、メッセージのストリームは、プロモーションされたメッセージまたは再共有されたメッセージを含む。 Timeline manager 142 may transmit digital information over network 150 to enable client application 154 to render and display social content timeline 156 in the user interface of client application 154 . Timeline 156 includes a stream of messages (eg, message A, message B, message C). In some examples, the stream of messages is organized in reverse chronological order. In some examples, the stream of messages is organized in chronological order. In some examples, timeline 156 is a timeline of social content specific to a particular user. In some examples, timeline 156 includes streams curated (eg, generated and assembled) by messaging platform 104 . In some examples, timeline 156 includes a list of messages resulting from searches on messaging platform 104 . In some examples, the timeline 156 is a stream of messages posted by the user from the account 141 associated with the user's account 141 of the client application 154 (e.g., messages the user has chosen to follow on the messaging platform 104). stream of messages from account 141). In some examples, the stream of messages includes promoted or re-shared messages.

タイムライン156におけるメッセージを閲覧する時、ユーザは、タイムライン156からメッセージのうちの1つ(例えば、メッセージB)を選択してよい。これによって、クライアントアプリケーション154に、ネットワーク150を通じて、メッセージングに対し、会話閲覧リクエスト121を生成し送信させてよい。いくつかの例では、選択されたメッセージ(例えば、メッセージB)は、コンテンツメッセージ、または会話グラフ126内のエントリポイントまたは参照のポイントとして機能し得るフォーカルメッセージと呼ばれてよい。会話閲覧リクエスト121は、会話グラフ126からメッセージを取り出すリクエストであってよい。いくつかの例では、会話閲覧リクエスト121は、選択されたメッセージのメッセージ識別子とクライアントアプリケーション154のユーザのユーザ識別子とを含む。いくつかの例では、会話閲覧リクエスト121は、リクエストの時刻、ユーザがオンにしているデバイス、オペレーティングシステム(OS)、および/またはリクエストに関連付けられている他のメタデータを含む。 When viewing messages in timeline 156, a user may select one of the messages from timeline 156 (eg, message B). This may cause client application 154 to generate and send conversation view request 121 for messaging over network 150 . In some examples, the selected message (eg, message B) may be referred to as a content message or focal message, which may serve as an entry point or point of reference within conversation graph 126 . View conversation request 121 may be a request to retrieve a message from conversation graph 126 . In some examples, view conversation request 121 includes the message identifier of the selected message and the user identifier of the user of client application 154 . In some examples, the conversation view request 121 includes the time of the request, the device the user has turned on, the operating system (OS), and/or other metadata associated with the request.

会話閲覧リクエスト121に応答して、タイムラインマネージャ142は、会話グラフ126のメッセージ(またはそれらのサブセット)ごとに予測結果118を生成するように、予測マネージャ110を制御してよく、予測結果118に基づいてメッセージごとにエンゲージメント値116を計算してよい。例えば、予測マネージャ110は、エンゲージメント予測器125およびエンゲージメントスコアラ114を備える。会話閲覧リクエスト121に応答して、エンゲージメント予測器125は、予測に関連する信号106を取得し、会話グラフ126におけるメッセージ(またはメッセージのサブセット)ごとに予測結果118を決定するようにその信号106を予測モデル112に入力してよい。いくつかの例では、予測結果118は、相互エンゲージメント確率124を含む。いくつかの例では、予測結果118は、相互エンゲージメント確率124と、正のエンゲージメント確率120および負のエンゲージメント確率122の1つ以上を含む。いくつかの例では、予測結果118は、相互エンゲージメント確率124と、正のエンゲージメント確率120と、負のエンゲージメント確率122と、を含む。 In response to conversation view requests 121, timeline manager 142 may control prediction manager 110 to generate prediction results 118 for each message (or a subset thereof) of conversation graph 126, where prediction results 118 An engagement value 116 may be calculated for each message based on. For example, prediction manager 110 comprises engagement predictor 125 and engagement scorer 114 . In response to conversation view request 121, engagement predictor 125 obtains prediction-related signal 106 and uses that signal 106 to determine prediction result 118 for each message (or subset of messages) in conversation graph 126. It may be input to predictive model 112 . In some examples, prediction results 118 include mutual engagement probabilities 124 . In some examples, predicted results 118 include mutual engagement probability 124 and one or more of positive engagement probability 120 and negative engagement probability 122 . In some examples, predicted results 118 include mutual engagement probability 124 , positive engagement probability 120 , and negative engagement probability 122 .

エンゲージメントスコアラ114は、予測結果118を用いて(例えば、エンゲージメント値116を生成するように予測結果118を組み合わせて)、それぞれのメッセージについてエンゲージメント値116を計算してよい。エンゲージメント値116は、タイムラインマネージャ142によって、会話グラフのメッセージをランク付けするように用いられる。タイムラインマネージャ142は、ネットワーク150を通じて、メッセージ(または会話グラフ126のメッセージのサブセット)を、ユーザのタイムライン156内のランク付けされたリスト158として提供してよい。ランク付けされたリスト158(例えば、メッセージ1、メッセージ2、メッセージ3)は、予測結果118によって決定されたエンゲージメント値116に従ってランク付けされた、会話グラフ126のメッセージのうちのいくつかまたはすべてを含んでよい。 Engagement scorer 114 may use prediction results 118 (eg, combine prediction results 118 to produce engagement value 116) to calculate engagement value 116 for each message. The engagement value 116 is used by the timeline manager 142 to rank messages in the conversation graph. Timeline manager 142 may provide messages (or a subset of messages in conversation graph 126 ) as ranked lists 158 in user's timeline 156 over network 150 . Ranked list 158 (eg, message 1, message 2, message 3) includes some or all of the messages of conversation graph 126 ranked according to engagement value 116 determined by prediction results 118. OK.

いくつかの例では、候補メッセージセレクタ108は、予測マネージャ110によって解析される会話グラフ126のメッセージの一部を選択する。換言すると、候補メッセージセレクタ108は、会話グラフ126に含まれる多数のメッセージから候補のメッセージを選択する。ここで、候補メッセージは、予測マネージャ110による予測解析を受けやすいメッセージである。いくつかの例では、会話グラフ126は比較的大きく、会話グラフ126に含まれるノード128の数が閾値レベルを上回る場合(例えば、3000または4000個を超えるメッセージ)、候補メッセージセレクタ108は、予測マネージャ110によるさらなる解析のためにノード128のサブセット(ノード128のすべてではなく)を選択してよい。換言すると、ノード128の数が閾値レベルを超えると、候補メッセージセレクタ108は、ノード128のサブセットを識別し、それらのノード128の識別情報は、予測を行うように予測マネージャ110に対し提供される。これは、技術的資源消費を減少させ(例えば、大幅に減少させ)、メッセージングプラットホーム104により多くの品質応答を送達させ得る。例えば、会話グラフ126が3万の反応(またはノード128)を有する場合、上記の技術を用いて、メッセージングプラットホーム104は、上位Xの量のメッセージ(例えば、Xは3000であってよい)を選択し、それらに対する信号を収集し、それらをスコアリングして、ユーザに表示するための上位Yの量のメッセージ(例えば、Yは10であってよい)を選択してよい。これによって、ユーザに送達される応答の品質に影響を及ぼすことなく計算資源の量を減少させる(例えば、大幅に減少させる)ことができる。 In some examples, candidate message selector 108 selects a portion of messages in conversation graph 126 to be parsed by prediction manager 110 . In other words, candidate message selector 108 selects candidate messages from a number of messages contained in conversation graph 126 . Here, candidate messages are those messages that are amenable to predictive analysis by the predictive manager 110 . In some examples, the conversation graph 126 is relatively large, and if the number of nodes 128 included in the conversation graph 126 exceeds a threshold level (eg, more than 3000 or 4000 messages), the candidate message selector 108 uses the prediction manager A subset of nodes 128 (rather than all of nodes 128) may be selected for further analysis by 110. FIG. In other words, when the number of nodes 128 exceeds a threshold level, candidate message selector 108 identifies a subset of nodes 128, and the identification of those nodes 128 is provided to prediction manager 110 to make a prediction. . This may reduce (eg, significantly reduce) technical resource consumption and allow messaging platform 104 to deliver more quality responses. For example, if conversation graph 126 has 30,000 responses (or nodes 128), using the techniques described above, messaging platform 104 selects the top X volume messages (eg, X may be 3000). , collect signals for them, score them, and select the top Y amount of messages (eg, Y may be 10) to display to the user. This allows the amount of computational resources to be reduced (eg, significantly reduced) without affecting the quality of the response delivered to the user.

例えば、図1Bを参照すると、候補メッセージセレクタ108は、閾値レベルを超えている会話グラフ126における多数のメッセージに応答して、会話グラフ126から候補のサブセット133を選択してよい。ここで、予測結果118は、候補のサブセット133のメッセージごとに決定される。いくつかの例では、候補のサブセット133は、会話グラフ126におけるメッセージの総数未満である複数のメッセージを含む。いくつかの例では、候補メッセージセレクタ108は、1つまたは複数の候補メッセージソース131から候補のサブセット133を選択する。いくつかの例では、候補メッセージセレクタ108は、複数のソースから会話閲覧用の候補にマージしてよい。例えば、候補メッセージセレクタ108は、第1のソース131-1から会話グラフ126に含まれている第1の組のメッセージを、第2のソース131-2から会話グラフ126に含まれている第2の組のメッセージを選択する。ここで、候補のサブセット133は、第1の組のメッセージおよび第2の組のメッセージを含む。 For example, referring to FIG. 1B, candidate message selector 108 may select subset 133 of candidates from conversation graph 126 in response to a number of messages in conversation graph 126 exceeding a threshold level. Here, a prediction result 118 is determined for each message of the candidate subset 133 . In some examples, candidate subset 133 includes a plurality of messages that are less than the total number of messages in conversation graph 126 . In some examples, candidate message selector 108 selects a subset of candidates 133 from one or more candidate message sources 131 . In some examples, candidate message selector 108 may merge candidates for conversation viewing from multiple sources. For example, candidate message selector 108 selects a first set of messages contained in conversation graph 126 from first source 131-1 as a second set of messages contained in conversation graph 126 from second source 131-2. select a set of messages. Here, candidate subset 133 includes the first set of messages and the second set of messages.

いくつかの例では、第1のソース131-1は、直近に投稿されたものに従ってランク付けされた会話グラフ126のメッセージを含む。いくつかの例では、候補メッセージセレクタ108は、会話グラフ126におけるある個数(n)の直近のメッセージ(例えば、時間的順番)を第1のソース131-1から選択する。いくつかの例では、個数(n)は、2000~4500の範囲にある。いくつかの例では、個数(n)は、2500~3500の範囲にある。いくつかの例では、第2のソース131-2は、関連性アルゴリズム(例えば、発見的アルゴリズム)に従ってランク付けされた会話グラフ126のメッセージを含む。いくつかの例では、第2のソース131-2についての関連性ランキングは、会話グラフ126におけるメッセージが、クライアントアプリケーション154のユーザのユーザアカウント141にリンクされているユーザアカウント141からであるかに基づく。いくつかの例では、関連性アルゴリズムは、受信されたエンゲージメントの量、いいねの数、コメント、および/または再共有などの信号、メッセージが写真、ビデオ、および/またはリンクであるかなどのメッセージメタデータを表す信号、および/または、メッセージが毒がある、職場閲覧注意(NSFW)、またはメッセージの作成者が最近通報されたかなどの健康関連メタデータを用いる。いくつかの例では、候補メッセージセレクタ108は、会話グラフ126におけるある個数(p)の上位にランク付けされたメッセージを第2のソース131-2から選択する。いくつかの例では、個数(p)は、200~1500の範囲にある。いくつかの例では、個数(p)は、500~1000の範囲にある。いくつかの例では、個数(p)は、個数(n)未満である。候補のサブセット133は、第1のソース131-1からの個数(n)のメッセージと、第2のソース131-2からの個数(p)のメッセージと、を含んでよい。ここで、予測結果118は、候補のサブセット133のメッセージごとに決定される。 In some examples, first source 131-1 includes messages of conversation graph 126 ranked according to most recently posted. In some examples, candidate message selector 108 selects a certain number (n) of the most recent (eg, chronological order) messages in conversation graph 126 from first source 131-1. In some examples, the number (n) is in the range of 2000-4500. In some examples, the number (n) is in the range of 2500-3500. In some examples, second source 131-2 includes messages of 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 message in the conversation graph 126 is from a user account 141 linked to the user account 141 of the user of the client application 154. . In some examples, the relevance algorithm may be a message such as the amount of engagement received, the number of likes, comments, and/or signals such as re-shares, whether the message is a photo, video, and/or link. Signals representing metadata and/or health-related metadata such as whether the message is poisonous, workplace warnings (NSFW), or whether the creator of the message has been recently reported. In some examples, candidate message selector 108 selects a certain number (p) of top ranked messages in conversation graph 126 from second source 131-2. In some examples, the number (p) is in the range of 200-1500. In some examples, the number (p) is in the range of 500-1000. In some examples, the number (p) is less than the 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. Here, a prediction result 118 is determined for each message of the candidate subset 133 .

会話グラフ126(または候補メッセージセレクタ108によって識別されたもの)におけるノード128の少なくともいくつか(またはノード128のすべて)では、エンゲージメント予測器125は、予測モデル112を用いて、それぞれのメッセージについて、正のエンゲージメント確率120、負のエンゲージメント確率122、および/または相互エンゲージメント確率を予測してよい。例えば、会話閲覧リクエスト121に応答して、予測マネージャ110は、エンゲージメント予測器125を制御し、信号106を取得するとともに、その信号106を予測モデル112に適用し、会話グラフ126の選択されたノード128について予測結果118を決定してよい。 At least some of the nodes 128 (or all of the nodes 128) in the conversation graph 126 (or those identified by the candidate message selector 108), the engagement predictor 125 uses the predictive model 112 to predict a positive engagement probability 120, negative engagement probability 122, and/or mutual engagement probability may be predicted. For example, in response to View Conversation Request 121, Prediction Manager 110 controls Engagement Predictor 125 to obtain Signal 106 and apply Signal 106 to Predictive Model 112 to select nodes of Conversation Graph 126. A prediction result 118 may be determined for 128 .

予測マネージャ110は、信号106を1つまたは複数のデータサービス165から取得してよい。データサービス165は、メッセージングプラットホーム104および/またはクライアントアプリケーション154によって取得されたデータを計算するまたは導出する、メッセージングプラットホーム104上のコンポーネントであってよい。いくつかの例では、予測マネージャ110は、サーバ通信インタフェースを通じてデータサービス165と通信してよい。いくつかの例では、予測マネージャ110は、データサービス165から1つまたは複数のAPIを介して信号106の少なくともいくつかを取得してよい。いくつかの例では、会話閲覧リクエスト121に応答して、予測マネージャ110は、スリフト呼出しまたは遠隔手続呼出し(RPC)をデータサービス165に対し送信し、次いで、信号106の少なくともいくつかを関連データサービス165から受信してよい。いくつかの例では、予測マネージャ110は、表現可能状態転送(REST)リクエストをデータサービス165に対し送信し、次いで、信号106の少なくともいくつかを関連データサービス165から受信してよい。いくつかの例では、予測マネージャ110は、GraphQLリクエストによりデータサービス165と通信する。いくつかの例では、予測マネージャ110は、信号106のいくつかを、会話グラフマネージャ136および/またはタイムラインマネージャ142を含むメッセージングプラットホーム104の他のコンポーネントから取得する。 Prediction manager 110 may obtain signals 106 from one or more data services 165 . Data service 165 may be a component on messaging platform 104 that computes or derives data obtained by messaging platform 104 and/or client application 154 . In some examples, prediction manager 110 may communicate with data service 165 through a server communication interface. In some examples, prediction manager 110 may obtain at least some of signals 106 from data service 165 via one or more APIs. In some examples, in response to view conversation request 121, prediction manager 110 sends a thrift call or remote procedure call (RPC) to data service 165 and then transmits at least some of signals 106 to the associated data service. 165 may be received. In some examples, prediction manager 110 may send a representable state transfer (REST) request to data service 165 and then receive at least some of signals 106 from associated data service 165 . In some examples, prediction manager 110 communicates with data service 165 via GraphQL requests. In some examples, prediction manager 110 obtains some of signals 106 from other components of messaging platform 104 including conversation graph manager 136 and/or timeline manager 142 .

信号106は、クライアントアプリケーション154にメッセージを表示するためにユーザ結果を予測することに関連する、メッセージングプラットホーム104によって生成されたおよび/またはクライアントアプリケーション154によって生成された信号を含んでよい。例えば、信号106は、クライアントアプリケーション154とのユーザの対話に基づいてクライアントアプリケーション154によって生成された信号を含んでよい。クライアントアプリケーション154によって生成された信号は、メッセージングプラットホーム104における記憶のためにメッセージングプラットホーム104に対し送信されてよい。クライアントアプリケーション154によって生成された信号は、メッセージへの肯定的なユーザエンゲージメント(例えば、お気に入りに入れる、いいね、再共有)などのエンゲージメント情報、および/またはメッセージへの否定的なユーザエンゲージメント(例えば、罵りコンテンツの報告)を表す信号を含む。いくつかの例では、信号106は、メッセージングプラットホーム104によって生成された信号を含んでよい。いくつかの例では、メッセージングプラットホーム104によって生成された信号は、ユーザの接続グラフ134から生成されたデータ、会話グラフ126から生成されたデータ、プラットホームにおけるユーザ挙動から生成されたデータ(例えば、ユーザがメッセージにエンゲージメントを行った回数)、および/または、ユーザ感情を予測する意味解析の結果または1つもしくは複数のメッセージのトピックを決定するトピック解析の結果などのメッセージのコンテンツから生成されたデータを表す信号を含んでよい。 Signals 106 may include signals generated by messaging platform 104 and/or generated by client application 154 related to predicting user outcomes for displaying messages to client application 154 . For example, signals 106 may include signals generated by client application 154 based on user interactions with client application 154 . Signals generated by client application 154 may be sent to messaging platform 104 for storage on messaging platform 104 . Signals generated by client application 154 may be engagement information, such as positive user engagement with the message (e.g., favorite, like, reshare) and/or negative user engagement with the message (e.g., report of swear content). In some examples, signals 106 may include signals generated by messaging platform 104 . In some examples, the signals generated by the messaging platform 104 may be data generated from the user's connection graph 134, data generated from the conversation graph 126, data generated from user behavior on the platform (e.g., if the user and/or data generated from the content of the message, such as the results of semantic analysis to predict user sentiment or topical analysis to determine the topic of one or more messages. May contain signals.

図1Cに示されるように、信号106は、会話グラフ126に関連するデータ構造関連信号101、会話グラフ126からのメッセージをクライアントアプリケーション154のユーザに対し提供する健康に関連する健康関連信号103、会話グラフ126のメッセージに対するユーザエンゲージメントに関連するエンゲージメント信号105、ユーザの接続グラフ134からのデータに関連するソーシャルグラフ信号107、メッセージングプラットホーム104によって集約されたデータに関連する履歴集約信号109、会話グラフ126のメッセージのコンテンツに関連するコンテンツ関連信号111、および/または、メッセージが、ユーザがお気に入りに入れたまたはいいねした他のメッセージとどのくらい類似するか、および/またはユーザが、ユーザがメッセージにエンゲージメントした他のユーザとどのくらい類似するかを表す類似性信号113を含んでよい。しかしながら、信号106は、表示するメッセージからユーザ結果を予測することに関連する、任意の種類のカテゴリのまたは粒度の信号を含んでよい。 As shown in FIG. 1C, signals 106 include a data structure related signal 101 associated with conversation graph 126, a health related signal 103 providing messages from conversation graph 126 to the user of client application 154, a conversation Engagement signal 105 related to user engagement with messages in graph 126; social graph signal 107 related to data from user's connection graph 134; historical aggregation signal 109 related to data aggregated by messaging platform 104; Content-related signals 111 related to the content of the message and/or how similar the message is to other messages that the user has favorited or liked and/or how the user has engaged with the message. may include a similarity signal 113 representing how similar the user is to the user. However, signal 106 may include any type of categorical or granular signal relevant to predicting user outcomes from displayed messages.

データ構造関連信号101は、会話グラフ126からのデータに関連する信号を含んでよい。いくつかの例では、データ構造関連信号101は、ノード128の数、エッジ130の数、ブランチ132の数、各ブランチ132の長さまたは大きさ、親ノードの数、子ノードの数、リーフノードの数、会話グラフ126の高さ(例えば、リーフノードまでの最長パスの長さ)、および/またはノードの深さ(例えば、ノードの深さは、ルートノードまでのパスの長さである)を表す信号を含んでよい。いくつかの例では、データ構造関連信号101は、会話グラフ126におけるユニーク作成者またはブランチ132などの会話グラフ126のサブセットの数を表す1つまたは複数の信号を含む。いくつかの例では、データ構造関連信号101は、会話グラフ126内のある種類のデータ(例えば、画像、ビデオ、ビデオへのリンクなど)を有するメッセージのロケーションを表す信号を含む。いくつかの例では、会話グラフ126内の特定のメッセージに対して、データ構造関連信号101は、メッセージが子ノードであるか、メッセージが親ノードであるか、メッセージがリーフノードであるか、会話グラフ126内のメッセージのロケーション、そのメッセージを含むブランチ132のロケーション、そのメッセージを含むブランチ132の大きさ、会話グラフ126内のメッセージの深さを表す信号を含んでよい。 Data structure related signals 101 may include signals related to data from conversation graph 126 . In some examples, 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 number of parent nodes, the number of child nodes, the number of leaf nodes. , the height of the conversation graph 126 (e.g., the length of the longest path to a leaf node), and/or the depth of the nodes (e.g., the depth of a node is the length of the path to the root node) may include a signal representing In some examples, data structure related signals 101 include one or more signals representing the number of unique authors in conversation graph 126 or subsets of conversation graph 126 , such as branches 132 . In some examples, data structure-related signals 101 include signals representing locations of messages having some type of data (eg, images, videos, links to videos, etc.) within conversation graph 126 . In some examples, for a particular message in conversation graph 126, data structure related signal 101 indicates whether the message is a child node, whether the message is a parent node, whether the message is a leaf node, whether the conversation Signals representing the location of the message within graph 126, the location of branch 132 containing the message, the size of branch 132 containing the message, and the depth of the message within conversation graph 126 may be included.

データ構造関連信号101は、ブランチ文脈フィーチャを含んでよい。いくつかの例では、データ構造関連信号101は、ブランチ132内のリプライの数、ブランチ132内の会話の数、クライアントアプリケーション154のユーザとルートメッセージの作成者との間のブランチ132内の会話の数、アプリケーション154のユーザと新しいメッセージにおいてメンションされているユーザとの間のブランチ132内の会話の数、および/または特定のノード(例えば、フォーカルメッセージ)とリーフノードとの間の会話の数を表す信号を含む。いくつかの例では、ブランチ文脈フィーチャについて、会話は、2人以上のユーザ間における往復と定められてよい。いくつかの例では、会話は、ユーザAによって投稿されたメッセージ、ユーザBによって投稿されたリプライ、および次いでユーザAによって投稿されたリプライと定められてよい。 Data structure related signals 101 may include branch context features. In some examples, data structure related signals 101 may include the number of replies within branch 132, the number of conversations within branch 132, the number of conversations within branch 132 between the user of client application 154 and the originator of the root message. number, the number of conversations within branch 132 between users of application 154 and users mentioned in new messages, and/or the number of conversations between a particular node (e.g., a focal message) and a leaf node. contains a signal that represents In some examples, for branch context features, a conversation may be defined as a round trip between two or more 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.

いくつかの例では、会話グラフマネージャ136は、会話識別子を予測マネージャ110から受信し、データ構造関連信号101を会話識別子に従って会話グラフ126から導出または決定してよく、データ構造関連信号101をメッセージングプラットホーム104におけるデータストレージに記憶してよい。例えば、会話閲覧リクエスト121に応答して、予測マネージャ110は、会話グラフマネージャ136を制御し、データ構造関連信号101を導出または決定し、次いで、予測結果118を決定するべく予測モデル112により用いられるように、データ構造関連信号101を会話グラフマネージャ136から受信してよい。いくつかの例では、予測マネージャ110は、データ構造関連信号101を会話グラフ126から導出または決定してよい。いくつかの例では、会話閲覧リクエスト121に応答して、予測マネージャ110は、会話識別子を会話グラフマネージャ136に対し送信してよく、次いで、データ構造関連信号101を会話グラフ126から導出または決定するように会話グラフ126を受信してよい。 In some examples, the conversation graph manager 136 may receive the conversation identifier from the prediction manager 110, derive or determine the data structure related signal 101 from the conversation graph 126 according to the conversation identifier, and transfer the data structure related signal 101 to the messaging platform. It may be stored in data storage at 104 . For example, in response to conversation view request 121, prediction manager 110 controls conversation graph manager 136 to derive or determine data structure related signals 101, which are then used by prediction models 112 to determine prediction results 118. As such, data structure related signals 101 may be received from conversation 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 view conversation request 121, prediction manager 110 may send a conversation identifier to conversation graph manager 136, which then derives or determines data structure related signals 101 from conversation graph 126. Conversation graph 126 may be received as follows.

健康関連信号103は、会話グラフ126のメッセージをクライアントアプリケーション154のユーザに対し提示することの健康を表す信号を含んでよい。いくつかの例では、健康関連信号103は、クライアントアプリケーション154のユーザが、過去の会話グラフ126におけるメッセージの作成者を制限(例えば、ブロック、ミュートなど)したかを表す信号を含んでよい。健康関連信号103は、メッセージングプラットホーム104におけるデータストレージに記憶されてよい。いくつかの例では、予測マネージャ110は、健康関連信号103を取得するように、リクエストをデータサービス165(例えば、健康データサービス)に対し送信してよい。ここで、リクエストは、会話グラフ126のメッセージのメッセージ識別子および/またはクライアントアプリケーション154のユーザのユーザ識別子を含んでよい。 Health-related signals 103 may include signals representing the health of presenting messages of conversation graph 126 to a user of client application 154 . In some examples, health-related signal 103 may include a signal representing whether a user of client application 154 has restricted (eg, blocked, muted, etc.) authors of messages in past conversation graph 126 . Health-related signals 103 may be stored in data storage in messaging platform 104 . In some examples, prediction manager 110 may send a request to data service 165 (eg, health data service) to obtain health-related signal 103 . Here, the request may include the message identifier of the message of conversation graph 126 and/or the user identifier of the user of client application 154 .

エンゲージメント信号105は、会話グラフ126のメッセージに関連付けられているユーザエンゲージメントデータを表してよい。いくつかの例では、エンゲージメント信号105は、会話グラフ126のメッセージに対するエンゲージメントの数(例えば、メッセージがお気に入りに入れられたまたはいいねされた回数、メッセージに対するリプライの数、メッセージが再共有された回数)を表す信号を含む。いくつかの例では、エンゲージメント信号105は、ユーザの接続グラフ134においてクライアントアプリケーション154のユーザをフォローしているユーザのエンゲージメント(例えば、メッセージが、ユーザの接続グラフ134においてクライアントアプリケーション154のユーザをフォローしているユーザによって提供された1つまたは複数のエンゲージメントを有するか)を表す1つまたは複数の信号を含む。いくつかの例では、予測マネージャ110は、エンゲージメントデータを記憶するデータサービス168からエンゲージメント信号105を取得する。いくつかの例では、予測マネージャ110は、会話グラフ126のメッセージ識別子を含み得るリクエストを送信してよい。予測マネージャ110は、データサービス165からエンゲージメント信号105を受信してよい。 Engagement signals 105 may represent user engagement data associated with messages in conversation graph 126 . In some examples, the engagement signal 105 is the number of engagements for a message in the conversation graph 126 (e.g., the number of times the message has been favorited or liked, the number of replies to the message, the number of times the message has been re-shared). ). In some examples, the engagement signal 105 is the engagement of the user following the user of the client application 154 in the user's connection graph 134 (e.g., the message follows the user of the client application 154 in the user's connection graph 134). has one or more engagements provided by a user who is In some examples, prediction manager 110 obtains engagement signal 105 from data service 168 that stores engagement data. In some examples, prediction manager 110 may send a request that may include a message identifier for conversation graph 126 . Prediction manager 110 may receive engagement signal 105 from data service 165 .

ソーシャルグラフ信号107は、接続グラフ134からの情報を表す信号を含んでよい。いくつかの例では、ソーシャルグラフ信号107は、クライアントアプリケーション154のユーザがある期間にわたってメッセージの作成者のメッセージをお気に入りに入れたまたはいいねした回数、ユーザが接続グラフ134におけるメッセージの作成者にリンクされているか、および/またはユーザがある期間にわたってメッセージの作成者のメッセージを再共有したまたはリプライした回数を表す信号を含む。いくつかの例では、予測マネージャ110は、ソーシャルグラフ信号を記憶するデータサービス168からソーシャルグラフ信号107を取得する。いくつかの例では、予測マネージャ110は、クライアントアプリケーション154のユーザのユーザ識別子を含み得るリクエストを送信してよい。予測マネージャ110は、データサービス165からソーシャルグラフ信号107を受信してよい。 Social graph signals 107 may include signals representing information from connection graph 134 . In some examples, the social graph signal 107 indicates the number of times a user of the client application 154 has favorited or liked the message's creator's message over time, the user's link to the message's creator in the connection graph 134 . and/or a signal representing the number of times the user has re-shared or replied to the message's 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 may send a request that may include the user identifier of the user of client application 154 . Prediction manager 110 may receive social graph signals 107 from data service 165 .

履歴集約信号109は、メッセージングプラットホーム104におけるユーザ挙動を表す信号を含んでよい。いくつかの例では、履歴集約信号109は、クライアントアプリケーション154のユーザがある期間中にメッセージングプラットホーム104におけるメッセージをお気に入りに入れた回数、クライアントアプリケーション154のユーザがある期間中にメッセージングプラットホーム104におけるメッセージを再共有した回数、および/またはクライアントアプリケーション154のユーザがある期間中にメッセージングプラットホーム104におけるメッセージにリプライした回数を表す信号を含んでよい。期間は、前日、先月、昨年内などであってよい。いくつかの例では、履歴集約信号109は、クライアントアプリケーション154のユーザが、画像またはビデオを含むメッセージをお気に入りに入れた、いいねした、再共有した、および/またはそのメッセージに対しリプライした回数を表す信号を含んでよい。 Historical aggregated signals 109 may include signals representative of user behavior on messaging platform 104 . In some examples, history aggregation signal 109 may be the number of times the user of client application 154 favorited a message on messaging platform 104 over a period of time, the number of times the user of client application 154 favorited a message on messaging platform 104 over a period of time, A signal representing the number of times it has been re-shared and/or the number of times a user of client application 154 has replied to a message on messaging platform 104 over a period of time may be included. The period may be the previous day, the last month, the last year, or the like. In some examples, history aggregation signal 109 counts the number of times a user of client application 154 favorited, liked, re-shared, and/or replied to a message containing an image or video. may include a signal representing

いくつかの例では、履歴集約信号109は、クライアントアプリケーション154のユーザが、接続グラフ134におけるユーザに対しリンクされたアカウント141からのメッセージをお気に入りに入れた、いいねした、再共有した、および/またはそのメッセージに対しリプライした回数、および/または、ユーザが、接続グラフ134におけるユーザに対しリンクされていないアカウント141からのメッセージをお気に入りに入れた、いいねした、再共有した、および/またはそのメッセージに対しリプライした回数を表す信号を含んでよい。いくつかの例では、予測マネージャ110は、メッセージングプラットホーム104におけるデータストレージから履歴集約信号109を取得する。いくつかの例では、予測マネージャ110は、履歴集約信号109を取得するリクエストをデータサービス165に対し送信する。いくつかの例では、リクエストは、クライアントアプリケーション154のユーザのユーザ識別子を含む。いくつかの例では、履歴集約信号109は、バッチ集約情報およびリアルタイム集約情報を含む。バッチ集約情報は、比較的長い履歴(例えば、50日を超える)を含んでよい。いくつかの例では、バッチ集約情報は、前日(またはここ数日)からの対話を含まなくてよい。リアルタイム集約情報は、比較的最近の対話履歴(例えば、ここ30分以内など)を含んでよい。 In some examples, the history aggregation signal 109 indicates that the user of the client application 154 has favorited, liked, re-shared, and/or messages from accounts 141 linked to the user in the connection graph 134 . or the number of times the message was replied to, and/or the user favorited, liked, re-shared, and/or messages from accounts 141 not linked to the user in connection graph 134 A signal may be included that indicates the number of times the message has been replied to. In some examples, prediction manager 110 obtains historical aggregated signal 109 from data storage in messaging platform 104 . In some examples, prediction manager 110 sends a request to data service 165 to obtain historical aggregated signal 109 . In some examples, the request includes the user identifier of the user of client application 154 . In some examples, historical aggregated signal 109 includes batch aggregated information and real-time aggregated information. Batch aggregate information may include a relatively long history (eg, over 50 days). In some examples, batch aggregate information may not include interactions from the previous day (or the last few days). Real-time aggregate information may include relatively recent interaction history (eg, within the last 30 minutes, etc.).

コンテンツ関連信号111は、会話グラフ126のメッセージのコンテンツの1つまたは複数の態様を表す信号を含んでよい。いくつかの例では、コンテンツ関連信号111は、メッセージの長さ、および/またはコンテンツがテキスト、ビデオ、または画像を含むかを表す信号を含んでよい。いくつかの例では、予測マネージャ110は、メッセージングプラットホーム104におけるデータストレージからコンテンツ関連信号111を取得する。いくつかの例では、予測マネージャ110は、コンテンツ関連信号111を取得するように、リクエストをデータサービス165に対し送信する。いくつかの例では、リクエストは、会話グラフ126のメッセージのメッセージ識別子を含む。 Content-related signals 111 may include signals representing one or more aspects of the content of messages in conversation graph 126 . In some examples, content-related signals 111 may include signals that indicate the length of the message and/or whether the content includes text, video, or images. In some examples, prediction manager 110 obtains content-related signals 111 from data storage in messaging platform 104 . In some examples, prediction manager 110 sends a request to data service 165 to obtain content-related signal 111 . In some examples, the request includes the message identifier of the message in conversation graph 126 .

類似性信号113は、メッセージが、ユーザがお気に入りに入れたまたはいいねした他のメッセージとどのくらい類似するかを表す1つまたは複数の信号を含んでよい。例えば、類似性信号113は、特定のメッセージとユーザがお気に入りに入れたまたはいいねした1つまたは複数のメッセージとの間の類似性のレベルを表してよい。類似性のレベルが比較的高い場合、類似性信号113は、潜在的な肯定的エンゲージメントの指標を提供する。いくつかの例では、類似性信号113は、ユーザが、メッセージへとエンゲージメントした他のユーザとどのくらい類似するかを表す1つまたは複数の信号を含んでよい。例えば、ユーザのユーザプロフィールが、メッセージにエンゲージメントしたユーザプロフィールと比較的類似していると決定されると、潜在的な肯定的エンゲージメントの指標を提供してよい。いくつかの例では、予測マネージャ110は、メッセージングプラットホーム104におけるデータストレージから類似性信号113を取得してよい。いくつかの例では、予測マネージャ110は、類似性信号113を取得するように、リクエストをデータサービス165に対し送信する。いくつかの例では、リクエストは、メッセージ識別子および/またはユーザのユーザ識別子を含んでよい。 Similarity signals 113 may include one or more signals representing how similar a message is to other messages that a user has favorited or liked. For example, similarity signal 113 may represent the level of similarity between a particular message and one or more messages that the user has favorited or liked. If the level of similarity is relatively high, the similarity signal 113 provides an indication of potential positive engagement. In some examples, similarity signal 113 may include one or more signals representing how similar a user is to other users engaged with the message. For example, determining that a user's user profile is relatively similar to a user profile that has engaged with a message may provide an indication of potential positive engagement. In some examples, prediction manager 110 may obtain affinity signal 113 from data storage in messaging platform 104 . In some examples, prediction manager 110 sends a request to data service 165 to obtain affinity signal 113 . In some examples, the request may include the message identifier and/or the user's user identifier.

いくつかの例では、予測に用いられる信号106の少なくともいくつかを取得するために、技術的困難またはハードルが存在する(例えば、特に、メッセージが拡散されると、閲覧者と作成者との関係に関連する信号について)。人気のメッセージは、比較的大量(例えば、いくつかの場合、8万を超える)の応答を有し得る。これは、多くのユーザが、同時に人気のメッセージを試すおよび閲覧し得ることを意味する。閲覧者ごとに、メッセージングプラットホーム104は、人気のメッセージにリプライしたすべての作成者との自身の関係を取得してよい。候補メッセージセレクタ108に対して上記の技術を用いると、メッセージングプラットホーム104は、8万~4千までのメッセージの総数をフィルタすることができてよい。これは、関係信号を取得するように、4千の閲覧者と作成者との対が存在し得ることをやはり意味してよい。 In some instances, there are technical difficulties or hurdles to obtain at least some of the signals 106 used for prediction (e.g., the relationship between viewers and authors, especially if the message is spread). for signals associated with ). Popular messages may have a relatively high volume of responses (eg, over 80,000 in some cases). This means that many users can try and view popular messages at the same time. For each viewer, messaging platform 104 may obtain its relationship with all authors who have replied to the popular message. Using the techniques described above for candidate message selector 108, messaging platform 104 may be able to filter a total number of messages from 80,000 to 4,000. This may also mean that there may be 4,000 viewer-author pairs to obtain a relationship signal.

また、いくつかの例では、閲覧者と作成者との関係は、閲覧者が作成者をフォローしていないため存在しなくてもよい。これらの種類の状況を扱うため、閲覧者と作成者とによってデータサービス166に対するキーとしてクエリする代わりに、メッセージングプラットホーム104は、閲覧者識別子によってクエリし、すべての他の作成者との自身の関係を一度に得ることが可能である。次いで、メッセージングプラットホーム104は、存在する場合、作成者のリプライの作成者との重複を決定し、関連する信号を維持することが可能である。これは、閲覧者当たり4千の呼出しをする代わりに、予測マネージャ110が1つの呼出しを生成し送信し得るため、ネットワークを通じて比較的大規模に呼出しを減少させる。 Also, in some instances, a viewer-author relationship may not exist because the viewer does not follow the author. To handle these kinds of situations, instead of querying by viewers and creators as keys to data service 166, messaging platform 104 queries by viewer identifiers and their relationships with all other creators. can be obtained at once. The messaging platform 104 can then determine overlap with the creator of the creator's reply, if any, and maintain associated signals. This reduces calls through the network to a relatively large extent because the prediction manager 110 can generate and send one call instead of 4,000 calls per viewer.

メッセージレベル信号には、別の技術的困難性が存在し得る。例えば、大きい会話では、メッセージングプラットホーム104は、他のデータサービス166を閲覧者ごとの4千のクエリによりクエリしてよい。これは、データサービス166が同一のメッセージ識別子についてあまりに多くのクエリを受信する「ホットキー」問題を生じ得る。上で特定された困難を克服するため、メッセージングプラットホーム104は、インメモリキャッシングを用いてよい。サービスは、下部のデータサービス166がホットキーを示す場合、メモリにフィーチャをキャッシュする。例えば、メッセージTが拡散され、応答R1,R2…R4000を有し、メッセージフィーチャは、メッセージにおける文字数である。次いで、1000人のユーザが同一のメッセージについてのリクエストを同時に(またはほぼ同時に)送信する。データサービス166がホットキーを示す場合、メッセージングプラットホーム104は、R1,R2…R4000について文字値を各々メモリに、非常に短時間で記憶することが可能であり、ユーザごとにデータサービス166を呼び出す代わりに、ただそれらを用いることが可能である。 Another technical difficulty can exist with message level signals. For example, in a large conversation, messaging platform 104 may query other data services 166 with 4,000 queries per viewer. This can create a "hotkey" problem where the data service 166 receives too many queries for the same message identifier. To overcome the difficulties identified above, messaging platform 104 may employ in-memory caching. The service caches the feature in memory if the underlying data service 166 indicates a hotkey. For example, a message T is spread and has responses R1, R2...R4000 and the message feature is the number of characters in the message. Then 1000 users send requests for the same message at the same time (or near the same time). If the data service 166 indicates a hotkey, the messaging platform 104 can store the character values for R1, R2 . , it is possible to just use them.

予測モデル112は、訓練データ148が入力された1つまたは複数の機械学習アルゴリズム149によって訓練された予測モデルである。機械学習アルゴリズム149は、マルコフモデル、ロジスティック回帰、決定木分析、ランダムフォレスト分析、ニューラルネット、およびそれらの組合せのうちの1つまたは複数を含んでよい。一般に、機械学習は、コンピュータが、コンピュータのタスクの実行中に機械学習処理が獲得する経験またはデータから生成されたフィードバックを用いて、それらのタスクのクラスを行うように学習する分野である。教師あり機械学習では、コンピュータは、例示的な入力と所望の出力との間においてオペレータまたはプログラムによって予め定められたようにマッピングするための1つまたは複数の役割または機能を学習することが可能である。ラベル付けされたデータポイントは、次いで、コンピュータを訓練する際に用いられることが可能である。教師なし機械学習は、ラベル付けされていないデータを用いることを含むことが可能である。コンピュータは、次いで、例えば、データセットの次元を減少させることによって、データにおける暗黙的な関係を識別することが可能である。 Predictive model 112 is a predictive model 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 a class of tasks using feedback generated from the experience or data that the machine learning process acquires while performing those tasks on the computer. Supervised machine learning allows a computer to learn one or more roles or functions to map between exemplary inputs and desired outputs in a manner predetermined by an operator or program. be. The labeled data points can then be used in training a computer. Unsupervised machine learning can involve using unlabeled data. The computer can then identify implicit relationships in the data, for example, by reducing the dimensionality of the data set.

図1Dに示されるように、予測モデル112は、正のエンゲージメントモデル115、負のエンゲージメントモデル117、および相互エンゲージメントモデル119を含んでよい。正のエンゲージメントモデル115は、正のエンゲージメント確率120を計算するように構成されており、負のエンゲージメントモデル117は、負のエンゲージメント確率122を計算するように構成されており、相互エンゲージメントモデル119は、相互エンゲージメント確率124を計算するように構成されている。例えば、会話閲覧リクエスト121(例えば、ユーザがメッセージBを選択する)に応答して、エンゲージメント予測器125は、信号106を取得し、信号106(ユーザ識別子およびメッセージ識別子も含む)を正のエンゲージメントモデル115、負のエンゲージメントモデル117、および/または相互エンゲージメントモデル119に適用してよく、正のエンゲージメント確率120、負のエンゲージメント確率122、および/または相互エンゲージメント確率124をそれぞれ決定する。 As shown in FIG. 1D, predictive models 112 may include positive engagement models 115, negative engagement models 117, and mutual engagement models 119. As shown in FIG. Positive engagement model 115 is configured to calculate positive engagement probability 120, negative engagement model 117 is configured to calculate negative engagement probability 122, and mutual engagement model 119 is configured to: It is configured to calculate mutual engagement probability 124 . For example, in response to conversation view request 121 (eg, user selects message B), engagement predictor 125 obtains signal 106 and assigns signal 106 (which also includes user identifier and message identifier) to a positive engagement model. 115, negative engagement model 117, and/or mutual engagement model 119 to determine positive engagement probability 120, negative engagement probability 122, and/or mutual engagement probability 124, respectively.

正のエンゲージメント確率120は、ユーザがメッセージに肯定的な閲覧をするまたはエンゲージメントを行うと予測される確率値を示す。いくつかの例では、正のエンゲージメント確率120についての確率値は、第1の値と第2の値との間の数(x)である。ここで、第1の値は、ユーザがメッセージに肯定的な閲覧をするまたはエンゲージメントを行うと予測される0の可能性を表し、第2の値は、ユーザがメッセージに肯定的な閲覧をするまたはエンゲージメントを行うと予測される100%の可能性を表す。いくつかの例では、正のエンゲージメント確率120についての確率値は正の数である。いくつかの例では、第1の値は0であり、第2の値は1である。しかしながら、第1の値および第2の値は、あらゆる種類の範囲を定めてよい(例えば、0~1、0~50、0~100など)。換言すると正のエンゲージメント確率120は、ユーザがメッセージをお気に入りに入れる、いいねする、または共有すると予測される見込みのレベルを示す。 A positive engagement probability 120 indicates a probability value that a 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 the first value and the second value. Here, the first value represents a probability of 0 that the user is predicted to view or engage with the message positively, and the second value represents the probability that the user will view the message positively. Or represents a 100% chance of being predicted to engage. In some examples, the probability value for positive engagement probability 120 is a positive number. In some examples, the first value is 0 and the second value is 1. However, the first and second values may define any kind of range (eg, 0-1, 0-50, 0-100, etc.). In other words, the positive engagement probability 120 indicates the level of likelihood that a user is expected to favorite, like, or share the message.

負のエンゲージメント確率122は、ユーザがメッセージに否定的な閲覧をするまたはエンゲージメントを行うと予測される確率値を示す。いくつかの例では、負のエンゲージメント確率122についての確率値は、第1の値と第2の値との間の数(y)である。ここで、第1の値は、ユーザがメッセージに否定的な閲覧をするまたはエンゲージメントを行うと予測される0の可能性を表し、第2の値は、ユーザがメッセージに否定的な閲覧をするまたはエンゲージメントを行うと予測される100%の可能性を表す。いくつかの例では、負のエンゲージメント確率122についての確率値は負の数である。いくつかの例では、第1の値は0であり、第2の値は負の1である。しかしながら、第1の値および第2の値は、あらゆる種類の範囲を定めてよい(例えば、0~-1、0~-50、0~-100など)。換言すると、負のエンゲージメント確率122は、ユーザがメッセージの作成者をブロックする、メッセージの作成者のフォローを外す、および/またはメッセージを罵りであると報告する見込みのレベルを示す。 Negative engagement probability 122 indicates the probability value that a 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 the first value and the second value. Here, the first value represents a probability of 0 that the user is predicted to view or engage with the message negatively, and the second value represents the probability that the user will view the message negatively. Or represents a 100% chance of being predicted to engage. In some examples, the probability value for negative engagement probability 122 is a negative number. In some examples, the first value is 0 and the second value is negative one. However, the first and second values may define any kind of range (eg, 0 to -1, 0 to -50, 0 to -100, etc.). In other words, negative engagement probability 122 indicates the level of likelihood that a user will block the message creator, unfollow the message creator, and/or report the message as abusive.

相互エンゲージメント確率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をさらに発展させると予測される見込みのレベルを示す。 Mutual engagement probability 124 indicates a probability value that the user is expected to continue to develop conversation graph 126 . In some examples, the probability value for mutual engagement probability 124 is a number (z) between the first value and the second value. Here, the first value represents a probability of 0 that the user is expected to continue to develop the conversation graph 126 and the second value is 100% that the user is expected to continue to develop the conversation graph 126. represents the possibility of In some examples, the probability value for mutual engagement probability 124 is a positive number. In some examples, the first value is 0 and the second value is 1. However, the first and second values may define any kind of range (eg, 0-1, 0-50, 0-100, etc.). In some examples, mutual engagement probability 124 indicates the level of likelihood that users are expected to further develop conversation graph 126 by replying to messages.

特定の候補のノード128について、エンゲージメント予測器125は、正のエンゲージメントモデル115を用いて、メッセージがユーザによって肯定的エンゲージメントを受信するある確率を有することを決定し、負のエンゲージメントモデル117を用いて、メッセージがユーザによって否定的エンゲージメントを受信するある確率を有することを決定し、相互エンゲージメントモデル119を用いて、メッセージがユーザによって相互エンゲージメントを受信するある確率を有することを決定してよい。いくつかの例では、各候補ノード128について、エンゲージメント予測器125は、3つすべての予測結果118を決定する。いくつかの例では、各ノード128について、エンゲージメント予測器125は、相互エンゲージメント確率124と、正のエンゲージメント確率120および負のエンゲージメント確率122のうちの1つ以上とを予測する。 For a particular candidate node 128, engagement predictor 125 uses positive engagement model 115 to determine that the message has a certain probability of receiving positive engagement by the user, and negative engagement model 117 to determine , may determine that the message has a certain probability of receiving negative engagement by the user, and using the mutual engagement model 119, determine that the message has a certain probability of receiving mutual engagement by the user. In some examples, for each candidate node 128, engagement predictor 125 determines all three prediction outcomes 118. In some examples, for each node 128 , engagement predictor 125 predicts mutual engagement probability 124 and one or more of positive engagement probability 120 and negative engagement probability 122 .

エンゲージメントスコアラ114は、予測結果118を用いて、会話グラフ126におけるメッセージについてエンゲージメント値116を計算する。エンゲージメント値116は、それぞれのノード128についての全エンゲージメント値(例えば、クライアントアプリケーション154のユーザについての関連性のレベルを示す)を提供してよい。これは、メッセージングプラットホーム104におけるより健康的な会話を奨励する。例えば、特定の候補のノード128について、エンゲージメントスコアラ114は、正のエンゲージメント確率120、負のエンゲージメント確率122、および相互エンゲージメント確率124を組み合わせて、ユーザについて最も関連性のあるノード128を選択するように用いられ得るエンゲージメント値116を提供してよい。例えば、エンゲージメントスコアラ114は、予測結果118の値を組み合わせて、特定のメッセージについてのエンゲージメント値116を決定してよい。負のエンゲージメント確率122の確率値が比較的高い(例えば、より大きい負の値を有する)場合、この値は、正のエンゲージメント確率120および相互エンゲージメント確率124の正の値をずらしてよい。単純な例では、正のエンゲージメント確率120が+10であり、負のエンゲージメント確率122が-10であり、相互エンゲージメント確率124が+10である場合、メッセージについてのエンゲージメント値116は+10である。 Engagement scorer 114 uses prediction results 118 to calculate engagement values 116 for messages in conversation graph 126 . Engagement value 116 may provide an overall engagement value for each node 128 (eg, indicating a level of relevance for the user of client application 154). This encourages healthier conversations on messaging platform 104 . For example, for a particular candidate node 128, engagement scorer 114 combines positive engagement probability 120, negative engagement probability 122, and cross-engagement probability 124 to select the most relevant node 128 for the user. An engagement value 116 may be provided that may be used. For example, engagement scorer 114 may combine the values of predicted results 118 to determine engagement value 116 for a particular message. If the probability value of negative engagement probability 122 is relatively high (eg, has a larger negative value), this value may offset the positive values of positive engagement probability 120 and mutual engagement probability 124 . 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 116 for the message is +10.

いくつかの例では、エンゲージメントスコアラ114は、予測結果118に重み付けを適用してよく、次いで、重み付けされた正のエンゲージメント確率120、負のエンゲージメント確率122、および相互エンゲージメント確率124に基づいてエンゲージメント値116を計算してよい。いくつかの例では、相互エンゲージメント確率124に適用される重み付けは、負のエンゲージメント確率122に適用される重み付けよりも大きい。 In some examples, the engagement scorer 114 may apply weightings to the predicted results 118 and then determine the engagement value 116 based on the weighted positive engagement probabilities 120, negative engagement probabilities 122, and mutual engagement probabilities 124. can be calculated. In some examples, the weighting applied to mutual engagement probability 124 is greater than the weighting applied to negative engagement probability 122 .

エンゲージメント値116は、ユーザに対しレンダリングされるように、会話グラフ126内の関連性のあるメッセージまたはメッセージのブランチを選択する用いられる。例えば、タイムラインマネージャ142は、予測マネージャ110からエンゲージメント値116を受信し、そのエンゲージメント値116を会話グラフ126におけるメッセージをランク付けする(例えば、最高から最低まで)ように用いる。タイムラインマネージャ142は、ネットワーク150を通じて、ランクに従ってタイムライン156においてレンダリングされる会話グラフ126のメッセージの少なくともサブセットを提供してよい。いくつかの例では、タイムラインマネージャ142は、タイムライン156においてレンダリングされる会話グラフ126のメッセージのサブセットしか提供しない。ここで、サブセットは、会話グラフ126のより高いランク付けされたメッセージを含む。次いで、タイムラインマネージャ142は、会話グラフ126の追加のメッセージについてのリクエストをクライアントアプリケーション154から受信してよい(例えば、会話グラフ126のより多くのメッセージを閲覧するようにユーザアフォーダンスを選択する)。タイムラインマネージャ142は、クライアントアプリケーション154へと送信されるように会話グラフ126からメッセージの次のグループを選択してよい。このようにして、メッセージングシステム100は、肯定的エンゲージメントを提供する可能性が低い会話グラフ126の一部を折り畳んでよいが、ユーザによってリクエストされたときにそれらのメッセージを提示してよい。 The engagement value 116 is used to select relevant messages or branches of messages within the 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, highest to lowest). Timeline manager 142 may provide at least a subset of the messages of conversation graph 126 rendered in timeline 156 according to rank over network 150 . In some examples, timeline manager 142 only provides a subset of the messages of conversation graph 126 rendered in timeline 156 . Here, the subset contains the higher ranked messages of conversation graph 126 . Timeline manager 142 may then receive a request from client application 154 for additional messages in conversation graph 126 (eg, select a user affordance to view more messages in conversation graph 126). Timeline manager 142 may select the next group of messages from conversation graph 126 to be sent to client application 154 . In this manner, messaging system 100 may collapse portions of conversation graph 126 that are less likely to provide positive engagement, but present those messages when requested by a user.

いくつかの例では、タイムラインマネージャ142は、エンゲージメント値116を用いてタイムラインにおいてレンダリングされる会話グラフ126の1つまたは複数のブランチ(またはブランチ132のサブセット)を選択する。例えば、ブランチ132は、高いエンゲージメント値116(または閾値レベルを超えるエンゲージメント値116)を有する1つまたは複数のノードを含む。タイムラインマネージャ142は、ブランチ132が低いエンゲージメント値116(または閾値レベルを以下のエンゲージメント値116)を有する1つまたは複数のノード128を含み得るという事実にかかわらず、ユーザに会話に関するより多くの文脈を提供するように、クライアントアプリケーション154に対し送達されるメッセージの一部としてレンダリングされるブランチ132全体を選択してよい。いくつかの例では、特定のブランチ132は、特定のブランチ132内のノード128についてのエンゲージメント値116の平均であり得る全エンゲージメント値に関連付けられている。次いで、タイムラインマネージャ142は、ブランチ132の全エンゲージメント値に従ってブランチ132をランク付けしてよい。 In some examples, timeline manager 142 selects one or more branches (or a subset of branches 132) of conversation graph 126 to be rendered in the timeline using engagement value 116 . For example, branch 132 includes one or more nodes with high engagement values 116 (or engagement values 116 above a threshold level). The timeline manager 142 provides the user with more context about the conversation, despite the fact that the branch 132 may contain one or more nodes 128 with low engagement values 116 (or engagement values 116 below the threshold level). The entire branch 132 may be selected to be rendered as part of the message delivered to the client application 154 so as to provide . In some examples, a particular branch 132 is associated with a total engagement value, which may be an average of 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 value.

いくつかの例では、タイムラインマネージャ142は、クライアントアプリケーション154に対し提供されるメッセージの組に含めるように高いエンゲージメント値(または閾値レベルを超えるエンゲージメント値116)を有するノード128を選択する。いくつかの例では、タイムラインマネージャ142は、選択されたブランチ132および/またはノード128を最高から最低までのエンゲージメント値116に従ってランク付けする(例えば、ここでは、最高のエンゲージメント値116を有するブランチ132またはノード128がユーザに最初に提示される)。メッセージングプラットホーム104は、そのスコアリングアルゴリズム内に相互エンゲージメント確率124を組み込む(または予測する)ため、メッセージングプラットホーム104は、メッセージングプラットホーム104におけるより多くの会話を奨励する。 In some examples, timeline manager 142 selects nodes 128 with high engagement values (or engagement values 116 above a threshold level) for inclusion in the set of messages provided to client application 154 . In some examples, the timeline manager 142 ranks the selected branches 132 and/or nodes 128 according to engagement value 116 from highest to lowest (e.g., here the branch 132 with the highest engagement value 116 or node 128 is presented to the user first). Because messaging platform 104 incorporates (or predicts) mutual engagement probabilities 124 within its scoring algorithm, messaging platform 104 encourages more conversations on messaging platform 104 .

いくつかの例では、ランク付けされたリスト158は、ユーザに関連性があると決定された会話グラフ126のメッセージのサブセットを表す。例えば、会話グラフ126のいくつかのメッセージは、第1のユーザに関連性があってよく、一方、会話グラフ126の他のメッセージは、第2のユーザに関連性があってよい。対照的に、いくつかの従来のアプローチは、各々について同一の閲覧を提供することができる投票ベースの機構を用いる。さらに詳細には、エンゲージメント予測器125は、第1のユーザに関連する信号106(例えば、エンゲージメント履歴、接続グラフデータなど)を取得してよく、会話グラフ126におけるメッセージごとに、次いでエンゲージメント値116を計算するように用いられる予測結果118を取得してよい。タイムラインマネージャ142は、予測マネージャ110からエンゲージメント値116を受信してよく、次いで、エンゲージメント値116(ユーザが会話を続ける可能性を増加させ得る(例えば、相互エンゲージメント確率124を組み込むことによって))を用いて会話グラフ126のメッセージをランク付けしてよい。 In some examples, ranked list 158 represents a subset of messages in conversation graph 126 determined to be relevant to the user. For example, some messages in conversation graph 126 may be relevant to a first user, while other messages in conversation graph 126 may be relevant to a second user. In contrast, some conventional approaches use vote-based mechanisms that can provide identical views for each. More specifically, the engagement predictor 125 may obtain signals 106 (e.g., engagement history, connection graph data, etc.) associated with the first user, and for each message in the conversation graph 126, then the engagement value 116. Predicted results 118 used to compute may be obtained. The timeline manager 142 may receive the engagement value 116 from the prediction manager 110 and then apply the engagement value 116 (which may increase the likelihood that the user will continue the conversation (eg, by incorporating mutual engagement probability 124)). may be used to rank messages in conversation graph 126 .

しかしながら、第2のユーザについて、エンゲージメント予測器125は、第2のユーザに関連する信号106を取得してよく、次いでエンゲージメント値116を計算するように用いられる第2のユーザに合わせられた予測結果118を取得してよい。次いで、タイムラインマネージャ142は、エンゲージメント値116を用いて、会話グラフ126におけるメッセージをランク付けしてよい。このように、第2のユーザのためにクライアントアプリケーション154に表示されるランク付けされたリスト158は、第1のユーザのためにクライアントアプリケーション154に表示されるランク付けされたリスト158のメッセージとは異なってよい。 However, for a second user, the engagement predictor 125 may obtain the signal 106 associated with the second user and then predictive results tailored to the second user used to calculate the engagement value 116. 118 may be obtained. Timeline manager 142 may then rank messages in conversation graph 126 using engagement value 116 . Thus, the ranked list 158 displayed in the client application 154 for the second user is different from the messages in the ranked list 158 displayed in the client application 154 for the first user. can be different.

メッセージングプラットホーム104は、予測モデル112(例えば、正のエンゲージメントモデル115、負のエンゲージメントモデル117、および相互エンゲージメントモデル119)を訓練する予測モデルトレーナ140を備える。メッセージングプラットホーム104は、エンゲージメント予測器125が会話閲覧を決定する時に予測結果118を決定することが可能であるように、訓練された予測モデル112をエンゲージメント予測器125に提供する。いくつかの例では、予測モデルトレーナ140は、予測モデル112を再訓練し(およびそれによって)更新するように、定期的に(例えば、毎日、毎週、毎月)実行するように構成されている。いくつかの例では、予測モデルトレーナ140は、訓練データ148を用いて予測モデル112を訓練するように、オフラインモードにて動作し、次いで、予測マネージャ110がアクティブである時にオンラインモードにてもちいられるように、予測モデル112を予測マネージャ110に対し送信する。いくつかの例では、予測モデルトレーナ140は、正のエンゲージメントモデル115、負のエンゲージメントモデル117、および相互エンゲージメントモデル119の重み付けおよびバイアスを予測マネージャ110に送信する。 Messaging platform 104 includes a predictive model trainer 140 that trains predictive models 112 (eg, positive engagement model 115, negative engagement model 117, and mutual engagement model 119). Messaging platform 104 provides trained predictive model 112 to engagement predictor 125 so that engagement predictor 125 can determine predicted outcome 118 when determining conversation viewing. In some examples, predictive model trainer 140 is configured to run periodically (eg, daily, weekly, monthly) to retrain (and thereby update) predictive model 112 . In some examples, predictive model trainer 140 operates in offline mode to train predictive model 112 using training data 148, and is then employed in online mode when predictive manager 110 is active. As such, the prediction model 112 is sent to the prediction manager 110 . In some examples, predictive model trainer 140 sends the weightings and biases of positive engagement model 115 , negative engagement model 117 , and cross-engagement model 119 to prediction manager 110 .

いくつかの例では、予測モデルトレーナ140は、サーバコンピュータ102上にて実行する。いくつかの例では、予測モデルトレーナ140は、サーバコンピュータ102とは別個のコンピューティングデバイス上にて実行する。ここで、予測モデルトレーナ140とエンゲージメント予測器125とは、互いにネットワーキングインタフェースにより通信する。図1Dに示されるように、予測モデルトレーナ140は、1つまたは複数の機械学習アルゴリズム149に従って、訓練データ148を用いて予測モデル112を訓練する。訓練データ148は、信号106について説明されたデータのうちの1つまたは複数(または任意の組合せ)を含んでよい。データは、以前の期間、例えば、ここ1日、ここ1ヶ月、ここ1年などからの履歴データ、であってよい。例えば、訓練データ148は、データ構造関連信号101、健康関連信号103、エンゲージメント信号105、ソーシャルグラフ信号107、履歴集約信号109、およびコンテンツ関連信号111を含む。 In some examples, predictive model trainer 140 executes on server computer 102 . In some examples, predictive model trainer 140 executes on a computing device separate from server computer 102 . Here, predictive model trainer 140 and engagement predictor 125 communicate with each other over a networking interface. As shown in FIG. 1D, predictive model trainer 140 trains predictive model 112 using training data 148 according to one or more machine learning algorithms 149 . Training data 148 may include one or more (or any combination) of the data described for signal 106 . The data may be historical data from a previous period of time, eg, the last day, the last month, the last year, and so on. For example, training data 148 includes data structure related signals 101 , health related signals 103 , engagement signals 105 , social graph signals 107 , history aggregation signals 109 , and content related signals 111 .

図1Eは、一態様に係る予測モデル112を訓練するための訓練データ148を取得する一例を示す。例えば、タイムラインマネージャ142は、クライアントアプリケーション154に対しメッセージのストリームをインジェクションしてよい。1つまたは複数のストリームインジェクションの一部として、タイムラインマネージャ142は、インジェクションログ127におけるメッセージインジェクションに関する情報を記憶してよい。インジェクションログ127は、どのメッセージがクライアントアプリケーション154に提供されたかを識別してよく、インジェクションに関連付けられているあるフィーチャを識別してよい。いくつかの例では、フィーチャは、上記の信号106のいずれかに関連する情報を含んでよい。これに加えて、インジェクションログ127は、1つまたは複数の会話グラフ126のメッセージに関連付けられている予測結果118および/またはエンゲージメント値116などの予測マネージャ110に関する詳細を含んでよい。ユーザがクライアントアプリケーション154においてメッセージと対話する際、クライアントイベントログ123は、ユーザがメッセージにリプライしたか、メッセージをお気に入りに入れたかまたはいいねしたか、メッセージを再共有したかなどのユーザエンゲージメント情報を記憶する。いくつかの例では、クライアントイベントログ123は、メッセージが写真またはビデオを有するか、および/またはメッセージが会話グラフ126におけるある深さから来たものであるかなどの情報を含む。クライアントイベントログ123における情報は、メッセージングプラットホーム104における記憶のためにメッセージングプラットホーム104に対し送信されてよい。訓練データ148は、クライアントイベントログ123からの情報およびインジェクションログ127からの情報を含んでよい。訓練データ148は、予測モデル112を訓練するように用いられる。いくつかの例では、予測モデルトレーナ140は、オフライン分析により予測モデル112を定期的に訓練し、訓練の結果(例えば、重み付け/バイアス)を予測マネージャ110に対し送信する。 FIG. 1E illustrates an example of obtaining training data 148 for training predictive model 112 according to one aspect. For example, timeline manager 142 may inject a stream of messages to client application 154 . As part of one or more stream injections, timeline manager 142 may store information about message injections in injection log 127 . Injection log 127 may identify which messages were provided to client application 154 and may identify certain features associated with the injection. In some examples, the features may include information related to any of the signals 106 described above. Additionally, injection log 127 may include details about prediction manager 110 , such as prediction results 118 and/or engagement values 116 associated with one or more conversation graph 126 messages. As the user interacts with the message in the client application 154, the client event log 123 captures user engagement information such as whether the user has replied to the message, favorited or liked the message, and re-shared the message. Remember. In some examples, client event log 123 includes information such as whether the message has a photo or video and/or whether the message came from some depth in conversation graph 126 . Information in client event log 123 may be sent to messaging platform 104 for storage in messaging platform 104 . Training data 148 may include information from client event log 123 and information from injection log 127 . Training data 148 is used to train predictive model 112 . In some examples, predictive model trainer 140 periodically trains predictive model 112 by offline analysis and sends training results (eg, weights/biases) to predictive manager 110 .

いくつかの例では、メッセージングプラットホーム104は、会話グラフ126のメッセージに対して2レベルランキング機構を行うように構成されている。例えば、2レベルランキング機構は、メッセージングプラットホーム104上の会話における罵りに対処するための効果的な機構を提供してよい。いくつかの例では、2レベルランキングは、ハードランキングとソフトランキングとを含む。いくつかの例では、ハードランキングは、メッセージが罵りであるおよび/または作成者が罵りがちであると考えられている確信のレベルに基づいて、会話グラフ126のメッセージを異なるセクション(またはグループ)へとセクショニングすることを含む。いくつかの例では、ハードランキングは、会話閲覧リクエスト121をリクエストするユーザの視点からパーソナライズされない。むしろ、ハードランキングは、コンテンツ自身に関する信号および/またはメッセージの作成者に関する信号を用いて行われてよい。いくつかの例では、ソフトランキングは、予測結果118を計算することと、会話グラフ126におけるメッセージについてのエンゲージメント値116を生成することと、次いでエンゲージメント値116に従って各セクションにおけるメッセージをランク付けすることとを含む。いくつかの例では、上に説明されたように、ソフトランキングは、会話閲覧リクエスト121をリクエストするユーザの視点からパーソナライズされる。このようにして、より高い品質セクションからのメッセージが、エンゲージメント値116に従ってランク付けされたユーザに対し提示される。いくつかの例では、ハードランキングが最初に行われ、次いで、ソフトランキングが続く。しかしながら、いくつかの例では、ハードランキングは、ハードランキングを行うように、予測モデル112の出力を用いることによってパーソナライズされることが可能である。 In some examples, messaging platform 104 is configured to perform a two-level ranking mechanism for messages in conversation graph 126 . For example, a two-level ranking mechanism may provide an effective mechanism for dealing with swearing in conversations on messaging platform 104 . In some examples, the two-level ranking includes hard ranking and soft ranking. In some examples, hard ranking divides messages in conversation graph 126 into different sections (or groups) based on the level of confidence that the message is profanity and/or that the author is profane. including sectioning with In some examples, hard rankings are not personalized from the perspective of the user requesting the View Conversation Request 121 . Rather, hard ranking may be done using signals about the content itself and/or signals about the creator of the message. In some examples, soft ranking includes computing predicted results 118, generating engagement values 116 for messages in conversation graph 126, and then ranking messages in each section according to engagement values 116. including. In some examples, soft rankings are personalized from the perspective of the user requesting the View Conversation Request 121, as described above. In this way, messages from higher quality sections are presented to users ranked according to engagement value 116 . In some examples, hard ranking is performed first, followed by soft ranking. However, in some examples, hard rankings can be personalized by using the output of predictive model 112 to do hard rankings.

図1Aおよび図1Fについて示されるように、いくつかの例では、メッセージングプラットホーム104は、メッセージのコンテンツ品質に基づいて会話グラフ126のメッセージを複数のセクション160へと分類する(例えば、セクショニングする)ように構成されているコンテンツ品質分類器147を備えてよい。メッセージのコンテンツ品質は、メッセージレベルまたは作成者レベルにて罵り(または毒がある)である確率(または確信)を含んでよい。いくつかの例では、コンテンツ品質分類器147は、特定のメッセージについて罵りである確率を決定(または受信)してよい。(例えば、これは、コンテンツ自身が罵りであり得るかまたは作成者もしくはメッセージを生成するアカウントが罵り挙動にリンクされ得る確率に基づいてよい)。罵りである確率が比較的高い(またはメッセージおよび/または作成者が罵りであると考えられる確信レベルが比較的高い)場合、コンテンツ品質分類器147は、メッセージを1つのセクション160(例えば、低品質または罵りセクション)へと分類してよい。または、罵りである確率が比較的低い(またはメッセージおよび/または作成者が罵りであると考えられる確信レベルが比較的低い)場合、コンテンツ品質分類器147は、メッセージを別のセクション160(例えば、高品質または罵りでないセクション)へと分類してよい。換言すると、コンテンツ品質分類器147は、会話グラフ126のノード128(またはブランチ132)を複数のセクション160へと分割するように構成されている。各セクション160は、品質レベル(または罵り(もしくは毒がある)レベル)の異なるカテゴリ化(または分類)を参照してよい。コンテンツ品質分類器147は、第1のメッセージが比較的低品質であり、第2のメッセージが比較的高品質であると決定してよい。ここで、コンテンツ品質分類器147は、第1のメッセージ(または第1のメッセージを含むブランチ132)を第1のセクション(例えば、第1のセクションは低品質セクションと考えられている)に割り当ててよく、第2のメッセージ(または第2のメッセージを含むブランチ132)を第2のセクション(例えば、第2のセクションは高品質セクションと考えられている)に割り当ててよい。 As shown with respect to FIGS. 1A and 1F, in some examples, messaging platform 104 may classify (eg, section) messages of conversation graph 126 into multiple sections 160 based on the content quality of the messages. may comprise a content quality classifier 147 configured as: The content quality of a message may include the probability (or belief) of being abusive (or poisonous) at the message level or author level. In some examples, content quality classifier 147 may determine (or receive) a probability of being an abusive for a particular message. (For example, this may be based on the probability that the content itself may be abusive or the creator or account generating the message may be linked to abusive behavior). If the probability of being an abusive is relatively high (or the level of confidence that the message and/or creator is considered an abusive is relatively high), the content quality classifier 147 classifies the message into one section 160 (e.g., low quality). or swearing section). Alternatively, if the probability of being an abusive is relatively low (or the level of confidence that the message and/or creator is considered an abusive is relatively low), the content quality classifier 147 classifies the message into another section 160 (e.g., high quality or non-swear section). In other words, content quality classifier 147 is configured to divide node 128 (or branch 132 ) of conversation graph 126 into multiple sections 160 . Each section 160 may refer to a different categorization (or classification) of quality level (or cursed (or poisonous) level). Content quality classifier 147 may determine that the first message is of relatively low quality and the second message is of relatively high quality. Here, content quality classifier 147 assigns the first message (or branch 132 containing the first message) to the first section (eg, the first section is considered a low quality section). Well, the second message (or branch 132 containing the second message) may be assigned to the second section (eg, the second section is considered a high quality section).

コンテンツ品質分類器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は、傍観者によって報告されレビューされた場合に、または低品質セクション162は、信頼できないリンクを含む場合、またはメッセージを投稿するアカウントが高確率にて罵り挙動にリンクされている場合に、罵りであると判断される可能性が高いメッセージを含む。 The classification or sectioning performed by content quality classifier 147 may be considered the first part (eg, hard ranking) of a two-level ranking mechanism. In some examples, section 160 may include two or more different sections, each representing a separate quality category or classification. In some examples, section 160 includes 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 taxonomy. Although three sections 160 are shown in FIG. 1F, sections 160 may include any number of sections, including two sections or any number greater than three. After being classified by content quality classifier 147, low quality section 162 contains or identifies nodes 128 (or branches 132) from conversation graph 126 that have been determined to be of low quality, and medium quality section 164 contains or identifies nodes of medium quality. and high quality section 166 contains or identifies nodes 128 (or branches 132) from conversation graph 126 that have been determined to be of high quality. contains or identifies In some examples, medium quality section 164 includes messages that may be abusive. Alternatively, there is a probability that the account posting the message could be linked with swearing behavior with moderate confidence. In some examples, a low quality section 162 may be reported and reviewed by a bystander, or a low quality section 162 may contain untrustworthy links, or an account posting a message may have a high probability of abusive behavior. Contains messages that would likely be judged to be profanity if linked to.

いくつかの例では、コンテンツ品質分類器147は、会話グラフ126のノード128(またはブランチ132)をセクション160へと分類する分類モデル161(または複数のモデル)を含む。いくつかの例では、分類モデル161は、1つまたは複数の機械学習アルゴリズムに適用される訓練データを用いて訓練される機械学習モデルである。いくつかの例では、分類モデル161は、ニューラルネットワークを含む。訓練データは、ある期間(例えば、1日、1週、1月、1年など)にわたって取得されてよく、次いで、オフラインモードにおいて分類モデル161を訓練(または再訓練)するように用いられてよい。ここで、更新された分類モデル161は、コンテンツ品質分類器147に対し送信される。 In some examples, content quality classifier 147 includes a classification model 161 (or models) that classifies nodes 128 (or branches 132 ) of conversation graph 126 into sections 160 . 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, classification model 161 includes a neural network. Training data may be obtained over a period of time (eg, a day, a week, a month, a year, etc.) and then used to train (or retrain) the classification model 161 in offline mode. . The updated classification model 161 is now sent to the content quality classifier 147 .

コンテンツ品質分類器147は、分類モデル161に関連する1つまたは複数の信号163を取得し、会話グラフ126のどのメッセージが低品質セクション162、中品質セクション164、または高品質セクション166へと分類されるかを決定するように、その信号163を分類モデル161に入力してよい。会話グラフ126の特定のメッセージ(例えば、ノード128)について、分類モデル161の出力は、品質分類、例えば、低品質セクション162、中品質セクション164、または高品質セクション166のいずれかを識別してよい。いくつかの例では、会話グラフ126のノード128(またはブランチ132)は、分類モデル161によって決定されたセクション160により注釈を付される。いくつかの例では、コンテンツ品質分類器147は、ノード128(またはブランチ132)の分類をメッセージングプラットホーム104上のデータストアに記憶する。 Content quality classifier 147 obtains one or more signals 163 associated with classification model 161 to determine which messages in conversation graph 126 are classified into low quality section 162, medium quality section 164, or high quality section 166. That signal 163 may be input to the classification model 161 so as to determine whether the For a particular message (e.g., node 128) of conversation graph 126, the output of classification model 161 may identify a quality classification, e.g., either low quality section 162, medium quality section 164, or high quality section 166. . In some examples, nodes 128 (or branches 132 ) of conversation graph 126 are annotated with sections 160 determined by classification model 161 . In some examples, content quality classifier 147 stores the classification of node 128 (or branch 132 ) in a data store on messaging platform 104 .

会話グラフ126の特定のメッセージを分類するように、いくつかの例では、信号163は、クライアントアプリケーション154によって生成された1つまたは複数の信号および/またはメッセージングプラットホーム104によって生成された1つまたは複数の信号を含む。いくつかの例では、信号163は、予測結果118を決定するように用いられる信号106とは異なる1つまたは複数の信号を含む。いくつかの例では、信号163は、メッセージのコンテンツを表す1つまたは複数の信号を含む。いくつかの例では、信号163は、コンテンツを生成した作成者のユーザ履歴を表す1つまたは複数の信号を含む。いくつかの例では、信号163は、コンテンツを生成した作成者のユーザプロフィールをモデリングする1つまたは複数の信号を含む。いくつかの例では、信号163は、メッセージングプラットホーム104における作成者の挙動をモデリングする1つまたは複数の信号を含む。いくつかの例では、信号163は、メッセージテキスト、ロギング履歴などのユーザの挙動履歴、ユーザが用いているデバイスの種類、何回罵りであると報告されたか、などを表す信号を含んでよい。これらの信号163に基づいて、コンテンツ品質分類器147は、メッセージが罵りであるか、および/またはユーザが罵りがちであるかを予測してよい。それらの確率(または確信もしくはスコア)が決定されると、コンテンツ品質分類器147は、セクショニング決定を行うことが可能である。例えば、メッセージが高い確信により罵りであり、そのメッセージを書いたユーザもまた高い確信により罵りがちである場合、コンテンツ品質分類器147は、そのメッセージを最低品質セクション、例えば低品質セクション162に分類してよい。 To classify a particular message in conversation graph 126, in some examples, signal 163 is one or more signals generated by client application 154 and/or one or more signals generated by messaging platform 104. signal. In some examples, signal 163 includes one or more signals that are different from signal 106 used to determine prediction result 118 . In some examples, signal 163 includes one or more signals representing the content of the message. In some examples, signal 163 includes one or more signals representing the user history of the author who generated the content. In some examples, signals 163 include one or more signals that model the user profile of the author who generated the content. In some examples, signals 163 include one or more signals that model author behavior on messaging platform 104 . In some examples, signals 163 may include signals representing message text, user behavior history such as logging history, type of device the user is using, how many times the user has been reported as swearing, and the like. Based on these signals 163, the content quality classifier 147 may predict whether the message is profanity and/or whether the user is prone to profanity. Once those probabilities (or beliefs or scores) are determined, the content quality classifier 147 can make sectioning decisions. For example, if a message is abusive with high confidence and the user who wrote the message is also abusive with high confidence, content quality classifier 147 classifies the message into the lowest quality section, e.g. you can

いくつかの例では、コンテンツ品質分類器147は、メッセージのメッセージ識別子および/またはコンテンツを生成した作成者のユーザ識別子を受信してよい。メッセージ識別子および/またはユーザ識別子に応答して、コンテンツ品質分類器147は、分類モデル161に入力される信号163を取得してよい。いくつかの例では、コンテンツ品質分類器147は、メッセージのコンテンツをメッセージリポジトリ138から取得するように、メッセージ識別子を用いてよい。いくつかの例では、メッセージ識別子を受信する代わりに、コンテンツ品質分類器147は、メッセージのコンテンツを受信してよい。いくつかの例では、コンテンツ品質分類器147は、図1Cを参照して説明された任意の手法により1つまたは複数のデータサービス165と通信することによって作成者に適用される1つまたは複数の信号を取得するように、ユーザ識別子を用いてよい。いくつかの例では、メッセージの複数のセクション160のうちの1つへの分類は、メッセージの生成の時に行われてよい。いくつかの例では、メッセージの分類は、会話閲覧リクエスト121の受信の時に(またはその付近に)行われる。いくつかの例では、コンテンツ品質分類器147は、信号163を分類モデル161と互換であるフォーマットに変換してよい。 In some examples, content quality classifier 147 may receive the message identifier of the message and/or the user identifier of the author who generated the content. In response to the message identifier and/or user identifier, content quality classifier 147 may obtain signal 163 that is input to classification model 161 . In some examples, content quality classifier 147 may use the message identifier to retrieve the content of the message from message repository 138 . In some examples, instead of receiving a message identifier, content quality classifier 147 may receive the content of the message. In some examples, the content quality classifier 147 applies one or more categorizations to authors by communicating with one or more data services 165 through any of the techniques described with reference to FIG. 1C. A user identifier may be used to acquire the signal. In some examples, the categorization of a message into one of multiple sections 160 may occur at the time of message generation. In some examples, message categorization occurs at (or near) receipt of the view conversation request 121 . In some examples, content quality classifier 147 may convert signal 163 into a format compatible with classification model 161 .

いくつかの例では、タイムラインマネージャ142および/または予測マネージャ110は、サーバ通信インタフェース(例えば、スリフト呼出し、REST呼出し、GraphQLリクエストなど)を通じてコンテンツ品質分類器147と通信してよい。ここで、メッセージ識別子および/またはユーザ識別子は、コンテンツ品質分類器147へと送信される。コンテンツ品質分類器147は、会話グラフ126のノード128(またはブランチ132)に、決定された分類により注釈を付す、および/またはその分類を、分類情報をリクエストするサービスへとサーバ通信インタフェースを介して返す。コンテンツ品質分類器147は、信号163を、メッセージが低品質セクション162、中品質セクション164、または高品質セクション166に対応するコンテンツ品質を有するかを決定するように、予測モデル161に対し提供してよい。いくつかの例では、予測結果118とは異なり、メッセージのセクション160への分類は、会話閲覧リクエスト121に関連付けられているユーザにパーソナライズされない。 In some examples, timeline manager 142 and/or prediction manager 110 may communicate with content quality classifier 147 through a server communication interface (eg, Thrift calls, REST calls, GraphQL requests, etc.). Here, the message identifier and/or user identifier are sent to content quality classifier 147 . The content quality classifier 147 annotates the node 128 (or branch 132) of the conversation graph 126 with the determined classification and/or passes the classification to the service requesting the classification information via the server communication interface. return. Content quality classifier 147 provides signal 163 to predictive model 161 to determine whether the message has a content quality corresponding to low quality section 162, medium quality section 164, or high quality section 166. good. In some examples, unlike predicted results 118 , the categorization of messages into sections 160 is not personalized to the user associated with view conversation request 121 .

会話閲覧リクエスト121に応答して、すでに上に説明されたように、タイムラインマネージャ142は、予測マネージャ110を制御し、会話グラフ126のメッセージ(またはメッセージのサブセット)ごとに予測結果118を生成してよく、予測結果118に基づいてメッセージごとにエンゲージメント値116を計算してよい。例えば、エンゲージメント予測器125は、予測に関連する信号106を取得し、会話グラフ126におけるメッセージ(またはメッセージのサブセット)ごとに予測結果118を決定するように、信号106を予測モデル112に入力してよい。いくつかの例では、予測結果118は、相互エンゲージメント確率124を含む。いくつかの例では、予測結果118は、相互エンゲージメント確率124と、正のエンゲージメント確率120および負のエンゲージメント確率122のうちの1つ以上とを含む。いくつかの例では、予測結果118は、相互エンゲージメント確率124と、正のエンゲージメント確率120と、負のエンゲージメント確率122と、を含む。 In response to view conversation request 121, timeline manager 142 controls prediction manager 110 to generate prediction results 118 for each message (or subset of messages) of conversation graph 126, as already described above. and an engagement value 116 may be calculated for each message based on the predicted results 118 . For example, engagement predictor 125 obtains prediction-related signal 106 and inputs signal 106 into predictive model 112 to determine predicted outcome 118 for each message (or subset of messages) in conversation graph 126. good. In some examples, prediction results 118 include cross-engagement probabilities 124 . In some examples, predicted results 118 include mutual engagement probabilities 124 and one or more of positive engagement probabilities 120 and negative engagement probabilities 122 . In some examples, predicted results 118 include mutual engagement probability 124 , positive engagement probability 120 , and negative engagement probability 122 .

エンゲージメントスコアラ114は、予測結果118を用いて(例えば、エンゲージメント値116を生成するように予測結果118を組み合わせて)、それぞれのメッセージについてエンゲージメント値116を計算してよい。次いで、エンゲージメント値116は、メッセージを別々に、低品質セクション162、中品質セクション164、および高品質セクション166にランク付けするように、タイムラインマネージャ142によって用いられる。 Engagement scorer 114 may use prediction results 118 (eg, combine prediction results 118 to produce engagement value 116) to calculate engagement value 116 for each message. The engagement value 116 is then used by the timeline manager 142 to rank the messages into low quality section 162, medium quality section 164, and high quality section 166 separately.

いくつかの例では、タイムラインマネージャは、コンテンツ品質分類器147から低品質セクション162と分類されたメッセージのリストを、コンテンツ品質分類器147から中品質セクション164と分類されたメッセージのリストを、またhコンテンツ品質分類器147から高品質セクション166と分類されたメッセージのリストを受信してよい。また、タイムラインマネージャは、予測マネージャ110からエンゲージメント値116を受信してよい。それぞれのセクション160内のメッセージについてのエンゲージメント値116を用いた特定のセクション160内のメッセージのランク付けは、図1Fの2レベルランキング機構の第2の部分と考えられてよい。いくつかの例では、2レベルランキング機構の第2の部分は、メッセージのソフトランキングと考えられてよい。 In some examples, the timeline manager provides a list of messages classified as low quality section 162 from content quality classifier 147, a list of messages classified as medium quality section 164 from content quality classifier 147, and h Content quality classifier 147 may receive a list of messages classified as high quality section 166 . The timeline manager may also receive engagement values 116 from the forecast manager 110 . Ranking messages within a particular section 160 using 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 a soft ranking of messages.

いくつかの例では、タイムラインマネージャ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内においてランク付けされる。 In some examples, timeline manager 142 generates first ranked list 158-1 of messages categorized in low quality section 162, ranked using engagement value 116 from prediction manager 110. may be generated. In some examples, first ranked list 158-1 includes branches 132 of conversation graph 126 classified as low quality. Branches 132 are ranked within the poor quality section 162 according to their engagement value 116 . Timeline manager 142 may generate a second ranked list 158 - 2 of messages categorized in medium quality section 164 ranked using engagement values 116 from prediction manager 110 . In some examples, second ranked list 158-2 includes branches 132 of conversation graph 126 classified as medium quality. Branches 132 are ranked within medium quality section 164 according to their engagement value 116 . Timeline manager 142 may generate a third ranked list 158 - 3 of messages categorized in high quality section 166 ranked using engagement values 116 from prediction manager 110 . In some examples, third ranked list 158-3 includes branches 132 of conversation graph 126 classified as high quality. Branches 132 are ranked within high quality section 166 according to their engagement value 116 .

タイムラインマネージャ142は、クライアントアプリケーション154にてレンダリングされるランクに従って、高品質セクション166のメッセージの少なくともサブセットを送信(例えば、第3のランク付けされたリスト158-3の少なくとも一部を送信)してよい。このようにして、クライアントアプリケーション154のユーザは、メッセージのエンゲージメント値116に従ってランク付けもされた高品質と考えられているメッセージを閲覧してよい。タイムラインマネージャ142は、会話グラフ126から追加のメッセージを閲覧するための後続のリクエストをリクエストしてよい。ここで、タイムラインマネージャ142は、第2のランク付けされたリスト158-2の少なくとも一部を、続いて第1のランク付けされたリスト158-1の少なくとも一部を送信してよい。 Timeline manager 142 transmits at least a subset of messages in high quality section 166 (eg, at least a portion of third ranked list 158-3) according to rank rendered at client application 154. you can In this manner, a user of client application 154 may view messages that are considered high quality that are also ranked according to the message's engagement value 116 . Timeline manager 142 may request subsequent requests to view additional messages from conversation graph 126 . Here, timeline manager 142 may send at least a portion of second ranked list 158-2 followed by at least a portion of first ranked list 158-1.

いくつかの例では、タイムラインマネージャ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、続いて第1のランク付けされたリスト158-1の他の5つのメッセージを送信してよい。 In some examples, the timeline manager 142 selects the third ranked list 158-3, the second ranked list 158-2, followed by the first ranked list 158-1. Rank the messages in the conversation graph 126 according to order. Thus, client application 154 first renders messages from high quality section 166 ranked according to engagement value 116, renders messages from medium quality section 164 ranked according to engagement value 116, and finally , render messages from the low quality section 162 ranked according to engagement value 116 . If the high quality section 166 contains 10 messages, the medium quality section 164 contains 10 messages, and the low quality section 162 contains 10 messages, and the threshold of displayed messages is 15. , the client application 154 renders the entire third ranked list 158-3 and the five messages of the second ranked list 158-2. Timeline manager 142 may receive requests to display additional messages in conversation graph 126 . The timeline manager 142 may now send the second ranked list 158-2, followed by the other five messages of the first ranked list 158-1.

いくつかの例では、ハードランキングは、ハードランキングを行うように、予測モデル112の出力を用いることによってパーソナライズされることが可能である。例えば、予測マネージャ110は、上に説明されたように、予測結果118とエンゲージメント値116とを決定してよい。コンテンツ品質分類器147は、ハードランキング技術に従ってメッセージを分類(および/またはランク付け)するように、予測マネージャ110の出力を用いてよく、ハードランキングは、会話閲覧リクエスト121を開始したユーザの視点からパーソナライズされる。 In some examples, hard rankings can be personalized by using the output of predictive model 112 to do hard rankings. For example, prediction manager 110 may determine prediction results 118 and engagement values 116 as described above. Content Quality Classifier 147 may use the output of Prediction Manager 110 to classify (and/or rank) messages according to a hard ranking technique, which is from the perspective of the user who initiated View Conversation Request 121. Personalized.

図2は、一態様に係るニューラルネットワーク219を示す。ニューラルネットワーク219は、図1A~図1Dのメッセージングシステム100の相互エンゲージメントモデル119の一例であってよい。しかしながら、図2を参照して説明されたフィーチャは、正のエンゲージメントモデル115および負のエンゲージメントモデル117を含む予測モデル112のいずれかに適用されてよい。いくつかの例では、ニューラルネットワーク219は、図1Fの分類モデル161の一例であってよい。ニューラルネットワーク219は、相互エンゲージメント確率224を出力するように構成されている。相互エンゲージメント確率224は、図1Aの相互エンゲージメント確率124の一例であってよい。ニューラルネットワーク219は、ノード260の相互接続されたグループであってよく、ここで、各ノード260は人工ニューロンを表す。ノード260は互いに層により接続されており、1つの層の出力が次の層の入力となる。ニューラルネットワーク219は、入力層262によって受信された入力X,X~X(例えば、信号106)を変換し、それを1つまたは複数の隠れ層264(例えば、図2は、1つの隠れ層264を示す)を通じて変換し、出力層266により出力Y(例えば、相互エンゲージメント確率124)を生成する。各層は、1組のノード260のサブセットからなる。 FIG. 2 illustrates a neural network 219 according to one aspect. Neural network 219 may be an example of mutual engagement model 119 of messaging system 100 of FIGS. 1A-1D. However, the features described with reference to FIG. 2 may be applied to any of predictive models 112 including positive engagement model 115 and 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 . Cross-engagement probability 224 may be an example of cross-engagement probability 124 in FIG. 1A. Neural network 219 may be an interconnected group of nodes 260, where each node 260 represents an artificial neuron. Nodes 260 are connected to each other by layers, with the output of one layer being the input of the next layer. Neural network 219 transforms the input X 1 , X 2 -X n (eg, signal 106) received by input layer 262 and feeds it to one or more hidden layers 264 (eg, FIG. ) to produce an output Y 1 (eg, mutual engagement probability 124 ) by output layer 266 . Each layer consists of a subset of the set of nodes 260 .

相互エンゲージメント確率224を取得するようにニューラルネットワーク219を用いることは、重み付けされバイアスされた数値入力を、ニューラルネットワーク219における相互接続されたノード260に適用し、それらの出力を計算することを含んでよい。ニューラルネットワーク219における各ノード260に対し適用される重み付けおよびバイアスは、例えば、機械学習アルゴリズム149を用いて(例えば、図1Aの予測モデルトレーナ140によって)、ニューラルネットワーク219を訓練することによって取得されてよい。ニューラルネットワーク219におけるノード260は、少なくとも入力層262と出力層266とを含む2つ以上の層に編成されてよい。複数層のニューラルネットワーク219では、1つの層からの出力は、次の層への入力としての役割をしてよい。外部出力接続を有しない層は、隠れ層264と呼ばれてよい。各ノード260の出力は、その入力とバイアスとの重み付けされた合計の関数である。 Using neural network 219 to obtain mutual engagement probabilities 224 includes applying weighted and biased numerical inputs to interconnected nodes 260 in neural network 219 and calculating their outputs. good. The weightings and biases applied to each node 260 in neural network 219 are obtained by training neural network 219, for example, using machine learning algorithm 149 (eg, by predictive model trainer 140 of FIG. 1A). good. Nodes 260 in neural network 219 may be organized into two or more layers, including at least an input layer 262 and an output layer 266 . In a multi-layer neural network 219, the output from one layer may serve as the input to the next layer. Layers with no 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 and bias.

相互エンゲージメント確率224を取得するように、特徴値のベクトル(X...X)は、入力層262における各ノード260に対する入力として適用される。いくつかの例では、特徴値のベクトル(X...X)は、上に説明された信号106の値を含む。入力層262は、隠れ層264におけるノード260の各々に値を分配する。隠れ層264におけるノード260に到達すると、各入力ノードからの値は、ある重み付けが乗算され、得られた重み付け値は足し合わされ、重み付けされたバイアス値に加算され結合値を生成する。結合値は、値を出力する変換または活性化関数を通過する。次に、隠れ層264からの出力は、ニューラルネットワーク219の出力層266におけるノード260へと分配される。出力層266におけるノード260に到達すると、各隠れ層ノードからの値は、ある重み付けが乗算され、得られた重み付け値は足し合わされ、結合値を生成するように重み付けされたバイアス値に加算される。結合値は、Y(例えば、相互エンゲージメント確率224)を出力する変換または活性化関数を通過する。 A vector of feature values (X 1 . . . X N ) is applied as input to each node 260 in input layer 262 to obtain mutual engagement probabilities 224 . In some examples, the vector of feature values (X 1 . . . X N ) includes the values of signal 106 described above. Input layer 262 distributes values to each of the nodes 260 in hidden layer 264 . Upon reaching node 260 in 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 bound value is passed through a transformation or activation function that outputs the value. The output from hidden layer 264 is then distributed to nodes 260 in output layer 266 of neural network 219 . Upon reaching node 260 in output layer 266, the values from each hidden layer node are multiplied by a weight and the resulting weighted values are summed and added to the weighted bias value to produce the combined value. . The combined values are passed through a transformation or activation function that outputs Y 1 (eg, mutual engagement probability 224).

図3は、一態様に係る会話グラフのメッセージングをランク付けするためのメッセージングプラットホーム104の例示的な動作を示すフローチャート300を示す。
動作302は、ネットワーク150を通じて、サーバコンピュータ102によって実行可能なメッセージングプラットホーム104に記憶されている会話グラフ126のメッセージを取り出すように、会話閲覧リクエスト121を受信する工程を含む。動作304は、メッセージングプラットホーム104が、予測モデル112を用いて、会話グラフ126の複数のメッセージの各々について複数の予測結果を決定する工程を含む。ここで、複数の予測結果118は、相互エンゲージメント確率124を含む。動作306は、メッセージングプラットホーム104が、予測結果118に基づいて複数のメッセージをランク付けする工程を含む。動作308は、メッセージングプラットホーム104がネットワーク150を通じて、ランクに従ってクライアントアプリケーション154においてレンダリングされる複数のメッセージの少なくともサブセットを送信する工程を含む。
FIG. 3 depicts a flowchart 300 illustrating exemplary operation of the messaging platform 104 for ranking conversation graph messaging according to an aspect.
Operation 302 includes receiving conversation view request 121 to retrieve messages of conversation graph 126 stored in messaging platform 104 executable by server computer 102 over network 150 . Act 304 includes messaging platform 104 using predictive model 112 to determine a plurality of predicted outcomes for each of the plurality of messages in conversation graph 126 . Here, multiple prediction results 118 include mutual engagement probabilities 124 . Act 306 includes messaging platform 104 ranking the plurality of messages based on predicted results 118 . Act 308 includes messaging platform 104 sending at least a subset of the plurality of messages rendered in client application 154 according to rank over network 150 .

図4は、一態様に係る会話グラフのメッセージをランク付けするためのメッセージングプラットホームの例示的な動作を示す。
動作402は、ネットワーク150を通じて、サーバコンピュータ102によって実行可能なメッセージングプラットホーム104に記憶されている会話グラフ126のメッセージを取り出すように、会話閲覧リクエスト121を受信する工程を含む。動作404は、メッセージングプラットホーム104が、予測モデル112を用いて、会話グラフ126の複数のメッセージの各々について複数の予測結果を決定する決定工程を含む。決定工程は、予測モデル112に関連性のある複数の信号106を取得する工程を含んでよい。ここで、複数の信号は、会話グラフ126に関連するデータ構造関連信号101を含み、複数の予測結果118を決定するように、複数の信号106を予測モデル112に入力する。動作406は、メッセージングプラットホーム104が、予測結果118に基づいて複数のメッセージをランク付けする工程を含む。動作408は、メッセージングプラットホーム104がネットワーク150を通じて、ランクに従ってクライアントアプリケーション154においてレンダリングされる複数のメッセージの少なくともサブセットを送信する工程を含む。
FIG. 4 illustrates exemplary operation of a messaging platform for ranking messages of a conversation graph according to one aspect.
Operation 402 includes receiving conversation view request 121 to retrieve messages of conversation graph 126 stored in messaging platform 104 executable by server computer 102 over network 150 . Operation 404 includes determining, in which messaging platform 104 uses predictive model 112 to determine a plurality of predicted outcomes for each of the plurality of messages in conversation graph 126 . The determining step may include obtaining a plurality of signals 106 that are relevant to predictive model 112 . Here, the plurality of signals includes data structure related signals 101 associated with the conversation graph 126 and inputs the plurality of signals 106 to the predictive model 112 to determine the plurality of predicted outcomes 118 . Act 406 includes messaging platform 104 ranking the plurality of messages based on predicted results 118 . Act 408 includes messaging platform 104 sending at least a subset of the plurality of messages rendered in client application 154 according to rank over network 150 .

図5は、一態様に係る会話グラフのメッセージングをランク付けするためのメッセージングプラットホームの例示的な動作を示すフローチャート500を示す。
動作502は、メッセージングプラットホーム104が、会話グラフ126のメッセージを、メッセージのコンテンツ品質に基づいて複数のセクション160へと分類する工程を含む。ここで、複数のセクション160は、第1のセクションと第2のセクションとを含む。第1のセクションは、第2のセクションのメッセージよりも高品質であると決定された、会話グラフ126からのメッセージを有する。動作504は、メッセージングプラットホーム104が、予測モデル112を用いて、会話グラフ126の複数のメッセージの各々について複数の予測結果を決定する決定工程を含む。動作506は、メッセージングプラットホーム104が、第1のセクションのメッセージを、第1のセクションのメッセージについての予測結果118に基づいてランク付けする工程を含む。動作508は、メッセージングプラットホーム104が、ランクに従ってクライアントアプリケーション154においてレンダリングされる第1のセクションのメッセージの少なくともサブセットを送信する工程を含む。
FIG. 5 depicts a flowchart 500 illustrating exemplary operation of a messaging platform for ranking conversation graph messaging in accordance with an aspect.
Operation 502 includes messaging platform 104 classifying messages in conversation graph 126 into multiple sections 160 based on the content quality of the messages. Here, multiple sections 160 include a first section and a second section. The first section has messages from conversation graph 126 determined to be of higher quality than the messages of the second section. Operation 504 includes determining, in which messaging platform 104 uses predictive model 112 to determine a plurality of predicted outcomes for each of the plurality of messages in conversation graph 126 . Act 506 includes messaging platform 104 ranking the first section messages based on predicted results 118 for the first section messages. Act 508 includes messaging platform 104 sending at least a subset of the messages of the first section rendered in client application 154 according to rank.

上記では、多数の詳細が説明されている。しかしながら、本開示の利益を有する当業者には、本開示の実装は、これらの特定の詳細なしに実施されうることが明らかである。いくつかの例では、周知の構造およびデバイスは、説明を不明瞭にすることを避けるように、詳細ではなく、ブロック図の形態により示されている。 Numerous details have been described above. 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.

詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作のアルゴリズムおよび記号表現の観点から提示されている。これらのアルゴリズム的な記述および表現は、データ処理技術の当業者が、他の当業者に自分の仕事の実質を最も効果的に伝えるべく使用する手段である。アルゴリズムとは、ここでは一般に、所望の結果に至る自己矛盾のない一連の工程であると考えられている。その工程は、物理量の物理的操作を必要とするものである。通常、必ずしもそうではないが、これらの量は、記憶、転送、結合、比較、およびその他の操作が可能である電気信号または磁気信号の形態をとる。これらの信号をビット、値、要素、記号、文字、用語、数などと呼ぶことは、主として一般的な使用上の理由から、時として便利であることが示されている。 Some portions of the detailed descriptions are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and 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 generally thought here to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these 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, or the like.

しかしながら、これらの用語および類似の用語のすべては、適切な物理量と関連付けられるべきであり、これらの量に対して適用される便利なラベルにすぎないことに留意されたい。具体的に別段の定めがなされない限り、上記の議論から明らかなように、記載全体を通じて、「識別する」、「決定する」、「算出する」、「更新する」、「送信する」、「受信する」、「生成する」、「変更する」などの用語を利用した議論は、コンピュータシステムのレジスタおよびメモリ内の(例えば、電子的な)物理量として表現されたデータを、コンピュータシステムメモリもしくはレジスタ内の、または他のそうした情報記憶デバイス、送信デバイス、もしくは表示デバイス内の物理量として同様に表現された他のデータにするように操作および変換する、コンピュータシステムまたは類似の電子コンピューティングデバイスのアクションおよびプロセスに言及していることが理解される。 Note, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, it should be apparent from the discussion above that throughout the description "identify", "determine", "calculate", "update", "transmit", " Discussions using terms such as "receive", "generate", and "modify" refer to data represented as (e.g., electronic) physical quantities in computer system registers and memory as computer system memory or registers. the action of a computer system or similar electronic computing device that manipulates and transforms it into other data similarly represented as physical quantities within or in other such information storage, transmission, or display devices; It is understood that reference is made to processes.

本開示の実装は、本明細書における動作を実行するための装置にも関連する。この装置は、必要な目的のために特別に構成されてよく、コンピュータに記憶されたコンピュータプログラムによって選択的に始動(起動)または再構成されている汎用コンピュータを含んでよい。そうしたコンピュータプログラムは、フロッピディスク、光ディスク、CD-ROM、および磁気光ディスクを含む、任意の種類のディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気もしくは光カード、フラッシュメモリ、または電子命令を記憶するのに適した任意の種類の媒体などの、非一時的コンピュータ可読記憶媒体内に記憶されてよいが、それらに限定されない。 Implementations of the disclosure also relate to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such computer programs may be stored on any kind of disk, including floppy disk, optical disk, CD-ROM and magneto-optical disk, read only memory (ROM), random access memory (RAM), EPROM, EEPROM, magnetic or optical cards, flash It may be stored in a non-transitory computer-readable storage medium, such as, but not limited to, memory or any type of medium suitable for storing electronic instructions.

「例」または「例示的」という語句は、本明細書において、例、事例、または例示として役立つことを意味するために使用される。本明細書において、「例」または「例となる」として説明される、任意の態様または設計は、他の態様または設計よりも好ましいまたは有利であると、必ずしも解釈されるべきではない。むしろ、「例」または「例となる」という語の使用は、具体的なやり方で、概念を提示することが意図されている。本出願において使用される場合、「または」という用語は、排他的な「または」ではなく、包含的な「または」を意味することが意図されている。すなわち、別段の指定がない限り、または文脈から明らかでない限り、「XはAまたはBを含む」は、自然な包含的な順列のいずれかを意味することが意図されている。すなわち、XがAを含む場合、XがBを含む場合、またはXがAとBの両方を含む場合、「XはAまたはBを含む」が、前記の事例のいずれの下において、満たされる。加えて、本出願および添付の特許請求の範囲において使用される場合、冠詞「a」および「an」は、別段の指定がない限り、または単数形に向けられていることが文脈から明らかでない限り、一般に「1つまたは複数」を意味すると解釈されるべきである。さらに、全体を通して「実施」もしくは「1つの実施形態」、または「実施」もしくは「1つの実施」という用語の使用は、そのように説明されない限り、同じ実施形態または実施を意味することは意図されていない。さらに、本明細書において使用される場合、「第1の」、「第2の」、「第3の」、「第4」などの用語は、異なる要素を弁別するためのラベルとして意味されており、それらの数的な指示に従った、序数の意味を必ずしも有さないことがある。 The words "example" or "exemplary" are 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 word "example" or "exemplary" is intended to present concepts in a concrete fashion. As used in this application, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or." That is, unless specified otherwise, or clear from context, "X comprises A or B" is intended to mean any of its natural inclusive permutations. That is, if X contains A, X contains B, or X contains both A and B, then "X contains A or B" is satisfied under any of the above cases. . In addition, as used in this application and the appended claims, the articles "a" and "an" are used unless otherwise specified or clear from the context that they are directed to the singular , should generally be taken to mean "one or more". Further, use of the terms "implementation" or "one embodiment" or "implementation" or "one implementation" throughout is intended to mean the same embodiment or implementation unless so stated. not Moreover, as used herein, the terms “first,” “second,” “third,” “fourth,” etc. are meant as labels to distinguish different elements. and may not necessarily have an ordinal meaning according to their numerical designation.

本明細書において提示されるアルゴリズムおよび表示は、いずれの特定のコンピュータまたは他の装置にも本質的に関連しない。様々な汎用システムが、本明細書における教示に従ったプログラムとともに使用されてよく、または必要とされる方法工程を実行するために、より専門化された装置を構築することが、便利であると分かることがある。様々なこれらのシステムのために必要とされる構造は、以下の説明から現れる。加えて、本開示は、いずれの特定のプログラミング言語も参照せずに、説明される。本明細書において説明される本開示の教示を実施するために、様々なプログラミング言語が、使用されてよいことが理解されよう。 The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. I know something. The required structure for a variety of these systems will appear from the description below. Additionally, the present disclosure is described without 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 disclosure described herein.

上記の説明は、本開示のいくつかの実施の良好な理解を提供するために、具体的なシステム、コンポーネント、および方法などの例など、数々の具体的な詳細を明らかにする。しかしながら、本開示の少なくともいくつかの実施は、これらの具体的な詳細なしに実践されてよいことが、当業者には明らかである。他の事例においては、本開示を不必要に不明瞭にすることを避けるために、よく知られたコンポーネントまたは方法は、詳細に説明されず、または単純なブロック図フォーマットで提示される。したがって、上で明らかにされた具体的な詳細は、例にすぎない。特定の実施は、これらの詳細例から変化するが、依然として本開示の範囲内であることが企図され得る。 The above description reveals numerous specific details, such as examples of specific systems, components, methods, etc., in order to provide a good understanding of some implementations of the disclosure. However, it will be apparent to those skilled in the art that at least some implementations of this 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 disclosed above are only examples. Particular implementations may vary from these detailed examples and still be contemplated within the scope of the present disclosure.

1.予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのコンピュータ実装方法であって、 1. A computer-implemented method for ranking messages in a conversation graph in a messaging platform using predicted results, comprising:
ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージを取り出す会話閲覧リクエストを受信する工程と、 receiving, over a network, a conversation view request to retrieve messages in a conversation graph stored in the messaging platform;
前記メッセージングプラットホームが、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する工程であって、前記複数の予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含む、決定工程と、 the messaging platform determining a plurality of prediction outcomes for each of a plurality of messages in the conversation graph using a prediction model, the plurality of prediction outcomes being a mutual engagement probability, a positive engagement probability, and a negative engagement probability; a decision process, including an engagement probability of
前記複数の予測結果を用いて前記複数のメッセージの各々についてエンゲージメント値を計算する工程と、 calculating an engagement value for each of the plurality of messages using the plurality of prediction results;
前記メッセージングプラットホームが、前記エンゲージメント値に基づいて前記複数のメッセージをランク付けする工程と、 the messaging platform ranking the plurality of messages based on the engagement value;
前記メッセージングプラットホームが、前記ネットワークを通じて、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくとも一部を送信する工程と、を備えるコンピュータ実装方法。 said messaging platform transmitting at least a portion of said plurality of messages rendered in a client application according to said rank over said network.
2.前記相互エンゲージメント確率は、前記メッセージングプラットホームがそれぞれのメッセージに対するリプライを受信すると予測される確率値を含む、1に記載のコンピュータ実装方法。 2. 2. The computer-implemented method of 1, wherein the mutual engagement probability includes a probability value that the messaging platform is expected to receive a reply to each message.
3.前記予測モデルは、1つまたは複数のニューラルネットワークを含む、1または2に記載のコンピュータ実装方法。 3. 3. The computer-implemented method of 1 or 2, wherein the predictive model comprises one or more neural networks.
4.前記メッセージングプラットホームが、前記メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて前記会話グラフを生成する工程であって、前記会話グラフは会話に関連するメッセージのツリーデータ構造を含む、工程をさらに備える、1~3のいずれか一項に記載のコンピュータ実装方法。 4. Further comprising the step of said messaging platform generating said conversation graph based on a reply structure of messages exchanged on said messaging platform, said conversation graph comprising a tree data structure of messages associated with a conversation. , 1-3.
5.前記決定工程は、 5. The determining step includes:
前記メッセージングプラットホームが、前記クライアントアプリケーションと前記メッセージングプラットホームとのうちの1つ以上によって生成された信号を取得する工程と、 the messaging platform acquiring signals generated by one or more of the client application and the messaging platform;
前記メッセージングプラットホームが、前記複数の予測結果を決定するように、前記信号を前記予測モデルに対し入力する工程と、を含む、1~4のいずれか一項に記載のコンピュータ実装方法。 and the messaging platform inputting the signal to the predictive model to determine the plurality of predictive outcomes.
6.前記メッセージングプラットホームが、訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程をさらに備える、1~5のいずれか一項に記載のコンピュータ実装方法。 6. 6. The computer-implemented method of any one of clauses 1-5, further comprising the messaging platform training the predictive model based on a machine learning algorithm input with training data.
7.前記メッセージングプラットホームが、前記会話グラフにおけるメッセージの数が閾値レベルを超えていることに応答して、前記複数のメッセージから候補の一部を選択する工程であって、前記複数の予測結果は、前記候補の一部のメッセージごとに決定される、工程をさらに備える、1~6のいずれか一項に記載のコンピュータ実装方法。 7. the messaging platform selecting a subset of candidates from the plurality of messages in response to a number of messages in the conversation graph exceeding a threshold level, wherein the plurality of predicted results are selected from the 7. The computer-implemented method of any one of clauses 1-6, further comprising: determining for each candidate subset of messages.
8.前記メッセージングプラットホームが、前記ランクに従って前記クライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの第1の部分を送信する工程と、 8. the messaging platform sending a first portion of the plurality of messages to be rendered in the client application according to the rank;
前記メッセージングプラットホームが、前記会話グラフからの追加のメッセージを表示するリクエストを前記クライアントアプリケーションから受信する工程と、 the messaging platform receiving a request from the client application to display additional messages from the conversation graph;
前記メッセージングプラットホームが、前記ランクに従って前記クライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの第2の部分を送信する工程と、をさらに備える、1~7のいずれか一項に記載のコンピュータ実装方法。 8. The computer-implemented method of any one of claims 1-7, further comprising: the messaging platform sending a second portion of the plurality of messages to be rendered in the client application according to the rank.
9.前記会話グラフは、前記会話グラフの前記メッセージを表す複数のノードの配置を有するツリーデータ構造を含み、 9. said conversation graph comprising a tree data structure having an arrangement of a plurality of nodes representing said messages of said conversation graph;
前記方法は、前記メッセージングプラットホームが、前記エンゲージメント値を用いて、前記ツリーデータ構造の1つまたは複数のブランチを選択する工程をさらに備える、1~8のいずれか一項に記載のコンピュータ実装方法。 9. The computer-implemented method of any one of claims 1-8, the method further comprising the messaging platform using the engagement value to select one or more branches of the tree data structure.
10.予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのシステムであって、 10. A system for ranking messages in a conversation graph in a messaging platform using predicted results, comprising:
メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて会話グラフを生成するように構成されている会話グラフマネージャであって、前記会話グラフは会話のメッセージのデータ構造を含む、会話グラフマネージャと、 a conversation graph manager configured to generate a conversation graph based on a reply structure of messages exchanged in a messaging platform, said conversation graph including a data structure of messages of a conversation;
ネットワークを通じてクライアントアプリケーション上のユーザのタイムラインにメッセージのストリームを提供するように構成されているタイムラインマネージャであって、前記ネットワークを通じて、会話閲覧リクエストを前記クライアントアプリケーションから受信するように構成されている、タイムラインマネージャと、 A timeline manager configured to provide a stream of messages to a user's timeline on a client application over a network, and configured to receive conversation view requests from the client application over the network. , the timeline manager, and
前記会話閲覧リクエストに応答して、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定するように構成されているエンゲージメント予測器であって、前記複数の予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含む、エンゲージメント予測器と、 an engagement predictor configured, in response to the view conversation request, to determine a plurality of predicted outcomes for each of a plurality of messages of the conversation graph using a predictive model, the plurality of predicted outcomes being , an engagement predictor including mutual engagement probability, positive engagement probability, and negative engagement probability;
それぞれのメッセージについての前記予測結果を用いて前記複数のメッセージの各々についてエンゲージメント値を計算するように構成されているエンゲージメントスコアラと、を備え、 an engagement scorer configured to calculate an engagement value for each of the plurality of messages using the predicted results for each message;
前記タイムラインマネージャは、前記エンゲージメント値を用いて前記複数のメッセージをランク付けし、前記ランクに従って前記タイムラインにおいてレンダリングされる前記複数のメッセージの少なくとも一部を、前記ネットワークを通じて提供するように構成されている、システム。 The timeline manager is configured to rank the plurality of messages using the engagement value and provide through the network at least a portion of the plurality of messages rendered in the timeline according to the ranking. system.
11.前記相互エンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフのメッセージに対するリプライを受信すると予測される確率値を含み、前記正のエンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフの前記メッセージへの肯定的なユーザエンゲージメントを受信すると予測される確率値を含み、前記負のエンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフの前記メッセージへの否定的なユーザエンゲージメントを受信すると予測される確率値を含む、10に記載のシステム。 11. The mutual engagement probability includes a probability value that the messaging platform expects to receive a reply to the message in the conversation graph, and the positive engagement probability indicates that the messaging platform will receive an acknowledgment to the message in the conversation graph. said negative engagement probability comprises a probability value that said messaging platform is expected to receive negative user engagement to said message of said conversation graph. , 10.
12.前記予測モデルは、相互エンゲージメントモデル、正のエンゲージメントモデル、および負のエンゲージメントモデルを含み、前記エンゲージメント予測器は、前記クライアントアプリケーションと前記メッセージングプラットホームとのうちの1つ以上によって生成された信号を取得し、前記信号を前記相互エンゲージメントモデル、前記正のエンゲージメントモデル、および前記負のエンゲージメントモデルに入力するように、また前記相互エンゲージメント確率、前記正のエンゲージメント確率、および前記負のエンゲージメント確率をそれぞれ取得するように構成されている、10または11に記載のシステム。 12. The predictive models include a mutual engagement model, a positive engagement model, and a negative engagement model, and the engagement predictor obtains signals generated by one or more of the client application and the messaging platform. , to input the signals into the cross-engagement model, the positive engagement model, and the negative engagement model, and to obtain the cross-engagement probability, the positive engagement probability, and the negative engagement probability, respectively. 12. The system of claim 10 or 11, wherein the system is configured to:
13.訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練するように構成されている予測モデルトレーナであって、訓練された前記予測モデルを前記予測マネージャに対し提供するように構成されている、予測モデルトレーナをさらに備える、10~12のいずれか一項に記載のシステム。 13. a predictive model trainer configured to periodically train the predictive model based on one or more machine learning algorithms input with training data, the trained predictive model being provided to the predictive manager; 13. The system of any one of claims 10-12, further comprising a predictive model trainer configured to provide to.
14.複数のソースから候補の一部を選択するように構成されている候補メッセージセレクタをさらに備え、前記複数のソースは、最近投稿されたものに従ってランク付けされた前記会話グラフの前記メッセージを有する第1のソースと、関連性アルゴリズムに従ってランク付けされた前記会話グラフの前記メッセージを有する第2のソースと、を含み、前記候補の一部は、前記第1のソースからのある数のメッセージと前記第2のソースからのある数のメッセージとを含み、前記複数の予測結果は前記候補の一部のメッセージごとに決定される、10~13のいずれか一項に記載のシステム。 14. first, further comprising a candidate message selector configured to select a portion of the candidates from a plurality of sources, the plurality of sources having the messages of the conversation graph ranked according to the most recently posted; and a second source having said messages of said conversation graph ranked according to a relevance algorithm, wherein some of said candidates are a number of messages from said first source and said first 14. The system of any one of claims 10-13, comprising a number of messages from two sources, and wherein said plurality of prediction results is determined for each message of said candidate subset.
15.前記会話グラフの前記データ構造は、前記会話グラフの前記メッセージを表す複数のノードの配置を有するツリーデータ構造を含み、前記タイムラインマネージャは、前記エンゲージメント値を用いて前記ツリーデータ構造のブランチを選択するように構成されている、10~14のいずれか一項に記載のシステム。 15. The data structure of the conversation graph includes a tree data structure having an arrangement of a plurality of nodes representing the messages of the conversation graph, and the timeline manager selects a branch of the tree data structure using the engagement value. 15. The system of any one of claims 10-14, configured to:
16.前記エンゲージメントスコアラは、前記相互エンゲージメント確率に適用される重み付けが前記負のエンゲージメント確率に適用される重み付けよりも高くなるように、前記相互エンゲージメント確率、前記正のエンゲージメント確率、および前記負のエンゲージメント確率の各々に重み付けを適用するように構成されている、10~15のいずれか一項に記載のシステム。 16. The engagement scorer determines the mutual engagement probability, the positive engagement probability, and the negative engagement probability such that the weighting applied to the mutual engagement probability is higher than the weighting applied to the negative engagement probability. 16. The system of any one of clauses 10-15, configured to apply a weighting to each.
17.実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによる実行時、前記1つ以上のプロセッサに、 17. A non-transitory computer-readable medium storing executable instructions that, when executed by one or more processors, cause the one or more processors to:
ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージについての会話閲覧リクエストを受信する工程であって、前記会話グラフは会話のメッセージのデータ構造を含む、工程と、 receiving, over a network, a conversation view request for messages in a conversation graph stored in a messaging platform, wherein the conversation graph includes a data structure of messages in a conversation;
前記会話グラフからメッセージの候補の一部を選択する工程と、 selecting a portion of candidate messages from the conversation graph;
予測モデルを用いて前記候補の一部のメッセージごとに複数の予測結果を決定する工程であって、前記複数の予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含み、前記相互エンゲージメント確率は、前記メッセージングプラットホームが、前記候補の一部のそれぞれのメッセージに対するリプライを受信すると予測される確率値を含む、工程と、 determining a plurality of predicted outcomes for each of said candidate subset messages using a predictive model, said plurality of predicted outcomes comprising a mutual engagement probability, a positive engagement probability and a negative engagement probability; said mutual engagement probability comprises a probability value that said messaging platform is expected to receive a reply to each message of said candidate portion;
前記予測結果を用いて前記候補の一部のメッセージごとにエンゲージメント値を計算する工程と、 calculating an engagement value for each of the candidate subset messages using the prediction results;
前記エンゲージメント値を用いて前記複数のメッセージをランク付けする工程と、 ranking the plurality of messages using the engagement value;
前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくとも一部を送信する工程と、を行わせるように構成されている、非一時的なコンピュータ可読媒体。 and sending at least a portion of said plurality of messages to be rendered in a client application according to said rank.
18.前記候補の一部は、前記会話グラフからのある数の最近投稿されたメッセージとある数の上位にランク付けされたメッセージとを含む、17に記載の非一時的なコンピュータ可読媒体。 18. 18. The non-transitory computer-readable medium of 17, wherein the portion of the candidates includes a number of recently posted messages and a number of top ranked messages from the conversation graph.
19.前記会話グラフの前記データ構造は、前記会話グラフの前記メッセージを表す複数のノードの配置を有するツリーデータ構造を含み、 19. said data structure of said conversation graph comprising a tree data structure having an arrangement of a plurality of nodes representing said messages of said conversation graph;
前記エンゲージメント値を用いて前記ツリーデータ構造のブランチを選択する工程をさらに備える、17または18に記載の非一時的なコンピュータ可読媒体。 19. The non-transitory computer readable medium of 17 or 18, further comprising using the engagement value to select a branch of the tree data structure.
20.訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練する工程と、 20. periodically training the predictive model based on one or more machine learning algorithms input with training data;
訓練された前記予測モデルを予測マネージャに提供する工程と、をさらに備える、17~19のいずれか一項に記載の非一時的なコンピュータ可読媒体。 and providing the trained prediction model to a prediction manager.
21.予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのコンピュータ実装方法であって、 21. A computer-implemented method for ranking messages in a conversation graph in a messaging platform using predicted results, comprising:
ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージを取り出す会話閲覧リクエストを受信する工程と、 receiving, over a network, a conversation view request to retrieve messages in a conversation graph stored in the messaging platform;
前記メッセージングプラットホームが、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する工程であって、 the messaging platform determining a plurality of predicted outcomes for each of a plurality of messages of the conversation graph using a predictive model;
前記予測モデルに関連性のある複数の信号を取得する工程であって、前記複数の信号は前記会話グラフに関連するデータ構造関連信号を含む、工程と、 obtaining a plurality of signals relevant to the predictive model, the plurality of signals including data structure-related signals relevant to the conversation graph;
前記複数の予測結果を決定するように、前記複数の信号を前記予測モデルに入力する工程と、を含む工程と、 inputting said plurality of signals into said prediction model to determine said plurality of prediction results;
前記メッセージングプラットホームが、前記予測結果に基づいて前記複数のメッセージをランク付けする工程と、 the messaging platform ranking the plurality of messages based on the predicted results;
前記メッセージングプラットホームが、前記ネットワークを通じて、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくとも一部を送信する工程と、を備えるコンピュータ実装方法。 said messaging platform transmitting at least a portion of said plurality of messages rendered in a client application according to said rank over said network.
22.前記会話グラフは、前記会話グラフの前記メッセージを表す複数のノードと前記ノード間のリンクを表すエッジとを有するツリーデータ構造を含み、前記ツリーデータ構造はノードの1つまたは複数のブランチを定め、前記データ構造関連信号は前記会話グラフ内のノードの数とブランチの数とを表す信号を含む、21に記載のコンピュータ実装方法。 22. the conversation graph includes a tree data structure having a plurality of nodes representing the messages of the conversation graph and edges representing links between the nodes, the tree data structure defining one or more branches of nodes; 22. The computer-implemented method of Claim 21, wherein the data structure related signals include signals representing a number of nodes and a number of branches within the conversation graph.
23.前記データ構造関連信号は、ブランチ内のリプライの数、ブランチ内の会話の数、およびブランチまたは前記会話グラフ内のユニーク作成者の数を含む、21または22に記載のコンピュータ実装方法。 23. 23. The computer-implemented method of 21 or 22, wherein the data structure related signals include a number of replies within a branch, a number of conversations within a branch, and a number of unique authors within a branch or the conversation graph.
24.前記複数の信号は、前記クライアントアプリケーションのユーザが前記会話グラフのメッセージの作成者を制限したかを表す信号を含む、21~23のいずれか一項に記載のコンピュータ実装方法。 24. 24. The computer-implemented method of any one of claims 21-23, wherein the plurality of signals includes a signal indicative of whether a user of the client application has restricted creators of messages in the conversation graph.
25.前記複数の信号は、接続グラフにおける前記クライアントアプリケーションのユーザをフォローしているユーザのエンゲージメントを含む、前記会話グラフの前記メッセージに関連付けられているユーザエンゲージメントデータを表すエンゲージメント信号を含む、21~24のいずれか一項に記載のコンピュータ実装方法。 25. 21-24, wherein the plurality of signals includes engagement signals representing user engagement data associated with the messages in the conversation graph, including engagement of users following users of the client application in a connection graph; A computer-implemented method according to any one of the preceding paragraphs.
26.前記複数の信号は、前記メッセージングプラットホームにおける前記クライアントアプリケーションのユーザに関連付けられているエンゲージメントデータを含む履歴集約信号を含む、21~25のいずれか一項に記載のコンピュータ実装方法。 26. 26. The computer-implemented method of any one of claims 21-25, wherein the plurality of signals includes historical aggregated signals including engagement data associated with users of the client application on the messaging platform.
27.前記複数の信号は、前記会話グラフのメッセージに関連付けられているコンテンツ関連信号を含む、21~26のいずれか一項に記載のコンピュータ実装方法。 27. 27. The computer-implemented method of any one of claims 21-26, wherein the plurality of signals includes content-related signals associated with messages of the conversation graph.
28.前記複数の信号の少なくとも一部は、前記メッセージングプラットホームにおいて実行する1つまたは複数のデータサービスから取得される、21~27のいずれか一項に記載のコンピュータ実装方法。 28. 28. The computer-implemented method of any one of clauses 21-27, wherein at least some of the plurality of signals are obtained from one or more data services executing on the messaging platform.
29.前記メッセージングプラットホームが、前記クライアントアプリケーションから受信された情報を記憶するクライアントイベントログと、前記メッセージングプラットホームにおいて実行するタイムラインマネージャからの情報を記憶するインジェクションログと、から訓練データを取得する工程と、 29. the messaging platform obtaining 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;
前記メッセージングプラットホームが、前記訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程と、をさらに備える、21~28のいずれか一項に記載のコンピュータ実装方法。 29. The computer-implemented method of any one of clauses 21-28, further comprising: the messaging platform training the predictive model based on a machine learning algorithm input with the training data.
30.予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのシステムであって、 30. A system for ranking messages in a conversation graph in a messaging platform using predicted results, comprising:
メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて会話グラフを生成するように構成されている会話グラフマネージャであって、前記会話グラフは会話のメッセージのデータ構造を含む、会話グラフマネージャと、 a conversation graph manager configured to generate a conversation graph based on a reply structure of messages exchanged in a messaging platform, said conversation graph including a data structure of messages of a conversation;
ネットワークを通じてクライアントアプリケーション上のユーザのタイムラインにメッセージのストリームを提供するように構成されているタイムラインマネージャであって、前記ネットワークを通じて、会話閲覧リクエストを前記クライアントアプリケーションから受信するように構成されている、タイムラインマネージャと、 A timeline manager configured to provide a stream of messages to a user's timeline on a client application over a network, and configured to receive conversation view requests from the client application over the network. , the timeline manager, and
前記会話閲覧リクエストに応答して、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定するように構成されているエンゲージメント予測器であって、 an engagement predictor configured, in response to the view conversation request, to determine a plurality of predicted outcomes for each of a plurality of messages of the conversation graph using a predictive model;
前記メッセージングプラットホームに記憶されている1つまたは複数のデータサービスから前記予測モデルに関連性のある複数の信号を取得するように構成されており、前記複数の予測結果を決定するように前記複数の信号を前記予測モデルに入力するように構成されており、前記複数の信号は前記会話グラフに関連するデータ構造関連信号を含む、エンゲージメント予測器と、 configured to obtain a plurality of signals relevant to the predictive model from one or more data services stored in the messaging platform; and to determine the plurality of prediction results. an engagement predictor configured to input signals into the predictive model, the plurality of signals including data structure related signals associated with the conversation graph;
それぞれのメッセージについての前記予測結果を用いて、前記複数のメッセージの各々についてエンゲージメント値を計算するように構成されているエンゲージメントスコアラと、を備え、 an engagement scorer configured to calculate an engagement value for each of the plurality of messages using the predicted results for each message;
前記タイムラインマネージャは、前記エンゲージメント値を用いて前記複数のメッセージをランク付けし、前記ランクに従って前記タイムラインにおいてレンダリングされる前記複数のメッセージの少なくとも一部を前記ネットワークを通じて提供するように構成されている、システム。 The timeline manager is configured to rank the plurality of messages using the engagement value and provide through the network at least a portion of the plurality of messages rendered in the timeline according to the ranking. There is a system.
31.前記エンゲージメント予測器は、前記メッセージングプラットホームにおける第1のデータサービスから1つまたは複数の第1の信号を取得し、前記メッセージングプラットホームにおける第2のデータサービスから1つまたは複数の第2の信号を取得するように構成されている、30に記載のシステム。 31. The engagement predictor obtains one or more first signals from a first data service in the messaging platform and obtains one or more second signals from a second data service in the messaging platform. 31. The system according to 30, configured to:
32.前記複数の信号は、エンゲージメント信号、ソーシャルグラフ信号、履歴集約信号、およびコンテンツ関連信号のうちの1つ以上を含む、30または31に記載のシステム。 32. 32. The system of 30 or 31, wherein the plurality of signals includes one or more of engagement signals, social graph signals, history aggregation signals, and content related signals.
33.前記予測モデルは、相互エンゲージメントモデル、正のエンゲージメントモデル、および負のエンゲージメントモデルを含み、前記エンゲージメント予測器は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率をそれぞれ取得するように、前記信号を前記相互エンゲージメントモデル、前記正のエンゲージメントモデル、および前記負のエンゲージメントモデルに入力するように構成されている、30~32のいずれか一項に記載のシステム。 33. The prediction model includes a mutual engagement model, a positive engagement model, and a negative engagement model, and the engagement predictor obtains mutual engagement probability, positive engagement probability, and negative engagement probability, respectively. 33. The system of any one of claims 30-32, configured to input signals to the mutual engagement model, the positive engagement model and the negative engagement model.
34.訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて、前記予測モデルを定期的に訓練するように構成されており、訓練された前記予測モデルを前記予測マネージャに提供するように構成されている、予測モデルトレーナをさらに備える、30~33のいずれか一項に記載のシステム。 34. configured to periodically train the prediction model based on one or more machine learning algorithms input with training data, and configured to provide the trained prediction model to the prediction manager; 34. The system of any one of claims 30-33, further comprising a predictive model trainer.
35.前記複数の信号は、前記クライアントアプリケーションによって生成された信号および前記メッセージングプラットホームによって生成された信号を含む、30~34のいずれか一項に記載のシステム。 35. 35. The system of any one of claims 30-34, wherein the plurality of signals includes signals generated by the client application and signals generated by the messaging platform.
36.前記複数の信号は類似性信号を含む、30~35のいずれか一項に記載のシステム。 36. 36. The system of any one of claims 30-35, wherein the plurality of signals comprises similarity signals.
37.実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによる実行時、前記1つ以上のプロセッサに、 37. A non-transitory computer-readable medium storing executable instructions that, when executed by one or more processors, cause the one or more processors to:
ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージについての会話閲覧リクエストを受信する工程であって、前記会話グラフは会話のメッセージのデータ構造を含む、工程と、 receiving, over a network, a conversation view request for messages in a conversation graph stored in a messaging platform, wherein the conversation graph includes a data structure of messages in a conversation;
前記会話グラフからメッセージの候補の一部を選択する工程と、 selecting a portion of candidate messages from the conversation graph;
予測モデルを用いて前記候補の一部のメッセージごとに複数の予測結果を決定する工程であって、 determining a plurality of prediction outcomes for each of the candidate subsets of messages using a prediction model, comprising:
前記会話グラフに関連するデータ構造関連信号を含む複数の信号を取得する工程と、 obtaining a plurality of signals including data structure related signals associated with the conversation graph;
前記複数の予測結果を決定するように前記複数の信号を前記予測モデルに入力する工程と、を含む工程と、 inputting said plurality of signals into said prediction model to determine said plurality of prediction results;
前記予測結果を用いて前記候補の一部のメッセージごとにエンゲージメント値を計算する工程と、 calculating an engagement value for each of the candidate subset messages using the prediction results;
前記エンゲージメント値を用いて前記複数のメッセージをランク付けする工程と、 ranking the plurality of messages using the engagement value;
前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくとも一部を送信する工程と、を行わせるように構成されている、非一時的なコンピュータ可読媒体。 and sending at least a portion of said plurality of messages to be rendered in a client application according to said rank.
38.前記クライアントアプリケーションから受信された情報を記憶するクライアントイベントログと、前記メッセージングプラットホームにおいて実行するタイムラインマネージャからの情報を記憶するインジェクションログと、から訓練データを取得する工程と、 38. obtaining 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;
前記訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程と、をさらに備える、37に記載の非一時的なコンピュータ可読媒体。 38. The non-transitory computer-readable medium of 37, further comprising training the predictive model based on a machine learning algorithm input with the training data.
39.メッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのコンピュータ実装方法であって、 39. A computer-implemented method for ranking messages in a conversation graph in a messaging platform, comprising:
メッセージングプラットホームが、会話グラフのメッセージを、前記メッセージのコンテンツ品質に基づいて複数のセクションへと分類する工程であって、前記複数のセクションは、第1のセクションおよび第2のセクションを含み、前記第1のセクションは、前記第2のセクションのメッセージよりも高品質であると決定された前記会話グラフからのメッセージを有する、分類工程と、 A messaging platform classifying messages of a conversation graph into a plurality of sections based on content quality of said messages, said plurality of sections including a first section and a second section; a classification step, wherein one section comprises messages from the conversation graph determined to be of higher quality than the messages of the second section;
前記メッセージングプラットホームが、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する工程と、 the messaging platform determining a plurality of predicted outcomes for each of a plurality of messages of the conversation graph using a predictive model;
前記メッセージングプラットホームが、前記第1のセクションの前記メッセージについての前記予測結果に基づいて前記第1のセクションの前記メッセージをランク付けする工程と、 the messaging platform ranking the messages of the first section based on the predicted results for the messages of the first section;
前記メッセージングプラットホームが、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第1のセクションの前記メッセージの少なくとも一部を送信する工程と、を備えるコンピュータ実装方法。 said messaging platform sending at least a portion of said message of said first section rendered in a client application according to said rank.
40.前記メッセージングプラットホームが、前記第2のセクションの前記メッセージについての前記複数の予測結果に基づいて前記第2のセクションの前記メッセージをランク付けする工程をさらに備える、39に記載のコンピュータ実装方法。 40. 40. The computer-implemented method of 39, further comprising the messaging platform ranking the messages of the second section based on the plurality of prediction results for the messages of the second section.
41.前記メッセージングプラットホームが、前記会話グラフの追加のメッセージを前記クライアントアプリケーションにおいてレンダリングするリクエストを受信する工程と、 41. the messaging platform receiving a request to render additional messages of the conversation graph in the client application;
前記メッセージングプラットホームが、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第2のセクションの前記メッセージの少なくとも一部を送信する工程と、をさらに備える、40に記載のコンピュータ実装方法。 41. The computer-implemented method of 40, further comprising the messaging platform sending at least a portion of the message of the second section rendered in a client application according to the rank.
42.前記分類工程は、 42. The classification step includes:
前記会話グラフのメッセージのメッセージ識別子を受信する工程と、 receiving a message identifier for a message of said conversation graph;
分類モデルを用いて、前記メッセージが前記第1のセクションに対応するコンテンツ品質を有すると決定する工程と、を含む、39~41のいずれか一項に記載のコンピュータ実装方法。 and using a classification model to determine that the message has a content quality corresponding to the first section.
43.前記メッセージを含む前記会話グラフのブランチを前記第1のセクションに割り当てる工程をさらに備える、39~42のいずれか一項に記載のコンピュータ実装方法。 43. 43. The computer-implemented method of any one of claims 39-42, further comprising assigning a branch of the conversation graph containing the message to the first section.
44.それぞれのメッセージの前記複数の予測結果を用いて、前記会話グラフのメッセージごとにエンゲージメント値を計算する工程をさらに備え、前記第1の品質セクションの前記メッセージは、前記第1の品質セクションの前記メッセージのエンゲージメント値に従ってランク付けされる、39~43のいずれか一項に記載のコンピュータ実装方法。 44. calculating an engagement value for each message of the conversation graph using the plurality of prediction results for each message, wherein the message of the first quality section is the message of the first quality section; 44. The computer-implemented method of any one of clauses 39-43, wherein the computer-implemented method is ranked according to an engagement value of .
45.前記予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含む、39~44のいずれか一項に記載のコンピュータ実装方法。 45. 45. The computer-implemented method of any one of clauses 39-44, wherein the predicted outcome comprises mutual engagement probabilities, positive engagement probabilities, and negative engagement probabilities.
46.前記メッセージングプラットホームが、前記メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて前記会話グラフを生成する工程であって、前記会話グラフは会話に関連するメッセージのツリーデータ構造を含む、工程をさらに備える、39~45のいずれか一項に記載のコンピュータ実装方法。 46. Further comprising the step of said messaging platform generating said conversation graph based on a reply structure of messages exchanged on said messaging platform, said conversation graph comprising a tree data structure of messages associated with a conversation. , 39-45.
47.前記複数の予測モデルは、相互エンゲージメントモデル、正のエンゲージメントモデル、および負のエンゲージメントモデルを含み、前記相互エンゲージメントモデル、前記正のエンゲージメントモデル、および前記負のエンゲージメントモデルのうちの1つ以上はニューラルネットワークを含む、39~46のいずれか一項に記載のコンピュータ実装方法。 47. The plurality of predictive models includes a mutual engagement model, a positive engagement model, and a negative engagement model, wherein one or more of the mutual engagement model, the positive engagement model, and the negative engagement model are neural networks. 47. The computer-implemented method of any one of 39-46, comprising:
48.メッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのシステムであって、 48. A system for ranking messages of a conversation graph in a messaging platform, comprising:
メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて会話グラフを生成するように構成されている会話グラフマネージャであって、前記会話グラフは会話のメッセージのデータ構造を含む、会話グラフマネージャと、 a conversation graph manager configured to generate a conversation graph based on a reply structure of messages exchanged in a messaging platform, said conversation graph including a data structure of messages of a conversation;
ネットワークを通じて、クライアントアプリケーション上のユーザのタイムラインにメッセージのストリームを提供するように構成されているタイムラインマネージャであって、会話閲覧リクエストを、ネットワークを通じて前記クライアントアプリケーションから受信するように構成されている、タイムラインマネージャと、 A timeline manager configured to provide a stream of messages to a user's timeline on a client application over a network, and configured to receive conversation view requests from the client application over the network. , the timeline manager, and
前記会話グラフの前記メッセージを、前記メッセージのコンテンツ品質に基づいて複数のセクションへと分類するように構成されているコンテンツ品質分類器であって、前記複数のセクションは第1のセクションおよび第2のセクションを含み、前記第1のセクションは前記第2のセクションのメッセージよりも高品質であると決定された前記会話グラフからのメッセージを有する、コンテンツ品質分類器と、 A content quality classifier configured to classify the messages of the conversation graph into a plurality of sections based on content quality of the messages, the plurality of sections comprising a first section and a second section. a content quality classifier comprising sections, the first section having messages from the conversation graph determined to be of higher quality than the messages of the second section;
予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定するように構成されているエンゲージメント予測器と、 an engagement predictor configured to determine a plurality of predicted outcomes for each of a plurality of messages of said conversation graph using a predictive model;
それぞれのメッセージについての前記複数の予測結果を用いて前記複数のメッセージの各々についてエンゲージメント値を計算するように構成されているエンゲージメントスコアラと、を備え、 an engagement scorer configured to calculate an engagement value for each of the plurality of messages using the plurality of predicted results for each message;
前記タイムラインマネージャは、前記第1のセクションのエンゲージメント値を用いて前記第1のセクションの前記メッセージをランク付けし、前記ランクに従って前記タイムラインにおいてレンダリングされる前記第1のセクションの前記メッセージの少なくとも一部を、前記ネットワークを通じて提供するように構成されている、システム。 The timeline manager ranks the messages of the first section using the engagement value of the first section, and at least of the messages of the first section rendered in the timeline according to the rank. A system configured to provide a portion through said network.
49.前記エンゲージメント予測器は、前記メッセージングプラットホームに記憶されている1つまたは複数のデータサービスから、前記予測モデルに関連性のある複数の信号を取得するように構成されており、前記複数の予測結果を決定するように、前記複数の信号を前記予測モデルに入力するように構成されている、48に記載のシステム。 49. The engagement predictor is configured to obtain a plurality of signals relevant to the predictive model from one or more data services stored on the messaging platform, and extracts the plurality of prediction results. 49. The system of 48, configured to input the plurality of signals into the predictive model to determine.
50.前記複数の信号は、前記会話グラフに関連するデータ構造関連信号を含む、49に記載のシステム。 50. 50. The system of Claim 49, wherein the plurality of signals includes data structure related signals associated with the conversation graph.
51.前記タイムラインマネージャは、前記第2のセクションのエンゲージメント値を用いて前記第2のセクションの前記メッセージを別々にランク付けするように構成されている、48~50のいずれか一項に記載のシステム。 51. 51. The system of any one of clauses 48-50, wherein the timeline manager is configured to separately rank the messages of the second section using engagement values of the second section. .
52.前記コンテンツ品質分類器は、前記会話グラフのメッセージのメッセージ識別子を受信するように、また分類モデルを用いて、前記メッセージが前記第1の品質セクションに対応するコンテンツ品質を有することを決定するように構成されている、48~51のいずれか一項に記載のシステム。 52. The content quality classifier receives a message identifier for a message of the conversation graph and uses a classification model to determine that the message has a content quality corresponding to the first quality section. 52. The system of any one of clauses 48-51, wherein:
53.前記複数の予測結果は相互エンゲージメント確率を含み、前記相互エンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフのそれぞれのメッセージに対するリプライを受信すると予測される確率値を含む、48~52のいずれか一項に記載のシステム。 53. 53. any one of 48 to 52, wherein said plurality of prediction results comprises mutual engagement probabilities, said mutual engagement probabilities comprising probability values that said messaging platform is expected to receive a reply to each message of said conversation graph. A system as described in .
54.訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練するように構成されている予測モデルトレーナであって、訓練された前記予測モデルを前記予測マネージャに対し提供するように構成されている、予測モデルトレーナをさらに備える、48~53のいずれか一項に記載のシステム。 54. a predictive model trainer configured to periodically train the predictive model based on one or more machine learning algorithms input with training data, the trained predictive model being provided to the predictive manager; 54. The system of any one of clauses 48-53, further comprising a predictive model trainer configured to provide to.
55.実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによる実行時、前記1つ以上のプロセッサに、 55. A non-transitory computer-readable medium storing executable instructions that, when executed by one or more processors, cause the one or more processors to:
分類モデルを用いて、会話グラフのメッセージを前記メッセージのコンテンツ品質に基づいて複数のセクションへと分類する工程であって、前記複数のセクションは第1のセクションおよび第2のセクションを含み、前記第1のセクションは前記第2のセクションのメッセージよりも高品質であると決定された前記会話グラフからのメッセージを有する、工程と、 classifying messages of a conversation graph into a plurality of sections based on content quality of said messages using a classification model, said plurality of sections including a first section and a second section; one section having messages from the conversation graph determined to be of higher quality than messages of the second section;
1つまたは複数の予測モデルを用いて、前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する工程であって、前記複数の予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含む、工程と、 determining a plurality of prediction outcomes for each of a plurality of messages of the conversation graph using one or more prediction models, the plurality of prediction outcomes being a mutual engagement probability, a positive engagement probability, and a process comprising a negative engagement probability;
前記第1のセクションの前記メッセージを前記第1のセクションの前記メッセージについての前記複数の予測結果に基づいてランク付けする工程と、 ranking the messages of the first section based on the plurality of prediction results for the messages of the first section;
前記第2のセクションの前記メッセージを前記第2のセクションの前記メッセージについての前記複数の予測結果に基づいてランク付けする工程と、 ranking the messages of the second section based on the plurality of prediction results for the messages of the second section;
前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第1の品質セクションの前記メッセージの少なくとも一部を送信する工程と、を行わせるように構成されている、非一時的なコンピュータ可読媒体。 and sending at least a portion of said message of said first quality section rendered in a client application according to said rank.
56.前記クライアントアプリケーションから受信された情報を記憶するクライアントイベントログと、メッセージングプラットホームにおいて実行するタイムラインマネージャからの情報を記憶するインジェクションログと、から訓練データを取得する工程と、 56. obtaining 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;
前記訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程と、をさらに備える、55に記載の非一時的なコンピュータ可読媒体。 56. The non-transitory computer-readable medium of 55, further comprising training the predictive model based on a machine learning algorithm input with the training data.
57.前記会話グラフの第1のメッセージのメッセージ識別子を受信する工程と、 57. receiving a message identifier of a first message of the conversation graph;
前記分類モデルを用いて、前記第1のメッセージが前記第1のセクションに対応するコンテンツ品質を有すると決定する工程と、 determining, using the classification model, that the first message has a content quality corresponding to the first section;
前記会話グラフの第2のメッセージのメッセージ識別子を受信する工程と、 receiving a message identifier of a second message of the conversation graph;
前記分類モデルを用いて、前記第2のメッセージが前記第2のセクションに対応するコンテンツ品質を有すると決定する工程と、をさらに備える、55または56に記載の非一時的なコンピュータ可読媒体。 57. The non-transitory computer-readable medium of 55 or 56, further comprising using the classification model to determine that the second message has a content quality corresponding to the second section.
58.前記会話グラフの追加のメッセージを前記クライアントアプリケーションにおいてレンダリングするリクエストを受信する工程と、 58. receiving a request to render additional messages of the conversation graph at the client application;
前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第2のセクションの前記メッセージの少なくとも一部を送信する工程と、をさらに備える、55~57のいずれか一項に記載の非一時的なコンピュータ可読媒体。 58. The non-transitory computer-readable medium of any one of claims 55-57, further comprising sending at least a portion of the message of the second section rendered in a client application according to the rank.

Claims (58)

予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのコンピュータ実装方法であって、
ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージを取り出す会話閲覧リクエストを受信する工程と、
前記メッセージングプラットホームが、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する工程であって、前記複数の予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含む、決定工程と、
前記複数の予測結果を用いて前記複数のメッセージの各々についてエンゲージメント値を計算する工程と、
前記メッセージングプラットホームが、前記エンゲージメント値に基づいて前記複数のメッセージをランク付けする工程と、
前記メッセージングプラットホームが、前記ネットワークを通じて、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくとも一部を送信する工程と、を備えるコンピュータ実装方法。
A computer-implemented method for ranking messages in a conversation graph in a messaging platform using predicted results, comprising:
receiving, over a network, a conversation view request to retrieve messages in a conversation graph stored in the messaging platform;
the messaging platform determining a plurality of prediction outcomes for each of a plurality of messages in the conversation graph using a prediction model, the plurality of prediction outcomes being a mutual engagement probability, a positive engagement probability, and a negative engagement probability; a decision process, including an engagement probability of
calculating an engagement value for each of the plurality of messages using the plurality of prediction results;
the messaging platform ranking the plurality of messages based on the engagement value;
said messaging platform transmitting at least a portion of said plurality of messages rendered in a client application according to said rank over said network.
前記相互エンゲージメント確率は、前記メッセージングプラットホームがそれぞれのメッセージに対するリプライを受信すると予測される確率値を含む、請求項1に記載のコンピュータ実装方法。 2. The computer-implemented method of claim 1, wherein the mutual engagement probability comprises a probability value that the messaging platform is expected to receive a reply to each message. 前記予測モデルは、1つまたは複数のニューラルネットワークを含む、請求項1または2に記載のコンピュータ実装方法。 3. The computer-implemented method of claim 1 or 2, wherein the predictive model comprises one or more neural networks. 前記メッセージングプラットホームが、前記メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて前記会話グラフを生成する工程であって、前記会話グラフは会話に関連するメッセージのツリーデータ構造を含む、工程をさらに備える、請求項1~3のいずれか一項に記載のコンピュータ実装方法。 Further comprising the step of said messaging platform generating said conversation graph based on a reply structure of messages exchanged on said messaging platform, said conversation graph comprising a tree data structure of messages associated with a conversation. The computer-implemented method of any one of claims 1-3. 前記決定工程は、
前記メッセージングプラットホームが、前記クライアントアプリケーションと前記メッセージングプラットホームとのうちの1つ以上によって生成された信号を取得する工程と、
前記メッセージングプラットホームが、前記複数の予測結果を決定するように、前記信号を前記予測モデルに対し入力する工程と、を含む、請求項1~4のいずれか一項に記載のコンピュータ実装方法。
The determining step includes:
the messaging platform acquiring signals generated by one or more of the client application and the messaging platform;
and the messaging platform inputting the signal to the predictive model to determine the plurality of predictive outcomes.
前記メッセージングプラットホームが、訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程をさらに備える、請求項1~5のいずれか一項に記載のコンピュータ実装方法。 The computer-implemented method of any of claims 1-5, further comprising the messaging platform training the predictive model based on machine learning algorithms input with training data. 前記メッセージングプラットホームが、前記会話グラフにおけるメッセージの数が閾値レベルを超えていることに応答して、前記複数のメッセージから候補の一部を選択する工程であって、前記複数の予測結果は、前記候補の一部のメッセージごとに決定される、工程をさらに備える、請求項1~6のいずれか一項に記載のコンピュータ実装方法。 the messaging platform selecting a subset of candidates from the plurality of messages in response to a number of messages in the conversation graph exceeding a threshold level, wherein the plurality of predicted results are selected from the The computer-implemented method of any one of claims 1-6, further comprising the step of being determined for each candidate partial message. 前記メッセージングプラットホームが、前記ランクに従って前記クライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの第1の部分を送信する工程と、
前記メッセージングプラットホームが、前記会話グラフからの追加のメッセージを表示するリクエストを前記クライアントアプリケーションから受信する工程と、
前記メッセージングプラットホームが、前記ランクに従って前記クライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの第2の部分を送信する工程と、をさらに備える、請求項1~7のいずれか一項に記載のコンピュータ実装方法。
the messaging platform sending a first portion of the plurality of messages to be rendered in the client application according to the rank;
the messaging platform receiving a request from the client application to display additional messages from the conversation graph;
The computer-implemented method of any one of claims 1-7, further comprising: the messaging platform sending a second portion of the plurality of messages rendered in the client application according to the rank. .
前記会話グラフは、前記会話グラフの前記メッセージを表す複数のノードの配置を有するツリーデータ構造を含み、
前記方法は、前記メッセージングプラットホームが、前記エンゲージメント値を用いて、前記ツリーデータ構造の1つまたは複数のブランチを選択する工程をさらに備える、請求項1~8のいずれか一項に記載のコンピュータ実装方法。
said conversation graph comprising a tree data structure having an arrangement of a plurality of nodes representing said messages of said conversation graph;
The computer-implemented method of any one of claims 1-8, wherein the method further comprises the messaging platform using the engagement value to select one or more branches of the tree data structure. Method.
予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのシステムであって、
メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて会話グラフを生成するように構成されている会話グラフマネージャであって、前記会話グラフは会話のメッセージのデータ構造を含む、会話グラフマネージャと、
ネットワークを通じてクライアントアプリケーション上のユーザのタイムラインにメッセージのストリームを提供するように構成されているタイムラインマネージャであって、前記ネットワークを通じて、会話閲覧リクエストを前記クライアントアプリケーションから受信するように構成されている、タイムラインマネージャと、
前記会話閲覧リクエストに応答して、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定するように構成されているエンゲージメント予測器であって、前記複数の予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含む、エンゲージメント予測器と、
それぞれのメッセージについての前記予測結果を用いて前記複数のメッセージの各々についてエンゲージメント値を計算するように構成されているエンゲージメントスコアラと、を備え、
前記タイムラインマネージャは、前記エンゲージメント値を用いて前記複数のメッセージをランク付けし、前記ランクに従って前記タイムラインにおいてレンダリングされる前記複数のメッセージの少なくとも一部を、前記ネットワークを通じて提供するように構成されている、システム。
A system for ranking messages in a conversation graph in a messaging platform using predicted results, comprising:
a conversation graph manager configured to generate a conversation graph based on a reply structure of messages exchanged in a messaging platform, said conversation graph including a data structure of messages of a conversation;
A timeline manager configured to provide a stream of messages to a user's timeline on a client application over a network, and configured to receive conversation view requests from the client application over the network. , the timeline manager, and
an engagement predictor configured, in response to the view conversation request, to determine a plurality of predicted outcomes for each of a plurality of messages of the conversation graph using a predictive model, the plurality of predicted outcomes being , an engagement predictor including mutual engagement probability, positive engagement probability, and negative engagement probability;
an engagement scorer configured to calculate an engagement value for each of the plurality of messages using the predicted results for each message;
The timeline manager is configured to rank the plurality of messages using the engagement value and provide through the network at least a portion of the plurality of messages rendered in the timeline according to the rank. system.
前記相互エンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフのメッセージに対するリプライを受信すると予測される確率値を含み、前記正のエンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフの前記メッセージへの肯定的なユーザエンゲージメントを受信すると予測される確率値を含み、前記負のエンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフの前記メッセージへの否定的なユーザエンゲージメントを受信すると予測される確率値を含む、請求項10に記載のシステム。 The mutual engagement probability includes a probability value that the messaging platform expects to receive a reply to the message in the conversation graph, and the positive engagement probability indicates that the messaging platform will receive an acknowledgment to the message in the conversation graph. said negative engagement probability comprises a probability value that said messaging platform is expected to receive negative user engagement to said message of said conversation graph. 11. The system of claim 10. 前記予測モデルは、相互エンゲージメントモデル、正のエンゲージメントモデル、および負のエンゲージメントモデルを含み、前記エンゲージメント予測器は、前記クライアントアプリケーションと前記メッセージングプラットホームとのうちの1つ以上によって生成された信号を取得し、前記信号を前記相互エンゲージメントモデル、前記正のエンゲージメントモデル、および前記負のエンゲージメントモデルに入力するように、また前記相互エンゲージメント確率、前記正のエンゲージメント確率、および前記負のエンゲージメント確率をそれぞれ取得するように構成されている、請求項10または11に記載のシステム。 The predictive models include a mutual engagement model, a positive engagement model, and a negative engagement model, and the engagement predictor obtains signals generated by one or more of the client application and the messaging platform. , to input the signals into the cross-engagement model, the positive engagement model, and the negative engagement model, and to obtain the cross-engagement probability, the positive engagement probability, and the negative engagement probability, respectively. 12. A system according to claim 10 or 11, configured for: 訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練するように構成されている予測モデルトレーナであって、訓練された前記予測モデルを前記予測マネージャに対し提供するように構成されている、予測モデルトレーナをさらに備える、請求項10~12のいずれか一項に記載のシステム。 a predictive model trainer configured to periodically train the predictive model based on one or more machine learning algorithms input with training data, the trained predictive model being provided to the predictive manager; 13. The system of any one of claims 10-12, further comprising a predictive model trainer configured to provide to. 複数のソースから候補の一部を選択するように構成されている候補メッセージセレクタをさらに備え、前記複数のソースは、最近投稿されたものに従ってランク付けされた前記会話グラフの前記メッセージを有する第1のソースと、関連性アルゴリズムに従ってランク付けされた前記会話グラフの前記メッセージを有する第2のソースと、を含み、前記候補の一部は、前記第1のソースからのある数のメッセージと前記第2のソースからのある数のメッセージとを含み、前記複数の予測結果は前記候補の一部のメッセージごとに決定される、請求項10~13のいずれか一項に記載のシステム。 first, further comprising a candidate message selector configured to select a portion of the candidates from a plurality of sources, the plurality of sources having the messages of the conversation graph ranked according to the most recently posted; and a second source having said messages of said conversation graph ranked according to a relevance algorithm, wherein some of said candidates are a number of messages from said first source and said first and a certain number of messages from two sources, wherein said plurality of prediction results is determined for each message of said candidate subset. 前記会話グラフの前記データ構造は、前記会話グラフの前記メッセージを表す複数のノードの配置を有するツリーデータ構造を含み、前記タイムラインマネージャは、前記エンゲージメント値を用いて前記ツリーデータ構造のブランチを選択するように構成されている、請求項10~14のいずれか一項に記載のシステム。 The data structure of the conversation graph includes a tree data structure having an arrangement of a plurality of nodes representing the messages of the conversation graph, and the timeline manager selects a branch of the tree data structure using the engagement value. The system of any one of claims 10-14, wherein the system is configured to: 前記エンゲージメントスコアラは、前記相互エンゲージメント確率に適用される重み付けが前記負のエンゲージメント確率に適用される重み付けよりも高くなるように、前記相互エンゲージメント確率、前記正のエンゲージメント確率、および前記負のエンゲージメント確率の各々に重み付けを適用するように構成されている、請求項10~15のいずれか一項に記載のシステム。 The engagement scorer determines the mutual engagement probability, the positive engagement probability, and the negative engagement probability such that the weighting applied to the mutual engagement probability is higher than the weighting applied to the negative engagement probability. A system according to any one of claims 10 to 15, arranged to apply a weighting to each. 実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによる実行時、前記1つ以上のプロセッサに、
ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージについての会話閲覧リクエストを受信する工程であって、前記会話グラフは会話のメッセージのデータ構造を含む、工程と、
前記会話グラフからメッセージの候補の一部を選択する工程と、
予測モデルを用いて前記候補の一部のメッセージごとに複数の予測結果を決定する工程であって、前記複数の予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含み、前記相互エンゲージメント確率は、前記メッセージングプラットホームが、前記候補の一部のそれぞれのメッセージに対するリプライを受信すると予測される確率値を含む、工程と、
前記予測結果を用いて前記候補の一部のメッセージごとにエンゲージメント値を計算する工程と、
前記エンゲージメント値を用いて前記複数のメッセージをランク付けする工程と、
前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくとも一部を送信する工程と、を行わせるように構成されている、非一時的なコンピュータ可読媒体。
A non-transitory computer-readable medium storing executable instructions that, when executed by one or more processors, cause the one or more processors to:
receiving, over a network, a conversation view request for messages in a conversation graph stored in a messaging platform, wherein the conversation graph includes a data structure of messages in a conversation;
selecting a portion of candidate messages from the conversation graph;
determining a plurality of predicted outcomes for each of said candidate subset messages using a predictive model, said plurality of predicted outcomes comprising a mutual engagement probability, a positive engagement probability and a negative engagement probability; said mutual engagement probability comprises a probability value that said messaging platform is expected to receive a reply to each message of said candidate portion;
calculating an engagement value for each of the candidate subset messages using the prediction results;
ranking the plurality of messages using the engagement value;
and sending at least a portion of said plurality of messages to be rendered in a client application according to said rank.
前記候補の一部は、前記会話グラフからのある数の最近投稿されたメッセージとある数の上位にランク付けされたメッセージとを含む、請求項17に記載の非一時的なコンピュータ可読媒体。 18. The non-transitory computer-readable medium of claim 17, wherein some of the candidates include a number of recently posted messages and a number of top ranked messages from the conversation graph. 前記会話グラフの前記データ構造は、前記会話グラフの前記メッセージを表す複数のノードの配置を有するツリーデータ構造を含み、
前記エンゲージメント値を用いて前記ツリーデータ構造のブランチを選択する工程をさらに備える、請求項17または18に記載の非一時的なコンピュータ可読媒体。
said data structure of said conversation graph comprising a tree data structure having an arrangement of a plurality of nodes representing said messages of said conversation graph;
19. The non-transitory computer-readable medium of claim 17 or 18, further comprising using the engagement value to select a branch of the tree data structure.
訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練する工程と、
訓練された前記予測モデルを予測マネージャに提供する工程と、をさらに備える、請求項17~19のいずれか一項に記載の非一時的なコンピュータ可読媒体。
periodically training the predictive model based on one or more machine learning algorithms input with training data;
and providing the trained prediction model to a prediction manager.
予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのコンピュータ実装方法であって、
ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージを取り出す会話閲覧リクエストを受信する工程と、
前記メッセージングプラットホームが、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する工程であって、
前記予測モデルに関連性のある複数の信号を取得する工程であって、前記複数の信号は前記会話グラフに関連するデータ構造関連信号を含む、工程と、
前記複数の予測結果を決定するように、前記複数の信号を前記予測モデルに入力する工程と、を含む工程と、
前記メッセージングプラットホームが、前記予測結果に基づいて前記複数のメッセージをランク付けする工程と、
前記メッセージングプラットホームが、前記ネットワークを通じて、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくとも一部を送信する工程と、を備えるコンピュータ実装方法。
A computer-implemented method for ranking messages in a conversation graph in a messaging platform using predicted results, comprising:
receiving, over a network, a conversation view request to retrieve messages in a conversation graph stored in the messaging platform;
the messaging platform determining a plurality of predicted outcomes for each of a plurality of messages of the conversation graph using a predictive model;
obtaining a plurality of signals relevant to the predictive model, the plurality of signals including data structure-related signals relevant to the conversation graph;
inputting said plurality of signals into said prediction model to determine said plurality of prediction results;
the messaging platform ranking the plurality of messages based on the predicted results;
said messaging platform transmitting at least a portion of said plurality of messages rendered in a client application according to said rank over said network.
前記会話グラフは、前記会話グラフの前記メッセージを表す複数のノードと前記ノード間のリンクを表すエッジとを有するツリーデータ構造を含み、前記ツリーデータ構造はノードの1つまたは複数のブランチを定め、前記データ構造関連信号は前記会話グラフ内のノードの数とブランチの数とを表す信号を含む、請求項21に記載のコンピュータ実装方法。 the conversation graph includes a tree data structure having a plurality of nodes representing the messages of the conversation graph and edges representing links between the nodes, the tree data structure defining one or more branches of nodes; 22. The computer-implemented method of claim 21, wherein said data structure related signals include signals representing a number of nodes and a number of branches within said conversation graph. 前記データ構造関連信号は、ブランチ内のリプライの数、ブランチ内の会話の数、およびブランチまたは前記会話グラフ内のユニーク作成者の数を含む、請求項21または22に記載のコンピュータ実装方法。 23. The computer-implemented method of claim 21 or 22, wherein the data structure related signals include a number of replies within a branch, a number of conversations within a branch, and a number of unique authors within a branch or the conversation graph. 前記複数の信号は、前記クライアントアプリケーションのユーザが前記会話グラフのメッセージの作成者を制限したかを表す信号を含む、請求項21~23のいずれか一項に記載のコンピュータ実装方法。 24. The computer-implemented method of any of claims 21-23, wherein the plurality of signals includes a signal representing whether a user of the client application has restricted creators of messages in the conversation graph. 前記複数の信号は、接続グラフにおける前記クライアントアプリケーションのユーザをフォローしているユーザのエンゲージメントを含む、前記会話グラフの前記メッセージに関連付けられているユーザエンゲージメントデータを表すエンゲージメント信号を含む、請求項21~24のいずれか一項に記載のコンピュータ実装方法。 21-, wherein the plurality of signals includes engagement signals representing user engagement data associated with the messages in the conversation graph, including engagement of users following users of the client application in a connection graph. 25. The computer-implemented method of any one of Clause 24. 前記複数の信号は、前記メッセージングプラットホームにおける前記クライアントアプリケーションのユーザに関連付けられているエンゲージメントデータを含む履歴集約信号を含む、請求項21~25のいずれか一項に記載のコンピュータ実装方法。 26. The computer-implemented method of any one of claims 21-25, wherein the plurality of signals comprises historical aggregated signals containing engagement data associated with users of the client application on the messaging platform. 前記複数の信号は、前記会話グラフのメッセージに関連付けられているコンテンツ関連信号を含む、請求項21~26のいずれか一項に記載のコンピュータ実装方法。 27. The computer-implemented method of any one of claims 21-26, wherein the plurality of signals comprises content-related signals associated with messages of the conversation graph. 前記複数の信号の少なくとも一部は、前記メッセージングプラットホームにおいて実行する1つまたは複数のデータサービスから取得される、請求項21~27のいずれか一項に記載のコンピュータ実装方法。 28. The computer-implemented method of any of claims 21-27, wherein at least some of the plurality of signals are obtained from one or more data services executing on the messaging platform. 前記メッセージングプラットホームが、前記クライアントアプリケーションから受信された情報を記憶するクライアントイベントログと、前記メッセージングプラットホームにおいて実行するタイムラインマネージャからの情報を記憶するインジェクションログと、から訓練データを取得する工程と、
前記メッセージングプラットホームが、前記訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程と、をさらに備える、請求項21~28のいずれか一項に記載のコンピュータ実装方法。
the messaging platform obtaining 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;
The computer-implemented method of any one of claims 21-28, further comprising the messaging platform training the predictive model based on a machine learning algorithm input with the training data.
予測結果を用いてメッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのシステムであって、
メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて会話グラフを生成するように構成されている会話グラフマネージャであって、前記会話グラフは会話のメッセージのデータ構造を含む、会話グラフマネージャと、
ネットワークを通じてクライアントアプリケーション上のユーザのタイムラインにメッセージのストリームを提供するように構成されているタイムラインマネージャであって、前記ネットワークを通じて、会話閲覧リクエストを前記クライアントアプリケーションから受信するように構成されている、タイムラインマネージャと、
前記会話閲覧リクエストに応答して、予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定するように構成されているエンゲージメント予測器であって、
前記メッセージングプラットホームに記憶されている1つまたは複数のデータサービスから前記予測モデルに関連性のある複数の信号を取得するように構成されており、前記複数の予測結果を決定するように前記複数の信号を前記予測モデルに入力するように構成されており、前記複数の信号は前記会話グラフに関連するデータ構造関連信号を含む、エンゲージメント予測器と、
それぞれのメッセージについての前記予測結果を用いて、前記複数のメッセージの各々についてエンゲージメント値を計算するように構成されているエンゲージメントスコアラと、を備え、
前記タイムラインマネージャは、前記エンゲージメント値を用いて前記複数のメッセージをランク付けし、前記ランクに従って前記タイムラインにおいてレンダリングされる前記複数のメッセージの少なくとも一部を前記ネットワークを通じて提供するように構成されている、システム。
A system for ranking messages in a conversation graph in a messaging platform using predicted results, comprising:
a conversation graph manager configured to generate a conversation graph based on a reply structure of messages exchanged in a messaging platform, said conversation graph including a data structure of messages of a conversation;
A timeline manager configured to provide a stream of messages to a user's timeline on a client application over a network, and configured to receive conversation view requests from the client application over the network. , the timeline manager, and
an engagement predictor configured, in response to the view conversation request, to determine a plurality of predicted outcomes for each of a plurality of messages of the conversation graph using a predictive model;
configured to obtain a plurality of signals relevant to the predictive model from one or more data services stored in the messaging platform; and to determine the plurality of prediction results. an engagement predictor configured to input signals into the predictive model, the plurality of signals including data structure related signals associated with the conversation graph;
an engagement scorer configured to calculate an engagement value for each of the plurality of messages using the predicted results for each message;
The timeline manager is configured to rank the plurality of messages using the engagement value and provide through the network at least a portion of the plurality of messages rendered in the timeline according to the ranking. There is a system.
前記エンゲージメント予測器は、前記メッセージングプラットホームにおける第1のデータサービスから1つまたは複数の第1の信号を取得し、前記メッセージングプラットホームにおける第2のデータサービスから1つまたは複数の第2の信号を取得するように構成されている、請求項30に記載のシステム。 The engagement predictor obtains one or more first signals from a first data service in the messaging platform and obtains one or more second signals from a second data service in the messaging platform. 31. The system of claim 30, configured to. 前記複数の信号は、エンゲージメント信号、ソーシャルグラフ信号、履歴集約信号、およびコンテンツ関連信号のうちの1つ以上を含む、請求項30または31に記載のシステム。 32. The system of claim 30 or 31, wherein the plurality of signals comprises one or more of engagement signals, social graph signals, history aggregation signals, and content related signals. 前記予測モデルは、相互エンゲージメントモデル、正のエンゲージメントモデル、および負のエンゲージメントモデルを含み、前記エンゲージメント予測器は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率をそれぞれ取得するように、前記信号を前記相互エンゲージメントモデル、前記正のエンゲージメントモデル、および前記負のエンゲージメントモデルに入力するように構成されている、請求項30~32のいずれか一項に記載のシステム。 The prediction model includes a mutual engagement model, a positive engagement model, and a negative engagement model, and the engagement predictor obtains mutual engagement probability, positive engagement probability, and negative engagement probability, respectively. 33. The system of any one of claims 30-32, configured to input signals into the mutual engagement model, the positive engagement model and the negative engagement model. 訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて、前記予測モデルを定期的に訓練するように構成されており、訓練された前記予測モデルを前記予測マネージャに提供するように構成されている、予測モデルトレーナをさらに備える、請求項30~33のいずれか一項に記載のシステム。 configured to periodically train the prediction model based on one or more machine learning algorithms input with training data, and configured to provide the trained prediction model to the prediction manager; 34. The system of any one of claims 30-33, further comprising a predictive model trainer. 前記複数の信号は、前記クライアントアプリケーションによって生成された信号および前記メッセージングプラットホームによって生成された信号を含む、請求項30~34のいずれか一項に記載のシステム。 35. The system of any of claims 30-34, wherein the plurality of signals includes signals generated by the client application and signals generated by the messaging platform. 前記複数の信号は類似性信号を含む、請求項30~35のいずれか一項に記載のシステム。 The system of any one of claims 30-35, wherein the plurality of signals comprises similarity signals. 実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによる実行時、前記1つ以上のプロセッサに、
ネットワークを通じて、メッセージングプラットホームに記憶されている会話グラフのメッセージについての会話閲覧リクエストを受信する工程であって、前記会話グラフは会話のメッセージのデータ構造を含む、工程と、
前記会話グラフからメッセージの候補の一部を選択する工程と、
予測モデルを用いて前記候補の一部のメッセージごとに複数の予測結果を決定する工程であって、
前記会話グラフに関連するデータ構造関連信号を含む複数の信号を取得する工程と、
前記複数の予測結果を決定するように前記複数の信号を前記予測モデルに入力する工程と、を含む工程と、
前記予測結果を用いて前記候補の一部のメッセージごとにエンゲージメント値を計算する工程と、
前記エンゲージメント値を用いて前記複数のメッセージをランク付けする工程と、
前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記複数のメッセージの少なくとも一部を送信する工程と、を行わせるように構成されている、非一時的なコンピュータ可読媒体。
A non-transitory computer-readable medium storing executable instructions that, when executed by one or more processors, cause the one or more processors to:
receiving, over a network, a conversation view request for messages in a conversation graph stored in a messaging platform, wherein the conversation graph includes a data structure of messages in a conversation;
selecting a portion of candidate messages from the conversation graph;
determining a plurality of prediction outcomes for each of the candidate subsets of messages using a prediction model, comprising:
obtaining a plurality of signals including data structure related signals associated with the conversation graph;
inputting said plurality of signals into said prediction model to determine said plurality of prediction results;
calculating an engagement value for each of the candidate subset messages using the prediction results;
ranking the plurality of messages using the engagement value;
and sending at least a portion of said plurality of messages to be rendered in a client application according to said rank.
前記クライアントアプリケーションから受信された情報を記憶するクライアントイベントログと、前記メッセージングプラットホームにおいて実行するタイムラインマネージャからの情報を記憶するインジェクションログと、から訓練データを取得する工程と、
前記訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程と、をさらに備える、請求項37に記載の非一時的なコンピュータ可読媒体。
obtaining 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;
38. The non-transitory computer-readable medium of claim 37, further comprising training the predictive model 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 a conversation graph in a messaging platform, comprising:
A messaging platform classifying messages of a conversation graph into a plurality of sections based on content quality of said messages, said plurality of sections including a first section and a second section; a classification step, wherein one section comprises messages from the conversation graph determined to be of higher quality than the messages of the second section;
the messaging platform determining a plurality of predicted outcomes for each of a plurality of messages of the conversation graph using a predictive model;
the messaging platform ranking the messages of the first section based on the predicted results for the messages of the first section;
said messaging platform sending at least a portion of said message of said first section rendered in a client application according to said rank.
前記メッセージングプラットホームが、前記第2のセクションの前記メッセージについての前記複数の予測結果に基づいて前記第2のセクションの前記メッセージをランク付けする工程をさらに備える、請求項39に記載のコンピュータ実装方法。 40. The computer-implemented method of claim 39, further comprising the messaging platform ranking the messages of the second section based on the plurality of prediction results for the messages of the second section. 前記メッセージングプラットホームが、前記会話グラフの追加のメッセージを前記クライアントアプリケーションにおいてレンダリングするリクエストを受信する工程と、
前記メッセージングプラットホームが、前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第2のセクションの前記メッセージの少なくとも一部を送信する工程と、をさらに備える、請求項40に記載のコンピュータ実装方法。
the messaging platform receiving a request to render additional messages of the conversation graph in the client application;
41. The computer-implemented method of claim 40, further comprising the messaging platform sending at least a portion of the message of the second section rendered in a client application according to the rank.
前記分類工程は、
前記会話グラフのメッセージのメッセージ識別子を受信する工程と、
分類モデルを用いて、前記メッセージが前記第1のセクションに対応するコンテンツ品質を有すると決定する工程と、を含む、請求項39~41のいずれか一項に記載のコンピュータ実装方法。
The classification step includes:
receiving a message identifier for a message of said conversation graph;
and using a classification model to determine that the message has a content quality corresponding to the first section.
前記メッセージを含む前記会話グラフのブランチを前記第1のセクションに割り当てる工程をさらに備える、請求項39~42のいずれか一項に記載のコンピュータ実装方法。 43. The computer-implemented method of any one of claims 39-42, further comprising assigning a branch of the conversation graph containing the message to the first section. それぞれのメッセージの前記複数の予測結果を用いて、前記会話グラフのメッセージごとにエンゲージメント値を計算する工程をさらに備え、前記第1の品質セクションの前記メッセージは、前記第1の品質セクションの前記メッセージのエンゲージメント値に従ってランク付けされる、請求項39~43のいずれか一項に記載のコンピュータ実装方法。 calculating an engagement value for each message of the conversation graph using the plurality of prediction results for each message, wherein the message of the first quality section is the message of the first quality section; 44. The computer-implemented method of any one of claims 39-43, ranked according to an engagement value of . 前記予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含む、請求項39~44のいずれか一項に記載のコンピュータ実装方法。 45. The computer-implemented method of any one of claims 39-44, wherein the prediction results include mutual engagement probabilities, positive engagement probabilities, and negative engagement probabilities. 前記メッセージングプラットホームが、前記メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて前記会話グラフを生成する工程であって、前記会話グラフは会話に関連するメッセージのツリーデータ構造を含む、工程をさらに備える、請求項39~45のいずれか一項に記載のコンピュータ実装方法。 The messaging platform further comprising generating the conversation graph based on the reply structure of messages exchanged on the messaging platform, the conversation graph comprising a tree data structure of messages associated with a conversation. The computer-implemented method of any one of claims 39-45. 前記複数の予測モデルは、相互エンゲージメントモデル、正のエンゲージメントモデル、および負のエンゲージメントモデルを含み、前記相互エンゲージメントモデル、前記正のエンゲージメントモデル、および前記負のエンゲージメントモデルのうちの1つ以上はニューラルネットワークを含む、請求項39~46のいずれか一項に記載のコンピュータ実装方法。 The plurality of predictive models includes a mutual engagement model, a positive engagement model, and a negative engagement model, wherein one or more of the mutual engagement model, the positive engagement model, and the negative engagement model are neural networks. 47. The computer-implemented method of any one of claims 39-46, comprising: メッセージングプラットホームにおける会話グラフのメッセージをランク付けするためのシステムであって、
メッセージングプラットホームにおいて交換されたメッセージのリプライ構造に基づいて会話グラフを生成するように構成されている会話グラフマネージャであって、前記会話グラフは会話のメッセージのデータ構造を含む、会話グラフマネージャと、
ネットワークを通じて、クライアントアプリケーション上のユーザのタイムラインにメッセージのストリームを提供するように構成されているタイムラインマネージャであって、会話閲覧リクエストを、ネットワークを通じて前記クライアントアプリケーションから受信するように構成されている、タイムラインマネージャと、
前記会話グラフの前記メッセージを、前記メッセージのコンテンツ品質に基づいて複数のセクションへと分類するように構成されているコンテンツ品質分類器であって、前記複数のセクションは第1のセクションおよび第2のセクションを含み、前記第1のセクションは前記第2のセクションのメッセージよりも高品質であると決定された前記会話グラフからのメッセージを有する、コンテンツ品質分類器と、
予測モデルを用いて前記会話グラフの複数のメッセージの各々について複数の予測結果を決定するように構成されているエンゲージメント予測器と、
それぞれのメッセージについての前記複数の予測結果を用いて前記複数のメッセージの各々についてエンゲージメント値を計算するように構成されているエンゲージメントスコアラと、を備え、
前記タイムラインマネージャは、前記第1のセクションのエンゲージメント値を用いて前記第1のセクションの前記メッセージをランク付けし、前記ランクに従って前記タイムラインにおいてレンダリングされる前記第1のセクションの前記メッセージの少なくとも一部を、前記ネットワークを通じて提供するように構成されている、システム。
A system for ranking messages of a conversation graph in a messaging platform, comprising:
a conversation graph manager configured to generate a conversation graph based on a reply structure of messages exchanged in a messaging platform, said conversation graph including a data structure of messages of a conversation;
A timeline manager configured to provide a stream of messages to a user's timeline on a client application over a network, and configured to receive conversation view requests from the client application over the network. , the timeline manager, and
A content quality classifier configured to classify the messages of the conversation graph into a plurality of sections based on content quality of the messages, the plurality of sections comprising a first section and a second section. a content quality classifier comprising sections, the first section having messages from the conversation graph determined to be of higher quality than the messages of the second section;
an engagement predictor configured to determine a plurality of predicted outcomes for each of a plurality of messages of said conversation graph using a predictive model;
an engagement scorer configured to calculate an engagement value for each of the plurality of messages using the plurality of predicted results for each message;
The timeline manager ranks the messages of the first section using the engagement value of the first section, and at least of the messages of the first section rendered in the timeline according to the rank. A system configured to provide a portion through said network.
前記エンゲージメント予測器は、前記メッセージングプラットホームに記憶されている1つまたは複数のデータサービスから、前記予測モデルに関連性のある複数の信号を取得するように構成されており、前記複数の予測結果を決定するように、前記複数の信号を前記予測モデルに入力するように構成されている、請求項48に記載のシステム。 The engagement predictor is configured to obtain a plurality of signals relevant to the predictive model from one or more data services stored on the messaging platform, and extracts the plurality of prediction results. 49. The system of claim 48, configured to input said plurality of signals into said predictive model to determine. 前記複数の信号は、前記会話グラフに関連するデータ構造関連信号を含む、請求項49に記載のシステム。 50. The system of claim 49, wherein said plurality of signals includes data structure related signals associated with said conversation graph. 前記タイムラインマネージャは、前記第2のセクションのエンゲージメント値を用いて前記第2のセクションの前記メッセージを別々にランク付けするように構成されている、請求項48~50のいずれか一項に記載のシステム。 51. The timeline manager of any one of claims 48-50, wherein the timeline manager is configured to separately rank the messages of the second section using the engagement value of the second section. system. 前記コンテンツ品質分類器は、前記会話グラフのメッセージのメッセージ識別子を受信するように、また分類モデルを用いて、前記メッセージが前記第1の品質セクションに対応するコンテンツ品質を有することを決定するように構成されている、請求項48~51のいずれか一項に記載のシステム。 The content quality classifier receives a message identifier for a message of the conversation graph and uses a classification model to determine that the message has a content quality corresponding to the first quality section. 52. The system of any one of claims 48-51 configured. 前記複数の予測結果は相互エンゲージメント確率を含み、前記相互エンゲージメント確率は、前記メッセージングプラットホームが、前記会話グラフのそれぞれのメッセージに対するリプライを受信すると予測される確率値を含む、請求項48~52のいずれか一項に記載のシステム。 53. Any one of claims 48 to 52, wherein said plurality of prediction results comprise mutual engagement probabilities, said mutual engagement probabilities comprising probability values that said messaging platform is expected to receive a reply to each message of said conversation graph. or the system according to item 1. 訓練データが入力された1つまたは複数の機械学習アルゴリズムに基づいて前記予測モデルを定期的に訓練するように構成されている予測モデルトレーナであって、訓練された前記予測モデルを前記予測マネージャに対し提供するように構成されている、予測モデルトレーナをさらに備える、請求項48~53のいずれか一項に記載のシステム。 a predictive model trainer configured to periodically train the predictive model based on one or more machine learning algorithms input with training data, the trained predictive model being provided to the predictive manager; 54. The system of any one of claims 48-53, further comprising a predictive model trainer configured to provide to. 実行可能な命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令は、1つ以上のプロセッサによる実行時、前記1つ以上のプロセッサに、
分類モデルを用いて、会話グラフのメッセージを前記メッセージのコンテンツ品質に基づいて複数のセクションへと分類する工程であって、前記複数のセクションは第1のセクションおよび第2のセクションを含み、前記第1のセクションは前記第2のセクションのメッセージよりも高品質であると決定された前記会話グラフからのメッセージを有する、工程と、
1つまたは複数の予測モデルを用いて、前記会話グラフの複数のメッセージの各々について複数の予測結果を決定する工程であって、前記複数の予測結果は、相互エンゲージメント確率、正のエンゲージメント確率、および負のエンゲージメント確率を含む、工程と、
前記第1のセクションの前記メッセージを前記第1のセクションの前記メッセージについての前記複数の予測結果に基づいてランク付けする工程と、
前記第2のセクションの前記メッセージを前記第2のセクションの前記メッセージについての前記複数の予測結果に基づいてランク付けする工程と、
前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第1の品質セクションの前記メッセージの少なくとも一部を送信する工程と、を行わせるように構成されている、非一時的なコンピュータ可読媒体。
A non-transitory computer-readable medium storing executable instructions that, when executed by one or more processors, cause the one or more processors to:
classifying messages of a conversation graph into a plurality of sections based on content quality of said messages using a classification model, said plurality of sections including a first section and a second section; one section having messages from the conversation graph determined to be of higher quality than messages of the second section;
determining a plurality of prediction outcomes for each of a plurality of messages of the conversation graph using one or more prediction models, the plurality of prediction outcomes being a mutual engagement probability, a positive engagement probability, and a process comprising a negative engagement probability;
ranking the messages of the first section based on the plurality of prediction results for the messages of the first section;
ranking the messages of the second section based on the plurality of prediction results for the messages of the second section;
and sending at least a portion of said message of said first quality section rendered in a client application according to said rank.
前記クライアントアプリケーションから受信された情報を記憶するクライアントイベントログと、メッセージングプラットホームにおいて実行するタイムラインマネージャからの情報を記憶するインジェクションログと、から訓練データを取得する工程と、
前記訓練データが入力された機械学習アルゴリズムに基づいて前記予測モデルを訓練する工程と、をさらに備える、請求項55に記載の非一時的なコンピュータ可読媒体。
obtaining 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;
56. The non-transitory computer-readable medium of claim 55, further comprising training the predictive model based on a machine learning algorithm input with the training data.
前記会話グラフの第1のメッセージのメッセージ識別子を受信する工程と、
前記分類モデルを用いて、前記第1のメッセージが前記第1のセクションに対応するコンテンツ品質を有すると決定する工程と、
前記会話グラフの第2のメッセージのメッセージ識別子を受信する工程と、
前記分類モデルを用いて、前記第2のメッセージが前記第2のセクションに対応するコンテンツ品質を有すると決定する工程と、をさらに備える、請求項55または56に記載の非一時的なコンピュータ可読媒体。
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;
receiving a message identifier of a second message of the conversation graph;
57. The non-transitory computer-readable medium of claim 55 or 56, further comprising using the classification model to determine that the second message has a content quality corresponding to the second section. .
前記会話グラフの追加のメッセージを前記クライアントアプリケーションにおいてレンダリングするリクエストを受信する工程と、
前記ランクに従ってクライアントアプリケーションにおいてレンダリングされる前記第2のセクションの前記メッセージの少なくとも一部を送信する工程と、をさらに備える、請求項55~57のいずれか一項に記載の非一時的なコンピュータ可読媒体。
receiving a request to render additional messages of the conversation graph at the client application;
sending at least a portion of said message of said second section rendered in a client application according to said rank. medium.
JP2022537485A 2019-12-20 2020-12-10 Ranking Messages in Conversation Graphs in Messaging Platforms Using Prediction Results Pending JP2022552918A (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
JP2022552918A true JP2022552918A (en) 2022-12-20

Family

ID=74186992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022537485A Pending JP2022552918A (en) 2019-12-20 2020-12-10 Ranking Messages in Conversation Graphs in Messaging Platforms 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)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9449050B1 (en) * 2013-01-08 2016-09-20 Twitter, Inc. Identifying relevant messages in a conversation graph
JP2017174062A (en) * 2016-03-23 2017-09-28 富士ゼロックス株式会社 Purchase behavior analyzing device and program

Family Cites Families (2)

* 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
US9418117B1 (en) * 2013-01-08 2016-08-16 Twitter, Inc. Displaying relevant messages of a conversation graph

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9449050B1 (en) * 2013-01-08 2016-09-20 Twitter, Inc. Identifying relevant messages in a conversation graph
JP2017174062A (en) * 2016-03-23 2017-09-28 富士ゼロックス株式会社 Purchase behavior analyzing device and program

Also Published As

Publication number Publication date
CA3165466A1 (en) 2021-06-24
WO2021127687A1 (en) 2021-06-24
KR20220123663A (en) 2022-09-08
AU2020405265A1 (en) 2022-07-21

Similar Documents

Publication Publication Date Title
US20220027359A1 (en) Online hyperparameter tuning in distributed machine learning
US11057322B1 (en) Ranking messages of conversation graphs in a messaging platform using machine-learning signals
Tang et al. Predicting individual retweet behavior by user similarity: a multi-task learning approach
US11657371B2 (en) Machine-learning-based application for improving digital content delivery
US20160321261A1 (en) System and method of providing a content discovery platform for optimizing social network engagements
US8527450B2 (en) Apparatus and methods for analyzing and using short messages from commercial accounts
US20190303835A1 (en) Entity representation learning for improving digital content recommendations
US10102503B2 (en) Scalable response prediction using personalized recommendation models
KR20160058896A (en) System and method for analyzing and transmitting social communication data
US11003720B1 (en) Relevance-ordered message search
US11487791B2 (en) Latent feature extraction from a network graph
KR102155342B1 (en) System for providing multi-parameter analysis based commercial service using influencer matching to company
US10891539B1 (en) Evaluating content on social media networks
US20170052761A1 (en) Expert signal ranking system
CN111339404A (en) Content popularity prediction method and device based on artificial intelligence and computer equipment
US20110047006A1 (en) Systems, methods, and media for rating websites for safe advertising
US10769227B2 (en) Incenting online content creation using machine learning
CN110795641A (en) Network rumor propagation control method based on representation learning
US20210326718A1 (en) Machine learning techniques to shape downstream content traffic through hashtag suggestion during content creation
US10951560B1 (en) Ranking messages of conversation graphs in a messaging platform using predictive outcomes
US11775813B2 (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
JP2022552918A (en) Ranking Messages in Conversation Graphs in Messaging Platforms Using Prediction Results
US11516155B1 (en) Hard and soft ranking messages of conversation graphs in a messaging platform
US20190130360A1 (en) Model-based recommendation of career services

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220824

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220824

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221220

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230718