Рекомендации на Фантлабе 2


Вы здесь: Форумы fantlab.ru > Форум «Техподдержка и развитие сайта» > Тема «Рекомендации на Фантлабе 2»

Рекомендации на Фантлабе 2

 автор  сообщение


авторитет

Ссылка на сообщение 21 августа 2019 г. 18:19  
Всем привет,
Если вы интересуетесь что почитать еще и не знаете что выбрать, то по ссылке http://188.226.141.69:8080/ находится альтернативный рекомендательный сервис для пользователей Фантлаба.

Чтобы получить рекомендацию нужно ввести свой логин и поставить галку "Искать по логину" либо ввести свой цифровой ид и убрать галку соответственно. Цифровой ид вы можете увидеть в строке адреса когда заходите в свой профиль. Если по логину не получается — попробуйте по ид, русские логины не проверялись.
Сервис базируется на скачанных оценках — т.е. если вы выставили новых оценок рекомендации не поменяются потому что сервис о них не узнает. Последний известный ид 175174.

Бета версия. Время ответа сервиса может достигать десятков секунд — долго получаем детали произведений.
Рекомендации строятся используя метод коллаборативной фильтрации c Apache Mahout https://mahout.apache.org/.
Исходный код проекта тут https://github.com/a-pavlov/fantlab папка mahout.

Замечания и предложения оставляйте тут на форуме или на гитхабе. Надеюсь сервис будет кому-то полезен.


миродержец

Ссылка на сообщение 21 августа 2019 г. 19:24  
inkpot идея хорошая, но "есть нюанс".
Во-1, нет группировки между циклами-романами-рассказами-статьями.
Во-2, нет деления на наше-зарубежное.
В-3, нет деления по годам.
В итоге я получил кучу переводных классиков+Громыко, Зыкова, Коша, Панова. Польза от такой подборки, увы, стремится к нулю.
–––
Следующие рецензии в АК:
Краевская, Пауэлл, Голубева, Бобылева.


миротворец

Ссылка на сообщение 21 августа 2019 г. 19:57  
К сожалению, ни по ид, ни по логину не получается. Крутится, крутится, потом кнопка становится зеленой — и все. А рекомендаций никаких нет.
–––
Quos vult perdere, dementat


авторитет

Ссылка на сообщение 21 августа 2019 г. 20:54  

цитата Mindover

К сожалению, ни по ид, ни по логину не получается. Крутится, крутится, потом кнопка становится зеленой — и все. А рекомендаций никаких нет.

Скрипт получения оценок смотрит только пользователей с количеством оценок не более 5000. Посчитал что живому человеку не под силу поставить больше :-). Забыл добавить в описание. У вас 19317 оценок, так что в следующей закачке оценок сделаю лимит 20000. Но сначала подкачаю ваш ид чтобы появились рекомендации и отпишу тут как будет готово.


авторитет

Ссылка на сообщение 21 августа 2019 г. 21:07  

цитата Green_Bear

Во-1, нет группировки между циклами-романами-рассказами-статьями.
Во-2, нет деления на наше-зарубежное.
В-3, нет деления по годам.
В итоге я получил кучу переводных классиков+Громыко, Зыкова, Коша, Панова. Польза от такой подборки, увы, стремится к нулю.

Согласен с вашими замечаниями. Ориентировался на свои предпочтения, а мне был интересен в первую очередь жанр и немого тип произведения. Как промежуточное решение добавлю недостающие колонки чтобы можно было поиском подсвечивать интересующие элементы. Пока обдумываю вопрос как будет лучше считать и выдавать.


философ

Ссылка на сообщение 21 августа 2019 г. 21:17  
Работает, но на некоторых логинах выдаёт пустой список.

Посмотрел в отладчике, загружается JSON вот такого вида:
{"userId":6585,"workMarks":[]}


То есть в списке workMarks нет оценок.

цитата inkpot

Сервис базируется на скачанных оценках


Можно оценки не скачивать, а взять прямо с Фантлаба (по 200 оценок на странице):
GET /user/{id}/marks?page={page}&sort={mark|name|autor|date|year}&type={all|novel|story}

