Sei sulla pagina 1di 54

UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA

FACULTATEA DE MATEMATICǍ ŞI INFORMATICǍ


SPECIALIZAREA INFORMATICĂ

LUCRARE DE LICENTĂ

Platformă pentru gestionarea de siteuri


de e-commerce cu sisteme de recomandare

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

2.1 Ce sunt sistemele de recomandare? …………………………………………………12

2.2 Importanța sistemelor de recomandare………………………………………………14

2.3 Principalele abordări actuale………………………………………………………...17

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

4.2.3 Diagrama de componente………………………………………………………….31

4.2.4 Structura bazei de date……………………………………………………………..33


4.3 Funcționalitatea aplicației……………………………………………………………………37
4.3.1 Login……………………………………………………………………………….37
4.3.2 Afișare produse sugerate/recomandate de sistem………………………………..40
4.3.3 Acțiunile Administratorului……………………………………………………...44
4.3.5 Acțiunile Utilizatorului…………………………………………………………..46

Concluzie………………………………………………………………………………………...51
BIBLIOGRAFIE………………………………………………………………………………..52

2
INTRODUCERE

Internetul este un mijloc foarte puternic pentru derularea comerţului. Utilizarea


Internetului la costuri scăzute, reducerea timpului de introducere pe piaţă a bunurilor şi
serviciilor, posibilitatea transferului de informaţii despre bunuri şi servicii sub formă digitală,
reducerea costurilor de distribuţie şi transport, sunt doar câteva din avantajele utilizării
Internetului ca şi mijloc de realizare a comerţului electronic.

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.

Lucrarea de fața iși propune sa vina in ajutorul utilizatorilor oferindule servicii


personalizate, preferintelor lor. De aceea vom prezenta un sistem de recomndare care va creste
posibilitatea de a oferi recomandari calitative.

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.

Capitolul doi ofera o descriere a sistemelor de recomandare, ce sunt acestea, importanta


folosirii lor, cat si principalele abordari actuale.

Capitolul trei pune in evidenta cateva tehnici utilizate in dezvoltarea sistemelor de


recomandare, modul lor de evolutie si exemplificarea unor sisteme.

Î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

1.1 Ce sunt Site-urile de e-commerce?

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).

Werthner defineşte comerţul electronic ca “… o distribuire a informaţiilor de business,


întreţinerea informaţiilor de business şi conducerea tranzacţiilor de business prin intermediul
reţelelor de telecomunicaţii cu focalizarea pe acoperirea fazelor tranzacţiei, căutare, negociere,
acord şi încheiere”. După Baron, Show şi Bailey, există două categorii majore de businessuri şi
implicit de pieţe, pe Internet, comerţ electronic orientat spre consumator şi comerţ electronic
orientat spre business, acesta din urmă având cea mai spectaculoasă creştere.

Î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]

1.2 Comertul electronic in Romania

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.

În februarie 2004, organizaţiile emitente de carduri – Visa şi MasterCard – au lansat în


România programul de securitate 3D Secure, respectiv Verified by Visa şi MasterCard Secure
Code. Momentul a reprezentat începutul comerţului electronic românesc. În ultimul trimestru al
anului 2003, RomCard a configurat primele bănci în 3D Secure atât pe activitatea de emitere, cât
şi de acceptare (BCR, Raiffeisen Bank, Banca Ţiriac) şi Alpha Bank pe emitere sub sigla Visa.
În prezent, numărul băncilor care au implementat 3D Secure a ajuns la 8.

Implementarea 3D Secure a însemnat însă şi un pionierat în întreaga regiune CEMEA,


România fiind singura ţară din zonă în care Visa şi MasterCard au promovat noul standard de
securitate. De altfel, la nivel de mapamond mai existau doar trei ţări care experimentau acest
standard, respectiv Spania, Marea Britanie şi Portugalia.

România a avut o poziţie privilegiată şi şansa de a deveni centrul de procesare al plăţilor


