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

Xây dựng hệ tư vấn hẹn hò trực tuyến (LV thạc sĩ)

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.81 MB, 80 trang )

HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
---------------------------------------

LÊ TÔN ANH THƢ

XÂY DỰNG HỆ TƢ VẤN HẸN HÒ TRỰC TUYẾN

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

HÀ NỘI – 2017


HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
---------------------------------------

LÊ TÔN ANH THƢ

XÂY DỰNG HỆ TƢ VẤN HẸN HÒ TRỰC TUYẾN
CHUYÊN NGÀNH

:

KHOA HỌC MÁY TÍNH

MÃ SỐ

:

60.48.01.01


LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

NGƯỜI HƯỚNG DẪN KHOA HỌC
TS. NGUYỄN DUY PHƢƠNG

HÀ NỘI - 2017


i

LỜI CAM ĐOAN
Luận văn này là thành quả của quá trình học tập nghiên cứu của em cùng sự
giúp đỡ, khuyến khích của các quý thầy cô sau 2 năm em theo học chương trình đào
tạo Thạc sĩ, chuyên ngành Khoa học máy tính của trường Học viện Công nghệ Bưu
chính Viễn thông.
Em cam đoan đây là công trình nghiên cứu của riêng em. Nội dung của luận
văn có tham khảo và sử dụng một số thông tin, tài liệu từ các nguồn sách, tạp chí
được liệt kê trong danh mục các tài liệu tham khảo và được trích dẫn hợp pháp.

Tác giả
(Ký và ghi rõ họ tên)

Lê Tôn Anh Thƣ


ii

LỜI CÁM ƠN
Em xin gửi lời cảm ơn và tri ân tới các thầy cô giáo, cán bộ của Học viện

Công nghệ Bưu chính Viễn thông đã giúp đỡ, tạo điều kiện tốt cho em trong quá
trình học tập và nghiên cứu chương trình Thạc sĩ.
Để hoàn thành luận văn này, em xin gửi lời cảm ơn sâu sắc tới TS. Nguyễn
Duy Phƣơng đã tận tình hướng dẫn, giúp đỡ và động viên trong suốt quá trình
nghiên cứu và viết luận văn.
Do vốn kiến thức lý luận và kinh nghiệm thực tiễn còn ít nên luận văn không
tránh khỏi những thiếu sót nhất định. Em kính mong các thầy cô tận tình chỉ bảo và
trân trọng tiếp thu các ý kiến để luận văn được hoàn thiện.
Cuối cùng, em xin gửi lời chúc tốt đẹp nhất đến những người bạn đã đồng
hành và các thầy cô đã giúp đỡ em trong suốt hai năm qua. Chúc cho mọi người
luôn vui vẻ và thành công trong cuộc sống.
Em xin chân thành cảm ơn, Hà Nội, tháng 5 năm 2017

Tác giả
(Ký và ghi rõ họ tên)

Lê Tôn Anh Thƣ


iii

MỤC LỤC
MỞ ĐẦU ............................................................................................................. 1
Chƣơng 1 – TỔNG QUAN ................................................................................ 3
1.1.

Đặt vấn đề ........................................................................................3

1.2.


Tổng quan về hệ thống Recommender Systems ..............................5

1.2.1. Phân loại Recommender systems .................................................6
1.2.2. Phân tích ưu nhược điểm ..............................................................9
1.2.3. Những tác vụ Recommender system cần giải quyết ..................11
1.2.4. Đánh giá mô hình trong hệ thống Recommender System..........11
1.3.

Các bước cơ bản trong quá trình xây dựng Recommender System
12

1.3.1. Thu thập dữ liệu .........................................................................12
1.3.2. Chuẩn hóa dữ liệu.......................................................................13
1.3.3. Collaborative Model (đối tượng chứa dữ liệu)...........................13
1.3.4. Chạy mô hình lọc ra top N item. ................................................14
1.3.5. Đánh giá mô hình .......................................................................14
1.4.

Một số công cụ hỗ trợ quá trình nghiên cứu và thử nghiệm hệ

thống Recommender System .................................................................................15
1.4.1. Python .........................................................................................15
1.4.2. Java .............................................................................................16
1.4.3. Thư viện hệ thống R ...................................................................16
1.5.

Bài toán xây dựng hệ thống Hẹn hò trực tuyến .............................17

1.5.1. Hẹn hò trực tuyến .......................................................................18



iv

1.5.2. Các lĩnh vực hai chiều ................................................................22
Chƣơng 2 - CÁC PHƢƠNG PHÁP GỢI Ý CHO HỆ THỐNG HẸN HÒ
TRỰC TUYẾN ................................................................................................. 23
2.1. Hệ thống gợi ý qua lại .........................................................................23
2.2. Các phương pháp tiếp cận ...................................................................23
2.3.

Các thuật toán gợi ý .......................................................................26

