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

Xây dựng hệ thống gợi ý theo sở thích của người dùng dựa trên kỹ thuật lọc cộng tác (tt)

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 (656.42 KB, 24 trang )

1

MỞ ĐẦU
Tốc độ phát triển của thương mại điện tử trên thế giới đặc biệt là
những nước đang phát triển như Việt Nam hiện nay, mô hình kinh doanh
qua mạng ngày càng phổ biến ở khắp nơi. Lượng sách, báo, tạp chí, tài
liệu, hình ảnh, âm thanh, video, sản phẩm và dịch vụ được đăng tải lên
mạng internet thông qua các hệ thống giao dịch điện tử ngày càng khổng
lồ dẫn đến tình trạng quá tải thông tin.
Lượng dữ liệu quá lớn gây không ít khó khăn cho người dùng
trong việc đưa ra quyết là nên mua hay xem sản phẩm nào phù hợp với
nhu cầu của mình. Nhằm hạn chế ảnh hưởng của quá trình quá tải thông
tin đối với người dùng thúc đẩy một lĩnh vực nghiên cứu mới đó là lọc
thông tin. Lọc thông thông tin là loại bỏ những thông tin không quan
trọng và cung cấp những thông tin thích hợp đến với mỗi người dùng.
Lọc thông tin được xem là một phương pháp hiệu quả hạn chế tình trạng
quá tải thông tin được quan tâm nhất hiện nay.
Xuất phát từ những nhu cầu thực tế hệ thống gợi ý ra đời, Hệ thống
gợi ý (Recommender systems) là một phân lớp của hệ thống lọc thông
tin. Hệ thống này đưa ra gợi ý về sản phẩm theo nhu cầu cá nhân của
mỗi người dùng dựa trên những hành vi đã thực hiện trong quá khứ,
hoặc dựa trên tổng hợp ý kiến của những người dùng khác.


2

CHƯƠNG 1 - TỔNG QUAN
1.1. Giới thiệu tổng quan
1.1.1.
Tổng quan về hệ thống gợi ý
Hệ thống gợi ý (Recommender Systems - RS) là hệ thống có khả


năng tự động phân tích, phân loại, lựa chọn và cung cấp cho người dùng
những thông tin, sản phẩm hay dịch vụ mà người dùng có thể sẽ quan
tâm dựa trên các hành vi trong qua khứ của chính người dùng đó. Hệ
thống gợi ý là một dạng của hệ thống lọc thông tin (information
filtering), nó được sử dụng để dự đoán sở thích (preference) hay xếp
hạng (rating) mà người dùng có thể dành cho một mục thông tin (item)
nào đó mà họ chưa xem xét tới trong quá khứ (item có thể là bài báo, bộ
phim, đoạn video clip, sách,..) nhằm gợi ý các mục thông tin “có thể
được quan tâm” bởi người dùng. Hệ thống gợi ý sẽ đưa ra các gợi ý dựa
trên quá trình thu thập, xử lý và phân tích dữ liệu từ người dùng. Dữ liệu
đó được chia làm 2 loại là tường minh (explicit) bằng cách yêu cầu
người dùng phản hồi trực tiếp và tiềm ẩn (implicit) bằng cách tự động
suy luận dựa trên những tương tác của người dùng với hệ thống như: số
lần nhấp chuột, thời gian quan sát... Trong hầu hết các trường hợp, bài
toán gợi ý được coi là bài toán dự đoán sở thích của người dùng đối với
các sản phẩm. Việc dự đoán này thường dựa trên những đánh giá đã có
của những người dùng khác có cùng sở thích với họ. Ví dụ, những sản
phẩm được đưa ra gợi ý là những sản phẩm có độ tương tự sở thích với
người dùng cao nhất sẽ được dùng để gợi ý [1].


3

1.1.2.
Bài toán
Hệ thống gợi ý luôn là một đề tài nóng, nhận được nhiều sự quan
tâm từ xã hội, một bài toán mà hầu hết các doanh nghiệp, các trang web
thương mại điện tử phải đối mặt: làm thế nào để biết sở thích của mỗi
các nhân người dùng? Từ đó đưa ra gợi ý những sản phẩm mà họ đang
thật sự quan tâm, tìm kiếm hoặc khơi gợi nguồn cảm hứng tiềm ẩn từ