Например,
https://api.fantlab.ru/user/1/marks?page=...

А так вполне прилично сделано :beer:
–––
Джентльмен — это человек, который знает, как играть на пианино, но не умеет этого делать
Je suis Ziza


авторитет

Ссылка на сообщение 21 августа 2019 г. 21:28  
ziza У ид 6585 количество оценок (9330) превышает текущий лимит в 5000. Этот ид был пропущен как и в случае с Mindover. Поправлю.
По логину ид возвращается — поэтому нет ошибки. Пустые рекомендации выдаются когда ид не найден.
Насчет брать с фантлаба — эндпойнт с 200 оценками на странице и эксплуатируется, но чтобы что-то порекомендовать требуется вычисление единомышленников, т.е. нужны все оценки всех участников.
Поэтому оценки выкачиваются все и строится модель(долго) на базе которой определяются единомышленники(довольно быстро) а затем расчитываются оценки(тоже быстро)
У Фантлаба нет апи для получения готовых единомышленников.


философ

Ссылка на сообщение 21 августа 2019 г. 22:01  

цитата inkpot

У Фантлаба нет апи для получения готовых единомышленников.


Это да. Не хватает API для получения оценок всех пользователей для данного произведения. Если бы он был, тогда можно было бы грузить не всё, а только потенциальных единомышленников, которые выставляли оценки тем произведениям, что и данный пользователь.

А для рекомендаций пока есть только API для выбрасывания рекомендации в мусорку и возвращения назад.
–––
Джентльмен — это человек, который знает, как играть на пианино, но не умеет этого делать
Je suis Ziza


миротворец

Ссылка на сообщение 21 августа 2019 г. 22:57  
inkpot
Спасибо. Мне рекомендации очень интересны, я через них не раз выходил на ранее неизвестных мне, но интересных авторов.
–––
Quos vult perdere, dementat


миродержец

Ссылка на сообщение 22 августа 2019 г. 02:48  
Попробовал. Пока основной сервис для меня работает намного лучше. Не рекомендует мне Перумова, на которого у меня натуральная идиосинкразия (и чтобы объяснить это основному алгоритму чёрный список не понадобился, у меня там только Амбер так как моя нелюбовь к нему при весьма хорошем отношении к Желязны в целом — явно вне статистики)… Ну и если я под настроение люблю почитать какое-нибудь женское фэнтези — это не значит, что мне можно рекомендовать Звёздную и Кузьмину, не говоря уж про Стефани Майер (на «вампирятину» у меня и вовсе аллергия, не то, чтобы сильная, что-то нестандандартное, вроде «Живущего в последний раз» Олди вполне может понравиться, но Майер%-\). Круз и Алекс Кош в списке моих рекомендаций тоже выглядят крайне сомнительно… Как и Джордан с Сальваторе. Хобб? Начинал читать несколько раз, всякий раз бросал. Всякий раз вроде бы по уважительной причине, т.е. не то, чтобы мне это резко не понравилось, но кажется, всё таки — не иоё.

«Греческий цикл» Олди? Вообще-то я после «Героя» который «должен быть один» пришедшего на место «Бездны голодных глаз» разочаровался в Олди лет на 10, потом в конце-концов я эту книгу прочитал, получила она у меня с грехом пополам семёрку (хотя всё равно не совсем ясно зачем это читать после ну того же Голосовкера) но я теперь даже «Быка из машины» пропустил (хотя и Сильных и Зеркальце прочёл с удовольствием, сейчас на середине Нюансеров)… Хотя Кабирский цикл, прочитать, кажется, надо.

В общем это очень-очень слабо похоже на индивидуальные рекомендации, что-то не так с этим алгоритмом.
–––
Весь мой вклад в «Лабораторию Фантастики» лицензирован на условиях CC-BY
(см. «лицензии Creative Commons»)


миротворец

Ссылка на сообщение 22 августа 2019 г. 05:46  

цитата inkpot

Скрипт получения оценок смотрит только пользователей с количеством оценок не более 5000. Посчитал что живому человеку не под силу поставить больше
И у меня по этой причине не работает. Но хотел бы попробовать что там выпадает.
–––
Взял надежду сухим пайком, соль со спичками бросил в ранец,
Я готов отправляться в путь - все, что нужно, уже при мне.


