OpenRankのEigentrustアルゴリズムを深く探る:ソーシャルコンピューティング層をどのように構築するか?

BlockBeats
2024-06-24 12:43:42
コレクション
EigentrustアルゴリズムはPageRankに似ており、グラフネットワーク内のノードにランクを付けます。異なる点は、信頼の分布として複雑なピアツーピア関係を捉えることに重点を置いていることです。

原題:《OpenRank: コンテキストとパーソナライズされたグラフフィードでアプリを強化する》

著者:Andrew Hong

編纂:Ladyfinger,BlockBeats

編者按:

この記事では、著者が OpenRank の Eigentrust アルゴリズムについて深く掘り下げています。これは現在、Metamask Snaps、Degen tips、Supercast で使用されている新しい技術です。OpenRank は計算層として、さまざまな評判グラフアルゴリズムを実行でき、最初に紹介されるのが eigentrust アルゴリズムです。著者は、なぜコミュニティが構築したグラフが必要なのか、アルゴリズムの重要な概念、どのように機能するのか、そして自分自身のグラフを作成する方法について共有しています。さらに、著者は今後開催される Bytexplorers タスクについても予告し、読者に最新情報を得るために購読するよう促しています。

今日の暗号通貨のフロントエンドは、取引量、流動性、ミント、ポイント、投票などでソートされたシンプルなランキングを含むことがほとんどです。もし私たちが、今日の Web2 巨頭を超える消費者向け暗号通貨体験に入ることを望むなら、私たちのアプリケーションには単なるランキング以上のものが必要です。

OpenRank は、私たちがこの目標を達成するための基盤の一つであり、すでに Metamask Snaps、Degen Tips、Supercast で使用されています。OpenRank は、多くの評判グラフアルゴリズムを実行できる計算層であり、その最初のものが eigentrust アルゴリズムです。

この記事では、OpenRank の eigentrust アルゴリズムを紹介し、以下の内容について議論します:

コミュニティ構築グラフの重要性と、なぜそれが必要なのか

このアルゴリズムの重要な概念とその動作原理

自分自身のグラフを作成する方法、私が Python ノートブックで作成したグラフを参考に

さあ、始めましょう!

なぜコミュニティと共に推薦グラフを構築する必要があるのか?単に自分の機械学習チームに頼るのではなく?

暗号通貨においてアルゴリズムや推薦フローを構築する際、すぐにいくつかのデータの問題に直面します:

· 取引には多くの階層の操作が含まれます

· アドレス間の関係は、複数の取引を通じて無限に複雑になる可能性があります

· アドレス自体は部分的なアイデンティティを含み、各アイデンティティは異なるコンテキストで関連しています

これらのすべての要素は指数関数的に成長しており、これらの成長する要素を「コンテキスト」と呼びましょう。

あなたの小規模な ML チームはこれらの終わりのない創造に追いつけません

あなたはまた、バックエンドやデータエンジニアリングチームにこれらの問題を処理させたくないでしょう。結局のところ、彼らには構築すべき製品があります。アプリケーションがユーザーとユーザーデータ構造を持つ時代は終わりました。あなたはもはや単なるリンク、ユーザー ID、いいね/返信/シェア、投稿 ID を持っているだけではなく、交換、分割、ドロップ、スワップ、ステーキング、委任、投票、ミントなどを持つことができます。ほぼ毎日新しい「操作」が登場し、新しいチェーン、新しいタイプのウォレット、新しいタイプのアイデンティティなどが現れています。

私は、今後1年で暗号通貨業界が OpenRank プロトコルと製品を基盤としたグラフデータサイエンスコミュニティを発展させると信じています

私は Dune のウィザードコミュニティに数年間滞在し、コミュニティの力が小規模なチームの能力を超えているのを目の当たりにしました。私はまた、ほぼすべての小規模な暗号チームが「はい、私たちは1つのノードと RDS データベースでこの作業を独立して行うことができます」から「私たちは The Graph や Dune のようなコミュニティ構築データツールを活用する必要があります」に移行するのを見てきました。私にとって、特定のタイプの推薦フローとコミュニティ調整のためのクエリとグラフの組み合わせを作成することは、似たような問題です。私たちは、Farcaster クライアントからブロックエクスプローラーまで、各アプリケーションで推薦フローを提供できるグラフを収集し、テストし始める必要があります。

推薦フローの概念は模倣的であり、淘汰されるでしょう。ユーザーはコンテンツのキュレーターとなります