2.3.1. Phương pháp tiếp cận dựa vào nội dung ....................................26
2.3.2. Phương pháp tiếp cận dựa vào đánh giá tiêu cực .......................30
2.3.3. Phương pháp kết hợp ....................................................................31
2.3.4. Phương pháp đa nhóm tương thích (Multiple compatible
subgroups)

37

Chƣơng 3 - THỰC NGHIỆM VÀ XÂY DỰNG MÔ HÌNH ỨNG DỤNG . 43
3.1.

Mô hình dữ liệu ..............................................................................43

3.1.1. Mô tả dữ liệu mẫu ......................................................................43
3.1.2. Mô tả migrate dữ liệu .................................................................44
3.1.3. Chuẩn hóa dữ liệu.......................................................................45
3.1.4. Chia bộ dữ liệu huấn luyện và kiểm thử ....................................45
3.2.


Phương pháp xây dựng mô hình ....................................................46

3.2.1. Phân tích thăm dò .......................................................................46
3.2.2. Phương pháp đánh giá mức độ thành công của thuật toán .........47
3.2.3. Kết quả .......................................................................................49
3.3.

Xây dựng mô hình ứng dụng .........................................................54

3.3.1. Xây dựng cơ sở dữ liệu .................................................................55
3.3.2. Kiến trúc ứng dụng .......................................................................55


v

3.3.3. Ứng dụng ......................................................................................58
3.4.

Kết quả thực nghiệm ......................................................................61

3.4.1. Độ đo đánh giá ...........................................................................61
3.4.2. Cơ sở dữ liệu và bộ dữ liệu thử nghiệm .....................................63
3.4.3. Kết quả thử nghiệm và đánh giá .................................................64
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN...................................................... 67
TÀI LIỆU THAM KHẢO ............................................................................... 69


vi


DANH MỤC TỪ VIẾT TẮT
STT

Từ viết tắt
CBR

1

Tiếng Anh
Content – based

Tiếng Việt
Gợi ý dựa trên nội dung

recommendations

2

CRR

Content-Collaborative Reciprocal

Phương pháp hỗn hợp

3

RECON

Content-based approach


Tiếp cận nội dung

4

CF

Collaborative filtering

Bộ lọc công tác

5

HR

Hybrid recommenders

Gợi ý hỗn hợp

6

RC

Recommender Systems

Hệ thống cung cấp gợi ý

7

RR


Reciprocal recommenders

Gợi ý tương hỗ

8

e.e

Recommendee

Người nhận sự gợi ý

9

e.r

Recommender

Người cung cấp gợi ý


vii

DANH MỤC CÁC BẢNG BIỂU
Bảng 2.1. Thứ tự các thuộc tính được cân nhắc trong hàm khoảng cách D........33
Bảng 3.1. Tỉ lệ phân bố của tin nhắn khời đầu và khởi đầu có hồi đáp ...............46
Bảng 3.2. Ma trận nhầm lẫn trong phân loại lớp đối tượng..................................61
Bảng 3.3. Kết quả thử nghiệm trên 5 bộ dữ liệu.....................................................65



viii

DANH MỤC CÁC HÌNH VẼ
Hình 1.1. Minh họa cho CBR ....................................................................................7
Hình 1.2. Minh họa cho CFR ....................................................................................8
Hình 2.1. Điểm tương thích giữa nam giới 35-39 với các nhóm tuổi nữ giới ......38
Hình 2.2 Mỗi hàng thể hiện một cặp điều kiện-kết quả được thêm thành công vào
Quy tắc r. Số lượng cặp được thêm vào kéo theo tỷ lệ thành công tăng nhưng
cũng làm giảm đi số ứng viên có thể đáp ứng ........................................................40
Hình 2.3 Ngưỡng µ + σ/2 được biểu thị với đường ngang màu đỏ. Những giá trị
cho thuộc tính có điểm tương thích lớn hơn ngưỡng yêu cầu sẽ được thêm vào W
...................................................................................................................................41
Hình 3.1. Tỷ lệ phản hồi tích cực ............................................................................46
Hình 3.2. So sánh Tỉ lệ thành công của các phương pháp ....................................49
Hình 3.3. Tỷ lệ chính xác và thất bại của các phương pháp .................................50
Hình 3.4. Bảng CSDL ..............................................................................................55
Hình 3.5. Biểu đồ uc tổng quát ................................................................................56
Hình 3.6. Sơ đồ tuần tự cho chức năng đăng nhập và đăng xuất .........................57
Hình 3.7. Sơ đồ tuần tự cho chức năng nhập thông tin cá nhân ..........................57
Hình 3.8. Sơ đồ tuần tự cho chức năng trả lời tin nhắn ........................................58
Hình 3.9. Biểu đồ thống kê tỷ lệ các ứng viên được đánh giá đúng của 4 phương
pháp ...........................................................................................................................65
Hình 3.10. Biểu đồ thống kê tỷ lệ các ứng viên được đánh giá của 4 phương pháp
...................................................................................................................................66
Hình 3.11. Biểu đồ thống kê tiêu chí đánh giá F measure của 4 phương pháp ...66


