Введение в искусственный интеллект
331 subscribers
63 photos
2 videos
170 links
Просто об искусственном интеллекте и его возможностях. Помогу разобраться в базовых понятиях и создать собственную нейросеть. Рассказываю, что у ИИ под кожей.
Елена Михалькова
Download Telegram
Анонс постов на январь 2024
Когда холода - не помеха, и чернила не застыли

👯2 Почему анализ данных ходит рука об руку с машинным обучением
🕵4 Information retrieval. Ищем документ в стоге терабайтов
🤯7 Да кто такой этот ваш эмбеддинг? (На последнем интенсиве я попыталась объяснить, но не успела lol)
👩‍🚀9 Лопаем информационный пузырь - как ML приводит к появлению вакуума
🥸11 Новые имена: Илья Суцкевер
🧝‍♀️14 Старые имена: Ада Лавлейс
🎰16 Как работает word2vec
📜18 Как работает doc2vec
🥦21 Системы рекомендации - они скучные, но полезные
🤖23 Трансформеры уже здесь
🧛‍♀️25 Новые имена: Татьяна Шаврина
👩‍✈28 Старые имена: Грейс Хоппер
👯‍♂️👯‍♀️30 Dalle, Midjourney, Stable Diffusion, Kandinsky

ПС. Цифра перед названием темы - это дата, когда пост выйдет. Но обычно я пишу по ночам, так что чаще всего технически пост выходит на следующий день. После 24:00 - когда туфелька превращается в тыкву 🥭
("Это же манго" - да, тыкву я не очень люблю, а вот манго...)
4
Итоги года (2023)

В этом году я запустила тг-канал, ура-ура-ура! 🎆
Пост намбер уан вышел 14 июня, набрал 234 просмотра. А 15 августа я представила вам админа Артема.
Всего в канале было 118 сообщений. Из них 26 кружочков. Кружочки стабильно набирают хорошие просмотры, так что в новом году будем давать больше динамики и визуала 👀
Спасибо Артему, Гузели, Жене и Саше за то, что поучаствовали в кружочках! Спасибо Леше и Ильясу за то, что держали камеру! Love you, guys 🤩
Самый популярный пост набрал 395 просмотров - это пост с объявлением про регистрацию на наш последний интенсив. Из чего делаю вывод, что интенсивы нравятся - будем продолжать.
Всего интенсивов провели 2, что равно 32 академическим часам (или 16 парам). На них побывали 94 человека. Около 50 получат удостоверения о повышении квалификации.
Также мы выпустили для вас 7 Colab ноутбуков с кодом - ищите их по хэштегу #notebook . В них разбор кода для базы.

Еще будет кружочек с новогодним поздравлением - зря я что ли накрутила кудри?
🔥4
Ну и вот пикча с нашими “акциями” - так подрос каналец за осень. Будем расти еще, пока растется. Ведь еще не все знают, как создать Скайнет и, главное, как его не создавать 😁
🔥5
Ура! С Новым годом!
🎄3
This media is not supported in your browser
VIEW IN TELEGRAM
7🎉2❤‍🔥1
(В стакане - чай, если что 🥴)
This media is not supported in your browser
VIEW IN TELEGRAM
🍾10😁2🎄1
Почему анализ данных ходит рука об руку с машинным обучением
Начинаю новый год с эссе 😊