миродержец

Ссылка на сообщение 22 августа 2019 г. 06:31  

цитата inkpot

Скрипт получения оценок смотрит только пользователей с количеством оценок не более 5000. Посчитал что живому человеку не под силу поставить больше

Ну вообще — зря. Или вы забыли про малую форму? То что у меня всего три с небольшим тысячи оценок — свидетельство моей крайней лени — вот далеко не всегда ставлю оценки, часто забываю про это.
–––
Весь мой вклад в «Лабораторию Фантастики» лицензирован на условиях CC-BY
(см. «лицензии Creative Commons»)


философ

Ссылка на сообщение 22 августа 2019 г. 06:50  

цитата Ny

И у меня по этой причине не работает.


У меня не работает, но по другой причине: я оценок совсем не ставлю. Фактически у меня две оценки: дочитал до конца или не дочитал. Автор всё-таки старался, писал, ставить ему двойку — это неуважение к его труду.

В принципе возможно ли вычислить рекомендации без оценок, по каким-то другим признакам? Например, по классификатору.
–––
Джентльмен — это человек, который знает, как играть на пианино, но не умеет этого делать
Je suis Ziza


авторитет

Ссылка на сообщение 22 августа 2019 г. 08:06  
В чём кардинальная разница этого сервиса и того что на сайте?
–––
...и вам того же...вдвойне!


миротворец

Ссылка на сообщение 22 августа 2019 г. 09:21  

цитата Demiurg

В чём кардинальная разница этого сервиса и того что на сайте?
Очевидно, свой алгоритм обсчёта... Вот и хотелось бы посмотреть что он выдаёт. Сравнить с имеющимся.
–––
Взял надежду сухим пайком, соль со спичками бросил в ранец,
Я готов отправляться в путь - все, что нужно, уже при мне.


философ

Ссылка на сообщение 22 августа 2019 г. 09:30  

цитата Demiurg

В чём кардинальная разница этого сервиса и того что на сайте?


Исходные данные те же — оценки произведениям. По оценкам выбираются единомышленники — однократно, поскольку набор оценок статический (это выборка из базы, а не обновляемый постоянно набор).

Может быть, только в методе построения рекомендаций какая-то разница:

цитата inkpot

Рекомендации строятся используя метод коллаборативной фильтрации c Apache Mahout https://mahout.apache.org/.


Тот алгоритм, что на Фантлабе, более сложный. Он проверяет распределение оценок и если оно не является нормальным, то выдаёт предупреждение, что рекомендации могут быть не совсем достоверны, а также советует посмотреть рекомендации в "Фантлаб рекомендует":
https://fantlab.ru/flrecommendlast

Единомышленники выбираются из корреляционной таблицы, которая обновляется при каком-то изменении оценок. Используются настройки пользователя (минимальное число парных оценок), учитывается степень доверия к оценкам (то есть выставленные оценки 1 и 10), есть возможность убрать непонравившиеся произведения в мусорку, чтобы их больше не рекомендовали. Если у автора много произведений попало в мусорку, его тоже исключаем. Вычисляем рейтинг по оценкам единомышленников, затем делаем прогноз нашей оценки и далее получаем рекомендации.

В общих чертах работает так. Пока с этим алгоритмом подробно не разбирался, до него очередь не дошла. Сейчас изучаю, как work работает :-)

цитата Ny

Очевидно, свой алгоритм обсчёта... Вот и хотелось бы посмотреть что он выдаёт. Сравнить с имеющимся.


Надо подождать, пока для всех ID пользователя будет работать. К сожалению, на Фантлабе можно посмотреть только свои рекомендации, поэтому сравнить не с чем, если данный алгоритм выдаёт пусто.

Как работают рекомендации в Apache Mahout, можно прочитать вот тут:
https://www.ibm.com/developerworks/ru/lib...
в разделе "Создание механизма рекомендаций"
–––
Джентльмен — это человек, который знает, как играть на пианино, но не умеет этого делать
Je suis Ziza


авторитет

