Перейти к содержимому
На этой странице

Векторизация текста и эмбеддинги

Все темы Data Scientist

Подтемы:

Написать TF-IDF функцию.

Решение:
import math

def tfidf(term, document, corpus):
    # TF (Term Frequency) - частота термина в документе
    tf = document.count(term) / len(document)

    # IDF (Inverse Document Frequency) - обратная частота документа с термином
    num_documents_with_term = sum(1 for doc in corpus if term in doc)
    idf = math.log(len(corpus) / (1 + num_documents_with_term))

    return tf * idf

# Пример использования:
corpus = [
    "This is the first document.",
    "This document is the second document.",
    "And this is the third one.",
    "Is this the first document?",
]

documents = [doc.lower().split() for doc in corpus]

term = "document"
for i, doc in enumerate(documents):
    print(f"TF-IDF for term '{term}' in document {i+1}: {tfidf(term, doc, documents)}")

Рассказать про модификацию TF-IDF под названием BM25 как работает?

BM25 (Best Matching 25) - это улучшенная версия TF-IDF, разработанная для оценки релевантности документов в поисковых системах. Вот как это работает:

  1. Оценка частотности термина (TF): В отличие от обычного TF-IDF, BM25 использует модель оценки частотности термина, которая более чувствительна к различиям в частоте терминов. Она определяется как:
TF(q,d)=f(q,d)⋅(k1+1)f(q,d)+k1⋅(1−b+b⋅∣d∣avgdl)TF(q, d) = \frac{f(q, d) \cdot (k_1 + 1)}{f(q, d) + k_1 \cdot \left(1 - b + b \cdot \frac{|d|}{avgdl}\right)}

где:

  • f(q,d)f(q, d) - частота термина qq в документе dd.

  • ∣d∣|d| - длина документа dd.

  • avgdlavgdl - средняя длина документа в корпусе.

  • k1k_1 и bb - настраиваемые параметры.

  1. Оценка обратной частотности документа (IDF): IDF в BM25 оценивает важность термина в контексте всего корпуса документов, как и в TF-IDF.

  2. Расчет релевантности: Релевантность документа для запроса вычисляется как сумма IDF-взвешенных значений TF для всех терминов запроса:

BM25(q,d)=∑qi∈qIDF(qi)⋅TF(qi,d)\text{BM25}(q, d) = \sum_{q_i \in q} \text{IDF}(q_i) \cdot \text{TF}(q_i, d)

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


Плюсы/минусы TF-IDF, Bag of words.

TF-IDF:

Плюсы:

  1. Учитывает важность слова в контексте всей коллекции документов.

  2. Позволяет выделить наиболее информативные слова, отфильтровывая часто встречающиеся общие слова.

  3. Хорошо работает с длинными текстами и большими коллекциями документов.

Минусы:

  1. Не учитывает порядок слов в тексте и их взаимосвязь.

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

Bag of Words:

Плюсы:

  1. Простота и понятность концепции.

  2. Может быть эффективен для коротких текстов и простых задач.

  3. Хорошо работает с часто встречающимися словами.

Минусы:

  1. Не учитывает порядок слов и их семантическую структуру.

  2. Может приводить к разреженным матрицам при большом словаре или коллекции документов.

  3. Не учитывает важность слов в контексте всей коллекции.


Основные методы векторизации текстовых данных.

Основные методы векторизации текстовых данных:

  1. Мешок слов (Bag of Words): Представляет текст как набор изолированных слов без учета порядка или структуры предложения. Каждое уникальное слово в тексте становится признаком, а его частота встречаемости в документе — значением этого признака.

  2. TF-IDF (Term Frequency-Inverse Document Frequency): Учитывает не только частоту встречаемости слова в документе (TF), но и обратную частоту его встречаемости во всех документах коллекции (IDF). Это позволяет выделить наиболее информативные слова, учитывая их важность в контексте всей коллекции документов.

  3. Word Embeddings: Представляют слова в виде векторов непрерывного пространства, где семантически близкие слова имеют близкие векторные представления. Примеры включают Word2Vec, GloVe и FastText.

  4. Doc2Vec: Расширение Word2Vec, которое представляет не только отдельные слова, но и целые документы в виде векторов, сохраняя их семантическое содержание.

  5. N-граммы: Включают в себя комбинации из нескольких последовательных слов или символов. Например, биграммы (2-граммы) содержат последовательности из двух слов, триграммы (3-граммы) — из трех и т.д.