В связи с искусственным интеллектом, что раздается сейчас из утюгов чаще всего? ИМХО, это “нейросети” и “ChatGPT”. Но если послушать утюг чуть подольше (про утюг - это метафора; не слушайте его, особенно если он включен), то в скором времени прозвучат слова "машинное обучение" (машобуч) и "анализ данных". У нас в ТюмГУ анализ данных часто предваряет погружение в ИИ, особенно в машобуч. А все потому, что… А теперь начну издалека, а то как-то неинтересно выкладывать всю подноготную сразу. Да будет саспенс!
Машобуч представляет собой область ИИ, которая строится на одном базовом принципе: сначала тренировка, потом тестирование. На вход алгоритма поступают размеченные данные, то есть таблица с признаками каких-то объектов, представленными в виде чисел (иксы), и таблица с лейблами (классом или параметром) этих же объектов, которые нам нужно научиться автоматически предсказывать (игреки). Например, есть три вида ирисов, и нужно научиться предсказывать их вид по четырем признакам (длина и ширина чашелистика, длина и ширина лепестка). На тренировочном наборе учимся, на тестовом - проверяем, как научились (поэтому лучше, когда тренировочный и тестовый наборы не пересекаются). Что при этом выучивает алгоритм? Статистически значимые признаки и как они влияют на принадлежность к классу, величину искомого параметра и т.п. В статистике иксы, то есть измеренные признаки называются независимыми переменными, а игрек - зависимой переменной. При этом статисты всегда замечают, что выбор зависимых и независимых переменных вовсе не означает, что на деле независимая влияет на зависимую. Влияние - это наша гипотеза, это то, как мы смоделировали задачу.
Зависимость игрека от икса бывает двух видов:
👆 влияет положительно, то есть с увеличением икса, растет игрек,
влияет отрицательно - с уменьшением икса, растет игрек.
Чем меньше прирост, тем ниже влияние.
Как измерить влияние? В машобуче используется линейная регрессия - мы строим такую прямую, которая наиболее близко проходит ко всем точкам, заданным нашими иксами и игреками. (Да и не только прямая - можно ведь и кривую построить. Методов много, но принцип один - пройти близко к точкам, чтобы научиться предсказывать игрек.) Но ведь можно и не строить, а рассчитать вручную, судя по данным.
В статистике есть множество методов, чтобы рассчитать зависимость. Например, в этом канале мы разбирали линейную корреляцию. Вот тут и возникает анализ данных. Это набор методов (а не вся статистика, которая очень обширна), которые помогают проанализировать данные, прежде чем подбирать алгоритм машобуча. Или вообще обойтись без него, т.к. задача решается статистикой. Или как-то обработать данные, прежде чем совать их в машобуч. Например, исследовать, есть ли в данных иксы, которые дублируют друг друга, зависят друг от друга, т.к. эти факторы мешают регрессионному анализу.
Поэтому курсы по датасаенсу имеет смысл брать вместе с или даже лучше перед машобучем.

#эссеиистика
🙏6🕊3👍2
Information retrieval. Ищем документ в стоге терабайтов
И запоздалое новогоднее поздравление

Когда записывала поздравительный кружочек, с удивлением обнаружила, что мне не особо есть с чем поздравить, кроме наступления нового года. И пожелать особо нечего. Я походила, покуксилась пару дней, и у меня возникли мысли 🤩
Коллега скинул такой пост: “Лауреат Нобелевской премии Кристофер Писсаридес посоветовал абитуриентам не стремиться изучать естественные науки, технические дисциплины и математику. Он считает, что в будущем будут гораздо выше цениться «эмпатические» и творческие навыки, которые помогут процветать в мире доминирования искусственного интеллекта”. Я бы смягчила формулировку: не “не стремиться изучать” - надо балансировать. Без инженерии нет ответа на вопрос “как?”, без творчества - “что?” и “зачем?”.
Так вот, мои поздравления: в 2023 г., благодаря развитию ИИ, человечество сделало гигантский шаг к новому качеству жизни - все больше возможностей работать на приятной и интересной работе. (Понятно, что в 2022 тоже были шаги. И до этого были. Но 2023 это прям бум.) А я пожелаю нам всем не прошляпить этот шанс как минимум в 2024 г. В истории было много кейсов откатывания цивилизаций обратно. Вот Хеттская цивилизация, накопили себе благ, культуру, а потом все это слили 😢
ИИ - это не про консервативное поведение. Это про развитие и прогресс ради облегчения рутинных умственных задач. Помогает он также решить и очень сложные задачи, в которых много вводных, так что свести их все в одно решение на практике невозможно.
Исчезнет ли при этом надобность в человеке? Нет, конечно. О чьем прогрессе и развитии и всем остальном мы говорим в связи с ИИ? Только о нашем с вами, человеческом. Просто наша работа будет более творческой и “эмпатической”, как в цитате выше. Вот это и есть мое пожелание на 2024: не испугаться ИИ, не стремиться откатиться в зону комфорта, где было скучно, но очень понятно. Ну и, конечно, желаю творческих и эмпатических успехов!
А теперь про information retrieval a.k.a. “информационный поиск”. Это как раз и есть пример задачи, которую без ИИ не решить. Ну, точнее, решить, но на уровне 1990-х гг. Задача простая: найти нужные файлы, тексты, документы и вообще любую информацию по текстовому запросу. Вот нужна нам песня про зайцев - берем и… Просматриваем весь Интернет в поисках всех-всех-всех сайтов, где есть строчка “песня про зайцев”? А если человек напишет "Песня" (с большой буквы) или "песни"? Найти все варианты написания займет дни, а, может, и недели. И, конечно, вместо того, чтобы объяснять словами, как это делается на практике, я решила отмахнуться ноутбучеком с кодом 🎉
Жмякайте ▶️ и наблюдайте магию, которая сидит в каждом маленьком и большом поисковике.

#notebook #эссеиистика #база
👍52🏆1
Да кто такой этот ваш эмбеддинг?
Кто эмбеддинги не обучал, тот.. я. Как-то не довелось. Чисто из интереса разбирала, как они делаются, но в перспективе обязательно запилю ноутбук с кодом.

