Как стать автором
Обновить
21
0
Дмитрий @Dreamastiy

Пользователь

Отправить сообщение

Параллельные алгоритмы для обработки BigData: подводные камни и непростые решения

Время на прочтение9 мин
Количество просмотров21K
Эта публикация написана по материалам выступления AlexSerbul на осенней конференции BigData Conference.

Большие данные — тема модная и востребованная. Но многих по-прежнему отпугивает избыток теоретических рассуждений и некоторый недостаток практических рекомендаций. В этом посте я хочу отчасти заполнить этот пробел и рассказать об использовании параллельных алгоритмов для обработки больших данных на примере кластеризации товарного каталога из 10 млн позиций.
Читать дальше →

Рекомендательная система: введение в проблему холодного старта

Время на прочтение5 мин
Количество просмотров23K
Меня зовут Василий, уже более трех месяцев, как я работаю математиком в компании Surfingbird.

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

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

Заметки о SQL и реляционной алгебре

Время на прочтение12 мин
Количество просмотров99K


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

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

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

Содержание



Читать дальше →

Рекомендательные системы: LDA

Время на прочтение3 мин
Количество просмотров31K
В прошлый раз я рассказывал о теореме Байеса и приводил простой пример – наивный байесовский классификатор. В этот раз мы перейдём к более сложной теме, которая развивает и продолжает дело наивного байеса: мы научимся выделять темы при помощи модели LDA (latent Dirichlet allocation), а также применим это к рекомендательным системам.


Читать дальше →

Школа Данных «Билайн», каникулы закончились

Время на прочтение7 мин
Количество просмотров6.7K


Привет, Хабр!

Надеемся, что в Новогодние праздники многие из Вас отлично отдохнули. Но, каникулы закончились. Пора вернуться к машинному обучению и анализу данных. С 25 января мы запускаем третий набор Школы Данных «Билайн».

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

Кстати, если вы уже активно занимаетесь анализом и обработкой текстов и хотите попробовать себя, рекомендуем поиграться с задачей The Allen AI Science Challenge на Kaggle=) и заодно поучаствовать в DeepHack, хакатоне по анализу текстов и построению ответных систем.

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

Тематическая картография: одномерные карты

Время на прочтение17 мин
Количество просмотров13K


Всем привет!
Это перевод второй части руководства по тематической картографии от ребят из axismaps.
Первая часть: Тематическая картография: общие вопросы.

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

Shazam: алгоритмы распознавания музыки, сигнатуры, обработка данных

Время на прочтение13 мин
Количество просмотров163K
В ресторане заиграла почти забытая песня. Вы слушали её в далёком прошлом. Сколько трогательных воспоминаний способны вызвать аккорды и слова… Вы отчаянно хотите послушать эту песню снова, но вот её название напрочь вылетело из головы! Как быть? К счастью, в нашем фантастическом высокотехнологичном мире есть ответ на этот вопрос.

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


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

Как же всё это работает?
Читать дальше →

Постановка задачи компьютерного зрения

Время на прочтение13 мин
Количество просмотров72K

Последние лет восемь я активно занимаюсь задачами, связанными с распознаванием образов, компьютерным зрением, машинным обучением. Получилось накопить достаточно большой багаж опыта и проектов (что-то своё, что-то в ранге штатного программиста, что-то под заказ). К тому же, с тех пор, как я написал пару статей на Хабре, со мной часто связываются читатели, просят помочь с их задачей, посоветовать что-то. Так что достаточно часто натыкаюсь на совершенно непредсказуемые применения CV алгоритмов.
Но, чёрт подери, в 90% случаев я вижу одну и ту же системную ошибку. Раз за разом. За последние лет 5 я её объяснял уже десяткам людей. Да что там, периодически и сам её совершаю…

В 99% задач компьютерного зрения то представление о задаче, которое вы сформулировали у себя в голове, а тем более тот путь решения, который вы наметили, не имеет с реальностью ничего общего. Всегда будут возникать ситуации, про которые вы даже не могли подумать. Единственный способ сформулировать задачу — набрать базу примеров и работать с ней, учитывая как идеальные, так и самые плохие ситуации. Чем шире база-тем точнее поставлена задача. Без базы говорить о задаче нельзя.

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

Знакомство с Apache Mahout

Время на прочтение5 мин
Количество просмотров26K
Привет.

Моя первая статья на Хабре показала, что не многие знают о библиотеке Mahout. (Может быть, конечно, я в этом ошибаюсь.) Да и ознакомительного материала по этой теме здесь нет. Поэтому я решил написать пост, рассказывающий о возможностях библиотеки. Пара проб пера показали, что лучшим введением в тему будут небольшие выдержки из книги “Mahout in Action” Owen, Anil, Dunning, Friedman. Поэтому я сделал вольный перевод некоторых мест, которые, как мне кажется, хорошо рассказывают об области применения Mahout.