sản phẩm đến họ trong lượng dữ liệu khổng lồ.
Đã có rất nhiều nghiên cứu đưa ra các thuật toán, phương pháp với
mong muốn đem lại kết quả tốt nhất cho hệ thống gợi ý, nhưng bên cạnh
đó hệ thống gợi ý còn gặp phải những tình trạng, những vấn đề cần phải
giải quyết và tiếp tục nghiên cứu làm rõ như:
 Làm thế nào để gợi ý được các sản phẩm dựa trên mối quan hệ
cộng tác.
 Tình trạng dữ liệu quá lớn khiến chúng ta không thể thao tác dữ
liệu như cách truyền thống được.
 Vấn đề về độ chính xác của kết quả ở mỗi thuật toán, vấn đề dữ
liệu thưa thớt, …
Luận văn đề xuất “xây dựng hệ thống gợi ý theo sở thích của người
dùng dưạ trên kỹ thuật lọc cộng tác” để góp phần giải quyết một số vấn
đề, tình trạng đang tồn động của lọc thông tin trong hệ thống gợi ý.
Tập dữ liệu đầu vào dựa trên nguồn dữ liệu thu thập từ fanpage
tiki, fahasa, foody, lazada, vinabook với các hoạt động like, share, bình


4

luận sản phẩm (theo hướng tích cực) để xây dụng mối quan hệ giữa
người dùng và sản phẩm.
Kết quả đưa ra những sản phẩm gợi ý tương thích với sở thích của
mỗi người dùng.
1.2. Mục tiêu và phương pháp của luận văn
Mục tiêu của luận văn là nghiên cứu, áp dụng một số các phương
pháp pháp trong kỹ thuật lọc cộng tác nhầm nâng cao kết quả dự đoán
nhu cầu người dùng của hệ thống gợi ý. Và nghiên cứu tập trung vào
việc xây dựng hệ thống gợi ý trong trường hợp dữ liệu lớn.
Để thực hiện mục tiêu chính là xây dựng hệ thống gợi ý theo sở

thích của người dùng trong kỹ thuật lọc cộng tác cần đặt ra một số mục
tiêu chi tiết sau:
 Dựa trên nguồn dữ liệu thu thập từ fanpage tiki, fahasa, foody,
lazada, vinabook. Xây dựng ma trận quan hệ giữa người dùng
và sản phẩm
 Dữ liệu sau khi tiền xử lý được lưu trữ trên Hbase phù hợp cho
việc lưu trữ dữ liệu lớn, không có cấu trúc
 Với tập dữ liệu có được sẽ tiến hành tính toán độ tương tự người
dùng để từ đó dựa trên mối quan hệ tương tự hệ thống sẽ đề
xuất sản phẩm, ở đây luận văn sử dụng độ đo tương tự
LogLikelihood để đo độ tương tự giữa hai người dùng.
 Sau đó áp hệ thống sẽ chọn ra K láng giềng gần nhất (K người
dùng có độ tương tự lớn nhất).


5

 Hệ thống sẽ tìm kiếm các người dùng có sự tương tự về lịch sử
và từ đó đề xuất các sản phẩm có khả năng được yêu thích vì họ
có cùng sở thích.
 Đánh giá kết quả sau khi đạt được.
1.3. Ý nghĩa khoa học và thực tiễn của luận văn
Ý nghĩa khoa học:
Luận văn nghiên cứu và trình bày các bước trong quá trình đưa ra
dự doán gợi ý sản phẩm đến người dùng, các yếu tố ảnh hưởng đến chất
lượng, nhằm cải thiện được kết quả gợi ý sản phẩm phù hợp với yêu cầu
thực tế của người dùng.
Luận văn đề xuất xây dựng hệ thống gợi ý trên dữ liệu lớn để đáp
ứng nhu cầu của tình trạng quá tải thông tin trên các trang thương mại
điện tử, mạng xã hội như hiện nay.

Ý nghĩa thực tiễn:
Nhu cầu thực tiễn về một hệ thống gợi ý hỗ trợ hiệu quả trong việc
tìm kiếm sản phẩm là cần thiết và rất thực tế nếu được kết hợp trong việc
tìm hiểu hành vi người dùng, sẽ mang lại hiệu quả cao nhiều trong lĩnh
vực quảng cáo, marketing.
1.4.