Если жмякали мой прошлый ноутбучек (который с песнями про любовь), то знаете, что искать текст можно не просто по точному совпадению со словами в поисковом запросе, но и по смыслу. А кто не жмякал, дожмякайте до семантических векторов (они в конце). Семантические вектора в ноутбуке и есть эмбеддинги. А пока вы решаете, открывать ли ноутбучек или читать дальше, поясню за термин “эмбеддинг”.
Происходит от английского embedding (имбЕдинг), который в свою очередь происходит от глагола to embed “встраивать, вставлять, внедрять, помещать внутрь”. Это технология векторизации совместно встречающихся “чего-нибудь”, например, слов. А также результат этой векторизации в виде набора векторов (все вместе они образуют модель). Вектор можно представить как точку в многомерном пространстве. Технология создания эмбеддингов (кстати, она тоже является обучением модели - я имею в виду обучение модели машинного обучения) помещает точки в этом пространстве так, чтобы они образовывали значимые скопления, а не просто случайное месиво. Вот здесь можно посмотреть, нажав на 20, 100 или 500, как, прочитав 20, 100 или 500 коротких текстов, содержащих слова типа “яблоко”, “еда” и “молоко”, алгоритм уточняет положение точек, обозначающих каждое из этих слов, в двумерной плоскости. В итоге слова, более близкие по смыслу, как бы притягиваются друг к другу.
Как происходит сия магия? Алгоритм смотрит контекст каждого слова и немного подталкивает точку к тем точкам-словам, которые попались у нее в контексте.
Как это делается на практике? Сначала формируются пары слов, попавших в контекст к каждому слову в словаре. Затем они превращаются в вектора по принципу one-hot encoding (ван хот энкОдинг). Предположим, у нас есть словарь из трех слов: “яблоко”, “еда”, “молоко”. One-hot вектор слова “яблоко” будет [1, 0, 0]; “еда” - [0, 1, 0]; “молоко” - [0, 0, 1]. Затем берем первый элемент пары и помещаем его в таблицу иксов (x_train). Это теперь независимая переменная. А второй элемент помещаем в игреки (y_train). Это зависимая переменная, ее нужно предсказать. То есть смысл обучения заключается в том, чтобы по одному слову предсказать, какое другое слово попалось ему в контексте = предсказать второй элемент контекстной пары. Заниматься предсказаниями и обучениями будет, конечно же, нейросеть. Обычно это самая простенькая сеть, без изысков.
Что еще можно эмбедить, кроме коротких текстов? Изображения, аудиофайлы, целые документы. Главное, чтобы было известно реальное “осмысленное” расстояние от одного объекта до другого (например, в сверточных нейронных сетях это могут быть части картинки) и чтобы задача стояла на сопоставление, сравнение объектов внутри большой коллекции.
Мы с Kandinsky перерисовали меня в стиле аниме-Снегурочки. Принцип эмбеддингов работает так: стираем (удаляем) часть картинки и просим по оставшимся частям дорисовать пустоты. Правда, она и в неудаленные части картинки лезет. Через пару-тройку итераций мое аниме-лицо уже сильно напоминало дораму. См. новую аву этого канала.

ПС. Я прочитала много постов от fellow-bloggers (собратьев-блогеров), пишущих про ИИ, об итогах 2023 года и решила, что вот этот пост мне наиболее близок по интересам. Рэкомендую!

#база
👍5
Лопаем информационный пузырь. Как ML приводит к появлению вакуума
Под ML я имею в виду machine learning (машинное обучение).

Был у меня недавно пост про самодиагностику при помощи ChatGPT. Так вот там среди рисков я упоминаю, что от диагностики мы ждем один правильный диагноз. А языковые модели типа ChatGPT как раз и дают один самый вероятный вариант ответа на запрос. Какой вариант был вторым, третьим.. стопятидесятым мы узнать не можем из-за дизайна технологии.
Хотя ковырнуть последний слой нейросети, которая выдает следующее слово (точнее, она выдает токен, но это отдельная история), технически вполне возможно.

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

Что окажется в пузыре языковой модели примерно всегда?
Запрещеночка, конечно. Тексты, которые нарушают чьи-то права, и тексты, которые склоняют к противоправным действиям. Если комьюнити задетектит модель, которая нарушает законодательство, то, скорее всего, модель “зачистят” 🙂. Ну или, может, появится такой dark AI в даркнете. Но можно предположить, что есть такие темы, которые косвенно связаны с противоправным контентом, не являются популярными или еще по каким-то причинам никогда не станут самым вероятным ответом. Вопрос в том, как это верифицировать.

А какой незапрещенный контент имеет высокую вероятность попасть в пузырь?

