One-hot кодирование слов

One-hot кодирование слов

Биомолекула

В этом инстанте приведен отрывок статьи "Как языковые модели покорили мир белков".

Модели машинного обучения работают с наборами чисел — векторами и матрицами. В случае графических моделей, созданных для обработки изображений (например, их классификации или распознавания объектов), получить эти числа легко: изображение — это же просто матрица пикселей одинакового размера, каждый из которых окрашен в свой цвет (три или четыре числа — в зависимости от цветовой модели). Вероятно, именно поэтому графические модели машинного интеллекта появились раньше прочих.

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

Например, словарь из трех слов «мама», «папа» и «семья», мы представим как три набора чисел: (0, 0, 1), (0, 1, 0) и (1, 0, 0). Вроде всё просто! — такой способ кодирования называется one-hot кодированием (или унитарным кодом). Он использовался во многих ранних языковых моделях, но их результаты были очень далеки от тех, что демонстрируют сегодняшние большие языковые модели, или LLM.

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

У one-hot кодирования есть очень заметный недостаток. Давайте внимательно посмотрим на два предложения:

  • Он видел в окне, как играют дети.
  • У врача не было окна в понедельник, поэтому я записался на прием во вторник.

В обоих предложениях есть слово окно, но в первом случае оно означает реальное окно в доме, а во втором — промежуток времени. Мы можем легко уловить эту разницу, но для языковых моделей разделение одинаковых слов по смыслу — достаточно сложная задача. Поэтому вместо one-hot кодирования современные модели используют технологию векторизации (представления слова в виде набора чисел), которую называют эмбеддинг.

Что такое эмбеддинг и технология векторизации мы расскажем в следующем инстанте, а если вам хочется узнать об этом быстрее всех — читайте статью “Как языковые модели покорили мир белков”.




Report Page