{"id":298150,"date":"2020-02-03T21:00:17","date_gmt":"2020-02-03T21:00:17","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=298150"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=298150","title":{"rendered":"People meet recommender systems. Factorization"},"content":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/486802\/\">\n<p>\u041c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u043d\u0438\u043a\u043b\u043e \u0432 \u043d\u0430\u0448\u0443 \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u0443\u044e \u0436\u0438\u0437\u043d\u044c. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0443\u0434\u0438\u0432\u043b\u044f\u044e\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0438\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0432 \u0438\u0445 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430\u0445. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 \u0432 \u044d\u0442\u043e\u0439 \u043d\u0430\u0443\u043a\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u041e\u043d\u0438 \u0435\u0441\u0442\u044c \u0432\u0435\u0437\u0434\u0435: \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0441\u043b\u0443\u0448\u0430\u0435\u0442\u0435 \u043c\u0443\u0437\u044b\u043a\u0443, \u0447\u0438\u0442\u0430\u0435\u0442\u0435 \u043a\u043d\u0438\u0433\u0438, \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0441\u0435\u0440\u0438\u0430\u043b\u044b \u0438\u043b\u0438 \u0432\u0438\u0434\u0435\u043e. \u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u044d\u0442\u043e\u0439 \u043d\u0430\u0443\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445 \u0433\u0438\u0433\u0430\u043d\u0442\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a <a href=\"https:\/\/www.youtube.com\" rel=\"nofollow\">YouTube<\/a>, <a href=\"https:\/\/www.youtube.com\" rel=\"nofollow\">Spotify<\/a> \u0438 <a href=\"https:\/\/www.netflix.com\/ru\/\" rel=\"nofollow\">Netfilx<\/a>. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0432\u0441\u0435 \u043d\u0430\u0443\u0447\u043d\u044b\u0435 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0432 \u044d\u0442\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0445 <a href=\"https:\/\/neurips.cc\" rel=\"nofollow\">NeurIPS<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/icml.cc\" rel=\"nofollow\">ICML<\/a>, \u0442\u0430\u043a \u0438 \u043d\u0430 \u0447\u0443\u0442\u044c \u043c\u0435\u043d\u0435\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 <a href=\"https:\/\/recsys.acm.org\" rel=\"nofollow\">RecSys<\/a>, \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443. \u0418 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c, \u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u043b\u0430\u0441\u044c \u044d\u0442\u0430 \u043d\u0430\u0443\u043a\u0430, \u043a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u0445 \u0442\u043e\u0433\u0434\u0430 \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0438 \u043a\u0430\u043a\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0437\u0430 \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u0441\u0442\u043e\u0438\u0442.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/rc\/mo\/rt\/rcmortha30ie7vavqiyinlld-ws.png\"><\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<p>\u041d\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043c\u0435\u043d\u044f \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u0438\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0432 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0438 <a href=\"https:\/\/sites.skoltech.ru\/statml\/\" rel=\"nofollow\">StatML<\/a> \u0432 <a href=\"https:\/\/www.skoltech.ru\/en\" rel=\"nofollow\">Skoltech<\/a>, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u0441 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<h2 id=\"zachem-i-dlya-kogo-eta-statya\">\u0417\u0430\u0447\u0435\u043c \u0438 \u0434\u043b\u044f \u043a\u043e\u0433\u043e \u044d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f<\/h2>\n<p>  <\/p>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u043d\u0430\u0441? \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a:<\/p>\n<p>  <\/p>\n<ul>\n<li><em>\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u0432\u0438\u0434\u0435\u043e:<\/em> YouTube, Netlix, HBO, Amazon Prime, Disney+, Hulu, \u041e\u043a\u043a\u043e<\/li>\n<li><em>\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u0430\u0443\u0434\u0438\u043e:<\/em> Spotify, \u042f\u043d\u0434\u0435\u043a\u0441.\u041c\u0443\u0437\u044b\u043a\u0430, \u042f\u043d\u0434\u0435\u043a\u0441.\u0420\u0430\u0434\u0438\u043e, Apple Music<\/li>\n<li><em>\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432:<\/em> Amazon, Avito, LitRes, MyBook<\/li>\n<li><em>\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u0432 \u043f\u043e\u0438\u0441\u043a\u0435:<\/em> Google, Yandex, Bing, Yahoo, Mail<\/li>\n<li><em>\u041e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438:<\/em> Booking, Twitter, Instagram, \u042f\u043d\u0434\u0435\u043a\u0441.\u0414\u0437\u0435\u043d, \u0412\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435, GitHub<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0432\u044b \u043d\u0430\u0448\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435\u0441\u044c. \u0414\u043b\u044f \u043c\u0435\u043d\u044f \u0432\u0430\u0436\u043d\u043e, \u0432\u0441\u0435\u0433\u0434\u0430 \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442 \u043c\u0430\u0448\u0438\u043d\u044b \u0438 \u0443\u0437\u043d\u0430\u0432\u0430\u0442\u044c, \u043a\u0430\u043a \u043e\u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u043e\u0433\u0434\u0430 \u043c\u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e\u0442 \u043d\u043e\u0432\u043e\u0435 \u0432\u0438\u0434\u0435\u043e \u0432 YouTube.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u0441\u0442\u0430\u0442\u044c\u0438 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 (<a href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/241455\/\">\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440<\/a> \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u042f\u043d\u0434\u0435\u043a\u0441), \u043d\u043e \u043f\u043e\u0440\u043e\u0439 \u043b\u044e\u0434\u0438 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043e\u0431 \u043e\u0434\u043d\u043e\u043c \u0438 \u0442\u043e\u043c \u0436\u0435 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u044b. \u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u043e \u043c\u0435\u0441\u0442, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432\u0435\u0441\u044c \u0437\u0432\u0435\u0440\u0438\u043d\u0435\u0446 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0441\u0440\u0430\u0437\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430\u043c\u0438, \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u0432\u0430\u043c \u043f\u0440\u043e \u043d\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 (\u0438\u043b\u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c). \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0444\u043e\u043a\u0443\u0441 \u0437\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0443\u044e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u0418, \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u044d\u0442\u043e \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0446\u0435\u043b\u0435\u043d\u0430 \u0432 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u043d\u0430 \u043b\u044e\u0434\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438. \u041d\u043e \u044f \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u0438 \u043d\u043e\u0432\u0438\u0447\u043a\u0430\u043c. \u0418 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0444\u043e\u0440\u043c\u0443\u043b\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044e, \u0447\u0442\u043e \u0443 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0439 \u0430\u043b\u0433\u0435\u0431\u0440\u0435, \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0438 \u0442\u0435\u043e\u0440\u0438\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p><em>\u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432\u0441\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c, \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0447\u0430\u0441\u0442\u044c\u044e \u0447\u0435\u0433\u043e-\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e. \u041e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043d\u044b\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0441\u043e \u0441\u0432\u043e\u0435\u0439 \u043b\u043e\u0433\u0438\u043a\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0447\u0435\u043d\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043a\u0438\u043d\u043e, \u043c\u0443\u0437\u044b\u043a\u0430, \u0435\u0434\u0430, \u043e\u0434\u0435\u0436\u0434\u0430 \u0438 \u0442.\u0434.). \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f <a href=\"https:\/\/m.habr.com\/ru\/company\/okko\/blog\/454224\/\">\u0441\u0442\u0430\u0442\u044c\u044f<\/a> \u043f\u0440\u043e \u0442\u0430\u043a\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443.<\/em><\/p>\n<p>  <\/p>\n<h2 id=\"postanovka-zadachi\">\u041f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0434\u0430\u0447\u0438<\/h2>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0438 \u0432 \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0437\u0430\u0434\u0430\u0447\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0443\u0436\u043d\u044b \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u0432\u0435\u0434\u0435\u043c \u0434\u0432\u0430 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d07\/cc5\/b26\/d07cc5b26db621faab45e0e0b54ede62.svg\" alt=\"$U$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/64b\/eb7\/37a\/64beb737a23fb5cb0a455f0e9213f2a4.svg\" alt=\"$I$\" data-tex=\"inline\"><\/math> \u2014 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432. \u0410 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a9a\/552\/0bd\/a9a5520bd190c2c8db10f835e325c6b5.svg\" alt=\"$r_{ui}$\" data-tex=\"inline\"><\/math> \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/784\/f98\/db3\/784f98db37a499162c1479600e8465ed.svg\" alt=\"$u$\" data-tex=\"inline\"><\/math> \u0438 \u0442\u043e\u0432\u0430\u0440\u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf8\/3b5\/32c\/bf83b532cd867d34004f8eded8c5c79a.svg\" alt=\"$i$\" data-tex=\"inline\"><\/math>. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0440\u0435\u0439\u0442\u0438\u043d\u0433 \u0444\u0438\u043b\u044c\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u0438\u043b\u0438 \u0436\u0435 \u043f\u043e\u043a\u0443\u043f\u043a\u0430 \u0442\u043e\u0432\u0430\u0440\u0430, \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0435\u0433\u043e \u0432 \u0438\u0437\u0431\u0440\u0430\u043d\u043d\u043e\u0435. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0435\u0439 \u0432\u044b\u0431\u043e\u0440\u043a\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u043e\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ba8\/870\/aff\/ba8870aff7657783f9caf42d8c61fd27.svg\" alt=\"$\\mathcal{D} = \\{ (u, i) |\\text{ if } \\exists r_{ui}, u \\in U, i \\in I\\}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0410 \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u0438 \u043d\u0430\u0439\u0442\u0438 \u0442\u0430\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/12a\/b92\/a58\/12ab92a586fb3d91b2b9c1e1ca0dc58c.svg\" alt=\"$f$\" data-tex=\"inline\"><\/math>:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/90b\/d20\/b47\/90bd20b4735f2c687c12ffd367dd7fdd.svg\" alt=\"$f(u, i) = \\hat{r}_{ui}\\approx r_{ui}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p><em>\u0427\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u044f\u0441\u043d\u043e, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a9a\/552\/0bd\/a9a5520bd190c2c8db10f835e325c6b5.svg\" alt=\"$r_{ui}$\" data-tex=\"inline\"><\/math> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0446\u0435\u043b\u043e\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u043e\u0442 1 \u0434\u043e 5 (\u043e\u0446\u0435\u043d\u043a\u0430 \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f) \u0438\u043b\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u043e\u0439: 1 \u0438\u043b\u0438 -1 (\u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c \/ \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c)<\/em><\/p>\n<p>  <\/p>\n<h2 id=\"vidy-rekomendatelnyh-sistem\">\u0412\u0438\u0434\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c<\/h2>\n<p>  <\/p>\n<p>\u0412 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0435 \u0443\u0441\u043b\u043e\u0432\u043d\u043e \u0432\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u0435\u043b\u044f\u0442 \u043d\u0430 3 \u0442\u0438\u043f\u0430:<\/p>\n<p>  <\/p>\n<ul>\n<li><strong>Content-based (CB)<\/strong><\/li>\n<li><strong>Collaborative filtering (CF)<\/strong><\/li>\n<li><strong>Hybrid recommendations<\/strong><\/li>\n<\/ul>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/eq\/0o\/dy\/eq0odyfjw3q28dzyduhkbgv2d4i.png\"><\/p>\n<p>  <\/p>\n<p><strong>\u041a\u043e\u043d\u0442\u0435\u043d\u0442\u043d\u044b\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438<\/strong> \u0431\u0435\u0440\u0443\u0442 \u0432\u0441\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u0432\u0430\u0440\u0435 \u0438 \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0445\u043e\u0436\u0438\u0439. \u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u2014 \u043c\u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c \u043a\u043e\u043c\u0435\u0434\u0438\u044f \u0441 \u0414\u0436\u0438\u043c\u043e\u043c \u041a\u0435\u0440\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043d\u0435 \u043f\u043e\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043b\u0438 \u0434\u0440\u0443\u0433\u0443\u044e \u043a\u043e\u043c\u0435\u0434\u0438\u044e \u0441 \u044d\u0442\u0438\u043c \u0430\u043a\u0442\u0435\u0440\u043e\u043c. \u041f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b: \u0434\u043b\u044f \u043f\u0435\u0441\u043d\u0438 \u2014 \u0441\u0430\u043c\u0430 \u0435\u0433\u043e \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0434\u043e\u0440\u043e\u0436\u043a\u0430, \u0434\u043b\u044f \u0442\u043e\u0432\u0430\u0440\u0430 \u0432 \u043c\u0430\u0433\u0430\u0437\u0438\u043d\u0435 \u2014 \u0435\u0433\u043e \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u044f, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0430\u043a\u0438\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b \u0438 \u0438\u0445 \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u043d\u0430\u0441. \u0412 \u0442\u0430\u043a\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u044f\u0445, \u043c\u044b \u0442\u0430\u043a \u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435: \u043f\u043e\u043b, \u0432\u043e\u0437\u0440\u0430\u0441\u0442 \u0438 \u0442.\u0434.<\/p>\n<p>  <\/p>\n<p><strong>\u041a\u043e\u043b\u043b\u0430\u0431\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f<\/strong> \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u0432\u0430\u0440\u0435 \u0438\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435, \u0430 \u0441\u0442\u0440\u043e\u0438\u0442 \u0441\u0432\u043e\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u043b\u0438\u0448\u044c \u043d\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043e\u0446\u0435\u043d\u043e\u043a. \u0415\u0435 \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0430\u0439\u0442\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u0441\u0432\u044f\u0437\u0438 \u0442\u0430\u043c, \u0433\u0434\u0435 \u0438\u0445 \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0430\u0439\u0442\u0438 \u043e\u0431\u044b\u0447\u043d\u043e\u043c\u0443 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443.<\/p>\n<p>  <\/p>\n<p>\u0410 <strong>\u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/strong> \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442 \u044d\u0442\u0438 \u0434\u0432\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0432 \u0441\u0435\u0431\u0435. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u043c\u043e\u0434\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0438\u0440\u0435, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0432 \u0441\u0435\u0431\u0435 \u043f\u043e\u043c\u0438\u043c\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0439 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0439, \u0435\u0449\u0435 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u043d\u0438\u0435 \u043e \u0442\u043e\u0432\u0430\u0440\u0430\u0445 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u0445.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e, \u044f \u0443\u0441\u043b\u043e\u0432\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043b\u0438 \u0432\u0441\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043d\u0430 <strong>\u0424\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435<\/strong>, <strong>\u0413\u0440\u0430\u0444\u043e\u0432\u044b\u0435<\/strong> \u0438 <strong>\u041d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0432\u044b\u0435<\/strong>. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u043f\u0435\u0440\u0432\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445. \u041e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u043e <strong>\u043a\u043e\u043b\u043b\u0430\u0431\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438<\/strong>, \u043d\u043e \u043f\u043e\u043f\u0443\u0442\u043d\u043e \u044f \u0431\u0443\u0434\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0434\u043e <strong>\u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0445<\/strong>. \u0410 \u0432 \u043a\u043e\u043d\u0446\u0435 \u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0436\u0434\u0430\u0442\u044c \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u0431\u043e\u043d\u0443\u0441.<\/p>\n<p>  <\/p>\n<h2 id=\"matrix-factorization\">Matrix Factorization<\/h2>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/pf\/rt\/9_\/pfrt9_h1fk5x9bkxgi2vs82h2de.jpeg\"><\/p>\n<p>  <\/p>\n<p>\u0423 \u043d\u0430\u0441 \u0431\u044b\u043b \u043f\u043b\u0430\u043d, \u0438 \u043c\u044b \u0435\u043c\u0443 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b\u0438. \u0412\u043e\u0442 \u043d\u0430\u0448 \u043f\u043b\u0430\u043d: \u043c\u044b \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432. \u0410 \u0434\u0430\u043b\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043c\u0430\u0433\u0438\u0438 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u0438\u0445 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<ul>\n<li>\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b:<br \/> \n<ul>\n<li>Singular Value Decomposition (<strong>SVD<\/strong>)<\/li>\n<li>Singular Value Decomposition with implicit feedback (<strong>SVD++<\/strong>)<\/li>\n<li>Collaborative Filtering with Temporal Dynamics (<strong>TimeSVD++<\/strong>)<\/li>\n<li>Weighted Matrix Factorization (<strong>WMF<\/strong> or <strong>ALS<\/strong>)<\/li>\n<li>Sparse Linear Methods (<strong>SLIM<\/strong>)<\/li>\n<li>Factorization Machines (<strong>FM<\/strong>)<\/li>\n<\/ul>\n<\/li>\n<li>\u0412\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u043d\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b:<br \/> \n<ul>\n<li>Probabilistic Matrix Factorization (<strong>PMF<\/strong>)<\/li>\n<li>Bayesian Probabilistic Matrix Factorization (<strong>BPMF<\/strong>)<\/li>\n<li>Bayesian Factorization Machines (<strong>BFM<\/strong>)<\/li>\n<li>Gaussian Process Factorization Machines (<strong>GPFM<\/strong>)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"singular-value-decomposition-svd\">Singular Value Decomposition (SVD)<\/h3>\n<p>  <\/p>\n<p>\u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u2014 <strong>SVD<\/strong>. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u043d\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/493\/c1c\/008\/493c1c008018df9bed4910321f29ff00.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/038\/f9e\/5bf\/038f9e5bf254d47500d869632af1d6ea.svg\" alt=\"$n \\times m$\" data-tex=\"inline\"><\/math>, \u0433\u0434\u0435 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/135\/24a\/14b\/13524a14b39581c3a3e0de45d5350017.svg\" alt=\"$n = |U|$\" data-tex=\"inline\"><\/math>, \u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/972\/b36\/f54\/972b36f54d8dbc79c512dbeaa34aee91.svg\" alt=\"$m = |I|$\" data-tex=\"inline\"><\/math>. \u0414\u043b\u044f \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u043f\u0430\u0440 \u0438\u0437 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6ca\/d18\/0a4\/6cad180a4ddd9ef33b85b88348fbbf2a.svg\" alt=\"$\\mathcal{D}$\" data-tex=\"inline\"><\/math> \u043c\u044b \u0437\u0430\u043f\u0438\u0448\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0430\u0442\u0440\u0438\u0446\u044b <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/783\/3f3\/fcb\/7833f3fcb8a385c5cce87e5741a42b63.svg\" alt=\"$A_{ui} = r_{ui}$\" data-tex=\"inline\"><\/math>, \u0430 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u0440\u0430\u0432\u043d\u044f\u0435\u043c \u043a \u043d\u0443\u043b\u044e. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f SVD \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/493\/c1c\/008\/493c1c008018df9bed4910321f29ff00.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0445 \u0434\u0440\u0443\u0433\u0438\u0445: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4eb\/ca3\/fb3\/4ebca3fb304b48cc00d0b93bfc85c56d.svg\" alt=\"$U,~\\Sigma,~V$\" data-tex=\"inline\"><\/math>. \u041e\u0441\u0442\u0430\u0432\u0438\u0432 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/16d\/a50\/7b2\/16da507b2fc389688ef0659939dcc647.svg\" alt=\"$k$\" data-tex=\"inline\"><\/math> \u0441\u0430\u043c\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e \u0441\u0438\u043d\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043c\u0430\u043b\u043e\u0440\u0430\u043d\u043e\u0433\u043e\u0432\u0443\u044e \u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0430\u0446\u0438\u044e \u043d\u0430\u0448\u0435\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/493\/c1c\/008\/493c1c008018df9bed4910321f29ff00.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3cd\/2b8\/55d\/3cd2b855dfdcb6dc83919458c94d7e45.svg\" alt=\"$ A = U \\Sigma V^T, \\quad\\quad\\quad\\quad A \\approx \\hat{A} = \\hat{U} \\hat{ \\Sigma } \\hat{V}^T .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u041e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/eb9\/04b\/678\/eb904b678aba503fe98f5759398e5ee0.svg\" alt=\"$Q$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/c3d\/2f2\/c44\/c3d2f2c44fc42edea27de7f8f67b4829.svg\" alt=\"$P$\" data-tex=\"inline\"><\/math> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c. \u0422\u043e\u0433\u0434\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/493\/c1c\/008\/493c1c008018df9bed4910321f29ff00.svg\" alt=\"$A$\" data-tex=\"inline\"><\/math> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/00e\/5e2\/3a1\/00e5e23a1add637b119a25aabcf4f100.svg\" alt=\"$P = (\\hat{U} \\hat{ \\Sigma })^T, \\quad\\quad Q = \\hat{V}^T, \\quad\\quad\\quad\\quad A \\approx P^T \\cdot Q .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0418\u043b\u0438 \u043f\u043e\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/745\/283\/ed1\/745283ed1ec3a28617a448ee9ff5c95c.svg\" alt=\"$r_{ui} \\approx \\hat{r}_{ui} = p^T_u q_i .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/369\/1f1\/d07\/3691f1d076758deaf3bf5073c0fedb3b.svg\" alt=\"$p_u$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1ba\/162\/87f\/1ba16287f577a1402d86a9874b5b3301.svg\" alt=\"$q_i$\" data-tex=\"inline\"><\/math> \u2014 \u044d\u0442\u043e \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/784\/f98\/db3\/784f98db37a499162c1479600e8465ed.svg\" alt=\"$u$\" data-tex=\"inline\"><\/math> \u0438 \u0442\u043e\u0432\u0430\u0440\u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf8\/3b5\/32c\/bf83b532cd867d34004f8eded8c5c79a.svg\" alt=\"$i$\" data-tex=\"inline\"><\/math> \u0432 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430\u0445 \u0440\u0430\u0437\u043c\u0435\u0440\u043d\u043e\u0441\u0442\u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/16d\/a50\/7b2\/16da507b2fc389688ef0659939dcc647.svg\" alt=\"$k$\" data-tex=\"inline\"><\/math>. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0448\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u0438 \u0441\u0440\u0430\u0437\u0443 \u0438\u0441\u043a\u0430\u0442\u044c \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0431 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u044e\u0442 \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/68d\/87e\/31b\/68d87e31b394f7377a6302bebd5cfa8e.svg\" alt=\"$\\Theta = \\{ p_u, q_i| u \\in U, i \\in I\\} .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0418 \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438\u0447\u043d\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 c \u0443\u0447\u0435\u0442\u043e\u043c \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/980\/239\/972\/98023997268c3033ae18fbe143dcd53d.svg\" alt=\"$ \\sum_{(u, i) \\in \\mathcal{D}} (r_{ui} - \\hat{r}_{ui})^2 + \\lambda\\sum_{\\theta \\in \\Theta}\\|\\theta\\|^2 = \\sum_{(u, i) \\in \\mathcal{D}} (r_{ui} - p^T_u q_i)^2 + \\lambda\\sum_{u \\in U}\\|p_u\\|^2 + \\lambda\\sum_{i \\in I}\\|q_i\\|^2 .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0447\u044c \u0434\u0430\u043b\u044c\u0448\u0435, \u0431\u0443\u0434\u0443\u0442 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438. \u041c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0431\u0443\u0434\u0435\u0442 \u043b\u0438\u0448\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a9a\/c13\/e31\/a9ac13e31b5dd3c19a43c4df4bfa4bd7.svg\" alt=\"$\\hat{r}_{ui}$\" data-tex=\"inline\"><\/math>. \u0410 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c\u0438 \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u044b\u043c \u0441\u043f\u0443\u0441\u043a\u043e\u043c (GD) \u0438\u043b\u0438 \u0436\u0435 \u0447\u0435\u0440\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 (ALS). \u0427\u0442\u043e \u044d\u0442\u043e \u0438 \u043e \u0447\u0435\u043c \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u044d\u0442\u043e\u0439 <a href=\"https:\/\/habr.com\/ru\/company\/yandex\/blog\/241455\/\">Habr-\u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/github.com\/esokolov\/ml-course-hse\/blob\/master\/2018-fall\/lecture-notes\/lecture12-factorizations.pdf\" rel=\"nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>, \u0438 \u044f \u043d\u0435 \u0432\u0438\u0436\u0443 \u0441\u043c\u044b\u0441\u043b\u0430 \u0442\u0443\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c\u0441\u044f. \u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043b\u0438\u0448\u044c \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u044b\u0439 \u0441\u043f\u0443\u0441\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043b\u044c\u0448\u0435, \u043d\u043e \u0438 \u0445\u0443\u0436\u0435.<\/p>\n<p>  <\/p>\n<p>\u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 (\u0438\u043d\u043e\u0433\u0434\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e <strong>SVD<\/strong>, \u0435\u0433\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 <strong>SVD<\/strong><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b53\/635\/96d\/b5363596de97ac4e8289b3cd103ffe5a.svg\" alt=\"$_{bias}$\" data-tex=\"inline\"><\/math>). \u0412 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0431\u044b\u0432\u0430\u0435\u0442 \u0442\u0430\u043a, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u044e\u0434\u0438 \u0441\u043a\u043b\u043e\u043d\u043d\u044b \u0437\u0430\u0432\u044b\u0448\u0430\u0442\u044c \u043e\u0446\u0435\u043d\u043a\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u0437\u0430\u043d\u0438\u0436\u0430\u0442\u044c. \u0422\u0430\u043a \u0436\u0435 \u0438 \u0441\u0430\u043c\u0438 \u0442\u043e\u0432\u0430\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b \u0438 \u043c\u0435\u043d\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u044b\u0447\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c <strong>SVD<\/strong> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435 \u0442\u0430\u043a \u0445\u043e\u0440\u043e\u0448\u043e. \u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 (<em>bias<\/em>):<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b9d\/e73\/0c4\/b9de730c42c9b32206ec579d9cd180fb.svg\" alt=\"$\\hat{r}_{ui} =\\mu + b_u + b_i + p^T_u q_i ,$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0433\u0434\u0435 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ff2\/629\/b91\/ff2629b91228356e311249757983bc18.svg\" alt=\"$b_u$\" data-tex=\"inline\"><\/math> \u2014 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/efc\/54b\/d54\/efc54bd547b1a0f308a2ae4281e7d6ed.svg\" alt=\"$b_i$\" data-tex=\"inline\"><\/math> \u2014 \u0434\u043b\u044f \u0442\u043e\u0432\u0430\u0440\u0430, \u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1ec\/36e\/4ef\/1ec36e4efef9e67482ea2b86700b82f2.svg\" alt=\"$\\mu$\" data-tex=\"inline\"><\/math> \u2014 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0441\u0442\u0438\u0442:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/f25\/5ce\/0f5\/f255ce0f5779154b7f41d5b743ad0a07.svg\" alt=\"$\\Theta = \\{ \\mu, b_u, b_i, p_u, q_i| u \\in U, i \\in I\\} .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<h3 id=\"svd\">SVD++<\/h3>\n<p>  <\/p>\n<p>\u0412 \u0440\u0430\u0431\u043e\u0442\u0435 <a href=\"https:\/\/www.cs.rochester.edu\/twiki\/pub\/Main\/HarpSeminar\/Factorization_Meets_the_Neighborhood-_a_Multifaceted_Collaborative_Filtering_Model.pdf\" rel=\"nofollow\">Factorization Meets the Neighborhood<\/a> \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f <strong>SVD<\/strong> \u043c\u043e\u0434\u0435\u043b\u0438. \u041d\u043e \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u044f\u0432\u043d\u044b\u0439 \u0438 \u043d\u0435\u044f\u0432\u043d\u044b\u0439 \u043e\u0442\u043a\u043b\u0438\u043a \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (explicit and implicit user feedback). \u0415\u0441\u043b\u0438 \u043f\u043e \u0438\u0442\u043e\u0433\u0443 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u043c \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u043e\u0446\u0435\u043d\u043a\u0443 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a9a\/552\/0bd\/a9a5520bd190c2c8db10f835e325c6b5.svg\" alt=\"$r_{ui}$\" data-tex=\"inline\"><\/math>, \u0442\u043e \u044d\u0442\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u044f\u0432\u043d\u044b\u043c \u043e\u0442\u043a\u043b\u0438\u043a\u043e\u043c. \u0412 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u043b\u0438\u0448\u044c \u043e\u0431 \u0438\u0445 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438 \u0438 \u044d\u0442\u043e \u043d\u0435\u044f\u0432\u043d\u044b\u0439. \u0410\u0432\u0442\u043e\u0440\u044b \u0441\u0442\u0430\u0442\u044c\u0438 \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u0443\u044e\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441 \u0434\u0432\u0443\u043c\u044f \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cc9\/834\/4bd\/cc98344bd4e2e4e73e7cbc797cad9fb5.svg\" alt=\"$R(u)$\" data-tex=\"inline\"><\/math> \u2014 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0441 \u044f\u0432\u043d\u044b\u043c \u043e\u0442\u043a\u043b\u0438\u043a\u043e\u043c (\u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0437\u043d\u0430\u0435\u043c) \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/417\/394\/dd7\/417394dd7706f901add2cdc5eb104f7a.svg\" alt=\"$N(u)$\" data-tex=\"inline\"><\/math> \u2014 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0441 \u043d\u0435\u044f\u0432\u043d\u044b\u043c \u043e\u0442\u043a\u043b\u0438\u043a\u043e\u043c (\u0437\u043d\u0430\u0435\u043c \u043b\u0438\u0448\u044c \u043e \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f).<\/p>\n<p>  <\/p>\n<p>\u041c\u0435\u0442\u043e\u0434 <strong>SVD++<\/strong> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043d\u0435\u044f\u0432\u043d\u044b\u0439 \u043e\u0442\u043a\u043b\u0438\u043a \u0438 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043c\u043e\u0434\u0435\u043b\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/4fd\/054\/128\/4fd0541286e5467c78786a03c7b431b7.svg\" alt=\"$\\hat{r}_{ui} =\\mu + b_u + b_i + q^T_i \\left( p_u + |N(u)|^{-1\/2} \\sum_{j \\in N(u)} y_j \\right) .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fe6\/7e6\/688\/fe67e668866cf27627a09a080bfa3a06.svg\" alt=\"$\\Theta = \\{ \\mu, b_u, b_i, p_u, q_i, y_i| u \\in U, i \\in I\\} .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0435\u044f\u0432\u043d\u044b\u0439 \u043e\u0442\u043a\u043b\u0438\u043a \u0438\u043d\u043e\u0433\u0434\u0430 \u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c, \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/417\/394\/dd7\/417394dd7706f901add2cdc5eb104f7a.svg\" alt=\"$N(u)$\" data-tex=\"inline\"><\/math> \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cc9\/834\/4bd\/cc98344bd4e2e4e73e7cbc797cad9fb5.svg\" alt=\"$R(u)$\" data-tex=\"inline\"><\/math>, \u0442.\u043a. \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e3a\/a78\/9c1\/e3aa789c1fe915e7cc420e323a1952a4.svg\" alt=\"$R(u) \\subset N(u)$\" data-tex=\"inline\"><\/math>. \u0410 \u0434\u043e\u0431\u0430\u0432\u043a\u0443 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u0442\u043e\u0432\u0430\u0440\u0430 \u043a \u0442\u043e\u0432\u0430\u0440\u0443 (item-item recommendation).<\/p>\n<p>  <\/p>\n<h4 id=\"asymmetric-svd\">Asymmetric-SVD<\/h4>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u0435 \u0441 <strong>SVD++<\/strong> \u0430\u0432\u0442\u043e\u0440\u044b \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0434\u0440\u0443\u0433\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c. \u0418\u0434\u0435\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0442\u0430\u043a \u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435\u044f\u0432\u043d\u043e\u0433\u043e \u043e\u0442\u043a\u043b\u0438\u043a\u0430. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043e\u043d\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/610\/dad\/4f5\/610dad4f51179944706bf4d0739ff8ff.svg\" alt=\"$\\hat{r}_{ui} = b_{ui} + q^T_i \\left( |R(u)|^{-1\/2} \\sum_{j \\in R(u)} (r_{uj} - b_{uj})x_j + |N(u)|^{-1\/2} \\sum_{j \\in N(u)} y_j \\right) ,$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0433\u0434\u0435 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/047\/7b7\/eca\/0477b7eca12cf1f255f4c44cf6ed9863.svg\" alt=\"$b_{ui} = \\mu + b_u + b_i$\" data-tex=\"inline\"><\/math><\/p>\n<p>  <\/p>\n<h3 id=\"timesvd\">TimeSVD++<\/h3>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0448\u0438\u0440\u043e\u043a\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <strong>TimeSVD++<\/strong>. \u0412 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (MovieLens, Netflix) \u043f\u043e\u043c\u0438\u043c\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0439 \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u043e\u0432 \u0444\u0438\u043b\u044c\u043c\u043e\u0432 \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e\u0442 \u0440\u0435\u0439\u0442\u0438\u043d\u0433 \u0431\u044b\u043b \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d. \u041e\u0442\u0441\u044e\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0437\u0430\u043a\u043e\u043d\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441, \u043a\u0430\u043a \u044d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 <a href=\"http:\/\/citeseerx.ist.psu.edu\/viewdoc\/download?doi=10.1.1.379.1951&amp;rep=rep1&amp;type=pdf\" rel=\"nofollow\">Collaborative Filtering with Temporal Dynamics<\/a> \u0430\u0432\u0442\u043e\u0440\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0432 \u043c\u043e\u0434\u0435\u043b\u044c <strong>SVD++<\/strong> \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e02\/0d9\/126\/e020d9126fe660f04fc6ad8cab4d38bc.svg\" alt=\"$\\hat{r}_{ui}(t) =\\mu + b_u(t) + b_i(t) + q^T_i \\left( p_u(t) + |R(u)|^{-1\/2} \\sum_{j \\in R(u)} y_j \\right) .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u0441\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0435:<br \/>  <em>Item bias:<\/em> \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043a\u043e\u0433\u0434\u0430 \u0431\u044b\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0438 \u043d\u0430 \u043e\u0442\u0440\u0435\u0437\u043a\u0438 (\u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 30 \u0447\u0430\u0441\u0442\u0435\u0439) \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ecb\/f71\/819\/ecbf71819bb57da8dfb1295e6db2f67f.svg\" alt=\"$b_{i,\\text{Bin}(t)}$\" data-tex=\"inline\"><\/math> \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u0432 \u043a\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u043f\u043e\u043f\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/9b0\/012\/4e4\/9b00124e411362185d05b841bc32695f.svg\" alt=\"$t$\" data-tex=\"inline\"><\/math>: <\/p>\n<\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/20f\/ab0\/484\/20fab04841f32847323807719800e1c2.svg\" alt=\"$b_i(t) = b_i + b_{i, \\text{Bin}(t)}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <em>User bias:<\/em> \u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044f \u0434\u0430\u043d\u043d\u044b\u0435 Neflix, \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438, \u0447\u0442\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u0435\u0441\u0442\u044c \u043b\u0438\u0448\u044c 40 \u0434\u043d\u0435\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043d \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u044f\u043b \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u043c \u043a\u0430\u043a \u0441 \u0442\u043e\u0432\u0430\u0440\u0430\u043c\u0438 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u0432\u043e\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/957\/45c\/b65\/95745cb65224ec210b7e057dc2784fed.svg\" alt=\"$b_{u, t}$\" data-tex=\"inline\"><\/math> \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043b\u0438\u043d\u0435\u0439\u043d\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u2014 \u0432\u0432\u0435\u0434\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0435 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7ac\/91b\/31c\/7ac91b31c1f34cda6b7495d025961d0b.svg\" alt=\"$\\alpha_u$\" data-tex=\"inline\"><\/math> \u0441 \u0430\u043c\u043e\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u043c: <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5ba\/b3d\/59f\/5bab3d59fc5eff1b6aa933908ea89093.svg\" alt=\"$b_i(t) = b_i + \\alpha_u \\cdot \\text{dev}_u(t) + b_{u, t} \\quad\\quad\\quad\\quad \\text{dev}_u(t) = \\text{sign}(t - t_u) \\cdot |t - t_u|^{\\beta}$\" data-tex=\"display\"><\/math><\/p>\n<p>  .<br \/>  <em>\u0415\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b, \u043a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439: \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435<\/em><br \/>  <em>User embeddings:<\/em> \u043f\u043e\u0445\u043e\u0436\u0438\u0439 \u0442\u0440\u044e\u043a \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043d\u0430\u0448\u0435\u0433\u043e \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/993\/b80\/fca\/993b80fca21f732b70ffff617b464c84.svg\" alt=\"$p_u(t) = (p_{u1}(t), \\dots, p_{uf}(t))^T$\" data-tex=\"inline\"><\/math>: <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5d5\/ab5\/1ea\/5d5ab51ea390f732070d0d58332ddb74.svg\" alt=\"$p_{uk}(t) = p_{uk} + \\alpha_{uk} \\cdot \\text{dev}_u(t) + p_{uk, t}. $\" data-tex=\"display\"><\/math><\/p>\n<h3 id=\"weighted-matrix-factorization-wmf--alternating-least-squares-als\">Weighted Matrix Factorization (WMF) &amp; Alternating Least Squares (ALS)<\/h3>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0435\u0441\u0442\u044c \u0432 <strong>SVD<\/strong>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u0438\u0448\u044c \u044f\u0432\u043d\u043e\u0433\u043e \u043e\u0442\u043a\u043b\u0438\u043a\u0430 \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u042d\u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0440\u0435\u0448\u0438\u043b\u0438 \u0432 <strong>SVD++<\/strong>. \u041d\u043e \u0435\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0443\u0442\u044c \u2014 Weighted Matrix Factorization (<strong>WMF<\/strong>). \u0412 \u044d\u0442\u043e <a href=\"http:\/\/yifanhu.net\/PUB\/cf.pdf\" rel=\"nofollow\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u043c\u0435\u043d\u044f\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c (<math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/642\/33f\/a2e\/64233fa2e619142243d0b697b1d3a351.svg\" alt=\"$\\hat{r}_{ui} = p^T_u q_i$\" data-tex=\"inline\"><\/math>), \u0430 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u041f\u0440\u0438\u0441\u0432\u043e\u0438\u043c \u0434\u043b\u044f \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u043e\u0432 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a9a\/552\/0bd\/a9a5520bd190c2c8db10f835e325c6b5.svg\" alt=\"$r_{ui}$\" data-tex=\"inline\"><\/math>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u043c (\u0442.\u0435. \u0434\u043b\u044f \u043f\u0430\u0440 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b42\/63b\/a91\/b4263ba9134570185d2740bcd4e9524c.svg\" alt=\"$(u, i) \\notin \\mathcal{D}$\" data-tex=\"inline\"><\/math>) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e\u0435 0. \u0410 \u0434\u0430\u043b\u044c\u0448\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u044b <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/33f\/bdd\/51b\/33fbdd51bd7713621bb6f9e87782ad4d.svg\" alt=\"$(u, i)$\" data-tex=\"inline\"><\/math> \u0432\u0432\u0435\u0434\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/61c\/611\/2e8\/61c6112e84559f2b60a41639b9660b01.svg\" alt=\"$c_{ui}$\" data-tex=\"inline\"><\/math>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a9a\/552\/0bd\/a9a5520bd190c2c8db10f835e325c6b5.svg\" alt=\"$r_{ui}$\" data-tex=\"inline\"><\/math>. \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043f\u043e\u0441\u044b\u043b \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u044f\u0432\u043d\u044b\u043c \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u043c. \u0412\u0435\u0434\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0433 \u043a\u0443\u043f\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0442\u043e\u0432\u0430\u0440 \u043a\u0430\u043a \u043f\u043e\u0434\u0430\u0440\u043e\u043a \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0430. \u0418\u043b\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0432\u0438\u0434\u0435\u043e \u0432 YouTube \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043e\u0442\u043e\u0448\u0435\u043b \u043e\u0442 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430. \u041f\u043b\u044e\u0441 \u043a\u043e \u0432\u0441\u0435\u043c\u0443, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u043d\u0430\u0435\u043c, \u043d\u043e \u0438 \u043d\u0435 \u0437\u043d\u0430\u0435\u043c. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u043c \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0443\u0447\u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bb1\/7c3\/095\/bb17c3095e2489b852b5f0b4fda4e00a.svg\" alt=\"$ \\sum_{(u, i)} c_{ui}(r_{ui} - \\hat{r}_{ui})^2 + \\lambda\\sum_{\\theta \\in \\Theta}\\|\\theta\\|^2 .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0410\u0432\u0442\u043e\u0440\u044b \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0432\u044b\u0431\u043e\u0440 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/66a\/44b\/437\/66a44b4375c05f2f105ab55a8011e3f4.svg\" alt=\"$c_{ui} = 1 + \\alpha r_{ui}$\" data-tex=\"inline\"><\/math>. \u0422\u0430\u043a\u043e\u0439 \u0432\u044b\u0431\u043e\u0440 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438: \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0442\u0435\u0445 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/3da\/8e5\/885\/3da8e5885a074600efce08541675c931.svg\" alt=\"$r_{ui} &gt; 0$\" data-tex=\"inline\"><\/math> \u0438 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0435 \u0434\u043b\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/391\/62e\/592\/39162e5927b658f693360b49eea6b508.svg\" alt=\"$r_{ui} = 0$\" data-tex=\"inline\"><\/math>. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/723\/4a5\/2ba\/7234a52ba041cdb09b9328a047048fb2.svg\" alt=\"$\\alpha$\" data-tex=\"inline\"><\/math> \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u043d\u044b\u0439 \u0438 \u0432 \u044d\u0442\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u043f\u0440\u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fd4\/219\/464\/fd4219464f42f0bfe5049ee0aeee5749.svg\" alt=\"$\\alpha = 40$\" data-tex=\"inline\"><\/math> \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u0430\u043b\u0430 \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b.<\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u0436\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u0432 \u0442\u043e\u0439 \u0436\u0435 <a href=\"http:\/\/yifanhu.net\/PUB\/cf.pdf\" rel=\"nofollow\">\u0440\u0430\u0431\u043e\u0442\u0435<\/a> \u0430\u0432\u0442\u043e\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 (ALS) \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u0418 \u0432 \u043b\u0438\u0442\u0435\u0440\u0430\u0442\u0443\u0440\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u043a\u0430\u043a \u043c\u0435\u0442\u043e\u0434 <strong>WMF<\/strong>, \u0442\u0430\u043a \u0438 <strong>ALS<\/strong>, \u043d\u043e \u044d\u0442\u043e \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435.<\/p>\n<p>  <\/p>\n<h4 id=\"fast-alternating-least-squares\">Fast Alternating Least Squares<\/h4>\n<p>  <\/p>\n<p>\u0413\u043e\u0432\u043e\u0440\u044f \u043f\u0440\u043e <strong>ALS<\/strong> \u043c\u0435\u0442\u043e\u0434, \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u043c\u0435\u0442\u043e\u0434 <strong>eALS<\/strong> \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 \u044d\u0442\u043e\u0439 <a href=\"https:\/\/www.comp.nus.edu.sg\/~xiangnan\/papers\/sigir16-eals-cm.pdf\" rel=\"nofollow\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a>. \u041c\u0435\u0442\u043e\u0434 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u0430 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u0417\u0430 \u0441\u0447\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0443\u043c\u043d\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043a\u0435\u0448\u0430, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043d\u0430 \u043b\u0435\u0442\u0443. \u0417\u0430 \u0441\u0447\u0435\u0442 \u044d\u0442\u043e\u0433\u043e \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u0430\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043b \u0441\u0435\u0431\u044f \u0432 \u043e\u043d\u043b\u0430\u0439\u043d \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u0445.<\/p>\n<p>  <\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u044d\u0442\u043e\u0433\u043e, \u0430\u0432\u0442\u043e\u0440\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u043d\u043e\u0432\u044b\u0439 \u0432\u0438\u0434 \u0434\u043b\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/61c\/611\/2e8\/61c6112e84559f2b60a41639b9660b01.svg\" alt=\"$c_{ui}$\" data-tex=\"inline\"><\/math> \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0432 <strong>ALS<\/strong> \u043c\u0435\u0442\u043e\u0434\u0435:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/fc3\/13e\/cca\/fc313eccac2fe9f6e12447a4480ba934.svg\" alt=\"$c_{ui} = c_i + \\alpha r_{ui}, \\quad\\quad\\quad\\quad c_i = c_0 \\frac{f_i^{\\beta}}{\\sum_{j \\in I} f_j^{\\beta}} ,$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0441 \u0434\u0432\u0443\u043c\u044f \u043d\u043e\u0432\u044b\u043c\u0438 \u0433\u0438\u043f\u0435\u0440\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/206\/00c\/422\/20600c422160c10dc3d3b3348a973c94.svg\" alt=\"$c_0$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/7fd\/b73\/0d9\/7fdb730d916a98c0ad71826e0bc706bf.svg\" alt=\"$\\beta$\" data-tex=\"inline\"><\/math>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<h3 id=\"sparse-linear-methods-slim\">Sparse Linear Methods (SLIM)<\/h3>\n<p>  <\/p>\n<p>\u0412 \u0440\u0430\u0431\u043e\u0442\u0435 <a href=\"https:\/\/www.researchgate.net\/publication\/220765374_SLIM_Sparse_Linear_Methods_for_Top-N_Recommender_Systems\" rel=\"nofollow\">Sparse Linear Methods (SLIM)<\/a> \u0430\u0432\u0442\u043e\u0440\u044b \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u043d\u043e\u0432\u044b\u0439 \u043c\u0435\u0442\u043e\u0434. \u0413\u043b\u0430\u0432\u043d\u043e\u0439 \u043c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u0435\u0439 \u043f\u043e\u0441\u043b\u0443\u0436\u0438\u043b\u043e \u0442\u043e, \u0447\u0442\u043e <strong>SVD<\/strong> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0433\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043d\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043d\u0430 \u0438\u0434\u0435\u0438 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0445 \u0441\u043e\u0441\u0435\u0434\u0435\u0439 \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0442\u043e\u0432\u0430\u0440\u043e\u0432. \u041c\u043e\u0434\u0435\u043b\u044c <strong>SLIM<\/strong> \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d27\/6f1\/e25\/d276f1e25ad7f47a0351092d800811fe.svg\" alt=\"$\\hat{a}_{ui} = a^T_u w_i \\quad\\quad\\quad\\quad \\hat{A} = AW$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0422\u043e\u0433\u0434\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0432 \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0441\u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/adb\/368\/77d\/adb36877dda62123f414171ca8201df5.svg\" alt=\"$W \\in \\mathbb{R}^{m \\times m}$\" data-tex=\"inline\"><\/math>. \u041f\u0440\u0438\u0447\u0435\u043c \u043d\u0430 \u044d\u0442\u0443 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u0432\u0435\u0441\u043e\u0432 \u043c\u044b \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/840\/59f\/931\/84059f93133a238164d0071c168daf45.svg\" alt=\"$W \\geq 0$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/099\/7b9\/670\/0997b96708dd81b97ad9767e2fd55314.svg\" alt=\"$\\text{diag}(W) = 0$\" data-tex=\"inline\"><\/math>. \u0418 \u044d\u0442\u0438 \u0432\u0435\u0441\u0430 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/8ae\/134\/102\/8ae134102604f67d1a0356a6278c8d51.svg\" alt=\"$\\frac{1}{2}\\|A - AW\\|^2_F + \\frac{\\beta}{2}\\|W\\|^2_F + \\lambda\\|W\\|_1$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u041c\u0430\u0442\u0440\u0438\u0446\u0443 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6e5\/abb\/15e\/6e5abb15e29d1257aebb0838e6251398.svg\" alt=\"$W$\" data-tex=\"inline\"><\/math> \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u043e\u0445\u043e\u0436\u0435\u0441\u0442\u0438 \u0438\u043b\u0438 \u0432\u0430\u0436\u043d\u043e\u0441\u0442\u0438 \u043c\u0435\u0436\u0434\u0443 \u0432\u0441\u0435\u043c\u0438 \u0442\u043e\u0432\u0430\u0440\u0430\u043c\u0438. <\/p>\n<p>  <\/p>\n<h3 id=\"factorization-machines-fm\">Factorization Machines (FM)<\/h3>\n<p>  <\/p>\n<p>\u0414\u0440\u0443\u0433\u043e\u0439 \u043c\u043e\u0449\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b\u043b\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 <a href=\"https:\/\/www.csie.ntu.edu.tw\/~b97053\/paper\/Rendle2010FM.pdf\" rel=\"nofollow\">Factorization Machines<\/a> (<strong>FM<\/strong>). \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0447\u0442\u043e \u0446\u0435\u043b\u0435\u0432\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u0441\u0430\u043c\u0438\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432, \u043d\u043e \u0438 \u0435\u0449\u0435 \u043e\u0442 \u0438\u0445 \u043f\u043e\u043f\u0430\u0440\u043d\u043e\u0433\u043e \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f (\u043f\u043e\u043b\u0438\u043d\u043e\u043c\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0440\u0435\u0433\u0440\u0435\u0441\u0441\u0438\u044f 2-\u043e\u0433\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430). \u0422\u043e\u0433\u0434\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ea4\/fe5\/135\/ea4fe51350aa77b2b7fcee2933dd7e06.svg\" alt=\"$\\hat{r}(x) = w_0 + \\sum_{i=1}^{n} w_i x_i + \\sum_{i=1}^{n} \\sum_{i=j+1}^{n} v^T_i v_j ~ x_i x_j, \\quad\\quad\\quad\\quad w_0 \\in \\mathbb{R} ~~~ w \\in \\mathbb{R}^n ~~~ V \\in \\mathbb{R}^{n \\times k} .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u043e\u0445\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0441\u043f\u0443\u0441\u043a\u0430 (SGD) (\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0440\u0430\u0431\u043e\u0442\u0435). \u041d\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/817\/b92\/407\/817b92407f764f57af9226e50cc788fd.svg\" alt=\"$x$\" data-tex=\"inline\"><\/math> \u0438 \u043a\u0430\u043a \u043e\u043d\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u043d\u0430\u0448\u0435\u0439 \u043f\u0430\u0440\u043e\u0439 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/33f\/bdd\/51b\/33fbdd51bd7713621bb6f9e87782ad4d.svg\" alt=\"$(u, i)$\" data-tex=\"inline\"><\/math>. \u0411\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u043d\u043e \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u0441\u043d\u0438\u0437\u0443. \u041f\u0435\u0440\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0432\u0442\u043e\u0440\u0430\u044f \u2014 \u0442\u043e\u0432\u0430\u0440. \u041f\u043e\u0441\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u2014 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u043e\u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u0442\u0440\u0435\u0442\u044c\u044f \u0447\u0430\u0441\u0442\u044c). \u0414\u0440\u0443\u0433\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043b\u0438\u0448\u044c \u043e\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0432\u0430\u0448\u0435\u0439 \u043a\u0440\u0435\u0430\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 (\u0436\u0438\u0440\u043d\u044b\u0439 \u043d\u0430\u043c\u0435\u043a \u043d\u0430 \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b).<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/wu\/lb\/fy\/wulbfy64o2tax-utfap7kw3mgm4.png\"><\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u0436\u0435 \u0430\u0432\u0442\u043e\u0440\u044b \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442, \u0447\u0442\u043e <strong>SVD<\/strong>, <strong>SVD++<\/strong> \u2014 \u044d\u0442\u043e \u043b\u0438\u0448\u044c \u0447\u0430\u0441\u0442\u043d\u044b\u0435 \u0441\u043b\u0443\u0447\u0430\u0438 <strong>FM<\/strong>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0434\u043b\u044f <strong>SVD<\/strong> \u044d\u0442\u043e \u043b\u0435\u0433\u043a\u043e \u0432\u0438\u0434\u043d\u043e, \u0435\u0441\u043b\u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u0442\u044c:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6ca\/1a8\/d4d\/6ca1a8d4d44b4f8bfb0b03b4860be90c.svg\" alt=\"$ n = | U \\cup I |, \\quad\\quad\\quad x_j = \\delta (j = u ~\\lor~ j = i) .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0433\u0434\u0435 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/dd8\/a86\/2f5\/dd8a862f53583925b661220cb68f577b.svg\" alt=\"$\\delta$\" data-tex=\"inline\"><\/math> \u2014 \u0441\u0438\u043c\u0432\u043e\u043b \u041a\u0440\u043e\u043d\u0435\u043a\u0435\u0440\u0430. \u0422.\u0435. \u0432\u0435\u043a\u0442\u043e\u0440 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/817\/b92\/407\/817b92407f764f57af9226e50cc788fd.svg\" alt=\"$x$\" data-tex=\"inline\"><\/math> \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043d\u0443\u043b\u0435\u0439 \u0438 \u0434\u0432\u0443\u0445 \u0435\u0434\u0438\u043d\u0438\u0446 \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0445 \u043a\u043e\u0434\u0438\u0440\u0443\u044e\u0449\u0438\u0445 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/784\/f98\/db3\/784f98db37a499162c1479600e8465ed.svg\" alt=\"$u$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf8\/3b5\/32c\/bf83b532cd867d34004f8eded8c5c79a.svg\" alt=\"$i$\" data-tex=\"inline\"><\/math>. \u0422\u043e\u0433\u0434\u0430 \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f <strong>FM<\/strong> \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/36c\/44d\/a11\/36c44da1106a51d46adc9adb8a1f7a7b.svg\" alt=\"$\\hat{r}(x) = w_0 + w_u + w_i + v^T_u v_i .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0438 \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043b\u044e\u0431\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/817\/b92\/407\/817b92407f764f57af9226e50cc788fd.svg\" alt=\"$x$\" data-tex=\"inline\"><\/math>: \u0432\u0440\u0435\u043c\u044f, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u043c\u0430 \u0435\u0441\u0442\u044c \u0436\u0430\u043d\u0440, \u0433\u043e\u0434 \u0432\u044b\u043f\u0443\u0441\u043a\u0430, \u0441\u0442\u0440\u0430\u043d\u0430, \u0440\u0435\u0436\u0438\u0441\u0441\u0451\u0440, \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0441\u0442, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 \u0438 \u0430\u043a\u0442\u0435\u0440\u0441\u043a\u0438\u0439 \u0441\u043e\u0441\u0442\u0430\u0432. \u0412\u0441\u0435 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u0438.<\/p>\n<p>  <\/p>\n<h3 id=\"probabilistic-matrix-factorization-pmf\">Probabilistic Matrix Factorization (PMF)<\/h3>\n<p>  <\/p>\n<p>\u0414\u043e\u0440\u043e\u0433\u043e\u0439 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c, \u0445\u043e\u0447\u0443 \u043f\u043e\u0437\u0434\u0440\u0430\u0432\u0438\u0442\u044c \u0442\u0435\u0431\u044f, \u0447\u0442\u043e \u0442\u044b \u0434\u043e\u0448\u0435\u043b \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u0432\u043e\u0442 \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0430\u0447\u043d\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0435.<\/p>\n<p>  <\/p>\n<p>\u0414\u0440\u0443\u0433\u043e\u0439 \u043c\u043e\u0449\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u043d\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0447\u043d\u0430\u044f \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f (<strong>PMF<\/strong>), \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u0430\u044f \u0432 \u044d\u0442\u043e\u0439 <a href=\"https:\/\/papers.nips.cc\/paper\/3208-probabilistic-matrix-factorization.pdf\" rel=\"nofollow\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a>. \u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0438\u0434\u0435\u044f, \u0432\u0437\u044f\u0442\u044c \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 <strong>SVD<\/strong>: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/369\/1f1\/d07\/3691f1d076758deaf3bf5073c0fedb3b.svg\" alt=\"$p_u$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/1ba\/162\/87f\/1ba16287f577a1402d86a9874b5b3301.svg\" alt=\"$q_i$\" data-tex=\"inline\"><\/math> \u2014 \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432. \u041d\u043e \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438, \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u043d\u0443\u044e:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a7d\/259\/651\/a7d25965157dfe244217a643f68db5cd.svg\" alt=\"$p(r | P, Q, \\sigma) = \\prod_{(u, i) \\in \\mathcal{D}}\\mathcal{N}(r_{ui}| g(p_u^Tq_i), \\sigma^2) ,$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0433\u0434\u0435 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6e4\/eb7\/d6f\/6e4eb7d6fd534a5f69e37326b833a8b6.svg\" alt=\"$\\mathcal{N}$\" data-tex=\"inline\"><\/math> \u2014 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435, a <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/192\/e74\/cc7\/192e74cc76677e6494c209cfbe2f0123.svg\" alt=\"$g(x) = \\frac{1}{1 + e^{-x}}$\" data-tex=\"inline\"><\/math> \u2014 \u043b\u043e\u0433\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f (\u0441\u0438\u0433\u043c\u043e\u0439\u0434\u0430). \u0421\u0434\u0435\u043b\u0430\u0435\u043c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0430\u0448\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0438 \u0442\u043e\u0432\u0430\u0440\u044b \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b, \u0442\u043e\u0433\u0434\u0430 \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u043f\u043e \u0413\u0430\u0443\u0441\u0443 \u0441 \u043d\u0443\u043b\u0435\u0432\u044b\u043c \u0441\u0440\u0435\u0434\u043d\u0438\u043c \u0438 \u0434\u0438\u0430\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u043a\u043e\u0432\u0430\u0440\u0438\u0430\u0446\u0438\u0438:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/90b\/670\/c5e\/90b670c5ef8ca39296e18f318311ca94.svg\" alt=\"$ p(P| \\sigma_p) = \\prod_{u \\in U} p(p_u| 0, \\sigma^2_p \\mathbf{I}), \\quad\\quad\\quad\\quad p(Q| \\sigma^2_q) = \\prod_{i \\in I} p(q_i| 0, \\sigma_q^2 \\mathbf{I}) .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0418 \u0435\u0441\u043b\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0430\u0432\u0434\u043e\u043f\u043e\u0434\u043e\u0431\u0438\u044f (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435) \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6e2\/b94\/940\/6e2b949407a7f707818c9bc6b380ba4e.svg\" alt=\"$\\frac{1}{2} \\sum_{(u, i) \\in \\mathcal{D}} (r_{ui} - p_u^T q_i)^2 + \\frac{\\lambda_p}{2} \\sum_{u \\in U} \\|p_u\\|^2 + \\frac{\\lambda_q}{2} \\sum_{i \\in I} \\|q_i\\|^2 ,$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0433\u0434\u0435 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/101\/97e\/c93\/10197ec936003d25f2c930bc6e69e3f0.svg\" alt=\"$\\lambda_p = \\frac{\\sigma_p}{\\sigma}$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/921\/78c\/2fc\/92178c2fcce6d140fa6a975256a3e17e.svg\" alt=\"$\\lambda_q = \\frac{\\sigma_q}{\\sigma}$\" data-tex=\"inline\"><\/math> \u2014 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u0438. \u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c <strong>SVD<\/strong> \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0433\u0438\u043f\u0435\u0440\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438, \u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438.<\/p>\n<p>  <\/p>\n<h4 id=\"constrained-pmf\">Constrained PMF<\/h4>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e <strong>PMF<\/strong> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <strong>Constrained PMF<\/strong>. \u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u043f\u043e\u0447\u0442\u0438 \u0442\u0430 \u0436\u0435 \u0441\u0430\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0438 <strong>SVD<\/strong> \u0434\u043e <strong>SVD++<\/strong>. \u041c\u043e\u0434\u0435\u043b\u044c \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/369\/1f1\/d07\/3691f1d076758deaf3bf5073c0fedb3b.svg\" alt=\"$p_u$\" data-tex=\"inline\"><\/math> \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/5db\/341\/ec3\/5db341ec312b4ebb55da5f1b34b03f19.svg\" alt=\"$p_u + \\frac{\\sum_{i \\in R(u)} y_i}{|R(u)|} ,$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0433\u0434\u0435 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cc9\/834\/4bd\/cc98344bd4e2e4e73e7cbc797cad9fb5.svg\" alt=\"$R(u)$\" data-tex=\"inline\"><\/math> \u2014 \u0432\u0441\u0435 \u0442\u043e \u0436\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u0432\u0430\u0440\u043e\u0432, \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/784\/f98\/db3\/784f98db37a499162c1479600e8465ed.svg\" alt=\"$u$\" data-tex=\"inline\"><\/math>.<\/p>\n<p>  <\/p>\n<h3 id=\"bayesian-probabilistic-matrix-factorization-bpmf\">Bayesian Probabilistic Matrix Factorization (BPMF)<\/h3>\n<p>  <\/p>\n<p>\u0418 \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e <a href=\"https:\/\/www.cs.toronto.edu\/~amnih\/papers\/bpmf.pdf\" rel=\"nofollow\">\u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435<\/a> <strong>PMF<\/strong> \u0434\u043e <strong>BPMF<\/strong>. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c <strong>PMF<\/strong> \u043c\u043e\u0434\u0435\u043b\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0438 \u0442\u043e\u0432\u0430\u0440\u044b \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435. \u041c\u044b \u043c\u043e\u0436\u0435\u043c \u044d\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043c\u0435\u043d\u044f\u0432 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/74d\/253\/2cc\/74d2532cc35e692cc5a076b9ab2e42c8.svg\" alt=\"$ p(P| \\mu_p, \\Lambda_p) = \\prod_{u \\in U} p(p_u| \\mu_p, \\Lambda_p) ,\\quad\\quad\\quad\\quad p(Q| \\mu_q, \\Lambda_q) = \\prod_{i \\in I} p(q_i| \\mu_q, \\Lambda_q) .$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6f6\/f97\/740\/6f6f977405b2253a38f38b50f76c56b9.svg\" alt=\"$\\Theta_p = \\{ \\mu_p, \\Lambda_p \\}$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/2f5\/a78\/2da\/2f5a782daaee7dea93551825be7bc3ad.svg\" alt=\"$\\Theta_q = \\{ \\mu_q, \\Lambda_q \\}$\" data-tex=\"inline\"><\/math> \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0438\u0437 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f <a href=\"https:\/\/en.wikipedia.org\/wiki\/Normal-Wishart_distribution\" rel=\"nofollow\">\u0413\u0430\u0443\u0441\u0441\u0430-\u0412\u0438\u0448\u0430\u0440\u0442\u0430<\/a> \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0441\u0432\u043e\u0438 \u0433\u0438\u043f\u0435\u0440\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/846\/b07\/e88\/846b07e88bda27aa23cc1b9a4bdc7c06.svg\" alt=\"$\\Theta_0 = \\{ \\mu_0, \\nu_0, W_0 \\}$\" data-tex=\"inline\"><\/math>. \u0421\u0442\u043e\u0438\u0442 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u0438 \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a <a href=\"https:\/\/www.cs.toronto.edu\/~amnih\/papers\/bpmf.pdf\" rel=\"nofollow\">\u043f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0443<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"bayesian-factorization-machines-bfm\">Bayesian Factorization Machines (BFM)<\/h3>\n<p>  <\/p>\n<p>\u041d\u0443 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043e\u0434\u0438\u043d \u0438\u0437 \u043b\u0443\u0447\u0448\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0443 <em>Bayesian<\/em>, \u0432\u043e\u0442 <a href=\"https:\/\/www.ismll.uni-hildesheim.de\/pub\/pdfs\/FreudenthalerRendle_BayesianFactorizationMachines.pdf\" rel=\"nofollow\">\u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430<\/a>. \u0415\u0441\u043b\u0438 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043d\u0430 \u0441\u0435\u043a\u0443\u043d\u0434\u043e\u0447\u043a\u0443 \u043e\u0431\u044b\u0447\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u0442\u043e \u043d\u0430\u0448\u0438\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0431\u0443\u0434\u0435\u0442 \u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/340\/578\/8b0\/3405788b04cb765ad525a4a1d0e46597.svg\" alt=\"$\\Theta = \\{ w_0, w_i, v_i\\} .$\" data-tex=\"inline\"><\/math> \u041a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u0438\u0434\u0435\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043a\u0430\u043a\u043e\u043c\u0443-\u0442\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u0432\u0435\u0434\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0433\u0438\u043f\u0435\u0440\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432: <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/541\/1a2\/10a\/5411a210a7502cccfbfd1b7c94ac5da7.svg\" alt=\"$\\Theta_H = \\{ \\lambda_{\\theta}, \\mu_{\\theta} | \\theta \\in \\Theta \\}$\" data-tex=\"inline\"><\/math>. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0430\u043f\u043e\u0441\u0442\u0435\u0440\u0438\u043e\u0440\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043d\u0430\u0448\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0445\u0438\u0442\u0440\u044b\u0445 \u0442\u0435\u0445\u043d\u0438\u043a \u0441\u044d\u043c\u043f\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 \u043d\u0435\u0433\u043e.<\/p>\n<p>  <\/p>\n<h3 id=\"gaussian-process-factorization-machines-gpfm\">Gaussian Process Factorization Machines (GPFM)<\/h3>\n<p>  <\/p>\n<p>\u0412 <a href=\"http:\/\/dnslab.jnu.ac.kr\/classes\/old_courses\/2015s_das\/%5BSIGIR%202014%5D%20Gaussian%20Process%20Factorization%20Machines%20for%20Context-aware%20Recommendations.pdf\" rel=\"nofollow\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043f\u0440\u043e <strong>GPFM<\/strong> \u0430\u0432\u0442\u043e\u0440\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043a \u0444\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u043c\u0430\u0448\u0438\u043d\u0430\u043c \u043f\u0440\u0438\u043a\u0440\u0443\u0442\u0438\u0442\u044c \u0433\u0430\u0443\u0441\u043e\u0432\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b. \u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0438\u0434\u0435\u0435\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/12a\/b92\/a58\/12ab92a586fb3d91b2b9c1e1ca0dc58c.svg\" alt=\"$f$\" data-tex=\"inline\"><\/math> \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ff2\/c64\/99d\/ff2c6499d038a61a41d7ce75cd78788f.svg\" alt=\"$\\theta$\" data-tex=\"inline\"><\/math>. \u041f\u0440\u0438\u0447\u0435\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/6da\/f30\/32e\/6daf3032ed3c446e716af41c4d6a082a.svg\" alt=\"$\\theta_u$\" data-tex=\"inline\"><\/math> \u0431\u0443\u0434\u0443\u0442 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0438 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u0443\u0434\u0435\u0442 \u043b\u0438\u0448\u044c \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/d12\/214\/909\/d122149097e7bbc528c234606ad44707.svg\" alt=\"$\\hat{r}_{ui} = f(q_i, \\theta_u)$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0423 \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044f \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u0430 \u043f\u0440\u0438\u0447\u0435\u043c \u0442\u0443\u0442 \u0433\u0430\u0443\u0441\u043e\u0432\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0430\u043c\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/12a\/b92\/a58\/12ab92a586fb3d91b2b9c1e1ca0dc58c.svg\" alt=\"$f$\" data-tex=\"inline\"><\/math> \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0438\u0437 \u0433\u0430\u0443\u0441\u043e\u0432\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044f\u0434\u0440\u043e\u043c. \u0418 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e \u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430.<\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u0436\u0435 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0435 \u0443\u0445\u043e\u0434\u044f\u0442 \u043e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u044b\u0435 \u0432\u0435\u043a\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u043d\u044b\u0445 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u043e\u0432.<\/p>\n<p>  <\/p>\n<h2 id=\"na-desert-bayesian-personalized-ranking-bpr\">\u041d\u0430 \u0434\u0435\u0441\u0435\u0440\u0442: Bayesian Personalized Ranking (BPR)<\/h2>\n<p>  <\/p>\n<p>\u0412 \u043a\u043e\u043d\u0446\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e <strong>BPR<\/strong> \u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0445\u043e\u0440\u043e\u0448\u043e \u0437\u0430\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u043e\u0432\u0430\u043b\u0430 \u0441\u0435\u0431\u044f \u0432 &quot;\u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435&quot;. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, <strong>BPR<\/strong> \u2014 \u044d\u0442\u043e \u043d\u0435 \u043c\u043e\u0434\u0435\u043b\u044c, \u0430 \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 <a href=\"https:\/\/arxiv.org\/pdf\/1205.2618.pdf\" rel=\"nofollow\">Bayesian Personalized Ranking<\/a>. \u041d\u0443 \u0430 \u043c\u044b \u043d\u0430\u0447\u043d\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u0432 \u043d\u0435\u0439. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0437\u0434\u0435\u0441\u044c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u0440\u0430\u043d\u0436\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u0434\u043b\u044f \u0434\u0432\u0443\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf8\/3b5\/32c\/bf83b532cd867d34004f8eded8c5c79a.svg\" alt=\"$i$\" data-tex=\"inline\"><\/math> \u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b82\/8e2\/475\/b828e2475a3a56280b895f35eb250ea2.svg\" alt=\"$j$\" data-tex=\"inline\"><\/math> \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u044b\u0439 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/784\/f98\/db3\/784f98db37a499162c1479600e8465ed.svg\" alt=\"$u$\" data-tex=\"inline\"><\/math>. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0430\u0440\u044b <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/33f\/bdd\/51b\/33fbdd51bd7713621bb6f9e87782ad4d.svg\" alt=\"$(u, i)$\" data-tex=\"inline\"><\/math> \u0438 \u0435\u0433\u043e \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a9a\/552\/0bd\/a9a5520bd190c2c8db10f835e325c6b5.svg\" alt=\"$r_{ui}$\" data-tex=\"inline\"><\/math> \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0442\u0440\u043e\u0439\u043a\u0443 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/a3a\/57d\/ee8\/a3a57dee8a3a70a9d3f09ab96af5b8db.svg\" alt=\"$(u, i, j)$\" data-tex=\"inline\"><\/math> \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0442\u043e\u0432\u0430\u0440\u0430 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf8\/3b5\/32c\/bf83b532cd867d34004f8eded8c5c79a.svg\" alt=\"$i$\" data-tex=\"inline\"><\/math> \u0441 \u0442\u043e\u0432\u0430\u0440\u043e\u043c <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b82\/8e2\/475\/b828e2475a3a56280b895f35eb250ea2.svg\" alt=\"$j$\" data-tex=\"inline\"><\/math> ((+) \u0435\u0441\u043b\u0438 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bf8\/3b5\/32c\/bf83b532cd867d34004f8eded8c5c79a.svg\" alt=\"$i$\" data-tex=\"inline\"><\/math> \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/b82\/8e2\/475\/b828e2475a3a56280b895f35eb250ea2.svg\" alt=\"$j$\" data-tex=\"inline\"><\/math> \u0438 (-) \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442). \u041c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0442\u0430\u043a\u0438\u0445 \u0442\u0440\u043e\u0435\u043a \u043d\u0430\u0437\u043e\u0432\u0435\u043c <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/cfe\/cc3\/f6e\/cfecc3f6e0a16cfc7293b3390cb841bf.svg\" alt=\"$\\mathcal{D}_S$\" data-tex=\"inline\"><\/math>. \u0422\u0430\u043a \u0436\u0435 \u0432\u0432\u0435\u0434\u0435\u043c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0442\u043e\u0432\u0430\u0440\u043e\u0432. \u041f\u0440\u0438\u0447\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 <em>personalized<\/em> \u0432 \u0441\u0442\u0430\u0442\u044c\u0435):<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/0d5\/f95\/c6f\/0d5f95c6f84039b9b7cbe9fa1a03995c.svg\" alt=\"$p(i &lt;_u j | \\Theta) = \\sigma(\\hat{r}_{uij}(\\Theta)) ,$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0433\u0434\u0435 <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/bd2\/53a\/dd0\/bd253add01b6a626f79861899c5e7d73.svg\" alt=\"$\\sigma$\" data-tex=\"inline\"><\/math> \u2014 \u0441\u0438\u0433\u043c\u043e\u0439\u0434\u0430, a <math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/54d\/f62\/2b2\/54df622b2da0f88410ae4bc2892f4ec8.svg\" alt=\"$\\hat{r}_{uij}$\" data-tex=\"inline\"><\/math> \u2014 \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f \u043c\u043e\u0434\u0435\u043b\u044c\u044e. \u0415\u0441\u043b\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u0430\u0432\u0434\u043e\u043f\u043e\u0434\u043e\u0431\u0438\u044f (MLE), \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/e11\/011\/083\/e11011083138cdb2c199e68851b85bc4.svg\" alt=\"$ \\min_{\\Theta} \\sum_{(u, i, j) \\in \\mathcal{D}_S}\\ln{\\sigma(\\hat{r}_{uij})} - \\lambda \\|\\Theta\\|^2$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0410 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0442\u043e\u0445\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u043d\u043e\u0433\u043e \u0441\u043f\u0443\u0441\u043a\u0430 (SGD):<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/ad0\/a58\/a76\/ad0a58a7686eeb2a2c8cc85f0ca4ad8e.svg\" alt=\"$\\Theta \\leftarrow \\Theta + \\alpha\\left(\\frac{e^{-\\hat{r}_{uij}}}{1 + e^{-\\hat{r}_{uij}}} \\cdot \\frac{\\partial}{\\partial \\Theta}\\hat{r}_{uij} + \\lambda \\Theta \\right)$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0414\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043c\u044b \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438, \u043a\u0430\u043a\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u043c\u044b \u0431\u0435\u0440\u0435\u043c. \u0418 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043b\u044e\u0431\u043e\u0439 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u0440\u0430\u043d\u0435\u0435. \u0412\u044b\u0431\u0435\u0440\u0435\u043c \u043c\u043e\u0434\u0435\u043b\u044c <strong>SVD<\/strong>:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/945\/503\/fb5\/945503fb5a06645e7d5b74f6854b0d9d.svg\" alt=\"$\\hat{r}_{uij} = \\hat{r}_{ui} - \\hat{r}_{uj} \\quad\\quad\\quad\\quad \\hat{r}_{ui} = p_u^T q_i$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0418 \u0442\u043e\u0433\u0434\u0430 \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u043d\u044b\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0435 \u043f\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c:<\/p>\n<p>  <\/p>\n<p><math><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/formulas\/585\/dd3\/09e\/585dd309eda24106ad23c08f725cd6c8.svg\" alt=\"$\\frac{\\partial}{\\partial \\Theta}\\hat{r}_{uij} =\\begin{cases} (q_{ik} - q_{jk})~~~\\text{if } \\theta = p_{uk}\\\\ p_{uk}~~~~~~~~~~~~~~~\\text{if } \\theta = q_{ik}\\\\ -p_{uk}~~~~~~~~~~~~\\text{if } \\theta = q_{jk} \\end{cases}$\" data-tex=\"display\"><\/math><\/p>\n<p>  <\/p>\n<p>\u0423 <strong>BPR<\/strong> \u043f\u043e\u0434\u0445\u043e\u0434\u0430 (\u043a\u0430\u043a \u0438 \u0443 \u0432\u0441\u0435\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0440\u0430\u043d\u0436\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f) \u0435\u0441\u0442\u044c \u0440\u044f\u0434 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432, \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u0432\u0432\u0435\u0441\u0442\u0438 \u043c\u0435\u0440\u0443 \u043d\u0430 \u0442\u043e\u0432\u0430\u0440 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u043e. \u041c\u0435\u0442\u043e\u0434\u044b \u0440\u0430\u043d\u0436\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u0448\u0435\u043d\u044b \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u043e\u0434\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c, \u043f\u043e\u043f\u0430\u0440\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Learning_to_rank#Pairwise_approach\" rel=\"nofollow\">pairwise approach<\/a>) \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043e\u0431\u0449\u0430\u044f, \u0447\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0430 (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Learning_to_rank#Pointwise_approach\" rel=\"nofollow\">pointwise approach<\/a>), \u0442.\u0435. \u0442\u0430\u043a\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0440\u0435\u0448\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u0442\u043a\u043b\u0438\u043a\u0430\u0445. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u043c\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c 5 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443, \u0430 \u043e\u043d \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043e\u0434\u0438\u043d. \u0422\u043e\u0433\u0434\u0430 \u043c\u044b \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0442\u043e\u0432\u0430\u0440 \u0435\u043c\u0443 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f. \u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u2014 <strong>BPR<\/strong> \u043d\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043e \u043a \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u0434\u0435\u043b\u0438, \u0430 \u044d\u0442\u043e \u043b\u0438\u0448\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u043d\u0430\u043c \u043c\u0435\u0442\u043e\u0434 \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0441\u0432\u043e\u0439.<\/p>\n<p>  <\/p>\n<h2 id=\"show-must-go-on\">Show must go on<\/h2>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u043c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043b\u0438 \u043c\u043d\u043e\u0433\u043e <strong>\u0424\u0430\u043a\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445<\/strong> \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0432 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445, \u043d\u043e \u0435\u0449\u0435 \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043d\u0435\u0442\u0440\u043e\u043d\u0443\u0442\u044b\u043c\u0438 <strong>\u0413\u0440\u0430\u0444\u043e\u0432\u044b\u0435<\/strong> \u0438 <strong>\u041d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0432\u044b\u0435<\/strong>, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u0442\u043e\u0436\u0435 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e.<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/486802\/\"> https:\/\/habr.com\/ru\/post\/486802\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/486802\/\">\n<p>\u041c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u043d\u0438\u043a\u043b\u043e \u0432 \u043d\u0430\u0448\u0443 \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u0443\u044e \u0436\u0438\u0437\u043d\u044c. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043d\u0435 \u0443\u0434\u0438\u0432\u043b\u044f\u044e\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0438\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0432 \u0438\u0445 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u0430\u0445. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439 \u0432 \u044d\u0442\u043e\u0439 \u043d\u0430\u0443\u043a\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u041e\u043d\u0438 \u0435\u0441\u0442\u044c \u0432\u0435\u0437\u0434\u0435: \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0441\u043b\u0443\u0448\u0430\u0435\u0442\u0435 \u043c\u0443\u0437\u044b\u043a\u0443, \u0447\u0438\u0442\u0430\u0435\u0442\u0435 \u043a\u043d\u0438\u0433\u0438, \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0441\u0435\u0440\u0438\u0430\u043b\u044b \u0438\u043b\u0438 \u0432\u0438\u0434\u0435\u043e. \u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u044d\u0442\u043e\u0439 \u043d\u0430\u0443\u043a\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u0445 \u0433\u0438\u0433\u0430\u043d\u0442\u0430\u0445, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a <a href=\"https:\/\/www.youtube.com\" rel=\"nofollow\">YouTube<\/a>, <a href=\"https:\/\/www.youtube.com\" rel=\"nofollow\">Spotify<\/a> \u0438 <a href=\"https:\/\/www.netflix.com\/ru\/\" rel=\"nofollow\">Netfilx<\/a>. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0432\u0441\u0435 \u043d\u0430\u0443\u0447\u043d\u044b\u0435 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0432 \u044d\u0442\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f\u0445 <a href=\"https:\/\/neurips.cc\" rel=\"nofollow\">NeurIPS<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/icml.cc\" rel=\"nofollow\">ICML<\/a>, \u0442\u0430\u043a \u0438 \u043d\u0430 \u0447\u0443\u0442\u044c \u043c\u0435\u043d\u0435\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 <a href=\"https:\/\/recsys.acm.org\" rel=\"nofollow\">RecSys<\/a>, \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443. \u0418 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c, \u043a\u0430\u043a \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u043b\u0430\u0441\u044c \u044d\u0442\u0430 \u043d\u0430\u0443\u043a\u0430, \u043a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u0445 \u0442\u043e\u0433\u0434\u0430 \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0438 \u043a\u0430\u043a\u0430\u044f \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430 \u0437\u0430 \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u0441\u0442\u043e\u0438\u0442.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/rc\/mo\/rt\/rcmortha30ie7vavqiyinlld-ws.png\"><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-298150","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/298150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=298150"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/298150\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=298150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=298150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=298150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}