Преминете отвъд класическите подходи за матрична факторизация, за да включите помощни функции за потребител/артикул и директно да оптимизирате подреждането на артикулите

Въведение

В тази статия ще представим Factorization Machines (FM) като гъвкава и мощна рамка за моделиране за препоръки за съвместно филтриране. След това ще опишем как специализираните функции за загуба, които директно оптимизират подреждането на артикулите, правят възможно прилагането на FM модели към имплицитни данни за обратна връзка. Ще завършим, като демонстрираме тези точки с „набор от данни за имплицитна обратна връзка в реалния свят“, използвайки нова „библиотека за FM моделиране с отворен код“. Нататък!

Системи за препоръчване

Тъй като дигиталната икономика продължава да се разширява по размер и да се усъвършенства, ролята на препоръчителните системи за предоставяне на персонализирано, подходящо съдържание за всеки отделен потребител е по-важна от всякога. Сайтовете за електронна търговия с все по-големи продуктови каталози могат да представят индивидуализирани витрини на магазини на милиони потребители едновременно. Доставчиците на цифрово съдържание могат да помогнат на потребителите да навигират в повече книги, статии, песни, филми и т.н., отколкото биха могли да бъдат консумирани за цял живот, за да намерят малкото подмножество, което най-добре отговаря на специфичните интереси и вкусове на всеки потребител. Например Netflix съобщи през 2015 г., че нейната препоръчителна система е повлияла на приблизително 80% от часовете за стрийминг на сайта и допълнително оцени стойността на системата на над $1 милиард годишно. [1]

Двата широки подхода на високо ниво към препоръчителните системи са Филтриране, базирано на съдържание (CBF) и Съвместно филтриране (CF). CBF моделите представят потребителите и елементите като вектори на атрибути или характеристики (напр. потребителска възраст, състояние, доход, ниво на активност; артикулен отдел, категория, жанр, цена). За разлика от това, методите на CF разчитат само на минало потребителско поведение: моделът анализира модели на съвместно възникване, за да определи приликите на потребителите и/или артикулите и се опитва да направи извод за предпочитанията на потребителя спрямо невиждани елементи, като използва само записаните взаимодействия на потребителя . Базираните на CF подходи имат предимствата, че са без домейн (т.е. не са необходими специфични бизнес познания или инженеринг на функции), както и като цяло са по-точни и по-мащабируеми от CBF моделите.[2]

Факторизация на матрицата

Много от най-популярните и най-успешните CF подходи се основават на матрична факторизация (MF), като развитието се ускорява бързо поради 2006–2009 Netflix Prize, в която печелившият запис използва интензивно техниките на MF, включително сега популярните SVD++ алгоритъм. [3] MF моделите се опитват да научат нискоразмерни представяния или вграждания на потребители и елементи в споделено латентно факторно пространство. По същество наблюдаваната оскъдна матрица за взаимодействие потребител-артикул е „факторизирана“ в приблизителния продукт на две матрици с нисък ранг, които съдържат вграждане на потребител и артикул. След като тези латентни фактори бъдат научени, може да се изчисли сходство потребител/артикул и да се изведат ненаблюдавани предпочитания чрез сравняване на представянията на латентния фактор потребител/артикул.

Много популярни MF алгоритми научават тези латентни фактори за потребител/артикул чрез минимизиране на квадратната грешка между наблюдаваните и прогнозираните оценки, където прогнозираните рейтинги се изчисляват като вътрешен продукт на съответния потребител и латентни фактори за артикул. Някои спецификации на модела допълнително включват глобални отклонения на потребителя/артикула и/или условия за регулиране, за да се предотврати пренастройването. Обща функция на загуба на MF може да се изрази като:

Имплицитна обратна връзка