online. Magazinele online din ţările vecine ca Bulgaria sau Ungaria, începuseră în 2005 să
proceseze plăţile online prin băncile româneşti. De asemenea, un număr tot mai mare de
comercianţi din SUA şi Canada preferau procesarea plăţilor prin România, având în vedere că nu
dispuneau de tehnologia 3D Secure, iar comisioanele bancare erau printre cele mai mici. Astfel,
cifrele de tranzacţionare creşteau vertiginos de la o lună la alta, întreaga piaţă fiind extaziată de
performanţele înregistrate în comerţul electronic.[2]

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.

Business to Consumer (B2C) reprezintă modelul de comerţ electronic în care transferul de


bunuri și servicii prin intermediul platformelor electronice se realizează de la companie către
clienţi persoane fizice (figura 1). Acest model de comerţ are la bază un site Web care este
administrat de către companie pentru promovarea şi vânzarea bunurilor și serviciilor. Un astfel
de site poartă denumirea de magazin virtual și conţine catalogul cu produse şi servicii ale
companiei. Magazinele virtuale includ funcţii pentru căutarea şi vizualizarea produselor după
anumite filtre, ordonate după un anumit criteriu, și, de asemenea, permite preluarea comenzilor şi
efectuarea plăţilor cu cardul sau diferite conturi electronice de plată.

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ă.

E-procurement (aprovizionare electronică) folosită pentru procurarea bunurilor şi serviciilor de


către marile companii şi autorităţi publice. Prin publicarea pe Web a specificaţiilor ofertei, scad

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.

Prin e-leasing sunt oferite sisteme de leasing electronic.

Government-to-business (G2B) reprezintă un model de afaceri electronice în care o instituţie


guvernamentală cumpără sau vinde bunuri, servicii (figura 1). În România este utilizată
platforma www.e-licitatie.ro.

Government-to-consumer (G2C) este modelul specific procesului de e-guvernare și acoperă


relaţiile dintre guvern și cetăţeni la nivel de informare şi prestare de servicii publice,
www.edirect.e-guvernare.ro. În această categorie intră site-urile pentru plata on-line a taxelor şi
impozitelor, www.ghiseul.ro.

Figura 1. Categorii de comerţ

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.

Beneficiile comerțului electronic pentru organizații

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.

Reducerea costurilor operationale - costurile pentru crearea, procesarea, distribuirea,


stocarea și preluarea informațiilor pe bază de hârtie au scăzut.

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ă.

Digitalizarea produselor și proceselor. În special în cazul softurilor și produselor


muzicale / video, care pot fi descărcate sau trimise prin e-mail direct către clienți prin
Internet în format digital sau electronic.

Nu mai există restricții de 24 de ore. Întreprinderile pot fi contactate de către clienți sau
furnizori în orice moment.

Beneficiile comerțului electronic pentru consumatori

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.

Beneficiile comerțului electronic pentru societate

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.

Facilitează furnizarea de servicii publice. De exemplu, serviciile de sănătate


disponibile pe internet (consultarea on-line cu medicii sau asistenții medicali), impozitele
pe internet prin intermediul site-ului de venituri interioare.

1.5 Dezavantajele comerțului electronic

Dezavantajele comerțului electronic pentru organizații

Evolutia rapida și schimbarea tehnologiei, astfel încât există întotdeauna senzația de a


încerca să „prinzi” și să nu fii lăsat în urmă.

Presiune de a inova și de a dezvolta modele de afaceri pentru a exploata noile


oportunități, uneori duc la strategii dăunătoare organizației. Ușurătatea cu care modelele
de afaceri pot fi copiate și emulate pe Internet crește această presiune și reduce avantajul
competitiv pe termen lung.

Probleme cu compatibilitatea tehnologiei mai vechi și „mai noi”. Există probleme în


care sistemele de afaceri mai vechi nu pot comunica cu infrastructurile web și bazate pe
Internet, ceea ce duce ca unele organizații sa opereze aproape două sisteme independente
în care datele nu pot fi partajate. Acest lucru duce adesea la nevoia de a investi în sisteme

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.

Dezavantajele comerțului electronic pentru consumator

Echipamente de calcul necesare pentru ca persoanele fizice să participe la noua


economie „digitală”, ceea ce înseamnă un cost de capital inițial pentru clienți.

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.

Lipsa securității și confidențialității datelor cu caracter personal. Nu există un