1

MỞ ĐẦU

Những năm gần đây, đằng sau sự bùng nổ của Internet, các lĩnh vực mới xuất
hiện đem theo lợi ích kinh tế phi lợi nhuận, một trong số đó phải kể đến đó là lĩnh
vực hẹn hò online. Nếu như trong năm 2015, ở Mỹ, doanh thu từ hẹn hò online lên
tới 2 tỷ đô với mức tăng trưởng 5% và hơn 3900 công ty thì ở Việt Nam, lợi nhuận
thu được cũng không hề nhỏ. Dựa vào tình trạng hiện tại, trong số thanh niên tuổi từ
25 đến 34 ở Mỹ, phải có đến 2/3 trong số họ đã thử hẹn hò trên mạng. Ở trang mạng
hẹn hò lớn nhất của Mỹ có tới hàng triệu lượt đăng ký mỗi ngày như trang
match.com. Với tốc độ công nghiệp hóa chóng mặt, hầu hết thanh niên Việt Nam
quá bận rộn với công việc, sự nghiệp mà không có thời gian dành cho gia đình nói
chung cũng như gia đình nói riêng, họ cũng sẽ gặp vấn đề tương tự như thanh niên
Mỹ.
Vấn đề đặt ra là với một số lượng lớn thông tin từ mỗi cá nhân như vậy, cần
phải có một hệ thống quản lý, phân tích và đối sánh thông tin sao cho ứng với mỗi
hồ sơ cá nhân sẽ tìm được ra những hồ sơ của ứng viên phù hợp nhất, mà mọi thông
tin đều dựa trên các thông số của mỗi người khi đăng ký mà không cần gặp gỡ hay
có sự can thiệp của con người tới hệ thống này. Tuy nhiên, văn hóa mỗi vùng miền
là khác nhau nên không thể sử dụng chung hệ thống hẹn hò online của các nước
khác. Bên cạnh đó, việc tìm ra các ứng viên phù hợp cũng là điều khó khăn vì
không hề có một quy chuẩn nào về sự “phù hợp”, hơn nữa phải là phù hợp về tuổi,
công việc, sở thích,… do đó, việc tìm ra một vài bộ hồ sơ có thể “khớp” với nhau
dường như là một khó khăn lớn kể cả là chọn lựa chủ quan (do con người chọn) hay
do hệ thống thực hiện.
Với những lý do trên, tôi xin đề xuất thực hiện đề tài “Xây dựng hệ tư vấn
hẹn hò trực tuyến”. Cấu trúc của luận văn sẽ đi theo thứ tự:
Ở chương 1, tôi sẽ tập trung giới thiệu về hệ thống hẹn hò trực tuyến, các đặc
trưng đối với mỗi hồ sơ. Đồng thời đề cập đến một số phương pháp dự đoán đã
được nghiên cứu trước đây.


2


Trong chương 2, tập trung mô tả các phương pháp xây dựng hệ online
dating. Phương pháp tiếp cận dựa trên nội dung (content – based approach), dựa
trên đánh giá tiêu cực và phương pháp kết hợp mà cụ thể là việc sử dụng thuật toán
RECON được lựa chọn để giải quyết bài toàn đề cập đến trong luận văn.
Việc xây dựng tập dữ liệu từ giai đoạn thu thập đến khi hình thành data
training set, data test set và cách mà các bộ dữ liệu được gửi đi như thế nào sẽ được
trình bày ở trong chương này. Bên cạnh đó việc xây dựng hệ Recommend cũng sẽ
được mô tả trong chương ba. Sau đó, kết quả thu được sẽ được đánh giá, đưa ra hiệu
suất và so sánh với mỗi phương pháp đã đề cập ở chương 1.
Phần cuối sẽ là kết luận và cung cấp các gợi ý trong tương lai.


3

Chƣơng 1 – TỔNG QUAN
Trong chương này, luận văn sẽ giới thiệu một cách tổng quan về hệ thống
Recommender Systems; hệ thống Hẹn hò trực tuyến, tại sao lại cần một hệ thống
như hệ thống hẹn hò trực tuyến; mục tiêu của đề tài; các kỹ thuật, thuật toán sẽ được
sử dụng để xây dựng hệ thống Hẹn hò trực tuyến. Các khái niệm cơ bản và phân
loại trong hệ thống Recommender Systems. Một số công trình nghiên cứu cũng như
các hệ thống hẹn hò trực tuyến đã từng được xây dựng cũng sẽ được đề cập đến
trong chương này.

1.1.

Đặt vấn đề
Trong nhiều năm qua, có rất nhiều các hệ thống được xây dựng nên từ nền

tảng của hệ thống Recommender Systems. Từ các ứng dụng rất nhỏ đến các hệ