Пока до повсеместного использования моделей типа ChatGPT еще далеко, мы уже сталкиваемся с пузырями в системах информационного поиска и в рекомендательных системах: поисковые запросы, рекомендации в социальных сетях, хостингах и на маркетплейсах, ленты новостей. В каждом отдельном случае они оставляют каждого из нас без доступа к лавине информации, которую нам не переварить - за это им спасибо. Но в случае поисковых систем бОльшая часть информации, которая попадает в открытый Интернет, вообще никогда не дойдет до случайного пользователя. Как я люблю говаривать: не создавайте сайты в 21 веке - их никто не увидит, кроме тех, кого вы пригласили адресно. В приложениях, типа хостингов, маркетплейсов и соцсетей алгоритмы настроены так, чтобы каждое объявление или пост увидели хоть сколько-нибудь посетителей платформы. Но если от них не будет отклика, то дальше контент к потенциальному потребителю уже не идет. Кто станет первым потребителем, решают алгоритмы, на которые мы мало влияем. (SMM-специалисты, по крайней мере, пытаются 🤗)

Как лопнуть информационный пузырь?

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

#эссеиистика
👍5
Новые имена: Илья Суцкевер

В этом месяце несколько постов я решила посвятить персоналиям в ИИ. Вчера в передаче на канале 2х2 услышала, что, благодаря Интернету и вообще быстрому обмену информацией, в 21 в. ностальгия и ретроволны случаются чаще, чем в 20-м. В доказательство авторы привели растущее число ремейков. А я вот все чаще думаю, что, если раньше ученых и изобретателей, которые прославились на весь мир, были единицы, то сегодня слава - это что-то вроде вспышки, которая у некоторых бывает раз в жизни. Например, имена нобелевских лауреатов - это уже не то, что все знают, а задачка на эрудицию для знатоков, играющих в "Что? Где? Когда?". А современные крупные ученые - это лидеры мнений, герои новостей, которые постоянно сменяются.
Есть такой мемный диалог:
- How old were you when you learned that..?
- Today years old.
- Сколько вам было лет, когда вы узнали, что..?
- Да вот только что буквально узнал(-а).

18 ноября 2023 я узнала, что компанию OpenAI в 2015 г. основал уроженец Нижнего Новгорода Илья Суцкевер - вместе с еще десятком людей, среди которых были Илон Маск (про него я знала) и Сэм Альтман (а про него тоже не знала; кстати, авторы Википедии считают, что он Олтман). В 90-е он вместе с родителями переехал в Израиль, в 2000-е - в Канаду. В Университете Торонто его научруком был Джеффри Хинтон, “один из основателей глубокого обучения”. В 2010-х создал свою компанию, которую потом перекупили в Google. А уже из Google попал в команду основателей OpenAI. Сейчас ему примерно 37, на два года младше меня. Судя по фоткам, в более юном возрасте Илья Ефимович был довольно волосат 😁
Что же случилось 18.11.2023? Уроженец Нижнего Новгорода Илья Ефимович Суцкевер уволил своего коллегу и со-основателя OpenAI Сэма Альтмана (a.k.a. Олтмана) за то, что… И вот тут версии разнятся. Одни говорят, что Суцкевер и другие топы видели для компании более научное будущее. А Альтман настаивал на коммерческом. Вторая версия: Альтман и Ко. стоят на грани изобретения AGI (ИИ, равного человеческому) и даже, возможно, ASI, суперинтеллекта, который может быть непредсказуемо опасным, если его использовать во зло.
Ну, не то чтобы уволил… Он был тем, кто позвонил и сообщил решение борда (совета директоров). Потом, конечно, часть сотрудников OpenAI ушла за Альтманом, историю откатили назад и всех приняли обратно в компанию. Вполне возможно, этому сюжету Голливуд посвятит фильм. Что-то вроде ремейка “Социальной сети”.
Итак, какую мораль можно извлечь из этой биографии? Или, как стать героем первой полосы или голливудского фильма?
1⃣ Получить высшее в хорошем сильном вузе. Да, есть исключения вроде Стива Джобса - он всего лишь рос в Кремниевой долине и не закончил университет Лиги плюща.
2⃣ Быть учеником сильного учителя - этот нарратив будет жить вечно.
3⃣ Верить в силу инноваций. В 2013 г., когда Суцкевер основал DNNresearch Inc., эта тема еще только становилась хайповой.
4⃣ Сделать что-то такое громкое, но очень таинственное, и хранить секрет с очень угрюмым лицом. Так все-таки создали они там ASI или нет?
Хотя эти секреты, скорее всего, просто ошибка выжившего. Хотите, чтобы про вас снял кино Голливуд? Не ждите чуда, снимайте сами. Завтра мы уже и не вспомним, кто такой Илья Суцкевер. Может, и Голливуд не вспомнит.