control real al datelor care sunt colectate pe Web sau pe Internet. Legile privind protecția
datelor nu sunt universale, astfel încât site-urile web găzduite în diferite țări pot avea sau
nu legi care protejează confidențialitatea datelor cu caracter personal.

Dezavantajele comerțului electronic pentru societate

Epuizarea interactiunii umane. Pe măsură ce oamenii obișnuiesc să interacționeze


electronic, ar putea exista o eroziune a abilităților personale și sociale care ar putea fi în
cele din urmă în detrimentul lumii în care trăim, în care oamenii interacționează mai
confortabil cu un ecran decât față în față.

Neincrederea in infrastructura de telecomunicații, care în țările în curs de dezvoltare


sunt indisponibile rare sau subdezvoltate.

Dificultatea de a controla Internetul, ceea ce înseamnă că numeroase infracțiuni pot fi


comise și deseori nedetectate.

11
CAPITOLUL 2
Sisteme de recomandare

2.1 Ce sunt sistemele 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.

Sistemele de recomandare sau sisteme care recomandă au apărut ca domeniu de cercetare


independent în mijlocul anilor ’90 [10], fiind o diviziune consistentă a sistemelor de filtrare a
informației. Aceste sisteme sunt instrumente și tehnici ce asigură sugestii ale unor articole care
ulterior urmează a fi prezentate utilizatorilor [11].

“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ă).

Dezvoltarea sistemelor de recomandare a fost inițiată pornind de la o observație destul de banală:


oamenii se bazează de multe ori pe recomandările furnizate de alte persoane în luarea deciziilor
ce presupun rutina de zi cu zi [13]. De exemplu, se regăsește ca fiind obișnuit părerea colegilor
în decizia de a selecta un produs , angajatorii evaluează cu mare grijă scrisorile de recomandare
în deciziile lor de recrutare sau selectarea unui produs, este influențată de comentariile
persoanelor care au cumparat acel produs.

Creșterea explozivă și varietatea informației regăsită pe web împreună cu introducerea rapidă a


noilor servicii de e-business (de achiziționare de produse, comparare a produselor, licitații etc.)
au copleșit frecvent utilizatorii. Posibilitatea de alegere, în loc de a produce un beneficiu, a
început să deterioreze bunăstarea utilizatorilor. A fost de înțeles că în timp ce alegerea este bună,
mai mult, nu este întotdeauna mai bine. Într-adevăr alegerea cu implicațiile sale de libertate,
autonomie și autodeterminare poate deveni excesivă, creând un sentiment că libertatea poate
deveni un tip de tiranie ce induce “sărăcie” [14].

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.

2.3 Principalele abordari actuale

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.

În general, există tehnici de recomandare care se bazează pe o tehnică a cunoașterii limitate,


precum cele care folosesc date simple (de exemplu: evaluare articolelor de către utilizatori). Alte
tehnici sunt mult mai dependente de cunoștințe (de exemplu: folosesc descrieri ontologice ale
utilizatorilor, relații sociale ale acestora sau anumite constrângeri). Astfel putem afirma faptul că
datele utilizate de către sistemele de recomandare se referă la trei tipuri de obiecte: articole,
utilizatori și tranzacții (relațiile dintre utilizatori si articole).

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.

De exemplu, dezvoltatorul unui sistem de recomandare pentru știri trebuie sa ia în considerare


complexitatea unei știri, structura, reprezentarea și importanța acesteia. În același timp
dezvoltatorul trebuie să înțeleagă că deși utilizatorul nu suportă un cost monetar, un cost fictiv
asociat căutării și vizionării este întotdeauna prezent. În cazul în care un articol selectat este
relevant pentru utilizator acest cost este dominat de avantajul obținerii unei informații utile, în
timp ce dacă elementul nu este relevant valoare netă pe care o reprezintă acesta pentru utilizator
este negativă. În alte domenii precum cel financiar costul monetar al unui articol devine un
element foarte important în selectare celei mai bune recomandări.

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.

În sistemele conversaționale (sisteme care dispun de un proces interactiv), modelul tranzacției


