Социальная сеть для инвесторов тинькофф что это
Перейти к содержимому

Социальная сеть для инвесторов тинькофф что это

  • автор:

Зачем заводить аккаунт в Пульсе? Обзор социальной сети для инвесторов внутри Тинькофф

Соцсеть «Пульс» пережила свой первый год. И, кажется, это хороший повод сделать подробный обзор. Я, как и многие, являюсь ее активным пользователем, подписан на топовых инвесторов и сам по мере возможности стараюсь писать полезные посты и обзоры на компании.

Попробую рассказать вам о плюсах и недостатках Пульса, которые вижу я. Делитесь также своими мнениями и впечатлениями о Пульсе в комментариях.

Как все начиналось

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

На Западе платформы социального трейдинга были распространены уже давно. И вот наконец в сентябре 2019 года проект social trading под названием «Пульс» запустила команда Тинькофф Инвестиций.

Создать свой профиль в новой соцсети могли (и могут) все клиенты Тинькофф Инвестиций, у которых есть брокерский счет.

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

Что изменилось за год

Команда Тинькофф продолжает собирать отзывы пользователей Пульса, расширять и дорабатывать функционал. Какие-то пожелания пользователей удалось реализовать, а какие-то пока, к сожалению, — нет.

Какие изменения в Пульсе заметил лично я?

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

Увеличили объем постов до 4 000 символов
Ранее максимальная длина постов составляла, кажется, порядка 2 500 символов. Все, кто делает публикации в Пульсе, со мной согласятся: 2 500 — это была боль.

Добавили жалобы в Пульсе
Можно отправить жалобу на пост или комментарий модераторам Тинькофф. Ни разу не пользовался, но уверен, что многие оценили это нововведение.

Добавили ветки обсуждений в валюту и в облигации
Всем привет, кто в жарких «валютных обсуждениях». Ведь всегда есть кому и что сказать не только об акциях, я ведь прав?

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

Возможность редактировать и удалять свои комментарии
«Очепятки» случаются у каждого — наконец-то их можно поправить.

Дебаты в Пульсе
Этот виджет появился не в самом Пульсе, а во вкладке «Что купить». Если на него нажать, можно увидеть самые популярные обсуждения. Довольно интересная деталь, хотя я ей воспользовался только раз.

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

Черный список
Из названия все понятно: теперь можно блокировать других пользователей Пульса. Честно говоря, никогда не пользовался этим.

Что мне нравится в Пульсе

Рай для новичков
Пульс — это хорошая стартовая площадка для сбора мнений. Особенно для тех, кто буквально вчера завел счет и об инвестициях не знает ровным счетом ничего. Можно просто прийти в комментарии к понравившемуся блогеру и задать вопрос: пользователи довольно отзывчиво на это реагируют.
Чужие идеи
Поскольку я инвестирую уже не первый год, для меня Пульс — это возможность изучить идеи по фондовому рынку других пользователей, а также делиться своими мыслями. В Пульсе можно «подсматривать идеи» не только в постах, но и в сделках конкретных блогеров (инвесторам, которые торгуют меньше года, я все же не рекомендую так делать).

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

Конкурсы
В Пульсе на регулярной основе проводятся различные конкурсы, в том числе с призами. Их устраивает не только официальный канал @Pulse_official, но и сами блогеры среди своих подписчиков. Мне кажется, что это интересно и стимулирует людей покорять новые вершины на финансовых рынках. Один из последних — «Лучший частный инвестор», который организовывает Мосбиржа, в рамках этого конкурса Тинькофф решил отдельно наградить своих клиентов-трейдеров.

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

Постоянное развитие
За год существования Пульса много чего добавилось, дорабатывалось. Команда разработчиков учитывает мнения пользователей (конечно, не все учесть успевают, но все же). Темпы развития социальной сети мне очень нравятся. Продолжайте в том же духе.

Что мне не нравится или чего не хватает в Пульсе

Не может быть все хорошо, я для себя выделяю следующие недостатки Пульса.

Нельзя сохранять в избранное
Отсутствует возможность сохранять понравившиеся посты и обзоры в избранном. Есть вечные темы: теория, основы или некоторые разъяснения нюансов фундаментального и технического анализа. Хотелось бы их сохранять в избранном. Также нередко натыкаешься на интересный пост, но сейчас нет возможности его прочесть, а потом он теряется в общей ленте…

Некорректная доходность
Очень часто и очень у многих (судя по комментариям пользователей) отображается неверная доходность результатов их инвестиционной деятельности. Мелочь, но неприятно.

Нельзя репостить
Иногда хочется рассказать о постах других пользователей своим подписчикам, но, пока нет репостов, сделать это очень сложно.