Kết luận chương 1


6

CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT
2.1. Giới thiệu về Hệ thống gợi ý
2.1.1.Lọc dựa trên nội dung (Content-based filtering)
Hệ thống đưa ra gợi ý các sản phẩm tương đồng với sản phẩm
người dùng đã từng thích trong quá khứ [1]. Sự tương đồng giữa các sản
phẩm được tính toán dựa trên các tính năng khi so sánh hai sản phẩm.
2.1.2.Lọc dựa trên kỹ thuật lọc cộng tác (Collaborative filtering)
Lọc cộng tác gợi ý những sản phẩm được yêu thích bởi những
người có độ tương quan phù hợp [1].

Hình 1.2: Sơ đồ gợi ý sản phẩm bằng hướng tiếp cận lọc
dựa trên kỹ thuật lọc cộng tác


7

2.1.3.Phương pháp lọc kết hợp (Hybrid)
2.1.4.Các nghiên cứu liên quan

2.2. Hệ thống gợi ý dựa trên kỹ thuật lọc cộng tác theo hướng tiếp
cận người dùng (user-user Collaborative Filtering Recommender
Systems)
2.3. Các phương pháp tính độ đo tương tự trong hệ thống gợi ý
2.3.1.Khoảng cách Jaccard
2.3.2.Khoảng cách Cosine
2.3.3.Làm tròn dữ liệu
2.4. Hệ thống gợi ý trong Apache Mahout
2.4.1.Hướng tiếp cận cộng tác dựa vào người dùng
2.4.1.1. Độ tương tự LogLikelihood
Log-likelihood tương tự như Jaccard, hoặc tương tự như Tanimoto
Similarity tuy nhiên nó được xem là một phương pháp tính toán thông
minh hơn.

Hình 2.4: Mô hình thể hiện hai người dùng có cùng sở thích [19]
Sự kiện A

Bất kỳ, trừ A

Sự kiện B

A & B cùng xảy ra(k_11)

chỉ B xảy ra (k_12)

Bất kỳ, trừ

chỉ A xảy ra (k_21)

Cả A và B không xảy ra


B

(k_22)


8

2.4.1.2. K – Láng giềng gần nhất (K-Nearest Neighbors K-NN)
2.4.1.3. Các bước thực hiện xây dựng một hệ thống gợi ý trong
Apache Mahout dựa trên mối quan hệ lọc cộng tác giữa các
người dùng
Chuẩn bị dữ liệu
Dữ liệu đầu vào được format theo dạng (user_id, item_id, preference).
Các bước thực hiện
Bước 1:
Nạp dữ liệu, Mahout hỗ trợ DataModel để nạp và tương tác dữ liệu,
sử dụng lệnh[15]:
DataModel model = new GenericBooleanPrefDataModel();
Bước 2:
Để tìm những người dùng tương tự sở thích với nhau.
UserSimilarity similarity = new LogLikelihoodSimilarity(model);
Bước 3:
Xác định những người dùng tương tự để tận dụng cho việc gợi ý.
UserNeighborhood neighborhood = new NearestNUserNeighborhood
(totalNeighbor, userSimilarity, model) [15];
Trong đó


totalNeighbor là số lượng user lân cận muốn xét




userSimilarity là những người dùng tương tự sở thích với
nhau, kết quả được tính ở bước 2

Bước 4:
Đây là bước cuối cùng chúng ta sẽ tạo dữ liệu gợi ý[15].


9

Recommender recommender = new GenericUserBasedRecommender
(model, neighborhood, similarity);
Tiến hành thực hiện các thao tác tính toán trên cơ sỡ dữ liệu test
Tạo dữ liệu input Test, dữ liệu thể hiện UserID có thích ItemID
UserID itemID Preferences
1

101

1

1

102

1

1


103

1

2

101

1

2

102

1

2

103

1

2

104

1

3


101

1

3

104

1

3

105

1

3

107

1

4

101

1

4


103

1

4

104

1

4

106

1

5

101

1

5

102

1



10

5

103

1

5

104

1

5

105

1

5

106

1

Bước 1: Nạp dữ liệu vào hệ thống
Item
101


Item
102

