Сопоставление интересов пользователя с контентом (на основе тегов)

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

Рассмотрим эти основные таблицы базы данных:

CREATE TABLE `content_tag` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`item_id` INT(11) NOT NULL,
`tag_id` INT(11) NOT NULL,
PRIMARY KEY (`id`)
);

CREATE TABLE `tag` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`)
);

И у меня есть интересы Алисы наряду с (релевантностью) баллом, который действует как вес:

array:3 [
'healthcare' => 2.20
'sports' => 1.30
'socal' => 0.5
]

Как бы вы подошли к этому?

Есть ли способ использовать алгоритм для этого, такой как симметрия косинуса, или это только предложения?

1

Решение

Вы можете найти сходство между Алисой и предметами, а затем отсортировать их. Итак, большинство подобных n предметов будут рекомендованы.

Одним из показателей сходства является косинусное сходство (как вы предлагаете), и оно работает следующим образом;

Для каждого элемента вы можете создать вектор с помощью тегов. Насколько я понимаю, у ваших предметов нет оценок, поэтому значения векторов предметов будут 0 или 1. Каждое значение будет представлять один тег для конкретного предмета.

Представление товара;

[0,0,1,1,0,0] -> Допустим, первое значение представляет «здравоохранение», второе — для спорта, а последний — для tag5. Этот элемент не имеет tag5, поэтому его значение 0

И пользователи также имеют векторы, которые похожи на элементы.
Например, вектор Алисы
[2.20,1.30,0.5,0,0,0]

После создания векторов вы можете вычислить сходство (например, используя косинусное сходство.)

Обратите внимание, что Размер каждого пользователя и векторов элементов равен количеству всех тегов в системе.
В этом примере в системе есть 6 различных тегов.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]