Чем удивит голосовой бот тинькофф

Что умеет Олег?

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

То есть Олег — это такая приколюха, которая в теории поможет облегчить жизнь пользователю. Лично я давно знал о технологии и хотел перейти на «Тинькофф Мобайл» — оператора одноименного банка — только ради возможности получать расшифровки пропущенных звонков. Хорошо, что в 2021 году аналог автоответчика от известного банка стал доступен всем пользователям вне зависимости от выбранного оператора.

Имиджевый пилот

Обучать Олега помимо пользователей будет суперкомпьютер «Колмогоров» — с его помощью команда разработчиков обучает нейросетевые модели для распознавания речи, синтеза речи, обработки естественного языка, общения на свободные темы. Разработка собственной технологии синтеза речи от банка стартовала в 2018 году на основе таких нейросетевых моделей, как WaveNet, Tacotron, Deep Voice, разработкой распознавания речи в банке занимаются с 2016 года. В настоящее время им удалось добиться корректного распознавания до 95% произнесенных слов, заверили в банке. Голос для Олега записывал актер Никита Прозоровский (он, в частности, озвучивал Фрэнка Андервуда из «Карточного домика» и комиссара Гордона в трилогии Кристофера Нолана о Бэтмене). Прозоровский записал около 30 часов реплик, на основе которых синтезируется голос.

Затраты на разработку, рекламную кампанию и поддержку продукта в банке не раскрывают. Там отмечают, что вся разработка Олега «отбивается меньше чем за месяц текущей экономией, которую дают текстовые чат-боты». «Мы запустили чат-ботов для клиентов около года назад, сегодня в клиентских чатах «Тинькофф» более 35% входящих обращений клиентов уже полностью обслуживаются и решаются роботами, диалог происходит вообще без участия человека со стороны «Тинькофф». Сегодня только в текстовом канале клиентской поддержки роботы позволяют сэкономить нам около 50 млн рублей в месяц», — сообщили в пресс-службе банка.

Олег позиционируется банком как первый голосовой финтех-ассистент в России и в этой нише пока остается единственным. Ближайшим конкурентом может стать Сбербанк и даже без помощи голосового помощника Алисы от «Яндекса». В ноябре 2019 года подразделение «Сбербанк Технологии» планировало запустить собственного голосового помощника для клиентов. Им может стать Варвара — сервис от Центра речевых технологий, долю в котором банк купил в апреле.

Самым популярным и активно продвигаемым продуктом на этом рынке остается Алиса. Примечательно, что на ПМЭФ Олег Тиньков предлагал основателю «Яндекса»Аркадию Воложу объединить бизнес, а помощник Олег пытался флиртовать с Алисой. Отказ получили оба Олега. Своих ассистентов обещали запустить Mail.Ru Group (17-18 июня, как ожидается, будет представлена Маруся), Wildberries (Ева Вайлет), у «МегаФона» уже работает Елена.

Пока этот продукт в большей степени пилотный, нужно время для того, чтобы оценить степень его проникновения, удобство и востребованность, но как идея — это интересно, прогрессивно и ярко, считает Анна Бодрова, старший аналитик информационно-аналитического центра «Альпари».

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

Тинькову запуск Олега поможет сохранить имидж высокотехнологичного банка, привлекательного для самой активной аудитории, позволит и дальше позиционировать себя как «новый банк» или «другой банк», выделиться среди конкурентов, не имея клиентской базы Сбербанка, это вопрос позиционирования, очень важный для компании, говорит ведущий аналитик «Финам»Леонид Делицын. По его словам, в целом появление таких помощников — закономерный тренд.

«Человек, если ему дать возможность, с удовольствием разучился бы читать и писать. Это прекрасно понимали еще 20 лет назад, когда IBM начала разработку голосовых команд. Сегодня своих помощников выпустили крупнейшие it-гиганты, дело закономерно дошло и до банков, которые обслуживают миллионы своих клиентов. Могу предположить, что такие помощники в ближайшее время появятся у сотовых операторов и продуктовых сетей», — прогнозирует Делицын.

Обсуждаем новости здесь.
Присоединяйтесь!

Олег