#эссеиистика
👍4
Вот что время делает с директорами OpenAI. Про Сэма Альтмана еще одна новость недавно была. Но это вы уж сами погуглите 😁
🤣4😱1
Старые имена: Ада Лавлейс

Интересный факт: слово “ловелас” по происхождению аналогично “казанова” - это фамилия человека, прославившегося своими любовными похождениями. Правда, в отличие от Джакомо Казановы сэр Роберт Ловелас был персонажем романа “Кларисса” (18 в.), а не исторической личностью. По-английски его фамилия звучит Лавлейс (Lovelace), и эта фамилия вполне себе реальная, а не выдуманная.
Продолжаю тему ловеласов. В начале 19 века в Англии жил вполне себе реальный похититель женских сердец поэт Джордж Гордон Байрон. Кстати, это время считается довольно свободным в истории чопорной Англии. Например, светские девушки стриглись под мальчика и ходили на свидания. А жена Байрона вообще с ним развелась, т.к., во-первых, надоел и, во-вторых, он не нравился ее маме.
После эпохи разгуляя наступила эпоха королевы Виктории (Викторианская эпоха), которая вернула дворянству и буржуазии христианскую мораль и строгие нормы этикета. Августа Ада Байрон, дочь поэта Байрона, воспитывалась в очень строгих условиях - ей не особо разрешали находиться в обществе и еще она много болела. Зато увлекалась математикой и другими науками. Когда ее в 17 лет представили ко двору, она познакомилась с Чарльзом Беббиджем, математиком, который проектировал разные вычислительные машины и создал прообраз ЭВМ (правда, только в чертежах).
Чтобы не думать о деньгах и замужестве, в возрасте 20 лет Ада вышла замуж за Уильяма Кинга, который вскоре унаследовал титул лорда Лавлейса, и родила троих детей, что не помешало ей делать научную карьеру (вот я аналогично: в первом декрете защитила кандидатскую диссертацию по лингвистике, во втором - магистерскую по информатике, а в третьем издала первую статью за рубежом; потому что, когда из тебя вылазит другой человек, то какое-то время тебя все жалеют и стараются беспокоить как можно меньше - а для науки тишина и спокойствие, по-моему, главное). Апогеем этой карьеры считается создание первой в мире компьютерной программы, которая, как предполагала Ада, должна быть запущена на вычислительной машине Чарльза Беббиджа. Программа (алгоритм) вычисляла числа Бернулли и была комментарием к переводу другого текста. Также Ада впервые ввела понятия “цикл” и “рабочая ячейка”.
К сожалению, Ада Лавлейс прожила всего 36 лет. На мой взгляд, ее история - это пример того, как можно быть пионером в науке и инженерии, будучи дочерью поэта, “варя борщи” и только воображая, каким будет первый компьютер через примерно 100 лет. Да, были смягчающие факторы. Например, ее мама наняла для дочери очень хороших учителей, сама любила математику и поощряла увлечения наукой. При дворе Ада познакомилась со многими выдающимися людьми, помимо Бэббиджа. В богатой семье Лавлейсов за детьми помогали ухаживать няни, а борщ варила кухарка. Но Ада для ее времени такая одна. Значит, не так уж и легко было совмещать даже богатым леди. И она смогла найти свое призвание и выразить себя. В общем, стереотипы и страх быть непринятым (особенно в среде высоколобых айтишников) - это, конечно, сильно демотивирующие факторы. Но если бы все в жизни давалось легко, то мы бы ничего высоко и не ценили. Так что не сдавайтесь, если только начинаете путь в айти!

#эссеиистика
11👍1
Как работает word2vec

