Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
LUCRARE DE LICENTĂ
Conducător științific
Lect. Dr. Mircea Ioan-Gabriel
Absolvent
Bledea Cristina
2019
CUPRINS
INTRODUCERE………………………………………………………………………………..3
Capitolul 1………………………………………………………………………………………..4
Comerțul electronic……………………………………………………………………………...4
1.1 Ce sunt site-urile de e-commerce?.................................................................................4
1.2 Comerțul electronic în România………………………………………………………5
1.3 Forme ale comerțului electronic ……………………………………………………...7
1.4 Avantaje ale comerțului electronic……………………………………………………9
1.5 Dezavantaje ale comerțului electronic……………………………………………….10
Capitolul 2. ……………………………………………………………………………………..12
Sisteme de recomandare………………………………………………………………………..12
Capitolul 3………………………………………………………………………………………20
Modalitați utilizate in extinderea sistemelor de recomandare ……………………………...20
3.1 Modalități de recomandare…………………………………………………………..20
3.2 Algoritmi si clasificări……………………………………………………………….23
3.3 Evaluarea sistemelor de recoamndare……………………………………………….23
3.4 Satisfacția utilizatorilor………………………………………………………………24
3.5 Sisteme de recomandare existente…………………………………………………...25
Capitolul 4………………………………………………………………………………………27
FashionStore – Un sistem de recomandare al produselor vestimentare…………………….27
4.1 Prezentarea problemei……………………………………………………………………….27
4.2 Analiză și proiectare…………………………………………………………………………28
1
4.2.1 Tehnologii utilizate………………………………………………………………...28
4.2.2 Diagrama cazurilor de utilizare…………………………………………………….29
Concluzie………………………………………………………………………………………...51
BIBLIOGRAFIE………………………………………………………………………………..52
2
INTRODUCERE
Afacerile din ziua de astazi, concurează in două lumi: o lume fizica cu resurse palpabile
si o lume virtuală constituită din informație. Cel mai probabil piata economica v-a suferi mari
schimbari in urmatoarele decade.
Pentru o mai buna întelegere a tehnicilor folosite, capitolele următoare vor introduce o
scurtă descriere în acest domeniu, cu scopul de a crea o viziune mai clară, ce sunt aceste
sisteme, cum se realizeaza un sistem de recomandare și cum pot ele sa înbunatățeasca
preferintele utilizatorului. Lucrarea este structurată in patru capitol.
Capitolul unu prezinta o descriere a comerțului electronic, ce sunt acestea, de căte tipuri
sunt, avantajele si dezavantajele folosirii comertului electronic de catre utilizatori.
În ultimul capitol al lucrarii vom vorbi despre aplicația propusă.Acesta prezinta tema
problemei, decizile de implementare, programele utilizate cât si înbunatățirile care pot fi aduse
acestei aplicații.
3
CAPITOLUL 1
Comertul Electronic
E-commerce sau comerțul electronic reprezintă activitatea de vanzare sau cumpărare de bunuri și
servicii la distanță prin intermediul anumitor tehnologii oferite cu ajutorul internetului.
E-commerce este schimbul electronic de informații între o afacere și client alcătuind una dintre
cele mai semnificative părti ale afacerilor web.
Chiar dacă noile oportunităţi oferite de capacităţile tehnologiei curente tind spre un punct
maxim, noi tehnologii de reţea sau aplicaţii software pot apăre în orice clipă. Astfel ne vom afla
nu doar în faţa unor noi modalităţi de a desfăşura afacerile actuale, ci şi în faţa unor lucruri cu
totul şi cu totul necunoscute comerţului curent. Comerţul electronic înseamnă cumpărarea şi
vânzarea de bunuri şi servicii pe Internet, în special pe www (World Wide Web).
Întreprinderile moderne sunt caracterizate printr-o cerere din ce în ce mai mare, prin
existenţa unei competiţii la nivel mondial şi prin sporirea permanentă a aşteptărilor clienţilor. Ca
să poată răspunde acestor cerinţe, întreprinderile de pe tot globul sunt în plin proces de
transformare organizaţională şi a modului lor de funcţionare. Comerţul electronic este o cale prin
care se facilitează şi sprijină aceste schimbări, la scară globală. Pentru unii observatori ai
fenomenului, comerţul electronic are acelaşi conţinut ca afacerea electronică (eBusiness) şi
înseamnă orice tranzacţie financiară care utilizează tehnologia informatică. Alţii consideră că
noţiunea de comerţ electronic acoperă circuitul complet de vânzări - inclusiv marketingul şi
vânzarea propriu-zisă. Există însă si analişti care consideră comerţul electronic ca fiind orice
tranzacţie comercială condusă electronic pentru cumpărarea unor bunuri materiale tangibile cum
ar fi cărţi, CD-uri, bilete de călătorie, produse şi altele sau materiale, intangibile, precum
4
software, servicii turistice, etc. Dar, comerţul electronic are, în sens larg, un impact mult mai
profund asupra evoluţiei afacerilor şi cuprinde, în fapt, nu numai noile achiziţii comerciale ci şi
totalitatea activităţilor care susţin obiectivele de marketing ale unei firme şi care pot include, spre
exemplu, publicitate, vânzări, plăţi, activităţi post-vânzare, servicii către clienţi, etc. Comerţul
electronic dă posibilitatea firmelor sa devină mai eficiente şi flexibile în modul intern de
funcţionare, să conlucreze mai strâns cu furnizorii şi să devină mai atente faţă de nevoile şi
aşteptările clienţilor. Permite companiilor să selecteze cei mai buni furnizori, indiferent de
localizarea lor geografică şi să vândă unei pieţe globale. Aceasta evoluţie are un impact major
asupra economiei, în ceea ce priveşte crearea de noi întreprinderi, diversificarea celor existente
şi, în special, asupra potenţialului pieţei forţei de muncă şi a gradului de ocupare a acesteia în
viitor.[1]
Primul magazin online din România a fost lansat de către PC Net în 1997 şi se numea
CyberShop.ro, acesta comercializând CD-uri cu muzică. La scurt timp a aparut eShop.ro, primul
magazin care introduce conceptul de coş de cumpărături.
Între timp, intră în afacerile online şi alţi comercianţi: Romanian Music Online şi AllOnline.ro,
până când pe 14 septembrie 2000 se lansează primul magazin de succes: eMania.ro, urmat la
scurt timp de Rate.ro si de MagazinulTău.ro, acesta din urmă fiind lansat de către retailer-ul Best
Computers.
Tot în perioada anilor 2000, compania Netbridge Investments porneşte OKazii.ro, un site de
licitaţii online oarecum similar cu celebrul eBay. La momentul lansării Okazii nivelul de
încredere al internauţilor români în tranzacţionarea online era extrem de scăzut. “Am creat
OKazii.ro într-o perioadă în care încrederea în tranzacţiile prin Internet aproape că nu exista”,
spunea în 2006 Emilian Cristea, Project Manager la Netbridge Investments, într-un interviu
acordat publicaţiei Link 2 eCommerce.
În preajma sărbătorilor de iarnă din 2001, se lansează eMag.ro – actualmente, cel mai mare
magazin online din România. Putem spune că momentul de start al comerţului electronic
5
românesc a avut loc în anii 2000, odată cu cele câteva proiecte de amploare: eMania, Rate.ro,
MagazinulTău, Okazii şi eMag.
Abia la 3 ani de la lansarea magazinului online eMag, la începutul anului 2004, RomCard
împreună cu organizaţiile internaţionale emitente de carduri, Visa şi MasterCard, implementează
standardul de securitate 3D Secure – moment din care posesorii de card pot plăti online, iar piaţa
românească de comerţ electronic beneficiază de primele statistici oficiale în ceea ce priveşte
tranzacţionarea prin Internet.
6
1.3 Forme ale comertului electronic
Strâns legată de comerţul electronic este piaţa virtuală, aceasta reprezentând locul unde se
întâlnesc cumpărătorii şi vânzătorii pentru schimbul de produse, servicii sau informaţii. Afacerile
electronice existente la ora actuală au fost împărţite în următoarele categorii:
Business to Business (B2B) reprezintă un model de comerţ electronic intre companii sau
organizaţii (figura 1). Acest tip de afaceri foloseşte ca mediu de desfăşurare a activităţii:
extranetul vânzătorului de servicii.
Consumer to business (C2B) este o categorie de afaceri electronice în care persoanele fizice
utilizează o anumită platformă pentru a-şi vinde produsele sau serviciile firmelor aflate în alte
localităţi (figura 1).
Consumer to consumer (C2C) reprezintă un model în care consumatorii îşi vând direct altor
consumatori produsele şi serviciile prin intermediul unor platforme electronice (figura 1).
M-commerce sau comerţul mobil reprezintă modelul de afacere electronică în care tranzacţiile şi
activităţile sunt realizate prin intermediul telefoanelor mobile sau al altor dispozitive mobile.
E-banking presupune realizarea de tranzacţii bancare on-line, transfer de bani din conturile
deschise la bănci, plăţi electronice, consultanţă bancară.
7
atât timpul, cât şi costul de transmisie, mărindu-se şi numărul de firme care iau parte la licitaţie.
Sistemul duce la creşterea concurenţei şi automat la scăderea preţului.
8
1.4 Avantajele comerțului electronic
Beneficiile comerțului electronic pot fi considerate a afecta trei mari părți interesate: organizații,
consumatori și societate.
Piața internațională - ceea ce era o piață fizică unică situată într-o zonă geografică a
devenit acum o piață fără margini, incluzând piețele naționale și internaționale. Prin
activarea comerțul electronic, afacerile au acum acces la oameni din întreaga lume. De
fapt, toate afacerile de comerț electronic au devenit corporații multinaționale virtuale.
Costuri de telecomunicații mai mici. Internetul este mult mai ieftin decât rețelele cu
valoare adăugată (VAN), care s-au bazat pe închiriere de linii telefonice destinate
exclusiv utilizării organizației și partenerilor autorizați. De asemenea, este mai ieftin să
trimiteți un fax sau un e-mail prin Internet decât apelarea directă.
Nu mai există restricții de 24 de ore. Întreprinderile pot fi contactate de către clienți sau
furnizori în orice moment.
Acces 24/7 - Permite clienților să facă cumpărături sau să efectueze alte tranzacții 24 de
ore pe zi, tot timpul anului aproape de orice locație. De exemplu, verificarea soldurilor,
efectuarea plăților, obținerea de călătorii și alte informații.
Mai multe opțiuni. Clienții nu numai că au o gamă întreagă de produse din care pot
alege și personaliza, dar și o selecție internațională de furnizori
Comparații de prețuri. Clienții pot „face cumpărături” în întreaga lume și pot realiza
comparații fie direct vizitând diferite site-uri, fie vizitând un singur site unde prețurile
sunt agregate de la un număr de furnizori și comparate.
9
Procese de livrare îmbunătățite. Aceasta poate varia de la livrarea imediată a mărfurilor
digitalizate sau electronice, cum ar fi fișierele software sau audiovizuale, prin descărcarea
prin internet, până la urmărirea on-line a evoluției pachetelor livrate prin poștă sau prin
curier.
Permite practici de lucru mai flexibile, care îmbunătățesc calitatea vieții pentru o
mulțime de oameni din societate, permițându-le să lucreze de acasă. Nu numai că acest
lucru este mai convenabil și oferă medii de lucru mai fericite și mai puțin stresante, ci
poate reduce și poluarea mediului, deoarece mai puține persoane trebuie să călătorească
pentru a lucra regulat.
Conectează oamenii. Permite oamenilor din țările în curs de dezvoltare și din zonele
rurale să se bucure și să acceseze produse, servicii, informații și alte persoane care altfel
nu le-ar fi atât de ușor accesibile.
10
noi sau într-o infrastructură, ca punte între diferitele sisteme. În ambele cazuri, acest lucru
este atât costisitor, cât și perturbator pentru funcționarea eficientă a organizațiilor.
Cunoștințe tehnice de bază atât pentru echipamentele de calcul, cât și pentru navigarea
pe internet și pe World Wide Web.
Costul accesului la Internet.
Costul echipamentelor de calcul. Nu doar costul inițial dar si costul pentru actualizarea
regulata a tehnologiei pentru a fi compatibilă cu cerințele în schimbare ale internetului,
site-urilor web și aplicațiilor.
11
CAPITOLUL 2
Sisteme de recomandare
Înainte de apariția Internetului, existau deja mai mule metode de filtrare a informației, spre
exemplu, guvernele pot controla și restricționa fluxul de informații într-o anumită țara, prin
intermediul cenzurii formale sau informale.
Pe de altă parte, putem vorbi despre filtrarea de informației dacă facem referință la jurnaliști sau
editorii de ziare care oferă un serviciu de selecție al informației relevante clienților precum:
cititori de cărți, reviste, ziare, audienței radio și telespectatorilor. Acest proces de filtrare este de
asemenea întâlnit în școli și universități unde există o selecție de informație ce furnizează
asistență bazată pe criterii academice utilizatorilor acestui serviciu, studenții. Apariția
Internetului a adus cu sine și posibilitatea publicării informației insignifiante. În acest fel
cantitatea informației redundantă crește și, prin urmare informația de calitate este diseminată.
Întâmpinând această problemă, a început elaborarea și dezvoltarea de noi filtre, prin intermediul
cărora să obținem ușor și eficient informațiile necesare specifice unui domeniu.
“Articolul” este termenul general utilizat pentru a desemna ceea ce sistemul recomandă
utilizatorilor. Un sistem de recomandare se focalizează, în mod normal, pe un anumit tip de
produs (de exemplu: CD-uri, știri, filme, mașini, produse vestimentare, etc.); în consecință
designul, interfața grafică, precum și tehnica de recomandare fundamentală sunt personalizate
pentru a oferi sugestii utile și eficiente pentru acel tip specific de produs.
Sistemele de recomandare sunt, în primul rând, îndreptate către persoanele care nu dispun de
suficientă experiență personală sau competența de a evalua un număr copleșitor de articole
alternative, pe care un site web, de exemplu, le poate oferi. Un exemplu în acest sens este un
sistem care va asista utilizatorii în alegerea unei cărți (Amazon.com, unul dintre cele mai
populare web site-uri, folosește un sistem de recomandare pentru a personaliza magazinul on-
line al fiecărui client [12]). Întrucât recomandările sunt de obicei personalizate, utilizatorii
diferiți sau grupurile de utilizatori vor primi diverse sugestii. De asemenea există și sisteme non
personalizate, acestea fiind de o complexitate mai redusă în generarea recomandărilor,
regăsindu-se cu preponderență în reviste sau ziare. Exemple tipice includ: primele zece selecții
de cărți, CD-uri etc. În timp ce acestea pot fi utile si eficiente în anumite situații, aceste tipuri de
recomandări sunt rar abordate în cercetarea sistemelor de recomandare.
12
În forma lor cea mai simplă, recomandările personalizate sunt oferite asemenea unor liste
ordonate de articole. Pentru a determina acest clasament, sistemul de recomandare încearcă să
prezică care sunt cele mai potrivite produse sau servicii, folosind preferințele utilizatorului și
anumite constrângeri. Cu scopul de a finaliza această sarcină, sistemul colectează preferințele
utilizatorilor, care sunt fie exprimate în mod explicit (de exemplu: rating-urile unor produse), sau
sunt deduse din interpretarea acțiunilor acestora (de exemplu un sistem ar putea considera
navigarea către pagina unui produs un semn implicit de preferință pentru elementele prezente pe
acea pagină).
Sistemele de recomandare s-au dovedit pe parcursul ultimilor ani un mijloc valoros pentru a face
față suprasolicitării cu informație. În cele din urmă un sistem de recomandare rezolvă acest
fenomen, indicând unui utilizator articole noi, care nu au fost încă experimentate și care ar putea
fi relevante pentru sarcina curentă. La cererea unui utilizator, în funcție de tehnica de
recomandare, de context și de nevoile acestuia, sistemul generează recomandări utilizând diferite
tipuri de informații și date despre utilizatori (elemente disponibile și tranzacții anterioare stocate
într-o bază de date). Ulterior utilizatorul poate naviga printre recomandări, putând astfel să ofere
imediat sau într-o etapă următoare, un feedback implicit sau explicit. Toate aceste acțiuni ale
utilizatorului pot fi stocate si folosite ulterior pentru a genera noi recomandări în interacțiunile ce
urmează.
13
2.2 Importanța sistemelor de recomandare
Studiul sistemelor de recomandare este relativ nou în comparație cu cercetarea altor sisteme sau
tehnici clasice de filtrare a informației (de exemplu: baze de date sau motoare de căutare). În
decursul ultimilor ani, interesul arătat sistemelor de recomandare a crescut dramatic, astfel
indicând următoarele fapte:
Sistemele de recomandare joacă un rol important în multe dintre web site-urile bine cotate
precum Amazon.com, YouTube.com, Netflix, Yahoo, Tripadvisor, Last.fm și IMDb. Mai mult
decât atât, multe companii mass-media dezvoltă și implementează sisteme de recomandare ca
parte a serviciilor care le oferă abonaților.
Există conferințe și ateliere în acest domeniu. Ne referim în special la ACM Recommender
Systems, conferință cu debutul în anul 2007, iar acum evenimentul principal anul în cercetarea si
dezvoltarea aplicațiilor bazate pe tehnologi de recomandare. Pe lângă acestea sesiuni dedicate
sistemelor de recomandare sunt frecvent incluse în domeniul bazelor de date, sisteme
informatice și sisteme adaptive.
În instituții de învățământ superior din întreaga lume, cursuri universitare si postuniversitare
sunt acum dedicate în întregime sistemelor de recomandare; tutorialele sunt foarte populare la
conferințele de informatică, recent fiind publicate si o serie de cărți cu această tematică [15].
Au fost publicate o serie de articole ce privesc cercetarea și evoluțiile sistemelor de
recomandare în reviste academice printre care reamintim: AI Communications (2008), IEEE
Intelligent Systems (2007), International Journal of Electronic Commerce (2006), International
Journal of Computer Science and Applications (2006), ACM Transactions on Computer-Human
Interaction (2005) și ACM Transactions on Information Systems (2004).
Pentru a vorbi despre avantajele folosirii acestor sisteme de filtrare a informației trebuie pentru
început să facem o diferențiere clară între rolul pe care aceste sisteme îl joacă.
Pe de o parte putem privi acest sistem din perspectiva furnizorilor de servicii, al căror scop este
de a vinde sau promova produse (de exemplu un sistem de recomandare în domeniul turismului
este de obicei introdus de o agenție de turism pentru a crește cifra de afaceri prin închirierea mai
multor camere de hotel sau prin popularizarea unei destinații turistice). Există mai multe avantaje
pentru care furnizorii serviciilor ar putea dori utilizarea unui astfel de sistem:
Creșterea numărului de articole vândute. Aceasta este probabil cea mai importantă
funcție pentru un sistem de recomandare comercial; de exemplu, pentru a putea vinde mai
multe seturi de produse comparativ cu cei care, de obicei, vând fără a folosi un astfel de
sistem. În marea majoritate a cazurilor acest obiectiv este atins deoarece elementele
recomandate sunt oferite cu scopul de a se potrivi nevoilor și dorințelor utilizatorului. Cel
mai probabil, utilizatorul va recunoaște acest lucru după încercarea mai multor
recomandări. În opoziție se află aplicațiile non-comerciale al căror obiective sunt
similare, dar fără a asocia un cost efectiv între utilizator și articolul selectat. De exemplu,
o rețea de conținut social are ca scop creșterea numărului de știri vizualizate pe site-ul
14
său. În general putem afirma că din punct de vedere al furnizorului de servicii, obiectivul
principal pentru introducerea sistemului de recomandare este de a crește rata de
conversie; de exemplu, numărul de utilizatori care acceptă recomandarea și “consumă”
un articol, în comparație cu numărul de utilizatori care doar navighează prin informație.
Vânzarea de produse diverse. O altă funcție importantă a sistemelor de recomandare
este de a oferi utilizatorilor articole care în mod normal ar fi greu de găsit fără o
recomandare precisă. De exemplu, pentru un sistem de recomandare al anumitor produse,
furnizorul de servicii este interesat în cumpararea tuturor produselor din colectie, nu doar
pe cele mai populare. Acest lucru ar fi dificil de realizat fără utilizarea unui sistem de
recomandare, deoarece furnizorii de servicii nu își permit riscul de a recomanda articole
care nu sunt pe placul utilizatorilor. Prin urmare, un sistem de recomandare sugerează
produse nepopulare pentru utilizatorii potriviți.
Creșterea satisfacției utilizatorului. Un sistem de recomandare bine conceput poate
îmbunătăți experiența utilizatorului cu site-ul sau aplicația. Cu ajutorul sistemului
utilizatorul va găsi recomandările ca fiind interesante, relevante și cu un design om-
calculator corect proiectat. Combinația dintre eficiență, acuratețe, recomandări și o
interfață ușor de utilizat va crește gradul de utilizare al sistemului și probabilitatea ca
recomandările oferite să fie acceptate.
Creșterea fidelității utilizatorului. Un utilizator ar trebui să fie loial unu web site, care
atunci când este vizitat, recunoaște vechiul client și îl tratează ca pe un vizitator valoros.
Aceasta este o caracteristică normală a unui sistem de recomandare, deoarece multe astfel
de sisteme calculează recomandările pe baza informațiilor obținute de la utilizator din
interacțiunile anterioare (de exemplu: rating-urile oferite unor produse). În consecință cu
cât utilizatorul interacționează mai mult cu aplicația cu atât modelul acestuia devine mai
rafinat.
O înțelegere mai bună a nevoilor utilizatorului. O altă funcție importantă a sistemelor
de recomandare, care poate fi extinsă la multe aplicații, este descrierea preferințelor
utilizatorului, fie colectate în mod explicit fie prezise de sistem. Furnizorul de servicii
poate decide mai apoi reutilizarea acestor cunoștințe pentru o serie de alte obiective
precum îmbunătățirea gestionării stocului.
Am menționat mai sus, câteva motivații și avantaje pentru care furnizorii de servicii ar dori
introducerea sistemelor de recomandare. De asemenea, utilizatorii, ar putea dori un astfel de
sistem în cazul în care acesta va sprijini în mod eficient sarcinile sau obiectivele acestora. Prin
urmare un sistem de recomandare trebuie să echilibreze nevoile acestor doi jucători oferind
servicii valoroase ambelor părți.
Herlocker [11], într-o lucrare care a devenit o referință clasică în acest domeniu, definește
unsprezece sarcini pe care un sistem de recomandare le-ar putea pune în aplicare. Unele dintre
aceste sarcini sunt considerate principale sau de bază, fiind asociate în mod normal unui sistem
de recomandare (de exemplu: propunerea unor articole care ar putea fi utile unui utilizator).
Altele ar putea fi considerate doar moduri “oportuniste” de a exploata un sistem de
15
recomandare. Această diferențiere de sarcini este foarte asemănătoare unui motor de căutare, a
cărui funcție principală este de a localiza documente care sunt relevante pentru nevoia
utilizatorului, dar de asemenea poate fi folosit pentru a verifica importanța unei pagini web
(analizând poziția acesteia în lista de rezultate a unei interogări) sau pentru a descoperi diverse
utilizări ale unui cuvânt într-o colecție de documente.
1. Găsiți câteva articole bune (Find some good items) Recomandă unui utilizator, sub
forma unui clasament, anumite articole împreună cu anticiparea (de exemplu: pe o
scară de la unu la cinci) dorințelor utilizatorului. Aceasta este sarcina principală a
unui sistem de recomandare regăsindu-se în majoritate sistemelor comerciale.
2. Găsiți toate articolele bune (Find all good items) Recomandă toate articolele care
pot satisface nevoile utilizatorilor. Acest lucru este valabil mai ales atunci când
numărul de articole este relativ mic sau în cazul în care sistemul de recomandare este
de o importanță critică (de exemplu: în aplicațiile medicale sau financiare). În aceste
situații, pe lângă beneficiile derivate din examinarea cu atenție a tuturor
posibilităților, utilizatorul poate beneficia de rating-urile articolelor din sistem sau de
detaliile suplimentare pe care acesta le generează.
3. Adnotări în context (Annotations in context) Având în vedere un anumit context
(de exemplu: o listă de articole), marchează anumite articole în funcție de preferințele
pe termen lung ale utilizatorului. De exemplu un sistem de recomandare pentru
televiziune va afișa din lista emisiunilor existente, doar acelea care ar merită a fi
vizionate.
4. Recomandă o secvență (Recommend a sequence) În loc de a se concentra pe
generarea unei singure recomandări, accentul se pune pe recomandarea unei serii de
articole considerate plăcute în ansamblu. Exemplele tipice includ: recomandarea unui
serial, a unei cărți despre sisteme de recomandare după ce o carte despre data mining
a fost recomandată sau o colecție de piese [10].
5. Recomandă un pachet (Recommend a bundle) Sugerează un grup de articole care
se potrivesc bine împreună. Spre exemplu o excursie poate fi compusă din diverse
atracții, destinații și servici de cazare. Din punct de vedere al utilizatorului aceste
diverse alternative pot fi luate în considerare ca un singur voiaj.
6. Doar navigare (Just browsing) În acest tip de sarcină, utilizatorul răsfoiește
catalogul, fără a avea o intenție iminentă de a achiziționa un articol. Sarcina
sistemului de recomandare este de a ajuta utilizatorul să vizioneze doar articolele care
sunt mult mai probabil să se încadreze în domeniul de interes al acestuia, pentru acea
sesiune de navigare.
7. Găsiți un recomandator credibil (Find credible recommender) Anumiți utilizatori
nu au încredere în sistemele de recomandare, astfel, se “joacă” cu acestea pentru a
observa calitatea recomandărilor făcute. În acest sens, multe sisteme de recomandare
oferă anumite funcții speciale, diferite față de cele necesare pentru a obține
recomandări, cu scopul de a permite utilizatorilor să testeze comportamentul acestuia.
8. Îmbunătățirea profilului (Improve the profile) Această caracteristică se referă la
capacitatea utilizatorului de a furniza informații sistemului de recomandare cu privire
16
la preferințele acestuia. Aceasta este o sarcină fundamentală, care este strict necesară
pentru a oferi recomandări personalizate. Dacă sistemul nu deține cunoștințe despre
utilizatorul curent, atunci recomandările furnizate acestuia sunt identice cu cele
furnizate unui utilizator “mediu”.
9. Exprima-te (Express self) Anumiți utilizatori nu sunt deloc interesați de a li se oferi
recomandări. Ceea ce este mai important pentru aceștia este posibilitatea de a
contribui cu rating-uri și de a-și exprima opiniile sau convingerile. Această sarcină
oferă satisfacție utilizatorilor și ca atare acționează ca o pârghie pentru a menține o
strânsă legătură cu aplicația (după cum am menționat mai sus, în descrierea
motivațiilor furnizorilor de servicii).
10. Ajută-i pe ceilalți (Help others) Unii utilizatori sunt fericiți să contribuie cu
informații (de exemplu: evaluarea lor pentru anumite articole), deoarece considera că,
comunitățile beneficiază de pe urma acestor informații. Acest lucru ar putea fi o
motivație pentru introducerea de informații într-un sistem de recomandare care nu
este frecvent folosit. De exemplu, în cazul unui sistem de recomandare pentru mașini,
un utilizator care a achiziționat o mașină este conștient de faptul că ratingul intrat in
sistem este mult mai probabil să fie util pentru alți utilizatori, mai degrabă, decât
pentru data viitoare când acesta va achiziționa o mașină.
11. Influență-i pe alții (Influence others) În sistemele de recomandare online, există
anumiți utilizatori al căror scop principal este de a-i influența explicit pe ceilalți, cu
scopul de a achiziționa anumite produse. De asemenea există așa numiții utilizatori
malware care pot utiliza sistemul doar pentru a promova sau “penaliza” anumite
articole.
Sistemele de recomandare sunt sisteme care adună în mod activ diferite tipuri de informații cu
scopul de a oferi recomandări. Aceste tipuri de informații fac referire la articolele care urmează a
fi recomandate și la utilizatorii care vor primi aceste recomandări.
Articolele sunt obiectele care sunt recomandate de sistem. Acestea pot fi caracterizate prin
complexitatea lor, valoare sau utilitatea acestora. Valoare unui articol poate fi pozitivă dacă
articolul este valoros pentru utilizator, sau negativă în cazul în care acesta nu este potrivit
17
preferințelor utilizatorului, acesta din urmă luând o decizie greșită în alegerea articolului. Notăm
faptul că, atunci când un utilizator achiziționează un articol acesta va suporta un cost, care
include costul cognitiv al căutării articolului cât și costuri monetare.
Articole cu o complexitate și valoare scăzută sunt precum: știrile, pagini web, filme, CD-uri; cu o
complexitate și valoare mare regăsim articole precum: camerele digitale, telefoanele mobile,
calculatoarele etc. Articolele considerate cele mai complexe sunt: polițele de asigurare,
investițiile financiare, călătoriile, slujbele [16].
Articolele pot fi reprezentate folosind diferite metode, de la un mod minimalist (cu un singur cod
de identificare), la o formă mai complexă (ca un set de atribute) sau chiar o reprezentare
ontologică a domeniului.
Utilizatorii unui sistem de recomandare, precum am menționat mai sus, pot avea diverse
obiective și caracteristici. În scopul de a personaliza recomandările și interacțiunea om-
calculator, sistemele de recomandare exploatează o serie de informații despre utilizatori. Aceste
informații pot fi structurate în diverse moduri și, reamintim faptul că modelul informației
depinde strict de tehnica de recomandare folosită.
Spre exemplu, în filtrarea colaborativă, modelul unui utilizator este structurat într-o listă simplă
conținând evaluările oferite de utilizator anumitor articole. Într-un sistem de recomandare
demografic, atributele socio-demografice precum: vârstă, sex, profesie și educație sunt utilizate
pentru a crea profilul utilizatorului [17]. În modelul utilizatorului se stochează preferințele și
nevoile acestuia. De-a lungul timpului au fost abordate mai multe tipuri de modele putând astfel
afirma că un sistem de recomandare este un tool care generează recomandări prin construcția și
exploatarea modelelor. Din moment ce nu se poate oferi o recomandare personalizată , doar dacă
aceasta este non-personalizată (de exemplu: primele zece rezultate), modelul utilizatorului joacă
un rol foarte important in elaborarea și dezvoltarea acestor sisteme.
Utilizatorii pot fi, de asemenea descriși prin șablonul comportamentului lor (de exemplu:
șabloane de navigare a site-urilor sau șabloane de căutare a călătoriilor). Mai mult decât atât,
datele despre utilizatori pot include relații între aceștia, în această situație un sistem de
recomandare va utiliza aceste date pentru a recomanda produse similare preferate de utilizatorii
de “încredere”.
18
Tranzacțiile sunt interacțiunile dintre utilizatori și sistemul de recomandare. Acestea sunt
asemenea unui logger care stochează informații importante, generate în timpul interacțiunii om-
calculator și care ulterior sunt utile algoritmului de generare a recomandărilor al sistemului
utilizat. De exemplu registrul unei tranzacții poate conține o referință către articolul selectat de
utilizator și o scurtă descriere a contextului în care acel articol a fost selectat. Dacă este
disponibil, o tranzacție poate să conțină și feedback-ul oferit de utilizator respectivului articol.
Observând majoritatea sistemelor de recomandare putem deduce faptul că rating-urile sunt cea
mai populară formă de date pe care un sistem le colectează. Aceste evaluări pot fi colectate în
mod explicit (utilizatorului i se cere să furnizeze opinia sa cu privire la un articol folosind o scară
de evaluare) sau implicit (prin interacțiunile utilizatorului cu sistemul). În conformitate cu [18],
există o varietate de forme pentru a evalua un articol:
evaluări numerice (de exemplu: evaluarea unui articol pe o scară de la unu la cinci
precum este în sistemul de recomandare al cărților folosit de cei de la Amazon.com);
evaluări ordinale precum: ”cu totul de acord, de acord, neutru, dezacord, dezacord
total”, caz în care utilizatorul este rugat să selecteze termenul care indică cel mai
potrivit opinia sa cu privire la un articol;
evaluări binare: în acestea utilizatorul este rugat să ia o decizie simplă asupra unui
articol: bun sau rău;
evaluări unare: indică faptul că utilizatorul a observat, cumpărat un articol sau doar a
evaluat acel articol pozitiv. În astfel de cazuri, absența unui rating indică faptul că nu
se deține nici o informație cu privire la legătura dintre utilizator si articol (cel mai
probabil acesta a achiziționat articolul din altă parte);
O altă formă cunoscută de evaluare este utilizare tag-urilor, acestea fiind asociate de către
utilizator unui articol.
În tranzacțiile de colectare implicită, sistemul își propune să deducă opinia utilizatorilor doar
bazându-se pe acțiunile acestora. Spre exemplu dacă un utilizator introduce cuvântul cheie
”Yoga”, folosind web site-ul Amazon.com, va primi o listă de cărți dintre care acesta poate să
selecteze o anumită carte pentru a primi mai multe detalii. În acest moment sistemul poate
deduce că utilizatorul este oarecum interesat de acea carte.
19
CAPITOLUL 3
Modalitati utilizate in dezvoltarea sistemelor de recomandare
Scopul unui sistem de recomandare este să prezică dacă un articol merită să fie recomandat.
Pentru a determina acest lucru, sistemul trebuie să fie capabil de a prezice utilitatea unor articole,
sau cel puțin să compare utilitatea acestora, și apoi să decidă ce produse vor fi recomandate pe
baza acestei comparații.
Pentru a ilustra etapa de anticipare a unui sistem de recomandare, luăm în considerare următorul
exemplu, un algoritm de recomandare simplu, nepersonalizat care recomandă doar cele mai
populare articole. Motivul pentru utilizarea acestei abordări este că, în lipsa unor informații mai
precise despre preferințele utilizatorului, un articol vestimentar, de exemplu, care este plăcut de
mulți utilizatori (are o utilitate ridicată), cel mai probabil va fi agreat și de către un utilizator
generic, cel puțin mai mult decât un articol aleas aleatoriu.
Această lucrare prezintă diferite tipuri de sisteme care recomandă produse, ce variază în funcție
de domeniul abordat, cunoștințele utilizate, dar mai ales în ceea ce privește sistemul de
recomandare; de exemplu, cum se construiește predicția utilității unei recomandări. Alte
diferențe se referă la modul în care recomandările sunt asamblate și prezentate utilizatorului ca
răspuns cererilor acestuia.
Filtrare bazată pe conținut: Aceasta abordare se bazează pe filtrarea conținutului, analiza unui
set de date, documente și/sau descrieri ale elementelor evaluate anterior de către un utilizator,
construind astfel un model sau profil al intereselor utilizatorului pe baza caracteristicilor
articolelor evaluate de acesta. Profilul este o reprezentare structurată a intereselor utilizatorului,
adoptat pentru a recomanda elemente noi interesante. Procesul de recomandare constă practic în
potrivirea atributelor profilului de utilizator contrar atributelor conținute de un articol. Rezultatul
este o deducție relevantă care reprezintă nivelul de interes al utilizatorului pentru acel obiect. În
cazul în care un profil reflectă cu acuratețe preferințele utilizatorului, acesta este un avantaj
imens pentru eficiența procesului de acces la informație. De exemplu, informațiile ar putea fi
folosite pentru a filtra rezultatele căutării și de a decide dacă un utilizator este interesat sau nu de
o pagină Web, în caz negativ, evitând afișarea acelei pagini.
20
Filtrarea prin colaborare(CF): [18] Constă în a recomanda elemente pentru utilizatorul activ,
pe care alți utilizatori cu gusturi similare le-au plăcut în trecut. Similaritatea gustului a doi
utilizatori se calculează pe baza similarității evaluărilor oferite de utilizatori anterior. Acesta este
motivul pentru care [19] se referă la filtrarea prin colaborare ca ”people-to-people correlation”.
Filtrarea prin colaborare este considerată a fi cea mai populară tehnică în sistemele de
recomandare fiind utilizată la scară largă.
Printre abordările recomandărilor prin colaborare, metodele bazate pe cel mai apropiat vecin
(nearest-neighbors), se bucură de o mare popularitate, datorită simplității, eficienței, precum și
capacitatea acestora de a produce recomandări precise și personalizate. Aceste metode se
concentrează pe relațiile dintre obiecte sau, alternativ, între utilizatori. O abordare element-
element (item-item) modelează preferința utilizatorului pentru un element în funcție de evaluările
oferite de același utilizator elementelor similare.
Algoritmii de filtrare prin colaborare sunt de obicei împărțiți în două categorii: filtrare prin
colaborare pe bază de memorie (memory-based) și bazată pe modele (model-based). Filtrarea
prin colaborare bazată pe memorie utilizează baza de date a utilizatorului (sau cel puțin un
eșantion mare) pentru a crea recomandări. Algoritmul cel mai proeminent este cel de filtrare prin
colaborare bazat pe utilizator (user-based). Dezavantajele acestei abordări este scalabilitatea,
deoarece întreaga bază de date a utilizatorului trebuie prelucrată on-line pentru crearea
recomandărilor. Algoritmii bazați pe model utilizează baza de date a utilizatorului pentru a
descoperi un model mai compact (de exemplu, grupuri de utilizatori cu preferințe similare), care
este ulterior folosit pentru a crea recomandări.
21
Sistemele bazate pe constrângeri sunt un alt tip de sisteme de recomandare ce implementează
la bază filtrarea bazată pe cunoaștere. În termeni de cunoștințe utilizate, ambele sisteme sunt
similare: cerințele utilizatorului sunt colectate; alternative pentru cererile inconsistente sunt
propuse automat în cazul în care nu a fost găsită o soluție; și rezultatele recomandării sunt
explicate. Diferența majoră constă în modul de calcul al soluțiilor. Recomandările bazate pe
conținut determină recomandări pe baza indicatorilor de similaritate în timp ce sistemele bazate
pe constrângeri determină soluții prin exploatarea cu predominanță a bazei de cunoștințe
predefinită, care conține reguli explicite despre cum se raportează cerințele clientului la
caracteristicile elementelor.
Cercetarea în acest domeniu este încă în fază incipientă, iar rezultatele cu privire la
performanțele sistemelor nu sunt foarte clare.
22
3.2 Algoritmi si clasificari
Sarcina fundamentală în filtrarea prin colaborare este de a prezice un set de evaluări lipsă pentru
un anumit utilizator (utilizatorul activ), pe baza datelor conținute de matricea evaluărilor
(denumită uneori și ca baza de date a utilizatorului). Există următoarele două abordări generale
pentru filtrarea prin colaborare:
Fiecare dintre aceste tehnici are adepți ce pretind că aceasta este o îmbunătățire față de o
altă tehnică, având în vedere un anumit scop. Cu toate acestea nu există o noțiune comună de
calitate a sistemelor de recomandare, și prin urmare, compararea diferitelor sisteme este dificilă.
Mulți cercetători au recunoscut această problemă și mai multe contribuții ce încearcă să o rezolve
au fost prezentate de-a lungul timpului. În acest subcapitol vom prezenta pe scurt stadiul actual
în evaluarea sistemelor de recomandare.
Abordari de evaluare
1. Metoda off-line In aceasta metoda nici un utilizator real nu este implicat fiind utilizat un set
de date existent. Setul de date este împărțit într-un set de test și un set de formare (antrenare).
Utilizând rating-urile din setul de antrenament, algoritmul sistemului de recomandare încearcă să
prezică rating-urile ce se află în setul de test, care mai apoi pot fi comparate pentru a determina
eroarea absolută.
În validarea încrucișată de k ori (K-fold cross validation), setul de date este partiționat în K
subseturi. Din aceste subseturi, unul este reținut și utilizat ca set de test, în timp ce seturile
rămase sunt utilizate pentru antrenament. Acest proces este repetat de K ori, de fiecare dată cu un
set de test diferit.
Algoritmul de recomandare este evaluat mai apoi prin compararea evaluărilor prezise de sistem
și evaluările din setul de test.
23
2. Metoda off-line Au avantajul că sunt rapide, economice și ușor de efectuat cu o cantitate mare
de date, mai multe seturi de date și cu mai mulți algoritmi. Când setul de date include și marcaje
ale timpului care indică momentul când un element a fost evaluat, este posibilă replicarea tuturor
interacțiunilor cu sistemul de recomandare. Cu toate acestea un sistem permite evaluarea
previziunilor pentru elementele ce au fost efectiv evaluate de către utilizator, astfel se limitează
setul de elemente ce pot fi evaluate. Mai mult de atât, evaluarea off-line nu poate măsura
”adevărata” satisfacție a utilizatorului.
Acoperirea
Pe lângă metricele de acuratețe, există o serie de alte dimensiuni ce pot fi măsurate. Una dintre
aceste dimensiuni, menționată și în literatura de specialitate este acoperirea. Acoperirea măsoară
procentajul elementelor pentru care sistemul de recomandare poate oferi predicții sau
recomandări. Un sistem de recomandare nu poate genera întotdeauna o predicție, deoarece nu ar
putea exista suficiente date. De exemplu, când un element nu a mai fost votat anterior, o tehnică
bazată pe element nu poate prezice rating-ul pe care un utilizator l-ar oferi acelui element.
Există două tipuri de acoperire abordate de Herlocker în [22]: acoperirea predicțiilor (prediction
coverage) și acoperirea cataloagelor (catalogue coverage). Acoperirea predicțiilor măsoară
procentajul elementelor pentru care sistemul poate oferi recomandări. Acoperirea cataloagelor,
pe de altă parte este o măsură a procentului de elemente care este recomandat vreodată unui
utilizator. O acoperire mai mare înseamnă că sistemul este capabil de a lua decizii în cât mai
multe situații posibile. Acoperirea poate fi măsurată prin alegerea unui set aleatoriu de perechi
utilizator-element, pentru ca mai apoi sistemul de recomandare să genereze recomandări pe baza
acestui set. În cele din urmă, atât acoperirea predicțiilor cât și cea a cataloagelor poate fi
măsurată.
Satisfacția utilizatorilor este un aspect oarecum vag și slab definit, acesta fiind prin
urmare, forte dificil de măsurat. În contextul cercetării, satisfacția utilizatorului, este definită ca
măsura în care un utilizator poate face față problemei supraîncărcării cu informații. Dimensiunile
descrise în secțiunile anterioare, vor sprijini sau inhiba satisfacția utilizatorilor într-o anumită
măsură. Cu scopul de a putea determina efectul acestor dimensiuni în satisfacția utilizatorului,
aceasta în sine trebuie definită.
24
Explicite vs implicite. Metoda de evaluare poate cere în mod explicit factorul de mulțumire al
utilizatorului, sau acesta poate fi observat. Metodele de evaluare implicite necesită ipoteze, în
scopul de a traduce observațiile într-o măsură de satisfacție a utilizatorilor, de exemplu, o
creștere a vânzărilor unui anumit produs implică o satisfacție mai mare a utilizatorilor ce au
achiziționat acel produs.
Studii de laborator vs studii în mediul real (field studies). Studiile de laborator se desfășoară
în medii controlate în timp ce studiile în mediu real au loc într-un context concret al
utilizatorului.
Rezultate vs procese. Studiul se poate axa doar pe rezultatele obținute, dar se poate orienta și
spre procesele din care acestea provin.
Pe termen scurs vs pe termen lung. Evaluările pe termen scurt ale utilizatorului pot omite
rezultate care apar doar după o anumită perioadă de timp. De exemplu, evoluția preferințelor
utilizatorului este un fenomen ce poate fi investigat doar pe o perioadă lungă de timp.
Sistemele de recomandare s-au transformat de-a lungul timpului de la niște instrumente folosite
de cercetători la instrumente de afaceri, care devin utilizate pe o scară largă în diferite domenii.
Aceste sisteme sunt în special cunoscute pentru capacitatea lor de a recomanda cărți, muzică,
filme și programe de televiziune, articole vestimentare, produse de sănatate etc. În secțiunile ce
urmează vom descrie pe scurt câteva dintre aceste sisteme.
Amazon.com : Probabil cea mai cunoscută aplicație care utilizează tehnologia sistemelor de
recomandare este Amazon.com. Utilizatorii site-ului primesc recomandări în diferite forme. Un
exemplu este ”Clienții care au cumpărat”, facilitate care recomandă produsele achiziționate de
oamenii ce au cumpărat un anumit produs. Utilizatorii care dețin un cont de Amazon.com și sunt
conectați vor primi, de asemenea, un număr de recomandări bazate pe istoria cumpărăturilor
Utilizatorul poate specifica din ce categorie i-ar plăcea să primească recomandări doar făcând
clic pe ea.
Amazon.com implementează tehnica bazată pe filtrarea prin colaborare (CF) pentru a anticipa
care sunt produsele care se potrivesc cel mai bine nevoilor utilizatorului dintr-un set enorm de
date. Scalabilitatea este un aspect important aici, deoarece Amazo.com are zeci de milioane de
clienți și produse. Algoritmul de filtrare prin colaborare bazat pe elemente potrivește fiecare
produs cumpărat și evaluat de utilizator cu produse similare, combinând aceste elemente într-o
25
listă de recomandări pentru acesta. Pentru a determina care elemente sunt similare, algoritmul
construiește un tabel de elemente similare pe baza elementelor pe care clienții tind să le
achiziționeze împreună. Această abordare este diferită de cei mai mulți algoritmi de recomandare
care calculează o metrică de similitudine pentru fiecare pereche de elemente.
26
CAPITOLUL 4
FashionStore – Un sistem de recomandare al produselor vestimentare
După cum am putut vedea din capitolele precedente, o dată cu creșterea volumului de
date în rețeaua de internet s-a ajuns la dezvoltarea unor sisteme de recomandare. Aceste sisteme
prezinta o mare realizare deoarece sunt foarte utile si dau un ajutor deosebit utlizatoriilor in
gasirea produselor relevante si de interes major pentru aceștia, reducând astfel timpul necesar
căutarii lor.
Cum am menționat mai sus, scopul acestei aplicații este de a veni in ajutorul
utilizatoriilor in găsirea produselor pentru care ei prezintă un interes major in preferințele lor.
Sa se creeze o aplicație care preia informatii despre produsele existente si mai apoi să
recomande unele dintre aceste articole bazându-se pe ranking-urile oferite de utilizatorul curent
in functie de actiunule acestuia. Aplicația poate fi folosită de orice tip de utilizatori.
Atat utilizatorii autentificati cat si cei neautentificați vor putea vizualiza produsele
existente, acțiunile utilizatorilor vor fi salvate in baza de date, valorilor fiindu-le asociate id-ul
produsului, cat si session cookie id-ul sau id-ul utilizatorului, dupa caz.
27
4.2 Analiză și proiectare
C Sharp (C#) - este un limbaj asemănător sintactic cu limbajul Java, fiind un limbaj
multi-paragimă, înglobând mai multe discipline precum: puternic tipizat, declarativ, funcțional,
generic, orientat-obiect (bazat pe clase) și orientat spre componente. Acesta a fost dezvoltat de
Microsoft în cadrul inițiativei de dezvoltare a framework-ului .NET
.net (MVC & Linq) - MVC, Model-View-Controller, este un sablon arhitectural care
separa partea de stocare a datelor de cea de prezentare si de prelucrare (interfata proiectului).
Modelul: este partea logica a unei aplicatii, partea de programare care raspunde la cereri despre
starea sistemului si operatiile care se fac asupra bazei de date. View-ul: transpune intreg modelul
intr-o interfata grafica. Este practic o mini-aplicatie ce ajuta la rendarea informatiilor procesate
de controller.Controller-ul: este componenta principala a arhitecturii MVC, creierul aplicatiei ce
face legatura intre model si view, intre actiunile userului si partea decizionala a aplicatiei.
CSS - Cascading Style Sheets este un limbaj folosit pentru descrierea prezentării unui document
scris într-un limbaj de marcare precum HTML. CSS este o tehnologie de temelie a World Wide
Web, alături de HTML și JavaScript.
Interfata: Web
Engine baza de date: MS SQL Server Express
Sistem operare/mediu de instalare/rulare: MS Windows, IIS (Internet
InformationServices).
28
4.2.2 Diagrama cazurilor de utilizare
29
Figura 4.2 Diagrama cazurilor de utilizare pentru administrator
30
4.2.3 Diagrama de componente
Aplicația este sctructurata din mai multe module care sunt dependente intre ele dupa cum se poate vedea
in (Figura 4.3).
31
Figura 4.3 Diagrama de componente
32
4.2.4 Structura bazei de date
Acest sistemul de recomandare are mai multe componente de bază fiecare având
imoprtanță si rolul lui in egala măsura.
O astfel de structură este si baza de date pe care am utilizato in stocarea sau preluarea
informațiilor, despre produse, utilizatori si despre acțiuniile utilizatorilor (Figura 4.4).
33
Tabela Administrators
Tabela Customers
Tabela Products
Tabela ProductsRanking
Tabela Orders
utilizată pentru a stoca informațiile legate de o comanda are campurile (Id, CustomerId,
Status, CreatedOn)
Este o tabelă care este dependent de tabelel Customers cu Cheia străină(FK) CustomerId.
Tabela OrdersItems
utilizată pentru a stoca informațiile legate de comenzile efectuate are campurile (Id,
OrderId, ProductId, Quantity, ProductPrice)
Este o tabelă care este dependent de tabelel Products cu cheia străină(FK) ProductIdId
34
Pentru interacționarea cu baza de date se foloseste Linq.
Creare unei noi conexiuni se face folosind codul din figura (Figura 4.5).
Pentru cautarea avansata in baza de date se folosesc doua clase de baza(Figura 4.6).
BaseTable
35
BaseTableView (Figura 4.7).
Fiecare entitate are definita o clasa (model) care deriva din una din clasele de mai sus, dupa caz:
Figura 4.8
36
4.3 Functionalitate aplicatie
4.3.1 Login
Folosirea aplicației se poate face atât cu nume utilizator și parolă, cât și fără,
funcționalităile variind atât in funcție de tipul utilizatorului cât si dacă este logat sau nu. În
funcție de tipul de utilizator, acesta are acces la anumite parti din aplicatie si funcționalitate.
Descrierea algoritmului:
37
O data introduse, se verifică existența acestora in baza de date. În cazul în care datele
introduse sunt valide, acesta este autorizat in sistem. In cazul in care toate verificarile de mai sus
sunt valide, toate datele legate de user-ul logat se salveaza temporar in memoria aplicatiei pentru
performantă.
38
Figura 4.12 Algoritmul pentru validare înregistrare
39
4.3.2 Afisare produse sugerate/recomandate de sistem
40
Calcularea ranking-ului
Ranking-ul se calculează, momentan pe ultimele 7 zile, folosind valori intregi asociate
acțiunilor utilizatorilor: Like, Dislike, View, Buy.
Am dat un rank-ing numeric fiecărei acțiuni pe care o face utilizatorul pe site. Mai exact atunci
cand el vizualizează un anumit produs, View se va pune in baza de date valoare numerica 1.
Daca utilizatorul face acțiunea de Like se va pune in baza de date valoarea numerica 3, dacă
utilizatorul face acțiunea de Deslike se va pune in baza de date valoarea numerică -3. Daca
utilizatorul cumpara un produs, actiunii de cumparare va avea un ranking cu valoare numerica 5.
Salvarea ranking-ului
Acesta se salveaza in baza de date in tabela ProductRankings, valorilor fiindu-le
asociate id-ul produsului, cat si session cookie id-ul si/sau id-ul utilizatorului, dupa caz.
41
Figura 4.14 Algoritmul pentru salvare ranking in BD
42
Cautare produse sugerate
Pentru cautarea acestora, s-a implementat functia GetRankingSuggested. Se cauta toate intrarile
din tabela ProductRankings astfel încat să corespunda utilizatorului curent (cookie id si/sau user
id). Se calculeaza ranking-ul pentru fiecare produs in parte din lista si se ordoneaza descrescator
dupa valori.
43
4.3.3 Actiunile Administratorului
Administrare administratori
Poate crea, modifica si sterge administratori. Se foloseste intrarea Administrators din meniul
principal.
44
Administrare produse
Poate crea, modifica si sterge produse. Se foloseste intrarea Product Categories din meniul
principal, managementul facandu-se din editarea unui tip de produs.
Administrare comenzi
Poate modifica comenzi. Se foloseste intrarea Orders din meniul principal.
45
4.3.5. Actiunile Utilizatorului
Vizualizare comenzi
Poate vizualiza comenzile efectuate. Se foloseste intrarea Orders din meniul principal.
Schimbare parola
Poate sa isi schimbe parola. Se foloseste intrarea Change Password din meniul principal
46
Figura 4.22 Formural schimbare parola
Vizualizare catalog produse
Poate vizualiza produsele din categoriile existente. Se foloseste intrarea Products din meniul
principal
47
Vizualizare produs
Poate vizualiza un produs si detaliile acestuia. Se foloseste intrarea Products din meniul principal
sau din pagina de Home.
Cumparare produs
Poate cumpara un produs, adaugandu-l in cosul de cumparaturi. Se foloseste AddToBasket din
vizualizare produs.
48
Vizualizare cos de cumparaturi
Poate vizualiza cosul de cumparaturi. Se foloseste intrarea Basket din meniul principal.
Înregistrare
Se poate realiza de pe pagina de login.
49
Vizualizare produse sugerate de sistemul de recomandare
Vizualizeaza produsele sugerate de catre sistem. Acestea sunt afisate automat in functie de
ranking-ul pe care utilizatorul le-a dat produselor, fiind atat logat sau nu. Sistemul afiseaza aceste
produse atat pe Home page cat si pe pagina de vizualizare produs.
50
Concluzie
BIBLIOGRAFIE
51
[1]. MANZOOR, A. E-commerce: an introduction. Amir Manzoor, 2010.
[2]. Radu A, Gămulescu C, Manolea B, Taloi L. Studiu privind dezvoltarea
comerţului electronic în România.
[3]. Shahjee R. The impact of electronic commerce on business organization.
Scholarly Research Journal for interdisciplinary studies. 2016 Nov;27(4):3130-40.
[4]. Zorayda Ruth Andam,“E-Commerce and E-Business”, [Online] Available:
http://www.apdip.net/publications/ iespprimers/eprimer-ecom.pdf
[5]. Nanehkaran YA. An introduction to electronic commerce. International journal of
scientific & technology research. 2013 Apr 25;2(4):190-3.
[6]. Terry J, Standing C. The value of user participation in e-commerce systems
development. Informing Science: International Journal of an Emerging
Transdiscipline. 2004 Jan 1;7:31-45.
[7]. Lumpkin GT, Droege SB, Dess GG. E-commerce strategies: achieving
sustainable competitive advantage and avoiding pitfalls. Organizational
Dynamics. 2002 Jun 1;30(4):325-40.
[8]. Molla A, Licker PS. E-commerce systems success: An attempt to extend and
respecify the Delone and MacLean model of IS success. J. Electron. Commerce
Res.. 2001 Nov;2(4):131-41.
[9]. Niranjanamurthy M, Kavyashree N, Jagannath S, Chahar D. Analysis of e-
commerce and m-commerce: advantages, limitations and security issues.
International Journal of Advanced Research in Computer and Communication
Engineering. 2013 Jun;2(6):2360-70.
[10]. Anand, S.S., Mobasher, B.: Intelligent techniques for web personalization. In:
Intelligent Techniques for Web Personalization, pp. 1-36. Springer (2005)
[11]. Burke, R.: Hybrid web recommender systems. In: The Adaptive Web, pp. 377–
408. Springer Berlin / Heidelberg (2007)
[12]. Jannach, D.: Finding preferred query relaxations in content-based recommenders.
In: 3rd International IEEE Conference on Intelligent Systems, pp. 355-360 (2006)
[13]. Mahmood, T., Ricci, F.: Improving recommender systems with adaptive
conversational strategies. In: C. Cattuto, G. Ruffo, F. Menczer (eds.) Hypertext,
pp. 73-82. ACM
[14]. Schwartz, B.: The Paradox of Choice. ECCO, New York (2004)
[15]. Jannach, D., Zanker, M., Felfering, A., Friedrich, G.: Recommender Systems An
Introduction. Cambridge University Press (2010)
[16]. Montaner, M., Lopez, B., de la Rosa, J.L.: A taxonomy of recommender agents on
the internet. Artificial Intelligence Review 19(4), pp. 285-330 (2003)
[17]. Billsus, D., Pazzani, M.: Learning probabilistic user models. In: UM97 Workshop
on Machine Learning for User Modeling (1997)
52
[18]. Schafer, J.B., Frankowski, D., Herlocker, J., Sen, S.: Collaborative filtering
recommender systems. In: The Adaptive Web, pp. 291-324. Springer Berlin /
Heidelberg (2007)
[19]. Schafer, J.B., Konstan, J.A., Riedl, J.: E-commerce recommendation applications.
Data Mining and Knowledge Discovery 5(1/2), pp. 115–153 (2001)
[20]. Ricci, F., Cavada, D., Mirzadeh, N., Venturini, A.: Case-based travel
recommendations. In: D.R. Fesenmaier, K. Woeber, H. Werthner (eds.)
Destination Recommendation Systems: Behavioural Foundations and
Applications, pp. 67–93. CABI (2006)
[21]. Sinha, R.R., Swearingen, K.: Comparing recommendations made by online
systems and friends. In: DELOS Workshop: Personalisation and Recommender
Systems in Digital Libraries (2001)
[22]. Jonathan L. Herlocker, Joseph A. Konstan, Loren G. Terveen, and John T. Riedl,
Evaluating collaborative filtering recommender systems, ACM Trans. Inf. Syst.
22, no. 1, pp. 5–53 (2004)
53