Bước tới nội dung

Thành viên:Plantaest/Citron

Bách khoa toàn thư mở Wikipedia
Dự án Citron

Citron là một dự án phần mềm, có mục đích là quan sát luồng Thay đổi gần đây một cách liên tục để tăng khả năng phát hiện những liên kết xấu.

Bối cảnh

[sửa | sửa mã nguồn]

Trong nhiều năm nay, nhất là một năm trở lại đây, tình trạng chèn liên kết xấu (quảng cáo, PR) xuất hiện với mức độ ngày càng nhiều và tinh vi. Một cuộc kiểm định gần đây cho biết có hơn 140 tài khoản thực hiện công việc này. Một cuộc kiểm định khác đầu tuần này lại tiếp tục cho thấy các tài khoản tương tự lại tái thực hiện các hành vi đã nói. Ngoài ra, còn có những trường hợp liên kết quảng cáo được sống rất lâu khi cộng đồng không thể tuần tra liên tục, như trường hợp của một thành viên giả hành vi của InternetArchiveBot.

Tiền đề

[sửa | sửa mã nguồn]

Cách đây gần 2 năm, ý tưởng về một phần mềm kiểm tra luồng Thay đổi gần đây và phát hiện liên kết xấu đã được tôi lên ý tưởng và có thảo luận với thành viên MrMisterer để nhận một số góp ý sơ bộ. MrMisterer đã đưa ra những quan điểm kiểm tra hợp lý dưới góc nhìn của một tuần tra viên tích cực.

Một số khái niệm

[sửa | sửa mã nguồn]
  • Liên kết xấu (bad link) là những liên kết không có tư cách xuất hiện trên nền tảng Wikipedia. Đó thường là những liên kết đến các trang thương mại, trang tự xuất bản, trang cá nhân, trang chứa mã độc, v.v.
  • Liên kết tốt (good link) là những liên kết được chấp nhận xuất hiện trên nền tảng Wikipedia, với mục đích rõ ràng là phục vụ cho nội dung của Wikipedia.

Đặc tả sơ bộ

[sửa | sửa mã nguồn]

Vì đây là tài liệu khảo sát những ý tưởng cho Citron, do đó sẽ không đi sâu vào vấn đề triển khai như thế nào. Nhưng có thể mô tả trước một số thiết kế quan trọng của phần mềm.

Hạ tầng

[sửa | sửa mã nguồn]

Citron là một dịch vụ web (web service), có thể chạy trên hạ tầng của hệ thống Toolforge. Cơ sở dữ liệu của Citron được lưu trữ trên Toolforge. Mỗi một wiki có thể tạo ra một bản thực hiện (instance) của Citron để chạy trên wiki của cộng đồng mình.

Cơ chế chính

[sửa | sửa mã nguồn]

