Создание информационного продукта для поиска людей в вашей сети

Доктор Эоин Харрелл возглавляет Data at Cohort. Здесь он размышляет о том, что необходимо для разработки системы для сбора и анализа огромных объемов общедоступных данных, для прогнозирования взаимоотношений и того, о чем люди осведомлены.

Когорта помогает найти нужных людей через людей, которых вы уже знаете и которым доверяете. Это звучит просто, но опыт существующего поиска в социальных сетях гораздо ближе к Я хочу подписаться / связаться с человеком на этом сайте.

Это затрудняет понимание того, к кому вы могли бы обратиться за помощью, или даже того, кого на самом деле знают ваши друзья и с которыми можно познакомить вас в списке друзей социальной сети. В этом посте будет рассказано о подходе, основанном на данных, который мы использовали, чтобы сделать возможным поиск в вашей сети в реальном контексте.

Краткое описание проблемы

Цель этого поиска - выделить не только друзей, но и друзей друзей - людей, с которыми ваши друзья могут познакомить вас, чтобы помочь вам решить проблему. Это имеет другое значение для релевантности, чем другие поисковые системы, поскольку в идеале оно должно выявлять людей, которых хорошо знают ваши друзья, которые кое-что знают о том, что вы ищете, и, возможно, не очевидны для вас в вашей собственной сети.

Это указывает на субъективную силу переменной отношения, отсутствующей в других сетях, то есть достаточно ли сильна эта связь, чтобы один человек попросил об одолжении у другого? Результаты также должны выделить в вашей сети то, чего вы не знаете, и научить вас более широкому контексту.

Уникальный поиск Cohort также создает проблемы для настройки индекса для поиска, поскольку каждый пользователь ищет свой уникальный взгляд на мир - сеть друзей друга. Наша стратегия обработки данных, принципы мотивации, которые определяют, как обрабатываются вводимые и сгенерированные данные, являются ключом к успешному поиску.

Обзор решения

В качестве краткого обзора мы построили конвейер приема данных с использованием Kafka, который сканирует социальные графики как активно (при регистрации пользователя), так и пассивно. Полученная информация о людях хранится в едином источнике правды (единое хранилище данных, в котором хранятся все данные, которые мы уже видели, чтобы обеспечить согласованность и избежать дублирования людей) и отображается в виде документов в нашем поисковом индексе. (Следите за последующим постом, который расскажет об этом более подробно.)

Сканируя социальные графики, мы делаем ряд прогнозов с использованием моделей машинного обучения, чтобы улучшить поиск, добавляя информацию к каждому документу в индексе. Эта информация обогащает эти документы и позволяет считать их релевантными для получения дополнительных результатов поиска. Семантическое понимание текста с помощью моделей обработки естественного языка, ориентированных на интересы, используется, чтобы помочь понять области интересов, с которыми социальный профиль описывает себя или о которых говорит в своей ленте. (Опять же, это будет рассмотрено в следующей публикации.)

У нас также есть модель для прогнозирования вероятности того, что отношения между двумя людьми, каждый из которых смоделирован с использованием множества функций из их социальных профилей, будут достаточно прочными, чтобы один связался с другим и попросил об услуге, что помогает персонализировать результаты поиска для данного пользователя. Этот прогноз является скорее субъективным, чем объективным поиском, который предоставляет когорта.

Моделирование данных

Предпочтительны простые модели, так как их легче исследовать и настраивать. На ранних этапах проекта эвристика предпочтительнее сложных моделей. Самые сложные алгоритмы - пустая трата времени без правильных данных, на которых можно было бы учиться для решения задачи. Amazon написала об этом и говорит о концепции готовности данных, идее о том, что данные должны оцениваться в соответствии с проблемой, для решения которой они используются, и полное понимание полезности имеющихся данных позволяет понять природу проблемы. намного легче.

Один из компромиссов, который мы сделали на раннем этапе формирования нашей стратегии обработки данных, заключался в том, чтобы сосредоточиться на одном источнике социальных данных для приема, когда несколько источников могут показаться предпочтительнее. Однако множественные источники несут потенциальный взрыв повторяющихся данных и, возможно, даже моделей (поскольку мы должны попытаться предсказать силу отношений между пользователями разных сетей с очень разными функциями), а также эксплуатационные проблемы. Несопоставимые данные и разрозненное поведение усвоить гораздо сложнее (как при исследовании поведения пользователей, так и при обучении моделей), потому что каждый источник приносит только часть картины. Лучше хорошо работать с одним источником, чем плохо работать с множеством возможных источников.

В конечном итоге когорта становится более мощной, чем больше с ней взаимодействуют, чем чем больше данных из других источников (с другими целями).

