SlideShare a Scribd company logo
1 of 37
Download to read offline
Семантическое ядро рунета - высоконагруженная
сontent-based рекомендательная система
реального времени на базе Amazon Kinesis/Lucene
Александр Сербул
Руководитель направления
Карл…
Карл, я активно
использую Elastic
Search
Это очень круто,
пап!
Карл… Карл, я специалист по
BigData….
Это очень круто,
пап!
Но я до сих пор не
понимаю, как работает
обратный индекс и
вздрагиваю от термина
«реляционная алгебра»
О чем поговорим
1. Типы и алгоритмы рекомендательных систем –
кратко
2. Как мы собираем данные о действиях клиентов
3. Архитектура нашей рекомендательной системы
4. Статистика использования
5. Советы как писать свои рекомендательные системы
4 / 37
Типы и алгоритмы рекомендательных
систем
1. Релевантный контент – «угадываем мысли»
2. Релевантный поиск
3. Предлагаем то, что клиенту нужно как раз
сейчас
4. Увеличение лояльности, конверсии
5 / 37
6 / 37
Объем продаж товаров
1. Best-sellers
2. Топ-продаж…
3. С этим товаром покупают
4. Персональные рекомендации
7 / 37«Mining of Massive Datasets», 9.1.2: Leskovec, Rajaraman, Ullman (Stanford University)
Коллаборативная фильтрация
1. Предложи Товары/Услуги, которые есть
у твоих друзей (User-User)
2. Предложи к твоим Товарам другие
связанные с ними Товары (Item-Item):
«сухарики к пиву»
8 / 37
Возможности коллаборативной фильтрации
1. Персональная рекомендация (рекомендуем посмотреть
эти Товары)
2. С этим Товаром покупают/смотрят/… (глобальная)
3. Топ Товаров на сайте
Apache Spark MLlib (als), Apache Mahout (Taste) + неделька
Объем данных
Объем модели, требования к «железу»
9 / 37
Content-based рекомендации
1. Купил пластиковые окна – теперь их предлагают на
всех сайтах и смартфоне.
2. Купил Toyota, ищу шины, предлагают шины к Toyota
- Поисковый «движок»: Sphinx, Lucene (Solr)
- «Обвязка» для данных
- Хранение профиля Клиента
- Реализация: неделька. Риски – объем данных, языки.
10 / 37
Тюнинг рекомендательных систем
1. Рекомендовать постоянно «возобновляемые»
Товары (молоко, носки, …)
2. Рекомендовать фильм/телевизор – один раз до
покупки
3. Учет пола, возраста, размера, …
11 / 37
Как собирать данные от клиентов?
1.Как собирать?
2.Куда собирать?
3.Как обрабатывать?
4.Потоковые алгоритмы...
12 / 37
Технологии - Apache Kafka
http://kafka.apache.org/
1. “LinkedIn”
2. Не совсем очередь
3. Совсем не очередь!
4. Клиентское приложение
«держит» курсор потока
5. Scala!
13 / 37
Технологии - Apache Kafka
глубже
1. Очереди 2.0?
2. Highload – очереди?
3. “Халтура?” :-)
14 / 37
Технологии - Apache Storm
http://storm.apache.org
1. Task parallel
2. Удобные, гибкие workflow
3. Clojure/JVM
15 / 37
Apache Hadoop
Платформа:
- вычисления (MapReduce)
- файловая система (HDFS)
- “SQL-запросы” по данным (Hive)
16 / 37
Apache Spark
17 / 37
Война систем хранения
• SQL на MapReduce: Hive, Pig, Spark SQL
• SQL на MPP (massive parallel processing):
Impala, Presto, Amazon RedShift, Vertica
• NoSQL: Cassandra, Hbase, Amazon DynamoDB
• Классика: MySQL, MS SQL, Oracle, …
18 / 37
Lambda-архитектура
• Людей заваливает
данными…
• С большой скоростью 
19 / 37
Инвертированный (обратный) индекс
20 / 37Christopher D. Manning, Prabhakar Raghavan and Hinrich Schutze, "Introduction to Information Retrieval", Cambridge
University Press. 2008.
IR, NLP
21 / 37Christopher D. Manning, Prabhakar Raghavan and Hinrich Schutze, "Introduction to Information Retrieval", Cambridge
University Press. 2008.
Академическая теория, Computer Science,
как же скучно, хочется спать…
Отдадим должное гениям! Создатели
великолепных поисковых движков
23 / 37Андрей Аксенов, «Sphinx» Doug Cutting, «Lucene»
Карл…
Карл, я всю жизнь
пишу код. Всю
жизнь!
Это очень круто,
пап!
Карл… Карл, я специалист по
BigData….
Это очень круто,
пап!
Но я так ничего
серьезного и не
написал. НИ-ЧЕ-ГО...
Кофе или … марихуана?
1. Много хороших программистов — C++
2. Много тестировщиков — C++
3. Много свободного времени на разработку — C++
4. Много сводобных ночей на отладку - C++
5. Предметная область формализована — C++
6. Требования не меняются - C++
Иначе: java ;-)
26 / 37
Apache Lucene
27 / 37
Apache Lucene: +/-
1. (-) Нет нормальной поддержки русского языка
2. (-) Нет русской морфологии
3. (-) Документация иногда оставляет желать лучшего
4. (-) Нет решения для 100% онлайн индексации
5. (+) Компактный индекс (гигабайты)
6. (+) Лаконичное API
7. (+) Транзакционность
8. (+) Thread-safety
28 / 37
Redis
1.Профиль Пользователя: десятки тэгов
2.Стемминг Портера
3.Высокочастотные слова, tf/idf
4.Алгоритмы вытеснения тэгов
5.Куда можно развивать… (word2vec,
glove, синонимы ...)
29 / 37
Архитектура content-based рекомендаций
30 / 37
Amazon
Kinesis
Java indexing
workers (16)
~1700
событий/сек
Index (disk)
Index (disk)Redis (profiles)
Раздающий
Servlet
Процессы
1.Многопоточный индексатор, java/lucene
2.Amazon Kinesis – как буффер
3.Индекс в папке на диске, вытеснение
4.Как реализован “онлайн” - выдать
секрет :-)
5.Раздающий Servlet
31 / 37
Цифры
1.“Потребители”: десятки тысяч интернет-магазинов
2.“Поставщики”: все сайты на Битрикс, больше 100к
3.Тэги Профиля: название страницы, h1
4.Индекс Товаров: название, разделы
5.Индекс: гигабайты, сотня файлов в папке
32 / 37
Цифры
33 / 37
На закуску!
Полезные ссылки
1. http://ruscorpora.ru/
2. Томита-парсер (Яндекс)
3.http://www.deeplearningbook.org/
4. Google SyntaxNet
5.Word2Vec, Glove
6. Semantical spaces mapping
35 / 37
Семантические пространства и
deep learning
36 / 37
«Dual Encoder
LSTM»
TensorFlow
Theano
Torch7
Deeplearning4j
Спасибо за
внимание!
Вопросы?
Александр Сербул
@AlexSerbul
serbul@1c-bitrix.ru

