Hỏi về cách làm Dataset cho Fake news dectection với tiếng Việt?

nlp-tiengviet

#1

Xin chào các anh, chị trên diễn đàn, Em hiện đang làm luận văn về chủ đề Fake News detection cho tiếng Việt. Trong quá trình tìm hiểu về chủ đề này thì có 1 vấn đề nảy sinh ngay từ đầu là định nghĩa của fake news - tin tức giả:

  1. Trong Fake news detection on Social Media: Data mining perspective của Kai Shu et al, và các bài viết sau này của Kai Shu đều dùng định nghĩa sau: Fake news is a news article that is intentionally and verifiably false
  2. Trong Social Media and Fake News in 2016 Election của Hunt Allcott et al, ngoài phần định nghĩa như của Kai Shu thì có thêm 1 bổ sung: Fake news could mislead reader
  3. Trong Deception detection for news: Three types of fakes của V. Rubin et al nêu ra 3 loại tin giả, phân loại theo mức độ ảnh hưởng của chúng: Serious Fabrications - nghiêm trọng, Large-Scale Hoaxes - quy mô lớn, Humorous Fakes - ít nghiêm trọng hơn.

Từ một số định nghĩa với khái niệm trên nảy sinh ra một số vấn đề khi em bắt đầu làm dataset, đó là:

  1. Nhóm chúng em hiện tại đang tạo dataset tin giả chỉ tập trung vào các tin tức tường thuật sự kiện. Chúng em phân loại bằng cách kiểm tra chéo các nguồn tin với nhau. Ngoài ra nhóm em chưa biết thêm cách nào để phân loại tin tức giả để đưa vào dataset. Ví dụ như: chúng em có nên nhờ cộng đồng phân loại hay không?
  2. Ngoài các hình thức triển khai mô hình phân loại dựa trên ngôn ngữ học của bài báo, còn có thể phân loại bằng hình ảnh không?
  3. Và trong dataset của nhóm em nên đa dạng các loại tin tức giả như ở phần 3 em đã nhắc ở trên, hay chỉ nên tập trung phân loại 1 loại thôi ạ?

Cảm ơn các anh chị đã theo dõi


[09/13/2018 08:50] Một câu hỏi hay trên diễn đàn. Mình đánh giá . . .
#3

Việc phân loại tin thật tin giả cũng giống như dữ liệu trong y tế là bạn cần phải có chuyên gia. Nếu tự mình định nghĩa và phân loại, ngay chính bản thân người đó cũng không rõ như thế nào thì dẫn đến dữ liệu của bạn có rất nhiều nhiễu. Mình ko làm về NLP, nên chỉ đưa ra góp ý dạng chung chung (common sense) như

Câu 1. Bạn nên xem xét kỹ lại các bài báo bạn kể trên, đọc qua các mẫu dữ liệu của họ để xem họ định nghĩa và các mẫu sample như thế nào. Từ đó tương tự sang tiếng Việt.

Câu 2. Phân loại bằng hình ảnh? OK. nhưng bạn cần định nghĩa rõ ràng hơn nhiều. Ví dụ như hình ảnh như thế nào gọi là tin fake? Ảnh với nội dung không liên quan? ảnh cho là của ngày abc, nhưng thực ra đã online từ ngày xyz. Tuy nhiên ảnh lại cần liên hệ tới nội dung trong bài. Vì việc sử dụng ảnh cũ có thể chỉ là ví dụ không mang ý nghĩa lớn.

Câu 3.Tùy mục đích cuối cùng của bạn. Nhưng với vấn đề mình chưa có dữ liệu, vấn đề khó thì nên tập trung một phần nhỏ trước thì sẽ dễ hơn. Thu thập cả 3 loại sẽ tốn nhiều thời gian và khó khăn hơn.


#4

Anh nghĩ là làm dữ liệu “thật” (không phải là dữ liệu synthesis) cho bài toán Fake News là khó vì số lượng các sample thực sự là Fake News trên báo (theo anh) là rất ít. Liệu có thể đổi bài toán đi một chút thành “xác định độ tin cậy của tin tức” bằng cách tìm các bằng chứng (support) và các thông tin đối lập (contradiction) cho một mẩu tin cho trước.

Độ tin cậy của tin tức có thể xác thực bằng các thông tin:

  • Nguồn gửi tin
  • Ai gửi tin (độ tin cậy của người gửi)
  • Nội dung tin
  • Có các tin tức từ các nguồn khác support cho nó hoặc đối lập với nó không?