Khi Citron hoạt động, nó sẽ thực hiện các công việc của mình theo một số bước, gợi ý như sau:

  • (1) Kết nối luồng Thay đổi gần đây. Việc kết nối có thể thông qua EventStreams, giúp lấy dữ liệu sửa đổi liên tục từ bất kỳ wiki nào thuộc hệ thống Wikimedia.
  • (2) Lọc những sửa đổi thỏa một số điều kiện:
    • Sửa đổi là của IP hoặc của tài khoản dưới mức xác nhận mở rộng (extendedconfirmed).
      • Vì sao là mức extendedconfirmed? Vì một số tài khoản PR có kinh nghiệm có thể sẽ không chèn liên kết quảng cáo ngay từ đầu, mà giả dạng để qua mặt.
    • Những điều kiện này có thể được cấu hình tùy theo cộng đồng wiki.
  • (3) Lấy thông tin của từng sửa đổi, nhất là thông tin về “những dòng được thêm”, gọi là biến added_lines.
    • added_lines có thể là:
      • Những dòng được thêm mới
      • Những dòng được thay đổi từ dòng đã có ở phiên bản trước đó
    • Việc sử dụng added_lines giúp giới hạn khối lượng văn bản cần xử lý, không cần xử lý toàn bộ văn bản của bài viết, mà chỉ cần quan tâm đối tượng chỉnh sửa đang thêm gì.
  • (4) Trích xuất các liên kết từ added_lines.
  • (5) Đánh giá liên kết thông qua các luật heuristic và máy học
    • Luật heuristic là những luật có định nghĩa rõ ràng. Ví dụ một mệnh đề: "Nếu một liên kết thuộc danh sách trắng (white list), thì nó là một liên kết tốt, và không cần kiểm tra thêm nữa." Như vậy, luật heuristic bao gồm các công cụ đánh giá thuộc về kinh nghiệm được tích lũy. Những công cụ này có thể bao gồm:
      • Danh sách trắng, là một danh sách được phát hành và bảo trì bởi cộng đồng, nhằm bỏ qua những liên kết đã được đánh giá là tốt (good) và không phải spam, quảng cáo. Giải pháp này có thể được triển khai, hoặc không.
        • Thường những trang được trích nguồn tại Wikipedia tiếng Việt nói thật là không quá nhiều nếu chỉ tính các nguồn tiếng Việt, đa phần là các trang báo, một số trang của trường đại học, kho lưu trữ. Vì vậy, việc lập một danh sách trắng, ít nhất là nguồn tiếng Việt, là trong tầm tay của cộng đồng.
      • Thông tin Whois. Một số mệnh đề đánh giá có thể có được từ thông tin Whois của tên miền:
        • Tuổi tên miền dưới 1 năm khả năng cao là liên kết xấu?
        • Tên miền được đăng ký bởi một nhà cung cấp ở Việt Nam có khả năng là một liên kết xấu?
      • Sử dụng một số thủ thuật để lấy thông tin xếp hạng của website:
      • Những tính chất đáng ngờ khác của một liên kết xấu mà cộng đồng có thể bổ sung?
    • Máy học, là việc dùng dữ liệu của một số spam list như vi:Special:BlockedExternalDomains, en:MediaWiki:Spam-blacklist, meta:Spam blacklist để tạo một mô hình máy học nhằm đánh giá khả năng liên kết này là tốt hay xấu. Một số yếu tố đánh giá bao gồm:
      • Sự xuất hiện của những từ/cụm từ đặc trưng của một tên miền xấu? Như “cuahang”, “congty”, “bet”, v.v.
      • Sự xuất hiện của những tên miền cấp cao nhất (TLD) đáng ngờ? Như .shop, .vip, .info, .bet, v.v.
      • Ngoài ra, máy học có thể được dùng để đánh giá các siêu dữ liệu (metadata) của website nếu như cần kiểm tra sâu hơn bằng việc truy cập website đó. Từ đó, có thể đánh giá website có là một web thương mại hay không (là dạng web thường hay được coi là spam trên môi trường wiki).
  • (6) Kết luận: Từ kết quả đánh giá, chương trình sẽ phân loại các liên kết thành 2 nhóm chính:
    • Nhóm 1: Khả năng rất cao là liên kết xấu.
    • Nhóm 2: Chưa chắc chắn, nhưng có khả năng là liên kết xấu.
  • (7) Quy trình xử lý hậu kiểm tra:
    • Đối với nhóm 1: Tiến hành báo cáo tại một trang riêng, trang này có thể nằm trên Wikipedia, được cập nhật bởi bot, hoặc một cơ chế tương tự.
    • Đối với nhóm 2: Tình nguyện viên đánh giá thủ công thông qua một giao diện, có thể là giao diện riêng của Citron, hoặc là một giao diện được tích hợp trong một số công cụ như dự án Zinnia. Chức năng của các giao diện được triển khai thông qua các API của máy chủ Citron.
  • (8) Từ kết quả báo cáo của công cụ, bảo quản viên có thể xem xét thêm liên kết vào danh sách chặn.

Ưu điểm

[sửa | sửa mã nguồn]
  • Hoạt động 24/7
  • Không bỏ sót bất kỳ sửa đổi nào trong nhóm sửa đổi thỏa điều kiện kiểm tra
  • Dữ liệu được lưu lại để có thể tái sử dụng cho những mục đích điều tra bổ sung
  • Việc triển khai có thể là liên wiki để thu nhận được dữ liệu đa dạng, từ đó tạo ra cơ chế hỗ trợ lẫn nhau giữa các cộng đồng để đẩy lùi tình trạng chèn liên kết xấu.
  • Độ chính xác có thể tăng dần theo thời gian khi dữ liệu đủ nhiều

Nhược điểm

[sửa | sửa mã nguồn]
  • Không phải là tự động 100%, do cần có con người góp sức để đảm bảo hiệu quả đánh giá, giảm thiểu những đánh giá nhầm (false positive).
  • Độ chính xác có thể không cao ở thời điểm ban đầu khi mới triển khai