More Related Content

What's hot

Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Ontico
 
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
Ontico
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Ontico
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Ontico
 
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Ontico
 
RootConf 2015
RootConf 2015RootConf 2015
RootConf 2015
Evgeny Uskov
 
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Ontico
 
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
Ontico
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Ontico
 

What's hot (20)

Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
 
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)Путь от монолита на PHP к микросервисам на Scala  / Денис Иванов (2GIS)
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
 
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
 
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
 
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
 
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
 
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
 
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
 
RootConf 2015
RootConf 2015RootConf 2015
RootConf 2015
 
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
Особенности архитектуры распределённого хранилища в Dropbox / Слава Бахмутов ...
 
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
 
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)
Highload на GPU, опыт Vinci / Олег Илларионов (ВКонтакте)
 
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
 
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
 

Viewers also liked

AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
Ontico
 
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
Ontico
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
Ontico
 
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)
Ontico
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Ontico
 
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Ontico
 
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)
Ontico
 
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Ontico
 
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Ontico
 
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Ontico
 
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
Ontico
 
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Ontico
 
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Ontico
 

Viewers also liked (20)

MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
 
Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)
Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)
Измеряем энергопотребление с помощью Arduino / Алексей Лавренюк (Яндекс)
 
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
Your hero images need you: Save the day with HTTP2 image loading / Tobias Bal...
 
