Рубрика «Блог компании Surfingbird» - 7

Я обещал одному пользователю написать этот пост ещё 8 февраля, а обещания надо выполнять.

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

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

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

Читать полностью »

Сегодня у меня необычный текст, совершенно не связанный с машинным обучением (для новых читателей: этот текст – часть блога компании Surfingbird, в котором я в течение последнего года рассказывал о разных аппаратах машинного обучения в приложении к рекомендательным системам). В этом посте математической части практически будет, а будет описание очень простой программки, которую я написал для своих студентов. Вряд ли кто-то узнает для себя из этого поста много содержательно нового, но мне кажется, что некоторую ценность представляет сама идея – многие люди просто не задумываются о том, что «и так можно». Итак…

Читать полностью »

В предыдущей статье я уже обозначил основные направления решения задачи холодного старта в рекомендательной системе веб-страниц. Напомню, что проблема холодного старта делится на холодный старт для пользователей (что показывать новым пользователям) и холодный старт для сайтов (кому рекомендовать вновь добавленные сайты). Сегодня я более подробно остановлюсь на методе семантического анализа текстов (text mining) как основном подходе к решению проблемы холодного старта для новых сайтов.
Читать полностью »

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

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

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

Многорукие бандиты: модель dynamic Gamma Poisson
Читать полностью »

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

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

image

Постановка задачи рекомендательной системы уже описана Сергеем Николенко в статье Рекомендательные системы: постановка задачи.
В основе большинства рекомендательных систем лежат так называемые методы коллаборативной фильтрации. Наша рекомендательная система не исключение. Все алгоритмы коллаборативной фильтрации опираются только на информацию о рейтингах, проставляемых пользователями, и не анализируют контент ресурсов (в нашем случае веб-страниц). Поэтому, эти алгоритмы работают при достаточно большом количестве рейтингов, как правило это 10-20 рейтингов. Задача выдачи релевантных рекомендаций для новых пользователей и для новых сайтов называется проблемой холодного старта.
Читать полностью »

Это первый пост из блога Surfingbird, который я выношу в общие хабы алгоритмов и искусственного интеллекта; честно говоря, раньше просто не догадался. Если интересно, заходите к нам, чтобы прочесть предыдущие тексты, – я не знаю, что произойдёт, если просто добавить новые хабы к постам несколькомесячной давности.

Краткое содержание предыдущих серий о рекомендательных системах:

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

Многорукие бандиты: введение и алгоритм UCB1
Читать полностью »

Недавно мы наконец зарелизили приложение под Android, а ещё раньше приложение для iPad-а (а ещё раньше для iPhone, но мы про него не будем, оно страшное).
И вот, в принципе, просто хочется немного похвастаться.

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

Навигация получается удобная, нам нравится. Выглядит примерно так (примерно 500КБ трафика):
Читать полностью »

Недавно мы наконец зарелизили приложение под Android, а ещё раньше приложение для iPad-а (а ещё раньше для iPhone, но мы про него не будем, оно страшное).
И вот, в принципе, просто хочется немного похвастаться.

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

Навигация получается удобная, нам нравится. Выглядит примерно так (примерно 500КБ трафика):
Читать полностью »

Я удивлен, что эта техника упоминалась на Хабре только один раз и вскользь — если верить поиску, конечно.
Меня не покидает ощущение, что на самом деле все про это знают, но я всё же расскажу.

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

Делается это несложно — нужно всего-то добавить пару мета-тегов в head:

<link rel="prefetch" href="NEXT PAGE URI" />
<link rel="prerender" href="NEXT PAGE URI" />

Теперь подробнее про ограничения и нюансы.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js