Блокнот с заметками к ценным бумагам
Было бы здорово иметь некий черновик для заметок, чтобы не терять свои мысли и идеи, иметь возможность потом к ним вернуться.

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

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

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

Автор: Николай Коротков, частный инвестор, трейдер на валютном рынке, профиль в Пульсе — Vizo

Мы решили разнообразить блог Тинькофф Инвестиций и дать слово инвесторам, которые являются нашими клиентами. Теперь мы регулярно будем публиковать тексты внешних авторов. Если у вас есть текст, вы хотите им поделиться и получить вознаграждение, пишите на [email protected].

Мнение автора может не совпадать с мнением редакции Тинькофф Инвестиций. Ценные бумаги и другие финансовые инструменты, упомянутые в данном обзоре, приведены исключительно в информационных целях; обзор не является инвестиционной идеей, советом, рекомендацией, предложением купить или продать ценные бумаги и другие финансовые инструменты.

Что такое Пульс

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

Чтобы начать пользоваться соцсетью, просто нажмите на кнопку «Пульс» в нижней части экрана.

Как зарегистрироваться в Пульсе?

Чтобы получить полный доступ ко всему функционалу Пульса, нужно открыть брокерский счет или ИИС в Тинькофф Инвестициях.

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

Создать аккаунт можно в приложении Тинькофф Инвестиций в разделе «Пульс». Для этого достаточно придумать никнейм. При желании можно загрузить свое фото и заполнить поле «Расскажите о себе».

Как связаться с командой?

Для оперативной связи с модераторами Пульса упомяните наш профиль в посте или комментарии — @Pulse_Official. Мы поможем, если есть вопрос о функционале Пульса, жалоба на пост или комментарий.

Тинькофф: Пульс Социальная сеть

2022: Доступность сервиса поиска друзей из телефонной книги и стриминговой платформы

5 декабря 2022 года компания «Тинькофф Банк» сообщила о том, что в социальной сети «Пульс» появился сервис поиска друзей из телефонной книги и стриминговая платформа для проведения аудиоэфиров. Данные сервисы доступны в обновленной версии приложения Тинькофф Инвестиций.

Аудиостримы

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

Помимо списка зарегистрированных в социальной сети контактов пользователю доступен перечень тех, у кого пока нет профиля в Пульсе. Друга можно пригласить в Пульс через интерфейс приложения — ему придет сообщение с приглашением присоединиться к соцсети. TAdviser и Softline провели исследование «Российские СУБД 2023»

Активировать «Поиск друзей» пользователи могут в разделе «Друзья в Пульсе». Он доступен в разделе «Мой профиль». Сервисом можно воспользоваться в обновленной версии приложения Тинькофф Инвестиций на iOS и Android.

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


рассказал Александр Кралькин, руководитель социальных и образовательных сервисов Тинькофф Инвестиций

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

На этапе запуска к беседам смогут подключаться до 5000 слушателей, далее количество участников будет увеличиваться. Рекомендуемая продолжительность аудиострима в Пульсе — 60 минут, максимальная — 24 часа.

Чтобы иметь возможность подключиться к аудиостриму, необходимо зарегистрировать профиль в соцсети «Пульс». В мобильном приложении Тинькофф Инвестиций аудиостримы доступны в Пульсе — «Эфиры». В списке эфиров отображаются запланированные и активные трансляции.

Как мы сделали ленту соцсети для инвесторов умной

Привет! Меня зовут Илья Шамов, я работаю в AI-центре Тинькофф и занимаюсь рекомендательными системами. Сегодня я расскажу, зачем делать умную ленту в социальной сети для инвесторов, как работают рекомендательные системы и как выбор целевой переменной влияет на ранжирование. Разберемся в устройстве рекомендательных систем, посмотрим, как таргет влияет на вид умной ленты, и узнаем, как дойти от MVP до промышленного решения.

Что такое Тинькофф Пульс и зачем там умная лента

Есть приложение «Тинькофф Инвестиции», в котором можно торговать акциями, облигациями и другими активами. Нажимая на любую ценную бумагу, мы видим несколько страниц:

  • обзор деталей бумаги;
  • биржевой стакан;
  • и главное для нашего рассказа — Пульс.

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

Так выглядит Пульс

Сейчас у Тинькофф Инвестиций несколько миллионов пользователей. В Пульсе сотни тысяч активных читателей и писателей, и ежедневно там появляются десятки тысяч постов. Наши пользователи читают примерно 20 километров текста в час.

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

Потребности у всех разные. Кто-то хочет узнать аналитику рынка от компетентных инвесторов. Кто-то — посмотреть мемы на инвестиционную тематику. А кому-то хочется погрустить или порадоваться вместе с другими. Мы захотели сделать ленту интересной и полезной для каждого.

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

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

Ликбез по рекомендательным системам

