Интерактивная визуализация алгоритмов рекомендаций в новом open source приложении | 2025-11-11T05:23:46

У меня вышло электронное open source приложение к моей книжке Recommender Algorithms! Это «песочница», где можно «погонять» различные алгоритмы рекомендаций с разными настройками, и по каждому алгоритму посмотреть специфичную ему визуализацию, помогающую понять как он работает. Например, для таких алгоритмов как ItemKNN, SLIM или EASE ключевой визуализацией является heatmap, выученной матрицы схожести (item-item similarity matrix). Это позволяет увидеть, какие именно пары товаров модель считает «похожими» (или «влияющими» друг на друга). Для SLIM, например, полезна «Sparsity Plot» , показывающая, что матрица схожести действительно получилась разреженной. Для алгоритмов ассоциативных правил (Apriori, FP-Growth, Eclat) визуализация — это вообще не график, а интерактивные таблицы с найденными «Частотными наборами» (Frequent Itemsets) и сгенерированными «Правилами» (Association Rules) , которые можно фильтровать и сортировать.

Кроме этого, там есть параметрический механизм создания «игрового датасета» — Dataset Wizard. Работает он так — есть шаблонные датасеты, которые описывают items через характеристики. Например, рецепты через вкусы. Или фильмы через жанры. Система генерирует случайных пользователей со случайным набором характеристик из того же набора — причем там много ползунков, позволяющих это распределение сделать более контрастным или сложным. Далее создается уже матрица оценок пользователями айтемов — условно если совпадают характеристики пользователя и айтема, то оценка будет выше, так как «совпадают вкусы» и наоборот, если различаются, то оценка будет ниже. Тут тоже ползунки, добавляющие шум и scarcity — рандомно удаляется часть матрицы. На вход алгоритму рекомендаций характеристики товаров и пользователей не подаются, они скрыты, но они используются для визуализации результатов.

Третьим компонентом приложения является подбор гиперпараметров. По сути, это автоконфигуратор под конкретный датасет. Там используется итеративный подход, который намного эффективнее, чем полный перебор (Grid Search) или случайный поиск (Random Search). Если говорить кратко, система анализирует историю прошлых запусков (trials) и строит вероятностную «карту» (суррогатную модель) того, какие параметры, скорее всего, дадут лучший результат. Затем она использует эту карту, чтобы по-умному выбрать следующую комбинацию для проверки. Этот метод называется Последовательная оптимизация на основе суррогатных моделей (SMBO).

Код свободный, будет еще дополняться новыми алгоритмами и новыми визуализациями.

Ссылочка на код в комментариях.

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

SingleFile: решение проблем с сохранением и обменом веб-страницами | 2025-11-05T17:45:42

Нашел полезный экстеншн к Chrome — SingleFile. Решает вот такую задачу — нужно поделиться страницей из браузера, которая не публичная, например, по iMessage или Telegram. Это не так тривиально сделать. Например, модно записать из браузера на лэптопе файл .mhtml, и его отправить, но открыть его не смогут только получатели на айфоне. Записать в обычный .html тоже не вариант, так как там не сохраняются картинки и стили. Сделать скриншот — попадет только небольшой фрагмент. Поставить экстеншн, который делает длинный большой PNG со всей страницей — этот PNG нельзя открыть на айфоне из телеграмма как минимум, отрисовывается только верх. Печать в PDF тоже не выход — результат очень плохой и очень зависящий от желания разработчиков делать print-friendly version.

SingleFile позволяет создать снэпшот страницы из браузера, обычный .html, который открывается где угодно, со встроенными стилями и изображениями. Но что особенно удобно, перед экспортом можно через WebInspector поудалять все, чем делиться не хочешь, и оно не попадет в финальный .html. У экстеншена свободный код на github, и он никуда ничего не отправляет. Судя по всему, если на странице была динамическая подгрузка через JS, то сохраняется не JS, а результат подгрузки, а JS вырезается.

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

(Это у меня сегодня интервью вышло на внутреннем портале, и мне нужно было им с семьей поделиться в нашем семейном чатике)

Запуск книги «Рекомендательные алгоритмы»: все, что нужно знать | 2025-10-25T17:36:38

I finally released a book on #RecSys! It’s called Recommender Algorithms, where I’ve compiled over 50 recommendation algorithms with detailed mathematical derivations, thorough explanations, and code examples.

It all started early this spring in Germany, when I attended an ACM conference and sketched out the first structure of the book while analyzing the talks from the RecSys track. And now, just six months later, it has come to life.

Why did I write it? Because neither online nor in print is there a single, accessible resource that deeply explores recommendation algorithms of various types and purposes. There are articles focused on small subsets, but collecting and systematizing approaches—from foundational methods to the very latest—seems to have never been done before. I don’t know if I succeeded, but I’d love to hear your feedback.

Please like & share!

P.S. Click at READ SAMPLE to see the first 40 pages. The table of contents is there as well.

Профессиональные тайны юристов: от «бара» до «Esq.» | 2025-10-14T01:20:33

Оказалось, что фраза «barristers must gain admission to the bar» вообще не про бар и баристов, как я бы подумал, не прочитав, что это, оказывается, про юристов США. “Admission to the bar” — официальное допущение к адвокатской практике (для barristers). А “Barrister” — это адвокат, представляющий клиентов в суде. Есть еще “Solicitor” — юрист, работающий с клиентами и документами.

Исторически “bar” — это буквально перегородка (барьер) в суде, отделяющая место, где сидят судьи и адвокаты, от остальной части зала. “Being called to the bar” — “быть вызванным к барьеру”, то есть быть допущенным к представлению дел в суде. Сегодня “the bar” означает юридическую профессию в целом или адвокатское сообщество.

