В этой статье автор подробно рассматривает алгоритм Eigentrust в рамках OpenRank, который является новой технологией, используемой в настоящее время Metamask Snaps, Degen tips и Supercast. OpenRank, как вычислительный уровень, может выполнять несколько алгоритмов графа репутации, сначала рассматривается алгоритм eigentrust. Автор делится, почему нужно построение графа сообщества, ключевые концепции алгоритма, как он работает и как создать свой собственный граф. Кроме того, автор анонсирует предстоящую задачу Bytexplorers и призывает читателей подписаться, чтобы быть в курсе последних событий.
В настоящее время большинство фронтендов криптовалют включают простые топ-листы токенов, отсортированные по объему торгов, ликвидности, майнингу, баллам, голосам и т. д. Только топ-листы недостаточно для нашего приложения, если мы хотим создать потребительский опыт криптовалют, способный превзойти существующих гигантов веб-2.
OpenRank - один из угловых камней, помогающий нам достичь этой цели, уже используется Metamask Snaps, Degen Tips и Supercast. OpenRank - это вычислительный слой, способный работать с множеством алгоритмов репутации, среди которых первым идет алгоритм eigentrust.
В этой статье я расскажу вам об алгоритме eigentrust OpenRank и обсудим следующее:
Важность построения графа сообщества и почему вам это нужно
Ключевые концепции и принцип работы этого алгоритма
Как создать свою собственную диаграмму, смотрите пример диаграммы, которую я сделал в своей записной книжке Python
Давайте начнем!
Почему вам следует строить рекомендательную сеть вместе с сообществом, а не только полагаться на свою собственную команду машинного обучения?
При построении алгоритмов и потоков рекомендаций в криптовалюте вы скоро столкнетесь с некоторыми проблемами данных:
· Торговля включает в себя множество уровней операций
Отношения между адресами могут стать бесконечно сложными через многократные транзакции.
· Адрес сам по себе содержит часть идентичности, каждая идентичность в разных контекстах связана.
Все три вышеупомянутых аспекта продолжают развиваться экспоненциально быстрыми темпами, поэтому мы называем эти постоянно растущие элементы «контекстом».
Ваша небольшая команда ML не в состоянии следить за этой бесконечной фантазией
Вы также не хотите, чтобы ваша команда бэкэндов или инженеров по данным занималась этими вопросами, ведь у них есть продукты, которые нужно создавать. Эпоха приложений с пользовательскими структурами и данными пользователя закончилась, и теперь у вас есть возможность иметь обмен, разделение, падение, обмен, залог, делегирование, голосование, чеканку и т. д. Почти каждый день появляются новые «операции», а также новые цепочки, новые типы кошельков, новые типы идентификации и т. д.
Я верю, что в следующем году в индустрии криптовалют разовьется сообщество графовых данных на основе протокола и продуктов OpenRank.
Я уже несколько лет участвую в сообществе wizard в Dune и видел мощь сообщества, превышающую возможности небольших команд. Я также видел, как практически каждая небольшая криптокоманда переходит от ‘да, мы можем справиться с этим самостоятельно с помощью узла и базы данных RDS’ к ‘нам нужно использовать инструменты данных, созданные сообществом, такие как The Graph и Dune’. Для меня создание комбинации запросов и графиков для рекомендаций и настройки сообщества для определенного типа потоков является аналогичной проблемой. Нам нужно начать сбор и тестирование графиков, способных предоставлять потоки рекомендаций в каждом приложении, от клиента Farcaster до проводника блоков.
Концепция рекомендательного потока устареет, а пользователи станут кураторами контента
В сфере криптовалют пользователи не только хотят взять свою социальную сеть с собой в различные приложения, но и хотят взять с собой контекст, скрытый в этих сетях. Если я активно следую сообществу /degen на Farcaster, я хотел бы видеть рекомендации этого сообщества на Zora, Roam.xyz или OnceUpon, и я хотел бы иметь возможность переключиться на контекст другого сообщества, в котором я участвую, например, коллекционирование на artblocks. Будущее наступит, когда пользователи смогут самостоятельно находить и выбирать свою ленту новостей, а не ограничиваться функциями отдельной платформы или канала.
Как работает алгоритм Eigentrust в OpenRank?
Алгоритм Eigentrust, подобно PageRank, ранжирует узлы в графовой сети. Отличие заключается в том, что он акцентирует внимание на сложных взаимосвязях между узлами в качестве распределения доверия. Изначально он был создан для назначения оценочных баллов доверия в сети обмена файлами. В области криптовалюты вы можете представить его использование в качестве посредника высококачественных управляющих лиц или для идентификации надежных смарт-контрактов.
Ниже приведена формула Eigentrust:
Наверху есть два ключевых ввода: предварительно доверенный узел и локальный доверенный граф. “P” - это ваш предварительный доверенный, “S” - ваш локальный доверенный.
· Локальное доверие (localtrust): это измерение взаимодействия между двумя узлами, когда узел “i” передает определенную ценность узлу “j”. Это может быть передача токенов, доказательства, ответы на голосование/лайки и т. д.
· Предварительное доверие (pretrust): это выбор ‘сидов’ в сети, которым вы должны больше доверять.
· “c”: Эта константа (от 0 до 1) представляет собой весовое значение доверия между общей локальной графикой доверия и предварительно доверенным семеном. Интерактивные графики обычно имеют степенное распределение, поэтому более высокий вес предварительного доверия помогает нормализовать распределение конечных значений рейтинга.
Если эти математические формулы трудно понять, их можно сравнить с социальной графикой, такой как Twitter, где влияние, такое как подписчики, лайки, ответы и т. д., обычно сосредоточено на небольшом количестве людей, что приводит к степенному динамическому распределению. Путем назначения группы влиятельных личностей и выбора константы «с» со значением 0,5 или выше, на самом деле, люди, с которыми эти доверенные лица взаимодействуют, унаследуют половину этой ценности влияния. Это является способом более равномерного балансирования и распределения оценок доверия в сети.
Как это связано с выбором любого контекста и созданием любого рекомендуемого потока?
Предположим, вы хотите отсортировать 10000 предложений о финансировании в рекомендуемом потоке. На основе набора взаимодействий с голосованием (локальное доверие) и выбранных вами доверенных голосующих (предварительное доверие) вы можете оценить ценность всех голосующих и предложителей. Вы можете выбрать своих предварительно доверенных голосующих, делегируя голоса в 10 лучших голосующих, в которых вы делегировали голоса в нескольких DAO. Eigentrust будет выполняться на основе этих двух входных данных и даст вам более крупный список голосующих, ранжированных в графе на основе доверия, унаследованного от узлов предварительного доверия.
Таким образом, вы можете использовать этот список стоимости рейтинга для оценки предложений по реальному времени управления и получения более персонализированного потока рекомендаций!
Возможно, это все еще слишком абстрактно, поэтому я приведу конкретные примеры кода в следующем разделе. Помните, что OpenRank обрабатывает вычисление и хранение графа Eigentrust, и рекомендуется использовать выходной поток рекомендаций. Вам нужно только определить входы предварительного доверия и локального доверия.
Как использовать OpenRank для построения графа Eigentrust?
Конечная цель
В этом примере я хочу предложить ленту подписки на рекомендуемый контракт на основе кошелька пользователя Farcaster/base (Farcaster - приложение, подобное Twitter). Выход представляет собой список с идентификаторами и значениями, в моей схеме каждый идентификатор связан с идентификатором пользователя Farcaster (fid).
Источник данных
После создания графика рейтинга мы автоматически сгенерировали этот рекомендуемый поток на основе основных контрактов за прошлую неделю.
Источник данных
Вы можете просмотреть панель инструментов, чтобы увидеть другие рекомендуемые потоки, созданные из этой диаграммы, такие как майнтинг NFT, торговля токенами DEX и активности канала Farcaster.
Реализация кода
Теперь вы видели цель, давайте поговорим, как я создал эту таблицу рейтинга.
Весь код этого примера можно найти в блокноте hex.tech, если вы предпочитаете запускать его локально, также можно использовать блокнот jupyter.
Сначала я создал два запроса для нашего предварительного доверия и локального доверия:
Первый запрос - это наши «предварительно доверенные узлы». Этот запрос выводит топ-пользователей из / base-канала на основе взаимодействия (лайки, перепосты, ответы), и моя формула (лайки + 3 перепоста + 10 ответов). Мы возьмем первые 100 идентификаторов из этого запроса в качестве наших доверенных узлов.
Источник данных
Второй запрос предназначен для отслеживания взаимодействия в блокчейне между узлами с использованием адреса подключенного пользователя в канале /base. Поскольку подписка потока будет рекомендовать операции в блокчейне, я хочу убедиться, что выбранная взаимодействующая диаграмма основана на объеме взаимодействия в блокчейне. Использование долларовой стоимости, передаваемой между узлами, является хорошим универсальным показателем - я отслеживаю стабильные монеты и трансферы ETH на Optimism, Base и основной сети Ethereum.
Источник данных
Анализ входного графа и тестирование выходного графа Eigentrust
Теперь у нас есть предварительно доверенные узлы и локальные доверенные графы - давайте посмотрим на некоторые обобщающие статистические данные. В канале /base 65 755 пользователей передали токены другим пользователям в этом канале, а с помощью наших предварительно доверенных узлов можно пройти 19% графа (т. е. связанных узлов). Этот процент может отличаться в зависимости от степени симуляции графа локальными доверенными данными Sybil. Передача токенов может быть высокосигнальной, но также может быть и злонамеренной, поэтому неудивительно, что большая часть графа не связана.
После проверки размера входных данных и разумности соединения мы можем запустить и сохранить нашу собственную карту Eigentrust. Я сохраню свою карту как id «base_transfer_50» - вы можете видеть ниже, что обучение карты занимает всего 10 строк кода. OpenRank SDK можно рассматривать как scikit-learn для моделей шифрования графов.
Еще помните константу «c» из предыдущей формулы? Давайте проведем сеточный поиск для разных значений c (я называю их альфа) и разных размеров начального семени доверия, чтобы узнать, какие из них дают нам наибольшие оценки доверия в логарифмической шкале и наибольшее покрытие:
Здесь существует много компромиссов, и нет одного наилучшего значения для выбора. Если вы хотите рекомендовать сильное разнообразие, высокая регуляризация и покрытие - неплохой выбор, но для голосования по высокому риску управления в действительности может потребоваться более высокая степень доверия. Здесь можно полагаться на свою интуицию.
Из этого места мы можем вставить значение в подписанный запрос, связанный с панелью инструментов Dune, чтобы получить поток взаимодействий с контрактами, осуществляемый доверенными пользователями в канале /base. Этот субъективный рекомендуемый вывод помогает нам лучше связать предыдущие общие показатели с нашими ожиданиями качества рекомендуемого вывода.
Готово! Вы можете сразу же использовать этот API Dune для вашего любого приложения.
Изучение построения собственного графа OpenRank Eigentrust
Вы готовы взяться за это сами? Вы можете форкнуть мой репозиторий и попробовать сами, все необходимые ссылки ниже:
·OpenRank документы
репозиторий Python SDK
· Записная книжка Python
·Панель управления кормовой основы Dune
В следующем месяце я запущу задание Bytexplorers, мы будем конкурировать за создание лучшей диаграммы подписки, применимой для лучших криптографических приложений.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Глубокое изучение алгоритма Eigentrust OpenRank: как построить социальный вычислительный уровень?
Автор: Эндрю Хонг
Компиляция: Ladyfinger, BlockBeats
Редактор примечания:
В этой статье автор подробно рассматривает алгоритм Eigentrust в рамках OpenRank, который является новой технологией, используемой в настоящее время Metamask Snaps, Degen tips и Supercast. OpenRank, как вычислительный уровень, может выполнять несколько алгоритмов графа репутации, сначала рассматривается алгоритм eigentrust. Автор делится, почему нужно построение графа сообщества, ключевые концепции алгоритма, как он работает и как создать свой собственный граф. Кроме того, автор анонсирует предстоящую задачу Bytexplorers и призывает читателей подписаться, чтобы быть в курсе последних событий.
В настоящее время большинство фронтендов криптовалют включают простые топ-листы токенов, отсортированные по объему торгов, ликвидности, майнингу, баллам, голосам и т. д. Только топ-листы недостаточно для нашего приложения, если мы хотим создать потребительский опыт криптовалют, способный превзойти существующих гигантов веб-2.
OpenRank - один из угловых камней, помогающий нам достичь этой цели, уже используется Metamask Snaps, Degen Tips и Supercast. OpenRank - это вычислительный слой, способный работать с множеством алгоритмов репутации, среди которых первым идет алгоритм eigentrust.
В этой статье я расскажу вам об алгоритме eigentrust OpenRank и обсудим следующее:
Важность построения графа сообщества и почему вам это нужно
Ключевые концепции и принцип работы этого алгоритма
Как создать свою собственную диаграмму, смотрите пример диаграммы, которую я сделал в своей записной книжке Python
Давайте начнем!
Почему вам следует строить рекомендательную сеть вместе с сообществом, а не только полагаться на свою собственную команду машинного обучения?
При построении алгоритмов и потоков рекомендаций в криптовалюте вы скоро столкнетесь с некоторыми проблемами данных:
· Торговля включает в себя множество уровней операций
Отношения между адресами могут стать бесконечно сложными через многократные транзакции.
· Адрес сам по себе содержит часть идентичности, каждая идентичность в разных контекстах связана.
Все три вышеупомянутых аспекта продолжают развиваться экспоненциально быстрыми темпами, поэтому мы называем эти постоянно растущие элементы «контекстом».
Ваша небольшая команда ML не в состоянии следить за этой бесконечной фантазией
Вы также не хотите, чтобы ваша команда бэкэндов или инженеров по данным занималась этими вопросами, ведь у них есть продукты, которые нужно создавать. Эпоха приложений с пользовательскими структурами и данными пользователя закончилась, и теперь у вас есть возможность иметь обмен, разделение, падение, обмен, залог, делегирование, голосование, чеканку и т. д. Почти каждый день появляются новые «операции», а также новые цепочки, новые типы кошельков, новые типы идентификации и т. д.
Я верю, что в следующем году в индустрии криптовалют разовьется сообщество графовых данных на основе протокола и продуктов OpenRank.
Я уже несколько лет участвую в сообществе wizard в Dune и видел мощь сообщества, превышающую возможности небольших команд. Я также видел, как практически каждая небольшая криптокоманда переходит от ‘да, мы можем справиться с этим самостоятельно с помощью узла и базы данных RDS’ к ‘нам нужно использовать инструменты данных, созданные сообществом, такие как The Graph и Dune’. Для меня создание комбинации запросов и графиков для рекомендаций и настройки сообщества для определенного типа потоков является аналогичной проблемой. Нам нужно начать сбор и тестирование графиков, способных предоставлять потоки рекомендаций в каждом приложении, от клиента Farcaster до проводника блоков.
Концепция рекомендательного потока устареет, а пользователи станут кураторами контента
В сфере криптовалют пользователи не только хотят взять свою социальную сеть с собой в различные приложения, но и хотят взять с собой контекст, скрытый в этих сетях. Если я активно следую сообществу /degen на Farcaster, я хотел бы видеть рекомендации этого сообщества на Zora, Roam.xyz или OnceUpon, и я хотел бы иметь возможность переключиться на контекст другого сообщества, в котором я участвую, например, коллекционирование на artblocks. Будущее наступит, когда пользователи смогут самостоятельно находить и выбирать свою ленту новостей, а не ограничиваться функциями отдельной платформы или канала.
Как работает алгоритм Eigentrust в OpenRank?
Алгоритм Eigentrust, подобно PageRank, ранжирует узлы в графовой сети. Отличие заключается в том, что он акцентирует внимание на сложных взаимосвязях между узлами в качестве распределения доверия. Изначально он был создан для назначения оценочных баллов доверия в сети обмена файлами. В области криптовалюты вы можете представить его использование в качестве посредника высококачественных управляющих лиц или для идентификации надежных смарт-контрактов.
Ниже приведена формула Eigentrust:
Наверху есть два ключевых ввода: предварительно доверенный узел и локальный доверенный граф. “P” - это ваш предварительный доверенный, “S” - ваш локальный доверенный.
· Локальное доверие (localtrust): это измерение взаимодействия между двумя узлами, когда узел “i” передает определенную ценность узлу “j”. Это может быть передача токенов, доказательства, ответы на голосование/лайки и т. д.
· Предварительное доверие (pretrust): это выбор ‘сидов’ в сети, которым вы должны больше доверять.
· “c”: Эта константа (от 0 до 1) представляет собой весовое значение доверия между общей локальной графикой доверия и предварительно доверенным семеном. Интерактивные графики обычно имеют степенное распределение, поэтому более высокий вес предварительного доверия помогает нормализовать распределение конечных значений рейтинга.
Если эти математические формулы трудно понять, их можно сравнить с социальной графикой, такой как Twitter, где влияние, такое как подписчики, лайки, ответы и т. д., обычно сосредоточено на небольшом количестве людей, что приводит к степенному динамическому распределению. Путем назначения группы влиятельных личностей и выбора константы «с» со значением 0,5 или выше, на самом деле, люди, с которыми эти доверенные лица взаимодействуют, унаследуют половину этой ценности влияния. Это является способом более равномерного балансирования и распределения оценок доверия в сети.
Как это связано с выбором любого контекста и созданием любого рекомендуемого потока?
Предположим, вы хотите отсортировать 10000 предложений о финансировании в рекомендуемом потоке. На основе набора взаимодействий с голосованием (локальное доверие) и выбранных вами доверенных голосующих (предварительное доверие) вы можете оценить ценность всех голосующих и предложителей. Вы можете выбрать своих предварительно доверенных голосующих, делегируя голоса в 10 лучших голосующих, в которых вы делегировали голоса в нескольких DAO. Eigentrust будет выполняться на основе этих двух входных данных и даст вам более крупный список голосующих, ранжированных в графе на основе доверия, унаследованного от узлов предварительного доверия.
Таким образом, вы можете использовать этот список стоимости рейтинга для оценки предложений по реальному времени управления и получения более персонализированного потока рекомендаций!
Возможно, это все еще слишком абстрактно, поэтому я приведу конкретные примеры кода в следующем разделе. Помните, что OpenRank обрабатывает вычисление и хранение графа Eigentrust, и рекомендуется использовать выходной поток рекомендаций. Вам нужно только определить входы предварительного доверия и локального доверия.
Как использовать OpenRank для построения графа Eigentrust?
Конечная цель
В этом примере я хочу предложить ленту подписки на рекомендуемый контракт на основе кошелька пользователя Farcaster/base (Farcaster - приложение, подобное Twitter). Выход представляет собой список с идентификаторами и значениями, в моей схеме каждый идентификатор связан с идентификатором пользователя Farcaster (fid).
Источник данных
После создания графика рейтинга мы автоматически сгенерировали этот рекомендуемый поток на основе основных контрактов за прошлую неделю.
Источник данных
Вы можете просмотреть панель инструментов, чтобы увидеть другие рекомендуемые потоки, созданные из этой диаграммы, такие как майнтинг NFT, торговля токенами DEX и активности канала Farcaster.
Реализация кода
Теперь вы видели цель, давайте поговорим, как я создал эту таблицу рейтинга.
Весь код этого примера можно найти в блокноте hex.tech, если вы предпочитаете запускать его локально, также можно использовать блокнот jupyter.
Сначала я создал два запроса для нашего предварительного доверия и локального доверия:
Первый запрос - это наши «предварительно доверенные узлы». Этот запрос выводит топ-пользователей из / base-канала на основе взаимодействия (лайки, перепосты, ответы), и моя формула (лайки + 3 перепоста + 10 ответов). Мы возьмем первые 100 идентификаторов из этого запроса в качестве наших доверенных узлов.
Источник данных
Второй запрос предназначен для отслеживания взаимодействия в блокчейне между узлами с использованием адреса подключенного пользователя в канале /base. Поскольку подписка потока будет рекомендовать операции в блокчейне, я хочу убедиться, что выбранная взаимодействующая диаграмма основана на объеме взаимодействия в блокчейне. Использование долларовой стоимости, передаваемой между узлами, является хорошим универсальным показателем - я отслеживаю стабильные монеты и трансферы ETH на Optimism, Base и основной сети Ethereum.
Источник данных
Анализ входного графа и тестирование выходного графа Eigentrust
Теперь у нас есть предварительно доверенные узлы и локальные доверенные графы - давайте посмотрим на некоторые обобщающие статистические данные. В канале /base 65 755 пользователей передали токены другим пользователям в этом канале, а с помощью наших предварительно доверенных узлов можно пройти 19% графа (т. е. связанных узлов). Этот процент может отличаться в зависимости от степени симуляции графа локальными доверенными данными Sybil. Передача токенов может быть высокосигнальной, но также может быть и злонамеренной, поэтому неудивительно, что большая часть графа не связана.
После проверки размера входных данных и разумности соединения мы можем запустить и сохранить нашу собственную карту Eigentrust. Я сохраню свою карту как id «base_transfer_50» - вы можете видеть ниже, что обучение карты занимает всего 10 строк кода. OpenRank SDK можно рассматривать как scikit-learn для моделей шифрования графов.
Еще помните константу «c» из предыдущей формулы? Давайте проведем сеточный поиск для разных значений c (я называю их альфа) и разных размеров начального семени доверия, чтобы узнать, какие из них дают нам наибольшие оценки доверия в логарифмической шкале и наибольшее покрытие:
Здесь существует много компромиссов, и нет одного наилучшего значения для выбора. Если вы хотите рекомендовать сильное разнообразие, высокая регуляризация и покрытие - неплохой выбор, но для голосования по высокому риску управления в действительности может потребоваться более высокая степень доверия. Здесь можно полагаться на свою интуицию.
Из этого места мы можем вставить значение в подписанный запрос, связанный с панелью инструментов Dune, чтобы получить поток взаимодействий с контрактами, осуществляемый доверенными пользователями в канале /base. Этот субъективный рекомендуемый вывод помогает нам лучше связать предыдущие общие показатели с нашими ожиданиями качества рекомендуемого вывода.
Готово! Вы можете сразу же использовать этот API Dune для вашего любого приложения.
Изучение построения собственного графа OpenRank Eigentrust
Вы готовы взяться за это сами? Вы можете форкнуть мой репозиторий и попробовать сами, все необходимые ссылки ниже:
·OpenRank документы
репозиторий Python SDK
· Записная книжка Python
·Панель управления кормовой основы Dune
В следующем месяце я запущу задание Bytexplorers, мы будем конкурировать за создание лучшей диаграммы подписки, применимой для лучших криптографических приложений.