暗号通貨の分野では、ユーザーは自分のソーシャルグラフを異なるアプリケーションに持ち込むだけでなく、これらのグラフに隠されたコンテキストも一緒に持ち出したいと考えています。もし私が Farcaster で/degen コミュニティを積極的にフォローしているなら、Zora、Roam.xyz、OnceUpon でそのコミュニティの活動を推薦されたいと思います。そして、私はその推薦を、私が参加している別のコミュニティのコンテキストに切り替えられることを望んでいます。例えば、artblocks コレクターのように。未来は、ユーザーが自分自身のフィードを発見し、選択する時代になるでしょう。単一のプラットフォームの特定のグループやチャンネル機能に制限されることはありません。

OpenRank の Eigentrust アルゴリズムはどのように機能するのか?

Eigentrust アルゴリズムは PageRank に似ており、グラフネットワーク内のノードをランク付けします。異なる点は、信頼の分布として複雑な点対点関係を捉えることに重点を置いていることです。これは、ファイル共有ネットワークで信頼スコアを割り当てるために最初に構築されました。暗号通貨の分野では、高品質なガバナンス委任者を代理したり、信頼できるスマートコントラクトを特定したりするために使用することを想像できます。

以下は Eigentrust の公式です:

OpenRankのEigentrustアルゴリズムを深く探る:ソーシャル計算層をどのように構築するか?

上記には2つの重要な入力があります:事前信頼ノードとローカル信頼グラフ。「P」はあなたの事前信頼、「S」はあなたのローカル信頼です。

· ローカル信頼(localtrust):これは、ノード「i」がノード「j」に何らかの価値を伝達する際の、2つのノード間の相互作用の測定です。これはトークンの移転、証明、投票の返信/いいねなどかもしれません。

· 事前信頼(pretrust):これは、あなたが選択したネットワーク内でより信頼されるべきノードの「種子」選択です。

· 「c」:この定数(0から1の間)は、全体のローカル信頼グラフと事前信頼種子間の信頼値の重みです。相互作用グラフは通常、べき乗則分布を持つため、高い事前信頼重みは最終的なランク値の分布を正規化するのに役立ちます。

これらの数学的公式が理解しにくい場合は、Twitter のようなソーシャルグラフに類似させることができます。フォロワー、いいね、返信などの影響力は通常少数の人に集中し、べき乗則のダイナミクスを引き起こします。影響力のある個人のセットを設定し、定数「c」の値を0.5以上に選択することで、実際にこれらの信頼された個人が相互作用する人々は、その影響力の半分の価値を引き継ぐことになります。これがネットワーク内で信頼スコアをより均等にバランスさせ、分配する方法です。

これは、任意のコンテキストを選択し、任意の推薦フローを作成することとどのように関係していますか?

仮に、あなたが10000の資金提案を推薦フローでランク付けしたいとします。投票の相互作用(ローカル信頼)と、あなた自身が選択した信頼できる投票者のセット(事前信頼)に基づいて、すべての投票者と提案者の価値をランク付けできます。あなたは、複数の DAO で委任投票を行っている上位10名の投票者を選ぶことで、事前信頼の投票者を選択できます。Eigentrust はこれらの2つの入力に基づいて実行され、事前信頼ノードから引き継いだ信頼に基づいてグラフ内でランク付けされたより大きな投票者リストを提供します。

こうして、あなたはこのランク付けされた価値リストを使用して、リアルタイムのガバナンス提案を評価し、よりパーソナライズされた推薦フローを得ることができます!

これがまだ抽象的すぎる場合は、次のセクションで具体的なコード例を通じて説明します。OpenRank はこれらの Eigentrust グラフの計算と保存を処理し、出力された推薦フローを使用することを推奨します。あなたがする必要があるのは、事前信頼とローカル信頼の入力を決定することだけです。

OpenRank を使用して Eigentrust グラフを構築するには?

最終目標

この例では、Farcaster/baseのユーザーボレットに基づいて推薦契約のサブスクリプションフローを提供したいと思います(Farcaster は Twitter に似たアプリです)。出力は、id と値を含むリストであり、私のグラフでは各 id が Farcaster ユーザー id(fid)に関連付けられています。

OpenRankのEigentrustアルゴリズムを深く探る:ソーシャル計算層をどのように構築するか?

https://dune.com/ilemi/openrank

ランキンググラフを作成した後、彼らの先週の主要契約相互作用に基づいてこの推薦フローを生成しました:

OpenRankのEigentrustアルゴリズムを深く探る:ソーシャル計算層をどのように構築するか?

https://dune.com/ilemi/openrank

あなたはダッシュボードを確認することができ、そこから作成された他の推薦フロー、例えば NFT ミント、DEX トークン取引、Farcaster チャンネル活動などを確認できます。

コード実装

目標を見たところで、私はこのランキンググラフをどのように作成したかについて話しましょう。

