Tải bản đầy đủ (.pdf) (56 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.85 MB, 56 trang )

i

LỜ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


ii

LỜ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



iii

MỤ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


iv
3.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


v

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng Việt

CSDL

Database

Cơ sở dữ liệu

APP

Application


Phần mềm ứng dụng

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


vi


DANH 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


vii

DANH 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


1

MỞ ĐẦU
Ngày nay, ngành thương mại điện tử tăng trưởng mạnh mặt khác 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, phong phú tăng dần hình thành một khối dữ liệu lớn (Big Data) 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 ý (Recommender System) 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à họ có thể 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.
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 đấ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 ý.


2
Chƣơ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.


3

CHƢƠ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.


4
Kế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.



5
Lợ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.5. Hệ thống gợi ý
Hệ thống gợi ý là một hệ thống được áp dụng những công nghệ và giải thuật lọc dữ
liệu một cách thông minh, giúp cho người dùng có thể tìm kiếm được những sản phẩm, dịch
vụ mà họ ưng ý.

1.6. Các hƣớng tiếp cận
Hệ thống gợi ý có nhiều hướng tiếp cận khác nhau như: lọc dựa trên nội dung (Content
based filtering), lọc cộng tác (Collaborative filtering), lọc kết hợp giữa cộng tác và nội dung
(Hibrid) [1], [2], [3]... Ở luận văn này ta chỉ áp dụng theo hướng tiếp cận lọc dựa trên nội dung
(Content-based filtering).

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:



Ưu điểm:

Gợi ý những Item tương quan phù hợp với User qua lịch sử yêu thích của họ. Ví dụ:
User A thích nghe thể loại nhạc Kpop hiện đại, Hệ thống xây dựng User profile từ những hành
vi thao tác trên Item đó thể hiện sự yêu thích và quan tâm của User A. Về sau, khi User A truy
cập vào hệ thống, hệ thống sẽ gợi ý những bài hát tương tự phù hợp và liên quan đến thể loại
nhạc Kpop qua lịch sử thao tác.


6
Lọ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.


Khuyết điểm:

Đối với các item không được mô tả đầy đủ thông tin sẽ không xây dựng được item
profile dẫn đến hệ thống hoạt động kém hiệu quả [4].

Đối với người dùng mới chưa có đầy đủ thông tin thì hệ thống không xây dựng được user
profile cụ thể cho người dùng đó dẫn đến hệ thống khó dự đoán chính xác [4].

1.6.2. Lọc cộng tác (Collaborative filtering)
Hướng tiếp cận lọc cộng tác, trả lời cho câu hỏi “Tôi muốn xem những sản phẩm và
dịch vụ phổ biến nhất đang được cộng đồng quan tâm và phù hợp với tôi.Bạn có gợi ý cho tôi
không?”
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,


7
phươ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.


8

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


9

CHƢƠ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],…


10

Hì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.


11

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


12
Trong 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:

(2.1)

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


13
Khoả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]:


14

(2.3)

Trong đó 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ư K-mean, thuật toán K-mode là phiên bản cải tiến của thuật toán Kmeans. 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.
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.
Input
-

k: số lượng clusters

-

D: tập dữ liệu bao gồm n đối tượng

-

Tập hợp k nhóm

Output
Phƣơng thức gom 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.


15

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
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.
Tập dữ liệu:
0

1

0

0

1

1

1


1

0

0

1

0

2

2

2

0

0

2

3

4

1

1


2

4

1

0

0

2

2

4

Chọn các c trung tâm


16

-

C0

0

1

0


0

1

C1

1

1

1

0

0

C2

1

0

2

2

2

Bƣớc 1:

Khoảng cách

Các phần tử

C0

C1

C2

Kết quả

0

1

0

0

1

0

0.5

0.75

C0


1

1

1

0

0

0.5

0

0.8

C1

1

0

2

2

2

0.75


0.8

0

C2

0

0

2

3

4

1

1

0.75

C2

1

1

2


4

1

0.6

0.6

0.6

C0

0

0

2

2

4

1

1

0.5

C2


Tính các c trung tâm

-

C0

1

1

2

4

1

C1

1

1

1

0

0

C2


0

0

2

2

4

Bƣớc 2:
Khoảng cách

Các phần tử

C0

C1

C2

Kết quả

0

1

0

0


1

0.6

0.5

1

C1

1

1

1

0

0

0.6

0

1

C1

1


0

2

2

2

0.6

0.8

0.5

C2

0

0

2

3

4

0.8

1


0.33

C2

1

1

2

4

1

0

0.6

0.8

C0

0

0

2

2


4

0.8

1

0

C2

Tính các c trung tâm
C0

1

1

2

4

1

C1

1

0


1

0

1

C2

0

0

2

2

4


17
-

Bƣớc 3:
Khoảng cách

Các phần tử

C0

C1


C2

Kết quả

0

1

0

0

1

0.6

0

1

C1

1

1

1

0


0

0.6

0.5

1

C1

1

0

2

2

2

0.6

0.75

0.5

C2

0


0

2

3

4

0.8

1

0.33

C2

1

1

2

4

1

0

0.6


0.8

C0

0

0

2

2

4

0.8

1

0

C2

Tính các c trung tâm
C0

1

1


2

4

1

C1

1

0

1

0

1

C2

0

0

2

2

4


Như vậy ta thấy thuật toán đã hội tụ, các phần tử giữa các cluter không thay đổi. Vì
vậy thuật toán dừng.

2.8. Kết luận chƣơng 2
Nộ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.


18

CHƢƠ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.


×