Continuous Integration на стероидах / Александр Акбашев (HERE)
Continuous Integration на стероидах / Александр Акбашев (HERE)Continuous Integration на стероидах / Александр Акбашев (HERE)
Continuous Integration на стероидах / Александр Акбашев (HERE)
 
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
Artisto: опыт запуска нейросетей в production / Эдуард Тянтов (Mail.ru Group)
 
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
AWS и GCP: трудная жизнь в облаках / Максим Пугачев (IPONWEB)
 
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
Sphinx 3.0 и RT-индексы на основном поиске Avito / Андрей Смирнов, Вячеслав К...
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
 
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)
Aviasales: миграция поискового движка в docker / Дмитрий Кузьменков (Aviasales)
 
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)
A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)
 
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
Практика совместного использования Lua и C в opensource спам-фильтре Rspamd /...
 
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)
RTB в телевизоре и на улицах / Михаил Мельников (IPONWEB)
 
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
 
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
 
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
Применяем стандарты кодирования NASA к JavaScript / Денис Радин (Liberty Global)
 
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
Промышленное ускорение сайтов / Николай Мациевский (Айри.рф)
 
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
 
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
Отрисовать за 16 мс / Глеб Михеев (Beta Digital Production)
 
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
Порядок для скорости. Система структурирования фронтендовой части веб-приложе...
 

Similar to Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная система реального времени на базе Amazon Kinesis/Lucene / Александр Сербул (1С-Битрикс)

"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и..."Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
it-people
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
sportgid
 
Потоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеПотоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной карте
Voximplant
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark Scala
Roman Zykov
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...
Alexey Zinoviev
 
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
HappyDev
 
BusinessObjects глазами аналитика - Tern4
BusinessObjects глазами аналитика -  Tern4 BusinessObjects глазами аналитика -  Tern4
BusinessObjects глазами аналитика - Tern4
Valeriy Titov
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
Sergey Xek
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
Sergey Xek
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
Ontico
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
Sergey Xek
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
IT-Portfolio
 

Similar to Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная система реального времени на базе Amazon Kinesis/Lucene / Александр Сербул (1С-Битрикс) (20)

Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...Машинное обучение в электронной коммерции - практика использования и подводны...
Машинное обучение в электронной коммерции - практика использования и подводны...
 
Семантическое ядро рунета
Семантическое ядро рунетаСемантическое ядро рунета
Семантическое ядро рунета
 
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и..."Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
 
Потоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеПотоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной карте
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark Scala
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...
 
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
 
BusinessObjects глазами аналитика - Tern4
BusinessObjects глазами аналитика -  Tern4 BusinessObjects глазами аналитика -  Tern4
BusinessObjects глазами аналитика - Tern4
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Выступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance ConferenceВыступление Сергея Аверина, Badoo, на High Performance Conference
Выступление Сергея Аверина, Badoo, на High Performance Conference
 
Не все базы данных одинаково полезны
Не все базы данных одинаково полезныНе все базы данных одинаково полезны
Не все базы данных одинаково полезны
 
Алексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPАлексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHP
 
