SlideShare a Scribd company logo
1 of 39
Download to read offline
Поиск: что там
внутри?
Федор Романенко
Качество поиска Яндекса,
ведущий менеджер-эксперт
Поиск
Как он ищет?
Робот
Вы ищете во всем интернете? Так быстро?
• нет, мы скачиваем странички, обрабатываем и
кладем в индекс
• по индексу ищем быстро: 100мс, 200 млн. / день
• неизбежна задержка: скачивание, обработка,
выкладывание на поиск
• основная проблема задержек: нужна переагрегация
данных

4
Структура инвертированного индекса
Было: сортировка по документам и позициям
(word, d, s, w, f)+
Стало: по словам, потом - документам и позициям
(word, (d, s, w, f)+ )+

Классическая структура инвертированного индекса
Ключи:
prefix-compression( (key, offset)+ )
Скип-лист:
(d, offset)+
Инвертированный индекс:
( differential-compression( posting lists ) )+
5
Поиск – дерево запроса
(студент && ( мгу || (московский && государственный &&
университет) ) )

6
Поиск – ленивые итераторы
Дерево ленивых итераторов - идем по номерам документов по
возрастанию:
• узел - curDoc :="мин. номер документа >= curDoc"
• И - curDoc:=Max(curDoc(i))
• ИЛИ - curDoc:=Min(сurDoc(i))

(
[2, 3, 5,
13
[2,
6,
21
) и
[
3,
7,
14, 21
=>
[
3,
21

] или
]

]
]

Результат: документ + набор “хитов”
7
Фильтрация
Документ нашелся = допущен в ранжирование
• есть нужные слова запроса в тексте или
ссылках
• стоят на нужном расстоянии / подряд
• кворум для длинных запросов
sum(idf(hits)) >= Q(sum(idf(query words)), query)

8
Оптимизации
Для одной машины (индекс 3M документов)
Прюнинг (для широких запросов)
• документы отсортированы по убыванию статранка
• рассматриваем не более 50K отфильтрованных
• ограничиваем время выполнения

ФастРанк (легкая формула)
• считаем легкую формулу на легких факторах
• отправляем в ранжирование Top 1000 лучших
9
Ранжирование

•
•
•
•

10

считаем все тяжелые факторы, всего 800
10K бинарных деревьев глубины 6
получаем ранг документа
выбираем Top10 по рангу
Метапоиск: слияние, кеширование и
сниппеты
•
•
•
•
•

11

управляем нагрузкой и репликами
собираем Top10 с каждой машины
считаем Top10(Top10(i))
кешируем
запрашиваем сниппеты для Top10
Построение выдачи
• собираем TopN от вертикалей
• считаем классификаторы по
– оффлайн данным
– запросу
– ответам
– статистике ответа

• строим выдачу из вертикалей и
колдунщиков
12
Надежность и производительность
• достигается распределением нагрузки и репликацией

• сетевые балансеры направляют запросы в 7 ДЦ (по IP)
• в ДЦ запрос попадает на 1 из 200 метапоисков (по IP)
• метапоиск отправляет на 1 из 100 кеширующих
метапоисков (по запросу)
• метапоиски мониторят загрузку и производительность
базовых поисков

• выбирают 2000 базовых из 10 реплик
• перезадают запрос, принимают решение о выдаче
частичного результата
13
Качество поиска
Разве еще не всё написали?
История

• Яндекс-поиск в интернете - 1997
• рост отдела качества поиска - 2006
• MatrixNet – 2009
• 1000 инженеров - 2013

15
Алгоритм поиска?
Нет одного алгоритма, их десять тысяч
•
•
•
•
•
•
•
•
16

обход и индексация интернета
производительность
лингвистика
разработка факторов и анализ данных
очистка данных и антиспам
определение целевой метрики
алгоритмы машинного обучения
смешивание выдачи
Качество
• у почти всех алгоритмов есть "качество", т.е.
выбор из нескольких вариантов – плохих и
получше
• мы непрерывно занимаемся улучшением
качества
• будем им заниматься всегда
• качество измеряется числовыми метриками
• метрика хороша, если показывает наше
плохое качество
17
Базовая метрика качества поиска
Для ответа:
• оценки: IR (0%), R- (7%), R+ (14%), U (40%), V (61%)
Для десятки:
• Gain: rel(i) - релевантность одного документа [0..1]
• Cumulative G: sum(1..10, rel(i)) - сложим для десятки
• Discounted CG: rel(1) + sum(2..10, rel(i) / log2(i)) - с
дискаунтом за позицию
• Normalized DCG - DCG / IDCG - нормализуем на
максимум
Для поиска:
• среднее по репрезентативной корзине запросов

18
Метрика pFound
Каскадная модель удовлетворенности
пользователя
• с вероятностью R удовлетворяется ответом
• с вероятностью (1-R)*0.15 устает
• с вероятностью (1-R)*0.85 читает дальше