При моделировании мы были осторожны, выбирая либо эвристику, которая точно соответствовала тому небольшому количеству данных, которые у нас были, когда мы начали работать, либо моделирование аналогичного прогноза, для которого было проще получить обучающие данные. Мы замкнули цикл, повторно изучив данные, полученные от наших пользователей с момента запуска, и добились хороших результатов.

Пользовательский опыт

Пользователи приложения имеют возможность своими действиями изменять прогнозируемые для них области интересов и отношения. Модель машинного обучения в информационном продукте - это не единственная оценка на тестовом наборе, а живое существо, в котором может потребоваться переобучение моделей или проверка прогнозов.

Во время запроса пользовательский опыт работы с системой должен выглядеть примерно так:

  1. Человек вводит интересующую вас область или произвольный текстовый запрос, для которого он хочет найти людей, подходящих для
  2. Когда пользователь запрашивает систему, автозаполнение отображает интересующие нас области, которые мы наблюдали в проиндексированных нами документах, рассказывая им о понимании системы.
  3. Интеллектуальный запрос с множественным соответствием формируется из вводимых пользователем условий поиска, чтобы выяснить, что хочет пользователь, сопоставив наши компоненты, управляемые машинным обучением, необработанную информацию профиля и другой производный контент.
  4. Функция оценки для этого запроса учитывает искомый текст, будь то предсказанная область или свободный текст, а также социальную принадлежность человека в сети пользователя, возвращая список соответствующих людей.
  5. Мы также помогаем уточнить этот поиск, используя анализ рыночной корзины, чтобы предложить другие известные области интересов, которые можно было бы добавить в их поиск, что позволяет им прозрачно уточнить свой поиск.
  6. Пользователь находит подходящего человека, которого может представить друг, и начинает разговор, чтобы познакомить его.

Инженерия данных и инфраструктура

Огромным фактором успешного развертывания информационного продукта являются инвестиции в инструменты и инфраструктуру для записи данных о вашей производственной системе, чтобы можно было количественно измерить улучшения. Поскольку модели и алгоритмы синтаксического анализа запросов продвигаются в производство, важно как можно точнее измерить их влияние. Производственная среда - это экспериментальная среда, вы получите лучшие данные о том, насколько хорошо там работает какая-либо модель или алгоритм, убедитесь, что вы можете их записать.

Журналы возвращенных элементов и, что более важно, элементов, которые пользователь выбрал для выполнения заданного запроса, называемые журналами кликов, - это данные, которые обычно собираются из поисковой системы, например точность, отзыв, nDCG, оценка f1 и другие общие поисковые метрики. получено из того, что было показано, и оказалось интересным. Это может помочь по-разному: обратная связь с моделями, информирование дизайна, возможность рассчитать ключевые показатели эффективности или сосредоточиться на опыте работы конкретного пользователя с продуктом. Они также привели к новым модификациям нашей функции оценки, чтобы улучшить релевантность, что привело к удалению расширения запроса для получения более кратких результатов.

Заключение

Опыт использования моделей машинного обучения часто недостаточно изучен в информационных продуктах, но отчеты и реакция на прогнозы и рекомендации представляют собой ценную качественную обратную связь. Люди часто будут делать предположения о том, как работают алгоритмы, которые могут повлиять (положительно или отрицательно) на их опыт, и будут готовы об этом говорить.

Рекомендации, созданные с помощью совместной фильтрации, можно почувствовать и объяснить как глубокое понимание интересов пользователя, в то время как другие реакции могут привлечь внимание к отсутствию разнообразия наборов результатов. Эта обратная связь может повлиять на реализацию производственных моделей, чтобы обеспечить лучший опыт.

Большая часть работы по науке о производственных данных заключается в обеспечении того, чтобы у вас были нужные данные в нужном месте в нужное время, собирая и очищая то, что необходимо для прогнозирования / выделения релевантных элементов. Когортный поиск - это информационный продукт, предназначенный для решения сложной реальной проблемы с доступными данными и в результате обеспечивающий удобство для пользователя. Там, где мы сейчас находимся, у нас есть полная система, в которую мы можем добавить сложность и функциональность, например расширение запросов или обучение ранжированию моделей, по мере того, как мы исследуем и действуем в петлях обратной связи, возникающих в результате использования.

Следите за некоторыми последующими публикациями, в которых Эоин рассказывает о разработке конвейера сбора данных Cohort, а также о повторении методов обработки естественного языка в Cohort для улучшения поиска.

Когорта доступна для скачивания для iOS и Android. Если вы хотите использовать Cohort для своей команды, сообщества или компании, дайте нам знать.