Alexander Serbul ITEM 2018
Alexander Serbul ITEM 2018Alexander Serbul ITEM 2018
Alexander Serbul ITEM 2018
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатации
 
Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)Распространенные ошибки применения баз данных (Сергей Аверин)
Распространенные ошибки применения баз данных (Сергей Аверин)
 
Распространенные ошибки применения баз данных
Распространенные ошибки применения баз данныхРаспространенные ошибки применения баз данных
Распространенные ошибки применения баз данных
 
Велосипедостраительство в NoSQL, строим собственное NoSQL хранилище
Велосипедостраительство в NoSQL, строим собственное NoSQL хранилищеВелосипедостраительство в NoSQL, строим собственное NoSQL хранилище
Велосипедостраительство в NoSQL, строим собственное NoSQL хранилище
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Строим N...
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 

More from Ontico

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 

More from Ontico (20)

Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
 

Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная система реального времени на базе Amazon Kinesis/Lucene / Александр Сербул (1С-Битрикс)

  • 1. Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная система реального времени на базе Amazon Kinesis/Lucene Александр Сербул Руководитель направления
  • 2. Карл… Карл, я активно использую Elastic Search Это очень круто, пап!
  • 3. Карл… Карл, я специалист по BigData…. Это очень круто, пап! Но я до сих пор не понимаю, как работает обратный индекс и вздрагиваю от термина «реляционная алгебра»
  • 4. О чем поговорим 1. Типы и алгоритмы рекомендательных систем – кратко 2. Как мы собираем данные о действиях клиентов 3. Архитектура нашей рекомендательной системы 4. Статистика использования 5. Советы как писать свои рекомендательные системы 4 / 37
  • 5. Типы и алгоритмы рекомендательных систем 1. Релевантный контент – «угадываем мысли» 2. Релевантный поиск 3. Предлагаем то, что клиенту нужно как раз сейчас 4. Увеличение лояльности, конверсии 5 / 37
  • 7. Объем продаж товаров 1. Best-sellers 2. Топ-продаж… 3. С этим товаром покупают 4. Персональные рекомендации 7 / 37«Mining of Massive Datasets», 9.1.2: Leskovec, Rajaraman, Ullman (Stanford University)
  • 8. Коллаборативная фильтрация 1. Предложи Товары/Услуги, которые есть у твоих друзей (User-User) 2. Предложи к твоим Товарам другие связанные с ними Товары (Item-Item): «сухарики к пиву» 8 / 37
  • 9. Возможности коллаборативной фильтрации 1. Персональная рекомендация (рекомендуем посмотреть эти Товары) 2. С этим Товаром покупают/смотрят/… (глобальная) 3. Топ Товаров на сайте Apache Spark MLlib (als), Apache Mahout (Taste) + неделька Объем данных Объем модели, требования к «железу» 9 / 37
  • 10. Content-based рекомендации 1. Купил пластиковые окна – теперь их предлагают на всех сайтах и смартфоне. 2. Купил Toyota, ищу шины, предлагают шины к Toyota - Поисковый «движок»: Sphinx, Lucene (Solr) - «Обвязка» для данных - Хранение профиля Клиента - Реализация: неделька. Риски – объем данных, языки. 10 / 37
  • 11. Тюнинг рекомендательных систем 1. Рекомендовать постоянно «возобновляемые» Товары (молоко, носки, …) 2. Рекомендовать фильм/телевизор – один раз до покупки 3. Учет пола, возраста, размера, … 11 / 37
  • 12. Как собирать данные от клиентов? 1.Как собирать? 2.Куда собирать? 3.Как обрабатывать? 4.Потоковые алгоритмы... 12 / 37
  • 13. Технологии - Apache Kafka http://kafka.apache.org/ 1. “LinkedIn” 2. Не совсем очередь 3. Совсем не очередь! 4. Клиентское приложение «держит» курсор потока 5. Scala! 13 / 37
  • 14. Технологии - Apache Kafka глубже 1. Очереди 2.0? 2. Highload – очереди? 3. “Халтура?” :-) 14 / 37
  • 15. Технологии - Apache Storm http://storm.apache.org 1. Task parallel 2. Удобные, гибкие workflow 3. Clojure/JVM 15 / 37
  • 16. Apache Hadoop Платформа: - вычисления (MapReduce) - файловая система (HDFS) - “SQL-запросы” по данным (Hive) 16 / 37
  • 18. Война систем хранения • SQL на MapReduce: Hive, Pig, Spark SQL • SQL на MPP (massive parallel processing): Impala, Presto, Amazon RedShift, Vertica • NoSQL: Cassandra, Hbase, Amazon DynamoDB • Классика: MySQL, MS SQL, Oracle, … 18 / 37
  • 20. Инвертированный (обратный) индекс 20 / 37Christopher D. Manning, Prabhakar Raghavan and Hinrich Schutze, "Introduction to Information Retrieval", Cambridge University Press. 2008.
  • 21. IR, NLP 21 / 37Christopher D. Manning, Prabhakar Raghavan and Hinrich Schutze, "Introduction to Information Retrieval", Cambridge University Press. 2008.
  • 22. Академическая теория, Computer Science, как же скучно, хочется спать…
  • 23. Отдадим должное гениям! Создатели великолепных поисковых движков 23 / 37Андрей Аксенов, «Sphinx» Doug Cutting, «Lucene»
  • 24. Карл… Карл, я всю жизнь пишу код. Всю жизнь! Это очень круто, пап!
  • 25. Карл… Карл, я специалист по BigData…. Это очень круто, пап! Но я так ничего серьезного и не написал. НИ-ЧЕ-ГО...
  • 26. Кофе или … марихуана? 1. Много хороших программистов — C++ 2. Много тестировщиков — C++ 3. Много свободного времени на разработку — C++ 4. Много сводобных ночей на отладку - C++ 5. Предметная область формализована — C++ 6. Требования не меняются - C++ Иначе: java ;-) 26 / 37
  • 28. Apache Lucene: +/- 1. (-) Нет нормальной поддержки русского языка 2. (-) Нет русской морфологии 3. (-) Документация иногда оставляет желать лучшего 4. (-) Нет решения для 100% онлайн индексации 5. (+) Компактный индекс (гигабайты) 6. (+) Лаконичное API 7. (+) Транзакционность 8. (+) Thread-safety 28 / 37
  • 29. Redis 1.Профиль Пользователя: десятки тэгов 2.Стемминг Портера 3.Высокочастотные слова, tf/idf 4.Алгоритмы вытеснения тэгов 5.Куда можно развивать… (word2vec, glove, синонимы ...) 29 / 37
  • 30. Архитектура content-based рекомендаций 30 / 37 Amazon Kinesis Java indexing workers (16) ~1700 событий/сек Index (disk) Index (disk)Redis (profiles) Раздающий Servlet
  • 31. Процессы 1.Многопоточный индексатор, java/lucene 2.Amazon Kinesis – как буффер 3.Индекс в папке на диске, вытеснение 4.Как реализован “онлайн” - выдать секрет :-) 5.Раздающий Servlet 31 / 37
  • 32. Цифры 1.“Потребители”: десятки тысяч интернет-магазинов 2.“Поставщики”: все сайты на Битрикс, больше 100к 3.Тэги Профиля: название страницы, h1 4.Индекс Товаров: название, разделы 5.Индекс: гигабайты, сотня файлов в папке 32 / 37
  • 35. Полезные ссылки 1. http://ruscorpora.ru/ 2. Томита-парсер (Яндекс) 3.http://www.deeplearningbook.org/ 4. Google SyntaxNet 5.Word2Vec, Glove 6. Semantical spaces mapping 35 / 37
  • 36. Семантические пространства и deep learning 36 / 37 «Dual Encoder LSTM» TensorFlow Theano Torch7 Deeplearning4j