thống rất lớn. Ví dụ, ứng dụng Facebook mà hàng tỷ người trên thế giới đang sử
dụng, đôi khi người dùng sẽ nhận được một vài lời đề nghị kết bạn mới, một vài
thông báo của các bản tin mà Facebook tin là bạn sẽ thích chúng. Đơn giản nữa là
việc sắp xếp các mặt hàng trong siêu thị, người ta sẽ đặt các đồ vật có tính liên quan
đến nhau để cho người mua dễ tìm kiếm và mua chúng cùng một đợt. Hoặc lớn hơn
nữa như các hệ thống bán hàng trực tuyến như Amazon – nơi mà hàng loạt các thuật
toán được áp dụng dự trên hệ thống Recommender Systems: tư vấn mua hàng, các
mặt hàng liên quan đến nhau, các mặt hàng có thể người dùng sẽ thích…
Mỗi người chúng ta là duy nhất! Bạn là duy nhất! Có rất nhiều người khác
bạn. Nhưng cùng một lúc, cũng có rất nhiều người giống như bạn… có những hành
vi tương tự, tương tác với cùng người, có cùng sở thích với bạn.
Cho dù bạn có thích hay không, điều này làm cho chúng ta dễ đoán và trở
nên nhàm chán… Nhưng nó cũng không hẳn là một điều xấu… Bạn đã từng trải
nghiệm những lợi ích từ collective intelligence, được nhúng vào rất nhiều ứng dụng
mà chúng ta sử dụng hàng ngày. Những ứng dụng như Facebook, Twitter hoặc
Linkedin đưa ra danh sách những người mà bạn quen biết để mở rộng Social Media


4

Network của bạn, hoặc Amazon gợi ý cho bạn danh sách các sản phẩm khác sau khi
bạn mua một sản phẩm cụ thể nào đó, hoặc Last.fm, Spotify & Co. gợi ý các bài hát
phù hợp với thị hiếu âm nhạc của mình…
Tất cả các ứng dụng này có một điểm chung đó là sử dụng kỹ thuật
recommendation để lọc ra những nội dung phù hợp nhất cho một user cụ thể. Trong
chương I này, luận văn sẽ từng bước tìm hiểu việc xây dựng một hệ thống
Recommender Systems.
Tại sao lại phải xây dựng Hệ thống Hẹn hò trực tuyến? Như đã đề cập
trong phần mở đầu của luận văn, lượng người dùng sử dụng Internet cũng như các
dịch vụ hẹn hò trực tuyến là rất lớn, nhu cầu của người dùng cũng là rất lớn và thiết

thực. Việc xây dựng được một hệ thống như vậy có ý nghĩa rất lớn trong việc giúp
đỡ người dùng tìm kiếm thông tin các ứng viên phù hợp thông qua các bộ lọc hợp lý
là rất cần thiết. Nếu không thì với việc chỉ đơn giản là đăng kí một tài khoản trên hệ
thống và tìm kiếm các ứng viên phù hợp sẽ là một con số khổng lồ, người dùng sẽ
phải giao tiếp với quá nhiều người để tìm thấy người phù hợp. Hơn nữa các hệ
thống hẹn hò trực tuyến hầu như chưa hề phổ biến ở Việt Nam, các trang dịch vụ
lớn như Netflix, YouTube, Facebook, Spotify hoạt động mạnh mẽ nhưng còn giấu
kín các thuật toán và kỹ thuật mà họ sử dụng. Mục tiêu của đề tài là chỉ ra được quá
trình xây dựng nên được một Hệ thống Hẹn hò có sử dụng Recommender Systems
hỗ trợ việc tìm kiếm các ứng viên phù hợp cho người dùng.
Các khó khăn gặp phải đối với hệ thống Hẹn hò có sử dụng Recommender
Systems. Phần lớn các khó khăn gặp phải xuất phát từ việc xử lý các tập dữ liệu thử
nghiệm lớn và đáp ứng được sự mong đợi của người dùng về một hệ thống thông
minh trong tìm kiếm các ứng viên phù hợp:
Phải xây dựng được một hệ thống bao gồm các chức năng cơ bản của dịch vụ
hẹn hò và gắn thêm phần hỗ trợ người dùng tìm kiếm qua các bộ lọc (các bộ lọc này
được xây dựng dựa trên sử dụng các thuật toán Recommender Systems).


5

Sử dụng các tập dữ liệu lớn để thống kê tính chính xác của các thuận toán (sử
dụng bộ dữ liệu libimseti từ website hẹn hò online có uy tín của Czech
với khoảng 220 nghìn hồ sơ và hơn 17 triệu lượt đánh giá).
Mục tiêu đề tài, phương pháp được sử dụng và đóng góp của đề tài. Trong
khuôn khổ của đề tài, luận văn sẽ trình bày cụ thể về việc xây dựng hệ thống Hẹn
hò, phương pháp tiếp cận dựa trên nội dung (content - based approach), dựa trên
đánh giá tiêu cực và phương pháp kết hợp mà cụ thể là sử dụng thuật toán RECON
được lựa chọn để giải quyết bài toán.
Đóng góp của đề tài là xây dựng được một hệ thống Hẹn hò thử nghiệm, áp