Голосовой ассистент Олег работает в мобильном приложении от «Тинькофф». С его помощью осуществляется управление личными финансами и некоторыми элементами экосистемы.

Олег доступен всем клиентам «Тинькофф банка» на устройствах с iOS или Android. Общение с помощником осуществляется как с любым другим виртуальным ассистентом через вопросы или команды.

Навыки Олега:

  • перевод денег в «Сбербанк», «Тинькофф банк» по номеру телефона;
  • бронирование столика в ресторане;
  • запись на сеанс в салон красоты;
  • заказ и покупка билетов в кино;
  • поиск актуальных скидок;
  • управление кредитной и дебетовой картами;
  • заказ и отправка на почту электронных документов;
  • консультации по банковским вопросам и акциям;
  • общение на отвлеченные темы;
  • игра в викторину.

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

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

Сколько стоит услуга секретаря Олега от «Тинькофф банка»?

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

Интересно, что для абонентов «Тинькофф Мобайл» услуга ассистента платная и стоит 99 рублей в месяц — по крайне мере, так указано в описании виртуального помощника на сайте компании. Впрочем, абоненты оператора «Тинькофф» могут более тонко настроить Олега: например, дать ему другое имя и выбрать голос ассистента.

Методы работы

Доступный через мобильное приложение Tinkoff, голосовой помощник Олег

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

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

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

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

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

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

Как подключить секретаря Олега?

Чтобы подключить секретаря Олега на свой телефонный номер, нужно воспользоваться фирменным приложением «Тинькофф», либо — например, если вы не являетесь клиентом банка — настроить ассистента через Telegram или «ВКонтакте».

Например, сперва я настроил ассистента через фирменное приложение «Тинькофф», а затем понял, что мне удобнее, чтобы оповещения приходили через Telegram. Я отключил Олега и заново настроил его через мессенджер Павла Дурова.

Первый шаг — открываем раздел «Чаты» в приложении «Тинькофф», заходим в сообщество «Олег — телефонный секретарь» «ВКонтакте» или находим через поиск телеграма бота @OlegOtvetBot.

  • Второй шаг — вводим свой номер телефона, на которой хотим оформить услугу, принимаем SMS от банка и вводим его в диалоге с ботом.
  • Третий шаг — бот пришлет вам USSD-команду, которую нужно скопировать, вставить в поле для набора номера вашего телефона и нажать на кнопку вызова.
  • Четвертый шаг — бот попросит написать имя (которое он будет называть во время звонка абонента).
  • Пятый шаг — нужно выбрать, в каких случаях бот будет принимать вызовы и отвечать за вас.

Есть три случая — если занят или сбрасываю, если не отвечаю и если нет сети. Нажимаем на соответствующие кнопки, которые предложит бот, и следуем инструкциям — копируем USSD-команды, которые пришлет вам Олег, вставляем в поле для набора номера вашего телефона и нажимаем на кнопку вызова.

Все, Олег настроен!

Утечки памяти

Олежка работал на самом простом инстансе DigitalOcean с 1ГБ ОЗУ, но так было лишь до тех пор, пока я не получил первую сотню юзеров. Он начал жрать память, пришлось разбираться. Сначала я конечно тупо увеличил ОЗУ дроплета, но оказалось, что это помогает лишь на время 🙂

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

Память все еще течет, но гораздо медленнее. На докер-контейнере стоит , и когда контейнер вылетает по out-of-memory, он рестартит, происходит это раз в несколько суток.

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

Теперь Олежке достаточно 4 ГБ и Shared CPU. Если кто вам скажет, что для ML нужна стойка с 8 dedicated GPU’s — плюньте ему в лицо. Об этом, кстати, часто говорит Jeremy Howard, создатель курса fast.ai.

Маруся

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

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

В скором времени Марусю интегрируют в продукты Mail.ru и сторонние сервисы. Это позволит:

  • слушать новости;
  • заказывать еду;
  • вызывать такси.

Голосовой ассистент доступен на площадках AppStore и Google Play. Маруся находится на стадии развития, но уже умеет:

  • включать музыку или радио;
  • подсказывать стоимость билетов на поезда и самолеты;
  • рассказывать прогноз погоды;
  • играть и рассказывать сказки;
  • отвечать на различные вопросы.