Возвращаюсь к вопросу про эмбеддинги и word2vec, который, как оказалось, не достаточно понимаю сама, чтобы объяснить простыми словами. А про word2vec (ворд-ту-век) надо знать любому уважающему себя компьютерному лингвисту. Иначе его не примут в комьюнити и зачислят в ведущие аналитики данных в каком-нибудь “Строительном дворе”. Это я так намекаю, что в ИТ есть свои сообщества, которые свысока смотрят на другие сообщества. На меня ведущие аналитики смотрят свысока, если что. 😁
В этот раз я решила снова сделать экскурс в историю.
2013 год выдался довольно продуктивным для Томаша Миколова, который недавно из Microsoft Research перешел в Google. В продолжение своей докторской диссертации “Statistical Language Models Based on Neural Networks”, которую в 2012 г. защитил в Техническом университете Брно (Чехия), он выпустил 39 (если считать по Google Scholar) статей и препринтов на тему репрезентаций значений слов. 39 - вот это самопродвижение! Среди этого калейдоскопа, конечно, есть и проходные работы, но есть и те, которые заложили основы дистрибутивной семантики.
Начну (издалека 🙂) с того, что в докторской диссертации Миколова самой важной для его концепции работой можно считать статью исследователей из Университета Монреаля (Канада) “A Neural Probabilistic Language Model”, вышедшую в 2003 году. Коллектив авторов, включая Йошуа Бенджио (Yoshua Bengio), который стоит первым в списке авторов и, судя по другим его публикациям, внес наиболее значимый вклад, изложили концепцию “distributed representation for words” - распределенных репрезентаций слов. Суть ее заключалась в том, чтобы у семантически схожих слов были схожие вектора (“similar” words are expected to have a similar feature vector). Например, у собаки и пса вектора были бы более похожими, чем у собаки и кота. Статья эта вышла в знаменитом опенсурсном и бесплатном онлайн-журнале “Journal of Machine Learning Research”. Недостаток этой статьи для именно лингвистов заключался в том, что совершенно непонятно было, как использовать это на практике. В качестве результата авторы представили данные по перплексности (perplexity) модели, то есть ее способности успешно догадываться, какое слово было пропущено в контексте. А в те годы еще никто толком и не понимал, зачем нужна эта ваша перплексность. Но все чуяли грядущие перемены.
И вот, спустя 10 лет, в 2013 году на воркшопе с нечитабельным названием ICLR (International Conference on Learning Representations), который на тот момент проводился только второй раз, состоялся доклад Миколова "Эффективная оценка репрезентаций слов в векторном пространстве" (Efficient Estimation of Word Representations in Vector Space). В статье по итогам воркшопа прозвучала вот такая фраза: вектор слова “король” минус вектор слова “человек” плюс вектор слова “женщина” дает вектор, наиболее близким к которому является вектор слова “королева”. После этого мир не был прежним. Машина дистрибутивной семантики запустилась на полную мощь, и мы с вами имеем переводчики, которые переводят наравне с человеком, и чат-боты, которые ошибаются в диагнозе только в 10% случаев. И в этой же статье была ссылка на программу, которая называется word2vec (написана на языке программирования C) и позволяет обучать модели и рассчитывать семантические вектора слов.

Так как же работает word2vec?
Собираем корпус текстов.
Делим корпус на пары слов, которые стоят близко друг к другу.
Левое слово в паре это наш икс, по нему мы будем предсказывать правое слово.
Берем неглубокую (shallow) нейросеть, которая учится предсказывать правое слово по левому.
Берем полученные веса (коэффициенты) нейронки - это наша модель и одновременно те самые вектора, которые будут стоять близко в многомерном пространстве, если слова, похожи семантически.

А тема следующего поста: как сделать то же самое с документами, или как продолжилась карьера Томаша Миколова.

#эссеиистика
👍4🗿3
Интересный факт: при подаче статьи на ICLR Миколов и Ко. получили очень негативные отзывы, но статья все равно прошла. Видимо, воркшоп, который шел только второй год, был такой маленький, что туда приняли почти что всех. Отзывы рецензентов на статью Миколова можно почитать вот здесь.
🗿21
Как работает doc2vec
Этот пост будет непонятно читать, если не знаете, что такое вектор и word2vec. Прочитать про них можно у меня вот тут и тут.