dụng các thuật toán, kỹ thuật của phương pháp tiếp cận dựa trên nội dung (content based approach). Từ việc xây dựng nên một hệ thống như thế, luận văn sẽ kiểm
nghiệm các kết quả thực nghiệm từ bộ dữ liệu thực tế như đã nói ở trên, để đánh giá
mức độ hiệu quả của thuật toán cũng như phương hướng phát triển tiếp theo của đề
tài.

1.2.

Tổng quan về hệ thống Recommender Systems
Recommender Systems (R.C) là công cụ, thuật toán, phần mềm cung cấp cho

người dùng những gợi ý, lời khuyên về những items (vật) có thể hữu dụng hoặc đáp
ứng sở thích của họ. Tùy thuộc vào từng loại ứng dụng, items có thể là sách, đĩa
CD, dịch vụ chiếu phim, thậm chí hướng dẫn sử dụng thuốc. R.C được thiết kế để
giúp người dùng đưa ra quyết định, có hay không nên mua một cuốn sách, chọn một
bộ phim để xem, thuê một chiếc ô tô, đặt vé cho một kì nghỉ, hoặc kê toa thuốc nào
cho bệnh nhân.
Một trong những lý do chính để sử dụng RC là khắc phục việc quá tải thông
tin (Information Overload), liên quan đến việc đưa ra quyết định khi có quá nhiều
sự lựa chọn hoặc có quá nhiều thông tin. RC cũng chứng tỏ giá trị khi giúp người
dùng thiếu kinh nghiệm tìm kiếm những items hữu dụng.


6

RC cũng đem lại nhiều giá trị cho nhà cung cấp dịch vụ. RC giúp bán được
nhiều hàng hơn, đa dạng hóa lượng hàng bán ra, củng cố sự trung thành của người
dùng với nhà cung cấp, giúp nhận biết sở thích khách hàng.
Những lời gợi ý, giới thiệu (recommendations) thường được cá nhân hóa tới
từng người dùng. Sự xuất hiện của thương mại điện tử, cho phép giới thiệu danh
mục hàng trăm, hàng ngàn triệu items (ví dụ Amazon.com). Vì người dùng không

có thời gian hay sự thành thạo để xem tất cả danh mục, nên rõ ràng cần cá nhân hóa
để giúp người dùng chọn được mặt hàng phù hợp.
Để có thể đưa ra những lời giới thiệu phù hợp với từng cá nhân, RC cần hiểu
sở thích của khách hàng. Những sở thích này được thu thập một cách trực tiếpexplicity thông qua đánh giá, nhận xét của khách hàng, hoặc qua cách gián tiếpimplicity thông qua việc tìm hiểu hoạt động của khách hàng, chẳng hạn như việc họ
click vào sản phẩm nào trên trang bán hàng. Càng nhiều dữ liệu phản hồi của người
dùng được tích lũy, độ chính xác của cá nhân hóa-personalization càng tăng.
Có 6 thuật toán giới thiệu để tính gần đúng độ hữu ích của items. Ba trong số
đó phù hợp với chủ đề của luận văn này: gợi ý dựa trên nội dung content-based
recommendations, bộ lọc cộng tác - collaborative filtering và gợi ý hỗn hợp - hybrid
recommenders.
1.2.1. Phân loại Recommender systems
Như đã đề cập ở trên sẽ có ba phương pháp tiếp cận của hệ Recommender
systems:
-

Content based recommender systems

-

Collaborative filtering recommender systems

-

Hybrid recommender systems

Mỗi phương pháp tiếp cận đều có những ưu nhược điểm của riêng chúng,
dẫn đến chúng sẽ phù hợp với các điều kiện dữ liệu cụ thể nào, từ việc đánh giá


7


được những ưu nhược điểm nói trên sẽ rất dễ dàng cho việc lựa chọn chúng cho phù
hợp với mục đích công việc nói chung cũng như mong muốn của đề tài.
Đề cập đến bài toán sau để dễ dàng hiểu được nội dung của ba phương pháp
đã nếu trên: Có 2 hướng tiếp cận cơ bản để xây dựng Recommender systems. Giả sử
bạn muốn gợi ý danh sách các sản phẩm liên quan khi khách hàng thanh toán sản
phẩm X.
a. Content based recommender systems
Hiểu một cách đơn giản về nội dung của phương pháp này nghĩa là có thể
tìm ra những điểm hấp dẫn trong sản phẩm X để gợi ý danh sách các sản phẩm có
cùng đặc điểm hấp dẫn này.

Hình 1.1. Minh họa cho CBR

Content based recommendations (CBR) khai thác items mà người dùng đã
thích để giới thiệu items tương tự. Mức độ tương tự của items dựa trên kết quả so


