Tải bản đầy đủ (.docx) (22 trang)

Bài tiểu luận môn Công nghệ tri thức Data mining và social network

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 (837.84 KB, 22 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
________________
BÀI THU HOẠCH MÔN HỌC
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Đề tài:
Data mining và social network
Giảng viên hướng dẫn: GS.TSKH.Hoàng Kiếm
Sinh viên thực hiện: Nguyễn Thị Phúc Triêm
Mã số: CH1101051
TP. HCM, năm 2012
Khóa luận môn học: Công nghệ tri thức và ứng dụng
Lời nói đầu
Từ sự xuất hiện cách mạng thông tin, cách mạng tri thức và sự bùng nổ công nghệ cao,
con người cần luôn đổi mới, phát huy mạnh mẽ năng lực sáng tạo để luôn đổi mới quốc gia, hội
nhập vào nền kinh tế, tri thức toàn cầu. Vì tài nguyên là có hạn, năng lực sáng tạo của con người
là vô hạn do đó phải dựa chủ yếu và nguôn sáng tạo của con người để phát triển nền tri thức của
nhân loại và toàn cầu.
Việc áp dụng công nghệ tri thức vào các ứng dụng của con người là vô cùng quan trọng,
không những nâng cao chất lượng cuộc sống mà còn thúc đẩy sự phát triển của nền kinh tế, ngăn
chặn khủng hoảng. Trong xu thế phát triển chung đó em xin trình bày phần tìm hiểu nhỏ của
mình trong việc khai phá dữ liệu thuộc lĩnh vực mạng xã hội.
Chúng em xin được gửi lời cám ơn chân thành đến Giáo sư-Tiến sỹ khoa học Hoàng Văn
Kiếm, người đã tận tâm truyền đạt những kiến thức nền tảng cơ bản cho chúng em về môn học
“Phương pháp nghiên cứu khoa học trong tin học”. Xin cảm ơn ban cố vấn học tập và ban quản
trị Chương trình đào tạo thạc sỹ Công nghệ thông tin qua mạng của Đại Học Quốc Gia Thành
phố Hồ Chí Minh đã tạo điều kiện cho chúng em hoàn thành tốt môn học.
2
Khóa luận môn học: Công nghệ tri thức và ứng dụng
I. Data mining và tầm quan trọng
1. Data mining


• Khai phá dữ liệu (Data mining) là việc phân tích dữ liệu đã có (thường là lớn) để tìm ra
các mối liên hệ tiềm ẩn (unsuspected) và tóm tắt dữ liệu theo các cách mới mà vừa dễ
hiểu, vừa hữu ích cho người sở hữu dữ liệu.
• Các mối liên hệ và các tóm tắt thu được thông qua data mining thường gọi là các mô hình
(models) nếu chúng khái quát hóa toàn bộ các đối tượng dữ liệu hoặc gọi là mẫu hình
(patterns) nếu chúng chỉ đặc trưng cho một bộ phận các đối tượng dữ liệu. Ví dụ như
phương trình tuyến tính, các quy tắc, các cụm, đồ thị, cây cấu trúc.
2. Các bước thực hiện data mining
• Làm sạch dữ liệu (data cleaning): loại bỏ nhiễu hoặc các dữ liệu không thích hợp.
• Tích hợp dữ liệu (data integration): tích hợp dữ liệu từ các nguồn khác nhau như: CSDL,
Kho dữ liệu, filetext
• Chọn dữ liệu (data selection): ở bước này, những dữ liệu liên quan trực tiếp đến nhiệm vụ
sẽ được thu thập từ các nguồn dữ liệu ban đầu.
• Chuyển đổi dữ liệu (data transformation): trong bước này, dữ liệu sẽ được chuyển đổi về
dạng phù hợp choviệc khai phá bằng cách thực hiện các thao tác nhóm hoặc tập hợp.
• Khai phá dữ liệu (data mining): là giai đoạn thiết yếu, trong đó các phương pháp thông
minh sẽ được áp dụngđể trích xuất ra các mẫu dữ liệu.
• Đánh giá mẫu (pattern evaluation): đánh giá sự hữu ích của các mẫu biểu diễn tri thức
dựa vào một số phép đo.
• Trình diễn dữ liệu (knowlegde presentation): sử dụng các kĩ thuật trình diễn và trực quan
hoá dữ liệu để biểudiễn tri thức khai phá được cho người sử dụng. Khai phá dữ liệu là
một lĩnh vực liên quan tới rất nhiều ngành họckhác như: hệ CSDL, thống kê, trực quan
hóa Hơn nữa, tuỳ vào cách tiếp cận được sử dụng, khai phá dữ liệu còn có thể áp dụng
một số kĩ thuật như mạng nơron, lí thuyết tập thô hoặc tập mờ, biểu diễn tri thức… So
với các phương pháp này, khai phá dữ liệu có một số ưu thế rõ rệt: So với phương pháp
học máy, khai phá dữ liệu có lợi thế hơn ở chỗ, khai phá dữ liệu có thể sử dụngvới các
CSDL chứa nhiều nhiễu, dữ liệu không đầy đủ hoặc biến đổi liên tục. Trong khi đó
phương pháp học máychủ yếu được áp dụng trong các CSDL đầy đủ, ít biến động và tập
3
Khóa luận môn học: Công nghệ tri thức và ứng dụng

dữ liệu không quá lớn. Phương pháp hệ chuyêngia: phương pháp này khác với khai phá
dữ liệu ở chỗ các ví dụ của chuyên gia thường ở mức chất lượng cao hơn nhiều so với các
dữ liệu trong CSDL, và chúng thường chỉ bao hàm được các trường hợp quan trọng. Hơn
nữa các chuyên gia sẽ xác nhận giá trị và tính hữu ích của các mẫu phát hiện được
Phương pháp thống kê là một trongnhững nền tảng lí thuyết của Khai phá dữ liệu, nhưng
khi so sánh hai phương pháp với nhau ta có thể thấy cácphương pháp thống kê còn tồn tại
một số điểm yếu mà Khai phá dữ liệu đã khắc phục được: Các phương phápthống kê
chuẩn không phù hợp với các kiểu dữ liệu có cấu trúc trong rất nhiều các CSDL. Các
phương pháp thốngkê hoạt động hoàn toàn theo dữ liệu, nó không sử dụng tri thức sẵn có
về lĩnh vực. Kết quả phân tích của thốngkê có thể sẽ rất nhiều và khó có thể làm rõ được.
Phương pháp thống kê cần có sự hướng dẫn của người dùng để xác định phân tích dữ liệu
như thế nào và ở đâu…
3. Tầm quan trọng
• Ứng dụng của data mining rất đa dạng và rộng lớn, từ marketing, chống gian lận, giảm
giá thành sản xuất, tăng doanh thu, phân tích hành vi sử dụng người dùng internet để đáp
ứng đúng nhu cầu, đúng đối tượng, hay ứng dụng hỗ trợ ra quyết định, nghiên cứu khoa
học đến việc chống khủng bố…
• Tự động hóa việc dự doán các xu thế và hành vi sẽ diễn ra trong tương lai: Data mining
tự động hóa quá trình tìm kiếm và trích xuất các tập thông tin có mối quan hệ hoặc tương
quan trong một tập dữ liệu cực lớn.Những vấn đề/câu hỏi đặt ra với các cách truyền
thống đòi hỏi một quá trình rất phức tạp và tốn kém cả vềtài chính và thời gian để giải
đáp thì giờ có thể trả lời một cách nhanh chóng trong khi giá thành là thấp nhất. Một ví
dụ đơn giản trong quảng cáo online là quá trình targeting, khi một người dùng click vào
một banner quảng cáo bán giầy dành cho nữ giới, thì khả năng người đó là nữ và họ đang
quan tâm đến đôi giầy đó, khi hệ thống nhận diện được điều này thì có thể target thêm
các kiểu dáng giầy khác nhau, kích cỡkhác nhau, giá thành khác nhau với mục tiêu là
người dùng sẽ kết thúc quá trình là mua một đôi giày, ngoài ra bởi vì hệ thống nhận diện
người dùng là phụ nữ nên nó có thể quảng cáo thêm các sản phẩm khác nhưmỹ phẩm,
quần áo v.v
4

Khóa luận môn học: Công nghệ tri thức và ứng dụng
• Tự động hóa việc khám phá/nhận diện ra những tập thông tin quá khứ mà hệ thống
không/chưa biết: Công cụ data mining trong quá trình phân tích dữ liệu sẽ nhận diện ra
nhưng tập thông tin/dữ liệu không có hoặc bị ẩn bởi những mối liên hệ mà được xác định
trước. Ví dụ như trong việc bán hàng, có những sản phẩm không có mối liên hệ gì với
nhau, nhưng lại hay bán được cùng nhau, từ đó đưa ra cơ chế recommendation. Hay cơ
chế nhận diện giao dịch gian lận trong thanh toán điện tử dựa vào việc phân tích các giao
dịch bất thường…
• Ngày nay, các công nghệ data mining được ứng dụng rộng rãi trong các công ty lấy
khách hàng làm trungtâm như truyền thông, tài chính, marketing, bán hàng, các nghành
công nghiệp sản xuất v.v… Nó cho phép các công ty xác định được các mối quan hệ giữa
các yếu tố nội tại như giá thành, mẫu mã, cách thức quảng cáo, thậm chí là kỹ năng của
nhân viên công ty… các yếu tố bên ngoài như đối thủ cạnh tranh, chính sách kinh tế hay
nhu cầu thị trường v.v Và nó còn hỗ trợ việc xác định được sự tác động của các chính
sách khuyến mại, giảm giá, độ hài lòng của khách hàng và lợi nhuận của doanh nghiệp…
II. Social network và sự cần thiết ứng dụng
data mining trong social network
1. Social network
a. Network
Là một tập hợp các nút, điểm, các địa điểm được kết nối với nhau thông qua việc giao tiếp
bằng dữ liệu, thoại, video cho mục đích trao đổi lẫn nhau
5
Khóa luận môn học: Công nghệ tri thức và ứng dụng
b. Social network
Là một cấu trúc xã hội loài người có liên hệ trực tiếp hoặc gián tiếp với nhau thông qua mối
quan hệ thông thường hoặc quan tâm lẫn nhau
6
Khóa luận môn học: Công nghệ tri thức và ứng dụng
c. Social network site (SNS)
Một trang web mạng xã hội là cụm từ được sử dụng để mô tả bất kỳ trang web nào cho phép

người dùng tạo hồ sơ công cộng trong đó trang web tiết lập các mối quan hệ hình thức với
những người dùng khác của trang web. Các trang web mạng xã hội có thể được sử dụng để
mô tả cộng đồng, các diễn đàn thảo luận trực tuyến, chatroom và không gian xã hội trực
tuyến.
Mạng xã hội được tạo ra để tự thân nó lan rộng trong cộng đồng thông qua các tương tác của
các thành viên trong chính cộng đồng đó. Mọi thành viên trong mạng xã hội cùng kết nối và
mỗi người là một mắt xích để tạo nên một mạng lưới rộng lớn truyền tải thông tin trong đó.
Về cơ bản, mạng xã hội giống như một trang web mở với nhiều ứng dụng khác nhau. Mạng
xã hội khác với trang web thông thường ở cách truyền tải thông tin và tích hợp ứng dụng.
Trang web thông thường cũng giống như truyền hình, cung cấp càng nhiều thông tin, thông
tin càng hấp dẫn càng tốt còn mạng xã hội tạo ra các ứng dụng mở, các công cụ tương tác để
mọi người tự tương tác và tạo ra dòng tin rồi cùng lan truyền dòng tin đó.
d. Social network analysis (SNA)
Phân tích mạng xã hội là việc lập bản đồ và đo lường các mối quan hệ và các luồng giữa con
người, các nhóm, các tổ chức, máy tính hoặc các thực thể xử lý thông tin / kiến thức
7
Khóa luận môn học: Công nghệ tri thức và ứng dụng
Các nút trong mạng chính là người, nhóm trong khi các liên kết chỉ ra mối quan hệ hoặc luồn
giữa các nút này
2. Ứng dụng data mining
Ngày nay, việc xây dựng ra một sản phẩm (đặc biệt là sản phẩm internet) ngày càng trở nên
đơn giản hóa, tuy vậy để tồn tại, phát triển và mở rộng cần có những tính năng thông minh hỗ
trợ cho người dùng đơn giản hóa việc truy xuất, đúng thông tin họ cần… Tất cả điều này đều
cần đến nền tảng data mining bên dưới.
Các công nghệ data mining thực ra không mới, nó đã hình thành cách đây hơn 20 năm, từ khi
các công nghệ điện toán xử lý song song phát triển. Tuy nhiên việc ứng dụng nó và các hệ
thống web là điều còn khá mới mẻ, đặc biệt là các sản phẩm trực tuyến ở Việt nam chúng ta,
hầu như chưa trang web nào ứng dụng thực sự các công nghệ data mining, lý do là quy mô
chưa đủ lớn, lượng dữ liệu cần phân tích còn nhỏ và hẹp.
Đầu tiên là câu hỏi tại sao kết quả tìm kiếm của Google lại khác nhau khi đăng nhập và khi

không đăng nhập?. Câu trả lời ngắn gọn là: Khi bạn đăng nhập Google biết bạn là ai, biết
hành vi trong quá khứ của bạn như thế nào (thông qua quá trình thu thập dữ liệu hành vi của
bạn trên các site mà Google hiện diện), do đó nó dựa vào sự hiểu biết này nên kết quả trả về
bao giờ cũng là kết quả có độ chính xác với nhu cầu của bạn cao nhất và ngược lại, khi
không đăng nhập, Google chỉ trả về kết quả ranking bình thường mà không có kèm theo
tham số ranking theo user. Và dĩ nhiên để biết được hành vi trong quá khứ của bạn, Google
phải sử dụng đến các công nghệ data mining.
8
Khóa luận môn học: Công nghệ tri thức và ứng dụng
Thứ hai, tại sao Facebook lại có thể gợi ý cho bạn toàn những người mà bạn đã quen biết? Để
có thể đưa ra gợi ý này đòi hỏi Facebook kết hợp rất nhiều các tham số. Tuy nhiên có thể giải
thích tóm lược như sau: Khi bạn đăng ký tài khoản Facebook,thông thường bạn nhập thêm
các thông tin khác như: quá trình làm việc ở các công ty, công ty bạn đanglàm, trường/lớp
bạn đã/đang học, các hội bạn tham gia, bạn gái/trai/vợ/chồng của bạn v.v Đây chính là các
thông tin mà Facebook có thể dựa vào để xác định ai là bạn của bạn. Ở đây, Facebook đã mô
hình hóa các tham số có độ liên quan nhất định để đưa ra những gợi ý mà có xác xuất đúng
rất cao, và bạn thấy đó,thực sự là rất đúng. News stream của Facebook còn phức tạp và hay
ho hơn nữa. Tất các điều đó Facebook làm được là quá trình thu thập dữ liệu hoạt động của
người dùng trên site, sau đó sử dụng các công nghệ data mining để cung cấp nội dung, tính
năng phù hợp nhất cho người dùng.
Thứ ba, tại sao Amazon lại có thể đưa ra danh sách các quyển sách bán kèm có tỷ lệ bán
được cao nhưvậy? Để làm được điều này Amazon đã đầu tư phát triển hệ thống
recommendation trong hàng chục năm, thời gian dài đó không chỉ là phát triển thuần túy
công nghệ mà còn là quãng thời gian thu thập và phân tíchhành vi người sử dụng trên site của
Amazon, thời gian càng dài, dữ liệu thu thập càng lớn, dẫn đến tập thông tin có độ tương
quan càng nhiều và càng chính xác. Nôm na bạn có thể hiểu là 100 khách hàng mua quyển
sách ABC thì có tới 40 khách hàng đồng thời mua quyển sách DEF, vì thế với khách hàng
101 xem quyển ABC, hệ thống nhận diện và đưa ra gợi ý mua thêm quển DEF, đơn giản là
vậy, tuy nhiên bên dưới còn có nhiều tham số khác để tăng độ tương quan lên nữa. Và đây
cũng là một quá trình mining dữ liệu.

9
Khóa luận môn học: Công nghệ tri thức và ứng dụng
a. Kỹ thuật data mining trong facebook
• Mạng lưới của bạn: Khi các kết nối của bạn mời các kết nối của những người khác thì
mạng lưới của bạn bắt đầu phát triển. Mạng lưới của bạn bao gồm các kết nối của bạn,
các kết nối của người khác, và cứ tiếp tục như vậy với trung tâm là chính là bạn
• Phân loại người sử dụng: Mạng lưới của bạn bao hàm 3 độ “three degrees” chuyên môn
đó là
• bạn-của-bạn-của-bạn. Nếu mỗi người có 10 kết nối (và một số khác có nhiều hơn vậy )
thì mạng lưới của bạ có thể có tới 10,000 chuyên môn (professionals)
• Làm cách nào có thể biết được ai đang trong mạng lưới của bạn: Facebook cho phép bạn
thấy được toàn bộ mạng lưới của bạn như là một nhóm lớn có khả năng tìm kiếm chuyên
môn hồ sơ cá nhân
10
Khóa luận môn học: Công nghệ tri thức và ứng dụng
• Sau khi trở thành bạn của nhau, bạn có thể truy cập các thông tin chia sẻ của bạn mình
như hình ảnh, audios, videos…
• Việc ứng dụng data mining giúp trả lời các câu hỏi:
Có bao nhiêu người bạn của bạn đang sử dụng mạng xã hội thường xuyên
Có bao nhiêu người bạn của bạn gửi các thông điệp thường xuyên
Ai đang là người có nhiều tâm trạng nhất
Bao nhiêu người bạn của bạn là ăn chay
Bao nhiêu người bạn ở gần / xa bạn nhất
Bao nhiêu người đang là viêc chung công ty/ học chung trường đại học với bạn
b. Quy trình data mining
Khai phá dữ liệu chính là phương pháp khám phá và mô hình hóa mối quan hệ với sô lượng
lớn dữ liệu. Tìm kiếm thông tin ẩn ttrong một cơ sở dữ liệu, chuyển dữ liệu thành mô hình.
11
Khóa luận môn học: Công nghệ tri thức và ứng dụng
1. Hiểu biết về lĩnh vực (domain): chúng ta cần hiểu một cách cụ thể các vấn đề về kinh

doanh hoặc vấn đề khoa học
2. Tạo tập dữ liệu:
a. Hiểu về cấu trúc, kích thước, và định dạng dữ liệu
b. Chọn các thuộc tính thú vị
c. Làm sạch và tiền xử lý dữ liệu
3. Chọc tác vụ khai phá dữ liệu (data mining task) và thuật toán cụ thể: Hiểu khả năng và
hạn chế của các thuật toán có liên quan đến vấn đề
4. Giải thích kết quả và có thể quay trở lại bước 2
Cụ thể ở đây là cần hiểu về mạng xã hội, phát triển các kết nối, chọn phương thức xây dựng
phù hợp để tìm kiếm các thông tin ẩn
Ví dụ về việc giao tiếp bằng E-mail
1. A gửi một e-mail chp B, CC cho C và BCC cho D
2. C chuyển tiếp e-mail này cho E
3. Từ việc phân tích tiêu đề ta có thể suy luận
a. A và D biết được: A, B, C và D biết về e-mail này
b. B và C biết được: A, B và C biết về e-mail này
c. C biết được: E biết về e-mail
d. D biết rằng: B và C không biết được là D biết về e-mail, chỉ có A là biết
e. E biết rằng: A, B và C trao đổi với nhau, A và B đều không biết là E biết về điều
này
f. …
Mary
Mary
George
John
George
John
12
Khóa luận môn học: Công nghệ tri thức và ứng dụng
III. Giới thiệu ứng dụng nhỏ data mining với

NoSQL trong việc xây dựng social network
1. NoSQL-MongoDB
Đối với những ứng dụng liên quan đến social network thì yêu cầu về việc xử lý lượng dữ liệu
cực lớn một cách nhanh chóng cũng như tính dễ bảo trì, mở rộng … là ưu tiên hàng đầu. Các
hệ CSDL như SQL, Oracle… không thể đáp ứng được nhu cầu này bởi hiệu suất đọc ghi kém
với lượng dữ liệu cực lớn, đòi hỏi cao về phần cứng. NoSQL là sự lựa chọn lý tưởng vì
NoSQL không dùng mô hình dữ liệu quan hệ mà là mô hình lưu trữ cặp giá trị-khóa và hệ
thống lưu trữ phân tán.
Có rất nhiều hãng lớn đang xử dụng CSDL NoSQL như Amazon, BBC, Facebook, Google…
Hiện nay có rất nhiều hệ quản trị cơ sở dữ liệu NoSQL như MongoDB, Redis, Cassandra,
CouchDB…Trong đó MongoDB đang dần được chú ý và sử dụng rộng rãi vì là hệ quản trị
cơ sở dữ liệu miễn phí, hỗ trợ .Net, cách cài đặt đơn giản, tốc độ xử lý vô cùng nhanh chóng,
dễ giám sát và xử lý…Khi cần xây dựng một hệ thống website như mạng xã hội hay thanh
toán online có liên quan nhiều đến các đơn vị dữ liệu khách nhau thì chắc chắn MongoDB sẽ
là sự lựa chọn tốt vì chúng ta có thể triển khai và hoạt động trên hầu hết các thiết bị phần
cứng phổ biến hện nay, chứ không phải là dòng thiết bị máy chủ cao cấp và chuyên dụng,
đồng nghĩa với việc đó là không cần phải mua hay thuê server, chi phí ban đầu bỏ ra thấp
hơn rất nhiều trong khi lợi nhuận không đổi.
Chúng ta hãy thử so sánh hiệu suất của SQL và MongoDB được thực hiện trên laptop
Lenovo T61, hệ điều hành Windows 7 64 bit với bộ vi xử lý 2.8 GHz, sử dụng phiên bản 64
bit của SQL Server 2008 Standard và MongoDB 1.4.1
• Về chức năng Insert: đây là điểm khác biệt rõ ràng nhất giữa MongoDB và SQL server,
MongoDB chèn dữ liệu nhanh hơn SQL tới hơn 100 lần. Quá trình này được thực hiện
bằng cách chèn 50.000 đối tượng độc lập sử dụng NoRM của MongoDB và LINQ tới
SQL dành cho SQL Server 2008
13
Khóa luận môn học: Công nghệ tri thức và ứng dụng
• Về chức năng Select: chúng ta chuyển sang quá trình tách lọc dữ liệu từ cùng đối tượng
khác nhau trong trường ID của mỗi bản ghi
14

Khóa luận môn học: Công nghệ tri thức và ứng dụng
Nhìn vào biểu đồ trên, rõ ràng MongoDB vẫn tỏ ra vượt trội hơn hẳn so với SQL về hiệu
suất (khoảng 3 lần). Để tiếp tục, chúng ta hãy chuẩn sang bảng dữ liệu phức tạo hơn đôi
chút với khóa ngoại – Foreign Key và join:
15
Khóa luận môn học: Công nghệ tri thức và ứng dụng
Kết quả hiển thị tại đây vẫn tương tự như những lần kiểm tra trước đó mà không cần phải
join:
MongoDB cung cấp dao diện để người dùng làm quen và hiểu về các lệnh trong
MongoDB, thông quan đường link sau />16
Khóa luận môn học: Công nghệ tri thức và ứng dụng
2. Ứng dụng quản lý sự kiện trong social network voi MongoDB
Giả sử ta được yêu cầu xây dựng mô hình dữ liệu để quản lý người sử dụng cùng các sự kiện(
sự kiện ở đây có thể là kết bạn, tham gia trò chơi… ) của một mạng xã hội. Mô hình được
thiết kế như sau
17
Khóa luận môn học: Công nghệ tri thức và ứng dụng
Ở đây ta lấy người dùng số 3 làm trung tâm, từ đó ta bắt đầu xét đến các sự kiện mà người đó
tham gia cũng như những người dùng khác (hàng xóm) có tham gia sự kiện chung với người
dùng số 3. Dễ dàng nhận thấy người dùng 3 đang tham gia sự kiện 1, 2, 3
Từ các sự kiện 1, 2, 3 ta bắt đầu tìm kiếm những người dùng có tham gia vào các sự kiện này. Có
thể thấy rằng đó là các người dùng (hàng xóm) 1, 2, 7, 5, 4, 8, 6
18
Khóa luận môn học: Công nghệ tri thức và ứng dụng
Với thiết kế mô hình như trên ta dễ dàng tìm kiếm được hàng xóm của một người dùng, các sự
kiện mà các hàng xóm này tham gia, ghi nhận các sự kiện, đưa ra những lời khuyên cho người
dùng như lời khuyên kết bạn.
Yêu cầu đặt ra ở đây là:
• Tính năng động
o Các hàng xóm thường xuyên thay đổi

o Các sự kiện mà hàng xóm tham gia cũng thay đổi liên tục
• Tính linh hoạt
o Có thể kết hợp với các sơ đồ mạng xã hội khác
o Sản phẩm có thể phát triển nhanh chóng
• Hiệu suất
o Cần phải thực hiện tác vụ đọc nhanh chóng
o Thường xuyên thực hiện tác vụ ghi
Việc này có thể giải quyết nhờ MongoDB bởi hiệu suất cao, lược đồ thiết kế linh hoạt cũng như
dễ sử dụng và cài đặt.
Ở đây ta lưu trữ 3 yếu tố: người dùng, sự kiện, liên kết người dùng và sự kiện
a. Người dùng
Người sử dụng được lưu trữ trong MongoDB với cấu trúc như sau:
Với “_id” chính là khóa, số 4558992 chính là mã người sử dụng, mã người sử dụng có thể là số
hoặc chữ tùy cách đặt của mỗi người miễn là duy nhất để dễ quản lý
Tiếp theo là cách lưu trữ sự kiện, việc lưu trữ sự kiện sẽ bắt đầu bằng khóa “events”
19
Khóa luận môn học: Công nghệ tri thức và ứng dụng
Như hình trên ta thấy được các sự kiện mà người dùng mã 4558992 đã tham gia trong quá khứ
được lưu trữ với khóa “all_ids”, và các sự hiện hiện tại mà người dùng này tham gia được lưu trữ
với khóa “curr_ids”
Ngoài thông tin sự kiện ta còn lưu trữ thông tin các hàng xóm của người dùng này với khóa
“nns”, giá trị lưu trữ ở đây bao gồm mã người dùng và điểm số, điểm số càng thấp thì càng người
dùng trung tâm nhất
Ngoài ra ta cũng có thể lưu trữ thông tin của người dùng với các mạng xã hội khác như thông tin
facebook chẳng hạn
b. Sự kiện
Thông tin sự kiện được lưu trữ như sau, tùy vào từng mục đích mà ta có thể thêm hoặc bớt các
khóa
20
Khóa luận môn học: Công nghệ tri thức và ứng dụng

c. Liên kết sự kiện và người dùng
Thông tin người dùng có tham gia vào sự kiện hay không được lưu trữ gồm khóa “uid” là mã
người sử dụng, khóa “eid” là mã sự kiện
Dễ dàng nhận thấy với cách lưu trữ này ta có thể tìm được nhanh chóng các người dùng có tham
gia sự kiện mã là 799177
Với cách lưu trữ này và các lệnh mà MongoDB cung cấp ta có thể tìm kiếm nhanh chóng các
thông tin như sau:
• Tìm tất cả hàng xóm của người dùng
• Tìm tất cả các sự kiện mà hàng xóm của một người dùng tham gia
21
Khóa luận môn học: Công nghệ tri thức và ứng dụng
• Với mỗi sự kiện ta có thể điếm số người tham gia sự kiện này
• Hoặc có thể tìm những người bạn có tham gia facebook với người dùng
• Thông tin các sự kiện mà các người bạn facebook của người dùng có tham gia
IV. Tài liệu tham khảo
• />• />• />• />• />• />• />MongoDB-va-SQL-Server-2008.aspx
• brianz.s3.amazonaws.com/eventbrite-mongosv-social
22

×