Tải bản đầy đủ - 0 (trang)
CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ

CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ

Tải bản đầy đủ - 0trang

2.1.1. Mơ hình khơng gian Vector

2.1.1.1. Khái niệm

Mơ hình khơng gian vector là một mơ hình thể hiện thơng tin văn bản như

một vector, các phần tử của vector này thể hiện mức độ quan trọng của một từ và cả

sự xuất hiện hay khơng xuất hiện của nó trong một tài liệu.

Mơ hình này biểu diễn văn bản như những điểm trong không gian Euclid nchiều, mỗi chiều tương ứng với một từ trong tập hợp các từ. Mỗi từ trong khơng

gian vector sẽ có một trọng số. Có nhiều phương pháp đánh trọng số khác nhau,

nhưng tf-idf (term frequency–inverse document frequency) là một phương pháp phổ

biến để đánh giá và xếp hạng một từ trong một tài liệu. Về cơ bản thì tf-idf là một

kỹ thuật giúp chuyển đổi thông tin dưới dạng văn bản thành một vector thơng qua

các trọng số. Mơ hình khơng gian vector và tf-idf được phát triển bởi Gerard Salton

vào đầu thập niên 1960s.

Mơ hình khơng gian vector và những biến thể của nó hiện nay vẫn là cách

phổ biến để biểu diễn văn bản trong lĩnh vực khai phá dữ liệu (Data mining) và truy

hồi thơng tin (Information retrieval).



16



Hình 1: Mơ hình không gian Vector

2.1.1.2. Trọng số từ

Trọng số từ thể hiện tầm quan trọng của từ đối với văn bản. Trọng số từ đồng

biến với số lần từ được sử dụng trong văn bản và nghịch biến với số văn bản sử

dụng nó.

Trọng số từ tf.idf được tính như sau:

𝑊𝑡𝑓.𝑖𝑑𝑓 (𝑡, 𝑑 ) = 𝑊𝑡𝑓 (𝑡, 𝑑 ). 𝑖𝑑𝑓(𝑡)

Trong đó: 𝑊𝑡𝑓 (𝑡, 𝑑 ) là phương pháp tính trọng số tần suất logarit, còn idf(t) là

phương pháp tính trọng số nghịch đảo văn bản

Trọng số tần suất logarit: 𝑊𝑡𝑓 (𝑡, 𝑑 ) được tính như sau:

