Comments 41
Хорошая идея, уже слушаю.
Добавил ваш сервис в закладки. Хорошо получилось.
А можете чуть подробнее расписать текущий алгоритм выбора предпочтений? Я вот попробовал, и честно 80% из предложенного в списке мне не нравится. Может это связано с тем, что в ВК у меня в аудиозаписях где то треков 20?
Да, скорее всего. Я хотел про это одну из следующих статей, но если вкратце — у ВК есть 21 жанр музыки (из тех что можно использовать). Берутся последние 100 треков и 100 треков из рекомендованных аудиозаписей, из них извлекаются жанры, составляется массив с процентными соотношениями жанров. Что-то вроде [.25;.5;0;0;0;0;.33;.17]. Для группы берутся треки, которые будут играться (сейчас выходит до 400 треков на станцию, у тех, что сейчас показываются мне, в среднем 170 треков, минимум 20, максимум 340), для них считается такой же массив. Массивы сравниваются на похожесть.
Добавьте треков 30 еще хотя бы, и ранжирование должно начать работать довольно точно, я думаю.
Музыкальные паблики, в которых вы участвуете, пока что не участвуют в механизме ранжирования, но вообще этот функционал есть, временно выпилен — на данный момент избыточен, пересчет весов, от которого необоснованно скачут плитки, не очень хорошо смотрится. Собственно, об этом я и написал в UPD — если будет заранее подготовленная база весов, плитки не будут скакать первые 2-3 минуты после запуска Public Radio, и это будет достаточно хорошо смотреться, можно будет натравливать нейросеть на обучение по пабликам пользователя.
Добавьте треков 30 еще хотя бы, и ранжирование должно начать работать довольно точно, я думаю.
Музыкальные паблики, в которых вы участвуете, пока что не участвуют в механизме ранжирования, но вообще этот функционал есть, временно выпилен — на данный момент избыточен, пересчет весов, от которого необоснованно скачут плитки, не очень хорошо смотрится. Собственно, об этом я и написал в UPD — если будет заранее подготовленная база весов, плитки не будут скакать первые 2-3 минуты после запуска Public Radio, и это будет достаточно хорошо смотреться, можно будет натравливать нейросеть на обучение по пабликам пользователя.
Да, увеличение количества помогло немного. Просто немного сбило с толку то, что на первое место попали станции с минимальным совпадением с пристрастиями.
libastral опять сломалась :)
Да, тут дело в том, что в вконтакте очень часто у аудио стоит жанр 18 — other. И большинство композиций подпадают под него. В итоге — из ваших 20 композиций, вполне вероятно, с проставленным жанром всего 2-3.
К тому же жанр не всегда точно выставляется, понятное дело.
Вообще именно для построения рекомендательной системы для аудио у ВК очень мало возможностей, хотя с другой стороны — не будь хотя бы таких жанров, так хоть вешайся. Я пытался подключать musicbrainz, там стоит ограничение около 1 запроса в секунду, в итоге — это вообще превращалось в пошаговую стратегию. А так — при наличии стартовых данных более-менее приличных можно довольно неплохо рекомендовать.
Да, тут дело в том, что в вконтакте очень часто у аудио стоит жанр 18 — other. И большинство композиций подпадают под него. В итоге — из ваших 20 композиций, вполне вероятно, с проставленным жанром всего 2-3.
К тому же жанр не всегда точно выставляется, понятное дело.
Вообще именно для построения рекомендательной системы для аудио у ВК очень мало возможностей, хотя с другой стороны — не будь хотя бы таких жанров, так хоть вешайся. Я пытался подключать musicbrainz, там стоит ограничение около 1 запроса в секунду, в итоге — это вообще превращалось в пошаговую стратегию. А так — при наличии стартовых данных более-менее приличных можно довольно неплохо рекомендовать.
Было бы интересно тогда ближайшим шагом в проекте сделать возможность вмешаться в подборку, например исключить те же other. Проверил через друзей с нормальным количеством записей в ВК — да, у них намного точнее совпадения.
Привет, сделай из названий музыкальных групп bloom filter (один по каждому жанру).
Тогда все муз группы по всем жанрам уместятся на клиенте в пару мегабайт, и можно будет их в фоне загрузить.
А то сейчас групп с русской альтернативой или русским роком вообще для меня не находит, что, конечно, обидно, т.к. идея отличная.
P.S. Была бы хоть кнопка «эта песня не нравится, включи следующую»… Last.fm тоже радио, но там эта кнопка есть.
Вообще, рекомендую посмотреть в плане работы с рекомендациями интерфейс grooveshark.
Тогда все муз группы по всем жанрам уместятся на клиенте в пару мегабайт, и можно будет их в фоне загрузить.
А то сейчас групп с русской альтернативой или русским роком вообще для меня не находит, что, конечно, обидно, т.к. идея отличная.
P.S. Была бы хоть кнопка «эта песня не нравится, включи следующую»… Last.fm тоже радио, но там эта кнопка есть.
Вообще, рекомендую посмотреть в плане работы с рекомендациями интерфейс grooveshark.
Не хватает кнопки пауза, когда, к примеру, нужно посмотреть видеоролик на ютубе. Приходится либо ползунок громкости дёргать, либо, закрывать вкладку. Также, неплохо бы прикрутить автостарт проигрывания, при открытии вкладки. Какие-то более-менее минимальные настройки, клавиатурные сочетания. Хэлп с объяснением пользователю, что произойдёт при нажатии разбитого сердечка, например.
Непонятно, если я выбрал одну из групп, на которые подписан, переключится ли радио на какую-то другую группу, в процессе прослушивания. Иногда, хотелось бы. В другой раз, хочется конкретный жанр.
Непонятно, если я выбрал одну из групп, на которые подписан, переключится ли радио на какую-то другую группу, в процессе прослушивания. Иногда, хотелось бы. В другой раз, хочется конкретный жанр.
По поводу паузы — я так понял что это противоречит концепции «радио» — вы же радио на паузу не можете поставить? Но чтобы не дергать ползунок можно просто кликнуть по значку — притушится сразу полностью.
автостарт есть — если зайдете по этой ссылке, например publicradio.io/?rock_music_on (взял то что сейчас играет просто, не долго думая), секунд через 5-7 оно начнет играть. Автостарта рандома не будет по понятным причинам, про сохранение последней игравшей станции — надо подумать, проще ссылку сохранить все-таки ведь.
По подсказкам — да, просто не успел допилить, постараюсь на неделе успеть. Это все-таки проект, который я в одиночку делаю по вечерам, 20 часов в неделю — это очень мало для качественного продукта, пришлось урезать функционал в угоду качеству.
Переключаться не будет, воспринимайте это как реальные радиостанции. У вас же радио с одной на другую не скачет?
По жанрам и так далее — если проект пойдет хорошо (10к пользователей хотя бы) и появится еще один человек, желающий и способный помочь, будет большое количество изменений в сторону персонализации опыта, в том числе «послушать определенный жанр», «послушать станции, похожие на...», «послушать все что похоже на такого-то исполнителя». Просто много времени надо на это. Сами понимаете.
По подсказкам — да, просто не успел допилить, постараюсь на неделе успеть. Это все-таки проект, который я в одиночку делаю по вечерам, 20 часов в неделю — это очень мало для качественного продукта, пришлось урезать функционал в угоду качеству.
Переключаться не будет, воспринимайте это как реальные радиостанции. У вас же радио с одной на другую не скачет?
По жанрам и так далее — если проект пойдет хорошо (10к пользователей хотя бы) и появится еще один человек, желающий и способный помочь, будет большое количество изменений в сторону персонализации опыта, в том числе «послушать определенный жанр», «послушать станции, похожие на...», «послушать все что похоже на такого-то исполнителя». Просто много времени надо на это. Сами понимаете.
Я вас совершенно не пытаюсь критиковать ради критики. Это просто первые моменты, которые бросились в глаза, за несколько минут использования. Хотя, нет. Первым было то, что кружок крутился-крутился-крутился в фоновой вкладке. Пару раз заходил проверить — всё ещё крутится. Потом поставил на паузу расширение Ghostery для Firefox'а и обновил страничку. Тогда уже появился запрос на доступ к аккаунту ВК и всё заработало.
Без переключения не видно большого смысла. Можно ведь спокойно открыть аудиозаписи подходящей группы на своей страничке и нажать кнопку shuffle. А ещё лучше, взять группу не из своего списка, чтобы познакомиться с репертуаром.
Без переключения не видно большого смысла. Можно ведь спокойно открыть аудиозаписи подходящей группы на своей страничке и нажать кнопку shuffle. А ещё лучше, взять группу не из своего списка, чтобы познакомиться с репертуаром.
Кнопка skip this track будет?
Запилите lastfm пожалуйста, мне очень нравится возможность посмотреть что я слушал вчера, неделю назад или месяц. Это не должно занять много времени
это займет дофига времени: last.fm работает только поверх бэкэнда, а значит, нужно делать этот самый бэкэнд, начать запоминать пользователей, к тому же под авторизацию в last.fm придется уже делать полноценное меню. Сейчас на самом деле достигнут порог разработки, нужно довольно капитально рефакторить под дальнейшее развитие, если честно. Так что меню затянется.
Если я правильно понял, то речь о возможности просмотреть, что же я слушал только или вчера что на Public Radio.
Также перестало работать обновление названия трека.
Также перестало работать обновление названия трека.
Можно запилить расширение для хрома например, чтобы весь функционал требующий CORS продолжал прекрасную жизнь на клиенте (туда же можно поместить статистику для владельцев групп). С last.fm никаких проблем (если не считать пары мелочей) у меня не возникло когда писал скробблер+качалку для vk.
У вас API при росте числа пользователей будут отказывать, без бэкэнда всё равно не поедет.
У меня давно есть сервис из этой же области https://musicadviser.ru/
Хоть там и используется memcached, но при росте числа пользователей, одновременно запускающих анализ, возникают проблемы. Единственное к чему пока пришёл — хранить у себя все данные. Вернее по сути долговременно кэшировать всё. Даже сейчас опасаюсь, публикую ссылку здесь)
Last.fm помимо всего прочего ещё и лежит частенько, так что не кэшировать от него данные — оставлять мёртвым приложение.
На счёт рекомендаций:
Паблики — это всё очень абстрактно, я чисто по работе подписан на кучу пабликов, но это совсем не значит, что они подходят мне в плане музыки.
В данный момент рекомендательные системы идут в сторону автоматизации, ибо люди ленивы. Используйте соц. сеть иначе — если уж зацепились за паблики, то определяйте их тематику и пытайтесь найти закономерность в том, что интересно пользователю больше всего.
У меня давно есть сервис из этой же области https://musicadviser.ru/
Хоть там и используется memcached, но при росте числа пользователей, одновременно запускающих анализ, возникают проблемы. Единственное к чему пока пришёл — хранить у себя все данные. Вернее по сути долговременно кэшировать всё. Даже сейчас опасаюсь, публикую ссылку здесь)
Last.fm помимо всего прочего ещё и лежит частенько, так что не кэшировать от него данные — оставлять мёртвым приложение.
На счёт рекомендаций:
Паблики — это всё очень абстрактно, я чисто по работе подписан на кучу пабликов, но это совсем не значит, что они подходят мне в плане музыки.
В данный момент рекомендательные системы идут в сторону автоматизации, ибо люди ленивы. Используйте соц. сеть иначе — если уж зацепились за паблики, то определяйте их тематику и пытайтесь найти закономерность в том, что интересно пользователю больше всего.
у API Вконтакте ограничение на количество запросов на пользователя, не на приложение :) Так что с этим не будет проблем.
У меня же вообще нет бэкэнда, только клиентсайд. Хабраэффект вызвал — о боже — нагрузку на сервер в 0.2 Мб/c в пике.
Насчет рекомендаций — все куда сложнее чем вы можете себе представить, сейчас настроена базовая логика. Судя по тому, как аудитория приняла проект — через 2-3 недели подключится более сложный алгоритм, который пока что отключен
У меня же вообще нет бэкэнда, только клиентсайд. Хабраэффект вызвал — о боже — нагрузку на сервер в 0.2 Мб/c в пике.
Насчет рекомендаций — все куда сложнее чем вы можете себе представить, сейчас настроена базовая логика. Судя по тому, как аудитория приняла проект — через 2-3 недели подключится более сложный алгоритм, который пока что отключен
Но без скипа и лайка найти закономерность того что нравится — невозможно.
Слушайте, может вы сделаете кнопку «не использовать рекомендации вк»? А то я вижу 10 записей моих пабликов, а дальше идет тонна лютейшего шлака, с которым я могу ассоциировать, может, десяток треков из моих почти четырех сотен. А еще один паблик, на который я подписан, я вижу в списке двадцать восьмым.
Серьезно, не надо так — рекомендации просто сломаны.
Серьезно, не надо так — рекомендации просто сломаны.
Они не то чтобы сломаны, но да, смысл в ваших словах есть. На неделе поставлю ограничение на максимальное отклонение рекомендаций.
То, что я изучал про них — они запоминают треки, которые играли в ВК, и строятся на основе именно этого в первую очередь.
То, что я изучал про них — они запоминают треки, которые играли в ВК, и строятся на основе именно этого в первую очередь.
Хуже — там обычная коллаборативная фильтрация, только вероятно ограничена списком ваших «друзей».
Официальный анонс был такой:
Как показывает практика, для массового пользователя они подходят. Но далеко не для всех.
Официальный анонс был такой:
Сервис работает на основе Вашего списка аудиозаписей и предпочтений миллионов других пользователей. Кстати, его создатели в мае завоевали золотую медаль на всемирном чемпионате по программированию.
Как показывает практика, для массового пользователя они подходят. Но далеко не для всех.
Официальный анонс это одно, а совсем другое — что после длительного прослушивания исключительно одного исполнителя (суммарно на 6-10 часов за несколько суток) он начинает преобладать над остальными.
Я столкнулся как раз с проблемой, что люди очень часто добавляют в «мои аудио» не совсем релевантную музыку — например, только смешные треки.
Именно поэтому и начал опираться на рекомендации.
Я столкнулся как раз с проблемой, что люди очень часто добавляют в «мои аудио» не совсем релевантную музыку — например, только смешные треки.
Именно поэтому и начал опираться на рекомендации.
При запросе авторизации приложения в ВК вылазит:
{«error»:«invalid_request»,«error_description»:«Security Error»}
это хабраэффект или я что-то не так делаю?
{«error»:«invalid_request»,«error_description»:«Security Error»}
это хабраэффект или я что-то не так делаю?
Это в консоли происходит?
Мне об этой проблеме уже неоднократно писали, но до сих пор даже не понял, что именно там происходит.
Мне об этой проблеме уже неоднократно писали, но до сих пор даже не понял, что именно там происходит.
Нет, по кнопке на publicradio.io/#needAuth и после открытия всплывающего окна для разрешения доступа приложения к моему аккаунту.
И еще одна рекомандация в todo list — сохраняйте громкость куда-нибудь. Из-за бага с обновлением песни часто перезагружаю страницу, и как заорёт!
Sign up to leave a comment.
Музыкальные паблики по-новому, или как я Public Radio делал