Сегодня один из компонентов uKit AI, интеллектуальной системы редизайна веб-сайтов, становится публичным. Это прототип модуля для оценки красоты веб-страниц. Он сочетает в себе нейронную сеть и деревья решений, чтобы имитировать реакцию обычного посетителя на дизайн веб-сайта.

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

Текущая версия WebScore AI отражает мнение среднестатистического интернет-пользователя о внешнем виде веб-сайта. Хотя мы можем создать и другие варианты, например, можно оценить удобство использования веб-сайта.

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

Каждая градация измеряется шкалой, и предполагается, что эта шкала понятна обычному человеку, мнение которого мы пытаемся моделировать. Итак, нам пришла в голову идея шкалы «от 1 до 10», которая используется в нашем сервисе.

Люди, которых подражает WebScore AI. Чтобы сформировать набор данных (набор данных для модели обучения) с различных веб-сайтов, нам потребовались две вещи:

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

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

Чтобы собрать фокус-группу, мы провели предварительный отбор кандидатов на 1500 примерах сайтов. Рутинная работа, но ответственная и требующая большого внимания. Предварительный отбор помог нам отсеять неподходящих кандидатов, а также исключить из выборки «спорные» (когда кто-то оценивает их как 1, а другой - как 10).

Сначала мы экспериментировали с методами оценки.

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

Человек оценивал, красив сайт или нет. Как машина это сделает? Нам с вами достаточно одного взгляда, чтобы составить мнение об общей красоте чего-либо. Но мы знаем, что дьявол кроется в деталях.

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

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

Создайте алгоритм. Что такое «обучающая модель»? Это построение алгоритма, основанного на заданном наборе характеристик и позволяющего оценить выбранный веб-сайт. Желательно, чтобы оценка системы и оценка среднего учителя разделяли минимальный разрыв в их окончательных оценках.

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

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

Чтобы ускорить и упростить процесс, мы использовали библиотеку CatBoost от Яндекса, которая позволяет строить бустер на основе градиента в так называемых «деревьях неявных решений», обеспечивая хорошие возможности обучения модели с самого начала и быстрый переход к предоставлению прогнозов (оценки ) для новых объектов.

Добавление нейронной сети. Когда базовый алгоритм был готов, мы решили провести эксперимент: улучшатся ли результаты, если мы добавим нейронную сеть? Фактически, мы уже знали, как «смотреть» на веб-сайт и его дизайн, и теперь мы решили сделать систему своего рода «увеличительным стеклом», с помощью которого она сможет раскрыть еще больше деталей.

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

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

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