𝑊𝑡𝑓 (𝑡, 𝑑) = {



1 + 𝑙𝑜𝑔10 (𝑡𝑓𝑡,𝑑 ),

0,



𝑁ế𝑢 𝑡𝑓𝑡,𝑑 > 0

𝑁ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖



Với tft,d là số lần từ t được sử dụng trong văn bản d

Trọng số nghịch đảo văn bản: idf(t) được tính như sau:

idf(t) = 𝑙𝑜𝑔10 (𝑁/𝑑𝑓𝑡 )

Với N là số văn bản trong bộ dữ liệu và dft là số văn bản chứa từ t

2.1.1.3. Độ tương đồng giữa văn bản và truy vấn

Để tìm một cụm từ trong tập hợp các tài liệu sẵn có thì chúng ta cần so sánh

cụm từ đó với các tài liệu sẵn có. Ý tưởng là chúng ta cũng xem các câu truy vấn

như là một vector và sẽ xếp hạng các tài liệu mà chúng ta có dựa vào sự tương đồng

với câu truy vấn.

Để xếp hạng các tài liệu trả về, chúng ta so sánh câu truy vấn với tập hợp tài

liệu. Tài liệu nào càng gần với câu truy vấn thì có điểm cao hơn.



17



Để so sánh hai vector chúng ta có thể tính khoảng cách giữa hai vector, hoặc

tính góc tạo ra bởi hai vector. Tuy nhiên cách tính khoảng cách có nhược điểm, bởi

vì khoảng cách lớn với các vector có chiều dài khác nhau.



Hình 2: Khoảng cách Euclide

Như hình trên, khoảng cách Euclid giữa ⃗⃗⃗⃗

d2 và q

⃗ là rất lớn ngay cả khi sự

phân phối của các từ trong query q và trong tài liệu d2 là rất giống nhau.

Do vậy người ta thường dựa vào góc trong khơng gian vector hơn là khoảng

cách giữa cách điểm. Có thể xếp hạng văn bản theo thứ tự tăng dần của góc (hay

theo thứ tự giảm dần cosine) giữa các biểu diễn vector của văn bản và truy vấn.

Tương đồng cosine được tính như sau:



𝑆𝑖𝑚𝑐𝑜𝑠 (𝑑, 𝑞)=



𝑑 .𝑞⃗

‖𝑑 ‖.‖𝑞⃗ ‖



|𝑉|



=



∑𝑖=1(𝑤𝑖,𝑑 .𝑤𝑖,𝑞 )

2 √∑|𝑉| 𝑤 2

√∑|𝑉|

𝑖=1 𝑤𝑖,𝑑 .

𝑖=1 𝑖,𝑞



Trong đó:



18



 wi,d là trọng số tf-idf của từ i trong văn bản

 wi,q là là trọng số tf-idf của từ i trong câu truy vấn

 Simcos (d, q): tương đồng cosine giữa ⃗d và q





Hình 3: Tương đồng cosine

2.1.1.4. Chuẩn hóa độ dài tài liệu

Tài liệu dài hơn thì có tần suất các từ xuất hiện cao hơn. Một từ giống nhau

sẽ có khả năng xuất hiện thường xuyên hơn. Có nhiều từ hơn, tăng khả năng xuất

hiện của các từ trùng với câu truy vấn. Chuẩn hóa độ dài tài liệu làm giảm sự ảnh

hưởng của tài liệu dài so với tài liệu ngắn.

Một trong những cách chuẩn hóa độ dài vector phổ biến nhất là chuẩn hóa

cosin bằng cách chia từng phần tử của vector cho độ dài của nó. Độ dài của vector

(định mức L2 hay L2 norm) được tính như sau:



‖𝑥 ‖2 = √∑ 𝑥𝑖2

𝑖



19



2.1.1.5. Ký hiệu SMART

Trong thực tế, cách biểu diễn vector cho văn bản và truy vấn có thể khác

nhau. Ký hiệu SMART mơ tả vắn tắt cách xác định biểu diễn vector cho văn bản và

truy vấn theo định dạng ddd.qqq. Phương pháp chuẩn là lnc.ltc, có ý nghĩa như sau:

 Văn bản: Tần suất từ lấy theo log tf, tần suất văn bản không sử dụng idf,

và chuẩn hóa cosine

 Truy vấn: Tần suất từ lấy log tf, tần suất văn bản sử dụng idf, và chuẩn

hóa cosine



Hình 4: Kí hiệu SMART [11]

2.1.2. Đánh giá kết quả tìm kiếm

Trong phần lớn các nghiên cứu, việc đánh giá và so sánh thực nghiệm giữa

các hệ thống chủ yếu tập trung vào tiêu chí về độ chính xác của kết quả. Các độ đo

đánh giá cung cấp một cách để định lượng độ chính xác tìm kiếm.

Độ chính xác và độ bao phủ: Hai độ đo độ chính xác phổ biến nhất để tổng

kết và so sánh các kết quả tìm kiếm là độ chính xác (precision) và độ bao phủ

(recall). Độ bao phủ đo hệ thống tìm kiếm thực hiện việc tìm tất cả các tài liệu liên

quan cho một truy vấn tốt như thế nào, và độ chính xác đo nó thực hiện việc loại bỏ

tài liệu không liên quan tốt như thế nào.

precision =



𝑅𝑒𝑙𝑒𝑣𝑒𝑛𝑡 ∩ 𝑅𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑

𝑅𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑



20



recall =



𝑅𝑒𝑙𝑒𝑣𝑒𝑛𝑡 ∩ 𝑅𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑

𝑅𝑒𝑙𝑒𝑣𝑒𝑛𝑡



Trong đó: Relevant là tập các tài liệu liên quan đến truy vấn, Retrieved là tập

các tài liệu mà hệ thống tìm được.

Kết hợp độ chính xác và độ bao phủ: Độ đo F kết hợp độ chính xác và độ

đầy đủ thành một tiêu chí duy nhất

F=



(𝛽2 + 1)𝑃𝑅

𝛽2𝑃 + 𝑅



 Nếu β = 1 thì F là trung bình điều hòa của P và R, kí hiệu F1

 Nếu β = 0 thì F là độ chính xác

 Nếu β = Inf thì F là độ đầy đủ

Bình qn độ chính xác trung bình (MAP): Một hệ thống tìm kiếm

thường được chạy thử nghiệm trên nhiều truy vấn. Do đó, các độ đo đã đề cập ở

trên thường được tính trung bình trên tất cả truy vấn này.

MAP =



1

𝑄







1

𝑅𝑖



∑ 𝑃@𝑘𝑖



Trong đó: Ri là số văn bản trong bộ dữ liệu phù hợp với truy vấn qi, P@k là

độ chính xác ở thứ hạng k, được tính như sau:

P@k =



𝑅𝑒𝑙𝑒𝑣𝑒𝑛𝑡 ∩ 𝑅𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑@𝑘

𝑘



Với Retrieved@k là tập gồm k tài liệu đầu mà hệ thống tìm được.

2.1.3. Cơng cụ Elasticsearch

ElasticSearch là một cơng cụ tìm kiếm (search engine) kế thừa và phát triển

từ Lucene, khá giống với Apache Solr. Tuy nhiên Elasticsearch rất mạnh về tính

phân tán và khả năng mở rộng nên xu thế các cơng ty hiện nay đang chọn sử dụng



21



Elasticsearch, có thể kể đến như: Mozilla, Quora, SoundCloud, GitHub, Stack

Exchange, Center for Open Science, Reverb, Netflix..

Khi đẩy tài liệu (document) vào Elasticsearch, chúng sẽ được index, và kết

quả là tạo ra bộ từ điển (dictionary) và bộ thẻ định vị (posting): Mỗi một từ (term)

được liên kết với một danh sách chứa thông tin về những văn bản sử dụng từ này.

Mỗi phần tử của danh sách lưu thông tin ứng với một văn bản có vai trò hỗ trợ xác

định vị trí xuất hiện của một từ, vì vậy được gọi là thẻ định vị (posting). Tương ứng,

danh sách gắn với mỗi từ được gọi là danh sách thẻ định vị (hoặc danh sách ngược),

và tất cả các thẻ định vị gộp lại được gọi là bộ thẻ định vị.



Hình 5: Minh họa quá trình index tài liệu [24]

Elasticsearch cũng mượn những khái niệm về tf-idf, mơ hình khơng gian

vector, tuy nhiên có sử dụng thêm một số nhân tố khác vào hàm tính điểm (scoring

function) [23]:

score(q,d) = queryNorm(q) * coord(q,d) *

∑ (𝑡𝑓(𝑡 𝑖𝑛 𝑑 ) ∗ 𝑖𝑑𝑓(𝑡)2 ∗ 𝑡. 𝑔𝑒𝑡𝐵𝑜𝑜𝑠𝑡() ∗ 𝑛𝑜𝑟𝑚(𝑡, 𝑑))

𝑡 𝑖𝑛 𝑞



Trong đó:



22



1. score(q,d): điểm phù hợp của văn bản d cho truy vấn q.

2. queryNorm(q): chuẩn hóa truy vấn

queryNorm = 1 / √𝑠𝑢𝑚𝑂𝑓𝑆𝑞𝑢𝑎𝑟𝑒𝑑𝑊𝑒𝑖𝑔ℎ𝑡𝑠

 sumOfSquaredWeights tính bằng tổng bình phương IDF của mỗi

từ trong truy vấn

3. coord(q,d): tổng trọng số của mỗi từ t trong truy vấn q cho văn bản d.

Tuy nhiên yếu tố này dựa trên có bao nhiêu từ trong truy vấn xuất hiện

trong văn bản. Chẳng hạn chúng ta có 1 truy vấn "quick brown fox", và

trọng số của mỗi từ là 1.5. Khi đó coord(q,d) của 3 văn bản sau sẽ được

tính là:

 Văn bản chứa "fox" → score: 1.5 * 1 / 3 = 0.5

 Văn bản chứa "quick fox" → score: 3.0 * 2 / 3 = 2.0

 Văn bản chứa "quick brown fox" → score: 4.5 * 3 / 3 = 4.5

4. tf(t in d): tần suất từ t trong văn bản d

tf(t in d) = √𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦

5. idf(t): tần suất nghịch của từ t trong tập văn bản

idf(t) = 1 + log ( numDocs / (docFreq + 1))

 numDocs là số văn bản trong chỉ mục

 docFreq là số văn bản có chứa từ t

6. t.getBoost(): hệ số khuếch đại của từ

7. norm(t,d) = 1 / √𝑛𝑢𝑚𝑇𝑒𝑟𝑚𝑠

 numTerms là số từ có trong trường

Điểm mạnh nhất của Elasticsearch như đã đề cập ở trên là tính phân tán và

khả năng mở rộng. Elasticsearch có khả năng mở rộng theo chiều ngang một cách



23



hồn tồn tự động, và phía ứng dụng khơng phải thay đổi gì. Dưới đây là một mơ

hình đơn giản minh họa cho kiến trúc này của Elasticsearch.



Hình 6: Lưu trữ phân tán trong Elasticsearch [12]

Nhìn vào hình trên có thể thấy, dữ liệu được lưu trữ ở cluster với 3 nodes

trong đó node 1 là master. Có 3 primary shards, 2 trong số đó được đặt ở node 1,

còn lại ở node 3. Mỗi primary shard có 2 replica shard (ví dụ primary shard P0 ở

Node3 thì có replica shard R0 ở node 1 và một shard nữa ở Node 2).

Ngoài ra, hệ sinh thái của Elasticsearch rất phong phú, bao gồm:

 Plugins: các thành phần mở rộng nhỏ, chẳng hạn: plugin_head

 Clients: hỗ trợ nhiều ngơn ngữ lập trình như Java, JavaScript,

Groovy, .NET, PHP, Perl, Python, Ruby.

 Logstash: hỗ trợ import dữ liệu từ file log

 Kibana: hỗ trợ báo cáo thống kê

 Hadoop integration: hỗ trợ tích hợp với hadoop

 Marvel: hỗ trợ giám sát trạng thái các node

2.2. HỆ THỐNG GỢI Ý

Hệ thống gợi ý (Recommender Systems - RS) là một dạng của hệ thống lọc

thơng tin (information filtering). Nó được sử dụng để dự đốn sở thích (preferences)

hay xếp hạng (rating) mà người dùng có thể dành cho một sản phẩm (item) nào đó



24



mà họ chưa xem xét tới trong quá khứ (sản phẩm ở đây có thể là bài hát, bộ phim,

đoạn video clip, sách, bài báo,..).

Ví dụ, trong hệ thống bán hàng trực tuyến, nhằm tối ưu hóa khả năng mua

sắm của khách hàng, người ta quan tâm đến việc những khách hàng nào đã ‘thích’

những sản phẩm nào bằng cách dựa vào dữ liệu quá khứ của họ (dữ liệu này có thể

là xếp hạng mà người dùng đã bình chọn trên sản phẩm, thời gian duyệt trên sản

phẩm, số lần click chuột trên sản phẩm,..) từ đó hệ thống sẽ dự đốn được người

dùng có thể thích sản phẩm nào và đưa ra những gợi ý phù hợp cho họ.

Ngồi lĩnh vực thương mại điện tử như ví dụ trên, hiện tại RS cũng được ứng

dụng khá thành cơng trong nhiều lĩnh vực khác như trong giải trí: gợi ý bài hát cho

người nghe (ví dụ LastFM), gợi ý phim ảnh (ví dụ Netflix), gợi ý các video clip (ví

dụ YouTube); trong giáo dục và đào tạo (gợi ý nguồn tài nguyên học tập như sách,

bài báo, địa chỉ web,… cho người học);

Hệ thống gợi ý không chỉ đơn thuần là một dạng Hệ thống thông tin mà nó

còn là cả một lĩnh vực nghiên cứu hiện đang rất được các nhà khoa học quan tâm.

Kể từ năm 2007 đến nay, hàng năm đều có hội thảo chuyên về hệ thống gợi ý của

ACM (ACM RecSys) cũng như các tiểu bang dành riêng cho RS trong các hội nghị

lớn khác như ACM KDD, ACM CIKM,..

Hiện tại, trong RS có rất nhiều giải thuật được đề xuất, tuy nhiên có thể gom

chúng vào trong các nhóm chính:

 Nhóm giải thuật lọc cộng tác (Collaborative Filtering): trong nhóm này,

các giải thuật chủ yếu sử dụng:

 Phương pháp láng giềng (Neighborhood-based, còn gọi là

Memorybased), trong đó hoặc là dựa trên dữ liệu quá khứ của

người dùng “tương tự” (user-based approach), hoặc là dựa trên dữ

liệu quá khứ của những sản phẩm “tương tự” (item-based

approach)

 Dựa trên mơ hình (Model-based): Nhóm này liên quan đến việc xây

dựng các mơ hình dự đốn dựa trên dữ liệu thu thập được trong quá

khứ. Như mơ hình Bayesian, các mơ hình nhân tố tiềm ẩn (latent



25



factor models): trong đó kỹ thuật phân rã ma trận (matrix

factorization) là một điển hình.

 Nhóm giải thuật lọc trên nội dung (Content-based Filtering): Gợi ý các

item dựa vào hồ sơ (profiles) của người dùng hoặc dựa vào nội dung/thuộc

tính (attributes) của những item tương tự như item mà người dùng đã chọn

trong quá khứ.

 Nhóm lai ghép: Kết hợp cả 2 cách trên.

 Nhóm kỹ thuật khơng cá nhân hóa (non-personalization): Gợi ý như nhau

đối với mọi người dùng. Chẳng hạn như gợi ý sản phẩm phổ biến nhất,

được xem nhiều nhất…

Một trong những khuyết điểm của phương pháp lọc theo nội dung là khó

khăn trong việc thu thập thơng tin, trong khi phần lớn các mơ hình dựa trên lọc cộng

tác chỉ cần 3 thông tin (user id, item id, feedback) là có thể hoạt động tốt. Do vậy

luận văn tập trung nghiên cứu về nhóm lọc cộng tác. Sau đây sẽ trình bày tóm tắt

các kỹ thuật thông dụng trong phương pháp này.

2.2.1. Kỹ thuật k láng giềng

Có hai cách tiếp cận của lọc cộng tác theo mơ hình K láng giềng là dựa trên

người dùng (User based) – dự đoán dựa trên sự tương tự giữa các người dùng và

dựa trên sản phẩm (Item based) – dự đoán dựa trên sự tương tự giữa các sản phẩm.

2.2.1.1. Dựa trên người dùng (User-based)

Kỹ thuật k láng giềng dựa trên người dùng xác định độ tương tự giữa hai

người dùng thông qua việc so sánh các đánh giá của họ trên cùng sản phẩm, sau đó

dự đốn xếp hạng trên sản phẩm i bởi người dùng u, thông qua các xếp hạng của

những người dùng tương tự với người dùng u. Độ tương tự giữa người dùng u và

người dùng u' có thể được tính theo Cosine hoặc Pearson như sau:

𝑠𝑖𝑚𝑐𝑜𝑠𝑖𝑛 (𝑢, 𝑢') =



∑𝑖∈𝐼𝑢𝑢′ 𝑟𝑢𝑖 .𝑟𝑢′𝑖

2 ∑

2

√∑𝑖∈𝐼𝑢𝑢′ 𝑟𝑢𝑖

√ 𝑖∈𝐼𝑢𝑢′ 𝑟𝑢′𝑖



26



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ

Tải bản đầy đủ ngay(0 tr)

×