Item
103

User
1

x

x

x

User
2

x

x

x

User
3

x

User

4

x

User
5

x

Item
104

Item
106

Item
107

x
x

x

Item
105

x

x


x

x

x

x
x

x

x

Bước 2: Tính độ đo tương tự của user n với user 1 được tính như sau:
Giữa userID thứ i (i từ 1 đến n) và itemID thứ j (j từ 1 đến n) có
dấu “x” là thể hiện userID i có thích sản phẩm thứ itemID j, ngược lại
nếu userID i và itemID j là rỗng thì giữa chúng chưa có mối quan hệ nào
cả.
Dựa vào công thức tính Log-likelihood ở trên ta tính được kết quả
dưới bảng sau: Tính độ tương tự của user 2 với user 1


11

user 1

Mọi thứ, trừ user 1

user 2


3

1

Mọi thứ, Trừ user 2

0

3

rowEntropy = 7*log(7) - 4*log(4) - 3*log(3) = 4,78
columnEntropy = 7*log(7) - 3*log(3) - 4*log(4) = 4,78
matrixEntropy = 7*log(7) - 3*log(3) - 1*log(1) - 0*log(0) - 3*log(3) =
7,029
logLikelihoodRatio = 2 * (rowEntropy + columnEntropy –
matrixEntropy)
= 2 * (4,78 + 4,78 – 7,029)
= 5,062
Log-likelihood = 1 −

1
1+logLikelihoodRatio

Item
101

Item
102

Item

103

User
1

x

x

x

User
2

x

x

x

User
3

x

User
4

x


User

x

Item
104

Item
105

1
1+5.062

Item
106

= 0.84

Item
107

Độ đo
tương tự
với user1
0.90

x
x

x


=1−

x

x

x

x

0.84
x

x

x

0.55

x

0.16

x

0.55


12


5
Bước 3: sắp xếp kết quả theo thứ tự đọ đo tương tự với user 1 giảm dần
Item
101

Item
102

Item
103

User
1

x

x

x

User
2

x

x

x


User
3

x

User
5

x

User
4

x

x

Item
104

Item
105

Item
106

Item
107

Độ đo

tương tự
với user 1
0.90

x

0.84

x

x

x

x

x

x

x

x

0.55

x

0.55


x

0.16

Với hệ số UserNeighborhood là 2, tương đương với việc ta chỉ
quan tâm đến 2 user có độ tương tự gần giống user 1 nhất, cụ thể ở ví dụ
này là user2 và user3.
Bước 4: Dự đoán của hệ thống gợi ý.
Dựa vào bảng trên ta thấy rằng, chỉ có 3 item có thể gợi ý cho user
1 đó là: item104, item105 và item107 nhưng trong đó chỉ có duy nhất
item104 là được user2 và user3 cùng thích. Vậy hệ thống sẽ gợi ý
item104 cho user1.
user: 1 RecommendedItem[item:104, value:1.0]


13

 Tương tự hệ thống tính toán và gợi ý cho user1 usern
2.4.2.Hướng tiếp cận lọc cộng tác dựa vào mối quan hệ đặc trưng
tiềm ẩn
2.4.2.1. Bình phương tối thiểu luân phiên (ALS – Alternating least
square)
2.4.2.2. Lọc cộng tác dựa vào mối quan hệ tiềm ẩn trong mahout với
hadoop
Các bước thực hiện
Bước 1: Chuẩn bị dữ liệu
Bước 2: Xác định các thông số
Bước 3: Chạy thuật toán ALS
Bước 4: Đề xuất gợi ý
2.5. Kết luận chương 2



14

