Получи случайную криптовалюту за регистрацию!

Матчасть

Логотип телеграм канала @matchast — Матчасть М
Логотип телеграм канала @matchast — Матчасть
Адрес канала: @matchast
Категории: Технологии
Язык: Русский
Страна: Россия
Количество подписчиков: 985
Описание канала:

Высшая математика в бизнесе и жизни
vk.com/mat.chast
botcamp.timepad.ru
www.youtube.com/channel/UCoO8ApMu4QM4KQ8oGRCgOHQ
Чат: t.me/matchast_chat

Рейтинги и Отзывы

3.67

3 отзыва

Оценить канал matchast и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

0

3 звезд

2

2 звезд

0

1 звезд

0


Последние сообщения 5

2021-03-27 12:44:02 Что-то в прошлый раз я с графовыми эмбеддингами зажестил. Сегодня будет более простой и прикладной рассказ – про расчёт размера выборки для эксперимента.
Представим, вы хотите попробовать новую рекламную кампанию. Вы платите по 1 рублю за клик, и зарабатываете, если человек, кликнувший по объявлению, совершил покупку. В уже имеющейся кампании конверсия из кликов в покупки 0.5%, а какая будет в новой – вы не знаете. Вопрос: сколько кликов надо оплатить, чтобы сравнить новую кампанию со старой?

Проблема в том, что «настоящую» конверсию невозможно измерить по данным с абсолютной точностью. Вот допустим 160 человек кликнули на баннер, а сделал покупку – один, то есть 0.625% от всех. Значит ли это, что на миллион кликов придётся около 6250 покупок? Не факт. Интуитивно понятно, что для вывода, что конверсия новой кампании больше 0.5%, 160 кликов мало. Ведь может быть, что нам просто повезло, и на самом деле покупку делает один кликнувший из тысячи. Но сколько кликов – достаточно?

Математическая статистика предлагает удобный инструмент для оценки точности: доверительный интервал. Назовём «настоящую» конверсию буквой p, от слова «probability». Вы оплатили n кликов, из них было m покупок, и средняя конверсия в вашей выборке равна k=m/n. Чисто k обычно не равно p, но чем больше n, тем они ближе друг к другу. И оказывается, если кликов было достаточно много, то интервал k ± 2 sqrt (k(1-k)/n) содержит в себе число p с вероятностью около 95%. Sqrt – это квадратный корень.

[Под капотом у этой формулы биномиальное распределение, у которого дисперсия равна p(1-p)n, плюс понимание, что в больших выборках биномиальное распределение по ЦПТ сходится к нормальному, плюс знание, что 95% нормально распределения сосредоточено в пределах 1.96 стандартных отклонений от среднего. Учите матстат!]

Итак, 95% доверительный интервал равен k ± 2 sqrt (k(1-k)/n). Если n=160 и m=1, то интервал будет примерно 0.6% ± 2 *0.6%, то есть от -0.6% до 1.8%. Как видим, точности недостаточно, чтобы сравнить конверсию с 0.5%.
Проблема в том, что в некоторых случаях нам нужны ооооочень большие выборки, чтобы точно сказать, что конверсия больше целевой. Например, на миллион кликов пришлось 5100 покупок, и тогда 95% доверительный интервал – от 0.496% до 0.524%. А значит, конверсия может быть как 0.5%, так и чуть выше, и даже миллиона кликов мало, чтобы сказать точно.

Поэтому, чтобы запланировать размер выборки, надо заранее решить, насколько большой должна быть конверсия, чтобы мы её могли отличить от 0.5%. Например, можно решить, что разница меньше 0.1% для нас не существенна. Это значит, что нам нужно измерить конверсию с погрешностью не больше 0.1%, а погрешность обычно не больше 2 sqrt (k(1-k)/n). Мы можем подставить вместо k ту конверсию, которую мы ожидаем (например, 0.5%), и тогда у нас останется уравнение с одним неизвестным:
0.1% = 2 sqrt(0.5%(1-0.5%) / n)
497 viewsedited  09:44
Открыть/Комментировать
2021-03-22 10:16:06 Подъехал длиннопост на Хабре про мой первый проект в data science и эконометрические модели в PyTorch.
https://habr.com/ru/post/548100
477 views07:16
Открыть/Комментировать
2021-03-22 03:19:23
Довольно много важных вещей в нашей жизни можно представить в виде графов: социальные связи, язык, географические объекты, архитектуру Интернета и отдельных программ, взаимодействия веществ в организме и организмов в экосистемах. И из их графовости потенциально можно извлечь ценную информацию. И если вам когда-нибудь придётся это делать, вы уже немножко знаете, как (:

Ну а моя игра продолжается. Задавайте вопросы в комментариях, я буду отвечать на все из них, и каждую неделю по мотивам какого-нибудь из вопросов будет длиннопост.
464 viewsedited  00:19
Открыть/Комментировать
2021-03-22 03:12:50 Подход 3, комбинированный. Цель - учесть как и локальные фичи, так и положение в графе. Во-первых, заставим нейросетку из предыдущего подхода принимать на вход не только графовые эмбеддинги вершин "контекста", но и их "обычные" фичи из подхода 0. Во-вторых, заставим её на выходе предсказывать не только порядковый номер целевой вершины, но и её собственные локальные фичи. Ну а эмбеддинг, как и раньше, будем брать откуда-то из середины этой нейросети. Тут можно смело применять предобработку из NLP - например, фичи некоторых из вершин заменять на случайно выбранные или на специальную вершину [MASK], чтобы их эмбеддинги не могли смотреть сами на себя, и вынуждены были опираться на контекст. Собственно, и архитектуру сети можно взять из NLP, обучая transformer на небольших окрестностях, надёрганных из графа, и ограничивая attention всех или некоторых из его голов в соответствии с наличием рёбер или каких-то путей между парами вершин.

Все эти подходы я породил преимущественно из собственного воображения и из довольно беглого знакомства с материалами в сети. Но вообще-то графовые эмбеддинги - это тема обширная, едва ли не безграничная. Если хочется залезть поглубже, рекомендую почитать обзоры графовых эмбеддингов, например, этот: https://arxiv.org/abs/2012.08019. А ещё есть чудесный пост про связь между трансформерами и графовыми нейросетками: https://towardsdatascience.com/bca9f75412aa (картинку я стырил как раз оттуда).
417 viewsedited  00:12
Открыть/Комментировать
2021-03-22 03:12:50 Как вы помните, я обещал еженедельно выкладывать хотя бы один пост, отвечающий на вопросы в комментариях.
Сегодня отвечаю на вопрос из телеги: как можно заэмбеддить направленный граф с фичами в вершинах?

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

Подход 0, базовый. Игнорируем граф, и просто эмбеддим каждую вершину по отдельности. Имя и bio прогоняем через какие-то текстовые нейросетки, аватарку - через картиночную нейронку, на выходе получаем векторы фиксированной длины. И, допустим, конкатенируем их. Если результат получится слишком длинный, можно попробовать применить к нему алгоритм сокращения размерности. Дополнительно можно прикрепить число входящих и исходящих рёбер, т.е. число подписчиков и подписок. Это просто счётчики, не жалко. Готово, у нас есть хоть какое-то представление вершины. Пусть для вершины i такое представление равно f[i].

Подход 1, учёт непосредственных соседей. Мы можем обогатить представление вершины агрегированными представлениями её связей первого порядка. Обогащать будем, просто конкатенируя вектора. Агрегировать будем, например, усреднением. Будем отдельно агрегировать тех, кто подписан на юзера (children), и тех, на кого юзер подписан (parents). То есть представление вершины i можно теперь вычислить как f[i] & mean(f[childen(i)]) & mean(f[parents(i)]), где & - символ конкатенации. Такое представление выглядит уже весьма юзабельным.

Подход 2, чисто графовый. Забиваем на фичи, и строим эмбеддинги чисто по графу. Здесь проще всего провести аналогию с эмбеддингами слов: мы обучаем модель, чтобы по какому-то "контексту" вершины предсказывать её, подобно тому, как по тексту с пропуском алгоритмы типа word2vec и BERT предсказывают пропущенное слово. "Контекстом" будет какое-то случайное множество вершин, находящихся недалеко от данной - например, его можно насэмплить короткими случайными блужданиями из данной вершины. В случае с направленным графом контекста может быть два - для входящих и исходящих связей. Какая-нибудь небольшая нейронка в процессе предсказания вершины по контексту вполне может выучить её эмбеддинг, дающий полезную информацию о её положении в графе.
389 viewsedited  00:12
Открыть/Комментировать
2021-01-21 22:09:53
Ещё пару лет назад я закодил простенького бота t.me/the_watchman_bot, который ежедневно задаёт разнообразные вопросы для рефлексии и обсуждает их.

А позавчера я психанул и вставил в него сберовскую модель GPT-3 для генерации ответов, и теперь мне кажется, что бот в какие-то моменты умнее меня

На самом деле, конечно же, нет. Всё, что умеет делать GPT-3 (и любая другая языковая модель) - это слово за словом дописывать текст так, чтобы он был похож на те тексты, на которых модель обучалась. Но поскольку Сбер скормил в свою модель едва ли не половину Рунета, то и тексты она умеет выдавать местами прикольные и содержательные.

В феврале я собираюсь провести мастер-класс по современным языковым моделям для чайников: что такое BERT и GPT, как ими пользоваться, что полезного из них можно извлечь. На входе нужно будет только знание Python.

Дату семинара я сообщу чуть позже, а пока я очень прошу написать вас в комментах, на какие вопросы, связанные с языковыми моделями, вы хотели бы получить на вебинаре ответ.
260 views19:09
Открыть/Комментировать
2020-10-29 14:10:48 Я, кажется, ещё не рекомендовал вам https://seeing-theory.brown.edu, хотя своим студентам даю его уже не первый год.

Это залипательный сайтик, который объясняет основные идеи теории вероятности и статистики на куче визуальных и интерактивных примеров. Например, там можно посэмплить кучу маленьких выборок из какого-нибудь распределения, для каждой оценить 90% доверительный интервал для среднего, и увидеть, что около 90% из них действительно накрывают настоящее среднее.

Поэтому, если вы любите картинки и хотите вкурить/вспомнить, как теорвер вообще работает, этот сайтик - для вас.
1.1K views11:10
Открыть/Комментировать
2020-08-13 13:10:00 TL;DR: мы запускаем новый курс про машинное обучение (и в целом работу с данными) для продактов (а также маркетологов, предпринимателей, и других ребят скорее из бизнеса чем из технологий).

Кто такие "мы":
- платформа Mathshub в лице Айры (главного преподавателя) и Тани;
- школа прикладной математики и информатики МФТИ в лице Никиты;
- ваш покорный слуга.

В чём идея курса: рассказать и показать людям с менеджерскими и продуктовыми ролями про современные технологии анализа данных. Это поможет, во-первых, более качественно управлять любым продуктом за счёт использования простенькой статистики и автоматизации. А во-вторых, курс научит работать с data-intensive и AI-intensive продуктами: ставить корректные задачи технарям, искать нужные данные и готовые компоненты, верхнеуровнево понимать работу моделек и оценивать их качество на достаточно ранней стадии.

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

Возможно, вы помните, как зародился этот канал: контейнер для курса лекций, призванного проложить мостик между бизнесом и математикой. С того курса прошло 4 года, в бизнесе теперь рулят продакты, а в математике - дата-сатанисты. А наш курс помогает первым результативно и комфортно работать со вторыми.

Подробности и форма для записи:
https://maths-h.com/ru/ml4pms-course-mipt-2020?utm_term=david_post
Лайк, шер, репост.
701 views10:10
Открыть/Комментировать
2020-06-21 17:40:53 Этой зимой я попробовал влезть в соревнование по компьютерной лингвистике: угадывание гиперонимов для новых слов. Сложные модели у меня как-то не зашли, а вот прокачанный бейзлайн на word2vec и ближайших соседях неожиданно дал лучшее решение на глаголах.

В постике рассказываю, зачем вообще нужны эти гиперонимы, тезаурусы и таксономии, и показываю упрощённый питонячий код для их пополнения.
https://habr.com/ru/post/507228/
509 viewsedited  14:40
Открыть/Комментировать
2020-05-18 17:08:52 8. Авторы статьи умнички и самостоятельно находят косяки в своём чатботе. Самый неприятный из них - это, кажется, забывчивость, например, когда бот снова и снова задаёт один и тот же вопрос. Другая особенность бота - что он уворачивается от углубления в любой разговор, предлагая сменить тему. Что предлагает тему - это хорошо, но что уклоняется от ответов - не очень. И ещё одно слегка бесящее свойство этого и других ботов - когда у них нет фактического ответа, они не сознаются в этом, а выдумывают его.
9. Авторы статьи справедливо замечают, что качество человеческой оценки бота не определяется его перплексией на тестовых диалогах, ибо и тестовые диалоги могут быть разные, и для одной и той же модели разные алгоритмы декодирования дают разное качество.

Итак, Гугл свой чатботный ход сделал зимой, Фейсбук - весной. Ждём, кто выступит следующий (:
490 viewsedited  14:08
Открыть/Комментировать