Ссылка на сообщение 22 августа 2019 г. 16:53  
Mindover ziza Перезапущено с пользователями у которых количество оценок превышает 5К. Рекомендации возвращаются, правда придется подождать ответа. С памятью на хосте все в притык. По остальным замечаниям надо поработать.
ziza В Махауте несколько алгоритмов расчета единомышленников и рекомендаций — пока в пилотном режиме запущен только один вариант. Вообще было бы интересно сравнить все алгоритмы и поиграться с параметрами.


философ

Ссылка на сообщение 22 августа 2019 г. 17:34  

цитата inkpot

Вообще было бы интересно сравнить все алгоритмы и поиграться с параметрами.


Это можно и на одной страничке сделать:
http://188.226.141.69:8080/

Добавить там возможность выбирать алгоритм и в зависимости от выбора запустить тот или другой.

Результаты точно будут разные, поскольку, как оказалось, и на Фантлабе одна из разновидностей коллаборативной фильтрации используется, причём не самый удачный из 3 основных вариантов. Но причина в том, что другие варианты слишком трудоёмки, и сервер может их не потянуть с динамическими данными. Тут время от времени запускается пересчёт корреляционных таблиц, и, возможно, это плохо влияет на доступность Фантлаба в целом.

Надо подумать, нельзя ли какие-то другие методы использовать.

А ещё с рекомендациями имеется другая задача. На Фантлабе есть "Книга на все времена" (и ещё несколько подобных рекомендаций, правда, не очень активных). Стандартная система рекомендаций с автоматическим расчётом не годится для новичков из-за проблемы холодного старта. У нового посетителя мало оценок для вычисления единомышленников, поэтому он не может использовать стандартные рекомендации. "Книга на все времена" формирует рекомендуемый список на основе предлагаемых участниками списков. Предлагается поджанр (например, зарубежное фэнтези), каждый участник присылает свой список произведений с баллами и из них делается общий список произведений, которые получили больше баллов. Новичок может выбрать из этого списка, прочитать, выставить оценки, а далее он может уже использовать стандартные рекомендации.
–––
Джентльмен — это человек, который знает, как играть на пианино, но не умеет этого делать
Je suis Ziza


миротворец

Ссылка на сообщение 22 августа 2019 г. 18:10  

цитата inkpot

альтернативный рекомендательный сервис для пользователей Фантлаба.

Чтобы получить рекомендацию нужно ввести свой логин и поставить галку "Искать по логину" либо ввести свой цифровой ид и убрать галку соответственно. Цифровой ид вы можете увидеть в строке адреса когда заходите в свой профиль. Если по логину не получается — попробуйте по ид, русские логины не проверялись.

Как-то странно сервис работает. Мне он советует практически одного Круза (плюс немного Коша и Каменистого). Всех трех авторов я оцениваю одинаково низко и читать не собираюсь.
В то время как сервис фантлаба выдает в рекомендациях Олди, Дяченко, Питера Гамильтона, Бэнкса и Г.Г. Кея — авторов, которых я оцениваю очень высоко.
В общем, пока для меня, как для пользователя релевантность данного рекомендательного механизма примерно нулевая.


миродержец

Ссылка на сообщение 22 августа 2019 г. 18:26  
Алексей121 Да у всех похоже так, у меня тоже пара-тройка дельных рекомендаций, книги, которые я не первый год откладываю «на сладкое» + пропущенные из за временного разочарования книги «среднего периода» Олди — а так: Круз, Кош, Звёздная, Кузьмина, Майерс, в лучшем случае — Джордан и Хобб.
–––
Весь мой вклад в «Лабораторию Фантастики» лицензирован на условиях CC-BY
(см. «лицензии Creative Commons»)
Страницы: 123    🔍 поиск

Вы здесь: Форумы fantlab.ru > Форум «Техподдержка и развитие сайта» > Тема «Рекомендации на Фантлабе 2»

 
  Новое сообщение по теме «Рекомендации на Фантлабе 2»
Инструменты   
Сообщение:
 

Внимание! Чтобы общаться на форуме, Вам нужно пройти авторизацию:

   Авторизация

логин:
пароль:
регистрация | забыли пароль?



⇑ Наверх