Читать перевод

Apache Mahout. Метрики для определения схожести пользователей

Время на прочтение4 мин
Количество просмотров11K
Привет.
Читаю книгу Mahout in Action. Столкнулся с эффектом “смотрю в книгу – вижу фигу”. Для его устранения решил конспектировать.


Apache Mahout – это библиотека для работы с алгоритмами машинного обучения, которая может быть использована как надстройка к Hadoop или самостоятельно. В библиотеке реализованы методы коллаборативной фильтрации, кластеризации и классификации.

Рассматриваем рекомендательную систему на основе коллаборатвной фильтрации. Она может быть пользователе-ориентированной (user-based) или свойство-ориентированной (item-based).
Коллаборативная фильтрация — это один из методов построения прогнозов, использующий известные предпочтения (оценки) группы пользователей для прогнозирования неизвестных предпочтений другого пользователя. Его основное допущение состоит в следующем: те, кто одинаково оценивали какие-либо предметы в прошлом, склонны давать похожие оценки другим предметам и в будущем. (из википедии)

Одно из основных понятий пользователе-ориентированных рекомендательных систем это метрика для определения схожести пользователей. Предположим что мы имеем данные по просмотрам и оценкам фильмов разными пользователями. Будем сравнивать двух пользователей: X и Y. Они выставили оценки фильмам X(x1, x2, ..., xn) и Y(y1, y2, ..., ym), где n, m – количество оценок поставленных первым и вторым пользователем соответственно. N – количество оценок, которые были поставленны обоими пользователями одним и тем же фильмам (пересечение множеств фильмов посмотренных первым и вторым). Будем считать что (xi, yi) – это пара оценок выставленная пользователями одному фильму.
В Mahout реализованы метрики на основании нескольких алгоритмов. Описываю сами алгоритмы, а не их реализации в Mahout.

Читать дальше →

Рекурентная нейронная сеть в 10 строчек кода оценила отзывы зрителей нового эпизода “Звездных войн”

Время на прочтение11 мин
Количество просмотров160K
Hello, Habr! Недавно мы получили от “Известий” заказ на проведение исследования общественного мнения по поводу фильма «Звёздные войны: Пробуждение Силы», премьера которого состоялась 17 декабря. Для этого мы решили провести анализ тональности российского сегмента Twitter по нескольким релевантным хэштегам. Результата от нас ждали всего через 3 дня (и это в самом конце года!), поэтому нам нужен был очень быстрый способ. В интернете мы нашли несколько подобных онлайн-сервисов (среди которых sentiment140 и tweet_viz), но оказалось, что они не работают с русским языком и по каким-то причинам анализируют только маленький процент твитов. Нам помог бы сервис AlchemyAPI, но ограничение в 1000 запросов в сутки нас также не устраивало. Тогда мы решили сделать свой анализатор тональности с блэк-джеком и всем остальным, создав простенькую рекурентную нейронную сеть с памятью. Результаты нашего исследования были использованы в статье “Известий”, опубликованной 3 января.



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

Обзор примера применения обучения с подкреплением с использованием TensorFlow

Время на прочтение21 мин
Количество просмотров46K
КПДВ. В Karpathy game играет нейронная сеть

Всем привет!
Я думаю, что многие слышали о Google DeepMind. О том как они обучают программы играть в игры Atari лучше человека. Сегодня я хочу представить вам статью о том, как сделать нечто подобное. Данная статья — это обзор идеи и кода примера применения Q-learning, являющегося частным случаем обучения с подкреплением. Пример основан на статье сотрудников Google DeepMind.
За подробностями добро пожаловать под кат

Spark local mode: обработка больших файлов на обычном ноутбуке

Время на прочтение3 мин
Количество просмотров23K
image
Всем привет.
4 января вышла новая версия Apache Spark 1.6 с bug fix новыми возможностями обработки больших данных. На Хабре написано немало статей по использованию этого инструмента от введения до опыта использования в проектах. Spark работает на большинстве операционных систем и его можно запускать в локальном режиме даже на обычном ноутбуке. Используя простоту настройки Spark в этом случае грех не воспользоваться основными функциям. В этой статье мы посмотрим как на ноутбуке быстро настроить обработку большого файла (больше оперативной памяти компьютера) с помощью обычных SQL-запросов. Это позволит делать запросы даже неподготовленному пользователю. Дополнительное подключение iPython (Jupyter) notebook позволит составлять полноценные отчеты. В статье разобран простой пример обработки файла, другие примеры на Python есть тут.
Читать дальше →