Có thể tưởng tượng mình sinh ra một mạng lưới các nguồn gửi, người gửi tin liên quan đến tin tức cho trước và mình đánh giá độ tin cậy của tin tức nhờ vào chính nội dung của tin và mối liên quan của nguồn gửi, người gửi với các node khác trên mạng.


#5

Về nguồn tin giả hiện em thấy có 1 đặc điểm ở Việt Nam là đi theo dòng sự kiện. Nhưng trong các bài báo đó thì những bài báo có chất lượng tin tức thấp thì nhóm em thấy có thể tự phân loại bằng cách kiểm tra chéo. Nhưng những bài viết có dựa trên “nền tảng sự thật” thì nhóm em vẫn thua như ở phần trên anh @ngcthuong có nói. Nhóm em cảm ơn ý kiến của anh @Minh_Pham. Nhóm em sẽ xem xét về hướng đi đó ạ


#6

Mình nghĩ “Fake News Challenge” trên codalab sẽ rất hữu ích cho bạn: http://www.fakenewschallenge.org/ Hiện tại hướng giải quyết của bên đó là chia bài toán Fake News thành từng nhiều stage nhỏ. Stage 1 sẽ là bài toán “Stance Detection”. Bạn có thể collect data theo kiểu mỗi sample sẽ có 2 phần “headline” và “body text”, nhãn của dữ liệu sẽ được chia làm 4 loại: 1/ Agree, 2/ Disagrees, 3/Discusses, 4/Unrelated. Các nhãn này thể hiện mối liên hệ giữa headline và body text. Ví dụ: headline là: “tranh luận về cải cách tiếng Việt”, trong khi đó body text lại nói về đội tuyển bóng đá Việt Nam, như vậy nhãn của sample này sẽ là 4/Unrelated.

Tại sao lại chọn stage 1 là “stance detection”? Và stage 2 sẽ là gì? … các câu hỏi tương tự bạn có thể tham khảo trong mục “frequently asked question” và tham gia trên slack của trang mình gửi.


#7

Luận văn của bạn ở cấp nào? Cử nhân, thạc sĩ, và tiến sĩ sẽ rất khác nhau. với câu hỏi của bạn

  1. Không ai biết fakenews là thế nào, trừ mấy tin nhảm nhí như thần dược chữa ung thư… Nhưng nó lại không thuộc vào nhóm tin tức bạn đang ngắm tới (sự kiện).
  2. Dùng hình ảnh âm thanh hay bất cứ thứ gì cũng được, càng enrich đưoc tập thuộc tính càng tốt.
  3. Cái này khó. Bên social network tôi thấy có topic là dự đoán độ hype của một tin tức (có thành trend hay không). Tôi nghĩ mức độ nghiêm trọng cuả fakenews tùy thuộc vào độ hype của nó chứ không phụ thuộc vào nội dung.
  4. Cái này quan trọng nhất này. Mình không làm NLP nên mấy cái trên có khi cũng la fakenews đấy ;p

#8

Cảm ơn anh, @Tran_Vu_Anh. Nhóm em đang làm luận văn cử nhân ạ. Cảm ơn anh đã nhắc em. Do hiện tại nhóm em mới làm nên quên mất các tin tức “nhảm”. Nhóm em sẽ xem về hype rate.


#9

A suggest em làm tổng hợp các dataset đã có cho tiếng anh (xem repo [1]) rồi tìm hiểu cách họ xây dựng bộ dữ liệu như thế nào để từ đó dựng cho tiếng Việt. Ví dụ bộ benchmark của Wang liar, liar pants on fire được sử dụng khá rộng rãi.

[1] https://github.com/sumeetkr/AwesomeFakeNews


#10

Định nghĩa này có vẻ hợp lý này. Nhưng bài toán này khó quá, với luận vắn SV mà làm những đề tài thế này thì GVHD cũng khủng lắm đấy.

http://www.fakenewschallenge.org/

  • Input
    • A headline and a body text - either from the same news article or from two different articles.
  • Output
    • Classify the stance of the body text relative to the claim made in the headline into one of four categories:
      1. Agrees : The body text agrees with the headline.
      2. Disagrees : The body text disagrees with the headline.
      3. Discusses : The body text discuss the same topic as the headline, but does not take a position
      4. Unrelated : The body text discusses a different topic than the headline

#11

Cảm ơn @sonvx@Tran_Vu_Anh đã gợi ý ạ.