Gi i thi u v Apache Mahout
Page 1 of 13
Gi i thi u v Apache Mahout
!
M c
"
#
: Trung bình
Grant Ingersoll, K s ph n m m cao c p, Center for Natural Language Processing at Syracuse University
18 12 2009
M t khi l nh v c c quy n c a các vi n nghiên c u và các t ng công ty có ngân sách nghiên c u l n là
các ng d ng thông minh h c
c t các d li u và u vào c a ng i dùng ang tr nên ph bi n h n.
Nhu c u v các k thu t h c máy nh phân c m, l c c ng tác và phân lo i ch a bao gi l n h n bây gi ,
do nó cho phép th y
c s t ng ng gi a các nhóm ông ng i ho c t
ng thêm vào kh i l ng
l n n i dung Web. D án Apache Mahout làm cho vi c xây d ng các ng d ng thông minh d dàng h n
và nhanh h n. Ng i ng sáng l p Mahout Grant Ingersoll gi i thi u các khái ni m c b n v h c máy
r i trình di n cách s d ng Mahout phân c m các tài li u, bình lu n và t ch c n i dung.
D n d n s thành công c a các công ty và nh ng cá nhân trong th i i thông tin ph thu c vào cách h chuy n s
l ng l n d li u sang thông tin hành ng m t cách nhanh và hi u qu nh th nào. Cho dù ó là x lý hàng tr!m
ho c hàng ngàn th i n t (e-mail) cá nhân m t ngày ho c oán bi t ý "nh c a ng i dùng t hàng tri u t# byte
(petabyte) c a các weblog, s c n thi t có các công c có th t ch c và t!ng c ng d li u ch a bao gi l i l n n
nh v y. $i m then ch t c a gi thuy t và tri n v ng c a l nh v c h c máy và d án mà bài vi t này gi i thi u là:
Apache Mahout (xem Tài nguyên).
H c máy là m t l nh v c c a trí tu nhân t o, c p các k thu t cho phép các máy tính c i thi n k t qu
u ra c a
chúng d a trên kinh nghi m có tr c. L nh v c này liên quan ch t ch% n vi c khai thác d li u và th ng s d ng
các k thu t t th ng kê, lý thuy t xác su t, nh n d ng và m t lo t các l nh v c khác. M c dù h c máy không ph i là
m t l nh v c m i, nó phát tri n ch&c ch&n. Nhi u công ty l n, g m c IBM®, Google, Amazon, Yahoo! và Facebook,
ã tri n khai th c hi n các thu t toán h c máy trong các ng d ng c a h . Càng ngày càng có nhi u công ty s%
c
h ng l i t vi c s d ng h c máy trong các ng d ng c a mình tìm hi u v ng i dùng và nh ng tình hu ng quá
kh .
Sau khi a ra m t t ng quan ng&n v khái ni m h c máy, tôi s% gi i thi u cho b n v các c tính, l"ch s và các m c
tiêu c a d án Apache Mahout. Sau ó, tôi s% cho b n th y cách s d ng Mahout th c hi n m t s nhi m v h c
máy thú v" b'ng cách s d ng t p d li u Wikipedia có s(n sàng mi n phí.
101 cách h c máy
H c máy s d ng m t lo t y
t vi c ch i trò ch i phát hi n gian l n n phân tích th" tr ng ch ng khoán. Nó
c s d ng xây d ng các h th ng nh các h th ng Netflix và Amazon
xu t các s n ph)m cho ng i
dùng d a trên các vi c mua hàng tr c ây ho c các h th ng tìm t t c các bài vi t th i s t ng t trong m t
ngày c th . Nó c*ng có th
c dùng phân lo i t
ng các trang Web theo th lo i (th d c th thao, kinh t ,
chi n tranh và v.v) ho c
ánh d u e-mail là th rác. Vi c s d ng h c máy có nhi u th h n là tôi có th trình bày
trong bài vi t này. N u b n quan tâm n vi c khám phá l nh v c này sâu h n, tôi khuyên b n nên tham kh o ph n Tài
nguyên.
M t s cách ti p c n n h c máy th ng s d ng gi i quy t các v n . Tôi s% t p trung vào hai v n
cs
d ng chung nh t — h c có giám sát và h c không giám sát — vì chúng là nh ng v n chính
c Mahout h+ tr .
H c có giám sát
c giao nhi m v h c m t ch c n!ng t d li u hu n luy n
c ghi nhãn d oán giá tr" c a
b t k, u vào h p l nào. Các ví d th ng g p c a h c có giám sát g m vi c phân lo i các e-mail là th rác, ghi
nhãn các trang Web theo th lo i c a chúng và nh n d ng ch vi t tay. Nhi u thu t toán
c s d ng t o nh ng
trình h c (learner) có giám sát, ph bi n nh t là các m ng th n kinh, Support Vector Machines (SVMs-Các máy Vect
h+ tr ) và các trình phân lo i (classifier) Naive Bayes.
H c không giám sát, nh b n có th oán,
cái gì là úng hay sai. Nó h u nh th ng
c giao nhi m v có ý ngh a v d li u mà không có các ví d b t k, v
c s d ng phân c m u vào t ng t thành các nhóm h p lý. Nó
Gi i thi u v Apache Mahout
c*ng có th dùng
phát hi n các xu h
b n
t t ch c.
Page 2 of 13
gi m s l ng chi u trong m t t p d li u ch- t p trung vào các thu c tính có ích nh t ho c
ng. Các cách ti p c n ph bi n h c không giám sát g m k-Means, phân c m theo phân c p và
$ i v i bài này, tôi s% t p trung vào ba nhi m v h c máy c th mà Mahout hi n nay tri n khai th c hi n. Chúng
ng.u nhiên là ba l nh v c th ng
c s d ng trong các ng d ng th c t :
L c c ng tác
Phân c m
Phân lo i
Tôi s% xem xét sâu h n m+i m t nhi m v này
Mahout.
m c khái ni m tr
c khi kh o sát vi c th c hi n c a chúng trong
L c c ng tác
L c c ng tác (Collaborative filtering-CF) là m t k thu t,
c Amazon và nh ng hãng khác ph bi n, s d ng thông
tin c a ng i dùng nh s x p lo i, s nh n chu t và s mua hàng
a ra nh ng bình lu n cho ng i dùng c a
trang Web khác. CF th ng
c s d ng bình lu n các m c cho ng i dùng nh là sách, âm nh c và phim nh,
nh ng nó c*ng
c s d ng trong các ng d ng khác, n i nhi u di n viên c n ph i c ng tác thu h/p b t d li u.
Có th b n ã nhìn th y CF ang ho t ng trên Amazon, nh trong Hình 1:
Hình 1. Ví d v l c c ng tác trên Amazon
D a vào m t t p nh ng ng i dùng và các m c, các ng d ng CF cung c p các bình lu n cho ng
h th ng. B n cách t o các bình lu n i n hình:
D a vào-ng i dùng: Bình lu n các m c b'ng cách tìm nh ng ng
r ng do c tính ng c a ng i dùng.
i dùng t
i dùng hi n t i c a
ng t . $i u này th
D a vào-m c: Tính toán s gi ng nhau gi a các m c và a ra các bình lu n. Các m c th
nhi u, do ó, i u này th ng có th
c c tính ngo i tuy n (offline).
Nghiêng v m t phía: M t cách ti p c n bình lu n d a vào m c r t nhanh chóng và
khi ng i dùng ã a ra s x p lo i (và không ch- theo logic úng/sai).
D a vào-mô hình: $ a ra các bình lu n d a vào phát tri n mô hình c a nh ng ng
chúng.
ng khó m
ng không thay
n gi n có th áp d ng
i dùng và s x p lo i c a
T t c các cách ti p c n c a CF k t thúc vi c tính toán m t khái ni m t ng
ng gi a ng i dùng và các m c ã
ánh giá c a h . Có nhi u cách tính toán s t ng
ng và h u h t các h th ng CF cho phép b n g&n vào các
phép o khác nhau b n có th xác "nh phép o nào ho t ng t t nh t i v i d li u c a b n.
Phân c m
i
Gi i thi u v Apache Mahout
Page 3 of 13
D a vào các t p d li u l n, cho dù chúng là v!n b n ho c s , t
ng nhóm v i nhau, ho c phân c m, các m c
t ng t th ng r t có ích. Ví d , c!n c vào t t c các tin t c trong ngày t t t c các t báo Hoa K,, b n có th
mu n t
ng nhóm t t c các bài vi t v câu chuy n gi ng nhau cùng v i nhau, sau ó b n có th ch n t p trung vào
các nhóm và các câu chuy n c th mà không c n ph i v t v l t qua nhi u vi c không liên quan. M t ví d khác:
c!n c vào u ra t b c m bi n trên máy trên toàn b th i gian, b n có th nhóm các k t qu
u ra xác "nh ho t
ng bình th ng so v i ho t ng có v n , vì các ho t ng bình th ng s% nhóm t t c l i v i nhau và các ho t
ng b t th ng s% trong các nhóm khác.
Có nhi u cách ti p c n tính toán các c m, m+i c m có s th0a hi p riêng c a mình. M t s cách ti p c n th c hi n
t d i lên, xây d ng các c m l n h n t cái nh0 h n, trong khi nh ng cách khác l i chia m t c m l n thành nhi u
c m càng nh0 h n càng t t. C hai u có tiêu chu)n thoát ra kh0i quá trình này t i m t s i m tr c khi chúng
phân ra thành m t s bi u di n c m t m th ng (t t c các m c trong m t c m ho c t t c các m c trong c m riêng
c a chúng). Các cách ti p c n ph bi n g m phân c m k-Means và phân c m theo h th ng phân c p. Nh tôi s% trình
bày sau, Mahout i kèm v i m t s cách ti p c n phân c m khác nhau.
Phân lo i
M c tiêu c a s phân lo i (th ng
c g i là phân l p-classification) là ghi nhãn các tài li u vô hình, theo ó
nhóm chúng l i v i nhau. Nhi u cách ti p c n phân lo i theo cách h c máy tính toán m t lo t các s li u th ng kê
k t h p các c tính c a m t tài li u v i nhãn c th , vì th t o m t mô hình có th
c s d ng sau này phân lo i
các tài li u vô hình. Ví d , m t cách ti p c n n gi n cho vi c phân lo i có th theo dõi các t có liên k t v i m t
nhãn, c*ng nh s l n nh ng t
c nhìn th y v i m t nhãn nh t "nh. Sau ó, khi m t tài li u m i
c phân lo i,
c
các t trong tài li u này
c tìm ki m trong mô hình này, các kh n!ng x y ra
c tính toán và k t qu t t nh t
a ra, th ng là cùng v i m t i m s cho th y s tin t ng là k t qu chính xác.
Các c tính phân lo i có th g m các t , các tr ng s
i v i nh ng t ó (ví d , d a trên t n su t), các ph n c a bài
phát bi u, v.v. T t nhiên, các c tính th c s có th là b t c i u gì ó tr giúp liên k t m t tài li u v i m t nhãn và
có th
c tích h p vào thu t toán.
L nh v c h c máy l n và m nh m%. Thay vì t p trung nhi u h n vào lý thuy t, mà nó không th th c hi n hoàn toàn
thích h p
ây, tôi s% ti n lên và i sâu nghiên c u Mahout và cách s d ng c a nó.
Gi i thi u v Mahout
Apache Mahout là m t d án mã ngu n m m i c a Apache Software Foundation (ASF-Qu ph n m m Apache) v i
m c tiêu chính là t o các thu t toán h c máy có kh n!ng m r ng, các thu t toán này là mi n phí s d ng theo gi y
phép Apache. D án này ang b c vào n!m th hai c a mình, v i b n phát hành công khai trong ph m vi c a nó.
Mahout bao g m các vi c th c hi n phân c m, phân lo i, CF và l p trình ti n hóa. H n n a, nó khôn khéo s d ng
th vi n Apache Hadoop cho phép Mahout m r ng hi u qu trong ám mây này (xem Tài nguyên).
L ch s
Mahout
D án Mahout
c b&t u b i m t s ng i tham gia vào c ng ng
Lucene Apache (tìm ki m mã ngu n m ) v i m t s quan tâm tích c c
trong vi c h c máy và mong mu n v th c hi n m nh m%, có y
các tài li u c n thi t, có kh n!ng m r ng c a các thu t toán h c máy
ph bi n cho vi c phân c m và phân lo i. C ng ng này ban u
c báo "Map-Reduce for Machine Learning on Multicore" (MapReduce cho h c máy theo a lõi) c a Ng và c ng s (xem Tài nguyên)
nh ng ã phát tri n trình bày các cách ti p c n h c máy r ng h n.
Mahout c*ng nh'm m c ích:
Tên có ngh a gì?
Mahout (ng i qu n t ng) là m t ng i
nuôi và i u khi n m t con voi. Tên
Mahout xu t phát t vi c s d ng (tr c
ây) d án c a Apache Hadoop — trong
ó con voi màu vàng là bi u t ng c a nó
— v i kh n!ng m r ng và có kh n!ng
ch"u l+i.
Xây d ng và h+ tr m t c ng ng nh ng ng i dùng và nh ng ng i óng góp sao cho mã này v
k, tác ng nào c a ng i óng góp c th , b t k, công ty, ho c qu tài tr
i h c.
T p trung vào tr
ng h p s d ng th c t , th gi i th c,
i l p v i nghiên c u hay các k thu t m i.
t trên b t
Gi i thi u v Apache Mahout
Page 4 of 13
Cung c p các tài li u và ví d có ch t l
Các
ng.
c tính
M c dù t ng i m i trong thu t ng mã ngu n m , Mahout ã có m t s l
quan n vi c phân c m và CF. Các c tính chính c a Mahout là:
Taste CF. Taste là m t d án mã ngu n m cho CF
c kh i
u b i Sean Owen trên SourceForge và
c t ng cho Mahout
vào n!m 2008.
M t s vi c th c hi n phân c m c a Map-Reduce có s(n, g m
k-Means, fuzzy k-Means, Canopy, Dirichlet và Mean-Shift.
Các vi c th c hi n phân lo i Naive Bayes phân tán và Naive
Bayes ph .
Các kh n!ng c a hàm phù h p phân tán
hóa.
i v i l p trình ti n
ng l n các ch c n!ng,
c bi t liên
M t vài l i v Map-Reduce
Map-Reduce là m t API l p trình phân tán
c Google phát minh ra và
c th c
hi n trong d án Apache Hadoop. $ c
k t h p v i m t h th ng t p phân tán,
th ng nó làm cho các v n song song
hóa tr nên d dàng h n b'ng cách cung
c p cho các l p trình viên m t API rõ ràng
mô t công vi c tính toán song song.
(Xem ph n Tài nguyên bi t thêm thông
tin.)
Các th vi n ma tr n và vect .
Các ví d v t t c các thu t toán
B t
trên.
u v i Mahout
B&t u và th c hi n v i Mahout là t
ây:
ng
i
n gi n. $ kh i
ng, b n c n ph i cài
t các i u ki n c n tr
c sau
JDK 1.6 ho c cao h n
Ant 1.7 ho c cao h n
Maven 2.0.9 ho c 2.0.10, n u b n mu n xây d ng mã ngu n Mahout
B n c*ng c n mã m.u c a bài vi t này (xem ph n T i v ), trong ó có m t b n sao c a Mahout và các ph thu c c a
nó. Hãy th c hi n theo các b c sau cài t mã m.u:
1. unzip sample.zip
2. cd apache-mahout-examples
3. ant install
B c 3 t i v các t p Wikipedia c n thi t và biên d"ch mã. Các t p Wikipedia th
gian t i v s% ph thu c vào b!ng thông c a b n.
ng dùng x p x- 2,5GB, vì th th i
Xây d ng m t máy bình lu n
Mahout thi n ang cung c p các công c
xây d ng m t máy bình lu n thông qua các th vi n Taste — m t máy
nhanh và linh ho t cho CF. Taste h+ tr bình lu n d a vào ng i dùng và d a vào m c và i kèm v i nhi u s l a
ch n xây d ng các bình lu n, c*ng nh các giao di n cho b n
"nh ngh a riêng c a b n. Taste g m n!m thành ph n
chính làm vi c v i User (nh ng ng i dùng), Item (các m c) và Preference (các s thích):
DataModel: L u tr cho các User, các Item, và các Preference.
UserSimilarity: Giao di n "nh ngh a s t ng
ng gi a hai ng i dùng.
ItemSimilarity: Giao di n "nh ngh a s t ng
ng gi a hai m c.
Recommender: Giao di n
cung c p các bình lu n.
UserNeighborhood: Giao di n
tính toán m t vùng lân c n c a nh ng ng i dùng t
Recommender (Nh ng ng i bình lu n) s d ng.
ng t có th
c
Các thành ph n này và các vi c th c hi n c a chúng giúp cho nó có th xây d ng các h th ng bình lu n ph c t p cho
Gi i thi u v Apache Mahout
Page 5 of 13
ho c các bình lu n d a trên th i gian th c ho c các bình lu n ngo i tuy n (offline). Các bình lu n d a trên th i gian
th c th ng có th làm vi c v i vài nghìn ng i dùng, trong khi các bình lu n ngo i tuy n có th m r ng l n h n
nhi u. Taste th m chí i kèm v i các công c có s d ng Hadoop tính toán các bình lu n ngo i tuy n. Trong nhi u
tr ng h p, ây là m t ti p c n h p lý cho phép b n áp ng các yêu c u c a m t h th ng l n có r t nhi u ng i
dùng, các m c và các s thích.
$ gi i thích vi c xây d ng m t h th ng n gi n, tôi c n m t s ng i dùng, các m c, và các s x p lo i. V i m c
ích này, tôi ng.u nhiên ã t o m t t p l n các User và các Preference cho các tài li u Wikipedia (các Item theo
cách nói Taste) khi s d ng mã trong cf.wikipedia.GenerateRatings (có trong mã ngu n v i mã m.u) r i b
sung i u này b'ng m t t p các s x p lo i th công xung quanh m t ch
c th (Abraham Lincoln) t o t p
recommendations.txt cu i cùng có trong ví d này. Ý t ng 'ng sau cách ti p c n này là ch- ra cách CF có th h ng
d.n nh ng ng i hâm m m t ch
c th t i các tài li u quan tâm khác trong ch
ó. Trong ví d , d li u là 990
(có nhãn 0-989) ng i dùng ng.u nhiên, nh ng ng i ã ch- "nh các s x p lo i ng.u nhiên cho t t c các bài vi t
trong b s u t p và 10 ng i dùng (
c ghi nhãn 990-999), nh ng ng i ã ánh giá m t ho c nhi u bài trong s 17
bài vi t trong b s u t p có ch a c m t Abraham Lincoln.
$ b&t u, tôi s% gi i thích cách t o các bình lu n cho m t ng i dùng
d a vào t p x p lo i trong t p recommendations.txt. Nh là tr ng
h p v i h u h t các l n s d ng Taste, b c u tiên là n p d li u có
ch a các bình lu n và l u tr nó trong m t DataModel. Taste i kèm
v i m t s vi c th c hi n khác nhau c a DataModel làm vi c v i
các t p và các c s d li u. V i ví d này, tôi s% gi cho tình hình
n gi n và s d ng l p FileDataModel, nó d ki n m+i dòng ph i
có d ng: mã nh n d ng (ID) c a ng i dùng, ID c a m c, s thích —
ây c ID ng i dùng l.n ID m c là các chu+i, trong khi s thích có
th là m t chu+i kép. C!n c vào m t mô hình, tôi c n ph i cho Taste
bi t cách nó nên so sánh nh ng ng i dùng b'ng cách khai báo m t
vi c th c hi n UserSimilarity. Tùy thu c vào vi c th c hi n
UserSimilarity
c s d ng, b n c*ng có th ph i nói cho cho
Taste cách suy ra các s thích n u thi u m t giá tr" cài t rõ ràng cho
ng i dùng. Li t kê 1 t t t c nh ng t này vào trong mã
(cf.wikipedia.WikipediaTasteUserDemo trong mã m.u có ch a
li t kê y .)
Li t kê 1. T o mô hình và
!
nh ngh a s t
"
# "
ng
$%
ng c a ng
&
&
"
Hãy coi ch ng d li u có s n!
Ví d
c trình bày
ây có ch a d li u
có s(n hoàn toàn. Tôi ã t th c hi n t t c
x p lo i, mô ph0ng 10 ng i dùng th c t ,
nh ng ng i mu n có thông tin v
Abraham Lincoln. Trong khi tôi tin r'ng
khái ni m 'ng sau d li u này là áng
quan tâm, thì chính d li u và các giá tr"
c s d ng l i không áng tin. N u b n
mu n d li u th c, tôi khuyên b n nên
ki m tra d án GroupLens t i $ i h c
Minnesota và tài li u h ng d.n Taste
(xem Tài nguyên). Tôi ã ch n ch-nh s a
d li u vì mu n s d ng ch- m t t p d
li u xuyên su t t t c các ví d .
i dùng
# "
Trong Li t kê 1, tôi s d ng PearsonCorrelationSimilarity, ánh giá s t ng quan gi a hai bi n, nh ng c*ng
có các phép o UserSimilarity khác. S l a ch n c a m t phép o s t ng
ng ph thu c vào ki u d li u hi n
t i và vi c th nghi m c a b n. $ i v i d li u này, tôi ã tìm th y s k t h p này làm vi c t t nh t trong khi v.n
gi i thích các v n . B n s% tìm th y nhi u thông tin h n v vi c ch n m t phép o s t ng
ng t i trang Web
Mahout (xem Tài nguyên).
$ hoàn thành ví d này, tôi xây d ng m t UserNeighborhood và m t Recommender. UserNeighborhood nh n
bi t nh ng ng i dùng t ng t nh ng i dùng c a tôi và
c giao quy n cho Recommender, nó sau ó th c hi n
vi c t o m t danh sách x p lo i các m c
c bình lu n. Li t kê 2 thu hút
c nh ng ý t ng trong mã:
Li t kê 2. T o các bình lu n
'
& (
)
"
& (
& (
)
)
)
'
!&
./////.
& (
& (
* +
+
,
!
!
,
+
#
& (
+
Gi i thi u v Apache Mahout
!
!
.
!
"
Page 6 of 13
. 0
"
1
'
3
"
+
!
2
4,
#
5
!
1
!
# + 2
+
,
!
B n có th ch y ví d
y
trên dòng l nh b'ng cách th c hi n l nh ant user-demo trong th m c ch a m.u.
Ch y l nh này in các s thích và các bình lu n cho ng i dùng t ng t ng 995, ng i ng.u nhiên là m t ng i hâm
m c a Lincoln. Li t kê 3 cho th y k t qu t vi c ch y l nh ant user-demo:
Li t kê 3. K t qu t bình lu n c a ng
6
7 '
&
69 % 7 :8 :;
"
"
69 % 7 :8 :;
69 % 7 :8 :;
69 % 7 :8 :;
69 % 7
69 % 7 /////
69 % 7
69 % 7 1
69 % 7 1
69 % 7 1
69 % 7 1
69 % 7 1
69 % 7 1
,
69 % 7 1
69 % 7 1
69 % 7 ,
69 % 7
#
69 % 7
#
69 % 7
#
69 % 7
#
69 % 7
#
"
<: :; => 2= #)
i dùng
882
!
"
<: :; => 2= #)
"
<: :; => 2= #)
"
<: :; => 2= #)
"
=::: #
& (
" 2
&
! ?
,
!
!
!
& "
,
<<;@
882
$ &
<= ,
& >!8>:::::AAB2B<:<
$
,
& ::::A;AA@22=
$
== ,
& @!<>:::::=8:B>@;A
" '
( & ,
& 2!:
$(
3
,
& @!B>8888BB===;=A@
C
" 1
" D
" 3
& >!@>:::::AAB2B<:<
(
,
& <2B
$
+ '
&
,
& @!@<8888;<;>>;A<>
2:2B2 1
=>@=:=>@; 1
=>>@@2B@; 1
==8>BA@ 1
<@=B8>B 1
$
=:
$
&
F
/
@!8;
@!;A:2@=
:;AA<
@!@:@:AA
@!<@=B;
D
T các k t qu trong Li t kê 3, b n có th th y r'ng h th ng ã bình lu n m t s bài vi t v i các m c tin t ng khác
nhau. Trong th c t , m+i m t m c này ã
c nh ng ng i hâm m Lincoln ánh giá, nh ng không ph i do ng i
dùng 995. N u b n mu n xem k t qu c a nh ng ng i dùng khác, ch- c n dùng tham s -Duser.id=USER-ID trên
dòng l nh,
ây USER-ID (mã nh n d ng ng i dùng) là m t s n'm gi a 0 và 999. B n c*ng có th thay i quy mô
c a vùng lân c n b'ng cách dùng tham s -Dneighbor.size=X,
ây X là s nguyên l n h n 0. Trong th c t , vi c
thay i quy mô vùng lân c n t i 10 a ra k t qu r t khác nhau, k t qu này ch"u nh h ng b i th c t là m t trong
nh ng ng i dùng ng.u nhiên trong vùng lân c n. $ xem các vùng lân c n c a ng i dùng và các m c nói chung,
hãy thêm -Dcommon=true vào dòng l nh.
Bây gi , n u b n ã tình c nh p m t s không n'm trong ph m vi c a ng i dùng, b n có th th y r'ng ví d này
l ra m t NoSuchUserException. Th t v y, ng d ng c a b n s% c n bi t làm gì khi m t ng i dùng m i nh p vào
h th ng. Ví d , b n ch- có th hi n th" 10 bài vi t ph bi n nh t, m t s l a ch n ng.u nhiên các bài báo, ho c m t s
l a ch n m t c a các bài vi t "khác nhau" — ho c v i v n
ó, ch1ng có gì c .
Nh tôi ã c p tr c ó, cách ti p c n d a trên ng i dùng th ng không m r ng
c. Trong tr ng h p này, t t
h n là s d ng m t cách ti p c n d a trên m c-m c. R t may, Taste giúp cho vi c s d ng ti p c n d a trên m c-m c
c*ng d dàng. Mã c b n t o và ch y v i s t ng
ng c a m c-m c không khác nhau nhi u, nh b n có th
th y trong Li t kê 4:
Li t kê 4. Ví d v s t
ng
ng m c-m c (t cf.wikipedia.WikipediaTasteItemItemDemo)
#
#
3 &3 E
#
#
-
-
,
,
'
#
-
,
+
'
3
4,
#
5
!
# + 2
Gi i thi u v Apache Mahout
1
!
Page 7 of 13
,
+
!
C*ng nh trong Li t kê 1, tôi t o m t DataModel t t p các bình lu n, nh ng cùng lúc này, thay cho vi c t o phiên
b n m t cá th UserSimilarity, tôi t o m t ItemSimilarity khi s d ng LogLikelihoodSimilarity, giúp
x lý các s ki n hi m th y. Sau ó, tôi a ItemSimilarity t i m t ItemBasedRecommender và yêu c u bình
lu n. V y ó! B n có th ch y cái này trong mã m.u thông qua l nh ant item-demo. T ây, t t nhiên, b n mu n
thi t l p h th ng c a b n th c hi n các tính toán này ngo i tuy n và b n c*ng có th nghiên c u các phép o
ItemSimilarity khác. L u ý r'ng, do tính ng.u nhiên c a các d li u trong ví d này, các bình lu n có th không
c nh mong i. Trong th c t , i u quan tr ng là ch&c ch&n r'ng b n ánh giá k t qu c a mình trong th i gian
th nghi m và th nghi m các s li u thông kê c a s t ng
ng khác n a, do nhi u s li u th ng kê chung có
tr ng h p c nh ngoài nào ó, nên tr ng h p này ng ng ho t ng khi d li u có s(n không
a ra các bình
lu n phù h p.
Quay l i ví d ng i dùng m i, v n ph i làm gì n u thi u các s thích ng i dùng ã tr nên d dàng ti p c n h n
r t nhi u m t khi ng i dùng chuy n h ng n m t m c. Trong tr ng h p ó, b n có th t n d ng l i th c a các
tính toán m c-m c và yêu c u các ItemBasedRecommender cho các m c h u gi ng v i m c hi n hành. Li t kê 5
ch ng t0 i u này trong mã:
Li t kê 5.Ch
ng trình trình di n các m c t
ng (t cf.wikipedia.WikipediaTasteItemRecDemo)
ng
#
#
3 &3 E
#
#
-
-
,
,
'
#
-
,
'
3
+
"
4,
#
5
#
#
!
1
!
,
#
#
+
# +
,
!
B n có th ch y Li t kê 5 t dòng l nh b'ng cách th c hi n l nh ant sim-item-demo. S khác bi t th c s duy nh t
v i Li t kê 4 là Li t kê 5, thay vì yêu c u các bình lu n, l i yêu c u các m c hoàn toàn gi ng v i m c u vào.
T ây, b n c n ph i có
các th
b&t u v i Taste. $ tìm hi u thêm, hãy tham kh o tài li u h ng d.n Taste và
danh sách g i th [email protected] (xem Tài nguyên). Ti p theo, tôi s% xem xét cách tìm các bài vi t
t ng t b'ng cách s d ng m t s kh n!ng c a phân c m Mahout.
Phân c m v i Mahout
Mahout h+ tr m t s vi c th c hi n thu t toán phân c m, t t c
t p riêng c a nó v các m c tiêu và tiêu chu)n:
Canopy: M t thu t toán phân c m nhanh th
phân c m khác.
ng
u
c s d ng
c vi t b'ng Map-Reduce, m+i l n th c hi n có
t o ra các phôi ban
u cho các thu t toán
k-Means (và fuzzy k-Means): Phân c m các m c thành k nhóm d a trên kho ng cách các m c t tr ng tâm
ho c trung tâm c a l n l p l i tr c.
Mean-Shift: Thu t toán không yêu c u b t k, ki n th c c n có tr
nhóm có d ng tùy ý.
cv s l
ng các nhóm và có th t o ra các
Dirichlet: Phân c m d a trên s pha tr n c a nhi u mô hình xác su t cung c p cho nó l i th là không c n ph i
ghi nh tr c m t khung nhìn c th c a các nhóm.
Theo quan i m th c t , các tên và các l n th c hi n không quan tr ng nh các k t qu mà chúng t o nên. V i ý ngh
ó, tôi s% hi n th" cách k-Means làm vi c và l i nh ng cái khác cho b n khám phá. Hãy ghi nh r'ng m+i thu t toán
Gi i thi u v Apache Mahout
có các yêu c u riêng c a mình
Page 8 of 13
làm cho nó ho t
Theo phác th o (có nhi u chi ti t h n
Mahout là:
ng hi u qu .
ti p t c), các b
c có liên quan trong vi c phân c m d li u khi s d ng
1. Chu)n b" u vào. N u phân c m v!n b n, b n c n chuy n i bi u di n v!n b n thành bi u di n s .
2. Ch y thu t toán l a ch n phân c m nh s d ng m t trong nhi u trình i u khi n Hadoop ã có s(n trong
Mahout.
3. $ánh giá các k t qu .
4. L p l i n u c n thi t.
$ u tiên và tr c h t, các thu t toán phân c m yêu c u d li u theo m t "nh d ng phù h p x lý. Trong vi c h c
máy, d li u th ng
c bi u di n nh là véc t , ôi khi
c g i là m t vect
c tính. Trong vi c phân c m, m t
vect là m t m ng c a các tr ng s bi u di n d li u. Tôi s% gi i thích vi c phân c m b'ng cách s d ng các vect
c t o t các tài li u Wikipedia, nh ng các vect có th
n t các l nh v c khác, ch1ng h n nh d li u c m bi n
ho c h s ng i dùng. Mahout i kèm v i hai bi u di n Vector: DenseVector và SparseVector. Tùy thu c vào
d li u c a b n, b n s% c n ph i ch n vi c th c hi n phù h p
t
c hi u n!ng t t. Nói chung, các v n d a
trên v!n b n th a th t, làm cho SparseVector là s l a ch n úng i v i chúng. M t khác, n u h u h t các giá tr"
cho h u h t các vect là khác không, thì m t DenseVector là thích h p h n. N u b n không ch&c ch&n, hãy th c
hai và nh n th y cái nào ho t ng nhanh h n trên m t t p con c a d li u c a b n.
$ t o ra các vect t n i dung Wikipedia (mà tôi ã làm cho b n):
1. L p ch- m c n i dung trong Lucene, ch&c ch&n l u tr các vect k, h n cho l nh v c mà b n mu n t o các
vect t ó. Tôi s% không trình bày các chi ti t v vi c này — nó n'm ngoài ph m vi c a bài vi t — nh ng tôi
s% cung c p m t s g i ý ng&n g n cùng v i m t s tài li u tham kh o trên Lucene. Lucene i kèm v i m t l p
g i là EnWikiDocMaker (trong gói contrib/benchmark), có th
c trong m t kho ch a t m th i t p
Wikipedia và a ra các tài li u l p ch- m c trong Lucene.
2. T o vect t ch- m c Lucene b'ng cách s d ng l p
org.apache.mahout.utils.vectors.lucene.Driver có trong mô un utils c a Mahout. Ch
ng trình
i u khi n này i kèm v i r t nhi u tu, ch n t o các vect . Trang wiki Mahout có tên Creating Vectors (T o
các Vect ) t Text (V!n b n) có nhi u thông tin (xem Tài nguyên).
Các k t qu c a vi c ch y hai b c này là m t t p gi ng nh t p n2.tar.gz mà b n ã t i xu ng trong ph n B&t u v i
Mahout. $ có y , t p n2.tar.gz g m các vect
c t o t vi c l p ch- m c c a t t c các tài li u trong t p "các
kh i d li u" c a Wikipedia ã
ct
ng t i v b'ng cách ph ng th c ant install trên. Các vect ã
c
2
chu)n hoá nh s d ng chu)n 2-clit (ho c chu)n L ; xem Tài nguyên). Khi s d ng Mahout, b n có th s% mu n th
t o các vect theo m t s cách xem cách nào mang l i các k t qu t t nh t.
D a vào m t t p các vect , b c ti p theo là ch y thu t toán phân c m
k-Means. Mahout cung c p các ch ng trình i u khi n cho t t c các
thu t toán phân c m, g m c thu t toán k-Means, có tên thích h p là
KMeansDriver. Trình i u khi n d s d ng khi là m t m t ch ng
trình c l p không có Hadoop, nh ã gi i thích b'ng cách ch y ant
k-means. Xin c t nhiên ki m tra ích Ant k-means trong build.xml
có thêm thông tin các i s mà KMeansDriver ch p nh n. Sau
khi quá trình này hoàn t t, b n có th in ra các k t qu b'ng cách dùng
l nh ant dump.
ánh giá các k t qu c a b n
Có nhi u cách ti p c n
ánh giá k t qu
phân c m c a b n. Nhi u ng i b&t u chn gi n b'ng cách s d ng ki m tra th
công và th nghi m c bi t. Tuy nhiên,
th c s hài lòng, i u c n thi t là s d ng
các k thu t ánh giá sâu h n nh là vi c
phát tri n m t tiêu chu)n vàng khi dùng
m t s ng i am hi u k thu t. $ tìm
hi u thêm v vi c ánh giá k t qu c a
b n, xem Tài nguyên. V i các ví d c a
tôi, tôi ã s d ng ki m tra th công
xem m t s k t qu ã
c c m v i nhau
th c s có ý ngh a không. N u tôi
c
a i u này vào trong s n xu t, tôi s% s
d ng m t quy trình nghiêm ng t h n nhi u.
Sau khi b n ã ch y thành công trong ch
c l p, b n có th ti n
hành ch y ch
phân tán trên Hadoop. $ làm nh v y, b n c n có
Mahout Job JAR, n'm trong th m c hadoop trong mã m.u. M t Job
Jar óng gói t t c các mã và các ph thu c vào trong ch- m t t p JAR
d dàng n p vào Hadoop. B n c*ng s% c n ph i t i v Hadoop 0.20
và làm theo các ch- d.n trên h ng d.n Hadoop ch y l n u tiên
trong ch
phân tán gi (có ngh a là t ng c m m t) và sau ó là ch
phân tán y . $ bi t thêm thông tin, xem trang Web Hadoop và
Tài nguyên, c*ng nh các tài nguyên i n toán ám mây c a IBM (xem Tài nguyên).
Gi i thi u v Apache Mahout
Page 9 of 13
Phân lo i n i dung v i Mahout
Mahout hi n ang h+ tr hai ph ng pháp ti p c n liên quan n vi c phân lo i/s&p x p có h th ng n i dung d a trên
s li u th ng kê Bayesian. Cách ti p c n u tiên là m t trình phân lo i Naive Bayes kích ho t Map-Reduce n gi n.
Các trình phân lo i Naive Bayes
c bi t là nhanh và khá chính xác, m c dù các gi "nh r t n gi n (và th ng
không chính xác) c a chúng v các d li u hoàn toàn c l p. Các trình phân lo i Naive Bayes th ng không ho t
ng khi kích th c c a các ví d hu n luy n cho m+i l p không
c cân b'ng ho c khi d li u
c l p. Ph ng
pháp th hai,
c g i là Naive Bayes ph , c g&ng ch-nh s a m t s v n v i cách ti p c n Naive Bayes trong khi
v.n duy trì tính n gi n và t c
c a nó. Tuy nhiên, v i bài vi t này, tôi s% ch- hi n th" cách ti p c n Naive Bayes,
b i vì nó gi i thích
c v n t ng th và các u vào trong Mahout.
Tóm l i, m t trình phân lo i Naive Bayes là m t quá trình hai ph n g m vi c theo dõi các c tính (các t ) có liên k t
v i m t tài li u và lo i riêng và sau ó s d ng thông tin ó d oán lo i n i dung m i, vô hình. B c u tiên,
c g i là hu n luy n, t o m t mô hình b'ng cách xem các ví d ã
c phân lo i v n i dung và sau ó theo dõi
các kh n!ng mà m+i t
c k t h p v i m t ph n n i dung c th . B c th hai,
c g i là phân lo i, s d ng mô
hình
c t o trong hu n luy n và n i dung c a m t tài li u m i, vô hình, cùng v i $"nh lý Bayes, d oán lo i tài
li u
c thông qua. Vì v y, ch y trình phân lo i Mahout, u tiên b n c n ph i hu n luy n theo mô hình và sau ó
s d ng mô hình ó phân lo i n i dung m i. Ph n ti p theo s% gi i thích cách th c hi n i u này b'ng cách s d ng
t p d li u Wikipedia.
Ch y trình phân lo i Naive Bayes
Tr c khi b n có th ch y các trình hu n luy n và trình phân lo i, b n c n th c hi n m t công vi c chu)n b" nh0
thi t l p m t b các tài li u v hu n luy n và m t b các tài li u v th nghi m. B n có th chu)n b" các t p Wikipedia
(t nh ng th b n ã t i v thông qua ích install b'ng cách ch y ant prepare-docs. Vi c này chia tách các t p
u vào Wikipedia khi s d ng l p WikipediaDatasetCreatorDriver có trong các ví d Mahout. Các tài li u
c chia tách d a trên tài li u có m t lo i gi ng v i m t trong các lo i quan tâm hay không. Các lo i quan tâm có th
là b t c lo i Wikipedia h p l nào (ho c th m chí là chu+i con b t k, c a m t lo i Wikipedia). Ch1ng h n, trong ví
d này, tôi có hai lo i: Khoa h c và L"ch s . Vì v y, b t k, lo i Wikipedia nào có m t lo i ch a t khoa h c ho c l ch
s ( ó không ph i là m t s t ng
ng chính xác) s%
c t vào m t thùng có các tài li u khác cho lo i ó. Ngoài
ra, m+i tài li u
c g&n th3 (tokenized) và
c chu)n hóa lo i b0 d u ch m câu, ánh d u Wikipedia và các c
tính khác mà không c n thi t cho công vi c này. Các k t qu cu i cùng s%
c l u trong m t t p có ghi nhãn v i tên
lo i ó, m t tài li u cho m+i dòng, ó là "nh d ng u vào mà Mahout trông i. C*ng v y, vi c ch y ant
prepare-test-docs th c hi n cùng công vi c v i các tài li u th nghi m. $i u quan tr ng là các tài li u th
nghi m và hu n luy n không trùng nhau, có th nghiêng v các k t qu . Theo lý thuy t, vi c s d ng các tài li u hu n
luy n th nghi m k t qu trong các k t qu hoàn h o, nh ng ngay c i u này không có kh n!ng trong th c hành.
Sau khi các b hu n luy n và th nghi m
c thi t l p, bây gi là lúc ch y các l p TrainClassifier thông qua
ích ant train. $i u này s% c n m t l ng l n l n !ng nh p t c hai Mahout và Hadoop. Sau khi hoàn thành, ant
test ch n các tài li u th nghi m m.u và c g&ng phân lo i chúng b'ng cách s d ng mô hình ã
c xây d ng
trong lúc hu n luy n. K t qu t m t th nghi m nh v y trong Mahout là m t c u trúc d li u g i là m t ma tr n
nh m l.n (confusion matrix). M t ma tr n nh m l.n mô t có bao nhiêu k t qu ã
c phân lo i úng và có bao
nhiêu
c phân lo i không úng cho m+i lo i.
Tóm l i, b n ch y các b
1.
2.
3.
4.
ant
ant
ant
ant
c sau
t o ra k t qu phân lo i:
prepare-docs
prepare-test-docs
train
test
Ch y t t c l nh này (classifier-example c a ích Ant b&t gi t t c chúng trong m t cu c g i),
tóm t&t và ma tr n nh m l.n
c hi n th" trong Li t kê 6:
Li t kê 6.Các k t qu t vi c ch y trình phân lo i Bayes cho l ch s và khoa h c
69 % 7 :8 :B << =; =: @2 #)
(
!1
"
a ra ma tr n
Gi i thi u v Apache Mahout
Page 10 of 13
69 % 7 :8 :B << =; =: @A #)
69
69
69
69
%
%
%
%
69 %
69
69
69
69
69
69
69
69
69
%
%
%
%
%
%
%
%
%
82!@2;8;@>B2
>8=: @:8A!:
!1
"
=2!22@:B<:8A=<;=B<
<>> =@8;!:
!1
"
(
7 :8 :B << =; =: @A #)
(
7
7 ///////////////////////////////////////////////////////
7
"
#
@=@>
B@!:A=2G
7 #
"
#
=@2=
<2!8>;2G
7 1
"
#
228@
7
7
7
"
?
7 ///////////////////////////////////////////////////////
7
(
4//
"
7 >8=:
=;A
H @:8A
7 =>
H =@8;
(
7
"
&
E
<
Các k t qu c a quá trình trung gian
c l u tr trong th m c có tên là wikipedia trong th m c c b n.
V i m t t p k t qu trong tay, câu h0i rõ ràng là: "Tôi ã th c hi n nh th nào?" B n tóm t&t nói rõ r'ng i khái tôi
ã nh n
c kho ng 75 ph n tr!m úng và 25 ph n tr!m không úng. Tho t nhìn i u này có v3 khá h p lý, c bi t
là b i vì nó có ngh a là tôi ã làm t t h n so v i cách d oán ng.u nhiên. Tuy nhiên, vi c ki m tra g n ây cho th y
r'ng tôi ã th c s làm t t khi d báo v l"ch s (kho ng 95 ph n tr!m úng) và th c s kém lúc d báo v khoa h c
(kho ng 15 ph n tr!m). Trong vi c tìm ki m lý do t i sao l i nh v y, vi c xem xét nhanh các t p u vào cho hu n
luy n cho th y r'ng tôi có nhi u ví d v l"ch s h n so v i khoa h c (kích th c t p là g n g p ôi), ó có l% là m t
v n ti m n!ng.
V i th nghi m này, b n có th thêm tùy ch n -Dverbose=true vào ant test, cho phép a ra thông tin v m+i
u vào th nghi m và nó ã
c ghi nhãn úng hay không. Nghiên c u k k t qu này, b n có th tra c u tài li u và
xem xét lý do nó ã
c phân lo i không úng. Tôi c*ng có th th các tham s
u vào khác nhau và c*ng có nhi u
d li u khoa h c và hu n luy n l i mô hình này xem tôi có th c i thi n k t qu này không.
$i u c*ng quan tr ng là suy ngh v l a ch n
WikipediaTokenizer c a Apache Lucene
b0 các thu t ng ph bi n ho c các thu t ng t
phân lo i này vào s n xu t, tôi s% ki m tra k h
v hi u n!ng.
c tính hu n luy n mô hình. $ i v i các ví d này, tôi ã s d ng t
g&n th3 các tài li u ban u, nh ng tôi ã không c g&ng nhi u lo i
p nham mà có th ã b" g&n th3 sai. N u tôi ang xem xét
a trình
n các u vào và các giá tr" cài t khác, c g&ng t!ng thêm m t chút
Ch- c n xem các k t qu khoa h c ã có m t s may m&n không, tôi ã th m t t p các lo i khác nhau: $ ng C ng
hòa và $ ng Dân ch . Trong tr ng h p này, tôi mu n d báo có hay không có m t tài li u m i v $ ng C ng hòa
hay Dân ch . $ cho phép b n t mình th nghi m, tôi t o ra repubs-dems.txt in src/test/resources. Sau ó tôi ch y các
b c phân lo i thông qua:
"
/ ?
/
&
!"
!
( /
! ?
/
!
t các k t qu trung gian trong th m c wikipedia. Ma
Hai giá tr" -D n gi n tr0 t i t p và tên lo i c a th m c
tr n tóm t&t và ma tr n nh m l.n t ho t ng này trông gi ng nh Li t kê 7:
Li t kê 7. Các k t qu t vi c ch y trình phân lo i Bayes cho
69 % 7 :8 :B <> =B :A >; #)
69 % 7 :8 :B <> =B :A >; #)
(
(
!1
!1
"
"
69 % 7 :8 :B <> =B :A >; #)
(
!1
"
69 % 7 :8 :B <> =B :A >; #)
69 % 7 :8 :B <> =B :A >; #)
(
(
!1
!1
"
"
69 % 7 :8 :B <> =B :A >; #)
(
!1
"
69
69
69
69
69
69
(
!1
"
E
E
%
%
%
%
%
%
7
7
7
7
7
7
:8 :B <> =B :A >; #)
ng C ng hòa và
ng Dân ch
//////////////
1
&
/
! ?
B:!:
<= >:!:
//////////////
1
&
/
(
! ?
(
;=!>82>@;;>B<:8>
>2 @>!:
///////////////////////////////////////////////////////
"
#
2A
#
"
#
=B
1
"
#
B>
BA!B=<>G
<>!<;BBG
Gi i thi u v Apache Mahout
69
69
69
69
69
69
69
69
%
%
%
%
%
%
%
%
Page 11 of 13
7
7
7
"
?
7 ///////////////////////////////////////////////////////
7
(
4//
"
7 <=
8
H >:
7 ;
>2
H @>
(
(
7
"
&
E
<
M c dù k t qu cu i cùng là v cùng d ng úng, b n có th th y r'ng tôi ã làm m t công vi c t t h n v vi c quy t
"nh gi a hai lo i. M t vi c ki m tra nhanh c a th m c wikipedia/rd/prepared ch a các tài li u u vào cho th y r'ng
hai t p hu n luy n ã
c cân b'ng h n nhi u v m t các ví d hu n luy n. Vi c ki m tra c*ng cho th y tôi có m t
vài ví d t ng th so v i ho t ng l"ch s /khoa h c, b i vì m+i t p nh0 h n nhi u so v i b hu n luy n l"ch s ho c
khoa h c. Nhìn chung, k t qu ít nh t có v3 cân b'ng h n. Các b hu n luy n l n h n có kh n!ng bù tr s khác bi t
gi a ng C ng hòa và ng Dân ch , m c dù n u nó không bù tr , i u ó có th ng ý r'ng m t nhóm là t t h n lúc
bám vào thông báo c a nó trên Wikipedia — nh ng tôi s% l i vi c ó cho các h c gi chính tr" quy t "nh.
Bây gi tôi ã ch- ra cách ch y phân lo i trong ch
c l p, các b c ti p theo là ch n mã cho ám mây và ch y
trên m t nhóm Hadoop. C*ng nh v i mã phân l p, b n s% c n có Mahout Job JAR. Ngoài ra, t t c các thu t toán mà
tôi ã c p tr c ó là Map-Reduce-s(n sàng và ch- nên làm vi c khi ch y trong quá trình n p Job (công vi c)
c
nêu ra trong h ng d.n Hadoop.
Có gì ti p theo v i Mahout?
Apache Mahout ã i m t ch ng
ng dài trong h n m t n!m, v i các kh n!ng áng k v phân c m, phân lo i và
CF, nh ng nó c*ng có r t nhi u kh n!ng phát tri n. S&p x y ra n n i là th c hi n Map-Reduce c a vô s quy t
"nh ng.u nhiên cho vi c phân lo i, các quy t&c k t h p, Latent Dirichlet Allocation nh n bi t các ch
trong các
tài li u và nhi u tùy ch n phân lo i h n s d ng HBase và các tùy ch n l u tr có s(n khác. Ngoài nh ng l n th c
hi n m i này, hãy tìm ki m thêm các ch ng trình trình di n, tài li u h ng d.n và s a l+i.
Cu i cùng, úng nh m t ng i qu n t ng th c s s d ng s c m nh và kh n!ng c a con voi, vì th , Apache
Mahout c*ng có th giúp b n t n d ng s c m nh và kh n!ng c a con voi màu vàng, ó là Apache Hadoop. Ti p theo
khi có nhu c u phân c m, phân lo i ho c bình lu n n i dung, c bi t là quy mô l n, hãy xem Apache Mahout.
L ic m
n
$ c bi t c m n các y viên h i
h v bài vi t này.
ng Mahout Ted Dunning và Sean Owen v vi c xem l i và s hi u bi t sâu s&c c a
T iv
Mô t
Tên
Kích th
Sample code
j-mahout.zip
90MB
Thông tin v ph
c
Ph
ng th c t i
HTTP
ng th c t i
Tài nguyên
H ct p
H c máy
H c máy: Trang Wikipedia ch a m t s thông tin b&t
u có ích c*ng nh nhi u tài li u tham kh o t t
Gi i thi u v Apache Mahout
Page 12 of 13
tìm hi u thêm v h c máy, g m các cách ti p c n nh vi c h c có giám sát.
Programming Collective Intelligence (Toby Segaran, O'Reilly, 2007): Cu n sách này là m t i m kh i
u tuy t v i cho nhi u nhi m v h c máy.
Trí tu nhân t o | H c máy: Hãy tham d l p c a Andrew Ng t i Stanford.
$ánh giá v phân c m: Tìm hi u thêm v
danh sách g i th c a Mahout.
ánh giá vi c phân c m. C*ng xem thêm cu c th o lu n v
$"nh lý Bayes: Tìm hi u k $"nh lý Bayes ho t
ng nh th nào.
Lp space: Hi u các ch- tiêu Lp.
Apache Mahout and Apache Lucene
Trang ch d án Mahout: Khám phá t t c nh ng gì v Mahout.
"Map-Reduce cho vi c h c máy theo a lõi": $ c bài h
"MapReduce: làm
trên Map-Reduce.
ng d.n tr giúp kh i ch y Mahout.
n gi n vi c x lý trên các c m l n" (Google Research Publications): $ c b n chính
Taste: Khám phá tài li u h
ng d.n Taste.
Apache Lucene: Tìm hi u thêm v Lucene.
Apache Lucene trên developerWorks: Khám phá Lucene trong nh ng bài vi t này.
T o các Vect t v!n b n: $ c m c này trong Mahout Wiki
c a b n sang l p Vector c a Mahout.
Phân c m d li u c a b n: Xem trang Mahout Wiki này
b n.
tìm hi u thêm v vi c chuy n
i d li u
tìm hi u thêm v cách phân c m d li u c a
Apache Hadoop:
Apache Hadoop: Tìm hi u thêm v Hadoop.
H
ng d.n b&t
u nhanh v Hadoop: Tìm hi u cách
ch y m t Hadoop Job.
HBase: Hi u c s d li u Hadoop.
Duy t qua hi u sách công ngh v i các sách v các ch
k thu t này và khác.
$i n toán ám mây: Truy c p vào vùng $i n toán ám mây c a developerWorks.
Vùng công ngh Java c a developerWorks: Tìm hàng tr!m bài vi t v m i khía c nh c a l p trình Java.
L y s n ph m và công ngh
T i v Hadoop 0.20.0.
T i v m t t p con c a Wikipedia.
T i v m t t p con c a Wikipedia nh là các vect .
Nh n
c d li u ánh giá phim th c t d án GroupLens.
Gi i thi u v Apache Mahout
Th o lu n
Tham gia vào c ng
Page 13 of 13
ng Mahout t i [email protected].
Dành tâm trí cho c ng
ng My developerWorks.
ôi nét v tác gi
Grant Ingersoll là ng i sáng l p và thành viên c a h i ng k thu t t i Lucid Imagination. Các m i quan
tâm l p trình c a Grant g m ph c h i thông tin, h c máy, phân lo i v!n b n và trích xu t. Grant là ng i
ng sáng l p c a d án h c máy Apache Mahout, c*ng nh m t y viên h i ng và ng i phát ngôn cho
c d án Lucene Apache và Apache Solr. Ông c*ng là ng tác gi c a Taming Text (Cung c p nhân công,
s&p t i) g m các công c mã ngu n m
x lý ngôn ng t nhiên.
Java và t t c các nhãn hi u d a vào Java là th ng hi u c a Sun Microsystems, Inc. t i Hoa k,, các n
hai. Tên c a công ty, s n ph)m hay d"ch v có th là nhãn hi u !ng ký ho c nhãn hi u d"ch v c a ng
c khác ho c c
i khác.