1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/huangyueran-Spark_ALS

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Spark-ALS

ALS — это аббревиатура от alternating least squares, что означает метод чередующихся наименьших квадратов. ALS-WR — это alternating-least-squares with weighted-λ -regularization, то есть метод чередующихся наименьших квадратов с взвешенной регуляризацией. Этот метод часто используется в рекомендательных системах на основе матричной факторизации. Например, матрица оценок пользователя (user) для товара (item) раскладывается на две матрицы: одна представляет собой матрицу предпочтений пользователя относительно скрытых характеристик товара, а другая — матрицу скрытых характеристик самого товара. В процессе разложения матрицы заполняются недостающие оценки, и мы можем рекомендовать пользователю наиболее подходящие товары на основе этих заполненных оценок.

Алгоритм ALS-WR можно описать следующим образом:

  1. Для каждого userId случайным образом инициализируются N (10) значений факторов, которые влияют на вес userId.
  2. Для каждого itemId также случайным образом инициализируется N (10) значений факторов.
  3. Фиксируется userId, и из матрицы userFactors и матрицы rating получается матрица itemFactors. То есть [Item Factors Matrix] = [User Factors Matrix]^-1 * [Rating Matrix].
  4. Фиксируется itemId, и из матрицы itemFactors и матрицы rating получается матрица userFactors. То есть [User Factors Matrix] = [Item Factors Matrix]^-1 * [Rating Matrix].
  5. Повторяются шаги 3 и 4, пока не будет достигнута стабильная матрица userFactors и матрица itemFactors.
  6. Для itemId можно сделать вывод о значении рейтинга: userFactors * itemId = значение рейтинга. Аналогично для userId: itemFactors * userId = значение рейтинга.

SparkALSByStreaming.java

Демонстрация (DEMO) системы рекомендаций в реальном времени, основанная на Hadoop, Flume, Kafka, spark-streaming, logback и системе торгового центра.

Формат данных, собранных системой торгового центра: — идентификатор пользователя, — идентификатор товара, — оценка поведения пользователя, — временная метка.

Примеры данных: 53,1286513,9,1508221762 53,1172348420,9,1508221762 53,1179495514,12,1508221762 53,1184890730,3,1508221762 53,1210793742,159,1508221762 53,1215837445,9,1508221762

Команды Kafka:

hadoop dfs -mkdir /spark-als/model

hadoop dfs -mkdir /flume/logs

kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic RECOMMEND_TOPIC

kafka-console-producer.sh --broker-list 192.168.0.193:9092 --topic RECOMMEND_TOPIC < /data/streaming_sample_movielens_ratings.txt

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Реализация алгоритма рекомендаций на основе Spark-ML, Spark-Mllib, Spark-Streaming. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/huangyueran-Spark_ALS.git
git@gitlife.ru:oschina-mirror/huangyueran-Spark_ALS.git
oschina-mirror
huangyueran-Spark_ALS
huangyueran-Spark_ALS
master