19
Обучение с учителем
• асессоры оценивают ответы по инструкции
• инструкция (150 страниц) описывает наше
продуктовое видение
• 1000 асессоров
• 10 млн. ручных оценок за 2 года
• настоящих запросов все равно больше (200 млн/д)
• учим машину на примерах

20
Модель ранжирования

• факторы ранжирования (числа), считаются для пары
(запрос, документ)
• на них считаем формулу релевантности, берем top10
• модель: (f1(q, d), f2(q, d), ... , fn(q, d)) -> rank(q, d)
• Специфическая модель: не призвана отражать реальный
мир, просто сложная штука с кучей параметров

21
MatrixNet
• MatrixNet: 10K бинарных деревьев глубины 6
• количество параметров огромно: 10K * (64*3) ~ 2 млн.
• сложная и гибкая, но не переобучается
...

-4025627,483990,-36437960,39979596,
-92842056,-50086892,-100233272,243162224,
-22282850,57163664,-24991620,-9889194,
...
vars[5699]
vars[5700]
vars[5701]
vars[5702]

=
=
=
=

fFactorInt[376]
fFactorInt[376]
fFactorInt[376]
fFactorInt[376]

...
,{376, .0f}
,{376, 0.6251018047f}
,{-1, .0}
,{376, 0.05682743713f}
,{376, 0.4546194971f}
22

...

>
>
>
>

1060970280 ? 1 : 0; // 0.738757
1061923687 ? 1 : 0; // 0.795584
1049721454 ? 1 : 0; // 0.284137
948291011 ? 1 : 0; // 6.37877e-05
Машинное обучение ранжирования
• сталкиваем Модель Пользователя и Модель
Ранжирования
• подбираем параметры модели ранжирования
• максимизируем метрику жадной оптимизацией
• MLR находит скрытые закономерности в данных и
ожидания пользователей
• метрика = удовлетворение модельного юзера,
работающего с моделью ранжирования
• использует возможность посчитать счастье на огромном
кол-ве отличающихся поисков без экспериментов
23
Много данных
Никак не влезет на одну машину
Откуда данные?
•
•
•
•
•

каждый ответ поиска (200 млн/день) и клики записываются
логи всех сервисов
данные от браузера и счетчиков Метрики
от партнеров
любые данные могут быть полезны в качестве

Огромная коллекция – 20 петабайт, нужно уметь с ней
работать!

25
Распределенные вычисления
•
•
•
•
•
•

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

500 задач одновременно на 2000 серверах!

26
Парадигма MapReduce
•
•
•
•

входная таблица с независимыми записями
Map(record) -> (key, value)+
сортировка по key
Reduce(key, (value)+) -> result(key)

• Map - выборка нужных данных, определение ключей
• Reduce - агрегация по ключу

27
MapReduce

28
Пример WordCount
Найти 100 самых частотных слов в коллекции документов
• На входе: таблица с документами Docs
• Map: считаем слова в документе, =>
(word, tf)
• Reduce1: для word суммируем частоты tf =>
(hash(word) % 1000, (word, count))
• Reduce2: для 0..999 вычисляем Top100 самых частотных =>
("result", (word, count)+)
• Reduce3: сливаем 1000 Top100 пар (word, count) =>
("output", (word, count)+)
Простая реализация (не тестировалась ;)
mapreduce -map "tr -cs '[:alnum:]' 'n'" -reduce "uniq -c“
–src Docs –dst Stat
mapreduce –read Stat | sort +0nr | head -n 100
29
Реализация MapReduce
Yandex MapReduce:
• тройная репликация или Reed Solomon Code
• сжатие чанков ZIP (сжатие 4.31)
• последовательная почанковая обработка
• умный шедулер
Real-Time MapReduce:
• нужен для свежести и RT-персонализации
• инкрементальное обновление результата при изменении
входных данных
• мгновенная инвалидация и пересчет по цепочке
• RT база данных в основе
30
Свежесть и разнообразие
Что вы имели в виду?
Свежесть
Страница в интернете, почему же она не находится?
Поиск страницы по узкому запросу:
• найти и проиндексировать
Поиск новостей на свежую тему:
• не так просто, само не найдется!
• свежее составляет 0.1% от базы, но нужно в 20% случаев
• не накопились факторы: ссылки и пользовательское
поведение

32
Real-Time робот
•
•
•
•
•
•

распределенная RT-архитектура
непрерывное обновление веб-графа
CrawlRank (aka OPIC) алгоритм - RT PageRank
адаптивный переобход хабов для поиска нового
десятки фидов об обновлениях
RT-индексация и поиск

Выкладываем лучшие документы с задержкой в
секунды

