Рубрика «Блог компании Яндекс» - 59

Несмотря на огромную популярность аппарата графических моделей для решения задачи структурной классификации, задача настройки их параметров по обучающей выборке долгое время оставалась открытой. В своем докладе Дмитрий Ветров, рассказал об обобщении метода опорных векторов и некоторых особенностях его применения для настройки параметров графических моделей. Дмитрий – руководитель группы Байесовских методов, доцент ВМК МГУ и преподаватель в ШАДе.

Видеозапись доклада.

План доклада:

  • Байесовские методы в машинном обучении.
  • Задачи с взаимозависимыми скрытыми переменными.
  • Вероятностные графические модели
  • Метод опорных векторов и его обобщение для настройки параметров графических моделей.

Сама концепция машинного обучения довольно несложная – это, если говорить образно, поиск взаимосвязей в данных. Данные представляются в классической постановке набором объектов, взятых из одной и той же генеральной совокупности, у каждого объекта есть наблюдаемые переменные, есть скрытые переменные. Наблюдаемые переменные (дальше будем их обозначать X) часто называются признаками, соответственно, скрытые переменные (T) — это те, которые подлежат определению. Для того, чтобы эту взаимосвязь между наблюдаемыми и скрытыми переменными установить, предполагается, что у нас есть обучающая выборка, т.е. набор объектов, для которых известны и наблюдаемые и скрытые компоненты. Глядя на нее, мы пытаемся настроить некоторые решающие правила, которые нам позволят в дальнейшем, когда мы видим набор признаков, оценить скрытые компоненты. Процедура обучения приблизительно выглядит следующим образом: фиксируется множество допустимых решающих правил, которые как правило задаются с помощью весов (W), а дальше каким-то образом в ходе обучения эти веса настраиваются. Тут же с неизбежностью возникает проблема переобучения, если у нас слишком богатое семейство допустимых решающих правил, то в процессе обучения мы легко можем выйти на случай, когда для обучающей выборки мы прекрасно прогнозируем ее скрытую компоненту, а вот для новых объектов прогноз оказывается плохой. Исследователями в области машинного обучения было потрачено немало лет и усилий для того, чтобы эту проблему снять с повестки дня. В настоящее время, кажется, что худо-бедно это удалось.
Читать полностью »

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

Как обучить пользователя и не свести его с ума. Опыт Яндекс.Браузера

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

Помимо Справки существует такая вещь, как стартовая страница (мы ее называем «welcome page») с описанием нескольких наиболее ярких возможностей. Но возможностей много, а терпения у пользователя не очень. Поэтому нужно было придумать что-то еще. Не будем вам говорить, что в результате мы изобрели всплывающие подсказки. Их ведь применяют в различных программах уже очень давно. Вспомните хотя бы всемирно известную Скрепку из одного очень популярного офисного пакета, у которой были как сильные стороны, так и некоторые досаждающие моменты. Вот эту идею мы и взяли за основу, чтобы на базе нее построить свою систему умных подсказок. А дальше началось самое веселое.
Читать полностью »

Всем привет!

Я работаю над фронтендом огромного проекта – поисковой выдачи Яндекса. И у нас, как и у любого другого большого веб-проекта, есть огромное количество css-кода и немаленькая команда, которая с ним взаимодействует.

Когда много людей используя разные инструменты, пишет и редактирует css, со временем этот css может получиться очень запутанным, неконсистентым и в целом начинает выглядеть плохо. Например, кому-то удобнее писать вендорные префиксы в одном порядке, кому-то – в другом, кто-то ставит кавычки вокруг url, кто-то – нет, а кто-нибудь фикся срочную багу к релизу мог бы, к примеру, написать position: relative в начале блока свойств, незаметив что где-нибудь внизу между color и box-shadow, уже есть position: absolute, и долго гадать, почему у него ничего не работает.

Приводим в порядок css код. Опыт Яндекса

Но несмотря на то, что все пишут код по-разному, у нас в репозитории идеальный порядок: css-код полностью консистентен, и прекрасно выглядит. Весь.

Как мы этого добились, можно прочитать под катом.
Читать полностью »

Особенности SwiftВ рамках Mobile Camp Яндекса наш коллега Денис Лебедев представил доклад о новом языке программирования Swift. В своем докладе он затронул особенности взаимодействия с Objective-C, рассказал про фичи языка, которые показались ему наиболее интересными. А также про то куда сходить на Github, и какие репозитории посмотреть, чтобы понять, что со Swift можно делать в реальном мире.