Что такое Word2vec?

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


Чем модели эмбеддингов отличают от самих LLM?

Модели эмбеддингов, такие как Word2Vec или GloVe, создают векторы для слов, представляя их в непрерывном пространстве. LLM (Large Language Models), такие как BERT или GPT, используют эмбеддинги в качестве одного из слоёв, но дополнительно обучаются на больших корпусах текста для выполнения более сложных задач, таких как генерация текста или ответ на вопросы.


Нужны ли другие эмбеддинги кроме CLS токена для классификации?

CLS токен обычно используется в моделях вроде BERT для получения финальной репрезентации текста для задач классификации. Однако для некоторых задач могут использоваться другие эмбеддинги, например, агрегированные или средние значения по всем токенам.


Как развивались методы представления текста: от Bag of Words и TF-IDF до контекстных эмбеддингов и трансформеров?

История предобработки текста в машинном обучении началась с классических методов, таких как мешок слов (bag of words), которые преобразовывали текст в векторы фиксированной длины, учитывая только частоту встречаемости слов. Затем стали использоваться методы стемминга и лемматизации для приведения слов к их основной форме и уменьшения размерности пространства признаков.

Далее были разработаны методы TF-IDF (term frequency - inverse document frequency), позволяющие оценить важность слова в документе относительно всего корпуса текстов. Этот подход помогает выделить ключевые слова и игнорировать часто встречающиеся общеупотребительные слова.

С развитием нейронных сетей появились эмбеддинги слов, такие как Word2Vec, GloVe и FastText, которые преобразуют слова в векторные представления, учитывая их семантический контекст.

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

Трансформеры лежат в основе многих моделей обработки и генерации текста, включая семейства GPT и T5. Их входом обычно служат токены, а представления обучаются вместе с моделью. Лучший метод зависит от задачи, данных и ограничений; статус SOTA нужно проверять на конкретном актуальном бенчмарке.

Собеседования: Data Science

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

Вопросы и ответы

Не нашли ответ? Напишите мне в чат. Я делаю Шпаргалку и сам отвечаю на сообщения. Расскажите, что не работает или чего вам не хватает. Может, смогу сразу взять это в работу.

Откуда взяты вопросы?

Из реальных собеседований. Основой подборки стал опыт Вадима Новосёлова: он проходил интервью и записывал вопросы. Подробнее о материалах.

Насколько эти вопросы актуальны?

Эти вопросы встречались нам на реальных собеседованиях в 2025 году. Мы регулярно проходим собеседования и пополняем подборку новыми вопросами. Основы профессии и ключевые технологии остаются востребованными годами, а детали конкретных инструментов и версий стоит сверять с текущей документацией.

На какой уровень рассчитана подборка?

Мы проходили собеседования на вакансии уровня Middle+, а иногда и на Senior-позиции. Вопросы из этих интервью вошли в подборку. Направления работы: Data Scientist, ML-инженер. Глубина обсуждения зависит от вакансии: будь готов объяснить основную идею, привести практический пример и разобрать ограничения и альтернативы решения.

Этот вопрос точно будет на моём собеседовании?

Гарантии нет: набор вопросов зависит от компании, задач команды, уровня вакансии и самого интервьюера. Эти вопросы уже встречались на реальных собеседованиях, но на твоём интервью ту же тему могут проверить другой формулировкой, практической задачей или обсуждением твоего опыта. Используй подборку, чтобы разобраться в теме: объясняй идею своими словами, приводи примеры и готовься обсудить ограничения и альтернативы решения. Так будет проще ответить и на знакомый вопрос, и на неожиданные уточнения.