CHƯƠNG 3 - HỆ THỐNG XỬ LÝ DỮ LIỆU LỚN
TRÊN HADOOP
3.1. Tổng quan về Apache Hadoop
3.1.1.Giới thiệu về Hadoop
3.1.2.Khái niệm về Hadoop
Hadoop là một Apache framework mã nguồn mở được viết bằng
java, cho phép xử lý phân tán các tập dữ liệu lớn trên các cụm máy tính
thông qua mô hình lập trình đơn giản. Hadoop được thiết kế để mở rộng
quy mô từ một máy chủ đơn sang hàng ngàn máy tính khác có tính toán
và lưu trữ cục. Thư viện phần mềm Apache Hadoop là một framework
cho phép phân phối các bộ dữ liệu lớn trên các cụm máy tính sử dụng
mô hình lập trình đơn giản. Nó được thiết kế để mở rộng quy mô từ các
máy chủ đơn đến hàng ngàn máy tính khác, cung cấp tính toán và lưu trữ
cục bộ cho từng máy.
3.1.3.Thành phần của Hadoop
Apache Hadoop nguồn gốc là để quản lý và truy cập dữ liệu, và chỉ
bao gồm 2 thành phần cơ bản là: HDFS và MapReduce
3.1.4.Hệ thống sinh thái dữ liệu Hadoop
3.2. Tổng quan về Apache Hbase
Cơ chế lưu trữ trong HBase.
Tính năng của Hbase
Một số lệnh cơ bản
3.3. Kết luận chương 3


15


CHƯƠNG 4 – THIẾT KẾ VÀ HIỆN THỰC
4.1. Thiết kế luồng thực thi công việc
Hệ thống gợi ý sử dụng ba hệ quản trị csdl sau: MongoDB, MySql,
Hbase. Đầu tiên dữ liệu được lấy về lưu trữ trong MongoDB với dạng
file và chưa có quan hệ, sau đó tiến hành phân tích dữ liệu trong
MongoDB để tìm ra mối quan hệ giữa các người dùng và sản phẩm
(user-item) dữ liệu sau khi phân tích được lưu trữ trong csdl MySql để
dễ dàng lưu trữ, cập nhật, quản lý. Dữ liệu sau khi tiền xử lý được lưu
trữ trên Hbase phù hợp cho việc lưu trữ dữ liệu lớn, không có cấu trúc.
Dữ liệu được lưu trữ vào csdl MongoDB:

Hình 4.1: Mô hình thể hiện quá trình lấy dữ liệu về từ FanPage của
Facebook
và lưu trữ vào MongoDB
Dữ liệu được thu thập về từ các FanPage của Facebook được lưu
trữ trong csdl MongoDB để tiến hành phân tích tìm ra mối quan hệ giữa
các user và item chuẩn bị cho việc xử lý.


16

Dữ liệu được lưu trữ vào csdl MySql:
Dữ liệu sau khi phân tích cần được thiết kế bố trí lưu trữ trên
MySql để phù hợp phần dữ liệu lấy về. Thiết kế mô hình lưu trữ dữ liệu
như sau:

Hình 4.2: Mô hình dữ liệu trong MySql
Mô hình thể hiện tổng quát quá trình lưu trữ dữ liệu trong MySql
sau khi phân tích từ dữ liệu từ MongoDB. Gồm các thực thể như USER

là nơi lưu trữ thông tin của người dùng, ITEM là nơi lưu trữ thông tin
sản phẩm, LIKELIST là nơi lưu trữ danh sách người dùng thể hiện sở
thích lên sản phẩm, RECOMMENDATIONLIST là nơi lưu trữ danh
sách các sản phẩm gợi ý đến mỗi người dùng sau khi được hệ thống tính
toán ý bên trong Hadoop Framework và trả về kết quả.


17

Dữ liệu được lưu trữ vào csdl Hbase:
Như đã trình bày ở trên phần 3.2, HBase là hệ quản trị csdl trên
Hadoop. Đây là một giải pháp tốt cho việc xử lý dữ liệu lớn, với môi
trường tính toán phân tán và xử lý song song mang lại thời gian thực thi
nhanh.

Hình 4.3: Mô hình dữ liệu được lưu trữ vào csdl HBASE
Dữ liệu LIKELIST được import vào Hbase để phục vụ cho việc xử
lý tính toán của hệ thống gợi ý và kết quả sau khi tính toán được export
trả về là file RECOMMENDATIONLIST nơi chứa kết quả sau khi thực
thi thuật toán máy học trong Mahout.
4.2. Thực nghiệm
4.2.1.Phần xử lý dữ liệu
Hệ thống xây dựng gợi ý dựa trên dữ liệu thu thập được từ các
fanpage trên facebook như: tiki, fahasa, foody, lazada, vinabook.


18

Dữ liệu được lấy trong khoảng thời gian từ ngày ngày 13 tháng 4
năm 2016 đến ngày 04 tháng 05 năm 2016 với tổng số lượng người dùng