Сперва освежим знания о принципах работы рекомендательных систем на простом примере. Отсортируем объекты по релевантности. Для этого нужно обучить модель предсказывать релевантность объектов для каждого пользователя и отсортировать список объектов в порядке ее убывания. Наверху сортированного списка окажутся самые подходящие объекты.

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

Рисунок 1

  • Колонки слева — предсказания модели, насколько каждый объект будет релевантным для пользователя. Оценки можно считать вероятностями того, что пользователь отреагирует на тему.
  • Колонки справа — история просмотров пользователя. Обозначим единицей темы, на которые он реагировал (например, поставил лайк), а нулем — темы, которые он проигнорировал.

Простые методы решения задачи

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

Классификация

Обучаем модель предсказывать, поставит пользователь лайк на такой объект или нет. Модель будет рассчитывать вероятность обоих вариантов, и для принятия бинарного решения выберет наиболее вероятный. Тогда у каждого поста будет «вероятность» быть лайкнутым. По ней мы бы и отсортировали список объектов.

Вероятность стоит в кавычках, поскольку предсказанные моделью значения от 0 до 1 — не вероятности. Однако можно провести калибровку модели: тогда скор будет соответствовать вероятности.

Возвращаясь к задаче с постами Пульса, мы могли бы предсказывать, что пользователь повзаимодействует с постом — лайкнет или прокомментирует его.

Ранжирование

При такой постановке задачи модели нужно принимать решение о том, какой объект предпочтительнее другого. Функции ранжирования могут быть разными:

  • Pointwise. Модель оценивает релевантность объекта самого по себе. Классификация — частный случай этого типа.
  • Pairwise. Модель попарно рассматривает объекты на каждом шаге оптимизации алгоритма, чтобы у менее релевантного объекта скор был ниже, чем у более релевантного.
  • Listwise. Модель на каждом шаге оптимизации рассматривает весь список объектов, чтобы напрямую оптимизировать выбранную метрику качества ранжирования. Это позволяет не только оценивать релевантность объектов, но и оптимизировать порядок просмотра: какой пост выгоднее показать раньше, а какой — позже.
Коллаборативная фильтрация

Простой и эффективный метод решения задачи рекомендаций. Суть подхода в предположении, что похожим людям нравятся похожие объекты. Для измерения схожести составляют матрицу размера количество пользователей × количество объектов . Тогда значение на пересечении строки i и столбца j будет реакцией одного на другое.

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

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

Так как обзор рекомендательных моделей — не цель этой статьи, рассматривать будем простое решение через классификацию.

Виды реакции пользователя

Отклик пользователя на рекомендации может быть разным. Проще всего попросить оценить предложенный контент — поставить лайк. Это называется явным откликом.

Плюсы и минусы явного отклика:

+ Ясна реакция пользователя.

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

Есть противоположный вид отклика — неявный. Он косвенно подтверждает, что пользователю нравится объект.

Такой отклик сильно зависит от контекста. Для видео это может быть процент просмотра, для аудио — то, насколько часто прослушивается определенная песня.

Плюсы и минусы неявного отклика:

+ Легко собрать со всех пользователей, потому что они оставляют фидбэк неосознанно.

− Неоднозначность. Например, пользователь мог посмотреть десятичасовое видео до конца, потому что оно было скучным и он уснул.

пример неявного отклика - процент просмотра видео

Оценка качества рекомендаций

Обучив рекомендательную модель предсказывать выбранный отклик, нужно оценить ее качество. Предположим, что модель оценила объекты, как показано на рисунке 1.

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

Поэтому нужно решить, сколько объектов рекомендовать. В случае задачи с постами в Пульсе — сколько постов мы выведем в топ, чтобы пользователь увидел их на одном экране, как только зайдет в ленту. Проблема выбора количества объектов важная — с ней сталкиваются все, кто занимается ранжированием. Чтобы решить ее, можно измерять метрики только по топу K рекомендаций.

Метрики Precision и Recall вам, скорее всего, знакомы из классического машинного обучения: это точность и полнота того, что мы предсказали.

расчёт метрик precision и recall

Для оценки ранжирования можно модифицировать эти метрики. Считать, какая часть рекомендованного списка попала в интересы пользователя (Precision@k) и насколько полно интересы охвачены списком (Recall@k). В нашем игрушечном примере Precision@1 = 1, Precision@3 = 1/3, Precision@4 = 1/2. Recall@1= 1/2, Recall@3 = 1/2, Recall@4 = 1.

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

Самая простая метрика ранжирования — Mean Average Precision. Разберем это название по словам. Мы уже знаем, что Precision — это точность. Average Precision мы посчитаем по формуле ниже.

