В последнее время это пиковый сезон набора персонала, я разобрался с некоторыми вопросами НЛП, часто задаваемыми в последних интервью, и буду продолжать обновлять...
основной вопрос
1. Каковы общие задачи НЛП
- Задачи маркировки последовательностей: POS, NER,...
- Задачи классификации: анализ настроений, распознавание намерений,...
- Классные задания на отношения предложений: интеллектуальные ответы на вопросы, переписывание,...
- Задачи генерации текста: машинный перевод, реферирование документов, ...
2. Расскажите, пожалуйста, об известном вам методе представления текста (слово-вектор).
- На основе one-hot, tf-idf, textrank;
- Тематические модели: LSA (SVD), pLSA, LDA;
- Исправлены представления на основе векторов слов: Word2vec, FastText, GloVe;
- Динамическое представление на основе векторов слов: ELMo, GPT, BERT
3. Как генерировать векторы предложений?
- doc2vec
- bert
- Сращивание векторов слов, среднее, средневзвешенное значение tf-idf
4. Как рассчитать сходство текста
На основе символов: минимальное расстояние редактирования На основе вектора: после преобразования в вектор слова или вектор предложения используйте косинусное расстояние или евклидово расстояние для расчета Контролируемые методы: создание классификатора
5. Решение дисбаланса выборки?
- передискретизация
- недостаточная выборка
- улучшение текста
6. Каковы проявления переобучения и как его решить?
Как правило, когда точность обучения особенно высока, а точность тестирования особенно низка, это указывает на возможное переоснащение. Как исправить переобучение:
- Увеличить объем данных
- увеличение данных
- Присоединяйтесь к L1, L2 регулярно
- Dropout
- Batch Normalization
- early stopping
7. Вы когда-нибудь использовали причастие jiaba? Вы понимаете принцип?
- Реализовать эффективное сканирование графа слов на основе словаря префиксов и создать направленный ациклический граф (DAG), состоящий из всех возможных словообразований китайских иероглифов в предложении.
- Динамическое программирование используется для поиска пути с максимальной вероятностью, и находится максимальная комбинация сегментации на основе частоты слов.
- Для незарегистрированных слов используется модель HMM, основанная на способности китайских иероглифов образовывать слова, и применяется алгоритм Витерби.
8. Разбираетесь ли вы в распознавании именованных объектов? Какой метод обычно используется и каковы характеристики каждого из них?
- CRF. Нужно вручную писать функции, скорость обучения выше
- BiLSTM_CRF. Автоматическое извлечение признаков, низкая скорость обучения и необходимость большого количества размеченных данных.
- BERT_CRF. Автоматическое извлечение признаков, низкая скорость обучения и необходимость большого количества размеченных данных.
9. Знаете ли вы HMM и CRF?
- Оба относятся к вероятностным графическим моделям и обычно используются в задачах маркировки последовательностей. CRF обычно работают лучше, чем HMM.
- HMM относится к генеративной модели, CRF относится к дискриминативной модели.
10. Знаете ли вы RNN?А как насчет LSTM?Каковы характеристики LSTM по сравнению с RNN?
- RNN, Recurrent Neural Network (Рекуррентная нейронная сеть) — это нейронная сеть для обработки данных последовательности. По сравнению с обычными нейронными сетями он может обрабатывать данные с изменением последовательности.
- LSTM, Long Short-Term Memory (Долгая кратковременная память) — это специальная RNN, предназначенная в основном для решения проблемы исчезновения градиента и взрыва градиента при длительном обучении последовательностей. Проще говоря, LSTM может работать лучше в более длинных последовательностях, чем обычные RNN.
11. Умеете ли вы использовать регулярные выражения? В чем разница между re.match() и re.search()?
- Первый соответствует началу строки, успешно возвращает объект Match, возвращает None в случае сбоя и соответствует только одному
- Последний выполняет поиск в строке, возвращает объект Match в случае успеха, возвращает None в случае неудачи и находит только один объект.
Два сложных вопроса
1. В чем разница между elmo, GPT и bert?
- Та же точка
- И elmo, и BERT являются двусторонними моделями, но на самом деле elmo представляет собой объединение выходных данных двух односторонних нейронных сетей.Возможность объединять функции слабее, чем у BERT.
- Ввод - это все предложения, а не слова
- Elmo, GPT, BERT могут решить проблему полисемии
- Предварительно обученные модели, обученные крупномасштабному тексту
- Не то же самое:
- GPT — это односторонняя модель
- BERT маскирует ввод
- elmo использует LSTM в качестве слоя нейронной сети, в то время как GPT и BERT используют Transformer в качестве слоя нейронной сети.
2. Знаете BERT? Подскажите принцип? Вы использовали его?
- Структура трансформаторной сети
- Принцип самоконтроля, процесс расчета
3. В чем разница между word2vec и fastText
- Тот же пункт:
- неконтролируемые алгоритмы
- может тренировать векторы слов
- Не то же самое:
- fastText можно обучать с учителем, а структура аналогична CBOW (CBOW принимает контекст целевого слова в качестве входных данных, целевое слово используется в качестве метки, а skip-gram - наоборот), но цель обучения помечается вручную. этикетки.
- fastText будет учитывать подслова для длинных слов, что может в некоторой степени облегчить проблему oov (слова из сумки).
- fastText представляет N-грамму, которая будет учитывать особенности порядка слов.
4. Временная сложность LSTM, временная сложность трансформатора
- Временная сложность LSTM: длина последовательности * длина вектора²
- Временная сложность преобразователя: длина последовательности²*длина вектора
Таким образом, с точки зрения вычислительной сложности, когда длина последовательности n меньше размерности представления d, уровень самоконтроля работает быстрее, чем рекуррентный уровень.
5. Как уменьшить время вывода обученной нейронной сети?
- Обслуживание на GPU/TPU/FPGA
- Обрезка для уменьшения параметров
- Дистилляция знаний (для небольших моделей трансформаторов или простых нейронных сетей)
- Иерархический софтмакс