33
Новости по широкому запросу
• найти новости по [навальный] ранжированием не
получится
• вероятность << 0.1%
• если были новости, то нужно много свежего
• если нет, то свежее - вряд ли хорошее
• нужен "семантический" триггер
• величина "свежего интента“ - вероятность, что
пользователь с таким запросом хочет свежее
– [захват автобуса норвегия] = 90%
– [цискаридзе] = 40%
– [задорнов] = 10%

34
Детектор свежести
• классификатор наличия потребности в свежем
• самый большой в поиске, на 150 факторах:
– изменение частоты запросов
– появление новостных сюжетов
– увеличение кол-ва релевантных свежих
– клики на свежее
– всплеск слова в Твиттере
– новостные слова (взрыв, заявил, путин)

• 10% - немного свежего (0.2)
• 6% - много свежего (0.4)
• 2% - только свежее (0.9)
35
Разнообразие при неоднозначности
• один запрос - одна выдача - много интентов
• удовлетворить разных пользователей одной
страницей => разнообразие
• смешиваем вертикали: веб-поиск, свежесть, видео,
региональная ...
• метрика WidepFound (расширение pFound):
– вероятности интентов
– релевантности документов для интентов

36
Спектр - универсальное разнообразие
• учимся понимать запросы [объект потребность]:
[битлз mp3 скачать]
• считаем вероятности потребностей по логам
запросов
• смешиваем по запросу [битлз] выдачи для
–
–
–
–

37

[битлз слушать онлайн]
[битлз видео]
[битлз фото]
[битлз википедия]
Это для начала!
Федор Романенко
Ведущий менеджер-эксперт
качества поиска
+7-903-6841530
fedor57@yandex.ru

Спасибо!

More Related Content

What's hot

Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...Ontico
 
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с ElasticsearchОмские ИТ-субботники
 
Поиск наизнанку
Поиск наизнанкуПоиск наизнанку
Поиск наизнанкуNikolay Sivko
 
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)Ontico
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновOntico
 
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Ontico
 
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...Ontico
 
Pulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядовPulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядовMax Lapshin
 
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...Ontico
 
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)Ontico
 
Cоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetCоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetOleg Tsarev
 
Социальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.RuСоциальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.RuCodeFest
 
Про качественный поиск (Андрей Аксенов)
Про качественный поиск (Андрей Аксенов)Про качественный поиск (Андрей Аксенов)
Про качественный поиск (Андрей Аксенов)Ontico
 
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)Ontico
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchИлья Середа
 
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)Ontico
 
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...Ontico
 
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)Ontico
 
Russir 2010 final
Russir 2010 finalRussir 2010 final
Russir 2010 finalyaevents
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитикиИлья Середа
 