Разработка Swift началась в 2010 году. Занимался ей Крис Латтнер. До 2013 процесс шел не очень активно. Постепенно вовлекалось все больше людей. В 2013 году Apple сфокусировалась на разработке этого языка. Перед презентацией на WWDC о Swift знало порядка 200 человек. Информация о нем хранилась в строжайшем секрете.


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

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

Тестирование в Яндексе. Сам себе web service over SSH, или как сделать заглушку для целого сервиса

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

О таких вещах нередко забывается в процессе разработки. Из-за сложности проверки проблем подобного рода, маловероятности таких ситуаций и еще по тысяче других причин. А ведь странная ошибка или падение приложения в ответственный момент могут навсегда отпугнуть пользователя, и он больше не вернётся к вашему продукту. Мы в Яндексе постоянно держим подобные вопросы в голове и стремимся максимально оптимизировать процесс тестирования, используя полезные идеи. О том, как мы сделали такие проверки легкими, наглядными, автоматическими и пойдет речь в этой статье.
Читать полностью »

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

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

Новая Яндекс.Метрика через API: конструктор отчётов и поддержка API других стандартов

Сейчас мы изменили свой подход, и работа Метрики полностью базируется на новом API. То есть он стал основой сервиса, а не каким-то дополнительным инструментом к нему. API работает по другим принципам: в нём доступен набор измерений и метрик, из которых можно построить любой отчёт по сайту, даже если его нет в веб-интерфейсе. Так что вы теперь сможете не просто изучать данные в отчетах, но и создавать свои аналитические решения. Кроме того, мы поддержали совместимость с разными стандартами API, в том числе Google Analytics.

Так как работа сервиса Яндекс.Метрика полностью базируется на новом API, в нём сразу появляются все новые инструменты и функции сервиса. Например, сегментация данных, которая через некоторое время станет доступна пользователям веб-интерфейса с запуском Метрики 2.0.
Читать полностью »

Добрый день, дорогие читатели!

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

Elliptics от Яндекса. Как с его помощью создать своё отказоустойчивое хранилище

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

Под катом — пошаговые подробности.
Читать полностью »

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

Видеозапись доклада

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

MiTCR – платформа для диагностики нового типа. Семинар в Яндексе

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

Мы закрываем наш хостинг блогов — Я.ру. До конца лета все блоги и клубы перестанут быть доступны. Не беспокойтесь, никакие материалы при этом не пропадут. Уже сегодня у пользователей Я.ру появилась возможность перенести все свои записи в Живой Журнал — создать новый аккаунт или добавить к существующему. Все ваши друзья с Я.ру, которые зарегистрированы в ЖЖ, автоматически окажутся у вас в друзьях и там. Переехать можно до 1 ноября. Кроме того, мы сохраним полный архив каждого пользователя — все записи, комментарии и посты в клубы. Архив вы сможете найти на Яндекс.Диске.

Я.ру был открыт в апреле 2007 года. В 2009 году сервис был одним из четырёх крупнейших блогохостингов в рунете — вместе с LiveJournal, Blogs.Mail.ru и LiveInternet. После этого популярность Я.ру стала уменьшаться — собственно, вместе со спадом популярности блогосферы в целом и ростом соцсетей. Разработка была заморожена, и сервис фактически перестал развиваться.

Сейчас хотя бы раз в месяц обновляется около 0,3% из открытых на сервисе дневников. В сутки появляется в среднем всего 1500 новых комментариев. Очевидно, что большинство людей предпочитает писать и общаться в социальных сетях на других площадках. В такой ситуации поддерживать Я.ру становится сложно и нецелесообразно. Поэтому мы и приняли решение о закрытии.
Читать полностью »

В мире тестирования программного обеспечения набирает обороты совсем молодое направление — автоматизация тестирования мобильных приложений. И ожидаемо, что как грибы после дождя стали появляться соответствующие инструменты: Calabash, iOS Driver, Robotium, Selendroid, Appium. И именно про наши эксперименты с последним в мобильном тестировании я и хочу рассказать.

Тестирование в Яндексе. Что мы узнали о фреймворке Appium, и можно ли его применять для серьёзных задач

В последнее время Appium часто упоминают на конференциях и тут, на Хабре, было уже несколько постов о нем. Это фреймворк с открытыми исходным кодом, написанный на JavaScript и предназначенный для автоматизации тестирования мобильных приложений. По сути, это Selenium WebDriver, но для мобильных приложений. Appium позволяет управлять Safari и Chrome на соответствующих устройствах, а значит, и тестировать под ними веб-сайты, но обзор этих возможностей и нюансов, связанных с ними, — отдельная тема.

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


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