Pull to refresh
11
0
Михаил Атепаев @atepaevm

Любопытствующий

Send message

Как увеличить точность модели с 80% до 90%+ (мой опыт)

Reading time4 min
Views17K

Разберем способы поднять точность модели!

Привет, чемпион! Возможно, перед тобой сейчас стоит задача построить предиктивную модель, или ты просто фармишь Kaggle, и тебе не хватает идей, тогда эта статья будет тебе полезна!

Наверное, уже только ленивый не слышал про Data Science и то, как модели машинного обучения помогают прогнозировать будущее, но самое крутое в анализе данных, на мой взгляд, - это хакатоны! Будь-то Kaggle или локальные соревнования, везде примерно одна задача - получить точность выше, чем у других оппонентов (в идеале еще пригодную для продакшена модель). И тут возникает проблема...

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments4

Классификация признаков транзакций в моделях поведенческого скоринга

Reading time13 min
Views4.8K

На основании материалов хакатона AlfaBattle 2.0 в настоящей статье рассмотрены:

  подходы к классификации признаков транзакционных данных, применимость отдельных признаков под задачи предсказания потребительского поведения,

решение бизнес задачи  поведенческого скоринга - модели предсказания дефолта по кредитной карте на основании данных о транзакциях, предшествовавших выдаче.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments0

Инструменты OSINT: Социальные сети

Reading time3 min
Views29K
image

Privacy — это когда все знают кто ты, но не знают конкретно, что ты сейчас делаешь.
Anonymity — это когда никто не знает кто ты, но видят твои действия.

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

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

Search4Faces


Search4faces — сервис поиска людей в интернете по фотографии. Нейросетка находит нужного человека или очень на него похожего в течение нескольких секунд. Результатом является ссылка на профиль найденного человека в социальной сети vk.com или ok.ru, tiktok, clubhouse, instagram.com.

На текущий момент частично или полностью собраны 4 базы данных: аватарки Вконтакте и Одноклассники (всего лиц в базе: 280,781,743), фотографии профиля Вконтакте (всего лиц в базе: 1,109,563,766), аватарки пользователей Tiktok (всего лиц в базе: 125,443,334 ), аватарки Инстаграм (всего лиц в базе: 6,561,234), аватарки пользователей ClubHouse (всего лиц в базе: 4,594,014).
Читать дальше →
Total votes 43: ↑34 and ↓9+34
Comments19

Как мы создали рекомендательный сервис по подбору одежды на нейронных сетях

Reading time10 min
Views14K
image

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

Как и большинство современных IT-решений, можно сравнить разработку нашей системы со сборкой конструктора Lego, когда мы берем много маленьких деталек, инструкцию и создаем из этого готовую модель. Вот такую инструкцию: какие детали взять и как их применить для того, чтобы ваша GPU смогла подбирать похожие товары по фотографии, — вы и найдете в этой статье.

Из каких деталей построена наша система:

  • детектор и классификатор одежды, обуви и сумок на изображениях;
  • краулер, индексатор или модуль работы с электронными каталогами магазинов;
  • модуль поиска похожих изображений;
  • JSON-API для удобного взаимодействия с любым устройством и сервисом;
  • веб-интерфейс или мобильное приложение для просмотра результатов.

В конце статьи будут описаны все “грабли”, на которые мы наступили во время разработки и рекомендации, как их нейтрализовать.

Постановка задачи и создание рубрикатора


Задача и основной use-case системы звучит довольно просто и понятно:

  • пользователь подает на вход (например, посредством мобильного приложения) фотографию, на которой присутствуют предметы одежды и/или сумки и/или обувь;
  • система определяет (детектирует) все эти предметы;
  • находит к каждому из них максимально похожие (релевантные) товары в реальных интернет-магазинах;
  • выдает пользователю товары с возможностью перейти на конкретную страницу товара для покупки.

Говоря проще, цель нашей системы — ответить на знаменитый вопрос: “А у вас нет такого же, только с перламутровыми пуговицами?”
Читать дальше →
Total votes 36: ↑33 and ↓3+30
Comments12

Рекомендательные системы: проблемы и методы решения. Часть 1

Reading time14 min
Views28K