— precision — показывает, взаимодействовал ли в онлайне пользователь с объектом, который мы порекомендовали. — relevance — это то, на сколько модель оценила важность i-ого объекта для пользователя. Average Precision — это кумулятивная (то есть суммирование идет именно по всем возможным длинам списка рекомендаций от 1 до топа k) сумма вероятности всех объектов, которые пользователь на самом деле лайкнет.

А Mean Average Precision — это усредненный по всем m-пользователям Average Precision. Таким образом, в отличие от precision@k и recall@k, метрика отображает не только релевантность, но и учет порядка каждого объекта в топе списка, и считается не по одному юзеру, а усредняется по всем.

Как мы искали умную ленту в Пульсе

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

Первые наши предположения были довольно наивными. Предскажем простое взаимодействие — лайк.

Представим пользователя как набор признаков:

  • доходность;
  • размер портфеля;
  • частота лайков.

Пост представим так:

  • длина поста;
  • количество упомянутых тикеров;
  • количество эмодзи;
  • количество абзацев;
  • количество реакций.

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

Чтобы персонализировать выдачу, мы добавили контентные признаки постов:

  • тип текста (новостной, аналитический, эмоциональный и так далее);
  • тип картинки (скриншот, мем и так далее).

Для создания признаков мы отдали на ручную разметку часть постов. Для каждого нужно было выбрать тип контента в посте. Далее обучили алгоритм классификации. Используем его скоры по каждой категории.

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

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

Пример ранжирования ленты с таргетом реакций

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

Пример рекомендации из Яндекс ДзенаПример поста с привлекательным лидом

Мы попробовали обучать модель на том, что пользователь залип на посте. Для этого нужно было придумать метрику залипания, которая определяла бы, что человек действительно надолго задержался, читая пост. Это неявный таргет.

Легко узнать, сколько секунд каждый пользователь потратил на чтение. Тогда легко посмотреть распределение времени прочитки поста. Оно будет нормальным или стремиться к нормальному. В таком случае это распределение можно охарактеризовать средним и среднеквадратичным отклонением.

Мы выбрали мерой залипания то, что пользователь читал пост на одно среднеквадратическое отклонение дольше, чем в среднем читали остальные пользователи. Таким образом, брали около 16% наиболее заинтересованных просмотров поста. Большее отсечение оставит недостаточно положительных примеров для обучения модели. Меньшее сотрет границу между долгим и средним просмотром поста. Для решения задачи методом классификации такой таргет нужно бинаризовать.

Когда мы обучили залипательную модель, ситуация изменилась в противоположную сторону. В топ начали выходить короткие и зачастую провокационные посты. Часто это были простые вопросы к аудитории, например «Стоит ли покупать $TSLA сейчас?» Или посты с мемами. Такие посты часто вызывают холивар в комментариях.

Пример ранжирования ленты с залипательным таргетом

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

Пример популярного поста во ВКонтакте

Мы решили попробовать взвешенный таргет. Он позволит учитывать и лайки, и залипание на постах, и другие метрики вовлеченности. Также можно влиять на выраженность каждой метрики в итоговом ранжировании. Сейчас мы тестируем такой подход.

На внутреннем тесте мы собрали в основном теплые отзывы коллег

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

Как эволюционировал сервис

В рассказах о продуктах часто показана история успеха. Здесь же хочется показать историю развития от MVP «на коленке» до текущего решения.

Шаг первый

Изначально нужно было сравнить простую модель с существующей эвристикой. На этом этапе нерационально вкладывать силы в реализацию микросервисов, спецификацию контрактов запросов и прочие радости качественной разработки.

Многие модели машинного обучения легко сериализовать. Например, решающие деревья могут быть переведены в набор if’ов на любом языке. Для встраивания в существующий Java-бэкенд приложения модель сконвертирована в исполняемый файл. Это очень негибкое решение, потому что при изменении списка признаков или обновлении модели придется менять файл и выкатывать новый релиз приложения.

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

Шаг второй

На следующей стадии эволюции мы выделили отдельный сервис ранжирования на стороне команды рекомендаций.

Также мы начали применять ML-модели для извлечения признаков из публикуемых постов. Например, для извлечения типов текста и картинки. Для этого завели отдельный сервис, отмеченный на диаграмме как Feature Extractor. Он получает из Kafka новые посты, извлекает признаки и складывает их в хранилище.

Теперь при запросе ленты сервер Пульса собирал последние посты и их признаки из хранилища, а затем отправлял их в сервис ранжирования. Это дало возможность обновлять ML-модель в любой момент и проводить A/B-тесты между моделями.

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

Шаг третий

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

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

Заключение

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

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

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

  • рекомендательные системы
  • умная лента
  • тинькофф инвестиции
  • машинное обучение
  • тинькофф пульс
  • machine learning
  • personal feed
  • Блог компании TINKOFF
  • Машинное обучение
  • Социальные сети и сообщества

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *