week24 Встраивание и рекомендательные системы

искусственный интеллект

Применение Embedding в рекомендательной системе:

В рекомендательной системе можно

Embedding

вектор для быстрого припоминания

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

Сбор данных: нейронные сети требуют большого количества обучающих выборок;

Обработка данных: в соответствии с конкретными проблемами данные обрабатываются и обучаются в соответствии со стандартом встраивания сцены.

веса: построить модель встраивания для тренировки весов;

Использование весов: рекомендации и визуализации с использованием встроенных весов

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

Векторизованный отзыв:

Ускорение с помощью приблизительного поиска ближайшего соседа:

Для онлайн-сервисов существуют жесткие требования к производительности (десятки миллисекунд). Сохраняя интересы пользователей

Встраивание и встраивание интереса к видео, полученному методом поиска ближайшего соседа

Результат top N означает, что алгоритм является LSH, локальным чувствительным хэшем.

На этапе отзыва сопоставьте все векторы интересов элементов с разными сегментами, а затем сопоставьте векторы интересов пользователей с сегментами, чтобы можно было вычислить только внутреннее произведение вектора пользователя и вектора элементов в этом сегменте => значительно сокращается объем вычислений.

Если каждое видео в видеотеке рассматривать как категорию, то в момент времени t для пользователя U и контекста C вероятность того, что пользователь посмотрит видео i, равна u

встраивание пользователя (вывод последней функции активации сети Relu) vi вложение видео i

Вложение входного слоя — это вектор пользовательского пространства и видеопространства соответственно, а конечный выходной слой — через

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

это одно и то же пространство (его можно понимать как пространство интересов, а внутренний продукт двух представляет сходство)

Файсс Инструменты

Инструмент поиска подобия ИИ, разработанный командой FAIR (Facebook AI Research), решает проблему поиска ближайшего соседа в крупномасштабном d-мерном векторе.Используя Faiss, Facebook создал поиск ближайшего соседа в наборе данных на уровне миллиарда, а скорость увеличилась в 8,5 раз Faiss поддерживает только поиск Faiss в оперативной памяти Реализовано на C++, поддерживает Python pip install faiss-cpu pip install faiss-gpu

ИндексIVFFFlat:

IndexFlatL2 — поиск методом грубой силы, с низкой скоростью. Цель IndexIVFFlat — обеспечить более быстрый поиск. Во-первых, вектор базы данных делится на несколько подклассов методом кластеризации. Каждый подкласс представлен центром класса. IndexIVFFlat требует этапа обучения , и другой квантизатор индекса Релевантно, используйте квантизатор, чтобы определить, к какой ячейке он принадлежит.При вычислении вектора запроса выберите центр класса с ближайшим расстоянием, а затем примените точный метод запроса к подклассу, чтобы повысить точность индекса за счет увеличения числа смежных подклассов.

nlist, сколько пространств Вороного разбито на векторы базы данных

квантизатор = faiss.IndexFlatL2(d) # квантизатор

index.nprobe, выбрать n пространств Вороного для индексации

Отрегулируйте скорость и точность, изменив значение nprobe. Когда nprobe маленькое, запрос может быть неверным, но затраты времени малы. Когда nprobe большое, точность постепенно увеличивается, но также увеличиваются затраты времени. nprobe=nlist, он эквивалентен типу индекса IndexFlatL2.