Привет! Я хочу рассказать вам о рекомендательных алгоритмах. Мы в Prequel создаем фильтры и эффекты для редактирования фото и видео. Создаем давно, и постепенно этих эффектов стало очень много. А с ними и пользовательского контента. Мы захотели помочь с выбором из этого многообразия, для чего нам и понадобилась система рекомендаций. Если масштабы вашей системы такие, что пользователям сложно в ней ориентироваться, возможно, что рекомендации могут помочь и вам.

Задуманный систем оказался слишком объемным для одной статьи, поэтому мы разбили его на две части. Перед вами первая, она посвящена постановке задачи и базовым методам решения. В этой части мы разберем коллаборативные модели от матричного разложения (на примере ALS) до neural collaborative filtering. Кроме того, будет небольшой обзор метрик и техник борьбы с проблемой холодного старта.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments4

Рекомендательные системы: проблемы и методы решения. Часть 2

Reading time15 min
Views17K

Привет! Меня зовут Екатерина Ванская, и я занимаюсь data science в компании Prequel. В этой статье я продолжу обзор рекомендательных алгоритмов, которым мы начали в предыдущем моем материале

(вот ссылка на первую часть).

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

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments6

Как за два месяца пройти путь от начинающего питониста до сертифицированного TensorFlow-разработчика

Reading time11 min
Views29K
Я всё ещё помню тот день, когда сдал выпускную работу в университет. Я тогда вздохнул с облегчением, так как это означало окончание бакалавриата. Но мной скоро овладела скука. Делать было нечего, мир был охвачен пандемией. Мне очень хотелось найти новое занятие, которое избавило бы меня от безделья.



В этом материале я хочу рассказать о том, как скука от самоизоляции помогла мне стать сертифицированным TensorFlow-разработчиком менее чем за два месяца. И это — несмотря на то, что на Python я раньше не программировал. Здесь я, кроме того, дам список ссылок на материалы, которые я использовал, осваивая новую для себя сферу знаний и готовясь к сертификации.
Читать дальше →
Total votes 24: ↑21 and ↓3+30
Comments11

Артикли в английском: безжалостная война правил и исключений

Reading time21 min
Views71K


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

В английском языке у существительных нет ни рода, ни падежа. Чтобы жизнь мёдом не казалась, мы должны уметь правильно использовать артикли. Они помогают понять конкретное ли это существительное или нет, исчисляемое или неисчисляемое, стоит ли оно в единственном или множественном числе. Проблема в том, что они непостоянны и могут меняться в зависимости от значения и контекста. Да и наличие исключений не упрощает нам жизнь.

Нет смысла писать ещё одну статью о базовых правилах употребления артиклей в английском. Сегодня я расскажу о правилах и о способах их нарушить.
Читать дальше →
Total votes 34: ↑32 and ↓2+38
Comments69

Про фразовые глаголы

Reading time7 min
Views63K
Фразовые глаголы английского языка гораздо проще, чем кажутся. Они работают точно так же, как в русском языке приставки. Выдающийся советский актёр Зиновий Гердт, узнав однажды о недостойном поступке, совершённом знакомым ему писателем, сказал: «Разрешите с вами раззнакомиться». Думаю, мало кто слышал в живой речи глагол «раззнакомиться». Но интуитивно всё равно понятно, что это противоположность «ПО-знакомиться».

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

Безответственные преподаватели рекомендуют значения фразовых глаголов «просто запоминать», не пытаясь понять их внутреннюю логику. Это порочная практика: фразовых глаголов только самых распространённых – тысячи. «Выучить» их принципиально невозможно. Вот, скажем, let – это «позволять, пускать». А фразовый глагол «let in on» означает «посвящать в тайну». Запомнить такое способен только человек, который понимает переносные значения частиц, образующих фразовые глаголы.

Если правильно усвоить эти переносные значения, можно начать понимать даже такие фразовые глаголы, с которыми сталкиваешься впервые. Знание нескольких принципов освобождает от необходимости знания многих фактов.
Читать дальше →
Total votes 88: ↑86 and ↓2+115
Comments157

Материалы продвинутого уровня по Питону