Вектор отдельного слова в алгоритме word2vec имеет одинаковую длину с векторами всех других слов. Поэтому кладем их, как ирисы Фишера, у которых по четыре параметра, в машинный классификатор, запускаем и наблюдаем магию. Но что делать, если ваша задача требует векторизовать целый текст? Тексты-то бывают разной длины. Положим, у вас есть две тысячи твитов, и вы хотите поделить их на негативные и позитивные.
Решение “в лоб” (brute force, "брут форс", грубой силой) это сшить вектора каждого слова в тексте друг с другом в один длинный вектор. Но тогда длина итогового вектора для каждого текста будет зависеть от количества слов в этом тексте. То есть вектора текстов будут иметь разную длину, а машинлернинг классифаер требует одинаковую.
Есть такой вариант решения проблемы: padding (паддинг). Добавляем в вектора рад чисел таким образом, чтобы вектора стали одинаковой длины. Самый простой вариант паддинга: возьмем длину самого длинного вектора текста, и к векторам всех остальных текстов с конца добавим нули, чтобы их длины сравнялись. Получится что-то вроде:
👉 Вектор самого длинного текста: [1 2 3 3 2 1 2 3 1]
🤜 Вектор текста покороче: [1 3 2 2 3 1 0 0 0]. Последние три нуля - это паддинги.
Минус такого метода в том, что паддинги никакой информации о тексте не несут, а алгоритм будет придавать важность тому, какое слово оказалось на какой позиции в тексте. В русском языке с его гибким порядком слов на разных местах в предложении могут оказаться любые части речи и члены предложения.
Другой вариант “в лоб”: сложить вектора всех слов в тексте. Например, для текста из трех слов с векторами [1 2 3], [3 2 1], [2 3 1] результатом будет вектор [6 7 5]. Еще можно взять среднее от суммы. Тогда получится [2 2.3 1.6]. При таком подходе теряется уникальное значение каждого слова. Вот положим пусть самое первое число в векторе выражает что-то вроде “цвет”. Пусть в районе 0 будет “зеленый”, а в районе 3 “красный”. Их сумма (0+3=3) даст нам снова “красный”, а среднее (3/2=1.5) вообще какой-то случайный цвет, оказавшийся в этом диапазоне, например, “оранжевый”. Тут надежда только на те эмбеддинги, у которых чем выше число, тем сильнее проявлена какая-то семантика. К сожалению, вытянуть семантику из эмбеддинга невозможно. Что стоит за числами в матрице word2vec вычислить невозможно. Хотя есть такое направление исследований, и оно делает относительные успехи. Но это тема отдельного поста.
А можно (ух ты, я подобралась к теме поста!) взять прям сам word2vec и модифицировать его так, чтобы он создал вектор целого текста длиною с вектор слова. Как это сделать? Напоминаю, что в word2vec используются пары слов: по левому предсказываем правое. Во время предсказания в нейронной сети уточняются коэффициенты логистической регрессии. Вместе эти коэффициенты образуют матрицу эмбеддингов. Так вот, берем создаем вектор текста с какими-то случайными коэффициентами. А теперь по всему тексту пытаемся предсказать каждое слово, которое в него входит. При этом используем word2vec эмбеддинг этого слова. Т.е. при помощи вектора каждого слова уточняем коэффициенты в векторе всего текста. Кстати, эмбеддинг текста можно не привязывать по длине к эмбеддингам слов.
Когда Томаш Миколов представил миру word2vec, он довольно сразу сообщил о намерении создать doc2vec. Статья вышла по итогам Международной конференции по машинному обучению (ICML - еще одна малочитаемая аббревиатура). Первый автор в статье - вьетнамец Куок Ли. Как-нибудь напишу о нем отдельно.
Кстати, подача статей на ICML-2024 открыта.

#эссеиистика #база
🔥2
Биг Брозер Системы рекомендации ар вотчинг ю

Однажды одна женщина начала получать в одной запрещенной соцсети очень странную рекламу: витамины для беременных, товары для новорожденных и игрушки. Оказалось, она забыла зайти в приложение для отслеживания цикла и отметиться там. Приложение решило, что она беременна, и.. отослало эту инфу в соцсеть, которая закидала ее соответствующей рекламой. Случилось это в ноябре 2019 г.
В другой запрещенной соцсети, которая публикует короткие посты, по этому поводу разгорелся скандал. Где в лицензионном соглашении мы разрешаем приложениям собирать и распространять наши персональные данные? Никто же соглашения не читает! Да их и не возможно читать - они слишком длинные! А если я не на все согласна, то персональные условия я ведь все равно не получу! Придется отказаться от приложения? А если приложение будет собирать данные втихаря? В общем началась большая общественная дискуссия. В 2021 г. в iOS 14.5 появилась фича: можно попросить приложение не отслеживать ваши действия. Т.е. Apple по вашему желанию блокирует запросы от приложения о вашей активности в устройстве. Еще вы, наверно, замечали, как при установке приложений появляются сообщения со списком данных на устройстве, к которым приложение просит доступ - чтобы по лицензионному соглашению не шерудить. И все эти предосторожности не только, чтобы защититься от хацкеров и спецслужб, а еще и скрыться от назойливых систем рекомендации, для которых наше внимание - это лакомый кусочек.
Вот ведь как работает Интернет-маркетинг.. Сначала никому не известный блогер (например я) или предприниматель создает блог или сайт или еще что-нибудь и выкладывает контент. Потом он с грустью обнаруживает, что в Интернете уже лежит слишком много контента, чтобы его кто-то почитал или посмотрел. Зовем одноклассников, одногруппников, семью, друзей, коллег, кота, набираем немного просмотров. Опять втухли. Распечатываем листовки, вешаем объявление в подъезде, скидываем ссылку в чат “Дом обороны: объявления”. Наконец, когда фантазия исчерпается, можно обратиться к ним - скучным, но великим инструментам рекомендации. Они сами, возможно, бесплатно обегут социальные сети в поисках желаемой аудитории. Они предложат вашу рекламу потенциальному покупателю. Выберут вам ролик для просмотра в Ютубе (ура, Ютуб можно называть!), когда вы на платформу зашли, а в поисковую строку ничего не вбили. А если вы начинающий ютубер, то они просто так предложат ваш видос паре сотен случайных людей, чтобы дать вам шанс прославиться.
Как они работают? В основном на ИИ. Вот несколько базовых принципов.
Коллаборативная фильтрация: алгоритм ищет группы людей с похожими интересами (у кого-то кулинария, а у кого-то футбол).
Демографическая фильтрация: по профилю или каким-то другим персональным данным (пол, возраст и т.п.) алгоритм догадывается, что этому человеку интересно (семилетки, например, очень любят видео про Хаги-Ваги и аниматроников).
В анализе социальных сетей строится граф (диаграмма из точек, соединенных линиями), в котором алгоритм может определить группы людей, объединенные, например, локацией (все работают там-то или учатся там-то).
Фольксономия: сами пользователи ставят тэги, оставляют отзывы, геометки и прочую маркировку, которая позволяет сгруппировать товары, контент в комбинацию.