Тази формулировка обаче се разпада, когато се работи с имплицитни данни за обратна връзка, където не наблюдавате пряко никакви изрични числени оценки или положителни/отрицателни отговори, а по-скоро само необработено потребителско поведение (напр. гледания, показвания на страници, покупки, кликвания). Имплицитните данни за обратна връзка са много по-често срещани в контекста на препоръките в реалния свят и всъщност препоръчителните системи, изградени единствено с помощта на изрични данни за обратна връзка (дори когато съществуват), обикновено се представят слабо поради факта, че оценките не липсват на случаен принцип, а вместо това силно корелират с латентни потребителски предпочитания. [4] За адаптиране на подхода на MF към имплицитни данни за обратна връзка Hu et al. [5] въвеждат концепцията за рейтинги като двоични подразбиращи се предпочитания (наблюдавал ли е потребителят елемента или не) с числено тегло на достоверността, представляващо предполагаемата сила на това двоично предпочитание. Тази формулировка на модела е в основата на популярния алгоритъм ALS за имплицитна обратна връзка, реализиран както в SparkML, така и в Implicit библиотеката на Python:

Въпреки че е прост и ефективен, този подход има няколко основни недостатъка. Първо, чрез представяне на данните като матрица от взаимодействия потребител/елемент не е възможно да се включат спомагателни характеристики, като например атрибутите потребител/елемент, използвани в CBF моделите и/или друга контекстуална информация за самото взаимодействие. Това е голяма загубена възможност, когато съществуват богати спомагателни функции, и също така не позволява на модела да генерира информативни прогнози за нови потребители/артикули, често наричани „проблем със студен старт“. Второ, кодирането на имплицитната обратна връзка от потребителя като двоични (0, 1) оценки и минимизирането на грешката на прогнозиране на модела е много индиректно представяне на потребителските предпочитания - не знаете със сигурност дали ненаблюдаваните елементи всъщност са отрицателни за потребителя и със сигурност някои положителни (и отрицателни) елементи са предпочитани повече от други с точно същата кодирана (0, 1) оценка.

Помислете как повечето препоръки всъщност се предоставят на потребителите: като един или повече подредени списъци с елементи. Следователно интуитивно истинската цел би трябвало да бъде да се изведе правилното подреждане на позициите за всеки потребител. Това ще ни позволи да генерираме препоръки, където всички артикули са подредени по уместност за всеки потребител, като най-подходящите артикули се появяват в горната част на списъка(ите) с препоръчани артикули на всеки потребител.

За да преодолеем тези ограничения, се нуждаем от по-обща моделна рамка, която може да разшири подхода на латентния фактор, за да включи произволни спомагателни характеристики и специализирани функции за загуба, които директно оптимизират подреждането на артикулите, използвайки имплицитни данни за обратна връзка. Въведете Машини за факторизиранеи Обучение за класиране.

Машини за факторизиране

Машините за факторизация (FM) са общи контролирани модели на обучение, които картографират произволни характеристики с реална стойност в нискоразмерно латентно факторно пространство и могат да се прилагат естествено към голямо разнообразие от задачи за прогнозиране, включително регресия, класификация и класиране. FM могат да оценят параметрите на модела точно при много оскъдни данни и да се обучават с линейна сложност, което им позволява да мащабират до много големи набори от данни [6] — тези характеристики правят FM идеално подходящи за проблеми с препоръки в реалния свят. За разлика от класическия MF модел, обсъден по-горе, който въвежда матрица за взаимодействие потребител-елемент, FM моделите представят взаимодействията потребител-елемент като кортежи от вектори с реални стойности и цифрови целеви променливи - този формат на данните трябва да е познат на всеки, който някога е обучавал стандартна регресия или класификационен модел.

Обикновено за съвместно филтриране базовите характеристики ще бъдат двоични вектори на индикатори за потребител и елемент, така че всяка обучителна проба да има точно два ненулеви записа, съответстващи на дадената комбинация потребител/артикул. Въпреки това, тези индикатори за потребител/артикул могат да бъдат допълнени с произволни спомагателни функции, например атрибути на потребител или артикул и/или контекстуални характеристики, свързани със самото взаимодействие (напр. ден от седмицата, поръчка за добавяне към количката и т.н.) .

Уравнението на FM модела се състои от n-посочни взаимодействия между характеристиките. Модел от втори ред (досега най-често срещаният) включва тегла за всяка основна характеристика, както и условия за взаимодействие за всяка комбинация от характеристики по двойки.

Тази формулировка на модела може да изглежда позната - това е просто квадратична линейна регресия. Въпреки това, за разлика от полиномиалните линейни модели, които оценяват всеки член на взаимодействие поотделно, FM вместо това използват факторизирани параметри на взаимодействие: теглата на взаимодействието на характеристиките са представени като вътрешен продукт на вграждането на пространството на латентните фактори на двете характеристики:

Това значително намалява броя на параметрите за оценка, като в същото време улеснява по-точната оценка чрез нарушаване на строгите критерии за независимост между условията на взаимодействие. Помислете за реалистичен набор от данни за препоръки с 1 000 000 потребители и 10 000 елемента. Един квадратичен линеен модел ще трябва да оцени U + I + UI ~ 10 милиарда параметъра. FM модел с измерение F=10 ще се нуждае само от U + I + F(U + I) ~ 11 милиона параметъра. Освен това, много често срещани MF алгоритми (включително SVD++, ALS) могат да бъдат преформулирани като специални случаи на по-общия/гъвкав клас FM модели.[7]

Въпреки това, не е веднага очевидно как да се адаптират FM моделите за имплицитни данни за обратна връзка. Един наивен подход би бил да се маркират всички наблюдавани взаимодействия потребител-елемент като (1) и всички ненаблюдавани взаимодействия като (-1) и да се обучи моделът с помощта на обща функция за загуба на класификация, като загуба на шарнир или дневник. Но с набори от препоръчителни данни в реалния свят това би изисквало създаването на милиарди ненаблюдавани проби за обучение на потребителски артикули и би довело до сериозен дисбаланс на класа поради рядкост на взаимодействието. Този подход също има същия концептуален проблем като адаптацията на MF с имплицитна обратна връзка, обсъдена по-горе: той все още минимизира грешката при прогнозиране на рейтинга, вместо директно да оптимизира подреждането на позициите.

Обучение за класиране

Техниките за оптимизация, които научават директно реда на ранг, вместо да минимизират грешката при прогнозиране, се наричат ​​Learning-to-Rank (LTR). LTR моделите се обучават по двойки или списъци с обучителни проби вместо индивидуални наблюдения. Функциите за загуба се основават на относителното подреждане на елементите вместо на техните сурови резултати. Моделите, използващи LTR, са довели до най-съвременни резултати при търсене, извличане на информация и съвместно филтриране. Тези техники са ключът към адаптирането на моделите на FM към проблемите с препоръка за косвена обратна връзка.

Една от най-популярните LTR техники за препоръчване на артикули е Bayesian Personalized Ranking (BPR). BPR се опитва да научи правилното подреждане на артикулите за всеки потребител чрез максимизиране на последващата вероятност (MAP) на модела параметри, дадени набор от данни за наблюдавани предпочитания на потребителски артикул и избрано предишно разпределение. Наблюдаваните елементи на всеки потребител (имплицитна обратна връзка) се приемат за предпочитани пред ненаблюдаваните елементи и всички предпочитания по двойки се приемат за независими. За да се научат тези предпочитания, се създават тренировъчни извадки, съставени от [потребител (u), наблюдаван елемент (i), ненаблюдаван елемент (j)] и се максимизира следната функция за логаритмична вероятност по отношение на параметрите на модела.[8]

Където (›u|theta) е предвиденото класиране на елемент от модела за потребител (u). Това може да се научи с помощта на описаните по-горе данни за обучение чрез максимизиране на общата вероятност наблюдаваните от потребителите елементи да бъдат предпочитани пред техните ненаблюдавани елементи. Можем да дефинираме тази вероятност като разликата между прогнозираните резултати за полезност на наблюдаваните (i) и ненаблюдавани (j) елементи от потребителя, нанесени върху [0, 1] с помощта на сигмоидната функция:

Където резултатите за полезност на потребителски артикул с реална стойност f(u,i|theta) и f(u,j|theta) се генерират с помощта на даденото основно уравнение на FM модел по-горе. Събирайки всичко заедно и включвайки термин за регулиране, критерият за максимизиране става:

Вземайки нещата още по-напред, Претегленият приблизителен ранг по двойки (WARP) не просто взема проби от ненаблюдавани елементи (j) на случаен принцип, а по-скоро взема проби от много ненаблюдавани елементи за всяка наблюдавана тренировъчна извадка, докато намери ранг- обръщане за потребителя, като по този начин се получава по-информативна актуализация на градиента. Това е особено важно в контекст с голям брой артикули и силно изкривена популярност на артикула (много често). [9] Основната процедура е:

1. Произволно вземете проба от ненаблюдаван елемент за потребителя и изчислете оценката му за полезност. Ако резултатът на ненаблюдавания елемент надвишава резултата на наблюдавания елемент плюс фиксиран марж, тогава направете градиентна актуализация, в противен случай продължете да пробвате отрицателни елементи

2. Мащабирайте мащаба на актуализацията на градиента въз основа на броя отрицателни елементи, взети в извадка, преди да откриете нарушение на маржа - правете по-малки актуализации, ако са взети повече отрицателни елементи, тъй като е по-вероятно моделът в момента да класира правилно потребителските предпочитания

Всъщност, ако мащабирате големината на актуализациите на градиента с (0, 1] множител, BPR може да се разглежда като специален случай на WARP, където максималният брой отрицателни проби е равен на едно, което води до постоянен множител на актуализация на градиента Използването на WARP увеличава времето за обучение на епоха спрямо BPR, но често дава по-бърза конвергенция и превъзходна производителност на модела.

Оценка на модел

Сега, когато цялата теория е излязла от пътя, нека видим как тези компоненти се събират, за да произведат висококачествени препоръки за добре познат набор от данни от реалния свят. Ще обучим FM модел с имплицитна обратна връзка, като използваме новия пакет RankFM на автора, който прилага описаните по-горе техники и ще сравним ефективността му с популярния алгоритъм ALS MF с имплицитна обратна връзка, обсъден по-рано (чрез пакета Implicit). Целта е да се покаже, че FM модел, включващ спомагателни характеристики и обучен с помощта на LTR техники за оптимизация, дава превъзходна производителност в сравнение с аналогично определен класически MF модел.

За това упражнение ще използваме Данните за поръчките на Instacart за 2017 г.. Той съдържа 200 000 потребители, 50 000 артикула, 3,4 милиона поръчки и общо над 32 милиона записани потребителски взаимодействия с артикули. Един бърз проучвателен поглед върху данните разкрива голяма разпръснатост: средният потребител е закупил само 48 артикула в 9 поръчки, а средният артикул е закупен от само 35 потребители в 60 поръчки. Общият процент на рядкост на взаимодействието е 99,87%.

Ще разделим на случаен принцип общите данни за взаимодействие, като използваме 75%, за да обучим модела, и останалите 25%, за да оценим показателите за валидиране и оценка на ефективността на модела. За да отразим идеята, че повтарящите се покупки носят по-силни сигнали за предпочитания, ще включим примерни тегла, дефинирани с помощта на дневника на всеки брой покупки на потребителски артикул. Ще допълним основните данни за взаимодействие потребител-артикул с набор от характеристики на артикула, обозначаващи отдела на супермаркета и пътеката на всеки артикул. За съжаление няма помощни потребителски функции, от които да се възползвате с този набор от данни.

Сега нека обучим модела RankFM. Ще използваме 50 латентни фактора, загуба на WARP с максимум 100 отрицателни проби и график за обучение с обратно мащабиране, който ще намали скоростта на обучение с течение на времето, за да помогне за конвергенцията на SGD. RankFM ще отпечата логаритмичната вероятност за всяка тренировъчна епоха, така че да можете да наблюдавате както времето за тренировка, така и печалбите в производителността епоха след епоха:

Можем да генерираме реално оценени резултати за полезност, като използваме основното уравнение на FM модел с метода predict(). Потребителите и елементите, които не присъстват в данните за обучение, могат или да бъдат премахнати, или да имат резултати, зададени на np.nan в резултантния вектор на резултатите. Можем да използваме метода recommend(), за да генерираме ТопN препоръчани елементи за всеки потребител в набора за валидиране. Има полезен флаг, който ви позволява да изберете дали да включите вече наблюдавани елементи за обучение или да генерирате само препоръки за нови елементи. Резултатът е pandas DataFrame със стойности на индекс на UserID и препоръчани елементи на всеки потребител в колоните, подредени отляво надясно според очакваните предпочитания:

И накрая, ще оценим показателите за ефективност на задържаните данни за валидиране. RankFM включва отделен модул за оценка, който прилага много популярни показатели за препоръчване, включително честота на попадение, реципрочен ранг, намалена кумулативна печалба и прецизност/извикване.

Използвайки набор от данни с 50 000 уникални артикула, където средният потребител купува по-малко от 50, ние сме в състояние да получим процент на попадение при валидиране над 80% с много малко инженеринг на функции и необходима подготовка на данните. Не е твърде изтъркан.

Сравнение на базовия модел

Сега нека сравним производителността на RankFM с нашия основен алгоритъм ALS. За да направим това, първо трябва да конвертираме нашите данни за взаимодействие потребител-артикул в разредена CSR матрица. Ще използваме абсолютно същото разделяне на данни и ще въведем генерираните от нас тегла на извадката като резултати за доверие, за да обучим модела ALS.

Сега, когато разполагаме с нашите данни в необходимия входен формат, можем да напаснем ALS модела и да генерираме TopN препоръки за потребителите на валидиране. Ще използваме същото измерение на латентния фактор като RankFM и в противен случай ще използваме стойностите по подразбиране.

Накрая ще изчислим степента на попадение, прецизността и извикването на модела за същия набор от задържани взаимодействия, използвани за оценка на нашия RankFM модел.

Въпреки че един пълен анализ ще трябва да настрои по подходящ начин двата модела в различни комбинации от хиперпараметри, можем да видим скромни печалби в производителността (5–10%) с формулирането на модела на FM и техниките за оптимизация на LTR, използвайки идентични данни за взаимодействие и приблизително еквивалентни спецификации на модела (т.е. брой латентни фактори). Вероятно ще видим още по-големи печалби в производителността в сравнение с базовия модел ALS MF, ако потребителите имаха по-малко записани взаимодействия (в данните на Instacart всеки потребител има поне 3 поръчки) и/или имахме по-информативни спомагателни функции за потребител/артикул.

Резюме

В тази статия изследвахме машините за факторизация (FM) като обща, но мощна моделна рамка, особено подходяща за проблеми с препоръки за съвместно филтриране. За разлика от традиционните подходи за матрична факторизация (MF), FM моделите могат да бъдат естествено разширени, за да включват потребител, артикул или контекстуални помощни функции за увеличаване на основните данни за взаимодействие. След това показахме как функциите за загуба на Learning-to-Rank (LTR), като Bayesian Personalized Ranking (BPR) и Weighted Approximate Pairwise Rank (WARP), са ключът към успешното адаптиране на FM модели към имплицитни данни за обратна връзка. За да демонстрираме тези точки, ние показахме FM модел с имплицитна обратна връзка, превъзхождащ популярен алгоритъм за базова линия на ALS MF върху добре познат набор от данни с препоръки за имплицитна обратна връзка с отворен код. И накрая, представихме RankFM: нов пакет на Python за изграждане и оценка на FM модели за проблеми с препоръките с имплицитни данни за обратна връзка.

Референции

[1] К. Гомес-Урибе, Н. Хънт. „Системата за препоръчване на Netflix: Алгоритми, бизнес стойност и иновации“ (2015), ACM Transactions on Management Information Systems

[2] Y. Koren, R. Bell, C. Volinsky. Техники за матрична факторизация за системи за препоръчване (2009), IEEE

[3] Y. Koren, R. Bell, C. Volinsky. „The BellKor Solution to the Netflix Prize“ (2008), „www.netflixprize.com“

[4] Х. Щек. „Обучение и тестване на препоръчителни системи за липсващи данни не случайно“ (2010). KDD

[5] Y. Hu. „Съвместно филтриране за имплицитни набори от данни за обратна връзка“ (2008). IEEE

[6] С. Рендъл. Машини за факторизиране (2010). ICDM 2010

[7] С. Рендъл. Машини за факторизиране (2010). ICDM 2010

[8] S. Rendle, C. Freudenthaler, Z. Gantner, L. Schmidt-Thieme. BPR: Бейсово персонализирано класиране от имплицитна обратна връзка (2009). UAI 2009 г

[9] S. Rendle, C. Freudenthaler. „Подобряване на обучението по двойки за препоръчване на елементи от имплицитна обратна връзка“ (2014 г.). ACM 2014 г