Reading time5 min
Views44K
PythonВ мире все примерно распределяется в соответствии с принципом Паретто. Меньшая часть — богатые, большая часть — бедные (читающий, ты входишь в золотой миллиард). Тоже касается и материалов о программировании. Порой очень сложно найти хоть что-нибудь не начального уровня.

После прочтения Dive into Python или подобной ей и ознакомления с документацией возникает вопрос, а что читать дальше? Можно обратиться к списку книг на python.org. Там есть раздел Advanced Books, но в нем всего лишь 6 книг (седьмая не выходила), и только одну я бы назвал по-настоящему стоящей.

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

Ниже собраны сложные материлы про Питон, его устройство и возможности. Все на английском (грех, не знать технический английский). Про Dive into Python я слукавил. Большинство приведенных материалов требуют хорошее знание Питона и наличие опыта программирования на нем.

Подробнее
Total votes 136: ↑133 and ↓3+130
Comments23

Нормализация текста в задачах распознавания речи

Reading time4 min
Views11K

При решении задач, связанных с распознаванием (Speech-To-Text) и генерацией (Text-To-Speech) речи важно, чтобы транскрипт соответствовал тому, что произнёс говорящий — то есть реально устной речи. Это означает, что прежде чем письменная речь станет нашим транскриптом, её нужно нормализовать.


Другими словами, текст нужно провести через несколько этапов:


  • Замена числа прописью: 1984 год -> тысяча девятьсот восемьдесят четвёртый год;
  • Расшифровка сокращений: 2 мин. ненависти -> две минуты ненависти;
  • Транскрипция латиницы: Orwell -> Оруэлл и т.д.

Normalization


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


Как вишенка на торте, мы решили выложить наш нормализатор на базе seq2seq в открытый доступ: ссылка на github. Он максимально прост в использовании и вызывается одним методом:


norm = Normalizer()
result = norm.norm_text('С 9 до 11 котики кушали whiskas')

>>> 'С девяти до одиннадцати котики кушали уискас'
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments8

Из разработчика в менеджеры и обратно

Reading time9 min
Views24K
Зимой 2012-го коллега предложил мне, С++ программисту с пятилетним стажем, написать первое приложение под Android. Ещё через год я начал руководить небольшой командой мобильных разработчиков, и с тех пор размеры моих команд стабильно росли. Но в прошлом году, после 2 лет руководства отделом мобильной разработки, я снова сдул пыль с любимой IDE.



Давайте расскажу, как было на той стороне, почему я вернулся в разработчики в возрасте 30+ (спойлер) и не жалею об этом.
Читать дальше →
Total votes 50: ↑48 and ↓2+61
Comments52

UML для разработчиков

Reading time5 min
Views77K
Интернет полон статей про UML, вы найдете сотни примеров для каждого вида диаграмм, и без проблем создадите свои, нотация не сложная. Но так ли уж необходимо тратить на это время? Наш богатый опыт говорит «Да». Если у вас в команде более 2 человек и проект от 3 месяцев, то уже имеет смысл отрисовать 2-3 вида диаграмм. В одной нашей команде более 30 человек, проект длительностью более 3 лет, и мы используем...2-3 вида диаграмм.

Нотация UML избыточна. С другой стороны она недостаточна для проектирования распределенных систем, и здесь нам помогает Archimate. В этой статье мы расскажем, что действительно полезно из всего этого многообразия, и рассмотрим на примере полный цикл создания диаграмм для проекта.
Читать дальше →
Total votes 17: ↑16 and ↓1+20
Comments76

Как сжать модель fastText в 100 раз

Reading time12 min
Views22K

Модель fastText — одно из самых эффективных векторных представлений слов для русского языка. Однако её прикладная польза страдает из-за внушительных (несколько гигабайт) размеров модели. В этой статье мы показываем, как можно уменьшить модель fastText с 2.7 гигабайт до 28 мегабайт, не слишком потеряв в её качестве (3-4%). Спойлер: квантизация и отбор признаков работают хорошо, а матричные разложения — не очень. Также мы публикуем пакет на Python для этого сжатия и примеры компактной модели для русских слов.


Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments4

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Date of birth
Registered
Activity

Specialization

Data Scientist
Senior