Хакатон и зимняя научная школа по глубокому обучению и вопросно-ответным системам

Время на прочтение3 мин
Количество просмотров9.6K
Сегодня машины без труда “связывают два слова” (1, 2), но пока не умеют гарантированно вести диалог на общие темы. Однако, уже завтра вы будете просить их правильно составить резюме и выбрать для ваших детей лучшую секцию по шахматам недалеко от дома. Хотите разобраться подробней, как в этом направлении работают ученые из Facebook, Google и др? Приходите их послушать.

Читать дальше →

Собеседование на UX дизайнера

Время на прочтение3 мин
Количество просмотров19K
Скоро новый год – лучший повод начать новую жизнь. Ну или найти новую работу. Или попробовать себя в новой роли. В этой статье я расскажу про тестовое задание на новую для меня должность UX дизайнера. А также попрошу совета, как улучшить процесс дизайна и вообще комментариев.
Читать дальше →

Отпуск. Где? Когда? R

Время на прочтение4 мин
Количество просмотров13K
imageВ то время как за окном температура на пути к очередным рекордам, интересно посмотреть, а какие вообще бывали температуры в произвольный интервал времени, за любые года за последние несколько десятилетий в 30 000 точках по всему миру. А может не прогадать с днями отпуска, и взять их в те дни, когда есть какое-то «статистическое преимущество» в выбранном местоположении по теплой погоде, а может быть по холодной, оценив его визуально на любой из трех типов диаграмм. Ну или можно просто повращать глобус, визуально оценить разнообразие температур и «как прекрасен этот мир».
Описание далее

Оптимизация гиперпараметров в Vowpal Wabbit с помощью нового модуля vw-hyperopt

Время на прочтение8 мин
Количество просмотров23K
Привет, Хабр! В этой статье речь пойдет о таком не очень приятном аспекте машинного обучения, как оптимизация гиперпараметров. Две недели назад в очень известный и полезный проект Vowpal Wabbit был влит модуль vw-hyperopt.py, умеющий находить хорошие конфигурации гиперпараметров моделей Vowpal Wabbit в пространствах большой размерности. Модуль был разработан внутри DCA (Data-Centric Alliance).


Для поиска хороших конфигураций vw-hyperopt использует алгоритмы из питоновской библиотеки Hyperopt и может оптимизировать гиперпараметры адаптивно с помощью метода Tree-Structured Parzen Estimators (TPE). Это позволяет находить лучшие оптимумы, чем простой grid search, при равном количестве итераций.

Эта статья будет интересна всем, кто имеет дело с Vowpal Wabbit, и особенно тем, кто досадовал на отсутствие в исходном коде способов тюнинга многочисленных ручек моделей, и либо тюнил их вручную, либо кодил оптимизацию самостоятельно.
Читать дальше →

Лекции Технопарка. Мастер-класс «20 ошибок при создании IT-компании»

Время на прочтение11 мин
Количество просмотров35K


При создании любой компании можно наделать немало промахов, которые впоследствии могут похоронить весь бизнес. В каждой сфере есть свои специфические ошибки, в том числе и в IT. На тему того, как не бегать по граблям, в Технопарке рассказал Стас Щукин, обладающий 15-летним опытом работы с IT в таких компаниях, как «Ситроникс», «Связной», Tvigle Media и А1. Кроме того, шесть лет назад Стас основал собственную компанию, разрабатывающую заказные проекты, где периодически выступает в роли подрядчика, консультанта и основного разработчика. Текст выступления читайте под катом.
Читать дальше →

7 ошибок ETL-разработчика

Время на прочтение11 мин
Количество просмотров61K
Проекты хранилищ данных уже давно являются частью IT-инфраструктуры большинства крупных предприятий. Процессы ETL являются частью этих проектов, однако разработчики иногда совершают одни и те же ошибки при проектировании и сопровождении этих процессов. Некоторые из этих ошибок описаны в этом посте.
Читать дальше →

Нужен ли человек для построения самообучающихся моделей?

Время на прочтение3 мин
Количество просмотров6.5K

Ещё один шаг в самообучении машин





Конечно, в Data Science существует множество самообучающихся моделей, но действительно ли они являются таковыми? На самом деле, нет: сейчас в машинном обучении сложилась ситуация, когда человеческий фактор играет решающую роль в построении эффективных моделей.

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

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

Это серьезный недостаток, и поэтому возникла идея: может ли машинное обучение — обучить себя тому же, что делает человек? Такая система была создана, и удивительно, что эта новость еще не добралась до хабрасообщества!

Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность