Pull to refresh
0
0
Азат@Liugger

Аналитик данных

Send message

Задача решается интерактивным дашбордом. LLM тут не нужна. Странный кейс

Я что-то не понял а чем плохо, что Яндекс взял веса Квена и начал обучение с них, а не инициализировал их случайно?

Какие тут компетенции и опыт теряются?

Просто экономия компьюта за счет старта обучения из локального минимума из другого, но похожего пространства весов.

Самое сложное и требующее компетенций людей как раз остается и никуда не уходит

Подход с BERT topic показал плохие результаты с хорошей метрикой silhouette по довольно тривиальной причине: silhouette, как и остальные метрики кластеризации без разметки из Sklearn по своей природе оценивают качество кластеризации для кластеров сферической формы. HDBSCAN (как и DBSCAN и агломеративная кластеризация) порождают кластеры произвольной формы. То есть, используемая метрика не способна оценить кластеризацию HDBSCAN в общем случае.

Какой тут выход?

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

Спасибо за качественную статью, было интересно увидеть сравнение методов на реальных данных.

В статье показаны некоторые методы обработки текстов, чтобы вытянуть некоторые показатели - хорошо для новичка в текстовом анализе. Однако не хватает цели: анализ же никогда не делается для того чтобы что-то посчитать, показатели нужны для выводов.

Сам сталкивался с разведочным анализом текстов, но в моем случае было 2 цели:

1) облегчить работу data scientist, чтобы они на EDA время не тратили

2) ускорить понимание корпуса документов любому члену команды, кому резко потребовалось поработать с теми текстами, что уже попали мне в руки.

Исходя из вышеописанного я бы в набор тех методов, которые описаны в статье, добавил:

1) Расчет TF-IDF и оценку того какая доля уникальных слов покрывает объем всех слов по частоте и по TF-IDF. То есть на выходе получить значения вида: 20% уникальных слов покрывает 50% вхождений всех слов и 35% суммарного TF-IDF.

Так мы поймем насколько уникальны документы и насколько большой должен быть словарь для векторизации через BoW или TF-IDF

2) добавить ключевые слова для тем. Не только расчетом наиболее частотных, но и с помощью, либо легких алгоритмов YAKE, RAKE, либо путем поиска ближайших слов к центроиду тем.

Так мы поймем о чем наши тематики более точно

3) рассчитать все показатели не только для отдельных слов, но и для 2, 3 - грамм. Зачастую n-граммы помогают лучше понять о чем текст.

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

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

5) если есть категориальные переменные, то добавить оценку взаимной информации между темами и категориями. Так мы поймем что у нас есть реальная связь между темой текста и его категорией. Отсюда поймем надо ли тюнить наш алгоритм поиска тем или может действительно связи нет.

6) К LDA я бы добавил LSA (TF-IDF + SVD) и кластеризацию для поиска тематик, так как гадать над количеством тем не очень интересно. В свою очередь такой ручной поиск тематик через кластеризацию дает больше управления и позволяет сделать выводы о том насколько документы однородны. Например, если нас устраивает кластерищация через k-means, значит темы в корпусе документов более-менее четкие. Если же через k-means получается ерунда, но нас устроила клстеризация через (H)DBSCAN, значит темы в документах "расплывчатые" могут перетекать из одной в другую, приводя к тому, что есть множества документов, где каждый похож друг на друга, но все они либо без четкой границы, либо перетекают из темы в тему в рамках макротемы.

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

Еще классная идея у него это - стратегия штанги

Согласно такой стратегии заводил несколько YouTube каналов и прочувствовал положительного "черного лебедя" в виде выстрелившего ролика.

Полезное чтиво.

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

Как владелец такого же аппарата, на который перешел с samsung galaxy tab s7 plus, подтверждаю, что лучше бы оставил планшет.

Tab ultra C во владении порядка полутора лет. Думаю взять galaxy tab s9 ultra в ближайшее время.

Заметок от руки сделано много и на Самсунге, и на tab ultra C.

Я мехматов не заканчивал, по первому пункту сказать ничего не могу, но по оставшимся интересно было бы уточнить:

Ложные/локальные минимумы существующая проблема, с которой пытаются бороться разными методами (запуск гралиентного спуска с разными точками инициализации, например). То есть ML работает со сложными поверхностями целевой функции, а не только с выпуклыми. Не факт что делает это хорошо, но работает.

Связь может быть слабой/сильной: влияет ли факт наличия пьяного бомжа по средам вечером у входа в Пятёрочку на продажи хлеба? - влияет, кто-то передумает заходить в магазин за хлебом. Но каков вес влияния этого фактора на выручку хлебопроизводителя за месяц? Скорее всего очень низкий, настолько, что может затеряться в шуме. Вот в этом случае я бы и сказал, что связь слабая и на данных я бы вообще посчитал ее шумом. А если мы задумается что такое "шум" в данных, то поймем, что это как раз такие очень слабо влиющие факторы, которых просто много и выявить точную связь с ними мы не можем.

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

Спасибо за такую оценку!

Уточните, что имеется в виду под "требуется анализировать информацию в БД"?

Есть некая БД, SQL запросом вытягивается информация и ваш сервис должен проанализировать (выдать саммари, исходя из контекста) получаемую таблицу?

В этом сценарии подсказть о подходах не могу, так как мы сфокусированы на обработке текстов из баз знаний. Таблицы там тоже есть и мы пока еще выбираем подход к их обработке.

А так, чтобы целенаправленно обрабатывать таблицу из БД - такой варинт есть в планах, но сейчас поделится нечем.

Если я не правильно понял вопрос, то уточните.

Хорошая обзорная статья, полностью согласен с выводами. Я бы еще добавил, что специалисту по DS полезно было бы еще освоить операции линала в numpy - порой помогает писать значительно более быстрый код

Сложно понять, что вам не понравилось в "такой алгебре". Я не против складывать 1.5 + 0.5 землекопа. В общем-то и теплое с мягким, когда это два вектора, превращенные линейной комбинацией в главную компоненту с интерпретацией 'комфорт".

Приведите пример другой алгебры полезной в прикладном смысле, относительно data science (это ведь тема статьи)

Автор не врет, когда говорит что специалисту в Data science без знания таких концепций не стать настоящими профессионалом.

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

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

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

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

Если вы утверждаете, что "черные лебеди" прилетают и ломают модели, то очень хочется увидеть что были за события и насколько поломались модели.

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

На фоне того как ствтья погружает в проблему поиска решения, результат в виде линейной регрессии на коротких промежутках времени выглядит как Ока на фоне Lamborghini.

Очевидно, что любая функция аппроксимируется линейной и чем меньше промежуток, тем лучше будет работать линейное приближение.

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

Нейронки все же учитывают словоформы и синонимы. Так как не все синонимы на 100% схожи по смыслу. Более того они учитывают контекст, то есть несколько смыслов для одного слова.

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

Очевидно, что с sha256 такое не сделать.

Можно текст вообще в одно число закодировать, только коллизий много будет. Смысл не только в сжатии, а в возможности работать с этой сжатой информацией.

Я бы сказал, что исследователи изучали наименьшую возможную размерность пространства смыслов в которое можно вложить текст

Про экономику у вас очень сильное заявление про страну, которая за 3 года побила рекорд по количеству санкций и не стала напоминать Аргентину.

В праве я не особо понимаю.

А как обладатель дипломов всех 3 уровней образования (на 2021 год) и работающий в смежной с полученным образованием сфере скажу, что имеет смысл ограничить места, в том числе и платные, чтобы простимулировать рост числа именно тех специалистов, на которых есть востребованность.

Если бы я в 17 лет понимал, что не везде, куда думаю, могу поступить, может умнее бы выбирал специальность в ВУЗе.