este mai rafinat. În aceste sisteme solicitările utilizatorului alternează cu acțiunile sistemului.
Utilizatorul poate solicita o recomandare, iar sistemul să îi ofere o listă de sugestii, dar în același
timp sistemul poate cere informații suplimentare despre nevoile și preferințele utilizatorului cu
scopul de a-i oferi acestuia rezultate mai bune. Aici, în modelul tranzacției, sistemul colectează
diferite cereri și răspunsuri, ca în cele din urmă să învețe să modifice singur strategia de
interacțiune [13].

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.

3.1 Modalitați de recomandare

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.

Pentru o privire de ansamblu asupra diferitelor tipuri de sisteme de recomandare, am dori să


cităm o taxonomie oferită de [11], care a devenit un mod clasic de a distinge sistemele de
recomandare. [11] distinge între șase diferite abordări de recomandare:

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.

Demografice: Acest tip de sistem recomandă elemente se bazeaza pe profilul demografic al


utilizatorului (sex, vârstă, studii etc.). Se presupune că diferite recomandări ar trebui să fie
generate pentru diferite nișe demografice. Multe site-uri web adoptă soluții simple și eficiente de
personalizare bazate pe datele demografice (de exemplu, utilizatorii sunt redirectați către anumite
site-uri web în funcție de limba sau țara lor). Unele sugestii pot fi personalizate în funcție de
vârsta utilizatorului. În timp ce aceste abordări au fost destul de populare în literatura de
specialitate a marketing-ului, cercetarea în această direcție a sistemelor de recomandare nu a fost
des abordată.

Bazată pe cunoaștere: Sistemele bazate pe cunoștințe recomandă un produs bazându-se pe


cunoștințe specifice domeniului, cu privire la modul în care anumite caracteristici ale
elementului satisfac nevoile și preferințele utilizatorului și, în cele din urmă, modul în care
elementul este util utilizatorului. Cele mai populare sistemele bazate pe cunoștințe sunt cele
bazate pe caz (case-based) [20]. În aceste sisteme o funcție de similitudine estimează cât de mult
nevoile utilizatorilor (descrierea problemei) se potrivesc cu recomandările (soluții ale
problemei). Aici scorul de similaritate poate fi interpretat direct ca utilitatea recomandării pentru
utilizator.

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.

Bazate pe comunitate: Aceste tip de sistem recomandă produse utilizând preferințele


utilizatorilor prieteni. Această tehnică urmează epigrama ”Spune-mi care îți sunt prietenii și iți
voi spune cine ești”. Dovezile sugerează faptul că oamenii au tendința să se bazeze mai mult pe
recomandările oferite de prieteni decât pe recomandările primite de la persoane fizice similare,
dar anonime [21]. Această observație, combinată cu popularitatea în creștere a rețelelor de
socializare, generează un interes ridicat pentru sistemele bazate pe conținut sau cum sunt ele
altfel denumite, sisteme de recomandare sociale. Acest sistem modelează și colectează informații
despre relațiile sociale ale utilizatorului și preferințele prietenilor acestuia. Recomandarea se
bazează pe evaluările care au fost furnizate de către prietenii utilizatorului. De fapt aceste
sisteme de recomandare sunt o urmare a dezvoltării rețelelor de socializare și permit o achiziție
simplă și cuprinzătoare a datelor referitoare la relațiile sociale ale utilizatorului.

Cercetarea în acest domeniu este încă în fază incipientă, iar rezultatele cu privire la
performanțele sistemelor nu sunt foarte clare.

Sisteme de recomandare hibride: Aceste sisteme utilizează o combinație a tehnicilor


menționate anterior. Un sistem care combină tehnicile A și B încearcă să folosească avantajele A
pentru a remedia dezavantajele B și viceversa. Spre exemplu, metodele de filtrare bazate pe
colaborare suferă de problema produsului nou (new-item), ceea ce înseamnă ca ele nu pot
recomanda un produs care nu a fost evaluat. Acest lucru nu limitează abordarea sistemelor bazate
pe conținut, din moment ce recomandarea elementelor noi se bazează pe descrierea lor
(caracteristici), informații ce sunt, de obicei ușor accesibile. Având în vedere două (sau mai
multe) tehnici de recomandare, au fost propuse mai multe moduri de a le combina cu scopul de a
crea un nou sistem hybrid.

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:

1. Algoritmi pe bază de memorie - acești algoritmi funcționează online peste întreaga


matrice de rating-uri pentru a calcula predicții.
2. Algoritmi bazați pe model - spre deosebire de algoritmii pe bază de memorie, aceștia
utilizează matricea de rating-uri într-un mod offline pentru a estima un model, care
mai apoi este folosit pentru predicții;
Algoritmii pe bază de memorie, de obicei, oferă rezultate generale mai bune și sunt mult mai
adaptabili la medii dinamice, în care matricea de rating-uri este des modificată. Pe de altă parte,
aceasta abordare este foarte costisitoare din punct de vedere al procesării, astfel aplicațiile care
utilizează seturi mari de date preferă abordarea oferită de algoritmii pe bază de modele.

3.3 Evaluarea sistemelor de recoamndare

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ă.

3.4 Satisfactia utilizatorilor

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ă.

Herlocker a prezentat un număr de dimensiuni de-a lungul cărora metodele de evaluare a


satisfacției utilizatorului pot fi clasificate [22]. Aceste dimensiuni sunt:

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.

Studiile care au investigat satisfacția utilizatorilor cu privire la sistemele de recomandare


sunt puține, iar studiile care se concentrează pe satisfacția utilizatorilor cu privire la recomandări
sunt chiar mai rare. Multe studii care se concentrează pe satisfacția utilizatorilor sunt în primul
rând încadrate în categoria interacțiunilor om-calculator și nu se focusează asupra proprietăților
sistemelor de recomandare.

3.5 Sisteme de recomandare existente

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.

Sistemul de recomandare sugerează automat anumite produse in functie de ranking-ul dat


acestora de catre utilizator.

4.1 Prezentarea problemei

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.

Sistemele de recomandare sunt o componentă importantă a universului de comerț online .


Ele reprezintă o metodă puternică ce permite utilizatorilor să filtreze marea varietate de
informații și produse . Cercetarea amănunțită începută de aproape două decenii a dus la
implementarea unui număr mare de algoritmi și tehnologii pentru o mai bună evaluarea a
performanțelor acestora . Fiecare domeniu de activitate prezintă dificultăți specifice în
implementarea unui sistem de recomandare eficient  , primul pas fiind analiza potențialilor
utilizatori și scopurile acestora 

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

In continuare vom prezenta aspect legate de dezvoltarea platformei de recomandare


FashionStore, cu accent pe analiză, proiectare, implementare si utilizare.

4.2.1 Tehnologii utilizate

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.

Javascript - este limbajul de programare al web-ului datorită faptului că majoritatea


website-urilor folosesc JavaScript și toate navigatoarele moderne de pe orice tip de dispozitiv
includ un interpretor de JavaScript făcând limbajul să fie atotprezent în momentul din care se
trece granița dinspre mediul real spre cel virtual. JavaScript este un limbaj care poate să fie
folosit la programarea orientă pe obiect sau programarea funcțional, parte din sintaxa acestuia
fiind inspirată din limbajul Java.

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

Funcționalitatea sistemului de recomandare oferit de platforma de recomandare


FashionCraft atat pentru utilizatori cat si pentru administrator este ilustrata prin diagramele
cazurilor de utilizare de mai jos din figurile exemplificate (Figura 4.1 si Figura 4.2).

Figura 4.1 Diagrama cazurilor de utilizare pentru utilizator

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).

WebCraft.Common - contine functii comune folosite de catre toate modulele


WebCraft.Mag.DB - contine functii specifice interactiunii cu baza de date pentru
tabelele/entitatile folosite si mai conține scripturile pentru: crearea bazei de date, crearea user-
ilor pentru accesarea bazei de date, crearea tabelelor, inserarea datelor initiale, stergerea
procedurilor temporare folosite mai sus
Scripturi
 00 RunAll.bat: ruleaza toate sql-urile de mai jos in ordinea prestabilita
 01 Database.sql: se foloseste pentru crearea bazei de date
 02 Security.sql: se foloseste pentru creaza user-ului de baze de date folosit de aplicatie