8

sánh đặc điểm liên kết cấu trúc, ví dụ véc tơ từ khóa. Một mô hình người dùng người dùng model là sự tổng hợp những nhiều đặc tính của items mà người dùng
thấy thích, và mức độ phù hợp của một item mới sẽ là kết quả sự tính toán những
điểm tương đồng với người dùng model.
b. Collaborative filtering recommender systems
Hiểu như theo bài toán ví dụ đơn giản ở trên thì nội dung của phương pháp
này như sau: sẽ lọc ra tất cả user đã mua sản phẩm X, và đưa ra danh sách các sản
phẩm cũng được mua bởi những user này. Trong danh sách này, ta chọn ra các sản
phẩm có tần suất lặp lại nhiều nhất.

Hình 1.2. Minh họa cho CFR


Collaborative filtering recommender (CFR) dựa trên nguyên tắc: mọi người
thường dựa vào ý kiến của người khác để đưa ra quyết định. Collaborative filtering
đưa ra gợi ý về những items mà những người có cùng sở thích lựa chọn - neighbors.
Sự giống nhau trong sở thích dựa trên lịch sử đánh giá, xếp hạng. Giả thiết được
đưa ra là những người dùng từng cùng thích một item, thì trong tương lai họ sẽ tiếp
tục cùng thích hoặc không thích những sản phẩm khác.


9

Ví dụ, tôi rất thích bộ phim “The Mission” và đã cho điểm rating rất cao…
Hệ thống đầu tiên mô hình hóa bộ phim này như sau:
{
Actors: [
"Robert De Niro",
"Jeremy Irons"
],
Director: "Roland Joffé",
Topics: [
th

"18 century",
"Spanish colonization",
"Christian Evangelization"
]
}

Dựa trên thông tin này, những bộ phim do các diễn viên Robert De Niro,
Jeremy Irons thủ vai hay do đạo diễn Roland Joffé thực hiện sẽ được gợi ý cho tôi.

Hệ thống thứ hai như hệ thống imdb đang triển khai sẽ duyệt CSDL những
user cũng rating cao cho bộ phim “The Mission” và lọc ra những bộ phim khác
cũng được đánh giá bởi những user này.
c. Hybrid recommender systems
Nói một cách đơn giản về nội dung của phương pháp Hybrid recommender
systems thì nó là một dạng pha trộn cả hai phương pháp đã trình bày ở trên nhằm
tăng tính hiệu quả và giảm thiểu các nhược điểm của hai phương pháp trên.

1.2.2. Phân tích ưu nhược điểm
Lợi thế của CBR so với CF có những điều sau: Thứ nhất, lời giới thiệu chỉ
dựa trên phản hồi từ e.e, mà không cần phản hồi từ những người dùng tương tự.
Thứ hai là dễ dàng giải thích cho người dùng hiểu cách những hoạt động, tương tác
trong quá khứ của họ dẫn đến những gợi ý ở hiện tại thông qua việc so sánh những
đặc tính của mô hình người dùng với những item đã được dùng để gợi ý trước đó.
Với CF, việc giải thích mối liên kết khó hơn vì liên quan đến người dùng tương tự.


10

Thứ ba là CBR không chịu ảnh hưởng từ những item mới (CF bị ảnh hưởng), theo
đó thì một item mới sẽ không được giới thiệu vì chưa có phản hồi nào.
Một trong những bất lợi của CBR là cần sự biểu thị có cấu trúc của items.
Cách biểu thị, trình bày một sản phẩm thường bị giới hạn, đôi khi không đủ thông
tin để phân biệt sản phẩm hữu dụng với sản phẩm không hữu dụng. Ví dụ 1 véc tơ
từ khóa đơn giản không thể làm mẫu cho sự tương quan giữa các từ ngữ với nhau.
Mặt khác, biểu thị quá phức tạp sẽ cần lượng thông tin cực lớn để hệ thống hoạt
động chính xác. Một vấn đề nữa là liệu có thể thu thập đủ thông tin về sản phẩm với
thời gian và nguồn tài nguyên được định sẵn? CF không yêu cầu bất kỳ thông tin
nào liên quan đến sản phẩm.
Một bất lợi khác của CBR là tính chuyên biệt hóa – overspecialization. Vì