Как «включить» голосовой ответ для Олега

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

Голос у Олега, кстати, необычный – не похож на распространённые ассистенты спокойным тембром и уверенностью в тоне. Даже общаться хочется, лишь бы отвечал голосом.

Единственное, надо голосовому движку получше работать с озвучиванием пауз перед знаками препинания. А то иногда ка-ак зажует их – и резко из убедительного «мужика» превращается в робота.

Лично меня как редактора отдельно радует, что любые голосовые запросы, заданные Олегу, автоматически распознаются уже со знаками препинания, включая запятые. До сих пор так не делает ни та же Siri, ни Google Ассистент, ни Алиса от Яндекса.

Пообщался с тремя ребятами из команды ассистента Олега

Слева направо: Константин, Серафима и Мария

Для сноски отмечу конкретные должности, а ниже лидеры представят себя сами:

Константин, руководитель продукта голосового помощника ОлегаСерафима, менеджер продуктаМария, главред ассистента Олега

Константин:

– Я руководитель продукта, который называется Финансовый Ассистент Олег в Тинькофф.

Серафима:

– Я менеджер продукта и моя основная специализация – навыки Олега, я отвечаю за них.

Мария:

– Я главред ассистента Олега и других банковских роботов.

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

Я отвечаю за то, чтобы все ответы роботов были без ошибок, понятными и забавными, если это нужно.

Основные функции

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

  • Перевод денег по номеру телефона на счета внутри банка и на счета в Сбербанк;
  • Бронь столика в ресторане;
  • Запись на прием в салон красоты;
  • Покупка билетов в кинотеатр;
  • Поиск выгодных предложений и скидок;
  • Подсказка полезных советов;
  • Управление кредитной и дебетовой картой;
  • Смена личных данных пользователя;
  • Заказ и отправка электронных документов на почту;
  • Консультация по банковским продуктам;
  • Общение на отвлеченные темы;
  • Интересная игра в викторину.

Голосовой ассистент Олег Тинькофф может открыть полный список навыков в чате – для этого задайте вопрос «Что ты умеешь?».

Смотрите видео, как Олег общается с Алисой

С функционалом определились – пока набор возможностей несколько ограничен. Каковы планы на будущее, что нам обещают разработчики?

Персонализация

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

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

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

Актер кино и дубляжа Никита Прозоровский

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

Что умеет Олег

Для начала общения с помощником в мобильном приложении «Тинькофф» можно сказать «Привет, Олег!» или «Слушай, Олег!». Найти его можно также в разделе «Чат» или нажав на кнопку «Микрофон» рядом со строкой поиска на любом экране.

Голосовой помощник «Тинькофф» может распознавать и интерпретировать запросы пользователей, задавать уточняющие вопросы, беседовать на разные темы и консультировать в решении различных задач. Помощнику можно задать вопрос, например – «Что делать вечером?», или обратиться с просьбой сделать перевод другу и пр. Чтобы узнать о текущих возможностях Олега, нужно спросить его «Что ты умеешь?».

Навыки голосового ассистента Олега

Самая первая версия Олега уже способна совершать денежные переводы на счета в «Тинькофф» и Сбербанке, бронировать столики в ресторанах, записывать пользователей в салоны красоты, покупать билеты в кино с кэшбэком 15%, а также искать скидки на товары и услуги. Например, можно сказать «Покажи скидки на кроссовки», на что Олег покажет подходящие спецпредложения от «Тинькофф».

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

Голосовой ассистент поможет скрасить время общением на свободные темы, полезными советами и «лайфхаками» из «Тинькофф Журнала». Олег ответит на вопросы «Как тебя зовут?», «Как дела?», «Что ты делаешь в свободное время?», «Какую музыку ты слушаешь?», «Что нового в банке?», «Олег — красавчик?», «Какой курс доллара?» и т.д.

Результаты запросов к ассистенту «Тинькофф»

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

Подсказки голосового ассистента Олега

С помощью голосового ассистента также можно изменить личные данные в экосистеме «Тинькофф», заказать и отправить на почту электронные документы – например, справку для посольства.

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

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

Финансовые консультации ассистента «Тинькофф»

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

Где найти бота