What's hot (20)

Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
Linux API с точки зрения разработчика веб-сервера / Валентин Бартенев (NGINX,...
 
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
2013-02-02 03 Голушко. Полнотекстовый поиск с Elasticsearch
 
Поиск наизнанку
Поиск наизнанкуПоиск наизнанку
Поиск наизнанку
 
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
 
Обзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий НасретдиновОбзор перспективных баз данных для highload / Юрий Насретдинов
Обзор перспективных баз данных для highload / Юрий Насретдинов
 
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
Оптимизация работы с данными в мобильных приложениях / Святослав Иванов, Артё...
 
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...
 
Pulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядовPulsedb — система хранения временных рядов
Pulsedb — система хранения временных рядов
 
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
Адаптивная оптимизация запросов в реляционных СУБД / Олег Иванов (Postgres Pr...
 
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
Gobblin как ETL-фреймворк / Иван Ахлестин (Rambler&Co)
 
Cоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTargetCоциальный граф "Одноклассников" в myTarget
Cоциальный граф "Одноклассников" в myTarget
 
Социальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.RuСоциальный граф Одноклассников в Target Mail.Ru
Социальный граф Одноклассников в Target Mail.Ru
 
Про качественный поиск (Андрей Аксенов)
Про качественный поиск (Андрей Аксенов)Про качественный поиск (Андрей Аксенов)
Про качественный поиск (Андрей Аксенов)
 
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
Переезжаем на Yandex ClickHouse / Александр Зайцев (LifeStreet)
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
 
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
NewSQL: SQL никуда не уходит / Константин Осипов (tarantool.org)
 
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
 
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
 
Russir 2010 final
Russir 2010 finalRussir 2010 final
Russir 2010 final
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 

Viewers also liked

Артём Ворожцов "Специализированный поиск по сайту"
Артём Ворожцов "Специализированный поиск по сайту"Артём Ворожцов "Специализированный поиск по сайту"
Артём Ворожцов "Специализированный поиск по сайту"Yandex
 
Илья Богданович "Мобильные карты"
Илья Богданович "Мобильные карты"Илья Богданович "Мобильные карты"
Илья Богданович "Мобильные карты"Yandex
 
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"Yandex
 
Е.В. Бурнаев "Сегментация сигнала на основе скрытой марковской модели"
Е.В. Бурнаев "Сегментация сигнала на основе скрытой марковской модели"Е.В. Бурнаев "Сегментация сигнала на основе скрытой марковской модели"
Е.В. Бурнаев "Сегментация сигнала на основе скрытой марковской модели"Yandex
 
Илья Шаров "Земля в коробочке: хранят и показывают Яндекс.Карты"
Илья Шаров "Земля в коробочке: хранят и показывают Яндекс.Карты"Илья Шаров "Земля в коробочке: хранят и показывают Яндекс.Карты"
Илья Шаров "Земля в коробочке: хранят и показывают Яндекс.Карты"Yandex
 
Александр Крайнов "Кластеризация дубликатов в Яндекс.Картинках"
Александр Крайнов "Кластеризация дубликатов в Яндекс.Картинках"Александр Крайнов "Кластеризация дубликатов в Яндекс.Картинках"
Александр Крайнов "Кластеризация дубликатов в Яндекс.Картинках"Yandex
 
Илья Кацев "Автоматизация тестирования веб-форм"
Илья Кацев "Автоматизация тестирования веб-форм"Илья Кацев "Автоматизация тестирования веб-форм"
Илья Кацев "Автоматизация тестирования веб-форм"Yandex
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex
 
Леонид Шныр "О роли карт в прогрессивном сайтостроении"
Леонид Шныр "О роли карт в прогрессивном сайтостроении"Леонид Шныр "О роли карт в прогрессивном сайтостроении"
Леонид Шныр "О роли карт в прогрессивном сайтостроении"Yandex
 
Илья Наринский "Интегральный подход в дизайне"
Илья Наринский "Интегральный подход в дизайне"Илья Наринский "Интегральный подход в дизайне"
Илья Наринский "Интегральный подход в дизайне"Yandex
 
О.В. Сухорослов "Разбор ДЗ №3,4"
О.В. Сухорослов "Разбор ДЗ №3,4"О.В. Сухорослов "Разбор ДЗ №3,4"
О.В. Сухорослов "Разбор ДЗ №3,4"Yandex
 
Евгений Волков "Платформа LBS"
Евгений Волков "Платформа LBS"Евгений Волков "Платформа LBS"
Евгений Волков "Платформа LBS"Yandex
 
PortfolioRenderIdeaUKlight
PortfolioRenderIdeaUKlightPortfolioRenderIdeaUKlight
PortfolioRenderIdeaUKlightEnrico Calzavara
 
Algumas implicações do desrespeito docente pelo saber matemático discente
Algumas implicações do desrespeito docente pelo saber matemático discenteAlgumas implicações do desrespeito docente pelo saber matemático discente
Algumas implicações do desrespeito docente pelo saber matemático discenteAndréa Thees
 
Ua 07.09 EdubitsUA 09
Ua 07.09 EdubitsUA 09Ua 07.09 EdubitsUA 09
Ua 07.09 EdubitsUA 09João Lima
 
Estudo de Caso RVCC CML
Estudo de Caso RVCC CMLEstudo de Caso RVCC CML
Estudo de Caso RVCC CMLJoão Lima
 

Viewers also liked (20)

Артём Ворожцов "Специализированный поиск по сайту"
Артём Ворожцов "Специализированный поиск по сайту"Артём Ворожцов "Специализированный поиск по сайту"
Артём Ворожцов "Специализированный поиск по сайту"
 
Илья Богданович "Мобильные карты"
Илья Богданович "Мобильные карты"Илья Богданович "Мобильные карты"
Илья Богданович "Мобильные карты"
 
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
Денис Бугарчев "Внедрение идей БЭМ на не-Яндекс проект"
 
Е.В. Бурнаев "Сегментация сигнала на основе скрытой марковской модели"
Е.В. Бурнаев "Сегментация сигнала на основе скрытой марковской модели"Е.В. Бурнаев "Сегментация сигнала на основе скрытой марковской модели"
Е.В. Бурнаев "Сегментация сигнала на основе скрытой марковской модели"
 
Илья Шаров "Земля в коробочке: хранят и показывают Яндекс.Карты"
Илья Шаров "Земля в коробочке: хранят и показывают Яндекс.Карты"Илья Шаров "Земля в коробочке: хранят и показывают Яндекс.Карты"
Илья Шаров "Земля в коробочке: хранят и показывают Яндекс.Карты"
 
Александр Крайнов "Кластеризация дубликатов в Яндекс.Картинках"
Александр Крайнов "Кластеризация дубликатов в Яндекс.Картинках"Александр Крайнов "Кластеризация дубликатов в Яндекс.Картинках"
Александр Крайнов "Кластеризация дубликатов в Яндекс.Картинках"
 
Илья Кацев "Автоматизация тестирования веб-форм"
Илья Кацев "Автоматизация тестирования веб-форм"Илья Кацев "Автоматизация тестирования веб-форм"
Илья Кацев "Автоматизация тестирования веб-форм"
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"
 
Леонид Шныр "О роли карт в прогрессивном сайтостроении"
Леонид Шныр "О роли карт в прогрессивном сайтостроении"Леонид Шныр "О роли карт в прогрессивном сайтостроении"
Леонид Шныр "О роли карт в прогрессивном сайтостроении"
 
Илья Наринский "Интегральный подход в дизайне"
Илья Наринский "Интегральный подход в дизайне"Илья Наринский "Интегральный подход в дизайне"
Илья Наринский "Интегральный подход в дизайне"
 
О.В. Сухорослов "Разбор ДЗ №3,4"
О.В. Сухорослов "Разбор ДЗ №3,4"О.В. Сухорослов "Разбор ДЗ №3,4"
О.В. Сухорослов "Разбор ДЗ №3,4"
 
Евгений Волков "Платформа LBS"
Евгений Волков "Платформа LBS"Евгений Волков "Платформа LBS"
Евгений Волков "Платформа LBS"
 
PortfolioRenderIdeaUKlight
PortfolioRenderIdeaUKlightPortfolioRenderIdeaUKlight
PortfolioRenderIdeaUKlight
 
recurso mnaa
recurso mnaarecurso mnaa
recurso mnaa
 
Evolution nonlocal
Evolution nonlocalEvolution nonlocal
Evolution nonlocal
 
chemweekcover
chemweekcoverchemweekcover
chemweekcover
 
Algumas implicações do desrespeito docente pelo saber matemático discente
Algumas implicações do desrespeito docente pelo saber matemático discenteAlgumas implicações do desrespeito docente pelo saber matemático discente
Algumas implicações do desrespeito docente pelo saber matemático discente
 
Ua 07.09 EdubitsUA 09
Ua 07.09 EdubitsUA 09Ua 07.09 EdubitsUA 09
Ua 07.09 EdubitsUA 09
 
pankaj bisht
pankaj bishtpankaj bisht
pankaj bisht
 
Estudo de Caso RVCC CML
Estudo de Caso RVCC CMLEstudo de Caso RVCC CML
Estudo de Caso RVCC CML
 

Similar to 20131105 романенко

Владимир Лучанинов. Сделай сам анализатор SERP
Владимир Лучанинов. Сделай сам анализатор SERPВладимир Лучанинов. Сделай сам анализатор SERP
Владимир Лучанинов. Сделай сам анализатор SERPOctopus Events
 
Ранжирование: от строчки кода до Матрикснета
Ранжирование:  от строчки кода до МатрикснетаРанжирование:  от строчки кода до Матрикснета
Ранжирование: от строчки кода до Матрикснетаyaevents
 
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Ontico
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance managementSQALab
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationAnton Gorokhov
 
Про качественный поиск
Про качественный поискПро качественный поиск
Про качественный поискAndrew Aksyonoff
 
High Load 2009 Dimaa Rus Ready
High Load 2009 Dimaa Rus ReadyHigh Load 2009 Dimaa Rus Ready
High Load 2009 Dimaa Rus ReadyHighLoad2009
 
Rubt on Rails: 1000 запросов в секунду
Rubt on Rails: 1000 запросов в секундуRubt on Rails: 1000 запросов в секунду
Rubt on Rails: 1000 запросов в секундуАлександр Ежов
 
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...it-people
 
Cистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ruCистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ruodnoklassniki.ru
 
Software Analytics in frontend
Software Analytics in frontendSoftware Analytics in frontend
Software Analytics in frontendDenis Kolesnikov
 
DUMP-2012 - Только хардкор! - "Аннотировать за 40 мс" Александр Лившиц (Яндекс)
DUMP-2012 - Только хардкор! - "Аннотировать за 40 мс" Александр Лившиц (Яндекс)DUMP-2012 - Только хардкор! - "Аннотировать за 40 мс" Александр Лившиц (Яндекс)
DUMP-2012 - Только хардкор! - "Аннотировать за 40 мс" Александр Лившиц (Яндекс)it-people
 
Есть ли жизнь с ORM или типовая архитектура CRUD приложения
Есть ли жизнь с ORM или типовая архитектура CRUD приложенияЕсть ли жизнь с ORM или типовая архитектура CRUD приложения
Есть ли жизнь с ORM или типовая архитектура CRUD приложенияNicolay Velizhanin
 
20120226 information retrieval raskovalov_lecture03-04
20120226 information retrieval raskovalov_lecture03-0420120226 information retrieval raskovalov_lecture03-04
20120226 information retrieval raskovalov_lecture03-04Computer Science Club
 
Всеволод Поляков "История одного мониторинга"
Всеволод Поляков "История одного мониторинга"Всеволод Поляков "История одного мониторинга"
Всеволод Поляков "История одного мониторинга"Fwdays
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance managementCEE-SEC(R)
 
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...Ontico
 
Andrew Aksyonoff "Архитектура вокруг поиска"
Andrew Aksyonoff "Архитектура вокруг поиска"Andrew Aksyonoff "Архитектура вокруг поиска"
Andrew Aksyonoff "Архитектура вокруг поиска"Fwdays
 
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
PostgreSQL performance recipes
PostgreSQL performance recipesPostgreSQL performance recipes
PostgreSQL performance recipesAlexey Ermakov
 

Similar to 20131105 романенко (20)

Владимир Лучанинов. Сделай сам анализатор SERP
Владимир Лучанинов. Сделай сам анализатор SERPВладимир Лучанинов. Сделай сам анализатор SERP
Владимир Лучанинов. Сделай сам анализатор SERP
 
Ранжирование: от строчки кода до Матрикснета
Ранжирование:  от строчки кода до МатрикснетаРанжирование:  от строчки кода до Матрикснета
Ранжирование: от строчки кода до Матрикснета
 
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
Миф об очень сложном Highload / Александр Горный (Mail.Ru Group)
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance management
 
BigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: PersonalizationBigData Week Moscow 2013 - Case: Personalization
BigData Week Moscow 2013 - Case: Personalization
 
Про качественный поиск
Про качественный поискПро качественный поиск
Про качественный поиск
 
High Load 2009 Dimaa Rus Ready
High Load 2009 Dimaa Rus ReadyHigh Load 2009 Dimaa Rus Ready
High Load 2009 Dimaa Rus Ready
 
Rubt on Rails: 1000 запросов в секунду
Rubt on Rails: 1000 запросов в секундуRubt on Rails: 1000 запросов в секунду
Rubt on Rails: 1000 запросов в секунду
 
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
 
Cистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ruCистема внутренней статистики Odnoklassniki.ru
Cистема внутренней статистики Odnoklassniki.ru
 
Software Analytics in frontend
Software Analytics in frontendSoftware Analytics in frontend
Software Analytics in frontend
 
DUMP-2012 - Только хардкор! - "Аннотировать за 40 мс" Александр Лившиц (Яндекс)
DUMP-2012 - Только хардкор! - "Аннотировать за 40 мс" Александр Лившиц (Яндекс)DUMP-2012 - Только хардкор! - "Аннотировать за 40 мс" Александр Лившиц (Яндекс)
DUMP-2012 - Только хардкор! - "Аннотировать за 40 мс" Александр Лившиц (Яндекс)
 
Есть ли жизнь с ORM или типовая архитектура CRUD приложения
Есть ли жизнь с ORM или типовая архитектура CRUD приложенияЕсть ли жизнь с ORM или типовая архитектура CRUD приложения
Есть ли жизнь с ORM или типовая архитектура CRUD приложения
 
20120226 information retrieval raskovalov_lecture03-04
20120226 information retrieval raskovalov_lecture03-0420120226 information retrieval raskovalov_lecture03-04
20120226 information retrieval raskovalov_lecture03-04
 
Всеволод Поляков "История одного мониторинга"
Всеволод Поляков "История одного мониторинга"Всеволод Поляков "История одного мониторинга"
Всеволод Поляков "История одного мониторинга"
 
Введение в performance management
Введение в performance managementВведение в performance management
Введение в performance management
 
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
 
Andrew Aksyonoff "Архитектура вокруг поиска"
Andrew Aksyonoff "Архитектура вокруг поиска"Andrew Aksyonoff "Архитектура вокруг поиска"
Andrew Aksyonoff "Архитектура вокруг поиска"
 
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
PostgreSQL performance recipes
PostgreSQL performance recipesPostgreSQL performance recipes
PostgreSQL performance recipes
 

More from Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

More from Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

20131105 романенко

  • 1.
  • 2. Поиск: что там внутри? Федор Романенко Качество поиска Яндекса, ведущий менеджер-эксперт
  • 4. Робот Вы ищете во всем интернете? Так быстро? • нет, мы скачиваем странички, обрабатываем и кладем в индекс • по индексу ищем быстро: 100мс, 200 млн. / день • неизбежна задержка: скачивание, обработка, выкладывание на поиск • основная проблема задержек: нужна переагрегация данных 4
  • 5. Структура инвертированного индекса Было: сортировка по документам и позициям (word, d, s, w, f)+ Стало: по словам, потом - документам и позициям (word, (d, s, w, f)+ )+ Классическая структура инвертированного индекса Ключи: prefix-compression( (key, offset)+ ) Скип-лист: (d, offset)+ Инвертированный индекс: ( differential-compression( posting lists ) )+ 5
  • 6. Поиск – дерево запроса (студент && ( мгу || (московский && государственный && университет) ) ) 6
  • 7. Поиск – ленивые итераторы Дерево ленивых итераторов - идем по номерам документов по возрастанию: • узел - curDoc :="мин. номер документа >= curDoc" • И - curDoc:=Max(curDoc(i)) • ИЛИ - curDoc:=Min(сurDoc(i)) ( [2, 3, 5, 13 [2, 6, 21 ) и [ 3, 7, 14, 21 => [ 3, 21 ] или ] ] ] Результат: документ + набор “хитов” 7
  • 8. Фильтрация Документ нашелся = допущен в ранжирование • есть нужные слова запроса в тексте или ссылках • стоят на нужном расстоянии / подряд • кворум для длинных запросов sum(idf(hits)) >= Q(sum(idf(query words)), query) 8
  • 9. Оптимизации Для одной машины (индекс 3M документов) Прюнинг (для широких запросов) • документы отсортированы по убыванию статранка • рассматриваем не более 50K отфильтрованных • ограничиваем время выполнения ФастРанк (легкая формула) • считаем легкую формулу на легких факторах • отправляем в ранжирование Top 1000 лучших 9
  • 10. Ранжирование • • • • 10 считаем все тяжелые факторы, всего 800 10K бинарных деревьев глубины 6 получаем ранг документа выбираем Top10 по рангу
  • 11. Метапоиск: слияние, кеширование и сниппеты • • • • • 11 управляем нагрузкой и репликами собираем Top10 с каждой машины считаем Top10(Top10(i)) кешируем запрашиваем сниппеты для Top10
  • 12. Построение выдачи • собираем TopN от вертикалей • считаем классификаторы по – оффлайн данным – запросу – ответам – статистике ответа • строим выдачу из вертикалей и колдунщиков 12
  • 13. Надежность и производительность • достигается распределением нагрузки и репликацией • сетевые балансеры направляют запросы в 7 ДЦ (по IP) • в ДЦ запрос попадает на 1 из 200 метапоисков (по IP) • метапоиск отправляет на 1 из 100 кеширующих метапоисков (по запросу) • метапоиски мониторят загрузку и производительность базовых поисков • выбирают 2000 базовых из 10 реплик • перезадают запрос, принимают решение о выдаче частичного результата 13
  • 14. Качество поиска Разве еще не всё написали?
  • 15. История • Яндекс-поиск в интернете - 1997 • рост отдела качества поиска - 2006 • MatrixNet – 2009 • 1000 инженеров - 2013 15
  • 16. Алгоритм поиска? Нет одного алгоритма, их десять тысяч • • • • • • • • 16 обход и индексация интернета производительность лингвистика разработка факторов и анализ данных очистка данных и антиспам определение целевой метрики алгоритмы машинного обучения смешивание выдачи
  • 17. Качество • у почти всех алгоритмов есть "качество", т.е. выбор из нескольких вариантов – плохих и получше • мы непрерывно занимаемся улучшением качества • будем им заниматься всегда • качество измеряется числовыми метриками • метрика хороша, если показывает наше плохое качество 17
  • 18. Базовая метрика качества поиска Для ответа: • оценки: IR (0%), R- (7%), R+ (14%), U (40%), V (61%) Для десятки: • Gain: rel(i) - релевантность одного документа [0..1] • Cumulative G: sum(1..10, rel(i)) - сложим для десятки • Discounted CG: rel(1) + sum(2..10, rel(i) / log2(i)) - с дискаунтом за позицию • Normalized DCG - DCG / IDCG - нормализуем на максимум Для поиска: • среднее по репрезентативной корзине запросов 18
  • 19. Метрика pFound Каскадная модель удовлетворенности пользователя • с вероятностью R удовлетворяется ответом • с вероятностью (1-R)*0.15 устает • с вероятностью (1-R)*0.85 читает дальше 19
  • 20. Обучение с учителем • асессоры оценивают ответы по инструкции • инструкция (150 страниц) описывает наше продуктовое видение • 1000 асессоров • 10 млн. ручных оценок за 2 года • настоящих запросов все равно больше (200 млн/д) • учим машину на примерах 20
  • 21. Модель ранжирования • факторы ранжирования (числа), считаются для пары (запрос, документ) • на них считаем формулу релевантности, берем top10 • модель: (f1(q, d), f2(q, d), ... , fn(q, d)) -> rank(q, d) • Специфическая модель: не призвана отражать реальный мир, просто сложная штука с кучей параметров 21
  • 22. MatrixNet • MatrixNet: 10K бинарных деревьев глубины 6 • количество параметров огромно: 10K * (64*3) ~ 2 млн. • сложная и гибкая, но не переобучается ... -4025627,483990,-36437960,39979596, -92842056,-50086892,-100233272,243162224, -22282850,57163664,-24991620,-9889194, ... vars[5699] vars[5700] vars[5701] vars[5702] = = = = fFactorInt[376] fFactorInt[376] fFactorInt[376] fFactorInt[376] ... ,{376, .0f} ,{376, 0.6251018047f} ,{-1, .0} ,{376, 0.05682743713f} ,{376, 0.4546194971f} 22 ... > > > > 1060970280 ? 1 : 0; // 0.738757 1061923687 ? 1 : 0; // 0.795584 1049721454 ? 1 : 0; // 0.284137 948291011 ? 1 : 0; // 6.37877e-05
  • 23. Машинное обучение ранжирования • сталкиваем Модель Пользователя и Модель Ранжирования • подбираем параметры модели ранжирования • максимизируем метрику жадной оптимизацией • MLR находит скрытые закономерности в данных и ожидания пользователей • метрика = удовлетворение модельного юзера, работающего с моделью ранжирования • использует возможность посчитать счастье на огромном кол-ве отличающихся поисков без экспериментов 23
  • 24. Много данных Никак не влезет на одну машину
  • 25. Откуда данные? • • • • • каждый ответ поиска (200 млн/день) и клики записываются логи всех сервисов данные от браузера и счетчиков Метрики от партнеров любые данные могут быть полезны в качестве Огромная коллекция – 20 петабайт, нужно уметь с ней работать! 25
  • 26. Распределенные вычисления • • • • • • большинство таблиц не влезает на одну машину нужны распределенные вычисления вручную можно внедрить 5 алгоритмов за карьеру нужна надежность хранения проблема эффективной загрузки серверов общий кластер -> приоритизация и планирование 500 задач одновременно на 2000 серверах! 26
  • 27. Парадигма MapReduce • • • • входная таблица с независимыми записями Map(record) -> (key, value)+ сортировка по key Reduce(key, (value)+) -> result(key) • Map - выборка нужных данных, определение ключей • Reduce - агрегация по ключу 27
  • 29. Пример WordCount Найти 100 самых частотных слов в коллекции документов • На входе: таблица с документами Docs • Map: считаем слова в документе, => (word, tf) • Reduce1: для word суммируем частоты tf => (hash(word) % 1000, (word, count)) • Reduce2: для 0..999 вычисляем Top100 самых частотных => ("result", (word, count)+) • Reduce3: сливаем 1000 Top100 пар (word, count) => ("output", (word, count)+) Простая реализация (не тестировалась ;) mapreduce -map "tr -cs '[:alnum:]' 'n'" -reduce "uniq -c“ –src Docs –dst Stat mapreduce –read Stat | sort +0nr | head -n 100 29
  • 30. Реализация MapReduce Yandex MapReduce: • тройная репликация или Reed Solomon Code • сжатие чанков ZIP (сжатие 4.31) • последовательная почанковая обработка • умный шедулер Real-Time MapReduce: • нужен для свежести и RT-персонализации • инкрементальное обновление результата при изменении входных данных • мгновенная инвалидация и пересчет по цепочке • RT база данных в основе 30
  • 32. Свежесть Страница в интернете, почему же она не находится? Поиск страницы по узкому запросу: • найти и проиндексировать Поиск новостей на свежую тему: • не так просто, само не найдется! • свежее составляет 0.1% от базы, но нужно в 20% случаев • не накопились факторы: ссылки и пользовательское поведение 32
  • 33. Real-Time робот • • • • • • распределенная RT-архитектура непрерывное обновление веб-графа CrawlRank (aka OPIC) алгоритм - RT PageRank адаптивный переобход хабов для поиска нового десятки фидов об обновлениях RT-индексация и поиск Выкладываем лучшие документы с задержкой в секунды 33
  • 34. Новости по широкому запросу • найти новости по [навальный] ранжированием не получится • вероятность << 0.1% • если были новости, то нужно много свежего • если нет, то свежее - вряд ли хорошее • нужен "семантический" триггер • величина "свежего интента“ - вероятность, что пользователь с таким запросом хочет свежее – [захват автобуса норвегия] = 90% – [цискаридзе] = 40% – [задорнов] = 10% 34
  • 35. Детектор свежести • классификатор наличия потребности в свежем • самый большой в поиске, на 150 факторах: – изменение частоты запросов – появление новостных сюжетов – увеличение кол-ва релевантных свежих – клики на свежее – всплеск слова в Твиттере – новостные слова (взрыв, заявил, путин) • 10% - немного свежего (0.2) • 6% - много свежего (0.4) • 2% - только свежее (0.9) 35
  • 36. Разнообразие при неоднозначности • один запрос - одна выдача - много интентов • удовлетворить разных пользователей одной страницей => разнообразие • смешиваем вертикали: веб-поиск, свежесть, видео, региональная ... • метрика WidepFound (расширение pFound): – вероятности интентов – релевантности документов для интентов 36
  • 37. Спектр - универсальное разнообразие • учимся понимать запросы [объект потребность]: [битлз mp3 скачать] • считаем вероятности потребностей по логам запросов • смешиваем по запросу [битлз] выдачи для – – – – 37 [битлз слушать онлайн] [битлз видео] [битлз фото] [битлз википедия]
  • 39. Федор Романенко Ведущий менеджер-эксперт качества поиска +7-903-6841530 fedor57@yandex.ru Спасибо!