CBR đưa ra gợi ý dựa trên những items mà người dùng thích, do đó nó có xu hướng
không gợi ý những sản phẩm khác loại có thể người dùng thích nhưng không được
dự tính trước trừ khi khả năng cân nhắc lựa chọn của nó được tính đến trong quá
trình phát triển. CF có thể gợi ý những sản phẩm không đc dự tính trước, cung cấp
những lựa chọn đa dạng từ những người dùng tương tự.
Một yếu tố tác động đến CBR lẫn CF là vấn đề về người dùng mới (coldstart problem), khi người dùng mới không được cung cấp những gợi ý chính xác vì
hệ thống chưa có thông tin về họ. Nếu người dùng mới được yêu cầu đánh giá trực
tiếp vài items hoặc định hình mô hình người dùng cho họ thì vấn đề sẽ phần nào
được giải quyết.
Gợi ý hỗn hợp HR kết hợp nhiều phương pháp đưa ra gợi ý với hi vọng dựa
trên những khía cạnh của phương pháp này để giải quyết những khuyết điểm của
những phương pháp khác. Trong phạm vi luận điểm của luận án này, mục tiêu chính
là kết hợp CF với CBR để giảm bớt tác động từ 2 vấn đề cold-start và new-item.
Trước khi chuyển sang chương kế tiếp, đáng lưu ý là mặc dù trong luận án
này RC được xem xét dưới góc độ thuật toán, RC là một nhánh trong sự giao thoa
giữa học máy – machine learning, khôi phục dữ liệu - information retrieval và tương
tác giữa người-máy – human-computer interaction. Cụ thể hơn, tầm quan trọng của


11

trải nghiệm tốt và thiết kế giao diện để dành được sự tin tưởng và tín nhiệm của
người dùng đối với những gợi ý được đưa ra không nên bị xem nhẹ.

1.2.3. Những tác vụ Recommender system cần giải quyết
Từ góc nhìn của một user cụ thể - tạm thời gọi là active user, recommender
system phải giải quyết 2 tác vụ sau:
- Dự đoán điểm rating cho một item mà user chưa đánh giá.
- Gợi ý danh sách top N item
Không phải toàn bộ các item trong hệ thống đều đã được user nào đó tiếp

cận, như vậy trong hệ thống dữ liệu sẽ tồn tại một khoảng mù thiếu thông tin để
đánh giá trọn vẹn bộ dữ liệu. Điều này vô tình khiến cho việc phân tích dữ liệu bị
thiếu thông tin và có thể dẫn đến các quyết định hoặc kết quả bị sai. Các hệ thống
gợi ý phải lưu ý điều này và có các bạn pháp xử lý trên tập dữ liệu. Một vấn đề nữa
chính là việc chọn ra top các item được gợi ý, số N được chọn có thể tùy thuộc vào
độ lớn của tập dữ liệu hoặc các tiêu chí đối với từng bài toán cụ thể.

1.2.4. Đánh giá mô hình trong hệ thống Recommender System
Cần phải hiểu được Recommender System hoạt động như thế nào khi thực
hiện các tác vụ trên là điều quan trọng khi ứng dụng nó vào môi trường thực tế.
| |



∑(

(

|

)
)

(

|
)

Hiệu suất của tác vụ dự đoán được đo bằng độ sai biệt giữa giá trị dự đoán so
với giá trị thực tế. Hai độ đo thường được dùng là Mean Average Error (MAE) và

Root Mean Square Error (RMAE).


12

Trong công thức trên, K thể hiện tập dữ liệu gồm tất cả các cặp dữ liệu user item (i, j), giá trị dự đoán (predicted rating)

và giá trị thực tế

(known rating).

Ý tưởng cơ bản của độ đo này là tính độ sai biệt giữa điểm rating dự đoán so với
điểm rating thực tế của các user so với các item.

1.3.

Các bƣớc cơ bản trong quá trình xây dựng Recommender System
Một trong những ứng dụng nổi bật của Recommender System là tối ưu hóa

tỷ lệ chuyển đổi (conversion rate optimization): khách hàng tìm thấy sản phẩm có
liên quan nhanh hơn, từ đó các mặt hàng mua kèm (cross-selling) nhiều hơn, hình
ảnh thương hiệu được cải thiện, tích cực tác động đến lòng trung thành của khách
hàng. Đó là lý do tại sao chúng ta tập trung vào use case này.
Ta sẽ không xây dựng mọi thứ từ đầu mà sẽ dùng một vài gói phần mềm
được cài đặt sẵn collaborative filtering engines của R như recommenderlab. Trong
ví dụ dưới đây ta sẽ thể hiện một quá trình xây dựng sử dụng Collaborative Model.

1.3.1. Thu thập dữ liệu
Đôi khi việc phát hiện ra mối quan hệ giữa user và item không phải là việc
dễ dàng như CSDL đã có điểm rating. Tuy nhiên, có vô số các chỉ số ta có thể sử

dụng để mô hình hóa mối quan hệ này.
Chỉ số dữ liệu click chuột (clickstream data). Bạn có thể đo lường các thông
số như trang web được truy cập, các item được clicked, trang web so sánh các item,
những item có trong quá trình thanh toán… Thậm chí bạn còn có thể kết hợp nó với
các chỉ số on-page như thời gian trung bình trên một trang (plugin riveted time
spent cho Google Analytics) hoặc quá trình di chuyển chuột (ClickTale,
Mouseflow).
Kết quả là, bạn có rất nhiều session với rất nhiều event cho một user đối với
một item. Một cách tiếp cận đó là tính mối User-Item Affinity trên mỗi session.