(user) là : 321880 người và với tổng số lượng sản phẩm (item) là : 48615
sản phẩm.
4.2.2.Thực nghiệm chương trình hệ thống gợi ý
4.2.2.1. Môi trường và phần mềm sử dụng
- Cài đặt và thiết lập biến môi trường trên Java 6
- Cài đặt NetBeans IDE 8.1
- Sử dụng thư viện Apache Mahout 0.9
- Hệ quản trị csdl cần cài đặt MongoDB 3.2.4 , MySql 5.7.13,
Hbase 0.9
- Cài đặt Vmware Workstation 12.1 và tiến hành cài đặt gói
cloudera-quickstart-vm-5.5.0 đã được cấu hình sẳn hệ điều hành
CentOS 6.4, Hadoop 2.6, Hbase 0.9,...
4.2.2.2. Thực nghiệm xây dựng hệ thống gợi ý

4.2.2.2.1. Xây dựng hệ thống gợi ý dựa trên mối quan hệ giữa các
người dùng (user-user)
Giải thuật MahoutRecommenderUserBase là giải thuật để lọc ra
những item có khả năng user sẽ thích để gợi ý đến user đó, dựa trên mối
quan hệ của các user có cùng sở thích trong quá khứ. Ý tưởng giải thuật
được trình bày như sau:
MahoutRecommenderUserBase
Input: UserItemData (dữ liệu quan hệ thể hiện sự yêu thích của
user đối với item)


19

Output: Recommend(Những item được gợi ý cho User)
Begin
DataModel ←InitDataModel(UserItemData);

UserSimilarity ← ComputeUserSimilarity(UserItemData);
UserNieghborHood ←FindUserNeighBorhood (chooseNumber,
UserSimilarity, UserItemData);
Recommender ←GenericUserBasedRecommender (UserItemData,
UserNieghborHood , UserSimilarity);
End
Trong đó giải thuật ComputeUserSimilarity dùng để tính độ tương
tự giữa 2 user dựa trên độ đo LogLikelihoodSimilarity.
FindUserNeighBorhood dùng để tìm kiếm những người dùng lân
cận với một user. Và chooseNumber là số được truyền vào để lọc ra số
lượng user lân cận với user đang xét.
4.2.2.2.2. Xây dựng hệ thống gợi ý dựa trên mối quan hệ giữa các
sản phẩm (item-item)
4.2.2.2.3. So sánh các phương pháp gợi ý
4.3. Kết quả đạt được
Danh sách các sản phẩm itemID được đề xuất cho người dùng
userID dựa trên sở thích trong quá khứ của người dùng đó:


20

Hình 4.5: Kết quả của hệ thống gợi ý
4.4. Giao diện hệ thống gợi ý sản phẩm
Hệ thống gồm có các chức năng như đăng nhập/đăng xuất, like sản
phẩm, link xem chi tiết về thông tin sản phẩm, và đặc biệt là chức năng
gợi ý sản phẩm đến người dùng sau khi đăng nhập thành công

Hình 4.6: Giao diện cho phép người dùng đăng nhập vào hệ thống
gợi ý



21

Hình 4.7: Giao diện trang web biểu hiện sản phẩm đến người dùng


22

4.5. Đánh giá kết quả độ chính xác của thuật toán
4.5.1.
Đánh giá độ chính xác của thuật toán dựa trên một người
dùng
4.5.2.
Đánh giá độ chính xác của thuật toán trên một tập dữ liệu
người dùng
Để thực hiện đánh giá ta tiến hành chọn ngẫu nhiên 3 tập dữ liệu
để kiểm tra với các bước thực hiện như sau:
Bước 1: Chọn tập dữ liệu A để kiểm tra sao cho dữ liệu gồm những
user đã có lịch sử (là những user có quá khứ từng đánh giá thích lên các
item).
Bước 2: Duyệt qua tất cả các user và ở mỗi user xóa đi 1 record ta
được tập dữ liệu B.
Bước 3: Xây dựng hệ thống gợi ý cho dữ liệu B và đánh giá kết
quả hệ thống thông qua số record đã xóa ở bước 2 mà được bước 3 đưa
ra gợi ý. Dựa trên kết quả ta xác định số phần trăm độ chính xác của
thuật toán.
Kiểm tra độ chính xác trên các tập dữ liệu cụ thể như bảng sau:
Bảng 4.4: Bảng kết quả thực nghiệm
Tập dữ
Số