В мобильном приложении банка. По официальной информации, бот доступен пользователям устройств на основе iOs и Android, но пока не всем, а выборочно. Разработчики обещали, что всем клиентам бот покажется до конца июня. На деле же бот появился только у некоторых владельцев устройств на iOs. Так нам ответили в банке. Когда Олег появится в гаджетах на Android, пока неясно.

Чтобы вызвать помощника, зайдите в мобильный интернет-банк и воспользуйтесь одним из трёх способов: командой «Привет, Олег» или «Слушай, Олег» на главном экране, нажатием на иконку микрофона в строке поиска или в разделе чата.

Если у вас уже появился Олег, а у друга ещё нет, ботом можно поделиться.

Для этого попросите помощника перевести другу деньги, после чего Олег автоматически поселится и в его мобильном приложении.

У Олега есть минус

Как масштабно бы ни развивался Олег и его возможности, я вижу у него один недостаток.

Запросы к Олегу обрабатываются в чате. Да, теперь сам чат стал отдельным разделом от общения с поддержкой – но по факту ассистент остаётся только внутри него. Уже даже в iOS Siri перестала отбирать весь экран, Олегу тут тоже стоит поучиться.

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

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

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

Что умеет бот

Чтобы Олег рассказал, что умеет, достаточно спросить его: «Что ты умеешь?». В ранней версии, которая доступна сейчас, бот может:

  • переводить деньги на Тинькофф и Сбербанк;
  • бронировать места в кафе и ресторанах;
  • записывать пользователей в салоны красоты;
  • покупать билеты в кино с кэшбэком 15%;
  • искать необходимые клиенту товары и услуги;
  • общаться на отвлечённые темы;
  • давать полезные советы;
  • консультировать по тарифам и акциям;
  • управлять финансовыми продуктами;
  • изменять личные данные в экосистеме Тинькофф;
  • предоставлять электронные справки, выписки и т.д.

В будущем бот сможет заказывать такси, авиа- и ж/д билеты, покупать билеты в театр и на концерты, организовывать путешествия, записывать на приём к врачу. Также Олег возьмёт на себя оплату счетов, досуг (предложит варианты), инвестиции и другое.

Бот Олег стал логичным продолжением развития технологий в Тинькофф. На момент его запуска 35% обращений пользователей уже решались в автоматическом режиме. Это экономит банку десятки миллионов рублей в месяц.

Модель рекомендаций

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

Поисследовав немного, я пришел к тому, что нужно поработать над следующими вещами:

Научить модель отличать каналы

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

Как быть? Количество каналов гораздо меньше количества постов и меньше количества юзеров. В канале все посты имеют примерно одинаковый flavour (извините), поэтому есть смысл ввести в модель эмбеддинги каналов и сделать их основным источником предсказательности. Посты тоже имеют свои эмбеддинги, но теперь 80% эмбеддингов несет канал и 20% — пост.

Окей, если мы вводим эмбеддинги каналов, простая модель DotProduct перестает работать, потому что перемножить три вектора для получения скаляра мы уже не можем. На помощь приходит нейросеть!

Нейросеть с одним скрытым слоем

Берем эмбеддинги юзера, канала и поста, конкатенируем их в один длинный тензор, и подаем этот тензор на входы нейросети. В моем случае эмбеддинг юзера имеет размерность 100, канала — 80, юзера — 20. Соответственно, у нейросети должно быть столько входов, сколько элементов у конкатенированного тензора. На иллюстрации я изобразил в 10 раз меньше нейронов (10-8-2) просто для удобства иллюстрации. Почему я выбрал такие размерности (100-80-20) — см. ниже.

Нейросеть имеет один скрытый слой из 70 нейронов и 1 нейрон на выходном слое, степень активации которого означает предсказанную оценку.

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

Подобрать размерности эмбеддингов

В прошлой статье я писал, что не нашел какого-то четкого правила выбора размерностей эмбеддингов, и выбрал размерность 13 для юзера и для поста.

На этой итерации я поисследовал этот момент самостоятельно и провел пару дней в экспериментах.

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

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

Попробовав различные комбинации размерностей, я подобрал такие значения:

  • Эмбеддинг юзера — 100,

  • Канала — 80,

  • Поста — 20

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