Nhóm đã chọn đề tài “Đề xuất sản phẩm cá nhân hóa dựa trên hành vi mua sắm của khách hàng” để thực hiện nghiên cứu với hy vọng ứng dụng các phương pháp phân tích dữ liệu hiện đại vào việ
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ-ĐẠI HỌC ĐÀ NẴNG
KHOA THƯƠNG MẠI ĐIỆN TỬ
Đà Nẵng, 2024
Trang 2MỤC LỤC
I Tổng quan về đề tài -. .- cu km re 4
1.1 Mục tiêu đề tài Q2 nọ nnn HT TH n TH TT ngà ghen re 4 1.2 Phương pháp sử dụng -cccc cà nh vn kn nhe 4 1.3 Kỹ thuật xử lÍ dữ liệU cc c2 11221 nnS.n Hs ng kh se riu 4 1.4 Quy trình xây dựng hệ thống 2 2n Ss se 6
II Tổng quan về dataset uc nu ng ng xen 7
3.1 Import các thư VIỆn ccccn c ncnnnnn HT nh H nh TT se ke ty 8 3.2 Đọc dataset và tiền xử lí dữ liệu -. - 7c 52c 2c và reg 9 3.3 EDA (Exploratory Data AnalySiÌS) con nh nhe 13 3.4 Mô hình đề xuất dựa trên đánh giá cao -. - 15 3.5 Mô hình đề xuất dựa trên nội dung sản phẩm 17 3.6 Mô hình đề xuất dựa trên cộng tác người dùng 21
3.7 Mô hình kết hợp (Hybrid Filtering) -ccc+ccc c2 24
V Danh sách thành vIiÊn -. cuc con HH nnnn n rre 32
Trang 3n0 17 n1 20
n2 cai 23
i0 27 n2 27 n2 28
i02 30
Trang 4LỜI MỞ ĐẦU
Trong bối cảnh thị trường thương mại điện tử ngày càng phát triển, việc thấu hiểu nhu cầu và hành vi của khách hàng đóng vai trò vô cùng quan trọng trong việc nâng cao khả năng cạnh tranh của các doanh nghiệp Các công ty lớn như Amazon đã thành công trong việc
áp dụng các công nghệ tiên tiến để phân tích và dự đoán sở thích mua sắm của khách hàng, từ đó tạo ra những trải nghiệm cá nhân hóa mang tính đột phá Điều này không chỉ giúp nâng cao mức độ hài lòng của khách hàng mà còn tối ưu hóa doanh thu và lợi nhuận cho doanh nghiệp
Nhóm đã chọn đề tài “Đề xuất sản phẩm cá nhân hóa dựa trên hành
vi mua sắm của khách hàng” để thực hiện nghiên cứu với hy vọng ứng dụng các phương pháp phân tích dữ liệu hiện đại vào việc giải quyết bài toán đề xuất sản phẩm Dữ liệu thu thập từ nền tảng Amazon sẽ giúp chúng tôi phân tích chuyên sâu các yếu tố tác động đến hành vi mua sắm, đồng thời ứng dụng các thuật toán học máy tiên tiến nhằm xây dựng mô hình đề xuất hiệu quả Qua đó, báo cáo này sẽ lần lượt trình bày quá trình tiền xử lý dữ liệu, phân tích các yếu tố chính ảnh hưởng đến quyết định mua sắm, và triển khai các
mô hình dự đoán nhằm cá nhân hóa trải nghiệm của khách hàng Báo cáo này không chỉ là kết quả của quá trình nghiên cứu học thuật
mà còn thể hiện được tính ứng dụng thực tế của các mô hình đề xuất trong việc tối ưu hóa trải nghiệm người dùng trên các nền tảng thương mại điện tử Kết quả của dự án sẽ góp phần cung cấp góc nhìn mới mẻ về khả năng ứng dụng của công nghệ dữ liệu lớn và học máy, đồng thời hy vọng rằng đây sẽ là tài liệu tham khảo hữu ích cho những nhà nghiên cứu, doanh nghiệp và bất kỳ ai quan tâm đến việc phát triển các giải pháp cá nhân hóa trong ngành thương mại điện
tử
Trang 5I Tổng quan về đề tài
1.1 Mục tiêu đề tài
Mục tiêu của đề tài xây dựng hệ thống đề xuất sản phẩm là cung cấp trải nghiệm tìm kiếm và lựa chọn sản phẩm nhanh chóng, chính xác cho người dùng, từ đó tăng tỷ lệ mua hàng và doanh thu Hệ thống sẽ
cá nhân hóa các đề xuất dựa trên sở thích, lịch sử mua hàng và hành vi của từng người dùng, giúp nâng cao sự hài lòng và gắn kết của khách
hàng Bằng cách áp dụng các thuật toán máy học và phân tích dữ liệu,
hệ thống không chỉ tăng hiệu quả kinh doanh mà còn tối ưu hóa quy trình xử lý dữ liệu, đảm bảo độ chính xác cao
‹®% Collaborative Filtering (Lọc cộng tác):
Mô hình dựa trên người dùng (User-based): Gợi ý sản phẩm dựa trên khách hàng có hành vi tương tự
* Content-based Filtering (Loc noi dung):
Dựa trên mô tả sản phẩm và các đặc điểm của sản phẩm mà khách hàng đã mua hoặc ưa thích, đề xuất các sản phẩm tương tự
¢ Hybrid Filtering (Loc két hop):
Kết hợp cả hai phương pháp trên để khắc phục hạn chế của từng phương pháp, làm tăng độ chính xác của gợi ý
Trang 6e Inverse Document Frequency (IDF)
IDF đánh giá mức độ phổ biến của từ trong toàn bộ tập hợp tài liệu Những từ thông dụng (như “the”, “is”, ) thường có IDF thấp, còn các từ
ít xuất hiện sẽ có IDF cao Công thức:
IDF(t, D) = log_e( Tổng số văn bản trong tập mẫu D/ Số văn bản có chứa từ t)
e TF-IDF
TF-IDF là tích của TF và IDF, giúp cân bằng giữa tần suất từ và độ phổ biến của nó trong tập tài liệu Công thức:
TF-IDFt,d=TFt,dxIDFt,D
¢ Ung dung TF-IDF Vectorizer
TF-IDF giúp biểu diễn văn bản dưới dạng các vector, giúp các mô hình như cosine similarity đo lường mức độ tương tự của các văn bản, rất hữu ích trong các hệ thống đề xuất và phân loại văn bản
‹+% Cosine Similarity
Cosine Similarity là một phương pháp để đo độ tương tự giữa hai vector bằng cách tính góc cosine giữa chúng trong không gian vector Giá trị cosine càng gần 1 thì hai vector càng tương tự nhau, và ngược lại, giá trị càng gần 0 thì hai vector càng khác nhau Trong các ứng dụng xử lý ngôn ngữ tự nhiên và hệ thống goi y, cosine similarity thường được dùng để đánh giá mức độ tương tự giữa các tài liệu, câu, hoặc sản phẩm
Với hai vector A và B, cosine similarity được tính bằng công thức:
Trang 7¬_ - ø- —4' Ee:
ber OSS BALMS) BUG E EE 3 ot Táo.) new Parnnm~ar.a tevtr.e.nn=n
|Al| x ||Bl] /SME, A? x /SOE, B? a ae, | ss Lwi=1
Trong dé:
e A-B:latichvé hướng của hai vector
e- ||A|| và || ||: là độ dài (norm) của các vector Á va B
e cos(Ø): là cosine của góc Ø giữa hai vector
Hình 1
»« Ý nghĩa của Cosine Similarity
Giá trị cosine từ 0 đến 1: Nếu hai vector giống nhau hoàn toàn (góc giữa chúng là 0 độ), cosine similarity sẽ là 1 Nếu hai vector vuông góc (góc 90 độ), cosine similarity sẽ là 0
Độc lập với độ dài vector: Vì cosine similarity chỉ quan tâm đến hướng của vector, nên nó không bị ảnh hưởng bởi độ dài Điều này giúp đánh giá độ tương tự giữa các tài liệu có độ dài khác
nhau mà không cần chuẩn hóa
e Ung dung cua Cosine Similarity
Đo lường độ tương tự văn ban: So sánh mức độ giống nhau giữa các tài liệu, câu hoặc từ
Hệ thống gợi ý sản phẩm: Tìm các sản phẩm có đặc điểm gần giống nhau để đưa ra đề xuất cho người dùng
% Xử lí NLP với thư viện spaCy
Để áp dụng các phương pháp như TF-IDF và cosine similarity trong các bài toán xử lý văn bản, bước đầu tiên là chuẩn bị và xử lý dữ liệu ngôn ngữ Thư viện spaCy là một công cụ mạnh mẽ trong xử lý ngôn ngữ tự nhiên (NLP), giúp chuyển đổi dữ liệu văn bản thô thành các định dạng và đặc trưng có thể dùng cho các mô hình máy học
spaCy là một thư viện mã nguồn mở cho xử lý ngôn ngữ tự nhiên, được tối ưu hóa để làm việc với dữ liệu văn bản lớn spaCy cung cấp nhiều tính năng mạnh mẽ, bao gồm tokenization (phân tách từ), POS tagging
Trang 8(gắn nhãn từ loại), nhận diện thực thể có tên (NER), và vector hóa từ, giúp chuẩn bị dữ liệu cho các thuật toán như TF-IDF và cosine similarity
Các bước xử lý dữ liệu ngôn ngữ với spaCy để áp dụng TF-
IDF và Cosine Similarity
Tokenization (Phân tách từ): Đây là bước đầu tiên, trong đó văn bản được chia thành các đơn vị nhỏ gọi là tokens (từ hoặc cụm từ) spaCy thực hiện việc phân tách này hiệu quả, đồng thời loại
bỏ các dấu câu, giúp dữ liệu gọn gàng hơn và phù hợp với TF-IDF vectorizer
Loại bỏ Stop Words: spaCy cung cấp danh sách các stop words (từ dừng) - các từ phổ biến như “the”, “is”, “and” không mang nhiều ý nghĩa khi tính TF-IDF Loại bỏ chúng giúp tập trung vào những từ quan trọng trong phân tích
Tính năng tiền xử lý văn bản: spaCy hỗ trợ nhiều thao tác tiền xử lý như lowercase (chuyển thành chữ thường), lọc stop words, và loại bỏ các ký tự đặc biệt Đây là những bước quan trọng giúp cải thiện kết quả của TF-IDF và cosine similarity
Import thu vién
Doc dataset va tién xử lí dữ liệu
EDA (Exploratory Data Analysis)
Xây dựng mô hình
Đánh giá mô hình
Tổng quan về dataset
Dataset được sử dụng có nguồn gốc từ Kagdgle: Link Dataset
Dataset gồm 14 cột và 1465 dòng với các cột thông tin:
1 product_¡id - ID sản phẩm
2 product_name - Tên sản phẩm
3 category - Danh mục sản phẩm
Trang 9discounted_price - Giá đã giảm của sản phẩm
actual_price - Giá thực tế của sản phẩm
discount_percentage - Tỷ lệ phần trăm giảm giá cho sản phẩm rating - Xếp hạng sản phẩm
rating_count - Số người đã bình chọn cho xếp hạng của Amazon
about_product - Mô tả về sản phẩm
10 user_id - ID của người dùng đã viết đánh giá cho sản phẩm _ user name - Tên của người dùng đã viết đánh giá cho sản phẩm
review_id - ID của đánh giá của người dùng
review_title - Đánh giá ngắn
review_content - Đánh giá dài
img_link - Liên kết hình ảnh của sản phẩm
product_link - Liên kết trang web chính thức của sản phẩm
III Xây dựng các mô hình
spacy lang.en.stop_words
Hinh 2
Trang 10Các thư viện được import có chúc năng như sau:
pandas: Thư viện xử lý và phân tích dữ liệu, hỗ trợ tạo và thao tác với các cấu trúc dữ liệu như DataFrame và Series
numpy: Thư viện tính toán khoa học, hỗ trợ thao tác với mảng (arrays) và thực hiện các phép toán trên dữ liệu số
matplotlib.pyplot: Thu viện vẽ biểu đồ trực quan, hỗ trợ tạo biểu đồ đường, cột, tán xạ, v.v., để phân tích dữ liệu
seaborn: Thư viện tạo biểu đồ trên nền matplotlib, cung cấp các biểu đồ thống kê nâng cao để trực quan hóa đữ liệu
sklearn.metrics.pairwise.cosine_similarity: Hàm tính toán độ tương tự cosine giữa các vector, thường được dùng trong các mô hình gợi ý
sklearn.feature_extraction.text.TfidfVectorizer: Công cụ chuyển đổi văn bản thành dạng vector dựa trên trọng số TF-IDF, hữu ích trong xử lý ngôn ngữ tự nhiên
sklearn.preprocessing.LabelEncoder: Mã hóa nhẫn thành các
Số nguyên, giúp xử lý dữ liệu phân loại trong mô hình học máy Spacy: Thư viện xử lý ngôn ngữ tự nhiên, hỗ trợ các tác vụ như phân tách từ, gắn nhãn từ loại, và vector hóa từ
spacy.lang.en.stop_words: Danh sách các từ dừng (stop words) tiếng Anh của spaCy, thường được loại bỏ trong xử lý ngôn ngữ tự nhiên
os: Thư viện hệ thống tích hợp trong Python, hỗ trợ thao tác với tệp tin và thư mục
scipy.sparse.coo_ matrix: Cau tric ma tran thua (sparse matrix) trong scipy, giúp lưu trữ các giá trị khác 0 hiệu quả, giảm dung lượng bộ nhớ khi làm việc với ma trận lớn
Trang 11train data
0.0s
user id product_id rating rating count
category
product_name img link about_product dtype: int64
Đổi tên cột
10
Trang 13tags token.text token doc token.text token.text STOP_WORDS
0 Tải mô hình ngôn ngữ của spaCy (en_core_web_sm)
1 Làm sạch dữ liệu văn bản: Văn bản trong cột Description sẽ được chuyển thành chữ thường (lowercase) để đồng nhất các từ
o Loc token: Gift lai các token mà là chữ hoặc số (isalnum())
và loại bỏ những từ không mang nhiều ý nghĩa (stop words) như "the", "is", "and", v.v (dựa trên danh sách STOP_WORDS của spaCy)
3 Trích xuất từ khóa: Sau khi lọc, các từ và số còn lại sẽ được coi
là các "tags" đại diện cho sản phẩm Những từ khóa này có thể dùng để:
o_ Phân loại sản phẩm
o_ Cải thiện khả năng tìm kiếm sản phẩm
o_ Xây dựng hệ thống gợi ý dựa trên từ khóa
4 Trả về kết quả dưới dạng chuỗi: Các từ khóa (tags) sẽ được nối
với nhau bằng dấu phẩy (,), tạo thành một chuỗi
12
Trang 14Hàm clean_and_extract_tags thực hiện quá trình xử lý trên văn bản
mô tả:
o_ Biến văn bản thành chữ thường
o Tokenize van ban
o Loc va gitt lai cac token la chti/s6 va khéng phai la stop words
Việc áp dụng hàm cho mỗi dòng dữ liệu trong cột Description dùng
Mục tiêu của đoạn code này là làm sạch dữ liệu và chuẩn hóa
các cột 'Category' và 'Rating' trong dataset Cụ thể:
1 Làm sạch cột 'Category': Thay thế ký tự phân tách từ dấu
gạch đứng “|” thành dấu phẩy “," để đồng nhất kiểu phân tách giữa các danh mục và làm cho dữ liệu dễ xử lý hơn Câu lệnh train_ data['Category'].str.replace('|', ',') đảm bảo việc chuyển đổi diễn ra trên tất cả các dòng trong cột Category
Trích xuất tags từ nhiều cột ('Description' và 'Category'): Code sẽ lấy các tags từ cả cột Description và Category (sau khi đã làm sạch)
Nối các giá trị từ các cột bằng dấu phẩy để tạo thành chuỗi duy nhất trong cột Tags Hàm apply với lambda được sử dụng để nối các giá trị từ mỗi dòng của hai cột Description và Category Kết quả sẽ là cột “Tags” đã được chuẩn hóa và kết hợp từ hai cột này
13
Trang 153 Chuyển đổi cột 'Rating':
Cột Rating (điểm đánh giá) thường là dữ liệu số, nhưng trong một số trường hợp, dữ liệu có thể chứa ký tự không hợp lệ hoặc không thể chuyển đổi thành số Do đó:
e Mã sẽ sử dụng pd.to_numeric để chuyển đổi cột Rating sang dạng số (float hoặc int)
»Ö _ Xử lý ngoại lệ: Nếu gặp phải giá trị không thể chuyển đổi (ví dụ:
ký tự đặc biệt hoặc chuỗi), hàm sẽ gán giá trị đó thành NaN thay
vì gây lỗi (sử dụng errors='coerce')
Trang 17average ratings = train_data 2
rating_base_recommendation average ratings
Hinh 16
%» Cách hoạt động của mô hình:
1 Tính toán điểm đánh giá trung bình:
- train_data.groupby([ ]): Dữ liệu trong train_data được nhóm lại theo ba tiêu chí: Name (tên sản phẩm), ReviewCount (số lượng đánh giá), và IMGURL (URL hình ảnh của sản phẩm) Việc nhóm
dữ liệu này giúp tổng hợp thông tin cho mỗi sản phẩm duy nhất
- _ [Rating'].mean(): Tính toán điểm đánh giá trung bình cho mỗi nhóm sản phẩm Điều này có nghĩa là cho mỗi sản phẩm, hệ
thống sẽ lấy tất cả các điểm đánh giá mà sản phẩm đó nhận được
và tính trung bình
16
Trang 18‹ „reset index(): Sau khi nhóm và tính toán, phương thức này sẽ biến kết quả thành một DataFrame mới với chỉ số được thiết lập lại, giúp dễ dàng thao tác với dữ liệu sau này
2 Sắp xếp và chọn sản phẩm:
‹ồ _ sort values(by='Rating', ascending=False): Sắp xếp các sản phẩm trong DataFrame average_ratings theo điểm đánh giá trung bình (Rating) theo thứ tự giảm dần Sản phẩm có điểm đánh giá cao nhất sẽ đứng đầu danh sách
-_ ,‹head(10): Chọn 10 sản phẩm có điểm đánh giá cao nhất từ kết quả đã sắp xếp Đây là danh sách gợi ý cho người dùng
b AI ee ag IMGURL Rating REDTECH USB-C to Lightning Cable 3.3FT, (Apple 0 https//m.media-amazon.com/images/1/31-q0xhaTA 5.0 Syncwire LTG to USB Cable for Fast Charging Co = https//m.media-amazon.com/images/I/317OoQfs1g Amazon Basics Wireless Mouse | 2.4 GHz Connect 23 https://m.media-amazon.com/images/I/31 + Rg6Z46d Instant Pot Air Fryer, Vortex 2QT, Touch Contr 3,964 https//m media-amazon.com/images/W/WEBP 40237 Swiffer Instant Electric Water Heater Faucet T 53,803 https://m.media-amazon.com/images/l/41+t2HWvwF Oratech Coffee Frother electric, milk frother 28 https://m.media-amazon.com/images/W/WEBP_40237 Zuvexa USB Rechargeable Electric Foam Maker - 54 _https://m.media-amazon.com/images/I/4171401hnm Spigen EZ Fit Tempered Glass Screen Protector 7,179 https://m.media-amazon.com/images/I/51EIPNILJDd Sony Bravia 164 cm (65 inches) 4K Ultra HD Sma 5,935 https://m.media-amazon.com/images/1/5 1uVckL1jR Campfire Spring Chef Prolix Instant Portable W 2,591 https://m.media-amazon.com/images/W/WEBP_40237
Hinh 17
* Nhận xét về kết quả của mô hình đề xuất
1 Sản phẩm có Rating cao nhưng Review Count thấp:
Những sản phẩm này có thể có điểm đánh giá rất cao (gần 5.0), nhưng
lại có số lượng đánh giá thấp (ví dụ: 0 đến 5) Điều này có thể gây ra một số vấn đề trong việc xác định độ tin cậy của sản phẩm:
»« Thiếu độ tin cậy: Nếu một sản phẩm có điểm đánh giá cao nhưng lại có rất ít đánh giá, điều này có thể cho thấy rằng sản
phẩm chưa được nhiều người tiêu dùng thử nghiệm Một sản phẩm có ít đánh giá có thể bị ảnh hưởng bởi các yếu tố như quảng cáo mạnh mẽ hoặc là một sản phẩm mới ra mắt
«ồ Khả năng thiên lệch: Những đánh giá cao từ một số ít người dùng có thể không đại diện cho trải nghiệm chung của người tiêu dùng Một vài người có thể đã có trải nghiệm tích cực, trong khi phần lớn người dùng khác có thể không hài lòng
17