Số lượng item được hệ thống
Độ chính
liệu đánh lượng gợi ý/tập số lượng mong muốn xác của hệ
giá
user
được gợi ý
thống
Tập 1
100
76/100
76%
Tập 2
500
369/500
≈74%
Tập 3
1000
657/1000
≈66%
Với độ chính xác trung bình của hệ thống là: ≈72% đây là một kết
quả khá tốt.
4.6.

Kết luận chương 4


23

KẾT QUẢ VÀ KIẾN NGHỊ
Kết quả của luận văn

Luận văn đã xây dựng thành công hệ thống gợi ý theo sở thích của
người dùng dựa trên kỹ thuật lọc cộng tác. Giải quyết được một số vấn
đề đang tồn động trong bài toán của hệ thống gợi ý. Luận văn cũng trình
bày các bước thực hiện tính toán trong kỹ thuật lọc cộng tác dựa trên
người dùng, cách tính toán độ tương tự trực tiếp giữa hai người dùng.
Đưa ra phương pháp giải quyết vấn đề tình trạng dữ liệu lớn trong hệ
thống gợi ý.
Ngoài hướng tiếp cận chính của luận văn là xây dựng hệ thống gợi
ý dựa trên mối quan hệ cộng tác giữa các người dùng, chúng tôi còn đi
vào nghiên cứu xây dựng thêm hướng tiếp cận dựa trên mối quan hệ của
các sản phẩm và mối quan hệ đặc trưng tiềm ẩn. và so sánh các phương
pháp tiếp cận trên.
Luận văn đưa ra các phương pháp đánh giá kết quả trên một người
dùng và trên một tập người dùng từ đó khẳng định được độ tin cậy, tính
chính xác của hệ thống gợi ý.
Hạn chế và hướng phát triển
Do hạn chế về thời gian nên luận văn còn có nhiều thiếu sót, hạn
chế và mong muốn được phat triển như:
Luận văn đã nêu ra phương pháp giải quyết vấn đề xây dựng hệ
thống gợi ý trong tình trạng dữ liệu lớn như phương pháp lưu trữ trong
Hbase nhưng luận văn hiện tại chưa cài đặt thành công. Hướng phát


24

triển là tiếp tục cài đặt thuật toán máy học tính toán bên trong môi
trường Hadoop với dữ liệu được lưu trữ trên hệ quản trị csdl Hbase
nhằm giải quyết tình trạng trên.
Hướng tiếp cận về mối quan hệ đặc trưng tiềm ẩn chỉ dừng ở mức
tìm hiểu nghiên cứu. Hướng phát triển là tiếp tục cài đặt xây dựng hệ

thống gợi ý theo hướng tiếp cận này và tiến hành so sánh kết quả với các
phương pháp khác, kết hợp các hướng tiếp cận để xây dựng một hệ
thống gợi ý hoàn chỉnh có độ chính xác tốt nhất đối với mọi loại dữ liệu.
Chưa khai thác tối đa nguồn dữ liệu thu thập về từ các fanpage
facebook. Hướng phát triển phân tích khai thác triệt để nguồn dữ liệu
được thu thập về, để xây dựng một hệ gợi ý hiệu quả, đáng tin cậy.
Luận văn còn nhiều định hướng mong muốn phát triển như ta xét
về cảm xúc con người, các cung bật cảm xúc của họ đối với một đối
tượng trên mạng xã hội (một thế giới ảo) ngày càng trở nên gần như thế
giới thực. Facebook đã ứng dụng điều đó, nếu như những năm từ 2016
về trước cảm xúc chúng ta thể hiện là: thích, không thích thì bây giờ có
thêm những cảm xúc như: thích, yêu thích, vui, bất ngờ, buồn, phẫn
nộ,…Luận văn mong muốn sẽ phát triển hơn đi xâu vào phân tích cảm
xúc của người dùng để đưa ra kết quả gợi ý gần với nhu cầu người dùng
nhất.
DANH MỤC TÀI LIỆU THAM KHẢO



×