pentru accesarea initiala a acesteia
 03 Tables.sql: folosit la crearea tabelelor
 04 DefaultData.sql: insereaza datele implicite fara de care aplicatia nu poate porni (eg.
utilizatorul ‘Administrator’)
 99 CleanUp.sql: sterge procedurile stocate temporare folosite in scripturile de mai sus
WebCraft.Mag.Web - defineste interfata web a aplicatiei
 Controalele (view-urile partiale)
 Paginile
 Imaginile
 Javascript-urile
 CSS-urile (stilurile)

31
Figura 4.3 Diagrama de componente

Sistemul de recomandae FashionStore este conceput respectând pricipiile programarii orientate


pe obiecte. Se foloseste coziunea inalta (high cohesion) care stabileste cat de puternic sunt
legate între ele responsabilitățile unu modul. Utilizand o astfel de structura modulele sunt mai
ușor de întels, operațiile fiind strans legate între ele si mai puține, totodată întretinerea sistemului
devine mai accesibil, iar reutilizarea modulelor crește, facilitând tratarea erorilor in timpul
execuției. Modulul WebCraft.Mag.Web folosește WebCraft.Mag.DB . Mai exact interfața web
pe care utilizatorul o foloseste atunci cand executa anumite acțiuni cum ar fi logarea, cautare
produse, cumparare produse, like, dislike folosește functii din modulul WebCraft.Mag.DB,
pentru adaugarea, extragerea informatiilor din baza de date pe care o deținem.

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).

Figura 4.4 Diagrama bazei de date

33
Tabela Administrators

 folosită pentru stocarea informațiilor legate de logarea Administratorului cu câmpurile


(Id, UserName, Password).
 Este o tabela independent care nu utiilzeaza informații din alte tabela.

Tabela Customers

 utilizată pentru a stoca informațiile legate de utilizatori cu câmpurile (Id, EmailAdress,


Password, FirstName, LastName, Adress)
 Este o tabela independenta care nu utiilzeaza informații din alte tabela.

Tabela Products

 utilizată pentru a stoca informațiile legate de produse cu câmpurile (Id,


ProductCategoryId, Name, Description, Price, ImageSmallId, CreatedOn)
 Este o tabela independenta care nu utiilzeaza informații din alte tabela

Tabela ProductsRanking

 utilizată pentru a stoca informațiile legate de ranking-ul pe care utilizatorii il dau


produselor, are campurile (Id, ProductId, CustomerID, CookieId, Value, CreatedOn,
Modification)
 Este o tabelă care este dependent de tabelel Customers cu Cheia străină(FK) CustomerId,
si tabela Products cu cheia straina(FK) ProductId.

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

Accesarea bazei de date


Setarile pentru conexiunea la baza de date se citesc din configuratia aplicatiei
(App.config)

34
Pentru interacționarea cu baza de date se foloseste Linq.
Creare unei noi conexiuni se face folosind codul din figura (Figura 4.5).

Figura 4.5 Interaționarea cu baza de date

Pentru cautarea avansata in baza de date se folosesc doua clase de baza(Figura 4.6).
 BaseTable

Figura 4.6 Cautare in basa de date

35
 BaseTableView (Figura 4.7).

Figura 4.7 Căutare in baza de date

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.

Figura 4.9 Formular pentru înregistrare

Descrierea algoritmului:

Figura 4.10 Algoritmul pentru înregistrare

Utilizatorul trebuie sa introducă un nume de utilizator si parola. În cazul în care una


dintre acestea nu este introdusă se va afisa un mesaj de eroare.

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ă.

. Figura 4.11 Algoritmul pentru validare înregistrare

38
Figura 4.12 Algoritmul pentru validare înregistrare

39
4.3.2 Afisare produse sugerate/recomandate de sistem

Figura 4.13 Afișare produse recomandate

Sistemul de recomandare pe care l-am studiat, sugerează automat anumite produse in


functie de ranking-ul dat acestora de catre utilizator, acesta fiind atat logat sau nu. Sistemul
afiseaza aceste produse atat pe Home page cat si pe pagina de vizualizare produs.

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.

Figura 4.15 Algoritmul pentru căutare produse sugerate