Системы рекомендации вездесущи. Некоторые считают, что они знают о нас больше, чем мы сами. На конференции в НИУ ВШЭ в декабре я узнала, что, благодаря изменениям в Федеральном законе “Об информации, информационных технологиях и о защите информации” (№ 408-ФЗ от 31.07.2023), теперь вместе с сообщением о куках Ozon и иже с ним предупреждают еще и о том, что используют рекомендательные технологии.

#эссеиистика
👍8
Семилетки прочитали мой предыдущий пост и сообщили, что Хаги-ваги и аниматроники уже не в моде. Сейчас у них популярны Скибиди-туалеты (вот недавно появился Астра-туалет, который по прогнозам может победить всех трёх Титанов 🥴), а также Терка (причем она уже года три как держится в трендах). Потерянное поколение 😏
😁11
Трансформеры уже здесь
Чето я всю рабочую неделю делала всякую bureaucracy и потом chill, так что за выхи выложу аж целых три поста. А в понедельник будет объявление о новых активностях (интенсивы и не только) на ближайший семестр. А теперь о…

Вот ведь что такое языковая модель?.. ChatGPT, например, это большая языковая модель плюс функционал чат-бота плюс интерфейс приложения. И ещё есть API, для разработчиков: чтобы без интерфейса обмениваться сообщениями с моделью. Чат-бот - это рамка диалога с пользователем. Она обеспечивает интуитивно понятный формат общения. Например, по ней мы сразу понимаем, что через этого бота можно заказать пиццу, а в этом боте можно вырастить собственную капибару. Интерфейс и API нужны как медиум, форма обмена сообщениями. Остаётся языковая модель.
Так что такое языковая модель? Это программа, которая по введённой строке догадывается, что должно быть дальше. Если я скажу, что люблю макароны с.. и тут резко прервусь, то, скорее всего, вы подумаете: “котлетой”, “курицей”, “сосиской” (а я то думала “пюрешкой” 🍲). Или если спросить человека, сколько сейчас времени, то он ответит что-то типичное в формате “без пятнадцати три”.
Как научить языковую модель предсказывать следующее слово? Кто про эмбеддинги читал, то уже, наверно, предугадал, что можно поступить похожим образом, как в word2vec. Берём корпус, разбираем на пары слов и учим нейросеть предсказывать правое слово по левому. Получилось, нам не нужно даже веса из модели (эмбеддинги) вытаскивать. Есть и другой более простой вариант - цепи Маркова. Берём из корпуса слова по отдельности, а также сочетания из двух и трёх слов подряд (это наши иксы) и берём следующее слово, которое идёт после этих слов и сочетаний (игреки). А затем просто рассчитываем, какой игрек наиболее часто встречается после каждого икса. Так и будет рассчитывать модель свой ответ на наш запрос - будет искать наиболее частое слово, которое встретилось в корпусе, после тех, что она получила в нашем запросе. Причем учитывать она будет максимум три последних слова, если такое сочетание есть среди ее иксов.
Минус такого подхода заключается в том, что в речи мы учитываем гораздо больше параметров, чем последние несколько слов.
Как сделать языковую модель более умной? Во-первых, конечно, пусть она не только три слова до заданного помнит. Пусть помнит много всего и до, и после. Во-вторых, пусть она пропускает какие-то слова, потому что речь варьируется. Важное для понимания слово может стоять где-то недалеко в контексте, например после стоп-слова, знака препинания, междометия типа “эээ”, “аммм”. Трансформер - эта такая архитектура нейронной сети, которая оценивает важность сочетаний в более широком контексте, с пропусками. Для этого в ней есть механизм под названием “внимание” (attention, этЕншн).
Языковые модели на цепях Маркова или word2vec’ах не требуют больших ресурсов. А вот трансформерам, чтобы учесть очень много сочетаний, нужны большие мощности. Обучить трансформер в домашних условиях не получится - требуется много видеокартов (примерно как в криптомайнинге). Поэтому такие модели называют большими(-пребольшими).

#база
👍5