Bài viết Phương pháp xây dựng hệ thống gợi ý sản phẩm sử dụng phản hồi tiềm ẩn đề xuất một giải pháp xây dựng hệ thống gợi ý dành cho bán hàng trực tuyến sử dụng phản hồi tiềm ẩn (Implicit Feedbacks) từ người dùng.
Trang 1Kỷ yếu Hội nghị Quốc gia lần thứ VIII về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR); Hà Nội, ngày 9-10/7/2015
DOI: 10.15625/vap.2015.000199
PHƯƠNG PHÁP XÂY DỰNG HỆ THỐNG GỢI Ý SẢN PHẨM SỬ DỤNG
PHẢN HỒI TIỀM ẨN
Lưu Nguyễn Anh Thư, Nguyễn Thái Nghe
Khoa Công nghệ Thông tin và Truyền thông, Trường Đại học Cần Thơ
lnathu@cit.ctu.edu.vn, ntnghe@cit.ctu.edu.vn
Tóm tắt: Hệ thống gợi ý (Recommender Systems) đã và đang được ứng dụng trong rất nhiều lĩnh vực như giải trí, giáo dục,
khoa học, và đặc biệt là thương mại điện tử Việc tích hợp kỹ thuật gợi ý vào các hệ thống trực tuyến nhằm tự động phân tích các hành vi trong quá khứ của người dùng để dự đoán nhu cầu/sở thích của họ trong tương lai, từ đó có những đề xuất hợp lý cho người dùng là rất cần thiết trong thực tế
Bài viết này đề xuất một giải pháp xây dựng hệ thống gợi ý dành cho bán hàng trực tuyến sử dụng phản hồi tiềm ẩn (implicit feedbacks) từ người dùng Trước hết chúng tôi đề xuất phương pháp thu thập thông tin phản hồi tiềm ẩn, sau đó tìm hiểu các phương pháp gợi ý phù hợp từ đó đề xuất sử dụng phương pháp tập hợp mô hình để kết hợp các mô hình dự đoán nhằm tăng độ chính xác Kế đến là việc cài đặt, điều chỉnh, kiểm thử và và tích hợp các mô hình đã đề xuất vào hệ thống nhằm gợi ý các sản phẩm phù hợp với sở thích của người dùng Sau cùng, chúng tôi thu thập phản hồi từ người dùng thực nhằm đánh giá hiệu quả của phương pháp đã đề xuất Kết quả cho thấy mô hình đề xuất có khả năng gợi ý tốt cho người dùng và hoàn toàn có thể tích hợp vào các hệ thống bán hàng trực tuyến
Từ khóa: Hệ thống gợi ý, bán hàng trực tuyến, phản hồi tiềm ẩn, kỹ thuật phân rã ma trận
I GIỚI THIỆU
Hệ thống gợi ý (Recommender System - RS) được ứng dụng khá thành công trong thực tiễn giúp người dùng giải quyết vấn đề quá tải thông tin Hiện nay, hệ thống gợi ý đang được nghiên cứu và ứng dụng ở nhiều lĩnh vực khác nhau đặc biệt là thương mại điện tử Trên thế giới, đã có nhiều công ty, tổ chức áp dụng thành công hệ thống gợi ý như là một dịch vụ thương mại của mình nhằm gợi ý các dịch vụ, sản phẩm và các thông tin cần thiết đến người dùng như: website mua sắm trực tuyến Amazon (www.amazon.com) cung cấp cho khách hàng những sản phẩm mà họ có thể quan tâm, cổng video clip YouTube (www.youtube.com), gợi ý phim của MovieLens (www.movielens.org), Việc gợi ý sản phẩm phù hợp sẽ góp phần làm tăng doanh số bán hàng hoặc số lượng truy cập, download của hệ thống Đồng thời giúp cho khách hàng có thể tìm kiếm được những thông tin thú vị hoặc những sản phẩm mà họ muốn tìm dễ dàng hơn
Hệ thống gợi ý giúp người dùng chọn lựa được thông tin phù hợp nhất cho mình dựa trên những hành vi/phản hồi (feedbacks) mà người dùng đã thực hiện trong quá khứ Các phản hồi có thể được xác định một cách tường minh (explicit feedback) như thông qua việc đánh giá/xếp hạng (ví dụ, rating từ 1 đến 5; hay like (1) và dislike (0),…) mà người dùng đã bình chọn trên sản phẩm – trong trường hợp này gọi là dự đoán xếp hạng (rating prediction) [4] hoặc các phản hồi có thể được xác định một cách không tường minh hay còn gọi là tiềm ẩn (implicit feedbacks) như số lần click chuột, số lần chọn mua sản phẩm, thời gian mà người dùng đã duyệt/xem sản phẩm,…
Rất nhiều hệ thống lớn thu thập thông tin phản hồi từ khách hàng một cách tường minh, như Ebay, Amazon, LastFM, NetFlix, ở đó người sẽ trực tiếp đánh giá trên sản phẩm, như bình chọn từ (không thích) đến (rất thích); hay Youtube thu thập thông tin qua like(&)/ disklike('), và các hệ thống khác [3] Thông qua việc thu thập phản hồi tường minh, hệ thống dễ dàng xác định mức độ yêu thích của người dùng trên sản phẩm, từ đó dự đoán các
sản phẩm tiếp theo mà người dùng có thể thích để gợi ý cho họ Tuy nhiên, điều này có thể gây bất lợi do không phải
người dùng lúc nào cũng sẳn sàng/vui lòng để lại các phản hồi của họ, vì vậy hệ thống phải nên tự xác định người dùng cần gì thông qua phản hồi tiềm ẩn
Trong bài viết này, chúng tôi đề xuất một giải pháp xây dựng hệ thống gợi ý cho bán hàng trực tuyến, sử dụng phản hồi tiềm ẩn từ người dùng (như số lần duyệt/xem sản phẩm, số lần mua sản phẩm) Trước hết chúng tôi đề xuất phương pháp thu thập và khai thác thông tin phản hồi tiềm ẩn từ người dùng, sau đó lựa chọn và đề xuất kết hợp các
mô hình sử dụng thông tin phản hồi tiềm ẩn Kế đến là việc xây dựng hệ thống và tích hợp các giải thuật gợi ý vào hệ thống Sau khi có hệ thống hoàn chỉnh, chúng tôi thu thập dữ liệu từ người dùng thực nhằm đánh giá hiệu quả của hệ thống gợi ý Kết quả cho thấy khả năng mà hệ thống gợi ý phù hợp với sở thích của từng người dùng là khá tốt
II HỆ THỐNG GỢI Ý (Recommender Systems - RS)
A Hệ thống gợi ý
Mục đích của hệ thống gợi ý là dựa vào sở thích, thói quen, nhu cầu, trong quá khứ của người sử dụng để dự
đoán sở thích trong tương lai của họ Trong hệ thống gợi ý người ta quan tâm đến 3 đối tượng: người dùng (user), sản phẩm (item - item gọi chung là mục tin nhưng trong bài viết này liên quan đến gợi ý sản phẩm nên từ đây về sau chúng tôi tạm gọi item là sản phẩm) và các phản hồi của người dùng trên sản phẩm, thường là các xếp hạng (rating)
Trang 2c
g
R
n
v
n
t
B
m
s
q
v
c
th
m
m
ti
[
-s
Thông t
ất cả các sản p
các sản phẩm c
gợi ý về sách, p
R là một tập h
người dùng u t
việc đánh giá/x
này gọi là dự đ
tiềm ẩn (impli
Bài viết này qu
Các thô
mỗi dòng là m
số lần click ch
quá khứ Nhữn
vài item trong
Nhiệm
các ô còn trống
heo thứ tự, từ
Một các
một ánh xạ r: U
Mục tiê
một hàm ước l
iểu
Hiện nay,
1][2][7]:
Gợi ý dựa
phát từ nh
li
k
d
m
Gợi ý dựa
dùng đó ư
Gợi ý dựa
Sau đây c
sử dụng phản h
thường người
phẩm (items) s
có thể lên đến
phim ảnh, âm
hợp các giá trị
trên sản phẩm
xếp hạng (ví d
đoán xếp hạng
icit feedback)
uan tâm nhiều
ông tin về user
một người dùng
huột hay chọn
ng ô trống là n
quá khứ, do vậ
Hình 1
vụ chính của R
g (của user hiệ
đó gợi ý chún
ch hình thức, g
U × I→ R (
êu của RS là t
lượng lỗi như M
MAE
RMSE =
có rất nhiều g
a trên lọc cộng
hững người có
Phương pháp l
iệu quá khứ c
khứ của những
Dựa trên mô h
dữ liệu thu thậ
models): trong
a trên nội dung
ưa thích trước
a trên cách tiếp
chúng tôi tóm
hồi tiềm ẩn, từ
ta gọi U là tập
sẽ được gợi ý n hàng trăm, hà nhạc Tương t dùng để ước l
m i Giá trị r ui c
dụ, rating từ 1 (rating predic
) như số lần cl
đến cách xác đ
r, item, feedba
g u, mỗi cột là
n mua sản phẩ
những item chư
ậy có rất nhiều
Ma trận biểu d
RS là dựa vào
ện hành), sau
ng đến người d
gọi D train ⊆ U
(u, i) ↦ r ui
tìm một hàm ̂ Mean Absolut
= | D test
1
∑
r i u test
| 1 giải thuật đã đ
g tác (collabor
ó cùng thị hiếu láng giềng (N của người dùn
g item “tương hình (Model-b
ập được trong
g đó kỹ thuật p g: người dùng đây dựa trên n
p cận kết hợp:
lược lại một t
ừ đó làm cơ sở
p tất cả người như máy tính, àng nghìn hoặc
tự như vậy, tập lượng ‘sở thíc
có thể được x đến 5; hay lik
ction) hoặc r ui
lick chuột, số
định r ui không ack thường đư
à một sản phẩm
ẩm,… Các ô
ưa được xem (
u ô trống trong
diễn xếp hạng củ
o các ô đã có g
đó sắp xếp kế dùng
× I × R là tập
̂: U × I → ℜ
te Error (MAE
(
∑
∈ D test
r) i, (u,
r
|
∑
∈
−
test
D r
i u
ui r r
)
) (
ˆ được đề xuất
rative filtering
u và sở thích v
Neighborhood-ng “tươNeighborhood-ng tự”
tự” (item-bas based): Nhóm
g quá khứ Nh phân rã ma trậ
g sẽ được gợi nội dung (như : kết hợp hai p trong những k
ở cho việc đề x
dùng (users) v sách, phim ản
c thậm chí là h
p người dùng U
h’ (preference
ác định một c
ke (1)/ dislike
có thể được xá lần chọn mua
g tường minh
ược biểu diễn t
m i, và giao gi
có giá trị là nh (điều đáng lưu
g ma trận này –
ủa người dùng t
giá trị trong ma
ết quả dự đoán
p dữ liệu huấn
sao cho ξ(r
E) hay Root M
)
ui ˆr
)2
cho hệ thống
g): người dùng với mình Nhóm -based, còn gọ – similarity (u
ed approach)
này liên quan
hư mô hình Ba
ận (matrix fact
ý những sản p
ư các thuộc tín phương pháp t
kỹ thuật trong xuất mô hình
và u là một ngư nh, và i là một
hàng triệu sản p
U cũng có thể
e) của người dù
cách tường mi
(0),…) mà u đ
ác định một cá sản phẩm, thờ
thông qua mộ iữa dòng và cộ hững item mà
u ý là mỗi user – còn gọi là m
trên sản phẩm (u
a trận này (dữ
n (ví dụ, từ cao
n luyện, D test ⊆
, ̂) thỏa mãn Mean Squared E
gợi ý, chúng
g sẽ nhận gợi ý
m này dựa vào
ọi là Memory-user-based ap
n đến việc xây ayesian, các m torization) là m phẩm tương tự nh) của sàn phẩ iếp cận dựa tr
g nhóm lọc cộn cho hệ thống
ười dùng cụ th
t sản phẩm cụ phẩm trong m rất lớn, lên đế
dùng, và r ui∈R inh (explicit f
đã bình chọn c
ách không tườ
ời gian mà u đ
ột ma trận như
ột là các phản các user đã x chỉ click xem
ma trận thưa – s
(user-item-rating
liệu thu được
o xuống thấp)
⊆ U × I × R là
một điều kiện Error (RMSE)
có thể được g
ý những sản p
o các phương -based), trong pproach), hoặc
y dựng các mô
mô hình nhân một điển hình
ự với những s
ẩm rên nội dung v
ng tác của hệ
hể nào đó (u∈
ụ thể nào đó (i∈ một số ứng dụn
ến hàng triệu t
R (R ⊂ℜ) là xế
feedback) như
cho i – trong t
ờng minh hay
đã duyệt/xem
ư trong Hình 1 hồi của ngườ xem hoặc chọn
m hoặc chọn mu sparse matrix)
g matrix)
c từ quá khứ),
và chọn ra To
à tập dữ liệu ki
n nào đó Ví d ) thì nó cần ph
gom lại theo 3
phẩm được ưa pháp chủ yếu
g đó hoặc là d
c là dựa trên d
ô hình dự đoá
tố tiềm ẩn (la
sản phẩm đã đ
và lọc cộng tác thống gợi ý v
U) I là tập
∈I) I là tập
g, như việc rường hợp
p hạng của
ư thông qua trường hợp
y còn gọi là
i,… [2][7]
Trong đó
i dùng như mua trong
ua cho một
để dự đoán op-N items iểm thử, và
dụ, nếu ξ là hải được tối
(1)
(2)
3 nhóm sau
a thích xuất u:
dựa trên dữ
dữ liệu quá
án dựa trên atent factor được người
c
và kỹ thuật
Trang 3B
o
ta
g
g
đ
n
c
Đ
c
n
th
đ
h
h
tr
602
B Kỹ thuật p
Kỹ thuậ
of-the-art) tron
a có thể xây dự
X ~ WH
gồm K nhân tố
gồm K nhân tố
Gọi w uk
được dự đoán b
Như vậ
này có được bằ
của MF hay đư
Một tro
Để tối ưu hóa h
của chúng cho
nên tăng hay n
Sau khi
hức:
Trong đ
đạt được giá trị
Chính t
hình dự đoán c
hàm mục tiêu (
rị trong W và
phân rã ma tr
ật phân rã ma t
ng RS [1][2] M
ựng lại X từ h
H T như minh h
ố tiềm ẩn (late
ố tiềm ẩn mô tả
k và h ik là các p
bởi công thức:
ậy, vấn đề chủ
ằng cách tối ưu
ược sử dụng nh
ong những kỹ t
hàm mục tiêu
đến khi hàm m
ên giảm các g
i tìm đạo hàm
đó β là tốc độ
ị nhỏ nhất
tắc hóa (Regu
cho kết quả tố
(4) bằng cách
H Hàm mục t
PHƯ
rận (matrix fa
trận (MF) là m
MF là việc chi hai ma trận nhỏ họa như trong
nt factors) mô
ả cho item i (lư
phần tử tương :
chốt của kỹ th
u hóa hàm mụ
hư sau:
thuật có thể dù (4), trước tiên mục tiêu hội tụ
iá trị của W và
m, các phần tử
học (learning
ularization): Đ
ốt trên dữ liệu thêm vào một tiêu (4) bây gi
ƯƠNG PHÁP XÂ
actorization –
một trong nhữn
ia một ma trận
ỏ hơn này càng
g Hình 2 Tron
ô tả người dùn
ưu ý: K<<|U| v
Hình 2 Minh
g ứng của hai m
= K
k ui
r
1
ˆ
huật MF là làm
ục tiêu (objecti
=
MF
O
ùng để tối ưu h
n ta khởi tạo cá
ụ về giá trị nhỏ
à H qua mỗi lầ
uk
O w
∂
∂
M ik
O h
∂
∂
của W và H s
new uk
new
rate, 0 < β <1
Để ngăn ngừa huấn luyện, n
t đại lượng gọ
iờ trở thành:
ÂY DỰNG HỆ TH
MF)
ng phương phá
n lớn X thành h
g chính xác càn
ng đó, W∈ℜ|U
g u; và H ∈ℜ
và K<<|I|)
h họa kỹ thuật p
ma trận W và
=
ik
ukh w
1
.h
w
m thế nào để tìm ive function) n
∑
∈
−
train
D i u
ui
r
,
(
hóa hàm mục
ác giá trị ngẫu
ỏ nhất (conver
ần cập nhật, do
ui
MF = − 2 ( r −
ui
MF = − 2 ( r −
sẽ được cập nh
old uk
w
w
∂
∂
⋅
− β
i
old ik
h
h
∂
∂
⋅
− β
1) Quá trình cậ
sự quá khớp h hưng cho kết
i là chính tắc h
HỐNG GỢI Ý SẢ
áp dựa trên mô hai ma trận có
ng tốt [5]
U|×K là một ma
ℜ|I|×K là một ma
phân rã ma trận
H, khi đó xếp
T
h
m được giá trị như RMSE ở c
∑
∈
=
tr
D i u ui
r
,
2
) ˆ
tiêu là dùng S nhiên cho W v rgence) Để làm
o vậy cần phải
ik
ui h
r ) ˆ
−
uk
ui w
r ) ˆ
hật ngược hướ
MF uk
w O
ol ik MF ik
h
ập nhật sẽ đượ
hay còn gọi là quả kém trên hóa (regulariza
ẢN PHẨM SỬ D
ô hình thành c
ó kích thước n
trận mà mỗi d
a trận mà mỗi
p hạng của ngư
ị của hai tham công thức (2)
∑=
⎜
⎝
⎛ −
rain
K
k
r
1
SGD (Stochast
và H, sau đó từ
m được điều đ
i tìm đạo hàm
ớng với giá trị
old
w + 2 β ⋅ (
ui
ld + 2 β ⋅ ( r
ợc thực hiện đ
à học vẹt (ove
dữ liệu thử ng ation) để điều
DỤNG PHẢN HỒ
công nhất hiện
nhỏ hơn W và
dòng u là một
dòng i là một
ười dùng u trê
số W và H H
Trong RS, hàm
⎟
⎠
⎞
ik
ukh w
2
tic Gradient De ừng bước cập
đó, ta cần phải từng phần của
ị của đạo hàm
ik ui
r − ˆ )
uk
ui w
r ) ˆ
− đến khi nào hàm
erfitting – xảy ghiệm) người khiển độ lớn
ỒI TIỀM ẨN
nay
(state-H, sao cho
véc tơ bao véc tơ bao
n mục tin i
(3)
Hai tham số
m mục tiêu
escent) [5] nhật giá trị xác định là
a chúng:
(5)
(6)
m, qua công
(7)
(8)
m mục tiêu
y ra khi mô
ta thay đổi của các giá
Trang 4đ
h
C
S
c
c
m
n
d
th
x
v
N
tậ
d
p
v
A
đ
Trong đ
w uk và h ik được
Quá trìn
định trước
Quá trì
hiện theo công
ui
rˆ = 0
Một biế
C Kỹ thuật S
Kỹ thuậ
SVD++ là giải
các thông tin p
cũng thích để l
một đối tượng
này sẽ được gh
dùng, thời gian
hêm các giá tr
xác cao, tỉ lệ lỗ
Quá trìn
Trong c
và item i (user
N(u) là tập cá
ập người dùng
dùng u đã đánh
III ĐỀ X
Trước t
pháp tích hợp v
vấn đề người d
A Phương ph
Đa phần
đánh giá cụ th
đó λ là hệ số c
c cập nhật qua
nh cập nhật gi
ình dự đoán: S
g thức (3) Ví d
.5*0.8 + 0.6*0
ến thể của MF
SVD++
ật SVD++ (Sin
i quyết khá tốt
phản hồi tường
lại đánh giá củ
i mà người dù
hi nhận tự độn
n xem sản phẩ
rị lệch (biases)
ỗi thấp hơn MF
nh dự đoán xếp
công thức này
r bias, item bia
c thông tin ph
g N(u) trên cá
h giá và số K n
XUẤT MÔ H
tiên chúng tôi
và cài đặt các
dùng mới (cold
háp thu thập t
n các hệ thống
hể (thu thập tư
O
chính tắc hóa ( công thức:
new uk
w
new ik
h
iá trị của W v
Sau quá trình h dụ: Dự đoán xế 0.1 = 0.46
dành cho dữ li
ngular Value D
t cho RS với c
g minh (explic
ủa mình trên sả
ùng u đã đánh
ng bởi hệ thốn ẩm,… SVD++
) và các nhân
F do nó sử dụn
p hạng của ng
ui
rˆ
μ là giá trị tru
as), wu và hi l hản hồi tiềm ẩn
ác items được nhân tố tiềm ẩn
HÌNH GỢI Ý
đề xuất phươn
mô hình dựa d-start problem
thông tin phả
g bán hàng hiệ ường minh) ch
∑
∈
=
train
D i u
MF
O
,
(0 ≤ λ<1) và
old uk w
old ik
và H được lặp
huấn luyện ta
ếp hạng của us
Hình 3 Min
iệu phản hồi tiề
Decomposition các thông tin cit feedback) từ
ản phẩm SVD giá nhưng lại
ng, ví dụ số lần + được xây dự
tố phản hồi ti
ng nhiều yếu tố
gười dùng u trê
b + +
ung bình toàn
là 2 véc tơ nhâ
n của người dù đánh giá Vec
n Bạn đọc có
CHO BÁN H
ng pháp thu th trên phương p
m [2])
ản hồi tiềm ẩn
ện tại thu thập t
ho người dùng
∑=
⎜
⎝
k u
r
1 2
||
|| ⋅ F là chuẩ ( rui − rui
⋅
β 2 ( ˆ ( rui − rui
p lại cho đến k
được 2 ma trậ ser 2 cho item
nh họa cách dự
ềm ẩn là kỹ thu
n for Implicit F phản hồi tiềm
ừ người dùng D++ hướng đế không quan tâ
n chọn mua sả ựng dựa trên c iềm ẩn [3] Kế
ố phản hồi để
ên sản phẩm i t
u
b + ( w +
cục, bu, bi tươ
ân tố tiềm ẩn ùng u Giá trị
ctor yj là một quan tâm xin
HÀNG TRỰC
hập thông tin p pháp tập hợp m
n
thông tin phản
g chọn mức độ
⋅ +
⎟
⎠
⎞
ik
ukh
2
λ
ẩn Frobenius V
o uk
)
o ik
) khi đạt độ lỗi c
ận W và H đã t
2 trong Hình 3
đoán của MF
uật SVD++ [3]
Feedback) [3]
m ẩn (implicit f đôi khi gặp kh
n việc xác địn
âm đến các giá
ản phẩm, hay
cơ sở của Mat
ết quả dự đoán phân tích dự đ trong SVD++
N j
u
N ) (
(
2 / 1
∑
∈
−
ơng ứng là độ l của người dùn
yj là vector ch
ma trận có kí xem chi tiết tr
C TUYẾN SỬ
phản hồi tiềm
mô hình (ense
n hồi từ người
ộ yêu thích sản
( W F2 + H
Với hàm mục )
old
k )
ld
k chấp nhận hoặ
tối ưu thì quá 3:
] sẽ được trình
là một biến th feedback) Tro
hó khăn vì khô
nh mối quan tâ
á trị đánh giá đ
số lần duyệt x trix Factorizat
n của SVD++
đoán
được tính theo
i T
u j
h
y )
)
lệch (thiên vị
ng u và item i
hứa các thông ích thước bằng rong tài liệu [3
Ử DỤNG PHẢ
ẩn từ người d emble models
dùng bằng các
n phẩm, như t
)
F
2
c tiêu mới này,
ặc lặp lại đến trình dự đoán
bày trong phầ
hể của MF, đặc ong thực tế việ ông phải ngườ
âm của người d
đó, những giá t xem sản phẩm tion (MF) chu
đã cho thấy c
o công thức:
- bias) của ng
i như trong kỹ
tin phản hồi t
g số sản phẩm 3]
ẢN HỒI TIỀM
dùng, sau đó đ [12]), đề xuất
ch thiết kế sẳn
từ 1 đến 5 sao
(9) giá trị của (10) (11)
số lần quy
n được thực
n tiếp theo
c trưng của
ệc thu thập
ời dùng nào
dùng u đến
trị đánh giá
m của người uẩn kết hợp
có độ chính
(12)
ười dùng u
ỹ thuật MF iềm ẩn của
m mà người
M ẨN
đề xuất giải cách xử lý
n các khung
o, hoặc nút
Trang 5604 PHƯƠNG PHÁP XÂY DỰNG HỆ THỐNG GỢI Ý SẢN PHẨM SỬ DỤNG PHẢN HỒI TIỀM ẨN
chọn thích/ không thích, khung đánh giá bình luận sản phẩm,… Việc ghi nhận này có thể dẫn đến sự bất tiện cho người
dùng và đa phần người dùng ít khi để lại thông tin phản hồi một cách tường minh như thế Vì thế, chúng tôi đề xuất cách thu thập thông tin phản hồi tiềm ẩn bằng cách cho hệ thống tự ghi nhận lại các đánh giá của người dùng trên các sản phẩm, như dựa trên số lần mua và số lần xem sản phẩm của người dùng hệ thống Ở đó, thông tin số lần mua sản phẩm của người dùng sẽ được ghi nhận và cập nhật dựa trên hóa đơn đặt hàng của họ Nếu một hóa đơn đặt hàng được xét duyệt thì hệ thống cập nhật lại lần mua của khách hàng với các sản phẩm Còn thông tin số lần click xem sản phẩm
cho người dùng được chia ra 2 trường hợp chính: User đăng nhập vào hệ thống ngay khi đến hệ thống hoặc user chưa đăng nhập hoặc chưa đăng ký tài khoản hệ thống
Nếu người dùng đăng nhập vào hệ thống ngay từ đầu thì sau mỗi lần xem sản phẩm hệ thống sẽ tự cập nhật lại số lần xem trong cơ sở dữ liệu Nếu người dùng không đăng nhập hệ thống ngay khi mới đến hệ thống, lúc đó nó sẽ tự động tạo cho người dùng này một account ghi nhận lại số lần xem sản phẩm của họ, cũng như sẽ cập nhật số lần mua cho người dùng này vào tập dữ liệu feedback theo 3 trường hợp:
o Trường hợp 1: nếu user xem xong có đăng nhập vào hệ thống thì số lần xem đó được cập nhật chuyển sang user vừa được đăng nhập đồng thời xóa bỏ account đã tạo tạm
o Trường hợp 2: nếu user xem xong và đăng ký tài khoản mới thì cập nhật thông tin sang cho user vừa đăng ký, xóa
bỏ account đã tạo tạm
o Trường hợp 3: Nếu user xem và rời khỏi hệ thống thì hệ thống sẽ lưu giữ lại thông tin đó cho một user với thông tin user được lấy từ thông tin địa chỉ IP dùng truy cập vào hệ thống Trường hợp này, được ghi nhận để lấy thông
tin dự đoán toàn cục cho các items Giá trị dự đoán toàn cục cho item bằng tổng giá trị trung bình dự đoán của mỗi
item trên các users Hệ thống sử dụng giá trị dự đoán toàn cục này để giải quyết vấn đề gợi ý cho người dùng mới (new user)
B Sử dụng thông tin phản hồi tiềm ẩn và tập hợp mô hình dự đoán
Trong các giải thuật chuẩn của hệ thống gợi ý, thường người ta chỉ chọn một giá trị phản hồi của người dùng (như giá trị rating) Tuy nhiên để tận dụng tối đa các thông tin phản hồi nhằm làm tăng độ tin cậy của mô hình dự đoán, trong
nghiên cứu này, chúng tôi sử dụng 2 thông tin phản hồi, đặc biệt là phản hồi tiềm ẩn, đó là số lần mua sản phẩm và số lần xem sản phẩm của khách hàng để tạo tập dữ liệu feedback Hệ thống sẽ tự động xác định các phản hồi này và dự
đoán đưa ra danh sách các item cần gợi ý mà không cần các đánh giá/xếp hạng tường minh từ người dùng Việc tích hợp 2 thông tin phản hồi này được thực hiện theo phương pháp tập hợp mô hình (ensemble learning [12]) vì vậy nó có thể cho kết quả dự đoán chính xác hơn
Mô hình 1:r1ui là số lần mua của người dùng u trên sản phẩm i, được dự đoán qua công thức
i T u N j j u
i u
) (
2 / 1 1
+ + + +
= μ
(13)
Mô hình 2:r2ui là số lần xem (view/click) của người dùng u trên sản phẩm i, được dự đoán qua công thức
i T u N
u i u
) (
2 / 1 2
∈
−
+ + + +
= μ
(14) Thực tế thấy rằng, một khi người dùng đã mua sản phẩm, ngầm định rằng họ đã thích/cần sản phẩm đó, do vậy trọng số mức độ yêu thích sản phẩm của người dùng trên số lần mua sản phẩm sẽ cao hơn số lần xem Hơn nữa ở bất kỳ 1 website thương mại điện tử nào, số lần người dùng click/xem sản phẩm là rất lớn trong khi số lần mua nhỏ hơn Để giảm bớt sự chênh lệch này, chúng tôi đề xuất thông tin về số lần mua có trọng số cao hơn số lần xem là θ (trong bài viết này, qua thử nghiệm trên tập dữ liệu ban đầu thu thập được, θ được chọn là 4 Lưu ý rằng đây chỉ là 1 heuristic, và có thể xem
θ như là 1 siêu tham số (hyperparameter) cần phải được xác định trước
Khi đó, giá trị dự đoán sau cùng được xác định qua công thức:
2 ˆ
2 1
θui
ui ui
r r
Chi tiết về giải thuật SVD++ được cài đặt như trong thủ tục SVDPlusPlusSGD Ở đây chúng tôi sử dụng Stochastic gradient descent và các hệ số regularization cũng như tốc độ học được xác định riêng cho từng tham số
Trang 61: proce
//λi : Reg
// W[|U|
2: μ =
3: for e
4: b
5: end f
6: for e
7: b
8: end f
9: W :=
10: H :=
11: for
12: C
13:
14: f
15:
16: e
17: e
18: f
19:
20:
21:
22:
23:
24: e
26: end
27: retu
28: end
Sau khi
phẩm cần gợi ý
edure SVDPlu
gularization; βi :
][K] và H[|I|][K
train D r
D
r
train
ach user u do
(
t u
u u
D
r
for
ach item i do
(
tra i
ui i i
D
r
for
= N(0, σ2) /
= N(0, σ2)
(iter:=1; iter <
Chọn ngẫu nh
ui
rˆ := 0
for (k:=1; k<=
rˆui = μ +
end for
ui ui
for (k:=1; k<=
bu := b
bi := bi
wu := w
hi := hi
∀ N
end for
Break nếu đã
d for
urn {W, H, μ,
d procedure
i dự đoán cho
ý như minh họ
usPlusSGD(D
: Tốc độ học (L
K] là 2 ma trận n
)
train u ui
)
ain
μ
−
// Initialize wi
<= Iter * |DTrai
hiên một dòng
=K; k++)
i
b + + (
=K; k++)
bu + β1 (eui - λ
i + β2.(eui - λ2
wu + β3(eui.hi
-i + 4.(eui.
yj:= yj +
convergence
bu, bi}
tất cả các item
ọa trong Hình
DTrain, Iter, K, β
LearnRate); Iter
nhân tố tiềm ẩn
// compute t
// compute u
//compute ite
ith normal dist
in|; iter++)
g (u, i, rui) từ D
w + ( )−1
λ1.bu)
2.bi)
- λ3.wu )
5.(eui.| |
m, ta chỉ cần sắ
4
Hìn
β1, β2, β3, β4, β
r: Số lần lặp (Nu
n cần tìm
the global ave
user bias
em bias
tribution
DTrain
T u N
h
y )
) (
2 /
∑
∈
-/ hi - λ5.yj)
ắp xếp lại kết q
h 4 Quy trình g
β5, λ1, λ2,λ3,λ
NumInter); K: Số
erage
i
h
- λ4.hi)
quả giảm dần t
gợi ý
λ4,λ5)
ố nhân tố tiềm ẩ
theo giá trị dự
ẩn (NumFactors
ự đoán và chọn
s);
n top-N sản
Trang 7606 PHƯƠNG PHÁP XÂY DỰNG HỆ THỐNG GỢI Ý SẢN PHẨM SỬ DỤNG PHẢN HỒI TIỀM ẨN
C Xử lý vấn đề người dùng mới – sản phẩm mới (cold-start problem)
Bất kỳ hệ thống gợi ý nào cũng đều gặp phải khó khăn khi người dùng mới và sản phẩm mới xuất hiện trong hệ thống do ta chưa có thông tin phản hồi trong quá khứ Để khắc phục vấn đề về người dùng mới và sản phẩm mới trong bài viết này, chúng tôi dùng phương pháp gợi ý toàn cục
Đối với người dùng mới khi truy cập vào hệ thống (chưa tạo tài khoản hoặc chưa đăng nhập) chúng tôi sẽ gợi ý toàn cục Top-N sản phẩm có giá trị dự đoán trung bình cao nhất cho họ Đồng thời sẽ tự thêm cho người dùng này một tài khoản để ghi nhận lại thông tin xem sản phẩm của họ, khi người dùng đã click xem đến sản phẩm thứ m (m=3) thì hệ thống sẽ tự động huấn luyện lại mô hình và gợi ý lại các sản phẩm phù hợp với cá nhân người này, quá trình huấn luyện này sẽ được thực hiện lặp lại mỗi 3 lần duyệt xem sản phẩm của người dùng để đáp ứng tính kịp thời của các gợi ý Chúng tôi không chọn huấn luyện lại mô hình gợi ý sau mỗi lần tác động xem hoặc mua sản phẩm vì việc làm này sẽ làm hiệu năng của hệ thống bị giảm xúc; việc chọn 3 hay nhiều hoặc ít hơn số lần tác động này để huấn luyện lại mô hình gợi ý phụ thuộc vào mục đích của từng hệ thống
Đối với sản phẩm mới nhập vào, chúng được hiển thị đầu tiên trên trang web và có biểu tượng 'New' để nhận biết
đây là sản phẩm mới của hệ thống Ngoài ra, khi hiển thị chi tiết mỗi sản phẩm, trang web có một không gian để hiển thị các sản phẩm tương tự với sản phẩm mà người dùng đang xem dựa vào một số thuộc tính tương tự Vì vậy, những sản phẩm mới nhập cũng có thể được gợi ý cho người dùng
IV XÂY DỰNG HỆ THỐNG
Tương tự như những hệ thống thông tin quản lý khác, hệ thống này cũng phải được phân tích, thiết kế các mô hình
và sau đó là tích hợp các giải thuật gợi ý vào hệ thống Do giới hạn về số trang của bài viết, chúng tôi chỉ giới thiệu một vài mô hình cơ bản như bên dưới
Bên cạnh chức năng gợi ý sản phẩm, hệ thống mong đợi sẽ có các chức năng khác như cho khách hàng đặt hàng trực tiếp, ngoài ra hệ thống còn cung cấp các công cụ quản trị như: quản trị sản phẩm, quản trị hóa đơn đặt hàng; quản trị người dùng; quản trị banner cho phép người quản trị thực hiện thêm, sửa và xóa: banner hệ thống chung, slider quảng cáo, banner tin tức, thông tin liên khuyến mãi,…theo từng vị trí; quản trị huấn luyện dữ liệu, kiểm tra mô hình SVD++ Khách hàng muốn thực hiện các chức năng trên chỉ khi khách hàng là thành viên của hệ thống Muốn trở thành thành viên của hệ thống, khách hàng phải đăng ký tài khoản thông qua hệ thống
Một ví dụ về sơ đồ use case của khách hàng được trình bày trong Hình 5 và lược đồ cơ sở dữ liệu của hệ thống được trình bày trong Hình 6
Hệ thống được thiết kế theo mô hình Client –Server Khi người dùng gửi yêu cầu đến Web server thông qua Web Browser được cài đặt tại máy tính người dùng Web server gửi yêu cầu xử lý của người dùng đến Application Server Application Server xử lý yêu cầu và có thể truy xuất dữ liệu từ SQL Database nếu cần Sau khi sử lý xong, Application Server sẽ trả kết quả về cho Web server để chuyển cho người dùng
V KẾT QUẢ MINH HỌA
Để minh họa, mô hình đã đề xuất được áp dụng vào bài toán bán hàng trực tuyến, liên quan đến sản phẩm tin học
và linh kiện máy tính Kết quả minh họa cho các giao diện chính của hệ thống và kết quả đánh giá độ chính xác được trình
bày trong các phần dưới đây
A Một số giao diện minh họa
Hệ thống gợi ý bán hàng trực tuyến được cài đặt theo mô hình ứng dụng web Hệ thống thực hiện ghi nhận thông tin phản hồi từ người dùng (số lần click xem sản phẩm, số lần mua sản phẩm) để làm dữ liệu huấn luyện cho xây dựng mô hình gợi ý Khi mô hình huấn luyện được xây dựng hoàn tất, hệ thống sẽ thực hiện dự đoán mức độ yêu thích của người dùng trên các sản phẩm, đưa ra gợi ý TOP-N các các sản phẩm mới Hệ thống gợi ý sản phẩm này, còn gợi ý cho người dùng mới theo giá trị dự đoán trung bình toàn cục của các sản phẩm, đồng thời liệt kê những sản phẩm tương tự với sản phẩm đang xem, bên cạnh đó còn thể hiện các sản phẩm bán chạy nhất, sản phẩm mới nhất
Gợi ý sản phẩm cho khách hàng: Sau khi người dùng đăng nhập vào hệ thống, sẽ nhận được các sản phẩm gợi ý
dựa trên các phản hồi mà hệ thống ghi nhận được từ người dùng như minh họa trong hình 7
Huấn luyện lại mô hình gợi ý: Chúng tôi cũng xây dựng công cụ hỗ trợ admin huấn luyện lại toàn bộ mô hình gợi ý
sau một thời gian sử dụng như minh họa trong Hình 8 Ngoài ra còn rất nhiều tính năng khác như quản lý khách hàng, giỏ hàng, thanh toán,… tương tự như bất kỳ một hệ thống thương mại điện tử nào khác
Trang 8Hình 5 Sơ
Hình 6 Lược
đồ use case của
đồ cơ sở dữ liệ
a khách hàng
ệu của hệ thống
Trang 9B
p
a
T
k
608
B Đánh giá
Chúng
phẩm và 637 đ
a So sánh kế
Kết quả
Thực nghiệm c
kể (chỉ có 0.18
kết quả của c
tôi thu thập th
đánh giá (số lần
ết quả sử dụng
ả kiểm tra dùn
cho thấy rõ ràn
878 trong khi c
Stt l
Tru
PHƯ
các mô hình d
hông tin phản
n mua lớn nhấ
g thông tin ph
ng độ đo MA
ng rằng khi sử chỉ sử dụng mộ
B lần kiểm tra
1
2
3
4
5
6
7
8
9
10
ng bình
ƯƠNG PHÁP XÂ
dự đoán
n hồi từ người
ất là 4, số lần x
hản hồi tiềm ẩn
E cho các mô
ử dụng kết hợp
ột thông tin ph
Bảng 1 So sánh
ui
r ˆ1
0.43 0.43 0.43 0.42 0.43 0.43 0.43 0.43 0.43 0.44
0.40
Hình 7 Gợi
ÂY DỰNG HỆ TH
i dùng thực, tậ xem sản phẩm
n
ô hình ở công
p cả 2 thông tin
ản hồi độ lỗi l
h tỉ lệ lỗi MAE
ý sản phẩm ch
HỐNG GỢI Ý SẢ
ập dữ liệu thu lớn nhất là 12
thức (13), (14
n phản hồi từ lần lượt là 0.40
của các mô hìn
ui
r ˆ2
0.3533 0.3365 0.3466 0.3416 0.3424 0.3431 0.3553 0.3519 0.3486 0.3453
0.3464
o khách hàng
ẢN PHẨM SỬ D
u được gồm 1 2.25)
4), (15) được
người dùng, đ
087 và 0.3464)
nh
ui
rˆ
0.1848 0.1922 0.1873 0.1917 0.1942 0.1883 0.1864 0.1837 0.1829 0.1869
0.1878
DỤNG PHẢN HỒ
186 người dùn
trình bày tron
độ lỗi MAE giả 4)
ỒI TIỀM ẨN
ng, 174 sản
ng Bảng 1
ảm đi đáng
Trang 10p
[
li
h
đ
tr
lỗ
1
b So sánh kết
Kết quả
phản hồi tiềm
2][7] như min
Bên cạn
iệu benchmark
http://www.rec
được thu thập
rên độ đo lỗi M
ỗi thấp hơn cá
http://stackov
t quả với các g
ả so sánh trên
ẩn, tỷ lệ lỗi cũ
nh họa trong H
Hình 9 Độ lỗi
nh đó, chúng t
k cung cấp bở
csyswiki.com/w
dữ liệu bán hà
MAE và RMS
ác phương pháp
verflow.com/q
Hìn
giải thuật nền
độ đo chuẩn M ũng thấp hơn
Hình 9
i MAE của các
tôi cũng so sán
ởi cộng đồng wiki/Grocery_
àng trong thán
SE được trình b
áp baseline khá
Hình 10 Độ lỗ
questions/250
nh 8 Giao diện
(baseline) khá
Mean Absolut các phương p
giải thuật dự đo
nh phương phá người dùng n _shopping_dat
ng 12 năm 20
bày trong Hìn
ác
ỗi MAE và RM
14904/downlo
n hỗ trợ huấn luy
ác
te Error (MAE pháp nền khác
oán trên tập dữ
áp sử dụng phả nghiên cứu về tasets Chúng
00, bao gồm 1
h 10 Kết quả
SE của các giải
oad-link-for-ta
yện lại các mô h
E) cho khi sử d như: Global A
liệu thu thập từ
ản hồi tiềm ẩn
ề hệ thống gợi tôi sử dụng tậ
15447 users, 1 này cũng cho
i thuật trên tập d
a-feng-grocery
hình
dụng phương Average, User
ừ người dùng thự
n với các phươ
i ý, các tập dữ
ập dữ liệu
Ta-780 items, và
o thấy sử dụng
dữ liệu Ta-Feng
y-dataset
pháp dành ch
r Average, Item
ực của hệ thống
ơng pháp khác
ữ liệu này có -Feng1 có tên
à 178216 rating
g phản hồi tiềm
g
o thông tin
m Average
g
trên tập dữ tại địa chỉ
là D12, đã
gs Kết quả
m ẩn cho độ