Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Recommender Systems ĐặngHoàngVũ
BancôngnghệtậpđoànFPT
Giới thiệu
• Recommendersystemscòngọilàcáchệkhuyếnnghị.• Mụcđíchnhằmlựachọncácsảnphẩmphùhợpnhấtvớingườidùng,cánhânhóatrảinghiệmngườidùng.• Đượcsửdụngrộngrãitrongnhiềulĩnhvực.
Lợi ích
• Cảithiệntrảinghiệmngườidùng.• Tốiưuhóadoanhthuquaup-sale,cross-sale…• Tănghiệunănghoạtđộngbằngtựđộnghóa.• Biếnkháchhànggềmnăngthànhkháchhàngthật.• Hỗtrợbusinessintelligence.
Tổng quan
Cácthànhphầnchính:• Tậphợpngườidùng.• Tậphợpsảnphẩm.• Thônggnvềngườidùng,sảnphẩm.• Lịchsửgiaodịch.Giảthiết:mứcđộphùhợpcủamỗisảnphẩmvớimỗingườidùngcóthểsốhóavàmôhìnhhóa.
Chu trình
• Thuthậpdữliệu.• Thiếtkếfeature.• Xâydựngmôhình.• Đánhgiámôhình.• Cảigến…
Đánh giá recommender systems
Đánhgiáoffline:sửdụngdữliệuđãthuthậpsẵn.• Kếtquảtốtlàkếtquảtrùngkhớpvớidữliệu.• CóthểsửdụngcácđộđonhưMAE,RMSE...• Dữliệutestcóthểcùnghoặckhácloạivớidữliệuđểxâydựngmôhình.Đánhgiáonline:thửnghiệmmôhìnhtrênthựctế.• A/Btesgngnếucóđiềukiện.• Đánhgiábằngcácđộđocóýnghĩathựctế.Chúý:chínhxácchưachắcđãtốt!
Một số kỹ thuật bổ trợ recommenda@on
• Naturallanguageunderstandinglàmộtchuyênngànhlớnvớirấtnhiềuứngdụng.Cáckỹthuậtquantrọngchoứngdụngrecommendagoncónamedengtyrecognigon,topicmodeling,sengmentanalysis…• Dimensionalityreducgonphụcvụhaimụcđích:giảmkhốilượngdữliệuvàgiảmđộthưacủadữliệu.Cáckỹthuậtthôngdụngcóclustering,PCA,hashing…• Regression,classificagonlàcácbàitoáncănbảntrongmachinelearning,cóthểứngdụngtrựcgếpvàodựđoáncácsảnphẩmphùhợp.Cáckỹthuậtphổbiến:linearregression,ridgeregression,SVM,randomforests…
Content-based recommenda@on
• Dựavàocácthuộc�nhcủasảnphẩm.• Mạnhvớicácsảnphẩmgiàunộidungnhưtronglĩnhvựctruyềnthông,quảngcáo,ytế…• Cóthểrecommendsảnphẩmmới,thíchhợpkhidanhsáchsảnphẩmđượccậpnhậtliêntục.
Các bước chính
• Biểudiễnmỗisảnphẩmdướidạngmộtvectorthuộc�nh.• Recommendcácsảnphẩmtươngtựnhau.• Hoặcxâydựngprofilengườidùngtheocácthuộc�nhsảnphẩmvàrecommendsảnphẩmcóthuộc�nhphùhợpvớiprofilengườidùng.
Thuộc Bnh và độ đo tương tự
• Cácthuộc�nhcóthểlàsốthực,sốnguyênhoặcrờirạc.• Cácđộđotươngtựkhácnhauđòihỏidạngdữliệukhácnhau.• Chuyểnđổitừsốsangrờirạcbằngcáchchiakhoảng.• Chuyểnngượclạibằngone-hotencoding.
Các độ đo tương tự
Các độ đo tương tự
Mahalanobisdistance
Các độ đo tương tự
Các độ đo tương tự
• KLdivergencegiữahaiphânbốxácsuất
Collabora@ve filtering
• Dựavàolịchsửgiaodịchđể�mcácquyluậttươngtácgiữangườidùngvàsảnphẩm.• Khôngcầnbiếtthuộc�nhsảnphẩm.• Cókhảnăngkhaithácthônggnngoàiphạmvicủacácthuộc�nhsảnphẩm.• Giảthiếtcănbản:ngườidùngtươngtựnhauquantâmđếnsảnphẩmtươngtựnhau.
Ưu điểm
User-based vs item-based
User-based collabora@ve filtering
• Biểudiễnmỗingườidùngbằngmộtvectorcácsảnphẩmđãtươngtác,cóthểcótrọngsố.• Tínhđộtươngtựgiữacácvectorđạidiệnchongườidùng.• ĐốivớingườidùngA,ước�nhđộphùhợpcủasảnphẩmdựavàolịchsửcủanhómngườidùngtươngtựnhưA.• CóthểchọnkngườidùnggầngiốngAnhất,hoặcchọntấtcảngườidùngnhưngthêmtrọngsốđểưugênnhữngngườigiốngAhơn.
Công thức Bnh độ phù hợp
Công thức Bnh độ phù hợp
• prx,k=độphùhợpước�nhcủasảnphẩmkvớingườidùngx• mx=độphùhợptrungbìnhcủacácsảnphẩmvớingườidùngx• ry,k=độphùhợpcủasảnphẩmkvớingườidùngy• my=độphùhợptrungbìnhcủacácsảnphẩmvớingườidùngy
Công thức Bnh độ phù hợp
Trongtrườnghợpgiớihạnkngườidùnggầngiốngnhất:• sim(ux,uy)=1• Nx=tậphợpkngườidùnggầngiốngxnhất
Trongtrườnghợpkhônggiớihạnngườidùngtươngtự:• sim(ux,uy)=độtươngtựgiữacácvectorngườidùngxvày,hoặcmộthàmđồngbiếndựatrênđộtươngtự• Nx=tậphợpngườidùngcóítnhấtmộtsảnphẩmtươngtáctrùngvớix
Khối lượng Bnh toán
Giảsửcómngườidùngvànsảnphẩm:• Trongtrườnghợpxấunhất,độphứctạpcủathuậttoánlàO(mn).• Trênthựctếphầnlớnngườidùngchỉtươngtácvớisốsảnphẩmgiớihạnnênkhốilượng�nhtoánchonhómnàylàO(m).• Vớisốítngườidùngtươngtácvớinhiềusảnphẩm,khốilượng�nhtoánchonhómnàylàO(n).• VậyđộphứctạptrênthựctếlàO(m+n).
Kỹ thuật phụ trợ
• Vớisốlượngngườidùnglớn,cóthểphânnhómđểgiảmkhốilượng�nhtoán.• Phânnhómbằngdimensionalityreducgon:ánhxạtậphợpngườidùnghoặctậphợpsảnphẩmlênkhônggianítchiềuđểthunhỏdữliệu.• Phânnhómbằngclustering:chiatậphợpngườidùngthànhnhiềucụmnhỏ,khirecommendchongườidùngnàothìxemxétcụmđó.• Thayvìcôngthức�nhtrungbình,cóthểdùngcácmôhìnhclassificagon,regressionđể�nhđộphùhợpởbướccuốicùng.
Item-based collabora@ve filtering
• Biểudiễnmỗisảnphẩmbằngmộtvectorngườidùng.• Tínhđộtươngtựgiữacácsảnphẩm.• ĐốivớingườidùngA,�mcácsảnphẩmtươngtựvớicácsảnphẩmAđãtươngtác.• RecommendsảnphẩmchoAtừcácsảnphẩmnóitrên,bằngcácgêuchínhưtrọngsốcao,nhiềungườitươngtác…
Tính độ tương tự giữa các sản phẩm
VớimỗisảnphẩmA:VớimỗingườidùngXđãtươngtácvớiA:VớimỗisảnphẩmBkhácAmàXđãtươngtác:LưudữkiệnlàmộtngườidùngđãtươngtácvớicảAvàB.VớimỗisảnphẩmBkhácAđãcócùngngườidùngtươngtác:TínhđộtươngtựgiữaAvàBdựatrêncácdữkiệnđãlưu.
Khối lượng Bnh toán
• Khốilượng�nhtoánlớnnhấtnằmởphần�nhđộtươngtựgiữacácsảnphẩm.• Giảsửcómngườidùngvànsảnphẩm,thìđộphứctạptrongtrườnghợpxấunhấtlàO(n2m).• TrênthựctếđộphứctạpthườnglàO(mn)vìdữliệuthưa,đạiđasốcáccặpsảnphẩmkhôngcócùngngườidùngtươngtác.• Tuynhiênbướcnàychỉcần�nhmộtlầnchotấtcảcáclượtngườidùng.
Kỹ thuật phụ trợ
• Độtươngtựgiữacácsảnphẩmcóthể�nhtrướcvàthỉnhthoảngmớicậpnhật.• Cóthểbổsungthônggnvềthuộc�nhsảnphẩmkhi�nhđộtươngtựđểgiảiquyếttrườnghợpsảnphẩmíttươngtác.• Cóthểápdụngcáckỹthuậtphânnhóm,classificagon,regression…nhưvớiuser-basedcollaboragvefiltering.
Matrix factoriza@on
• Ápdụngđượcchocảuser-basedvàitem-basedcollaboragvefiltering.• Thuộcloạilatentfactormodel,môtảngườidùngvàsảnphẩmbằngcácnhântốẩn.• Cótácdụnggiảmsốchiềudữliệu(dimensionalityreducgon).
Các bước chính
• Lậpuser-itemmatrix.• Táchuser-itemmatrixthànhhaithừasố:usermatrixvàitemmatrix.• Mỗingườidùngtươngứngvớimộthàngtrênusermatrix.• Mỗisảnphẩmtươngứngvớimộtcộttrênitemmatrix.• Ước�nhđộphùhợpbằng�chvôhướngcủavectorngườidùngvàvectorsảnphẩm.• Ước�nhđộtươngtựbằngcáchsosánhcácvectorngườidùngvớinhau(hoặccácvectorsảnphẩmvớinhau)nếucácmatrậnthỏamãnmộtsốđiềukiệnnhấtđịnh.
User-item matrix
• Mỗingườidùngtrênmộtdòng,mỗisảnphẩmtrênmộtcột.• Cóthểchuẩnhóabằngcáchtrừđigiátrịtrungbình.• Thườnglàmatrậnthưa,vìđasốcáccặpuser-itemkhôngcótươngtác.
Giả thiết
• Tươngtácgiữangườidùngvàsảnphẩmchịuảnhhưởngcủahailoạitácnhân:cácquyluậttươngtácvàcácyếutốngẫunhiên(docánhânngườidùng,tácđộngngoạicảnh…)• Cácyếutốngẫunhiênkhôngthểdựđoán,nhưngtổnghiệuứngtrêntoàntậphợplànhỏ.• Cácquyluậttươngtáclàtácnhânchínhvàcóthểmôhìnhhóa.• Mụcgêulàước�nhđộphùhợptheocácquyluậttươngtác,bỏquahiệuứngcủacácyếutốngẫunhiên.
Giả thiết
• User-itemmatrixR=S+N• Slàhiệuứngcủacácquyluật• Nlàhiệuứngcủacácyếutốngẫunhiên• Ncóbiênđộnhỏ.• Scóintrinsicdimensionalitynhỏ.
Intrinsic dimensionality
Factoriza@on
Giảsửcómngườidùngvànsảnphẩm:• User-itemmatrixR~UIkíchthướcmxn.• Ulàusermatrix,kíchthướcmxd.• Ilàitemmatrix,kíchthướcdxn.• dlàthamsố,nhỏhơnnhiềusovớim,n.• S=UIlàmatrậnxấpxỉvớiR,cóintrinsicdimensiond.
Factoriza@on
Ước Bnh độ phù hợp
Đểước�nhđộphùhợpcủasảnphẩmyvớingườidùngx:• VectorđạidiệnxlàdòngUxtrênmatrậnU.• VectorđạidiệnylàcộtVytrênmatrậnV.• Ước�nhđộphùhợpbằng�chvôhướng:Ux.Vy=Sxy(phầntửởdòngxcộtycủamatrậnS)• Sxy~Rxylàphầncònlạikhiđãloạibỏcáchiệuứngngẫunhiên,tứclàđộphùhợpcủayvớixtheocácquyluậttươngtác.
Nhận xét
• Bằngcáchgiảmchiềudữliệu,taloạibớtthônggnđểtránhviệckếtquảchỉlặplạiuser-itemmatrix(SquágầnvớiR).• Giảthiếtquantrọnglàphươngphápfactorizagonloạibỏđúngcáchiệuứngngẫunhiên.• Mỗivectorngườidùnghoặcsảnphẩmcódchiều,ứngvớidnhântốẩn(latentfactor).
SVD
• Thuậttoánchokếtquảchínhxác.• CácphầntửtrênmatrậnSxếptheothứtựgiảmdần.
SVD
Giảm chiều bằng SVD
• Loạibỏthônggnbằngcáchbỏbớtcácchiềucuốicùng.• PhầncònlạiđảmbảolàgầnvớiXnhấttrongtấtcảcáccáchfactorizagon.
Factoriza@on bằng tối ưu hóa
• Dùngtốiưuhóađểước�nhusermatrixvàitemmatrixtrựcgếp.• Đạilượngcầntốiưulàsaisốgiữađộphùhợpước�nhvàdữliệuthậttrênuser-itemmatrix.• Dùngregularizagonđểloạibớtthônggn.• TốiưubằngSGDhoặcALS.
SVD hàng nhái
SVD++
• Mỗisảnphẩmcóthêmmộtvectorphụ.• Ước�nhđộphùhợpdùngcảgiátrịvectorphụcủatấtcảcácsảnphẩmngườidùngđóđãtươngtác.• Phảithêmcảcácvectorphụvàoregularizagon.
SVD++
Độ tương tự giữa người dùng hoặc sản phẩm • Cóthểước�nhđộtươngtựgiữacácngườidùngbằngcáchsosánhcácvectorngườidùng(thườngdùngcosinesimilarity).• Tuynhiêncầnđiềukiện:itemmatrixphảilàorthogonalmatrix.• Ngượclạimuốnsosánhvectorsảnphẩmthìusermatrixphảilàorthogonalmatrix.• Mộtsốphươngphápfactorizagonkhôngđảmbảođiềukiệntrên,nhưngcóthểdùngbiếnđổiđạisốđểkhắcphục.