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

Xây dựng hệ tư vấn hẹn hò trực tuyến ((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 (731.44 KB, 29 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

Chuyên ngành

: Khoa học máy tính

Mã số

: 60.48.01.01

TÓM TẮT LUẬN VĂN THẠC SĨ

HÀ NỘI – 2017


Luận văn đƣợc hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG

Ngƣời hƣớng dẫn khoa học: TS. Nguyễn Duy Phƣơng

Phản biện 1: .....……………………………………………………………
.....…………………………………………………………… …………....
.....…………………………………………………………… …………....
Phản biện 2: .…..…………………………………………………………..
.....…………………………………………………………… …………....
.....…………………………………………………………… …………....



Luận văn sẽ đƣợc bảo vệ trƣớc Hội đồng chấm luận văn thạc sĩ tại Học
viện Công nghệ Bƣu chính Viễn thông
Vào lúc: ............ giờ ......... ngày ............ tháng ............. năm...................

Có thể tìm hiểu luận văn tại:
- Thƣ viện của Học viện Công nghệ Bƣu chính Viễn thông


1

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

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

1.2.

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

1.2.1.

Phân loại Recommended Systems ..........................................................6

1.2.2.

Phân tích ƣu nhƣợc điểm ........................................................................7


1.2.3. Những tác vụ Recommender system cần giải quyết ..................................8
1.2.4. Đánh giá mô hình trong hệ thống Recommender System .........................9
1.3.

Các bƣớc cơ bản trong quá trình xây dựng Recommender Systems ...........9

1.3.1. Thu thập dữ liệu .........................................................................................9
1.3.2. Chuẩn hóa dữ liệu ......................................................................................9
1.3.3. Collaborative Model (đối tƣợng chứa dữ liệu) ..........................................9
1.3.4. Chạy mô hình lọc ra top N item. ..............................................................10
1.3.5. Đánh giá mô hình .....................................................................................10
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 ...........................................................................................11
1.4.1. Python ......................................................................................................11
1.4.2. Java ..........................................................................................................11
1.4.3. Thƣ viện hệ thống R ................................................................................11
1.5. Bài toán xây dựng hệ thống Hẹn hò trực tuyến ..............................................11
1.5.1. Hẹn hò trực tuyến.....................................................................................12
1.5.2. Các lĩnh vực hai chiều .............................................................................13
Chƣơng 2 - CÁC PHƢƠNG PHÁP GỢI Ý CHO HỆ THỐNG HẸN HÒ TRỰC
TUYẾN ..................................................................................................................... 14
2.1. Hệ thống gợi ý qua lại ....................................................................................14
2.2.

Các phƣơng pháp tiếp cận ..........................................................................14

2.3.

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



2

2.3.1.

Phƣơng pháp tiếp cận dựa vào nội dung ...............................................15

2.3.2.

Phƣơng pháp tiếp cận dựa vào đánh giá tiêu cực .................................15

2.3.3.

Phƣơng pháp kết hợp ............................................................................15

2.3.4.

Phƣơng pháp đa nhóm tƣơng thích (Multiple compatible subgroups) .16

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

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

3.1.1.

Mô tả dữ liệu mẫu .................................................................................17

3.1.2.


Mô tả migrate dữ liệu............................................................................18

3.1.3. Chuẩn hóa dữ liệu ....................................................................................19
3.1.4. Chia bộ dữ liệu huấn luyện và kiểm thử ..................................................19
3.2.

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

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

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

3.3.1. Xây dựng CSDL ......................................................................................21
3.3.2. Kiến trúc ứng dụng ..................................................................................21
3.3.3. Ứng dụng .................................................................................................22
3.4. Kết quả thực nghiệm ......................................................................................22
KẾT LUẬN ............................................................................................................... 23
DANH MỤC TÀI LIỆU THAM KHẢO .................................................................. 26


3

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.


4

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.


5

Chƣơng 1 – TỔNG QUAN
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.
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.
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 sử 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).
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íncủ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.


6

Đó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.

1.2.1. Phân loại Recommended 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: 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
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.


7

Collaborative filtering recommender systems: 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.
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ự.
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.


8

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


9

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

1.3.


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

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.
Một cách tiếp cận đó là tính mối User-Item Affinity trên mỗi session.
(

)



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)
Mô hình này sử dụng cosine similarity để tính độ tƣơng tự giữa các user:


10

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

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


11

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.

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
1.4.1. Python
-

Crab documentation

-

Implementation with Python

-


Collaborative filtering made easy

1.4.2. Java
-

MLlib – Collaborative Filtering

-

LibRec

1.4.3. Thư viện hệ thống R
-

Testing recommender systems in R

-

Collaborative Filtering with R

-

Recommenderlab

1.5. Bài toán xây dựng hệ thống Hẹn hò trực tuyến
Ở phần này, chúng ta đi sâu vào hẹn hò online nhƣ một ví dụ của lĩnh vực
hai chiều. Ta bắt đầu bằng việc miêu tả lợi ích đặc thù của dịch vụ hẹn hò online và
nhận biết những đặc tính riêng biệt cần đƣợc cân nhắc khi phát triển hệ thống đƣa ra
gợi ý ở lĩnh vực này. Một trong những đặc tính quan trọng nhất là Sự tƣơng tác hai
chiều - Reciprocity. Phần này đƣợc kết thúc bằng bản giới thiệu vắn tắt đến những

lĩnh vực khác có biểu thị sự tƣơng tác hai chiều.


12

1.5.1. Hẹn hò trực tuyến
Một tƣơng tác điển hình trên web hẹn hò online diễn ra nhƣ sau:
User A đăng ký tài khoản và nhập đầy đủ thông tin (tên, tuổi, giới tính, chiều
cao, cân nặng, sở thích…) vào profile.
A tìm kiếm, xem các profile mà A có hứng thú; và gửi tin nhắn cho ngƣời
dùng B mà A thích.
User B, nếu hoạt động thì sẽ xem tin nhắn và profile của A rồi quyết định
việc phản hồi nhƣ thế nào.
Nếu có thiện cảm với nhau, cuộc đối thoại giữa hai bên sẽ đƣợc tiếp tục.
Đến lúc nào đó A và B có thể gặp mặt trực tiếp, sau đó hai bên có thể bắt đầu
mối quan hệ.
Đây chỉ là 1 ví dụ về trƣờng hợp sử dụng dịch vụ trong hẹn hò trực tuyến.
Vài ngƣời dùng nhận đƣợc lời mời thay vì chủ động tìm kiếm những ngƣời dùng
khác, và vài ngƣời dùng lại chỉ thích xem những profile khác mà không gửi tin
nhắn.
Một thử thách hẹn hò trực tuyến cần vƣợt qua là sự bùng nổ số lƣợng ngƣời
dùng mới (cold-start users).
Một khía cạnh đặc biệt khác của hẹn hò trực tuyến là mức giới hạn số lƣợng
items – limitedness of the items (những ngƣời dùng khác). 1 ngƣời dùng chỉ có thể
giữ mối quan hệ nghiêm túc với 1 số ít ngƣời dùng khác tại 1 thời điểm. Nếu 1
ngƣời dùng nhận quá nhiều lời mời, anh/chị ta có thể ngừng trả lời hoặc trả lời theo
hƣớng tiêu cực.
Khía cạnh cuối cùng là tính linh hoạt trong vai trò của ngƣời dùng – duality
of roles. Với RC truyền thống, những ngƣời dùng thƣờng đóng vai trò chủ động,
chủ động tƣơng tác với hệ thống để tìm items phù hợp. Với hẹn hò trực tuyến, 1

ngƣời dùng có thể đóng vai trò chủ độnghoặc bị động. Ngƣời dùng chủ động gửi lời


13

kết bạn/lời mời. Ngƣời dùng bị động chờ ngƣời khác liên hệ với mình. Hiểu 1 cách
rập khuôn thì nam là chủ động còn nữ là bị động, nhƣng recommender cần cân nhắc
vai trò của ngƣời dùng có thể thay đổi theo thời gian.
Khi thiết kế hệ thống gợi ý cho lĩnh vực hẹn hò trực tuyến, điều quan trọng là
không đƣợc bỏ qua những phản ứng và những ngƣời dùng không đƣợc ƣa chuộng
khi đƣa ra lời gợi ý. Nếu không thì họ sẽ không đƣợc tìm kiếm/kết bạn, dẫn đến bất
mãn.

1.5.2. Các lĩnh vực hai chiều
Có những lĩnh vực khác mà sự tƣơng tác qua lại giữ vai trò quan trọng mặc
dù nó thƣờng biểu lộ những lựa chọn bổ sung, và cần đƣợc cân nhắc khi phát triển
hoặc lựa chọn ngƣời cung cấp gợi ý thích hợp. Những ngƣời cung cấp gợi ý có tính
hai chiều thích hợp cần có 2 đặc tính:
-

Items đƣợc gợi ý là ngƣời

-

Cả 2 bên chịu tác động của lời gợi ý phải thích bên kia

Đặc tính thứ 3 không bắt buộc phải có, nhƣng thƣờng xuất hiện khi sự tƣơng
tác hai chiều đƣợc sử dụng phối hợp với RC hay sử dụng để liên kết với RC, đó là
mối quan hệ không tƣơng xứng giữa 2 nhóm ngƣời dùng.



14

Chƣơng 2 - CÁC PHƢƠNG PHÁP GỢI Ý CHO HỆ THỐNG
HẸN HÒ TRỰC TUYẾN
2.1. Hệ thống gợi ý qua lại
Trong lĩnh vực hai chiều nhƣ hẹn hò online, items đƣợc gợi ý là những
những ngƣời dùng khác với những sở thích riêng biệt của họ, một hệ thống gợi ý
tƣơng hỗ là ngƣời cung cấp gợi ý tận dụng đƣợc sở thích của ngƣời nhận sự gợi ý
lẫn ứng viên khi đƣa ra lời khuyên. Điều khoản khác dùng để đề cập đến loại
recommender này là people-to-people (ngƣời giới thiệu ngƣời), cụ thể với hẹn hò
trực tuyến là thuật toán ghép cặp - matchmaking algorithms. Loại đầu tiên thƣờng
đƣợc sử dụng để đề cấp đến những recommender đƣợc tìm thấy trong nghiên cứu
mạng xã hội truyền thống, ví dụ nhƣ mục gợi ý kết bạn trên Facebook.

2.2.

Các phƣơng pháp tiếp cận
Một trong những nghiên cứu đƣợc công bố đầu tiên về việc áp dụng

Recommender System trong lĩnh vực hẹn hò trực tuyến là bởi Brozovsky vào năm
2007. Họ đã báo cáo về việc áp dụng mô hình bộ lọc kết hợp user-user và item-item
trên bộ dữ liệu chấm điểm (rating data-set), ở đó ngƣời dùng đánh giá sự hấp dẫn
của ngƣời khác thông qua việc chấm điểm trên thang từ 1 đến 10. Họ không đánh
giá 2 chiều, tuy nhiên nó đƣợc sử dụng nhƣ những tiêu chí cho nghiên cứu trong
tƣơng lai.
Một nhóm khác lại tiếp cận vấn đề recommendation trong hẹn hò trực tuyến
từ góc độ tìm kiếm thông tin, đề xuất một chức năng xếp hạng đối ứng toàn cầu
(học cách xếp hạng).
Có nhiều hệ cung cấp gợi ý lai (RC-hybrid) và hệ cung cấp gợi ý đẩy mạnh

nội dung (RC-content-booster) đƣợc sử dụng để tập trung vào ngƣời dùng mới
(cold-start users). Sau đó 2 phƣơng pháp đƣợc kết luận là hiệu quả so với số còn lại
là phƣơng pháp hỗn hợp (CCR – Content-collaborative Reciprocal) và phƣơng pháp
Phân nhóm tƣơng thích.


15

2.3.

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

2.3.1. Phương pháp tiếp cận dựa vào nội dung
RECON là một thuật toán dựa trên nội dung đối ứng mà sử dụng hànhvi
nhắn tin và thuộc tính cá nhân để tính toán các khuyến nghị. Ý tƣởng chính ở đây là
với mỗi ngƣời dùng, ta xây dựng một bộ phân phối cho mỗi thuộc tính cá nhân
nhằm mô hình hóa sở thích của ngƣời dùng x. Các bản phân phối đƣợc tính toán
vàtổng hợp dựa trên profile của những ngƣời dùng đã đƣợc x tƣơng tác tích cực
trƣớc đó, và dựa trên hành vi gửi tin nhắn của x. Việc có đƣợc bảng phân bố sở
thích của ngƣời dùng giúp chúng ta dễ dàng tính toán các khả năng tƣơng thích giữa
các ngƣời dùng. Điểm số thể hiện cho mức độ tƣơng thích sau đó đƣợc sử dụng cho
việc gợi ý ngƣời dùng.

2.3.2. Phương pháp tiếp cận dựa vào đánh giá tiêu cực
Ở phần này, ta sẽ bổ sung cho phƣơng pháp RECON ở phần trƣớc bằng cách
xét đến tập những ngƣời dùng nhận đƣợc phản hồi tiêu cực. Ví dụ, nếu ngƣời dùng
không thích việc hút thuốc thì điều này phản ánh sở thích của ứng viên này hoặc là
đánh giá tiêu cực, do đó, làm giảm điểm tƣơng thích với các ứng viên có sở thích
hút thuốc lá.
Phƣơng pháp thực hiện sẽ có 2 bƣớc chính:

1. Áp dụng phƣơng pháp RECON cho sở ghét để tính điểm không tƣơng
thích giữa 2 ngƣời dùng.
2. Tổng hợp 2 giá trị tƣơng thích và giá trị không tƣơng thích để đƣa ra kết
quả cuối cùng.

2.3.3. Phương pháp kết hợp
Content-Collaborative Reciprocal (CCR) là phƣơng pháp hỗn hợp kết hợp
giữa phƣơng pháp Tiếp cận theo nội dung (Content-based approach - RECON) và
phƣơng pháp Lọc kết hợp (Collaborative filtering) để giải quyết vấn đề liên quan


16

đến ngƣời dùng mới (cold-start users) – chiếm phần lớn trên các trang web hẹn hò
hiện nay.
Phƣơng pháp đƣợc thực hiện với 3 bƣớc chính:
1. Đƣa ra ngƣời dùng x, tìm ra tập những ngƣời dùng tƣơng tự hoặc gần
giống: Sx dựa trên thông tin cá nhân của x.
2. Với mỗi ngƣời dùng s trong Sx, tìm ra những ngƣời dùng mà đã có tƣơng
tác tích cực hai chiều với họ (ví dụ danh sách M+x,* ∪M+*,x) và đƣa vào danh sách
ứng viên Cx.
3. Xếp hạng các ứng viên trong Cx bằng cách tính mức độ tƣơng tác tích cực
và tiêu cực của họ với ngƣời dùng trong Sx.
Phƣơng pháp tiếp cận theo nội dung trong phƣơng pháp lai này đƣợc sử dụng
ở bƣớc 1, bƣớc này để tìm nhóm ngƣời dùng tƣơng tự. Bƣớc 1 liên quan đến so
sánh hồ sơ cá nhân của ngƣời giố thiệu với ngƣời dùng khác. Trong khi ở bƣớc 2 và
3 dựa trên phƣơng pháp lọc cộng tác: ta tìm ra những ứng viên dựa trên tƣơng tác
của thành viên trong nhóm sau đó xếp hạng họ theo hành vi chung của nhóm. Về
mặt mô hình, CCR khá đơn giản, tuy nhiên nó sẽ phức tạp hơn khi đi vào chi tiết.


2.3.4. Phương pháp đa nhóm tương thích (Multiple compatible subgroups)
Đa nhóm tƣơng thích dựa trên ý tƣởng của việc sử dụng các thuộc tính trong
hồ sơ cá nhân để phân ngƣời dùng vào các nhóm nhỏ. Ví dụ, ta có thể phân ngƣời
dùng về 2 nhóm nam giới và nữ giới, sau đó xem xét sự tƣơng tác đối ứng của thành
viên mỗi nhóm đối với nhóm còn lại. Quan hệ nhóm này sau đó đƣợc mã hóa thành
các quy tắc và gắn với ngƣời dùng để sử dụng cho những gợi ý sau này.
Phƣơng pháp này cũng dựa trên một học thuyết rằng những ngƣời tƣơng tự
nhau thì cũng có sở thích tƣơng đồng. Chẳng hạn nhƣ những ngƣời có đặc điểm
tƣơng đồng, hay đƣợc phân vào cùng nhóm con thì có đặc điểm sở thích giống
nhau.


17

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

Mô hình dữ liệu

3.1.1. Mô tả dữ liệu mẫu
Bộ dữ liệu mẫu ban đầu bao gồm hai file. File thứ nhất (gender.dat) ghi lại
thông tin của toàn bộ ngƣời trong bộ dữ liệu, mỗi một ngƣời chỉ đơn giản ghi lại
thông tin giới tính của ngƣời ấy (kí hiệu M nếu là nam, F nếu là nữ và U là không
xác định giới tính)
1, F
2, F
3, U
4, F
5, F


File số hai của bộ dữ liệu (ratings.dat) ghi lại thông tin trên nhiều dòng với
cấu trúc nhƣ sau: tất cả các dòng bắt đầu với chữ số 1 là thể hiện mối quan hệ ngƣời
số 1 trong file gender.rat quen biết với một ngƣời nào đó trong tập tất cả những
ngƣời còn lại đồng thời trên dòng đó có thêm điểm rating của ngƣời số 1 đối với
ngƣời đó. Tƣơng tự tất cả các dòng bắt đầu bằng số 2 thể hiện mối quan hệ quen
biết và mức độ rating của ngƣời số 2 với tất cả những ngƣời còn lại trong tập dữ
liệu ngƣời của file gender.dat… Tƣơng tự nhƣ vậy đến ngƣời số n của tập dữ liệu
ngƣời.


18

3.1.2. Mô tả migrate dữ liệu
Bộ dữ liệu mẫu ban đầu đối với tập dữ liệu ngƣời trong file gender.dat hơi
thiếu thông tin về ngƣời (chỉ bao gồm thông tin giới tính) vì vậy ta có thể bổ sung
thêm một số thông tin khác nhƣ chiều cao, cân nặng, độ tuổi,…. vào trong file
thông tin nói trên để làm giàu bộ dữ liệu. Cụ thể các thông tin bổ sung vào file bao
gồm 10 trƣờng thông tin sau:
-

Nhóm tuổi

-

Giới tính

-

Có con


-

Tình trạng hôn nhân

-

Quê quán

-

Màu tóc

-

Cân nặng

-

Cơ thể ( gầy, còm, cân đối, …)

-

Học vấn

-

Chơi thể thao

-


Thích nghe nhạc

Toàn bộ các thông tin này sẽ đƣợc bổ sung vào từng dòng trên file thông tin
về ngƣời. Mọi thông tin đều sẽ đƣợc chia thang điểm từ 1 đến 10. Nghĩa là ta bổ
sung thêm trên mỗi dòng 10 con số có giá trị từ 1 đến 10 ngăn cách nhau bởi dấu
phẩy, để ghi lại mức đánh giá về ngƣời này theo 10 tiêu chí nếu trên.
Trong chƣơng trình demo thực tế thì các thông tin này sẽ đƣợc ngƣời dùng tự
khai báo khi cập nhật thông tin cá nhân của mình.


19

3.1.3. Chuẩn hóa dữ liệu
Sau khi bổ sung dữ liệu về 10 tiêu chí đã nêu, ta đã có đẩy đủ thông tin của
bộ dữ liệu mẫu. Công việc chuẩn hóa dữ liệu là quá trình đọc các file thông tin
trong dữ liệu mẫu và đƣa vào cơ sở dữ liệu của chƣơng trình. File dữ liệu về ngƣời
đƣợc đƣa vào bảng user_info, các thông tin tƣơng ứng về ngƣời đó (10 tiêu chí bổ
sung và tiêu chí giới tính) cũng đƣợc đƣa vào trong bảng này.
Hệ thống các bảng phụ để chia thang điểm cho 10 tiêu chí cũng sẽ đƣợc hoàn
thiện. Ví dụ về mặt độ tuổi: từ 20 – 25 tuổi để điểm số là 10, từ 18 – 20 tuổi thang
điểm là 9. Cứ nhƣ vậy ta hoàn thành các tiêu chí đánh giá thang điểm dựa trên các
đặc điểm của tiêu chí.

3.1.4. Chia bộ dữ liệu huấn luyện và kiểm thử
Với bộ dữ liệu đã nêu trên, ta thực hiện lấy 75% dữ liệu trong ma trận mối
quan hệ quen biết và ratings để làm dữ liệu huấn luyện cho chƣơng trình. Số dữ liệu
còn lại (25%) sẽ đƣợc dùng để đánh giá tính đúng đắn của các thuật toán trên bộ dữ
liệu kiểm thử.
Có một lƣu ý là ta sẽ lấy 75% dữ liệu huấn luyện đối với mỗi ngƣời trong tập

dữ liệu ngƣời, chứ không lấy 75% dữ liệu đầu tiên trong file ratings.dat. Việc làm
nhƣ vậy sẽ mang đến tính khác quan hơn đối với quá trình kiểm thử.

3.2.

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

3.2.1. Phân tích thăm dò
Trong phƣơng pháp phân tích thăm dò này, một số khía cạnh chính của dữ
liệu đƣợc mô tả bằng cách hiển thị các kết quả phân tích thăm dò đƣợc tiến hành
trên tập dữ liệu.

3.2.2. Phương pháp đánh giá mức độ thành công của thuật toán
Phần này sẽ đánh giá mức độ thể hiện của những lời gợi ý khác nhau, và cụ
thể hơn là cách chúng so sánh. Nhằm mục đích đó, có nhiều cách tính toán mức độ


20

thành công trong dữ liệu lịch sử đƣợc liệt kê (mục 3.2.2). Sau đó lời gợi ý đƣợc sản
sinh từ thuật toán đƣợc xem xét kỹ càng bằng việc so sánh chúng dƣới những tiêu
chuẩn đo lƣờng khác nhau và đƣợc kết lại với việc thảo luận kết quả (mục 3.2.3).
Việc thiết lập cách tính toán này đƣợc giải thích từng phần trong chú giải của
data set (Chƣơng 3.1). Mỗi recommender sản sinh 1 danh sách các gợi ý cho mỗi
user, và chất lƣợng của những danh sách này đƣợc tính toán dựa trên những tiêu
chuẩn khác nhau.

3.2.3. Kết quả
Chỉ RECON với việc xử lý tƣơng tác tiêu cực mới có thể hoàn toàn ngăn
ngừa sự từ chối, vì nó và phƣơng pháp ngẫu nhiên là 2 phƣơng pháp duy nhất đạt

mức thất bại thấp hơn mức thất bại gốc/cơ bản. Khả năng dự đoán việc xuất hiện
của tin nhắn khởi đầu trong suốt giai đoạn test là khá thấp với tất cả các phƣơng
pháp.
Phƣơng pháp dành chiến thắng theo tỷ lệ thành công rõ ràng là voting
ensemble và Đa nhóm tƣơng thích. CCR rơi vào tầm trung, còn RECONs thể hiện
tệ nhƣng vẫn trên mức sàn. 1 lý do khiến sự thể hiện/hiệu suất của RECON không
bằng những phƣơng pháp còn lại có thể tại nó hỗ trợ rất ít ngƣời dùng mới (coldstart user). Thay vào đó, một cách không ngờ, RECON với xử lý tiêu cực lại có kết
quả tệ hơn RECON, điều này ngƣợc lại với kết quả trong tài liệu gốc.
Tỷ lệ thành công cao của Đa nhóm tƣơng thích hỗ trợ ý tƣởng gợi ý cho
ngƣời dùng dựa trên nhân khẩu học của họ, từ đó đƣa ra gợi ý tốt. Vấn đề liên quan
mà cách tiếp cận này cần giải quyết là nó không có khả năng cung cấp lời gợi ý
đƣợc cá nhân hóa 1 cách hoàn toàn. Ví dụ, nếu ngƣời dùng có sở thích khác hoàn
toàn với cohort (nhóm bạn hoặc nhóm có điểm chung), lời gợi ý đƣợc sinh ra có thể
không vừa ý anh ta. Tuy nhiên, ít nhất ở mức trung bình, lời gợi ý dựa trên nhóm
con có vẻ khả thi. Đáng lƣu ý rằng tỷ lệ thành công dành đƣợc cũng rất có thể đƣợc
sinh ra bằng phƣơng pháp xử lý ngƣời dùng mới (cold-start user) thích hợp, và ít
nhất là so với RECON hay CCR. Vì RECON và Đa nhóm tƣơng thích không công


21

khai cân nhắc hồi đáp tiêu cực, nên không bất ngờ khi tỷ lệ thất bại không thấp đi.
Hơi ngạc nhiên là CCR không có khả năng giảm tỷ lệ thất bại so với mức sàn mặc
dù nó có cân nhắc những hồi đáp tiêu cực khi xếp hạng ứng viên.
Cuối cùng, RECON và RECON với tiêu cực thể hiện độ chính xác tốt nhất,
CCR ở giữa, và số còn lại về cuối.

3.3.

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


3.3.1. Xây dựng CSDL

Hình 3.4. Bảng CSDL

3.3.2. Kiến trúc ứng dụng
Kịch bản ứng dụng:
 Bƣớc 1: Ngƣời dùng tạo tài khoản mới
 Bƣớc 2: Ngƣời dùng dùng tài khoảng vừa tạo để đăng nhập vào hệ thồng


22

 Bƣớc 3: Điền thông tin cá nhân – Mang ý nghĩa là hoàn thiện mô hình sở
thích của chính mình
 Bƣớc 4: Hệ thống giả định ngƣời dùng nhận đƣợc 15 tin nhắn làm quen mới
 Bƣớc 5: Ngƣời dùng hồi đáp các tin nhăn đó với 3 lựa chọn : Tích cực – Tiêu
cực – Không trả lời. Việc này nhằm lấy dữ liệu tin nhắn, đồng thời là về sở
thích ẩn của ngƣời dùng.
 Bƣớc 6: Ngƣời dùng ấn vào 1 trong 4 nút gợi ý, ứng với mỗi thuật toán ở
chƣơng 2.
 Bƣớc 7: Hệ thống sẽ áp dụng thuật toán trình bày ở chƣơng 2 để sinh ra danh
sách ứng viên gợi ý cho ngƣời dùng, dựa trên thông tin mới nhập.
 Bƣớc 8: Cuối cùng ứng dụng hiển thị kết quả là danh sách ứng viên mà hệ
thống gợi ý cho ngƣời dùng.

3.3.3. Ứng dụng
Phần này sẽ đƣa ra thứ tự và giao diện khi chạy ứng dụng xây dựng cho hệ
thống.


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


23

KẾT LUẬN
Recommended Systems vẫn luôn là một chủ đề nhận đƣợc sự quan tâm hàng
đầu của các nhà khoa học không chỉ về lợi ích ứng dụng trong nhiều lĩnh vực mà
còn ở các phƣơng pháp xử lý đa dạng với từng bài toán. Trong đề tài này, lớp đặc
biệt của RC cho lĩnh vực hẹn hò trực tuyến đƣợc trình bày, dƣới tên gọi là gợi ý
tƣơng hỗ – RR. Dựa trên những kết quả trƣớc, RR mới đƣợc phát triển để cố gắng
giải quyết vấn đề còn tồn tại ở những phƣơng pháp trƣớc.
Phƣơng pháp của ta cùng với 4 phƣơng pháp khác, đƣợc giới thiệu là RR,
đƣợc đánh giá dựa trên tập dữ liệu thu thập từ dịch vụ hẹn hò trực tuyến trong thế
giới thực. Kết quả chỉ ra không có phƣơng pháp nào giành chiến thắng tuyệt đối;
phụ thuộc vào từng tiêu chí lấy để tính toán, những phƣơng pháp khác nhau đều có
lúc đứng đầu.
Điều còn chƣa rõ ràng là tầm quan trọng của những tiêu chí tính toán khác
nhau, tức là, tỷ lệ thành công, thất bại hay chính xác tác động đến kinh nghiệm
ngƣời dùng, tính trung thành của ngƣời dùng, lợi nhuận mang lại, cũng nhƣ khả
năng ngƣời dùng tìm đƣợc ngƣời phù hợp ra sao.
Nghiên cứu sâu hơn sẽ giải quyết những vấn đề này bằng cách thực hiện trực
tiếp những kiểm thử đƣợc kiểm soát „controlled experiments‟ trên dịch vụ hẹn hò
trực tuyến với ngƣời dùng thực. Cùng với việc so sánh các phƣơng pháp và sự phát
triển phƣơng pháp mới, 1 đóng góp khác của luận án này là dữ liệu hỗ trợ ngƣời
dùng mới (cold-start user) và ngƣời nắm vai trò chủ động – bị động (proactivereactive roles) trong hẹn hò trực tuyến. Nó cũng chỉ ra tƣơng tác hai chiều xuất hiện
ở mọi nhóm có mức nổi tiếng khác nhau và ngƣời dùng nổi tiếng có xu hƣớng lƣời
trả lời tiêu cực, ủng hộ luận điểm là ngƣời dùng có giới giạn mối quan tâm hiện tại
(limited availability).
Những ý kiến đƣợc trình bày để phản biện lại hệ thống ghép đôi và hẹn hò

nói chung. Finkel cho rằng việc kết nối với nhóm ứng viên lớn có thể khiến mọi


×