Собственно, все началось с того, что я увидел титл (professional designation) у чувака «Esq.» и понял, что я ни фига не разбираюсь в этих буковках, которые часто указываются после имени. Их огромное множество, и вы наверняка не раз видели PhD, M.D., или CPA.

Recommender Algorithms: Путеводитель по алгоритмам рекомендаций | 2025-10-13T11:54:14

Наконец-то я выпустил книгу! Она называется Recommender Algorithms — в ней я собрал более 50 алгоритмов рекомендаций с математическими выкладками, подробным описанием и примерами кода.

Все началось ранней весной в Германии, когда я посетил конференцию ACM и сделал первые наброски структуры книги, анализируя доклады по потоку RecSys. И вот, спустя полгода, книга увидела свет.

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

Продаётся на amazon и Barnes and Noble. Есть русский автоматический перевод (удивительно, но очень неплохой), но я не знаю, как его продавать пока.

(Это не единственная моя книга, но сегодня — только об этой.)

Глубины Solr и Lucene: Передовой перевод для инженеров | 2025-10-06T17:11:12

Готовлю к публикации книжку по Solr&Lucene. Как вы думаете, публиковать такой перевод на амазоне? 🙂

Книжка про алгоритмы и подкапотную инженерию. Я с этого ракурса еще не видел книг, может, будет кому интересна.

Marcia Klioze | 2025-10-03T22:42:57

Друзья, я сейчас на открытии выставки Marcia Klioze в галерее Arts Club Of Washington и просто в восторге! Очень рад за свою замечательную наставницу, у которой я учусь масляной живописи уже два с половиной года. Сегодня здесь её персональная экспозиция, и атмосфера просто волшебная.

Я горжусь тем, что перенимаю ее бесценный опыт и учусь видеть мир по-новому. Во вторник очередной класс😉 Давно хотел запостить ее работы, и вот сегодня у меня возможность поделиться (специально спросил разрешения, так что всё официально)!

Почти все работы продаются, кому интересно, захаживайте

AI-генератор диаграмм: текст визуализации | 2025-09-30T20:57:35

Я пока работаю над книгой, понял, какого продукта мне не хватает. Это AI-генератор диаграмм по текстовому описанию.

Идея в том, что мастер-документом для диаграммы является текст. Это текстовое описание может быть (и должно быть) довольно подробным, чтобы сгенерированная диаграмма была именно такой, какой ее себе представляет автор. Саму диаграмму не редактируют. То есть, ее можно редактировать — подвигать там кружочки, но в идеале после внесения изменений система должна обновить текст, после генерации из которого получится то, что надвигал юзер.

Результат — диаграмма — должна насколько возможно хорошо соответствовать описанию. Если она не соответствует описанию потому что нельзя условно сделать треугольник с тремя тупыми углами, то система должна сделать максимум возможного и дать словесный ответ, что не получилось. Дальше пользователь может изменить постановку задачи так, чтобы система заткнулась и выдала диаграмму как надо.

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

Можно попросить систему, чтобы она сгенерировала по диаграмме описание диаграммы, по которому, если его засунуть в генератор диаграмм, получится ровно то, по чему это описание сгенерировалось. Да, это описание будет более многословным, и многослойным, но зато будет более надежно описывать результат.

То есть, с этого момента вы уже не работаете с диаграммой. Вы работаете с текстом. Если нужна диаграмма — вы просто компилируете текст в диаграмму и получается как надо. Но вы даже с текстом не работаете напрямую. Вы работаете с этим текстом -описанием диаграммы через LLM. То есть, просите добавить какой-нибудь блок, и меняется текст, но меняется так, чтобы внезапно не поменялось вообще все.

Диаграмма на выходе должна быть в объектной форме, из которой можно уже делать растровую (PNG) или векторную (SVG, EPS).

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

В общем, вот такие фантазии. Если у кого есть представления как это реализовать — давайте обсудим 🙂

Руководство по алгоритмам рекомендаций 2026 | 2025-09-26T21:17:55

Я тут какое-то время назад решил книжку написать по алгоритмам рекомендаций. С математикой, примерами кода, репозиторием и т.д. English, of course.

Соответственно, ищу волонтеров-рецензентов, разбирающихся в теме. Также тех, кто имеет опыт с print-on-demand на Амазоне.

Контента уже страниц на 200. Работы еще месяца на три. Рабочее название Recommender Algorithms in 2026: A Practitioner’s Guide. Где-то половина еще сырая, первые страниц 80 уже в 80% готовности.

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

Шоки детства: радиовилки, телефонные звонки и елочные гирлянды | 2025-09-23T17:00:28

Вспомнилось, что в детстве меня удивляло, какой идиот придумал сделать для радио точно такую же вилку, что и для 220 вольт. Эта радиовилка должна втыкаться в радиорозетку.

Я в детстве раскручивал и «дорабатывал» почти все электрическое в доме (до электронного еще не дорос). Меня конечно много раз било током из розетки, но какое мое было удивление, что от старого советсткого телефона тоже может бить током. В момент, когда приходит звонок напряжение в линии прыгает с 12-60 вольт до 120 вольт 🙂

А еще хороший опыт был с елочной гирляндой. Для младшего школьника было непонятно, почему от елочной гирлянды может ударить током, если там лампочки те же, что я подключаю к плоской батарейке Планета. Пришлось учить матчасть 🙂 Кстати, куда-то подевались эти квадратные плоские батарейки. Раньше они были везде