13

(

)

( )



Tổng hợp tất cả các user tương tác với item.
(

)

∑ (

)


1.3.2. Chuẩn hóa dữ liệu
Quá trình này nhằm mục đích đưa bộ dữ liệu thô, chưa được xử lý trở thành
bộ dữ liệu có thể khai thác, là đầu vào cho các hệ thống ở phía sau, tùy vào mục
đích sử dụng ở phía sau mà tiến hành chuẩn hóa. Thông thường và phổ biến nhất dữ
liệu được biểu diễn ở dạng ma trận tuyến tính.

1.3.3. Collaborative Model (đối tượng chứa dữ liệu)
Ta sẽ tạo một mô hình được gọi là UBCF– U(ser) B(ased) C(ollaborative)
F(iltering) với tập dữ liệu là 5000 user. Ngoài ra, chúng ta có thể sử dụng phương
pháp tiêu tốn ít bộ nhớ hơn mà không cần tải toàn bộ dữ liệu user vào bộ nhớ gọi là
IBCF – I(ser) B(ased) C(ollaborative) F(iltering), đơn giản thay đổi tham số trong
mã lệnh dưới đây:
# Creation of the model - U (ser) B (ased) C (ollaborative) F (iltering)
Rec.model
Mô hình này sử dụng cosine similarity để tính độ tương tự giữa các user:
Crossprod (a, b)/sqrt (crossprod (a)*crossprod (b))

Có nhiều cách khác để tính độ tương tự giữa các user như chỉ số của Jaccard
hay Pearson.
Rec.model=Recommender (affinity.data [1:400], method="UBCF", param=list
(normalize = "Z-score", method="Cosine", nn=5, minRating=1))


14

1.3.4. Chạy mô hình lọc ra top N item.
Bây giờ chúng ta có thể chạy thử mô hình của mình. Ví dụ, ta muốn lấy ra
top các item gợi ý cho user “u15348”.
# recommended top 5 items for user u15348

recommended.items.u15348 # to display them
As (recommended.items.u15348, list)
# To obtain the top 3
recommended.items.u15348.top3 # to display them
As (recommended.items.u15348.top3, list)

Cũng với user “u15348”, ta quan sát kết quả dự đoán giá trị affinity trên từng
item:
# predict list of product which can be recommended to given users
# to predict affinity to all non-rated items
predicted.affinity.u15348 # to see the user u15348's predicted affinity for items
we didn't have any value for
As (predicted.affinity.u15348, list)
# .. And the real affinity for the items obtained from the affinity.matrix
As (affinity.matrix [u15348,], list)

1.3.5. Đánh giá mô hình
Để đánh giá Rec.model chúng ta cần có dữ liệu test. Hiện tại ta chỉ có
affinity.data, vì vậy ta cần phân chia thành dữ liệu train và test. Kỹ thuật này được
gọi là “split”.
Có những kỹ thuật đánh giá khác nhìn từ góc độ information retrieval.
Những kỹ thuật này liên quan đến việc tạo ra confusion matrix để tính precision và
recall metrics.
Kết luận, Khi triển khai mô hình ta cần lưu ý thêm các điểm sau:


15

- Bạn cần đặt mô hình này tại vị trí hợp lý để hiển thị các gợi ý trên hệ thống
của mình.

- Cần bổ sung thêm một số luật để chọn ra được top N item phù hợp hơn với
từng user.
- Không cho hiển thị những sản phẩm đã được mua trong danh sách gợi ý.
- Cần một kế hoạch cập nhật lại mô hình thông qua tập dữ liệu mới sinh ra
hàng ngày.
- Nếu tập dữ liệu quá lớn lên đến vài trăm GB, ta có thể chuyển qua sử dụng
Mahout, đây là công cụ hữu ích để triển khai các tính toán trên Big Data, Mahout
cũng cài đặt sẵn những hàm liên quan đến collaborative filtering algorithms

1.4.

Một số công cụ hỗ trợ quá trình nghiên cứu và thử nghiệm hệ
thống Recommender System
Tiến trình lọc nội dung bằng cách sử dụng kĩ thuật liên quan đến sự cộng tác

của user. Các ứng dụng của Recommender System thường liên quan đến các tập dữ
liệu lớn. Trong phần này, luận văn sẽ giới thiệu một số công cụ sử dụng ngôn ngữ
Python, Java và R.

1.4.1. Python
a. Crab documentation
Crab engine hướng đến việc cung cấp một tập đa dạng các component để ta
có thể xây dựng và tinh chỉnh recommender system từ các thuật toán có sẵn.
Tutorial này lấy từ trang chính thức của Crab engine.
b. Implementation with Python
Tutorial này trình bày cách cài đặt thuật toán collaborative filtering để lọc
thông tin cho một user cụ thể dựa trên tập hợp thông tin profile từ nhiều user khác.



×