генерировать «предложения» для пользователей на основе относительной информации от других пользователей

У меня есть база данных с тремя таблицами, настроенными так:

Пользователи : имя пользователя, user_id
Продукты : product_name, product_id
User_Products : product_id, user_id, relation_level

Все это довольно прямолинейно, когда пользователь нажимает «нравится» продукт, он спрашивает, сколько ему нравится (рейтинг 1-5) и сохраняет эту информацию в таблице User_Products, сохраняя product_id из таблицы Products, user_id из таблицу Users и relationship_level, исходя из того, насколько они нравятся.

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

Есть ли у кого-нибудь идеи, как я могу это достичь?

Related of "генерировать «предложения» для пользователей на основе относительной информации от других пользователей"