Сам менеджер и экономист по образованию, работаю аналитиком данных. Надо бы идти на экономическое моделирование или бизнес-информатику

Я понял вашу мысль, и, наверное, соглашусь, что термин "расстояние" чрезмерно расширили, что сбивает с толку. Мне кажется неплохо бы смотрелись понятия "косинусное различие" (которое 1 - косинусная схожесть) или "различие махаланобиса". В общем, есть тут проблема, соглашусь.

Аналогию с графами понять - за рамками моих познаний, надеюсь что пока. Не профильная сфера для меня.

По вашим примерам, видно что понятие расстояния вы рассматриваете только как Евклидово расстояние, то есть расстояние в физическом смысле. В аналитике, по моему мнению, расстояние - это мера непохожести, чем больше расстояние, тем менее похожи объекты. И такое определение нужно чтобы отвечать на вопросв типа "дальше ли по смыслу слон от плитки, чем автомобиль от самолета" или "какой кандидат ближе всех к нашей вакансии". В таких ситуациях фмзического расстояния в метрах не существует, а евклидово не учитывает всех особенностей данных.

Косинусное сходство и косинусное расстояние это похожие штуки и похожи тем, что одно получается если из единицы вычесть второе.

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

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

Первые 4 года моего стажа математика была особо не нужна (только для оьучения новым алгоритмам и техникам), а потом устроился туда где очень много работы с текстами, тут всю работу можно свести к анализу положения векторов в пространстве или некоему анализу множеств слов. Какие-то базовые штуки типа корреляций в этом мире вообще отсутствуют, приходится что-то поинтереснее узнавать, типа взаимной информации.

Жутко интересно, но крайне мало информации именно по аналитике текстов и приходится постоянно придумывать эвристики. Для эвристик супер сложная математика не нужна, но, например, представлять чем евклидово расстояние от косинусного отличается и почему где-то лучше использовать одно, а где-то другое - надо.

Из чего-то сложного пригодилось понимание факторизации матриц, так как через него понимаешь как вообще представить слова в виде векторов, а отсюда вырастает 80% аналитики текстов.

Ну и уточню, что я не создаю модели машинного обучения, я анализирую тексты, чтобы помочь дата сатанистам и ml-инженерам лучше делать их работу: подобрать размер чанка для РАГа, понять можно ли создать простые эвристики релевантности текста, чтобы не создавать модели ранжирования или не нагружать гпу, используя LLM для классификации и т.п.

Интересная статья, занимаюсь примерно тем же, есть пара комментов:

1) Силуэт не подходит для оценки HDBSCAN, так как кластеры могут быть произвольной формы. Если есть какое-то поле, которое хоть как-то семантически разделяет ваши тексты (тема обращения, ваши бизнес направления или другое), то адекватным будет замерять взаимную информацию между этим полем и кластерами. Можно ещк нормировать ВИ на жнтропию такого поля, чтобы получить интерпретируемое значение. Чем больше ВИ, тем лучше кластеры, но если она равна энтропии поля, то повод задуматься.

2) вместо частотного анализа лучше использовать TF-IDF - очень сильный инструмент и порой дает карлинально другие результаты, в отличие от частотного. Ну и проблему очистки датасета от стоп-слов решает автоматически

3) ну и еще интересно глянуть на n-грамы. Иногда даже прикручивать описание с помощью LLM или ключевых слов не нужно.

И Вопрос:

До скольки снижали размерность UMAPом и какой метрикой?

Не часто прльзую SciPy в работе, но когда использую, то это либо работа связанная с распределниями (типа сравнить что лучше подойдёт под мои данные с помощью MLE), либо вычисление расстояний (cdist, pdist).

И если второе - узкая задачка, то забыть рассказать про первое в статье - это, на мой взгляд, серьезное упущение

1

Information

Rating
5,452-nd
Location
Красногорск, Москва и Московская обл., Россия
Date of birth
Registered
Activity