Xây dựng hệ thống gợi ý dựa trên phân tích sở thích của người dùng theo hướng tiếp cận lọc trên nội dungXây dựng hệ thống gợi ý dựa trên phân tích sở thích của người dùng theo hướng tiếp cận lọc trên nội dungXây dựng hệ thống gợi ý dựa trên phân tích sở thích của người dùng theo hướng tiếp cận lọc trên nội dungXây dựng hệ thống gợi ý dựa trên phân tích sở thích của người dùng theo hướng tiếp cận lọc trên nội dungXây dựng hệ thống gợi ý dựa trên phân tích sở thích của người dùng theo hướng tiếp cận lọc trên nội dungXây dựng hệ thống gợi ý dựa trên phân tích sở thích của người dùng theo hướng tiếp cận lọc trên nội dungXây dựng hệ thống gợi ý dựa trên phân tích sở thích của người dùng theo hướng tiếp cận lọc trên nội dungXây dựng hệ thống gợi ý dựa trên phân tích sở thích của người dùng theo hướng tiếp cận lọc trên nội dungXây dựng hệ thống gợi ý dựa trên phân tích sở thích của người dùng theo hướng tiếp cận lọc trên nội dungXây dựng hệ thống gợi ý dựa trên phân tích sở thích của người dùng theo hướng tiếp cận lọc trên nội dung
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là công trình nghiên cứu của riêng tôi Nội
dung được trình bày trong luận văn là của cá nhân và được trích dẫn từ nguồn tài liệu Tất cả
các tài liệu tham khảo đều được xuất bản rõ ràng và được trích dẫn hợp pháp
Các số liệu, kết quả được trình bày trong luận văn là trung thực và chưa từng được công bố
trong bất kỳ công trình nào khác
TP.HCM, Ngày 01 tháng 09 năm 2016 Học viên thực hiện luận văn
NGUYỄN HỒNG HOAN SANG
Trang 2LỜI CẢM ƠN
Tôi xin gửi lời biết ơn sâu sắc đến TS Lê Thanh Vân, cô đã hướng dẫn nhiệt tình, tận tâm trong suốt quá trình giúp tôi thực hiện luận văn này Cô đã giúp cho tôi định hướng,
phương pháp nghiên cứu, tài liệu bổ ích và đặt biệt là kinh nghiệm quý giá
Đồng thời xin cảm ơn tất cả những người thân yêu trong gia đình cùng toàn thể bạn bè, những người đã luôn giúp đỡ và động viên tôi trong suốt quá trình thực hiện luận văn này
Cuối cùng, xin chân thành cảm ơn Học Viện Công Nghệ Bưu Chính Viễn Thông đã tạo điều kiện và đặc biệt gửi lời cám ơn sâu sắc tới các thầy cô đã tận tụy hướng dẫn, giúp đỡ
và truyền dạy những kiến thức quý báu trong suốt quá trình học tập
TP.HCM, Ngày 01 tháng 09 năm 2016 Học viên thực hiện luận văn
NGUYỄN HỒNG HOAN SANG
Trang 3MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT v
DANH SÁCH BẢNG vi
DANH SÁCH HÌNH VẼ vii
MỞ ĐẦU 1
CHƯƠNG 1 – TỔNG QUAN 3
1.1 Tính cấp thiết của đề tài 3
1.2 Tổng quan về vấn đề nghiên cứu 3
1.3 Mục đích nghiên cứu 4
1.4 Đối tượng và phạm vi nghiên cứu 4
1.5 Hệ thống gợi ý 5
1.6 Các hướng tiếp cận 5
1.6.1 Lọc dựa trên nội dung (Content-based filtering) 5
1.6.2 Lọc cộng tác (Collaborative filtering) 6
1.6.3 Lọc kết hợp giữa cộng tác và nội dung (Hybrid) 6
1.7 Ứng dụng của hệ thống gợi ý 7
1.8 Kết luận chương 1 8
CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT 9
2.1 Đối tượng phục vụ của hệ thống 9
2.2 Định nghĩa Item và User 9
2.3 Định nghĩa User profile và Item profile 10
2.4 Định nghĩa về dữ liệu tường minh và dữ liệu không tường minh 10
2.5 Quan hệ giữa Item và User 11
2.6 Đo khoảng cách (Distance Measure) 11
2.7.1 Gom cụm (Cluster analysis hoặc Clustering) 13
2.7.2 Thuật toán K-mode 14
2.8 Kết luận chương 2 17
CHƯƠNG 3 – KỸ THUẬT THỰC HIỆN 18
3.1 Framework hệ thống gợi ý 18
3.2 Cơ sở dữ liệu lưu trữ 19
3.2.1 Thiết kế CSDL 21
Trang 43.3 Xây dựng mối quan hệ giữa user và item 22
3.4 Thu thập dữ liệu 23
3.4.1 Thu thập bài post từ fanpage trên cộng đồng facebook.com 23
3.4.2.Thu thập dữ liệu thông tin sản phẩm từ trang chính thống 24
3.4.2.1 Thu thập dữ liệu sản phẩm từ nguồn trên facebook 24
3.4.2.2 Thu thập dữ liệu sản phẩm trên trang chính thống 24
3.5 Rút trích đặc trưng sản phẩm 24
3.5.1 Kỹ thuật sử dụng rút trích đặc trưng cho sản phẩm 28
3.5.2 Lưu trữ đặc trưng ở định dạng kiểu số 30
3.6 Thư viện máy học Apache Mahout 30
3.6.1 Cài đặt thuật toán Jaccard DistanceMeasure 31
3.6.2 Cải tiến phương pháp tính C trung tâm cho từng cụm 31
3.7 Gom nhóm sản phẩm (item clustering) 32
3.7.1 Thuật toán K-Mode trên hệ thống phân tán 33
3.7.2 K-Mode xử lý gom cụm trên hệ phân tán Hadoop 34
3.7.2.1 Hàm xử lý MAP 35
3.7.2.2 Hàm xử lý REDUCE 36
3.8 Gợi ý sản phẩm, dịch vụ 36
3.9 Đánh giá gom nhóm (Evaluation Clustering) 37
3.9.1 Khoảng cách Inter-cluster 38
3.9.2 Khoảng cách Intra-cluster 39
3.10 Kết luận chương 3 40
CHƯƠNG 4 – KẾT QUẢ THỰC NGHIỆM 41
4.1 Kết quả gom cụm 41
4.2 Kết quả gợi ý 42
4.3 Giao diện chương trình demo 43
4.4 Môi trường sử dụng 45
4.5 Mã nguồn chương trình 46
4.6 Kết luận chương 4 46
KẾT LUẬN VÀ KIẾN NGHỊ 47
DANH MỤC TÀI LIỆU THAM KHẢO 48
Trang 5DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt Tiếng Anh Tiếng Việt
RS Recommender System Hệ thống gợi ý
HDFS Hadoop Distributed File System Hệ phân tán tập tin Hadoop
CF Collaborative Filtering Lọc cộng tác
CB Content Based Filtering Lọc dựa vào nội dung
Trang 6DANH SÁCH BẢNG
Bảng 3.1: Mô tả các bảng dữ liệu lưu trữ 21
Bảng 3.2: Cấu trúc bảng main user preference 22
Bảng 3.3: Dữ liệu thu thập bài post bao gồm những thông tin sau 23
Bảng 3.4: Thống kê đặc trưng của item 25
Bảng 3.5: Thống kê cập nhật cải tiến thuật toán 31
Bảng 3.6: Thông tin thiết lặp thuật toán gom cụm K-mode trên Hadoop 33
Bảng 4.1: Kết quả thực hiện lần lượt các cluster với cấu hình cho trước 41
Bảng 4.2: Kết quả sau thi tính khoảng cách Intra-cluster 41
Bảng 4.3: Kết quả gợi ý sản phẩm thuộc cluster 42 và khoảng cách nhỏ hơn hoặc bằng 0.5 43
Bảng 4.4: Thống kê môi trường hệ thống và các phần mềm hỗ trợ 45
Bảng 4.5: Chương trình hệ thống 46
Trang 7DANH SÁCH HÌNH VẼ
Hình 1.1: Mô tả sự tăng trưởng trong kinh doanh 4
Hình 2.1: Mô tả ứng dụng hệ thống gợi ý ở một số lĩnh vực 7
Hình 2.2: Mô tả dữ liệu item và user trong hệ thống gợi ý 10
Hình 2.3: Mô tả quan hệ giữa user và item 11
Hình 2.4: Sử dụng thuật toán k-mode để gom nhóm Bước đầu, chọn k phần tử trong tập đối tượng đầu vào làm phần tử trung tâm, tìm các đối tượng gần nhất và gán các đối tượng này và nhóm cluster cụ thể Tính lại phẩn tử trung tâm bằng cách tính khoảng cách trung bình của tất cả các phần tử trong cùng nhóm với nhau 15
Hình 3.1: Framework hệ thống 18
Hình 3.2: Mô hình CSDL hệ thống gợi ý 20
Hình 3.3: Lược đồ quan hệ của hệ thống gợi ý 21
Hình 3.4: Mô tả thu thập dữ liệu bài post trên fanpage của tiki.vn và fahasa.com 23
Hình 3.5: Mô tả xử lý thu thập dữ liệu để lấy được thông tin chi tiết của bài post thông qua url, gồm 3 bước như trên hình 24
Hình 3.6: Lưu đồ xử lý rút trích đặc trưng 28
Hình 3.7: Mô tả xử lý K-Means/K-Mode trong môi trường hệ phân tán Hadoop [5] 35
Hình 3.8: Mô tả luồng xử lý gợi ý sản phẩm dựa vào thông tin nhóm thuộc về và giá trị ngưỡng giới hạn 38
Hình 3.9: Thể hiện khoảng cách nhỏ và khoảng cách lớn của inter-cluster [6] 38
Hình 4.1: Trang chủ hệ thống (Người dùng truy cập, hệ thống hiển thị các sản phẩm) 43 Hình 4.2: Trang chi tiết sản phẩm (Người dùng truy cập vào sản phẩm trên và thực hiện yêu thích sản phẩm) 44
Hình 4.3: Trang gợi ý sản phẩm (dựa vào sản phẩm được người dùng yêu thích, hệ thống gợi ý các sản phẩm tương tự) 45
Trang 8Vấn đề nghiên cứu: Ở nước ta ngành thương mại điện tử đang trên đà phát triển, ngày
một tăng nhanh Rất nhiều doanh nghiệp đã và đang phát triển, kinh doanh cách hệ thống thương mại ở mọi lĩnh vực như: Giáo dục, Giải trí, Dịch vụ, Thương mại… Bên cạnh đó ta thấy những hệ thống đấy đang gặp vấn đề về dữ liệu quá lớn gây khó khăn trong việc tìm kiếm
và lọc thông tin, lọc dữ liệu để có thể phù hợp với khách hàng, phù hợp với mong muốn của người dùng Với những lý do đó, đòi hỏi phải thay đổi, nâng cấp hệ thống sao cho có thể hỗ trợ người dùng tìm đến những thông tin, sản phẩm, dịch vụ mà phù hợp với mong muốn của
họ Do đó xây dựng hệ thống dự đoán gợi ý là cần thiết, hệ thống gợi ý áp dụng các bộ lọc dữ liệu thông minh có thể phân tích, rút trích và dự đoán dữ liệu cần thiết, giúp cho mọi người đều có thể tìm kiếm được thông tin ưng ý với mình Với mục đích kinh doanh ngày một tăng lợi nhuận hơn
Với những khó khăn và chiến lược kinh doanh trực tuyến được nói đến ở trên, luận văn này sẽ phân tích và đưa ra giải pháp “Xây dựng hệ thống gợi ý dựa trên phân tích sở thích của người dùng theo hướng tiếp cận lọc trên nội dung”
Hệ thống gợi ý là một đề tài nghiên cứu có ảnh hưởng đến chiến lược kinh doanh của công ty, tổ chức, tập đoàn
Ngoài phần Mở đầu, Phần kết luận và các Phụ lục, nội dung luận văn gồm có 4 chương chính:
Chương 1 – Tổng quan Nội dung chương giới thiệu về lợi ích nghiên cứu và ứp dụng hệ
thống gợi ý vào kinh doanh, phân tích lợi ích giữa doanh nghiệp và khách hàng sử dụng dịch
vụ Giới thiệu tổng quan về hệ thống gợi ý và các hướng tiếp cận phổ biến hiện nay
Chương 2 – Cơ sở lý thuyết Nội dung chương trình bày các khái niệm, định nghĩa, thuật
toán, các yếu tố, thành phần liên quan đến hệ thống gợi ý
Trang 9Chương 3 – Kỹ thuật thực hiện Nội dung chương trình bày mô hình xây dựng hệ thống gợi
ý, các thành phần và công nghệ được sử dụng
Chương 4 – Phần mềm và kết quả thực nghiệm Nội dung chương trình bày kết quả thực
nghiệm hệ thống gợi ý theo hướng tiếp cận nội dung
Trang 10CHƯƠNG 1 – TỔNG QUAN
1.1 Tính cấp thiết của đề tài
Ngày nay, ngành thương mại điện tử tăng trưởng mạnh và các nhà đầu tư, doanh nghiệp cũng đã và đang gặp khó khăn trong việc kinh doanh trực tuyến vì các mặt hàng, dịch
vụ đa dạng và phong phú hình thành một khối dữ liệu lớn dẫn đến khó khăn trong việc tìm kiếm và lọc các mặt hàng, dịch vụ phù hợp để giới thiệu đến khách hàng
Do đó, việc phát triển hệ thống gợi ý là cần thiết nhằm hỗ trợ cho việc lọc và tìm kiếm
dữ liệu hiệu quả, phù hợp với từng khách hàng cụ thể, giúp khách hàng tiết kiệm thời gian và công sức trong việc tìm kiếm sản phẩm mà mình quan tâm, cùng hướng đến sự tiện lợi của khách hàng và hướng đến lợi nhuận của công ty, doanh nghiệp
1.2 Tổng quan về vấn đề nghiên cứu
Ở nước ta ngành thương mại điện tử đang trên đà phát triển, ngày một tăng nhanh Rất nhiều doanh nghiệp đã và đang phát triển, kinh doanh cách hệ thống thương mại ở mọi lĩnh vực như: Giáo dục, Giải trí, Dịch vụ, Thương mại… Bên cạnh đó ta thấy những hệ thống đó đang gặp vấn đề về dữ liệu quá lớn gây khó khăn trong việc tìm kiếm và lọc thông tin, lọc dữ liệu để có thể phù hợp với khách hàng, phù hợp với mong muốn của người dùng Với những lý
do đó, đòi hỏi phải thay đổi, nâng cấp hệ thống sao cho có thể hỗ trợ người dùng tìm đến những thông tin, sản phẩm, dịch vụ mà phù hợp với mong muốn của họ Do đó xây dựng hệ thống dự đoán gợi ý là cần thiết, hệ thống gợi ý áp dụng các bộ lọc dữ liệu thông minh có thể phân tích, rút trích và dự đoán dữ liệu cần thiết, giúp cho mọi người đều có thể tìm kiếm được thông tin ưng ý với mình Với mục đích kinh doanh ngày một tăng lợi nhuận hơn
Với những khó khăn và chiến lược kinh doanh trực tuyến được nói đến ở trên, luận văn này sẽ phân tích và đưa ra giải pháp “Xây dựng hệ thống gợi ý dựa trên phân tích sở thích của người dùng theo hướng tiếp cận lọc trên nội dung”
Dữ liệu sẽ được thu thập về từ các nguồn như tiki.vn, fahasa.com để chuẩn bị dữ liệu cho việc phân tích cho hệ thống Thu thập dữ liệu của cộng đồng người dùng từ fanpage tiki, fahasa trên mạng xã hội facebook.com, sau đó tiến hành rút trích các đặc trưng sản phẩm dựa trên tập luật định trước phục vụ cho việc xây dựng hệ thống Để đo độ tương tự sản phẩm, độ
đo Jaccard được sử dụng để phù hợp cho việc đo đạc với kiểu dữ liệu phân loại Bài toán hướng tới việc xây dựng hệ thống trên nền hệ thống phân tán Hadoop và sử dụng các kỹ thuật
xử lý dữ liệu lớn
Trang 11Kết quả đạt được sẽ là một hệ thống gợi ý các sản phẩm và dịch vụ phù hợp với người dùng mà có thể họ quan tâm, ưng ý
1.3 Mục đích nghiên cứu
Xây dựng hệ thống gợi ý có thể hỗ trợ khách hàng tìm được những sản phẩm yêu thích thông qua lịch sử yêu thích hoặc lịch sử mua sắm của họ, có thể phân tích sở thích của người dùng, dự đoán gợi ý các mặt hàng và dịch vụ đến khách hàng mà có thể họ quan tâm, nhằm thu hút khách hàng và tăng doanh thu
Mục tiêu nghiên cứu: Thu thập dữ liệu chuẩn bị cho việc phân tích và dự đoán sản phẩm, dịch vụ Xây dựng bộ lọc dựa trên nội dung (Content-based filtering [1]) để tích hợp vào hệ thống gợi ý sản phẩm, dịch vụ dựa vào các thuật toán máy học Triển khai Hadoop MapReduce và tích hợp bộ lọc Content-based vào hệ thống Hadoop để phân tích và xử lý dữ liệu sau đó trainning để được tập dữ liệu gợi ý Xây dựng hệ thống website dựa trên tập dữ liệu thu thập và hệ thống Hadoop Sau cùng là thử nghiệm và phân tích và kiểm chứng kết quả
1.4 Đối tƣợng và phạm vi nghiên cứu
Nghiên cứu chiến lược kinh doanh trực tuyến ở Việt Nam, xây dựng và ứng dụng hệ thống gợi ý vào việc kinh doanh sản phẩm, dịch vụ trực tuyến
Nghiên cứu và phân tích các chi tiết đặc trưng của sản phẩm dịch vụ, tìm hiểu mối quan hệ giữ các sản phẩm và dịch vụ với nhau, phân tích hành vi của khách hàng tác động lên sản phẩm và dịch vụ, phân tích sở thích của khách hàng đối với các mặt hàng và dịch vụ
Nghiên cứu hướng tiếp cận lọc dựa trên nội dung để xây dựng hệ thống gợi ý, giúp cho khách hàng dễ dàng tìm kiếm được sản phẩm mà họ có thể ưng ý
Như ta thấy hệ thống gợi ý ngoài việc mang đến sự tiện dụng cho người dùng, hỗ trợ khách hàng tìm thấy những sản phẩm và dịch vụ mà họ có thể quan tâm, hệ thống còn thúc đẩy sự tăng trưởng kinh tế, tăng lợi nhuận cho doanh nghiệp, cho công ty
Hình 1.1: Mô tả sự tăng trưởng trong kinh doanh
Xây dựng hệ thống gợi ý sẽ giúp cho các sản phẩm và dịch vụ mới kể cả ít phổ biến được người dùng, khách hàng biết đến và có thể họ quan tâm, mong muốn
Trang 12Lợi ích cho doanh nghiêp: giới thiệu được nhiều sản phẩm và dịch vụ hơn; thu hút nhiều khách hàng đến thăm viếng website hơn; thu hút lượt xem nhiều hơn; bán được nhiều sản phẩm, dịch vụ hơn; doanh thu tăng nhanh hơn
Lợi tích cho khách hàng: dễ dàng tìm kiếm được sản phẩm và dịch vụ mà họ đang quan tâm; tìm được sản phẩm phù hợp sở thích thông qua cộng đồng; tìm được sản phẩm, dịch
vụ ưng ý hơn qua việc mua một sản phẩm trước đây; tìm thấy sản phẩm khác mà có thể khách hàng quan tâm
1.6.1 Lọc dựa trên nội dung (Content-based filtering)
Hướng tiếp cận lọc trên nội dung, trả lời cho câu hỏi “Tôi muốn xem nhiều hơn các sản phẩm và dịch vụ khác tương tự như những sản phẩm dịch vụ mà tôi đã xem, yêu thích hoặc mua, hãy gợi ý cho tôi những sản phẩm và dịch vụ phù hợp với tôi.” Ví dụ: Doanh nghiệp ABC muốn xây dựng hệ thống tin tức, báo chí với mong muốn: xác định, phân tích và giới thiệu những bài báo mới nhất, thú vị mà có liên quan đến những bài báo, bài viết, đề tài, lĩnh vực mà người dùng đã xem, yêu thích trước đó Hỗ trợ người dùng tìm kiếm bài viết phù hợp với tiêu chí dựa vào những bài viết mà người dùng đã xem, quan tâm [2], [4]
Ưu điểm và khuyết điểm của hướng tiếp cận lọc dựa trên nội dung như sau:
Trang 13Lọc dựa trên nội dung hầu như dựa vào nội dung của item, các giá trị đặc trưng Hệ thống xây dựng user profile khi người dùng thực hiện các hành vi thể hiện sự yêu thích quan tâm của họ, từ đây hệ thống sẽ sử dụng User Profile và Item Profile để xử lý dự đoán và gợi ý các item khác có độ tương quan để giới thiệu cho người dùng User Profile là model thể hiện
sự quan tâm yêu thích của người dùng đối với một item cụ thể, User Profile được xây dựng từ lịch sử hành vi của họ tác động lên item [2], [4]
Không giống như lọc cộng tác, lọc dựa trên nội dung sẽ gợi ý những Item mới có độ tương quan phù hợp với những item mà người dùng đã yêu thích trước đó, những item mới này không cần được đánh giá hay là yêu thích Những item tương tự sẽ được tính dựa trên tập các đặc trưng và được so sánh với tập item đã được yêu thích trong lịch sử, gợi ý những item đến khách hàng [4]
Đối với lọc dựa trên nội dung, dữ liệu nhỏ hoạt động bình thường, không ảnh hưởng đến hệ thống gợi ý các item
Lọc cộng tác sẽ dự đoán và gợi ý những items dựa trên độ tương tự giữa users với nhau hoặc giữa items với nhau Những items được gợi ý cho user thông qua cộng đồng users có cùng sở thích với đối tượng user sẽ gợi ý [2] Ví dụ: Doanh nghiệp muốn kinh doanh hệ thống xem phim trực tuyến và thu phí người xem theo hàng tháng Hệ thống hỗ trợ gợi ý những bộ phim hot của tháng, hot trong ngày thông qua cộng đồng người dùng bằng cách phân tích lịch
sử tác động của họ trên mỗi tập phim, tác động thể hiện sự yêu thích của người xem
1.6.3 Lọc kết hợp giữa cộng tác và nội dung (Hybrid)
Hướng tiếp cận này là sự kết hợp giữa hướng tiếp cận lọc dựa trên nội dung và hướng tiếp cận lọc cộng tác [2] Hướng tiếp cận Hybrid kết hợp giữa kỹ thuật A và B, sử dụng điểm mạnh của A để khác phục cải tiến điểm yếu của B Ví dụ: CF có điểm yếu về vấn đề item mới,
Trang 14phương pháp CF không thể gợi ý những item chưa được đánh giá (rating) nhưng điều này hướng tiếp cận CB có thể giải quyết được, CB dự đoán dựa vào những đặc tính của item để gợi ý [1]
1.7 Ứng dụng của hệ thống gợi ý
Hình 2.1: Mô tả ứng dụng hệ thống gợi ý ở một số lĩnh vực
Hệ thống gợi ý đã được ứng dụng thành công ở các lĩnh vực [2] như:
Hệ thống giới ý giới thiệu sản phẩm: hệ thống kinh doanh sản phẩm trực tuyến, hỗ trợ việc lọc, tìm kiếm, hiển thị sản phẩm đến khách hàng mà họ có thể quan tâm dựa vào lịch sử mua sắm của khách hàng Ví dụ như: Amazon, Ebay
Hệ thống giải trí gợi ý phim ảnh: hệ thống kinh doanh về mặt giải trí xem phim trực tuyến, hỗ trợ người dùng có thể xem nhiều hơn những bộ phim khác mà họ có thể quan tâm thông qua cộng đồng hoặc lịch sử xem phim của họ Ví dụ: Youtube, Netflix
Hệ thống gợi ý bài viết, tin tức: Ngày nay, ngoài việc cập nhật tin tức nóng bổng, mới nhất Người ta còn quan tâm đến những dòng tin tức mà người xem có thể quan tâm dựa vào lịch sử xem bài viết hoặc thông qua cộng đồng Ví dụ: Google news, Yahoo news…
Hệ thống gợi ý cho các trang xã hội: Hệ thống hỗ trợ tìm kiếm bạn bè, người thân, đồng nghiệp đến người dùng mà họ có thể quan tâm Ví dụ: Facebook, Twitter
Trang 151.8 Kết luận chương 1
Nội dung chương 1 trình bày về vấn đề khó khăn gặp phải trong việc kinh doanh trực tuyến ngày nay, đưa ra lý do và lợi ích cho khách hàng và doanh nghiệp khi ứng dụng hệ thống gợi ý vào việc kinh doanh của họ, giới thiệu tổng quan về hệ thống gợi ý và các hướng tiếp cận phổ biến hiện nay
Trang 16CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT
2.1 Đối tượng phục vụ của hệ thống
Hệ thống phục vụ 2 loại khách hàng: khách hàng thân thuộc và khách hàng vãng lai Khách hàng thân thuộc là khách hàng đã có hồ sơ thông tin cá nhân, đã có lịch sử mua sắm và thường xuyên đến thăm viếng website của chúng ta Ví dụ: anh Nguyễn quan tâm đến các thiết bị công nghệ như điện thoại, máy tính bảng,… Nguyễn đã từng đánh giá các sản phẩm, yêu thích các sản phẩm và mua sản phẩm Nguyễn là khách hàng thân thuộc và đã có
hồ sơ cá nhân Gần đây, anh Nguyễn quay lại website để tìm kiếm mua những phụ kiện liên quan đến chiếc điện thoại mà anh ta mua cách đây vài hôm Từ những thông tin trên, hệ thống phân tích, xây dựng chiến lược để dự đoán và giới thiệu các phụ kiện hoặc những sản phẩm mới tương tự dựa vào từ khóa và sản phẩm mà anh ta đã tìm kiếm hoặc thanh toán trước đó
Khách hàng vãng lai là khách hàng chưa có hồ sơ thông tin cá nhân, chưa hoặc ít mua sắm và ít khi đến thăm viếng website của chúng ta Ví dụ: chị Hà là người dùng mới, không có
hồ sơ cá nhân, lần đầu đến thăm viếng website của chúng ta Hệ thống dựa vào kho lịch sử mua sắm, lịch sử yêu thích của các sản phẩm trong những tuần qua để phân tích và chọn ra top sản phẩm được người dùng quan tâm cũng như được công đồng mua sắm gần đây để hiển thị giới thiệu cho Hà Sau đó Hà chọn xem sản phẩm, hệ thống sẽ phân tích và dự đoán sở thích của chị Hà, từ đây hệ thống tận dụng thông tin để thực hiện gợi ý những sản phẩm mới đến Hà
và có thể được ưng ý
2.2 Định nghĩa Item và User
Hệ thống gợi ý bao gồm 2 đối tượng: Item, user Item và User có mối quan hệ mật thiết với nhau
Item là đối tượng sẽ được gợi ý đến user như: sản phẩm, dịch vụ, bài hát, bài báo, clip… cũng có thể là một user Item có những đặc trưng và metadata như: chủ đề, mô tả, nôi dung, từ khóa, dung lượng, kích thước [2], [3]… Những đặc trưng này sẽ được hệ thống xử lý
dự đoán và gợi ý những item tương tự đến user
User là đối tượng phục vụ của hệ thống như: khách hàng đến mua sản phẩm, người dùng viếng thăm website để xem phim, đọc tin tức, nghe nhạc [3],…
Trang 17Hình 2.2: Mô tả dữ liệu item và user trong hệ thống gợi ý
2.3 Định nghĩa User profile và Item profile
Hệ thống sẽ gợi ý những items phù hợp nhất dựa trên nội dung đặc trưng và profile của
user
Item profile là tập các nội dung đặc trưng quan trọng mô tả về một item Ví dụ như:
một tập phim ta có thể xây dựng profile như: danh sách viễn viên, danh sách đạo diễn, năm
phát hành, thể loại [2], [3]
User profile là tập các item profile của người dùng thông qua lịch sử mua sắm, yêu
thích… Profile thể hiện sự yêu thích của người dùng quan tâm đến sản phẩm [2], [4]
2.4 Định nghĩa về dữ liệu tường minh và dữ liệu không tường minh
Trong hệ thống gợi ý sẽ có 2 loại dữ liệu được phân tích được tạo ra thông qua các
hàng động của khách hàng tác động lên sản phẩm, dịch vụ [4] Ví dụ như: đánh giá, yêu thích,
mua sắm,…
Dữ liệu tường minh là những dữ liệu sau được tạo bởi người như: dữ liệu log khách
hàng đánh giá sản phẩm, dịch vụ; dữ liệu log yêu thích sản phẩm, dịch vụ; dữ liệu log bình
luận về sản phẩm, dịch vụ; dữ liệu log mua sắm sản phẩm, dịch vụ
Dữ liệu không tường minh là những dữ liệu sau được tạo bởi người dùng như: dữ liệu
log xem trang về sản phẩm, dịch vụ; dữ liệu log tìm kiếm
Trang 182.5 Quan hệ giữa Item và User
Hình 2.3: Mô tả quan hệ giữa user và item
Như chúng ta đã biết, hệ thống gợi ý bao gồm hai thành phần chính: user và item Xét một user ta thấy user có thể tác động lên item như: chọn xem item, tìm kiếm item, đánh giá item, yêu thích item, đánh dấu item, chia sẽ item, mua hàng [4]… tùy theo một số hệ thống và nghiệp vụ của hệ thống đó mà user có thể có một số các thao tác riêng khác tác động lên item Những tác động của user lên item thể hiện sự quan tâm của user đến item đó, và chúng ta có thể xây dựng User profile dựa vào sự các hành vi quan tâm này của người dùng [3]
2.6 Đo khoảng cách (Distance Measure)
Như chúng ta đã biết, thuật toán gom cụm phụ thuộc và ảnh hưởng vào phương thức tính khoảng cách Tùy thuộc vào từng bài toán, cấu trúc dữ liệu mà chúng ta quyết định lựa chọn phương pháp tính khoảng cách phù hợp Ví dụ: để gom nhóm tài liệu, bài báo chúng ta chọn phương pháp tính khoảng cách là Cosine
Trang 19Trong luận văn sử dụng thuật toán gom cụm để phân nhóm các item tương tự có cùng đặc trưng, thuật toán gom cụm sử dụng độ đo khoảng cách là Jaccard
Độ đo khoảng cách: Giả sử chúng ta có tập hợp các điểm trong một không gian Đo
khoảng cách trên không gian đó là hàm d(x,y) , trong đó x, y là hai điểm trong không gian và khoảng cách là một con số thực và phải thõa mãn các điều kiện [7]:
1 Khoảng cách d(x,y) >= 0 (khoảng cách tiêu cực)
2 Khoảng cách d(x, y) = 0 nếu và chỉ nếu x = y (khoảng cách tích cực, ngoại trừ khoảng cách này là 2 điểm cùng là chính nó)
3 Khoảng cách d(x, y) = d(y, x) (khoảng cách đối xứng - symmetric)
4 Khoảng cách d(x, y) <= d(x, z) + d(z, y) (đẳng thức tam giá – the triangle inquality) Trong đó đẳng thức tam giá là điều kiện phức tạp nhất Đo khoảng cách bao gồm các phương thức như:
- Khoảng cách Euclidean
- Khoảng cách Jaccard
- Khoảng cách Cosine
- Khoảng cách Edit
Khoảng cách Euclidean Là khoảng cách giữa hai điểm trong không gian nhiều chiều,
những điểm là các vector số thực Khoảng cách Euclidean được xác định bởi công thức:
Khoảng cách Jaccard Khoảng cách Jaccard của những tập hợp được xác định bởi d(x,y)
= 1 – SIM(x,y) Khoảng cách Jaccard bằng 1 trừ cho tỷ lệ kích thước của các phần tử giao
và các phần tử hợp của các phần tử x,y
Khoảng cách Cosine Khoảng cách cosine giữa hai điểm là góc tạo bởi các điểm Góc
trong phạm vi từ 0 đến 180 độ Khoảng cách cosine(x,y) được xác định bởi công thức sau:
(2.1)
(2.2)
Trang 20Khoảng cách Edit Khoảng cách Edit được sử dụng khi các điểm được biểu diễn là các
chuỗi Khoảng cách giữa hai chuỗi x = x1, x2, xn và y = y1, y2,…ym là con số nhỏ nhất của việc chèn và xóa các ký tự được chuyển từ chuỗi x sang chuỗi y
2.7.1 Gom cụm (Cluster analysis hoặc Clustering)
Gom cụm có tầm ảnh hưởng trong cuộc sống ngày nay và được ứng dụng rộng rãi vào các lĩnh vực khoa học công nghệ, kinh doanh, chăm sóc sức khỏe, phân loại thị trường, xử lý ảnh y học, rút trích thông tin… Gom cụm đã và đang được triển khai bởi các tổ chức lớn trên thế giới như: Google, Facebook và Amazon…Gom cụm là một lĩnh vực nghiên cứu trong việc khai thác dữ liệu, và là một cơ chế học không giám sát (unsupervised learning) trong máy học (machine learning) [5], [6], [7]
Gom cụm là một xử lý chia nhóm của các đối tượng dữ liệu thành những tập nhỏ Những đối tượng bên trong một nhóm (cluster) thì tương đồng với những đối tượng khác trong nhóm, những đối tượng không tương đồng sẽ được phân bố trong nhóm khác Kết quả của việc gom nhóm là một tập hợp các cluster Clustering có rất nhiều thuật toán [7]
Giả sử ta có một tập dữ liệu D có n đối tượng trong không gian Euclidean Phương thức chia nhóm những đối tượng trong D vào trong k cluster C1,…Ck với điều kiện Ci con của
D và Ci giao Cj bằng rỗng (1<=i, j<=k) Mục đích được sử dụng để đánh giá chất lượng gom nhóm để các đối tượng bên trong một cluster là tương tự với nhau nhưng khác nhau đối với những đối tượng khác trong những cluster khác Mục tiêu để đánh giá mức độ cao cho độ tương tự cluster nội bộ (high intracluster similarity) và mức độ thấp cho độ tương tự cluster bên ngoài (low intercluster similarity) [7]
Kỹ thuật phân nhóm dựa vào phần tử trọng tâm sử dụng phần tử trọng tâm của một cluster Ci để đại diện cho cluster đó Trọng tâm của một cluster nó là điểm trung tâm, trọng tâm có thể được xác định bằng nhiều cách khác nhau phù hợp với bài toán Ta có ci là đại diện của cluster thì sự khác biệt của một đối tượng p thuộc cluster Ci được xác định bởi dist(p,ci), trong trường hợp này dist(x,y) là khoảng cách Euclidean giữa 2 điểm x và y Chất lượng của cluster Ci có thể được xác định bởi sự biến đổi bên trong của một cluster Ta có cách tính tổng phương sai (squared error) giữa tất cả các đối tượng bên trong cluster Ci và trọng tâm ci được định nghĩa như sau [7]:
Trang 21Trong đó E là tổng phương sai của tất cả các đối tượng trong tập dữ liệu, p là điểm trong không gian thể hiện cho một đối tượng, ci là trọng tâm của cluster Ci
2.7.2 Thuật toán K-mode
Tương tự như mean, thuật toán mode là phiên bản cải tiến của thuật toán means Do việc xử lý gom cụm các sản phẩm, dịch vụ trong bài toán không phù hợp với thuật toán K-means nên chúng ta cải tiến K-means thành K-mode
K-Thuật toán K-mode dùng để phân nhóm, với trung tâm của từng nhóm được xác định bằng giá trị khoảng cách nhỏ nhất của tất cả các đối tượng trong cùng nhóm
Bước 1: Chọn k đối tượng tùy ý từ tập D làm các phần tử trung tâm cho các cluster;
Bước 2: Tìm những đối tượng gần nhất với mỗi phần tử trung tâm và gán phẩn tử đó
vào cluster thuộc về;
Bước 3: Cập nhật lại phần tử trung tâm bằng cách tính khoảng cách và chọn giá trị
nhỏ nhất của tất cả các đối tượng cho mỗi cluster;
Lặp lại các bước cho đến khi thuật toán hội tụ dựa trên tiêu chí dừng và giá trị lặp tối
đa Điều kiện để thuật toán k-mode dừng khi giá trị trung tâm không thay đổi giữa lần lặp lại các bước hoặc các phần tử không thay đổi cluster Trong trường hợp tiêu chí dừng không được cho biết thì thuật toán sẽ dừng sau số vòng lặp nhất định được người dùng thiết lặp trước [5], [6]
Giả sử ta có n phần tử và k nhóm Thuật toán K-Mode sẽ khởi tạo tập k trung tâm Thuật toán sẽ xem xét các phần tử xung quanh và tính lại giá trị trung tâm cho đến khi trạm đến tiêu chí dừng hoặc về hội tụ Mô tả thuật toán K-mode hình bên dưới
(2.3)
Trang 22Hình 2.4: Sử dụng thuật toán k-mode để gom nhóm Bước đầu, chọn k phần tử trong tập đối tượng
đầu vào làm phần tử trung tâm, tìm các đối tượng gần nhất và gán các đối tượng này và nhóm cluster cụ thể Tính lại phẩn tử trung tâm bằng cách tính
và tìm khoảng cách nhỏ nhất của tất cả các phần tử trong cùng nhóm với nhau [6]
Ví dụ minh họa: Giả sử ta có tập dữ liệu như ma trận bên dưới, thực hiện gom nhóm bằng phương pháp K-mode sử dụng độ đo Jaccard với k=3
Trang 24Nội dung chương 2 trình bài lý thuyết về hệ thống gợi ý, các khái niệm liên quan đến
hệ thống gợi ý như: user, item, mối quan hệ giữa user với item, khái niệm về dữ liệu tường minh Cơ sở lý thuyết làm nền tảng để giải quyết bài toán gợi ý: độ đo khoảng cách, gom nhóm và cuối cùng là ví dụ minh họa
Trang 25CHƯƠNG 3 – KỸ THUẬT THỰC HIỆN 3.1 Framework hệ thống gợi ý
Hình 3.1: Framework hệ thống
Hệ thống gợi ý gồm có 5 thành phần xử lý chính:
Xử lý feedback: module sẽ kiểm soát các hành động của người dùng tác động lên sản
phẩm, lưu dữ liệu log khi người dùng thể hiện sự quan tâm đối với sản phẩm qua các thao tác như: yêu thích, chia sẽ, đánh dấu, bình chọn hoặc comment
Trang 26Rút trích đặc trưng: module phân tích nội dung mô tả item từ dữ liệu thô không cấu
trúc (như text), sau đó rút trích các đặc tính của sản phẩm, dịch vụ và xây dựng thông tin có cấu trúc cho sản phẩm, dịch vụ
Xây dựng User preference: module sẽ tổng hợp dữ liệu về các hành động của người
dùng thể hiện sự yêu thích quan tâm đối với sản phẩm qua lịch sử thao tác của người dùng lên sản phẩm và được xây dựng thông qua kỹ thuật máy học như: gom nhóm, phân lớp
Clustering: module sẽ thực hiện gom nhóm các item dựa vào đặt trưng, phục vụ cho
việc dự đoán các sản phẩm và dịch vụ phù hợp với khách hàng
Xử lý lọc: module sẽ tận dụng dữ liệu user preference để gợi ý những sản phẩm phù
hợp qua việc phân tích, kết hợp với dữ liệu gom nhóm và item profile để đưa ra tập dữ liệu gợi
ý
3.2 Cơ sở dữ liệu lưu trữ
Hệ thống gợi ý sử dụng 3 hệ cơ sở dữ liệu sau:
- Mysql CSDL chính dùng để lưu trữ thông tin quan trọng của hệ thống như sản phẩm,
dịch vụ, khách hàng
- Mongodb CSDL dùng để crawler thu thập dữ liệu, chuẩn bị cho việc xử lý
- Hbase CSDL dùng để xử lý tính toán gom cụm trên môi trường Hadoop
Trang 27Hình 3.2: Mô hình CSDL hệ thống gợi ý
Trang 283.2.1 Thiết kế CSDL
Hình 3.3: Lược đồ quan hệ của hệ thống gợi ý
Bảng 3.1: Mô tả các bảng dữ liệu lưu trữ
khách hàng
3 user_preference
Là bảng sử dụng lưu trữ dữ liệu thể hiên sự yêu thích của khách hàng đối với sản phẩm, dịch vụ