Pull to refresh
2
0
Дмитрий @rucoder

User

Send message
Хуже — там обычная коллаборативная фильтрация, только вероятно ограничена списком ваших «друзей».
Официальный анонс был такой:
Сервис работает на основе Вашего списка аудиозаписей и предпочтений миллионов других пользователей. Кстати, его создатели в мае завоевали золотую медаль на всемирном чемпионате по программированию.

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

У меня давно есть сервис из этой же области https://musicadviser.ru/
Хоть там и используется memcached, но при росте числа пользователей, одновременно запускающих анализ, возникают проблемы. Единственное к чему пока пришёл — хранить у себя все данные. Вернее по сути долговременно кэшировать всё. Даже сейчас опасаюсь, публикую ссылку здесь)

Last.fm помимо всего прочего ещё и лежит частенько, так что не кэшировать от него данные — оставлять мёртвым приложение.

На счёт рекомендаций:

Паблики — это всё очень абстрактно, я чисто по работе подписан на кучу пабликов, но это совсем не значит, что они подходят мне в плане музыки.
В данный момент рекомендательные системы идут в сторону автоматизации, ибо люди ленивы. Используйте соц. сеть иначе — если уж зацепились за паблики, то определяйте их тематику и пытайтесь найти закономерность в том, что интересно пользователю больше всего.
Аналогично, в БД разницы нет, что добавление в избранное, что автоматическое добавление в список просмотренных. Разве что психологическое различие — действие производится больше автоматически. Но YouTube, как и другие большие проекты, скорее всего использует гибридный метод.
Это много где есть. Чехия выдаёт стипендию иностранцам (РФ не в списке, увы), для обучения в Чехии на чешском. Умысел банален — им нужны специалисты с мотивацией, у местных её как правило мало. Но на стипендию идёт отбор, причём не местный, местные только отправляют документы в страну принятия и уже там принимается решение.
Во многих странах ЕС обучение на местном языке бесплатное. При этом никто не принуждает оставаться и работать, в хорошей стране сам захочешь остаться, ещё и денег потратишь, дабы язык выучить.

Бакалавриат в РФ скорее всего не даст нужной базы для большинства вузов из списка, хотя англоязычные программы в ЕС (в не англоязычных странах) как правило легче, ибо для преподавателей язык тоже не родной. А я сомневаюсь, что отправлять буду сначала на языковые курсы.
Ru-Center: Двухъядерный 2Ghz/2048 RAM/100Gb HDD = 2000руб/мес.
Linode (GB): Восьмиядерный 2Ghz/2048 RAM/96Gb HDD = 40$~1450руб/мес.
За разницу в стоимости можно поднять простенький кэширующий сервер %)

Fornex проигрывает Linode диском и виртуализацией (OpenVZ vs. XEN).
Советую обратить внимание на публикации этой группы http://mtg.upf.edu/
Они занимаются в том числе и вашей темой.
Мда, с ценами как обычно они не церемонятся.
в чём различие абстрактного класса и интерфейса

Это кстати прям вопрос «на миллион», его стандартно задают по поводу всех ООП языков.
Многие вещи понимаешь только тогда, когда переходишь на другую сторону силы. Когда ты являешься разработчиком, всё это работает почти на уровне рефлексов :)) Подсознательное желание не тратить время на глупые (с твоей точки зрения) вещи.
Закончил школу в 2007-м, был отдельно Pascal (TurboPascal), основы постройки интерфейса в Delphi (6 или 7, не помню). В привязке к макросам MS Office был Basic. Logo был ещё в классе седьмом вроде.

В Чехии, на сколько я понимаю, в школе тоже программирования нет, ибо на первых курсах ВУЗа разбирается алгоритмизация и программирование на Java от самого начала (основные понятия, типы данных и т.д.). Java тут вообще идёт как основной ЯП в техническом ВУЗе.
Я бы сказал, что в Чехии гораздо более популярен Seznam, чем Google. По крайней мере у него довольно большой процент. Уж больно однозначная карта.
Во-вторых, content-based рекомендательные системы могут давать неплохое разнообразие и приятно удивить пользователя (diversity и serendipity), но они очень и очень сильно подвержены, скажем так, «упячкам». То есть периодически вы будете рекомендовать что-то очень и очень странное