この例のすべてのコードは、hex.tech ノートブックで見つけることができ、ローカルで実行したい場合は、jupyter notebookを使用することもできます。

まず、私たちの事前信頼とローカル信頼のために2つのクエリをそれぞれ作成しました:

最初のクエリは私たちの「事前信頼ノード」です。このクエリは、受け取った相互作用(いいね、リツイート、返信)に基づいて、/base チャンネル内のトップユーザーを出力します。私の公式は (いいね + 3 リツイート + 10 返信) です。私たちはこのクエリから上位100の id を信頼ノードとして取得します。

OpenRankのEigentrustアルゴリズムを深く探る:ソーシャル計算層をどのように構築するか?

https://dune.com/queries/3756241

2つ目のクエリはノード間のオンチェーン相互作用を追跡するために使用され、/base チャンネル内のユーザーのリンクアドレスを使用します。推薦フローがオンチェーン操作を推奨するため、私はオンチェーン相互作用量に基づいた相互作用グラフを選択したいと考えました。ノード間の移転におけるドル価値を使用することは、良い一般的な代理です------私は Optimism、Base、Ethereum メインネットでのステーブルコインと ETH の移転を追跡しました。

OpenRankのEigentrustアルゴリズムを深く探る:ソーシャル計算層をどのように構築するか?

https://dune.com/queries/3756692

入力グラフを分析し、出力された Eigentrust グラフをテストする

今、私たちは事前信頼ノードとローカル信頼グラフを持っています。いくつかの要約統計を見てみましょう。/base チャンネルには 65,755 人のユーザーがいて、そのユーザーはチャンネル内の他の人にトークンを移転しました。私たちの事前信頼ノードからは、グラフの19%(つまり接続されたノード)を遍歴できます。このパーセンテージは、グラフのローカル信頼データのシビル度によって異なる場合があります。トークン移転は高信号かもしれませんが、同時に不正行為の可能性もあるため、グラフの大部分が未接続であることは驚くべきことではありません。

OpenRankのEigentrustアルゴリズムを深く探る:ソーシャル計算層をどのように構築するか?

入力データのサイズと接続が合理的であることを確認した後、私たちは Eigentrust グラフを実行し、保存できます。私は自分のグラフを id「basetransfer50」として保存しました------下の10行のコードだけでグラフをトレーニングできます。OpenRank SDK は、暗号グラフモデルの scikit-learn と見なすことができます。

OpenRankのEigentrustアルゴリズムを深く探る:ソーシャル計算層をどのように構築するか?

前述の公式の定数「c」を覚えていますか?異なる c 値(私が alpha と呼ぶもの)と異なる事前信頼種子サイズでグリッドサーチを行い、どれが最も対数正規の信頼スコアと最高のカバレッジを提供するかを見てみましょう:

OpenRankのEigentrustアルゴリズムを深く探る:ソーシャル計算層をどのように構築するか?

ここには多くのトレードオフがあり、選択する最適な値はありません。もしあなたが推薦に強い多様性を望むなら、高い正則化とカバレッジは良い選択ですが、高リスクのガバナンス投票に対しては、実際には信頼の集中度が高いことを望むかもしれません。ここではあなたの直感を使うことができます。

ここから、Dune のダッシュボードの最初にリンクしたサブスクリプションクエリに値を挿入して、/base チャンネル内の信頼されたユーザーの契約相互作用フローを得ることができます。この主観的な推薦出力は、以前の一般的な指標と推薦出力の質に対する私たちの期待直感をより良く結びつけるのに役立ちます。

OpenRankのEigentrustアルゴリズムを深く探る:ソーシャル計算層をどのように構築するか?

完了です!あなたはこの Dune API を使用して、あなたのアプリにすぐに力を与えることができます。

自分の OpenRank Eigentrust グラフを構築する方法を学ぶ

自分でやってみる準備はできましたか?私のノートブックをフォークして自分で試すことができます。必要なリンクは以下の通りです:

·OpenRank ドキュメント

·Python SDK リポジトリ

·Python ノートブック

·Dune フィードダッシュボード

私は来月中に Bytexplorers タスクを開始し、トップ暗号アプリに適した最良のサブスクリプションフローグラフを作成する競技を行います。

ChainCatcherは、広大な読者の皆様に対し、ブロックチェーンを理性的に見るよう呼びかけ、リスク意識を向上させ、各種仮想トークンの発行や投機に注意することを提唱します。当サイト内の全てのコンテンツは市場情報や関係者の見解であり、何らかの投資助言として扱われるものではありません。万が一不適切な内容が含まれていた場合は「通報」することができます。私たちは迅速に対処いたします。
チェーンキャッチャー イノベーターとともにWeb3の世界を構築する