43
4.3.3 Actiunile Administratorului
 Administrare administratori
Poate crea, modifica si sterge administratori. Se foloseste intrarea Administrators din meniul
principal.

Figura 4.16 Formural înregistrare administrator

 Administrare tipuri de produse


Poate crea, modifica si sterge tipuri de produse. Se foloseste intrarea Product Categories din
meniul principal.

Figura 4.17 Formural administrare tipuri produse

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.

Figura 4.18 Formural administrare produs

 Administrare comenzi
Poate modifica comenzi. Se foloseste intrarea Orders din meniul principal.

Figura 4.19 Formural administrare comenzi

45
4.3.5. Actiunile Utilizatorului
 Vizualizare comenzi
Poate vizualiza comenzile efectuate. Se foloseste intrarea Orders din meniul principal.

Figura 4.20 Formural vizualizare comenzi

 Schimbare parola
Poate sa isi schimbe parola. Se foloseste intrarea Change Password din meniul principal

Figura 4.21 Formural schimbare parola

46
Figura 4.22 Formural schimbare parola
 Vizualizare catalog produse
Poate vizualiza produsele din categoriile existente. Se foloseste intrarea Products din meniul
principal

Figura 4.23 Vizualizare catalog produse

47
 Vizualizare produs
Poate vizualiza un produs si detaliile acestuia. Se foloseste intrarea Products din meniul principal
sau din pagina de Home.

Figura 4.24 Formular vizualizare produs

 Cumparare produs
Poate cumpara un produs, adaugandu-l in cosul de cumparaturi. Se foloseste AddToBasket din
vizualizare produs.

Figura 4.25 Formular cumparare produs

 Adaugare rang produs


Poate sa dea un ranking produsului. Se folosesc iconitele Like/Dislike din vizualizare produs.

48
 Vizualizare cos de cumparaturi
Poate vizualiza cosul de cumparaturi. Se foloseste intrarea Basket din meniul principal.

Figura 4.26 Vizualizare cos de cumparaturi

 Înregistrare
Se poate realiza de pe pagina de login.

Figura 4.27 Formular înregistrare

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.

Figura 4.28 Vizualizare produse sugerate de sistemul de recomandare

50
Concluzie

Implementarea acestui program în sistemul de vanzări online sau e-comerce, evidențiaza


o serie de rezultate pozitive atât în activitatea administratorilor cat si cea a utilizatorilor.
Aplicaţia informatică presupune alocarea utilizatorului a unui sistem de drepturi de
acces, fiecare putând efectua anumite operaţiuni, cât si o serie care nu necesită autentificare.
Alte avantaje ale acestei aplicaţii constau in faptul că este simplu de utilizat şi nu
necesită o instruire specială a utilizatorilor. Interfaţa cu utilizatorul a fost realizată în asa fel
încât utilizarea aplicaţiei sa fie cât mai placută si cât mai uşoara. Astfel operatorul este
responsabil doar de furnizarea corectă a datelor de intrare, de restul operaţiilor ocupându-se
sistemul.
Un alt avantaj este acela ca, foloseste interfata web, ceea ce mărește disponibilitatea aplicației la
99.99%. Orice îmbunatatire/modificare este vizibilă instant de către toți utilizatorii.
O alta parte benefică in dezvoltarea acestei aplicatii cu sisteme de recomandare folosind
ca metodă se recomandare ranking-ul reprezintă în contextul actual, o necesitate a aplicațiilor ce
oferă utilizatorilor acces spre o gamă variată și spre un volum consistent de informație. Acest
lucru oferă utilizatorilor o experiență îmbunătățită, rezultând într-o creștere a încrederii
manifestate de aceștia pentru serviciile furnizate de aplicație.

O concluzie mai puțin placută ar fi ca algoritmii folosiți in sistemele de recomandare


sunt costisitori din punct de vedere al timpului, și această problema se acutizează o dată cu
creșterea exponențială a datelor care trebuiesc prelucrate.
În concluzie consider că soluția găsită este eficientă pe acest segment și dă dovadă de
promptitudine şi flexibilitate sporită in relaţiile dintre societatile de vanzari online si
cumparatori.

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

Potrebbero piacerti anche