При большом размере «аудитории» Collaborative filtering делает то же самое. При малом — проблема «холодного старта».
Но в любом случае 100% сейчас не даёт ничего. Впрочем, это скорее проблема людей, а не ПО :)
Но вы всё равно в таком случае ограничены своей фонотекой. Свою фонотеку, как правило, все знают и без софта.
Отличие, при беглом осмотре, в том что они пытаются притянуть к произвольному звуку привычные характеристики типа жанра, темпа, мелодичности, экспрессии и т.д. Я считаю это не совсем правильным, так как есть жанры где всё кроме ярлыка самого жанра, определить невозможно (Merzbow — Pulse Demon), но композиция тем не менее входит, пусть и на окраину общего звукового континуума, который можно наблюдать на моём скриншоте про Scatterplot собранной базы данных.

«Притягивание» характеристик делается как раз для того, чтобы «разбавить» рекомендации и очередная попытка привести такую субъективную область к чему-то формальному. На словах типа «мне кажется» науку не сделаешь. Другой человек просто не сможет этим адекватно воспользоваться как базой. Да, я тоже не очень разделяю их методику, но на абстрактные проценты тоже полагаться нельзя.

Послушав трек, что вы привели, я был полностью солидарен с last.fm в плане тегов. Noise/experimental/industrial. Даже описание исполнителя об этом говорит. И на сигнале вы должны будете увидеть характерный график для шума по идее.
Насчёт попадание кусков из разных жанров в одном треке, для примера положим 40% металл, 60% мелодекламация голосом. Чаще всего это будет приводить к тому что в плейлисте будут находиться треки с такой же комбинацией — 40% металла и 60% декламации. Ну или с перекосом в ту или другую сторону, если точных совпадений найдено не будет.

Вы анализируете не весь трек, разве нет?

Музыка субъективна и в качестве анализа качества рекомендаций вы всё равно будете использовать людей. Может стоит на них и ориентироваться, а не на машинный процент?

Используйте всю выборку пользователя и на основе неё сделайте статистический вывод о процентном соотношении треков определённого вида (ок, вам не нравится слово «жанр») у пользователя. Дальше из глобальной БД сэмплов можно выбирать похожие треки и в таком же процентном отношении отдавать их пользователю.
Коллега, рекомендую почитать работы вот этих ребят www.mtg.upf.edu/
Конкретно вот эту публикацию mtg.upf.edu/system/files/publications/bogdanov_IPM2012.pdf
Автор вроде как уже защитился, так что информация вполне себе полезная должна быть.

Для возможности рекомендаций стоит добавить отправку «сэмплов» на сервер и их каталогизировать, использую мета-данные из публичных баз (last.fm, freebase etc.), не знаю правда как к этому отнесутся правообладатели, но тем не менее. Отправлять пользователя к его же музыке это не очень полезно.

Проблема content-based систем (а иначе вашу и не назовёшь) в том, что рекомендации будут очень сильно похожи на то, что слушает человек. Хотя, в случае экспериментальных или смешанных жанров вы можете получить вовсе бредовые вещи. Взять к примеру кусок какого-нибудь djent трека и часть его будет похожа на что-то инструментальное, часть на электронное. Тут как «повезёт» с куском. Для устранения проблемы обычно используются гибридные системы, куда вам и советую копать.

Я сейчас пытаюсь зайти несколько с другой стороны, использовать семантическую сеть для алгоритма рекомендаций (в качестве информационной базы используются всё те же публичные БД). Пока всё на зачаточной стадии (первый семестр докторантуры), но в направление верю :)
Зарубежные ВУЗы хотелось бы. Да и месяцы в образовании/работе лучше сделать необязательными.
Не удивляет. Но определение «актёр» как раз затем и введено, чтобы обобщить всё это. Ни к чему подменять актёра пользователем.
Почему актёр = пользователь? Что угодно может инициировать действие. Внешний запрос, к примеру.
Use case вроде и переводится как «вариант использования». То бишь вариант использования системы актёром.
1

Information

Rating
Does not participate
Location
Praha, Hlavni Mesto Praha, Чехия
Date of birth
Registered
Activity