Quy tắc của máy học:

Các phương pháp hay nhất về kỹ thuật máy học

Martin Zinkevich

Tài liệu này nhằm giúp những người có kiến thức cơ bản về công nghệ máy học có thể tận dụng các phương pháp hay nhất của Google trong lĩnh vực máy học. Chủ đề này thể hiện một phong cách cho công nghệ máy học, tương tự như Hướng dẫn về quy tắc lập trình Google C++ và các hướng dẫn phổ biến khác về lập trình thực tế. Nếu bạn đã tham gia một lớp học về máy học, hoặc được xây dựng hoặc làm việc trên một mô hình máy học, thì bạn có nền tảng cần thiết để đọc tài liệu này.

Martin Zinkevich giới thiệu 10 quy tắc yêu thích của mình về công nghệ máy học. Hãy đọc tiếp để tìm hiểu tất cả 43 quy tắc!

Thuật ngữ

Các thuật ngữ sau đây sẽ được nhắc đến nhiều lần trong cuộc thảo luận của chúng ta về công nghệ máy học hiệu quả:

  • Bản sao: Nội dung mà bạn muốn đưa ra dự đoán. Ví dụ: phiên bản có thể là một trang web mà bạn muốn phân loại là "về mèo" hoặc "không phải về mèo"
  • Nhãn: Câu trả lời cho một nhiệm vụ dự đoán, hoặc là câu trả lời do hệ thống máy học tạo ra hoặc câu trả lời đúng được cung cấp trong dữ liệu huấn luyện. Ví dụ: nhãn cho trang web có thể là "about mèo".
  • Tính năng: Thuộc tính của một phiên bản được sử dụng trong tác vụ dự đoán. Ví dụ: một trang web có thể có một tính năng "chứa từ &gt30;cat#39;".
  • Cột Tính năng: Một tập hợp các tính năng có liên quan, chẳng hạn như tập hợp tất cả các quốc gia có thể mà người dùng có thể sống. Ví dụ có thể có một hoặc nhiều tính năng hiển thị trong cột tính năng. "Cột Tính năng" là thuật ngữ dành riêng cho Google. Cột tính năng được gọi là "namespace" trong hệ thống VW (tại Yahoo/Microsoft) hoặc trường.
  • Ví dụ: Một phiên bản (với các tính năng của nó) và một nhãn.
  • Mô hình: Bản trình bày thống kê của một nhiệm vụ dự đoán. Bạn đào tạo một mô hình theo các ví dụ, sau đó sử dụng mô hình đó để đưa ra dự đoán.
  • Chỉ số: Một số mà bạn quan tâm. Có thể được tối ưu hóa trực tiếp hoặc không.
  • Mục tiêu: Chỉ số mà thuật toán của bạn đang cố gắng tối ưu hóa.
  • Pipeline: Cơ sở hạ tầng xung quanh một thuật toán máy học. Bao gồm việc thu thập dữ liệu từ giao diện người dùng, đưa dữ liệu đó vào các tệp dữ liệu huấn luyện, đào tạo một hoặc nhiều mô hình và xuất các mô hình đó sang môi trường hoạt động thực tế.
  • Tỷ lệ nhấp Tỷ lệ phần trăm số khách truy cập vào một trang web nhấp vào một đường liên kết trong một quảng cáo.

Tổng quan

Cách tạo ra những sản phẩm tuyệt vời:

công nghệ máy học như bạn là một kỹ sư xuất sắc chứ không phải một chuyên gia máy học xuất sắc.

Hầu hết các vấn đề bạn sẽ gặp phải đều là các vấn đề kỹ thuật. Ngay cả khi có tất cả tài nguyên của một chuyên gia máy học xuất sắc, hầu hết những lợi ích đó đều đến từ những tính năng tuyệt vời, chứ không phải từ những thuật toán máy học tuyệt vời. Phương pháp cơ bản là:

  1. Đảm bảo kênh của bạn hoạt động ổn định.
  2. Bắt đầu với một mục tiêu hợp lý.
  3. Thêm các tính năng thông thường một cách đơn giản.
  4. Đảm bảo kênh của bạn luôn ổn định.

Phương pháp này sẽ hoạt động tốt trong một khoảng thời gian dài. Hãy tránh xa phương pháp này khi không còn mẹo hay đơn giản nào khác. Việc thêm độ phức tạp sẽ làm chậm các bản phát hành trong tương lai.

Một khi bạn đã biết hết những thủ thuật đơn giản, thực tế thì công nghệ máy học tiên tiến có thể nằm trong tương lai của bạn. Xem mục về Giai đoạn III các dự án máy học.

Tài liệu này được sắp xếp như sau:

  1. Phần đầu tiên sẽ giúp bạn nắm được thời điểm phù hợp để xây dựng một hệ thống máy học.
  2. Phần thứ hai là về việc triển khai quy trình đầu tiên của bạn.
  3. Phần thứ ba là giới thiệu và lặp lại quy trình trong khi thêm các tính năng mới vào quy trình của bạn, cách đánh giá các mô hình và sai lệch khi phân phát đào tạo.
  4. Phần cuối cùng là việc bạn cần làm khi đến cao nguyên.
  5. Sau đó, chúng tôi cung cấp một danh sách các công việc liên quan và một phụ lục kèm theo một số thông tin cơ bản về các hệ thống thường được dùng làm ví dụ trong tài liệu này.

Trước khi máy học

Quy tắc số 1: Đừng ngại triển khai sản phẩm mà không cần máy học.

Công nghệ máy học rất thú vị, nhưng yêu cầu phải có dữ liệu. Về lý thuyết, bạn có thể lấy dữ liệu từ một vấn đề khác rồi chỉnh sửa mô hình của một sản phẩm mới, nhưng sẽ kém hiệu quả hơn các phương pháp phỏng đoán cơ bản. Nếu bạn nghĩ rằng công nghệ máy học sẽ tăng 100% thì phương pháp phỏng đoán sẽ giúp bạn tăng 50% phạm vi tiếp cận.

Ví dụ: nếu bạn đang xếp hạng ứng dụng trong một thị trường ứng dụng, bạn có thể sử dụng tỷ lệ cài đặt hoặc số lượt cài đặt làm phỏng đoán. Nếu bạn đang phát hiện tin nhắn rác, hãy lọc ra các nhà xuất bản từng gửi tin nhắn rác. Đừng ngại sử dụng tính năng chỉnh sửa thủ công. Nếu bạn cần xếp hạng những người liên hệ, hãy xếp hạng những người sử dụng cao nhất gần đây nhất (hoặc thậm chí xếp hạng theo thứ tự bảng chữ cái). Nếu công nghệ máy học không hoàn toàn bắt buộc đối với sản phẩm của bạn, đừng sử dụng cho đến khi bạn có dữ liệu.

Quy tắc số 2: Trước tiên, hãy thiết kế và triển khai các chỉ số.

Trước khi chính thức hoá việc hệ thống máy học sẽ thực hiện, hãy theo dõi nhiều nhất có thể trong hệ thống hiện tại của bạn. Hãy thực hiện việc này vì những lý do sau:

  1. Việc nhận được sự cho phép của người dùng hệ thống từ trước sẽ dễ dàng hơn.
  2. Nếu bạn cho rằng một điều gì đó có thể lo ngại trong tương lai thì tốt hơn là bạn nên xem dữ liệu trong quá khứ.
  3. Nếu bạn thiết kế hệ thống của mình bằng việc đo lường chỉ số, mọi thứ sẽ tốt hơn cho bạn trong tương lai. Cụ thể, bạn không muốn thấy mình đang nắm bắt các chuỗi trong nhật ký để đo lường các chỉ số của mình!
  4. Bạn sẽ nhận thấy nội dung nào thay đổi và nội dung được giữ nguyên. Ví dụ: giả sử bạn muốn tối ưu hoá trực tiếp người dùng đang hoạt động trong một ngày. Tuy nhiên, trong khi thao tác sớm của hệ thống, bạn có thể nhận thấy rằng những thay đổi đáng kể về trải nghiệm người dùng không làm thay đổi đáng kể chỉ số này.

Các nhóm Google Plus mở rộng mỗi lượt đọc, chia sẻ lại mỗi lượt đọc, cộng một lượt đọc, nhận xét/đọc, nhận xét trên mỗi người dùng, chia sẻ lại cho mỗi người dùng, v.v. mà họ sử dụng để tính toán mức độ hiệu quả của một bài đăng tại thời điểm phân phát. Ngoài ra, xin lưu ý rằng một khung thử nghiệm mà bạn có thể nhóm người dùng thành các nhóm và số liệu thống kê tổng hợp theo thử nghiệm là rất quan trọng. Xem Quy tắc số 12.

Khi thoải mái hơn trong việc thu thập chỉ số, bạn có thể có được cái nhìn bao quát hơn về hệ thống của mình. Bạn nhận thấy có vấn đề? Hãy thêm một chỉ số để theo dõi chỉ số đó! Bạn có hào hứng về một số thay đổi định lượng trong bản phát hành gần đây nhất không? Hãy thêm một chỉ số để theo dõi chỉ số đó!

Quy tắc số 3: Chọn công nghệ máy học qua phương pháp phỏng đoán phức tạp.

Một phương pháp đơn giản có thể giúp sản phẩm của bạn xuất hiện. Một phương pháp phỏng đoán phức tạp không thể duy trì được. Sau khi có dữ liệu và ý tưởng cơ bản về những gì mình đang cố gắng đạt được, hãy chuyển sang công nghệ máy học. Như trong hầu hết các tác vụ kỹ thuật phần mềm, bạn nên liên tục cập nhật phương pháp của mình, cho dù đó là phương pháp phỏng đoán hay mô hình máy học. Bạn sẽ thấy rằng mô hình máy học sẽ dễ cập nhật và duy trì hơn (xem Quy tắc số 16).

Giai đoạn I của máy học: Quy trình đầu tiên của bạn

Tập trung vào cơ sở hạ tầng hệ thống của bạn cho quy trình đầu tiên. Mặc dù việc nghĩ về tất cả những công nghệ máy học trí tưởng tượng mà bạn sẽ làm là rất thú vị, nhưng sẽ rất khó để tìm ra điều gì sẽ xảy ra nếu trước tiên bạn không tin tưởng quy trình của mình.

Quy tắc số 4: Giữ cho mô hình đầu tiên đơn giản và có cơ sở hạ tầng phù hợp.

Mô hình đầu tiên có khả năng tăng cường hiệu quả cao nhất cho sản phẩm, vì vậy, bạn không cần phải sử dụng mô hình này. Nhưng bạn sẽ gặp nhiều vấn đề về cơ sở hạ tầng hơn so với dự kiến. Trước khi bất kỳ ai cũng có thể sử dụng hệ thống máy học mới lạ mắt của bạn, bạn phải xác định:

  • Cách xem ví dụ về thuật toán học tập.
  • Ưu tiên đầu tiên là: "quot;good" và "bad" có ý nghĩa với hệ thống.
  • Cách tích hợp mô hình vào ứng dụng. Bạn có thể áp dụng mô hình trực tiếp hoặc tính toán trước mô hình trên các ví dụ ngoại tuyến và lưu trữ kết quả trong bảng. Ví dụ: bạn có thể muốn phân loại trước các trang web và lưu trữ kết quả trong một bảng, nhưng bạn có thể muốn phân loại trực tiếp các tin nhắn trò chuyện.

Khi chọn các tính năng đơn giản, bạn sẽ dễ dàng đảm bảo rằng:

  • Các tính năng này sẽ tiếp cận đúng thuật toán học tập của bạn.
  • Mô hình sẽ học được các trọng số hợp lý.
  • Các tính năng sẽ tiếp cận mô hình của bạn trong máy chủ một cách chính xác.

Sau khi có một hệ thống thực hiện ba việc này một cách đáng tin cậy, bạn đã thực hiện hầu hết công việc. Mô hình đơn giản của bạn cung cấp cho bạn các chỉ số cơ sở và hành vi cơ sở mà bạn có thể sử dụng để kiểm tra các mô hình phức tạp hơn. Một số nhóm hướng đến "trung lập" lần phát hành đầu tiên: lần phát hành đầu tiên ưu tiên lợi ích máy học rõ ràng để tránh bị phân tâm.

Quy tắc số 5: Kiểm tra độc lập cơ sở hạ tầng với công nghệ máy học.

Đảm bảo rằng cơ sở hạ tầng có thể kiểm thử được và các phần học tập của hệ thống được đóng gói để bạn có thể kiểm thử mọi thứ xung quanh. Cụ thể:

  1. Thử nghiệm việc tải dữ liệu vào thuật toán. Kiểm tra để đảm bảo rằng các cột tính năng sẽ được điền sẵn. Trong trường hợp quyền riêng tư được chấp nhận, hãy kiểm tra thủ công dữ liệu đầu vào cho thuật toán đào tạo. Nếu có thể, hãy kiểm tra số liệu thống kê trong quy trình của bạn so với số liệu thống kê cho cùng một dữ liệu được xử lý ở nơi khác.
  2. Thử nghiệm các mô hình nằm ngoài thuật toán đào tạo. Hãy đảm bảo rằng mô hình trong môi trường đào tạo của bạn có cùng điểm số với mô hình trong môi trường phân phát (xem nội dung Quy tắc số 37).

Công nghệ máy học có yếu tố không dự đoán được. Vì vậy, hãy đảm bảo rằng bạn có các thử nghiệm để tạo mã trong quá trình đào tạo và phân phát, cũng như bạn có thể tải và sử dụng mô hình cố định trong quá trình phân phát. Ngoài ra, bạn cũng cần hiểu được dữ liệu của mình: xem Lời khuyên thực tế về việc phân tích các tập dữ liệu lớn và phức tạp.

Quy tắc số 6: Hãy cẩn thận về việc dữ liệu bị bỏ qua khi sao chép quy trình.

Thông thường, chúng tôi tạo một quy trình bằng cách sao chép một quy trình hiện có (ví dụ: lập trình hàng hóa hàng hóa) và quy trình cũ bỏ qua dữ liệu mà chúng tôi cần cho quy trình mới. Ví dụ: quy trình cho Google Plus What's Hot bỏ qua các bài đăng cũ hơn (vì cố gắng xếp hạng các bài đăng mới). Quy trình này được sao chép để sử dụng cho Google Plus, khi các bài đăng cũ vẫn có ý nghĩa, nhưng quy trình vẫn bỏ qua các bài đăng cũ. Một mẫu phổ biến khác là chỉ ghi nhật ký dữ liệu nhật ký mà người dùng đã xem. Do đó, dữ liệu này sẽ vô ích nếu chúng ta muốn lập mô hình lý do người dùng không nhìn thấy một bài đăng cụ thể, vì hệ thống đã bỏ mọi ví dụ phủ định. Đã xảy ra sự cố tương tự trong Play. Trong quá trình làm việc trên Trang chủ Play Apps, một quy trình mới đã được tạo và cũng chứa các ví dụ từ trang đích cho Play Games mà không có tính năng nào để phân biệt nguồn gốc của từng ví dụ.

Quy tắc số 7: Biến phỏng đoán thành các tính năng hoặc xử lý chúng bên ngoài.

Thông thường, các vấn đề mà công nghệ máy học đang cố gắng giải quyết không phải là hoàn toàn mới. Hiện có một hệ thống xếp hạng, phân loại hoặc bất kỳ vấn đề nào mà bạn đang cố gắng giải quyết. Điều này có nghĩa là có một loạt các quy tắc và phỏng đoán. Các phương pháp phỏng đoán này có thể giúp bạn phát triển khi điều chỉnh bằng công nghệ máy học. suy đoán của bạn nên được khai thác cho bất kỳ thông tin nào họ có, vì hai lý do. Trước tiên, quá trình chuyển đổi sang một hệ thống máy học sẽ mượt mà hơn. Thứ hai, thường các quy tắc đó chứa rất nhiều trực giác về hệ thống mà bạn không muốn loại bỏ. Bạn có thể sử dụng các phương pháp phỏng đoán hiện có theo 4 cách sau:

  • Xử lý trước bằng phương pháp phỏng đoán. Nếu tính năng này cực kỳ tuyệt vời, thì đây là một lựa chọn. Ví dụ: nếu trong bộ lọc thư rác, người gửi đã bị đưa vào danh sách cấm, thì đừng cố tìm hiểu lại nội dung "danh sách cấm" nghĩa là gì. Chặn tin nhắn. Cách tiếp cận này phù hợp nhất trong các tác vụ phân loại nhị phân.
  • Tạo tính năng. Thật tuyệt vời khi trực tiếp tạo một tính năng từ phương pháp phỏng đoán. Ví dụ: nếu bạn sử dụng phương pháp phỏng đoán để tính toán mức độ liên quan cho kết quả truy vấn, bạn có thể bao gồm điểm số dưới dạng giá trị của một tính năng. Sau đó, bạn có thể sử dụng các kỹ thuật máy học để mát xa giá trị (ví dụ: chuyển đổi giá trị thành một trong các tập hợp giá trị riêng biệt hoặc kết hợp giá trị đó với các tính năng khác) nhưng bắt đầu bằng cách sử dụng giá trị thô do phương pháp phỏng đoán tạo ra.
  • Khai thác dữ liệu đầu vào thô của phỏng đoán. Nếu có một phương pháp phỏng đoán cho các ứng dụng kết hợp số lượt cài đặt, số lượng ký tự trong văn bản và ngày trong tuần, hãy cân nhắc tách riêng các phần này ra rồi cho riêng dữ liệu nhập vào quá trình tìm hiểu. Tại đây, một số kỹ thuật áp dụng cho toàn bộ ứng dụng không áp dụng (xem Quy tắc số 40).
  • Sửa đổi nhãn. Đây là một tuỳ chọn khi bạn cảm thấy rằng phỏng đoán ghi lại thông tin hiện không có trong nhãn. Ví dụ: nếu bạn đang cố gắng tối đa hoá số lượt tải xuống nhưng cũng muốn có nội dung chất lượng cao, thì có thể giải pháp là nhân nhãn với số sao trung bình mà ứng dụng nhận được. Có rất nhiều lý do. Xem "Mục tiêu đầu tiên của bạn".

Hãy lưu ý đến độ phức tạp khi thêm phương thức phỏng đoán trong hệ thống máy học. Việc sử dụng các phương pháp phỏng đoán cũ trong thuật toán máy học mới có thể giúp tạo ra một quá trình chuyển đổi mượt mà, nhưng hãy suy nghĩ xem có cách đơn giản hơn để đạt được hiệu ứng tương tự hay không.

Monitoring

Nhìn chung, hãy thực hành vệ sinh cảnh báo tốt, chẳng hạn như làm cho cảnh báo có thể hành động và có trang tổng quan.

Quy tắc số 8: Biết các yêu cầu về độ mới của hệ thống.

Hiệu suất sẽ giảm xuống bao nhiêu nếu bạn có mô hình đã lỗi thời? Một tuần trước? 1/4 tuổi? Thông tin này có thể giúp bạn hiểu các mức độ ưu tiên của tính năng theo dõi. Nếu bạn mất chất lượng sản phẩm đáng kể nếu mô hình không được cập nhật trong một ngày, bạn nên để một kỹ sư xem liên tục mô hình đó. Hầu hết hệ thống phân phát quảng cáo đều có quảng cáo mới xử lý hàng ngày và phải cập nhật hàng ngày. Ví dụ: nếu bạn không cập nhật mô hình máy học cho Google Play Tìm kiếm, thì mô hình này có thể có tác động tiêu cực trong chưa đầy một tháng. Một số mô hình về Nội dung nổi bật trong Google Plus không có giá trị nhận dạng bài đăng trong mô hình nên chúng không thường xuyên xuất được các mô hình này. Các mô hình khác có giá trị nhận dạng bài đăng được cập nhật thường xuyên hơn nhiều. Ngoài ra, hãy lưu ý rằng độ mới có thể thay đổi theo thời gian, đặc biệt là khi các cột tính năng được thêm vào hoặc bị xoá khỏi mô hình.

Quy tắc số 9: Phát hiện vấn đề trước khi xuất mô hình.

Nhiều hệ thống máy học có một giai đoạn mà bạn có thể xuất mô hình để phân phát. Nếu có vấn đề với một mô hình đã xuất, thì đó là vấn đề mà người dùng gặp phải.

Hãy kiểm tra tình trạng ngay trước khi xuất mô hình. Cụ thể, hãy đảm bảo rằng hiệu suất của mô hình này là hợp lý khi lưu giữ dữ liệu. Hoặc nếu bạn lo ngại về dữ liệu, đừng xuất mô hình. Nhiều nhóm liên tục triển khai các mô hình sẽ kiểm tra khu vực trong đường cong ROC (hoặc AUC) trước khi xuất. Vấn đề về các mô hình chưa được xuất cần phải có cảnh báo qua email, nhưng các vấn đề về mô hình mà người dùng nhìn thấy có thể yêu cầu một trang. Vì vậy, tốt hơn là bạn nên đợi và chắc chắn trước khi tác động đến người dùng.

Quy tắc #10: Chú ý đến những lỗi không rõ ràng.

Đây là vấn đề xảy ra ở nhiều hệ thống máy học hơn so với các loại hệ thống khác. Giả sử một bảng cụ thể đang được tham gia không còn được cập nhật. Hệ thống máy học sẽ điều chỉnh và hoạt động sẽ tiếp tục tốt đẹp, giảm dần. Đôi khi, bạn tìm thấy các bảng đã lỗi thời và việc làm mới đơn giản giúp cải thiện hiệu suất hơn so với bất kỳ bảng nào khác trong quý đó! Phạm vi của một tính năng có thể thay đổi do việc thay đổi cách triển khai: ví dụ: cột tính năng có thể được điền trong 90% ví dụ và đột ngột giảm xuống đến 60% ví dụ. Play đã từng có một bảng bị lỗi thời trong 6 tháng và chỉ cần làm mới bảng là đã tăng được 2% tỷ lệ cài đặt. Nếu theo dõi số liệu thống kê về dữ liệu, và thỉnh thoảng kiểm tra dữ liệu theo cách thủ công, bạn có thể giảm các loại lỗi này.

Quy tắc số 11: Cung cấp tài liệu và chủ sở hữu cột tính năng.

Nếu hệ thống lớn và có nhiều cột tính năng, hãy biết ai đã tạo hoặc đang duy trì từng cột tính năng. Nếu bạn thấy rằng người hiểu cột tính năng sẽ rời khỏi, hãy đảm bảo rằng ai đó có thông tin. Mặc dù nhiều cột tính năng có tên mô tả, nhưng bạn nên có phần mô tả chi tiết hơn về tính năng, nguồn gốc của tính năng và cách thức hoạt động dự kiến.

Mục tiêu đầu tiên của bạn

Bạn có nhiều chỉ số hoặc số đo về hệ thống mà bạn quan tâm, nhưng thuật toán máy học của bạn thường sẽ yêu cầu một mục tiêu duy nhất, một số liệu mà thuật toán của bạn là "try" để tối ưu hoá. Ở đây, tôi phân biệt giữa mục tiêu và chỉ số: chỉ số là các số mà hệ thống báo cáo, có thể quan trọng hoặc không quan trọng. Xem thêm Quy tắc số 2.

Quy tắc số 12: Đừng nghĩ quá về mục tiêu mà bạn chọn để tối ưu hóa trực tiếp.

Bạn muốn kiếm tiền, làm hài lòng người dùng và giúp thế giới trở nên tốt đẹp hơn. Có rất nhiều chỉ số mà bạn quan tâm, và bạn nên đo lường tất cả những chỉ số đó (xem Quy tắc số 2). Tuy nhiên, sớm trong quá trình máy học, bạn sẽ nhận thấy tất cả những tính năng này sẽ tăng lên, ngay cả những công cụ mà bạn không tối ưu hoá trực tiếp. Ví dụ: giả sử bạn quan tâm đến số lượt nhấp và thời gian dành cho trang web. Nếu tối ưu hoá cho số lượt nhấp, bạn có thể thấy thời gian sử dụng tăng lên.

Vì vậy, hãy đơn giản và đừng quá suy nghĩ về việc cân bằng các chỉ số khác nhau khi bạn vẫn có thể dễ dàng tăng tất cả các chỉ số. Đừng áp dụng quy tắc này quá lâu: đừng nhầm lẫn mục tiêu với tình trạng cuối cùng của hệ thống (xem Quy tắc số 39). Nếu bạn thấy mình đang tăng chỉ số được tối ưu hoá trực tiếp, nhưng quyết định không khởi chạy, bạn có thể phải sửa đổi một số mục tiêu.

Quy tắc số 13: Chọn một chỉ số đơn giản, có thể quan sát được và có thể phân bổ cho mục tiêu đầu tiên của bạn.

Thông thường, bạn sẽ không biết mục tiêu thực sự là gì. Bạn nghĩ là mình đã làm nhưng sau đó khi xem xét dữ liệu và phân tích song song hệ thống cũ và hệ thống máy học mới, bạn nhận ra rằng mình muốn điều chỉnh mục tiêu. Hơn nữa, các thành viên khác trong nhóm thường không thể thống nhất mục tiêu thực sự. Mục tiêu máy học phải là một thứ gì đó dễ đo lường và là một proxy cho mục tiêu "true" Trên thực tế, thường không có "true" mục tiêu (xem Quy tắc số 39). Vì vậy, hãy đào tạo về mục tiêu máy học đơn giản, và cân nhắc việc có một &chính\lớp chính sách" ở trên cùng cho phép bạn thêm logic bổ sung (Hy vọng logic rất đơn giản) để thực hiện thứ hạng cuối cùng.

Điều dễ thực hiện nhất để lập mô hình là một hành vi của người dùng được ghi nhận trực tiếp và được phân bổ cho một hành động của hệ thống:

  • Liên kết được xếp hạng này có được nhấp vào không?
  • Đối tượng được xếp hạng này có được tải xuống không?
  • Có phải đối tượng được xếp hạng này đã được chuyển tiếp/trả lời/gửi email không?
  • Đối tượng được xếp hạng này có được xếp hạng không?
  • Đối tượng hiển thị này có bị đánh dấu là vi phạm/nội dung khiêu dâm/phản cảm không?

Trước tiên, hãy tránh lập mô hình các hiệu ứng gián tiếp:

  • Người dùng có truy cập vào ngày hôm sau không?
  • Người dùng đã truy cập vào trang web trong bao lâu?
  • Người dùng hoạt động hằng ngày là gì?

Hiệu ứng gián tiếp tạo ra các chỉ số tuyệt vời và có thể được sử dụng trong quá trình thử nghiệm A/B và trong quá trình đưa ra quyết định.

Cuối cùng, đừng cố gắng máy học tìm ra:

  • Người dùng có hài lòng khi sử dụng sản phẩm này không?
  • Người dùng có hài lòng với trải nghiệm không?
  • Sản phẩm này có cải thiện được sức khỏe tổng thể của người dùng không?
  • Điều này sẽ ảnh hưởng như thế nào đến sức khỏe tổng thể của công ty?

Đây đều là những chỉ số quan trọng nhưng cũng vô cùng khó đo lường. Thay vào đó, hãy sử dụng proxy: nếu người dùng hài lòng, họ sẽ ở lại trên trang web lâu hơn. Nếu người dùng hài lòng, họ sẽ truy cập lại vào ngày mai. Về mặt sức khoẻ và công ty, bạn cần phải đánh giá để kết nối mọi mục tiêu máy học với bản chất của sản phẩm bạn đang bán và kế hoạch kinh doanh của bạn.

Quy tắc #14: Bắt đầu bằng một mô hình có thể diễn giải giúp việc gỡ lỗi dễ dàng hơn.

Hồi quy tuyến tính, hồi quy logistic và hồi quy Poisson được thúc đẩy trực tiếp bởi một mô hình xác suất. Mỗi dự đoán có thể được hiểu là xác suất hoặc giá trị dự kiến. Điều này giúp việc gỡ lỗi dễ dàng hơn so với các mô hình sử dụng mục tiêu (không mất một tài khoản, mất bản lề, v.v.) cố gắng tối ưu hoá trực tiếp độ chính xác của phân loại hoặc hiệu suất xếp hạng. Ví dụ: nếu xác suất trong quá trình đào tạo sai lệch với xác suất được dự đoán song song hoặc bằng cách kiểm tra hệ thống sản xuất, thì độ lệch này có thể gây ra vấn đề.

Ví dụ: trong hồi quy tuyến tính, logistic hoặc Poisson, có các tập hợp con của dữ liệu, trong đó kỳ vọng trung bình được dự đoán bằng nhãn trung bình (1- thời điểm được hiệu chỉnh hoặc vừa được hiệu chỉnh). Điều này đúng nếu bạn không có phép chuẩn hoá và thuật toán của bạn đã được hội tụ và nói chung là đúng. Nếu bạn có một đối tượng là 1 hoặc 0 cho mỗi ví dụ, thì tập hợp 3 ví dụ có tính năng đó là 1 sẽ được hiệu chỉnh. Ngoài ra, nếu bạn có 1 tính năng là 1 cho mỗi ví dụ, thì tập hợp tất cả các ví dụ sẽ được hiệu chỉnh.

Với các mô hình đơn giản, bạn sẽ dễ dàng xử lý các vòng phản hồi (xem nội dung Quy tắc số 36). Thông thường, chúng tôi sử dụng những dự đoán xác suất này để đưa ra quyết định: ví dụ: xếp hạng bài đăng trong việc giảm giá trị dự kiến (tức là xác suất nhấp chuột/tải xuống/v.v.). Tuy nhiên, hãy nhớ khi đến thời điểm nên chọn mô hình để sử dụng, quyết định này sẽ quan trọng hơn so với khả năng của dữ liệu dựa trên mô hình đó (xem Quy tắc số 27).

Quy tắc số 15: Lọc thư rác và xếp hạng chất lượng riêng biệt trong lớp chính sách.

Thứ hạng chất lượng là một tác phẩm mỹ thuật, nhưng việc lọc nội dung rác thì lại là một cuộc chiến. Những tín hiệu mà bạn sử dụng để xác định bài đăng chất lượng cao sẽ trở nên rõ ràng đối với những người sử dụng hệ thống của bạn và họ sẽ điều chỉnh bài đăng để có các thuộc tính này. Do đó, thứ hạng chất lượng của bạn nên tập trung vào việc xếp hạng nội dung được đăng một cách thành thực. Bạn không nên giảm giá người học khi xếp hạng chất lượng để xếp hạng cao. Tương tự, "TRY" nội dung cần được xử lý riêng biệt với Thứ hạng chất lượng. Lọc nội dung không mong muốn là một câu chuyện khác. Bạn cần kỳ vọng rằng các tính năng mà bạn cần tạo sẽ liên tục thay đổi. Thường thì sẽ có những quy tắc rõ ràng mà bạn đặt vào hệ thống (nếu bài đăng có nhiều hơn ba phiếu bình chọn thì bạn không được truy xuất bình luận đó, v.v.). Mọi mô hình đã tìm hiểu sẽ phải được cập nhật hằng ngày, nếu không sẽ nhanh hơn. Danh tiếng của nhà sáng tạo nội dung sẽ đóng vai trò to lớn.

Ở mức độ nào đó, dữ liệu đầu ra của 2 hệ thống này sẽ phải được tích hợp. Xin lưu ý rằng việc lọc thư rác trong kết quả tìm kiếm có thể nghiêm ngặt hơn việc lọc thư rác trong email. Điều này đúng nếu bạn không có quy tắc chuẩn hoá và thuật toán của bạn đã hội tụ. Đó là điều tương đối đúng. Ngoài ra, đó là một phương pháp thông thường để xoá nội dung vi phạm khỏi dữ liệu huấn luyện cho thuật toán phân loại chất lượng.

Giai đoạn II của máy học: Kỹ thuật tính năng

Trong giai đoạn đầu tiên của vòng đời của một hệ thống máy học, vấn đề quan trọng là đưa dữ liệu đào tạo vào hệ thống học tập, nhận được bất kỳ chỉ số nào mà bạn quan tâm và tạo cơ sở hạ tầng phân phát. Sau khi có hệ thống kết thúc hoạt động với các kiểm thử đơn vị và hệ thống được đo lường, giai đoạn II sẽ bắt đầu.

Giai đoạn hai có rất nhiều loại quả được treo thấp. Có nhiều tính năng rõ ràng có thể được kéo vào hệ thống. Do đó, giai đoạn thứ hai của công nghệ máy học bao gồm việc sử dụng nhiều tính năng nhất có thể và kết hợp các tính năng đó theo cách trực quan. Trong giai đoạn này, tất cả các chỉ số sẽ vẫn tăng. Sẽ có rất nhiều đợt phát hành, và đây là thời điểm tuyệt vời để đào tạo nhiều kỹ sư có thể kết hợp tất cả dữ liệu mà bạn cần để tạo ra một hệ thống học tập thực sự tuyệt vời.

Quy tắc số 16: Lên kế hoạch ra mắt và lặp lại.

Đừng mong đợi rằng mô hình mà bạn đang xử lý hiện tại sẽ là mô hình cuối cùng mà bạn sẽ khởi chạy, hoặc thậm chí là bạn sẽ ngừng khởi chạy mô hình. Do đó, hãy cân nhắc xem độ phức tạp mà bạn thêm vào lần phát hành này có làm chậm các lần khởi chạy trong tương lai hay không. Nhiều nhóm đã triển khai một mô hình mỗi quý trở lên trong nhiều năm. Có 3 lý do cơ bản để ra mắt mô hình mới:

  • Bạn đang nghĩ ra những tính năng mới.
  • Bạn đang điều chỉnh tính năng thông thường và kết hợp các tính năng cũ theo các cách mới.
  • Bạn đang điều chỉnh mục tiêu.

Bất kể chọn một mô hình nào đó có thể mang lại nhiều lợi ích, việc xem qua dữ liệu được đưa vào ví dụ có thể giúp tìm thấy các tín hiệu mới cũng như các tín hiệu cũ và bị hỏng. Vì vậy, khi bạn xây dựng mô hình của mình, hãy suy nghĩ về việc dễ dàng thêm hoặc xóa các tính năng hoặc kết hợp lại. Hãy suy nghĩ về mức độ dễ dàng khi tạo bản sao mới của quy trình và xác minh tính chính xác của quy trình. Hãy suy nghĩ xem có thể có hai hoặc ba bản sao chạy song song hay không. Cuối cùng, đừng lo lắng về việc liệu tính năng 16/35 có đưa phiên bản này vào quy trình hay không. Bạn sẽ nhận được quà trong quý tiếp theo.

Quy tắc số 17: Bắt đầu với các tính năng được quan sát và báo cáo trực tiếp thay vì các tính năng đã học.

Đây có thể là một điểm gây tranh cãi, nhưng nó tránh được rất nhiều sai lầm. Trước hết, hãy mô tả một tính năng đã học là gì. Tính năng đã học là một tính năng do hệ thống bên ngoài tạo ra (chẳng hạn như hệ thống phân nhóm không được giám sát) hoặc do chính người học tạo ra (ví dụ: thông qua mô hình phân bổ hoặc học sâu). Cả hai tính năng này đều hữu ích, nhưng đều có rất nhiều vấn đề, vì vậy, bạn không nên sử dụng mô hình đầu tiên.

Nếu bạn sử dụng một hệ thống bên ngoài để tạo tính năng, hãy nhớ rằng hệ thống bên ngoài có mục tiêu riêng. Mục tiêu của hệ thống bên ngoài có thể chỉ liên quan thấp với mục tiêu hiện tại của bạn. Nếu bạn chụp ảnh nhanh hệ thống bên ngoài, thì hệ thống có thể lỗi thời. Nếu bạn cập nhật các tính năng từ hệ thống bên ngoài, thì ý nghĩa có thể thay đổi. Nếu bạn sử dụng một hệ thống bên ngoài để cung cấp tính năng, hãy lưu ý rằng phương pháp này đòi hỏi bạn phải cẩn thận.

Vấn đề chính với các mô hình có tính đến yếu tố và mô hình chuyên sâu là các mô hình này không trùng khớp. Vì vậy, không có gì đảm bảo rằng một giải pháp tối ưu nào có thể được tiếp cận hoặc tìm thấy, và mức tối thiểu của nội dung lặp lại ở mỗi lần lặp lại có thể khác nhau. Biến thể này khiến bạn khó đánh giá xem tác động của việc thay đổi hệ thống có ý nghĩa hay ngẫu nhiên hay không. Khi tạo một mô hình mà không có các tính năng chuyên sâu, bạn có thể đạt được hiệu suất cơ bản tuyệt vời. Sau khi đạt được cơ sở này, bạn có thể thử các phương pháp bí truyền khác.

Quy tắc số 18: Khám phá bằng các tính năng của nội dung tổng quát theo ngữ cảnh.

Thông thường, hệ thống máy học là một phần nhỏ của bức tranh lớn hơn nhiều. Ví dụ: nếu bạn hình dung một bài đăng có thể dùng trong Nội dung nổi bật, nhiều người sẽ cộng một, chia sẻ lại hoặc nhận xét về một bài đăng trước khi bài đăng đó xuất hiện trong mục Bài đăng nổi bật. Nếu bạn cung cấp các số liệu thống kê đó cho người học, việc này có thể quảng bá các bài đăng mới mà họ không có dữ liệu trong bối cảnh đang tối ưu hóa. YouTube Xem video tiếp theo có thể sử dụng số lượt xem hoặc cùng xem (số lần người dùng xem một video sau khi xem một video khác) từ kết quả tìm kiếm YouTube. Bạn cũng có thể sử dụng thông tin xếp hạng rõ ràng của người dùng. Cuối cùng, nếu bạn có một hành động người dùng mà bạn đang dùng làm nhãn, thì việc xem hành động đó trên tài liệu trong một ngữ cảnh khác có thể là một tính năng tuyệt vời. Tất cả những tính năng này cho phép bạn đưa nội dung mới vào bối cảnh. Xin lưu ý rằng đây không phải là về cá nhân hoá: hãy tìm hiểu xem liệu có ai thích nội dung này trong ngữ cảnh trước tiên hay không, sau đó tìm hiểu xem ai thích nội dung đó hay ít hơn.

Quy tắc #19: Sử dụng các tính năng rất cụ thể khi có thể.

Với rất nhiều dữ liệu, việc tìm hiểu hàng triệu tính năng đơn giản sẽ dễ dàng hơn so với một vài tính năng phức tạp. Giá trị nhận dạng của các tài liệu đang được truy xuất và các truy vấn được chuẩn hoá không mang lại tính khái quát hoá nhiều, nhưng sẽ căn chỉnh thứ hạng với các nhãn của bạn trên các truy vấn chính. Do đó, đừng lo lắng về các nhóm tính năng mà mỗi tính năng áp dụng cho một phần rất nhỏ dữ liệu của bạn, nhưng mức độ phù hợp tổng thể phải trên 90%. Bạn có thể sử dụng quy trình chuẩn hoá để loại bỏ các tính năng áp dụng cho quá ít ví dụ.

Quy tắc số 20: Kết hợp và sửa đổi các tính năng hiện có để tạo ra tính năng mới theo cách dễ hiểu.

Có nhiều cách để kết hợp và sửa đổi tính năng. Các hệ thống máy học như TensorFlow cho phép bạn xử lý trước dữ liệu của mình thông qua các phép biến đổi. Hai cách tiếp cận tiêu chuẩn nhất là "discretizations" và "crosses"

Việc tách biệt bao gồm việc sử dụng một tính năng liên tục và tạo nhiều tính năng riêng biệt từ đó. Hãy cân nhắc sử dụng tính năng liên tục, chẳng hạn như độ tuổi. Bạn có thể tạo một tính năng khi 1 tuổi dưới 18, một tính năng khác là 1 khi độ tuổi từ 18 đến 35, v.v. Đừng nghĩ quá xa về ranh giới của những biểu đồ này: các số liệu cơ bản sẽ mang lại cho bạn phần lớn tác động.

Dấu gạch chéo kết hợp hai hoặc nhiều cột tính năng. Một cột tính năng trong thuật ngữ TensorFlow là một nhóm các tính năng đồng nhất (ví dụ: {male,female}, {US, Canada, Mexico}, v.v.). Dấu gạch chéo là một cột tính năng mới có các tính năng, ví dụ: {male,female} × {US,Canada, Mexico}. Cột tính năng mới này sẽ chứa tính năng đó (nam, Canada). Nếu bạn đang dùng TensorFlow và yêu cầu TensorFlow tạo thông tin này cho bạn, thì tính năng này (nam, Canada) sẽ xuất hiện trong các ví dụ đại diện cho người đàn ông Canada. Xin lưu ý rằng hệ thống cần một lượng lớn dữ liệu để tìm hiểu các mô hình có tỷ lệ vượt quá 3, 4 hoặc nhiều cột tính năng cơ sở.

Các kết hợp tạo ra các cột tính năng rất lớn có thể vượt quá kích thước. Ví dụ: hãy tưởng tượng rằng bạn đang thực hiện một số loại tìm kiếm và bạn có một cột tính năng có các từ trong truy vấn và bạn có một cột tính năng có các từ trong tài liệu. Bạn có thể kết hợp các tính năng này với dấu chữ thập, nhưng bạn sẽ có rất nhiều tính năng (xem Quy tắc số 21).

Khi làm việc với văn bản, bạn có 2 lựa chọn: Draconian nhiều nhất là một sản phẩm chấm. Một sản phẩm dấu chấm ở dạng đơn giản nhất chỉ đơn giản là đếm số từ chung giữa truy vấn và tài liệu. Tính năng này sau đó có thể được tách biệt. Một phương pháp khác là giao lộ: do đó, chúng ta sẽ có một tính năng xuất hiện nếu và chỉ khi từ "pony" có trong cả tài liệu và truy vấn và một tính năng khác xuất hiện nếu và chỉ khi từ "the" có trong cả tài liệu và truy vấn.

Quy tắc #21: Số lượng trọng số tính năng bạn có thể học trong mô hình tuyến tính tương ứng với lượng dữ liệu bạn có.

Có những kết quả lý thuyết thống kê thú vị liên quan đến mức độ phức tạp phù hợp của một mô hình, nhưng về cơ bản, quy tắc này là tất cả những gì bạn cần biết. Tôi đã có những cuộc trò chuyện mà trong đó mọi người không chắc rằng có thể học được từ một nghìn ví dụ hoặc bạn sẽ cần hơn một triệu ví dụ, vì họ bị kẹt trong một phương pháp học tập nhất định. Bí quyết là mở rộng quy mô học tập theo kích thước của dữ liệu:

  1. Nếu bạn đang làm việc trên hệ thống xếp hạng tìm kiếm và có hàng triệu từ khác nhau trong tài liệu và truy vấn và bạn có 1000 ví dụ được gắn nhãn, bạn nên sử dụng một sản phẩm dấu chấm giữa các tính năng tài liệu và truy vấn, TF-IDF, và hàng chục tính năng khác được mọi người dùng nhiều. 1000 ví dụ, hàng chục tính năng.
  2. Nếu bạn có hàng triệu ví dụ, hãy cắt các cột tài liệu và truy vấn bằng cách sử dụng quy trình chuẩn hoá và có thể chọn tính năng. Điều này sẽ mang lại cho bạn hàng triệu tính năng, nhưng với tính năng thông thường, bạn sẽ có ít hơn. Mười triệu ví dụ, có thể là hàng trăm nghìn tính năng.
  3. Nếu có hàng tỷ hoặc hàng trăm tỷ ví dụ, bạn có thể chuyển các cột tính năng bằng mã thông báo tài liệu và truy vấn bằng cách sử dụng tính năng lựa chọn tính năng và quy trình chuẩn hoá. Bạn sẽ có một tỷ ví dụ và 10 triệu tính năng. Lý thuyết học tập thống kê hiếm khi đưa ra giới hạn chặt chẽ, nhưng sẽ cung cấp hướng dẫn tuyệt vời cho một điểm bắt đầu.

Cuối cùng, hãy sử dụng Quy tắc số 28 để quyết định tính năng cần sử dụng.

Quy tắc số 22: Xóa các tính năng mà bạn không còn sử dụng.

Những tính năng không dùng đến sẽ tạo ra món nợ kỹ thuật. Nếu bạn thấy rằng mình không sử dụng một tính năng nào đó và tính năng kết hợp tính năng đó với các tính năng khác không hoạt động, hãy loại bỏ tính năng đó ra khỏi cơ sở hạ tầng của bạn. Bạn muốn giữ cho cơ sở hạ tầng của mình gọn gàng để các tính năng triển vọng nhất có thể được thử nhanh nhất có thể. Nếu cần thì ai cũng luôn có thể thêm lại tính năng của bạn.

Hãy lưu ý đến phạm vi khi cân nhắc những tính năng cần thêm hoặc giữ lại. Tính năng này đề cập đến bao nhiêu ví dụ? Ví dụ: nếu bạn có một số tính năng cá nhân hóa, nhưng chỉ 8% người dùng có tính năng cá nhân hóa, thì hiệu suất sẽ không thực sự hiệu quả.

Đồng thời, một số tính năng có thể hoạt động quá mức. Ví dụ: nếu bạn có một tính năng chỉ bao gồm 1% dữ liệu, nhưng 90% ví dụ chỉ có tính năng này, thì bạn nên thêm một tính năng tuyệt vời.

Phân tích con người của hệ thống

Trước khi chuyển sang giai đoạn 3 của công nghệ máy học, quan trọng là bạn phải tập trung vào một nội dung chưa được dạy trong bất kỳ lớp học máy học nào: cách xem xét và cải thiện một mô hình hiện có. Đây không phải là một tác phẩm nghệ thuật ngoài khoa học, tuy nhiên vẫn có một số mẫu hình mà bạn nên tránh.

Quy tắc #23: Bạn không phải là người dùng cuối điển hình.

Đây có lẽ là cách dễ nhất để một nhóm chậm lại. Mặc dù mang lại rất nhiều lợi ích từ hoạt động nuôi cá (sử dụng nguyên mẫu trong nhóm của bạn) và thử nghiệm nội bộ (bằng cách sử dụng nguyên mẫu trong công ty của bạn), nhưng nhân viên vẫn nên xem xét liệu hiệu suất có chính xác hay không. Mặc dù không nên sử dụng thay đổi rõ ràng là không phù hợp, nhưng bạn nên kiểm thử thêm bất kỳ thứ gì có vẻ hợp lý với quá trình sản xuất gần nhất bằng cách trả tiền cho những người không có chuyên môn để trả lời câu hỏi trên một nền tảng đám mây hoặc thông qua một thử nghiệm trực tiếp trên người dùng thực.

Có hai lý do. Đầu tiên là bạn quá gần với mã. Có thể bạn muốn tìm một khía cạnh cụ thể của bài đăng hoặc bạn đơn giản là quá liên quan đến cảm xúc (ví dụ: thiên vị xác nhận). Thứ hai là thời gian của bạn có giá trị. Hãy cân nhắc chi phí của 9 kỹ sư trong một cuộc họp kéo dài 1 giờ và suy nghĩ xem có bao nhiêu nhãn người ký hợp đồng mua trên một nền tảng đám mây.

Nếu bạn thực sự muốn nhận được phản hồi của người dùng, hãy sử dụng các phương pháp trải nghiệm người dùng. Tạo cá tính của người dùng (một nội dung mô tả nằm trong phần Trải nghiệm người dùng phác thảo của Bill Buxton) trong quá trình thử nghiệm và tiến hành thử nghiệm khả năng hữu dụng (một nội dung mô tả là Don't Make Me Think) của Steve Krug. Cá tính người dùng liên quan đến việc tạo người dùng giả định. Ví dụ: nếu nhóm của bạn đều là nam, việc thiết kế cá tính người dùng nữ 35 tuổi (đầy đủ tính năng của người dùng) sẽ giúp ích và xem xét kết quả mà công cụ này tạo ra thay vì 10 kết quả đối với nam từ 25 đến 40 tuổi. Việc đưa những người thực sự đến xem phản ứng của họ với trang web của bạn (tại địa phương hoặc từ xa) trong quá trình thử nghiệm về khả năng hữu dụng cũng có thể mang lại cho bạn góc nhìn mới.

Quy tắc số 24: Đo lường delta giữa các mô hình.

Một trong những phép đo dễ dàng nhất và đôi khi hữu ích nhất mà bạn có thể thực hiện trước khi bất kỳ người dùng nào xem xét mô hình mới là tính toán kết quả mới khác với kết quả thực tế. Ví dụ: nếu bạn gặp sự cố xếp hạng, hãy chạy cả hai mô hình trên một mẫu truy vấn trên toàn bộ hệ thống và xem xét quy mô của sự khác biệt đối xứng của kết quả (được tính trọng số theo vị trí xếp hạng). Nếu sự khác biệt là rất nhỏ, thì bạn có thể biết mà không cần chạy thử nghiệm rằng sẽ có rất ít thay đổi. Nếu sự chênh lệch rất lớn, bạn nên đảm bảo rằng sự thay đổi đó sẽ tốt. Việc xem xét các truy vấn có sự khác biệt cao về đối xứng có thể giúp bạn hiểu về chất lượng của thay đổi này. Tuy nhiên, hãy đảm bảo rằng hệ thống ổn định. Hãy đảm bảo rằng một mô hình khi so sánh với chính nó có mức chênh lệch đối xứng thấp (tốt nhất là bằng 0).

Quy tắc số 25: Khi chọn mô hình, hiệu suất thiết thực sẽ ưu tiên sức mạnh dự đoán.

Mô hình của bạn có thể cố gắng dự đoán tỷ lệ nhấp. Tuy nhiên, cuối cùng, câu hỏi quan trọng là bạn làm gì với dự đoán đó. Nếu bạn đang sử dụng thứ hạng này để xếp hạng tài liệu, thì chất lượng xếp hạng cuối cùng sẽ quan trọng hơn dự đoán. Nếu bạn dự đoán xác suất mà một tài liệu là thư rác và sau đó cắt bỏ nội dung bị chặn, thì độ chính xác của những gì được cho phép thông qua quan trọng hơn. Trong hầu hết các trường hợp, hai điều này phải được thống nhất với nhau: khi không đồng ý, có thể lợi ích sẽ không đáng kể. Do đó, nếu có một số thay đổi giúp cải thiện tình trạng mất nhật ký nhưng làm giảm hiệu suất của hệ thống, hãy tìm một tính năng khác. Khi điều này bắt đầu xảy ra thường xuyên hơn, đã đến lúc xem lại mục tiêu của mô hình của bạn.

Quy tắc số 26: Tìm các mẫu trong lỗi được đo lường và tạo tính năng mới.

Giả sử bạn thấy một ví dụ về đào tạo mà mô hình có được "False" Trong một tác vụ phân loại, lỗi này có thể là dương tính giả (FN) hoặc âm tính giả (false negative). Trong một nhiệm vụ xếp hạng, lỗi có thể là một cặp mà trong đó số dương được xếp hạng thấp hơn tiêu cực. Điểm quan trọng nhất là đây là một ví dụ mà hệ thống máy học biết rằng đã có sự nhầm lẫn và họ muốn khắc phục nếu đưa ra cơ hội. Nếu bạn cung cấp cho mô hình một tính năng cho phép khắc phục lỗi, mô hình đó sẽ cố gắng sử dụng tính năng đó.

Mặt khác, nếu bạn cố gắng tạo một tính năng dựa trên các ví dụ mà hệ thống không coi là lỗi, thì tính năng đó sẽ bị bỏ qua. Ví dụ: giả sử rằng trong ứng dụng Play Tìm kiếm, ai đó tìm kiếm "trò chơi miễn phí". Giả sử một trong các kết quả hàng đầu là một ứng dụng gag ít phù hợp hơn. Vì vậy, bạn tạo một tính năng cho "gag apps". Tuy nhiên, nếu bạn đang tăng tối đa số lượt cài đặt và mọi người cài đặt một ứng dụng gag khi họ tìm kiếm trò chơi miễn phí, thì "gag apps" tính năng sẽ không có hiệu ứng bạn muốn.

Sau khi bạn có ví dụ về việc mô hình này bị sai, hãy tìm các xu hướng nằm ngoài bộ tính năng hiện tại. Ví dụ: nếu hệ thống có vẻ như đang giảm hạng các bài đăng dài hơn, hãy thêm độ dài bài đăng. Đừng quá cụ thể về những tính năng bạn thêm vào. Nếu bạn định thêm độ dài bài đăng, thì đừng cố đoán xem ý định sẽ dài bao nhiêu, chỉ cần thêm một chục tính năng và mô hình hãy để xác định việc cần làm (xem Quy tắc số 21). Đó là cách dễ nhất để lấy được nội dung bạn muốn.

Quy tắc số 27: Cố gắng định lượng hành vi không mong muốn quan sát được.

Một số thành viên trong nhóm của bạn sẽ bắt đầu cảm thấy thất vọng với các thuộc tính của hệ thống mà họ không thích nếu các thuộc tính này không được chức năng lưu trữ hiện có thu thập. Tại thời điểm này, họ nên làm bất cứ điều gì cần thiết để biến những dữ liệu của mình thành số liệu cố định. Ví dụ: nếu họ cho rằng có quá nhiều "gag apps" được hiển thị trong Tìm kiếm trên Play, họ có thể yêu cầu người đánh giá xác định ứng dụng bịt miệng. (Bạn có thể sử dụng dữ liệu được gắn nhãn do con người trong trường hợp này vì một phần tương đối nhỏ của các truy vấn chiếm một phần lớn lưu lượng truy cập.) Nếu có thể đo lường được vấn đề của mình, bạn có thể bắt đầu sử dụng vấn đề đó dưới dạng tính năng, mục tiêu hoặc chỉ số. Quy tắc chung là "đo lường trước tiên, tối ưu hoá thứ hai"

Quy tắc số 28: Lưu ý rằng hành vi ngắn hạn giống nhau không ngụ ý giống như hành vi dài hạn.

Hãy tưởng tượng rằng bạn có một hệ thống mới xem xét mọi doc_id và Exact_query, sau đó tính xác suất nhấp chuột cho mọi tài liệu đối với mọi truy vấn. Bạn nhận thấy rằng hành vi của hệ thống này gần giống với hệ thống hiện tại của bạn ở cả cạnh nhau và kiểm thử A/B. Vì vậy, để đơn giản hoá hệ thống, bạn nên khởi chạy hệ thống này. Tuy nhiên, bạn nhận thấy rằng không có ứng dụng mới nào đang được hiển thị. Bạn nên làm vậy Vì hệ thống chỉ hiển thị tài liệu dựa trên lịch sử của truy vấn đó, nên không có cách nào để biết rằng một tài liệu mới sẽ xuất hiện.

Cách duy nhất để hiểu cách một hệ thống hoạt động lâu dài là chỉ yêu cầu hệ thống đào tạo về dữ liệu thu thập được khi mô hình hoạt động. Việc này rất khó khăn.

Xẻng phục vụ ăn uống

Độ chênh lệch giữa quá trình đào tạo là sự khác biệt giữa hiệu suất trong quá trình đào tạo và hiệu suất trong quá trình phân phát. Độ lệch này có thể là do:

  • Có sự khác biệt giữa cách bạn xử lý dữ liệu trong quy trình đào tạo và quy trình phân phát.
  • Thay đổi về dữ liệu giữa thời điểm bạn đào tạo và thời điểm bạn phân phát.
  • Vòng lặp phản hồi giữa mô hình và thuật toán.

Theo quan sát của chúng tôi về các hệ thống máy học tại Google, việc đào tạo-phân phát tác động tiêu cực đến hiệu suất. Giải pháp tốt nhất là giám sát rõ ràng để các thay đổi về hệ thống và dữ liệu không gây ra hiện tượng lệch.

Quy tắc số 29: Cách tốt nhất để đảm bảo rằng bạn đào tạo như bạn phân phát là lưu tập hợp các tính năng được sử dụng tại thời điểm phân phát, sau đó đưa các tính năng đó vào nhật ký để sử dụng tại thời điểm đào tạo.

Ngay cả khi bạn không thể thực hiện việc này trong mọi ví dụ, hãy thực hiện trong một phần nhỏ, để bạn có thể xác minh tính nhất quán giữa phân phát và đào tạo (xem Quy tắc số 37). Đôi khi, các nhóm tiến hành đo lường tại Google đôi khi ngạc nhiên về kết quả. Trang chủ YouTube chuyển sang sử dụng các tính năng ghi nhật ký tại thời điểm phân phát, trong đó cải thiện đáng kể chất lượng và giảm độ phức tạp của mã. Nhiều nhóm đang chuyển đổi cơ sở hạ tầng khi nói chuyện.

Quy tắc #30: Dữ liệu lấy mẫu có trọng số quan trọng, đừng tự ý bỏ dữ liệu này!

Khi có quá nhiều dữ liệu, bạn có thể muốn lấy tệp 1-12 và bỏ qua tệp 13-99. Đây là một sai lầm. Mặc dù dữ liệu chưa bao giờ hiển thị cho người dùng có thể bị bỏ qua, nhưng việc sử dụng trọng số quan trọng là tốt nhất cho phần còn lại. Trọng số quan trọng có nghĩa là nếu bạn quyết định rằng bạn sẽ lấy mẫu ví dụ X với xác suất 30%, thì sẽ cho trọng số là 10/3. Với trọng số quan trọng, tất cả các thuộc tính hiệu chỉnh được thảo luận trong Quy tắc số 14 vẫn sẽ giữ lại.

Quy tắc số 31: Lưu ý rằng nếu bạn kết hợp dữ liệu từ một bảng tại thời điểm đào tạo và phân phát, thì dữ liệu trong bảng có thể thay đổi.

Giả sử bạn kết hợp mã tài liệu với một bảng chứa các tính năng cho các tài liệu đó (chẳng hạn như số lượt nhận xét hoặc số lượt nhấp). Giữa thời gian huấn luyện và thời gian phân phát, các tính năng trong bảng có thể thay đổi. Sau đó, thông tin dự đoán của mô hình cho cùng một tài liệu có thể khác nhau giữa quá trình đào tạo và phân phát. Cách dễ nhất để tránh vấn đề này là ghi nhật ký các tính năng tại thời điểm phân phát (xem nội dung Quy tắc số 32). Nếu bảng chỉ thay đổi chậm, bạn cũng có thể cung cấp ảnh chụp nhanh của bảng theo giờ hoặc hằng ngày để thu được dữ liệu đóng một cách hợp lý. Xin lưu ý rằng cách này vẫn không giải quyết được hoàn toàn vấn đề.

Quy tắc số 32: Sử dụng lại mã giữa quy trình đào tạo và quy trình phân phát của bạn bất cứ khi nào có thể.

Quá trình xử lý hàng loạt khác với xử lý trực tuyến. Trong quá trình xử lý trực tuyến, bạn phải xử lý từng yêu cầu khi nhận được yêu cầu đó (ví dụ: bạn phải tra cứu riêng từng truy vấn), còn trong quá trình xử lý hàng loạt, bạn có thể kết hợp các công việc (ví dụ: tạo một mối liên kết). Tại thời điểm phân phát, bạn đang xử lý trực tuyến, còn đào tạo là một tác vụ xử lý hàng loạt. Tuy nhiên, có một số việc bạn có thể làm để sử dụng lại mã. Ví dụ: bạn có thể tạo một đối tượng dành riêng cho hệ thống của mình, trong đó kết quả của bất kỳ truy vấn hoặc kết hợp nào có thể được lưu trữ theo cách rất dễ đọc và các lỗi có thể được kiểm tra dễ dàng. Sau đó, khi đã thu thập tất cả thông tin, trong quá trình phân phát hoặc đào tạo, bạn sẽ chạy một phương thức phổ biến để làm cầu nối giữa đối tượng có thể đọc được dành riêng cho hệ thống của bạn và bất kỳ định dạng nào mà hệ thống máy học kỳ vọng. Điều này giúp loại bỏ nguồn sai lệch nội dung đào tạo. Kết quả là hãy cố gắng không sử dụng hai ngôn ngữ lập trình khác nhau giữa đào tạo và phân phát. Quyết định đó sẽ khiến bạn gần như không thể chia sẻ mã.

Quy tắc số 33: Nếu bạn tạo một mô hình dựa trên dữ liệu cho đến ngày 5 tháng 1, hãy kiểm tra mô hình đó trên dữ liệu từ ngày 6 tháng 1 trở đi.

Nhìn chung, hãy đo lường hiệu suất của một mô hình trên dữ liệu được thu thập sau khi dữ liệu bạn được đào tạo về mô hình đó, vì dữ liệu này phản ánh rõ hơn hoạt động của hệ thống trong quá trình sản xuất. Nếu bạn tạo một mô hình dựa trên dữ liệu cho đến ngày 5 tháng 1, hãy kiểm tra mô hình trên dữ liệu từ ngày 6 tháng 1. Bạn mong rằng hiệu suất sẽ không tốt bằng dữ liệu mới, nhưng về cơ bản thì hiệu suất không được tệ hơn. Vì có thể có hiệu ứng hằng ngày, nên bạn có thể không dự đoán được tỷ lệ nhấp trung bình hoặc tỷ lệ chuyển đổi, nhưng vùng dưới đường cong biểu thị khả năng đưa ra ví dụ tích cực cao hơn điểm số ví dụ phủ định.

Quy tắc số 34: Trong phân loại nhị phân để lọc (chẳng hạn như phát hiện spam hoặc xác định email thú vị), hãy thực hiện hy sinh ngắn hạn về hiệu suất để có dữ liệu rất rõ ràng.

Trong tác vụ lọc, những ví dụ được đánh dấu là tiêu cực sẽ không hiển thị cho người dùng. Giả sử bạn có một bộ lọc chặn 75% ví dụ phủ định khi phân phát. Bạn có thể rất muốn vẽ dữ liệu huấn luyện bổ sung từ các thực thể hiển thị cho người dùng. Ví dụ: nếu người dùng đánh dấu một email là thư rác mà bộ lọc của bạn cho phép, bạn nên tìm hiểu từ bộ lọc đó.

Tuy nhiên, phương pháp này cũng áp dụng cho xu hướng lấy mẫu. Bạn có thể thu thập dữ liệu sạch hơn nếu trong quá trình phân phát, bạn gắn nhãn 1% tất cả lưu lượng truy cập là "thực hiện" và gửi tất cả ví dụ lưu trữ cho người dùng. Bây giờ, bộ lọc của bạn đang chặn ít nhất 74% ví dụ phủ định. Những ví dụ đã lưu trữ này có thể trở thành dữ liệu đào tạo của bạn.

Lưu ý rằng nếu bộ lọc của bạn đang chặn 95% các ví dụ phủ định trở lên, thì phương pháp này sẽ ít khả thi hơn. Mặc dù vậy, nếu muốn đo lường hiệu suất phân phát, bạn có thể tạo một mẫu nhỏ hơn nữa (chẳng hạn như 0,1% hoặc 0,001%). Mười nghìn ví dụ là đủ để ước tính hiệu suất khá chính xác.

Quy tắc #35: Hãy cảnh giác với sự sai lệch vốn có trong các vấn đề về thứ hạng.

Khi bạn chuyển đổi thuật toán xếp hạng hoàn toàn để các kết quả khác nhau hiển thị, bạn đã thay đổi hiệu quả dữ liệu mà thuật toán của bạn sẽ thấy trong tương lai. Loại sai lệch này sẽ xuất hiện và bạn nên thiết kế mô hình xung quanh. Có nhiều phương pháp. Đây là tất cả các phương pháp để ưu tiên dữ liệu mà mô hình của bạn đã nhìn thấy.

  1. Có mức độ định kỳ cao hơn đối với các tính năng bao gồm nhiều cụm từ tìm kiếm hơn so với những tính năng chỉ được bật cho một cụm từ tìm kiếm. Theo cách này, mô hình này sẽ ưu tiên các tính năng dành riêng cho một hoặc một số truy vấn so với các tính năng chung cho tất cả các truy vấn. Phương pháp này có thể giúp ngăn các kết quả rất phổ biến rò rỉ vào các truy vấn không liên quan. Xin lưu ý rằng điều này ngược lại với lời khuyên thông thường về việc thường xuyên đưa các cột tính năng vào với những giá trị độc đáo hơn.
  2. Chỉ cho phép các tính năng có trọng số dương. Do đó, bất kỳ tính năng nào tốt sẽ tốt hơn một tính năng "unknown"
  3. Không có các tính năng chỉ có tài liệu. Đây là phiên bản số 1 cực đoan. Ví dụ: ngay cả khi một ứng dụng nhất định là tệp tải xuống phổ biến, bất kể cụm từ tìm kiếm là gì, bạn không muốn hiển thị ứng dụng đó ở mọi nơi. Việc không có các tính năng chỉ có tài liệu sẽ giúp đơn giản hoá vấn đề đó. Lý do bạn không muốn hiển thị một ứng dụng phổ biến cụ thể ở mọi nơi có liên quan đến tầm quan trọng của việc làm cho tất cả ứng dụng mong muốn trở nên dễ tiếp cận. Ví dụ: nếu có ai đó tìm kiếm "bird xem app"; họ có thể tải xuống "angry chim" nhưng điều đó chắc chắn không phải là ý định của họ. Việc cho thấy một ứng dụng như vậy có thể cải thiện tỷ lệ tải xuống, nhưng cuối cùng vẫn không đáp ứng nhu cầu của người dùng.

Quy tắc số 36: Tránh các vòng phản hồi bằng các tính năng vị trí.

Vị trí của nội dung sẽ ảnh hưởng đáng kể đến khả năng người dùng sẽ tương tác với nội dung đó. Nếu bạn đặt một ứng dụng ở vị trí đầu tiên, thì ứng dụng sẽ được nhấp thường xuyên hơn, và bạn sẽ tin rằng ứng dụng đó có nhiều khả năng được nhấp vào hơn. Có một cách để giải quyết vấn đề này là thêm tính năng vị trí, tức là các tính năng về vị trí của nội dung trên trang. Bạn đào tạo mô hình bằng các tính năng định vị và học cách lấy trọng số, ví dụ như tính năng "1stposition" rất nhiều. Mô hình của chúng tôi cũng nhẹ nhàng hơn với các yếu tố khác, chẳng hạn như "1stposition=true" Sau đó, khi phân phát, bạn không cung cấp bất kỳ tính năng vị trí nào hoặc bạn cung cấp cho chúng tất cả các tính năng mặc định giống nhau, vì bạn đang chấm điểm các ứng viên trước khi bạn quyết định thứ tự hiển thị các ứng dụng đó.

Xin lưu ý rằng điều quan trọng là bạn phải tách biệt các đặc điểm của vị trí với phần còn lại của mô hình vì sự bất đối xứng giữa quá trình đào tạo và thử nghiệm. Mô hình là tổng của hàm tính năng vị trí và hàm của các tính năng còn lại là lý tưởng. Ví dụ: không sử dụng các tính năng vị trí với bất kỳ tính năng tài liệu nào.

Quy tắc số 37: Đo lường mức độ đào tạo/phân phát.

Có một số nguyên nhân có thể gây ra sai lệch nói chung. Hơn nữa, bạn có thể chia nội dung thành nhiều phần:

  • Sự khác biệt giữa hiệu suất trên dữ liệu huấn luyện và dữ liệu giữ lại. Nói chung, điều này sẽ luôn tồn tại và không phải lúc nào cũng xấu.
  • Sự khác biệt giữa hiệu suất dữ liệu giữ lại và dữ liệu "nextday". Xin nhắc lại rằng quy trình này sẽ luôn tồn tại. Bạn nên điều chỉnh mức độ thông thường để tăng tối đa hiệu suất vào ngày tiếp theo. Tuy nhiên, hiệu suất giảm mạnh giữa dữ liệu bị tạm ngưng và dữ liệu ngày tiếp theo có thể cho thấy rằng một số tính năng nhạy cảm với thời gian và có thể làm giảm hiệu suất của mô hình.
  • Sự khác biệt giữa hiệu suất trên dữ liệu "ngày tiếp theo" và dữ liệu trực tiếp. Nếu bạn áp dụng một mô hình cho một ví dụ trong dữ liệu huấn luyện và ví dụ tương tự khi phân phát, thì mô hình đó sẽ cung cấp cho bạn kết quả giống hệt nhau (xem Quy tắc số 5). Do đó, sự khác biệt ở đây có thể cho thấy một lỗi kỹ thuật.

Giai đoạn ML: Phát triển chậm, tinh chỉnh tối ưu hóa và các mô hình phức tạp

Sẽ có một số chỉ báo cho biết giai đoạn thứ hai sắp kết thúc. Trước hết, mức tăng hằng tháng sẽ bắt đầu giảm. Bạn sẽ bắt đầu có sự đánh đổi giữa các chỉ số: bạn sẽ thấy một số mức tăng lên và số khác rơi vào một số thử nghiệm. Đây là nơi thú vị. Vì ngày càng khó đạt được kết quả, nên công nghệ máy học phải phức tạp hơn. Lưu ý: phần này có nhiều quy tắc màu xanh dương hơn các phần trước. Chúng tôi nhận thấy nhiều nhóm đã trải qua giai đoạn hạnh phúc của công nghệ máy học Giai đoạn I và Giai đoạn II. Sau khi đến Giai đoạn III, các nhóm phải tìm đường dẫn của riêng mình.

Quy tắc số 38: Đừng lãng phí thời gian vào các tính năng mới nếu những mục tiêu không phù hợp đã trở thành vấn đề.

Khi cao điểm đo lường, nhóm của bạn sẽ bắt đầu xem xét những vấn đề nằm ngoài phạm vi mục tiêu của hệ thống máy học hiện tại. Như đã nêu trước đó, nếu mục tiêu sản phẩm không nằm trong mục tiêu thuật toán hiện tại, bạn cần thay đổi mục tiêu hoặc mục tiêu sản phẩm của mình. Ví dụ: bạn có thể tối ưu hóa số lượt nhấp, cộng một hoặc tải xuống, nhưng đưa ra quyết định về việc chạy một phần dựa trên người đánh giá.

Quy tắc số 39: Quyết định phát hành là một proxy cho các mục tiêu sản phẩm dài hạn.

Alice có ý tưởng về việc giảm tổn thất hậu cần của việc dự đoán số lượt cài đặt. Cô ấy thêm một tính năng. Mức độ suy hao hậu cần. Khi thử nghiệm trực tiếp, cô thấy tốc độ cài đặt tăng lên. Tuy nhiên, khi tham gia một cuộc họp đánh giá ra mắt, có người chỉ ra rằng số người dùng hoạt động hằng ngày giảm đi 5%. Nhóm quyết định không chạy mô hình này. Alice không hài lòng, nhưng giờ đây, bạn nhận ra rằng các quyết định ra mắt phụ thuộc vào nhiều tiêu chí, trong đó chỉ có một số tiêu chí có thể được tối ưu hóa trực tiếp bằng công nghệ máy học.

Sự thật là thế giới thực không phải là ngục tối và rồng: không có &có điểm truy cập" xác định tình trạng của sản phẩm. Nhóm phải sử dụng số liệu thống kê thu thập được để cố gắng dự đoán một cách hiệu quả hệ thống trong tương lai. Họ cần quan tâm đến mức độ tương tác, số người dùng hoạt động trong 1 ngày (DAU), 30 DAU, doanh thu và lợi tức đầu tư của nhà quảng cáo. Bản thân các chỉ số này có thể đo lường được trong thử nghiệm A/B chỉ là một đại diện cho các mục tiêu dài hạn: làm hài lòng người dùng, tăng số người dùng, làm hài lòng đối tác và lợi nhuận. Từ đó, bạn có thể xem xét các proxy để có một sản phẩm hữu ích, chất lượng cao và một công ty phát triển mạnh mẽ trong 5 năm tới.

Quyết định khởi chạy đơn giản duy nhất là khi tất cả các chỉ số trở nên tốt hơn (hoặc ít nhất thì không tệ hơn). Nếu có thể lựa chọn giữa một thuật toán máy học tinh vi và một phương pháp phỏng đoán đơn giản, thì nếu phương pháp đơn giản này làm tốt hơn tất cả các chỉ số này, thì họ nên chọn phương pháp phỏng đoán. Hơn nữa, không có thứ hạng rõ ràng nào cho tất cả giá trị chỉ số có thể có. Cụ thể, hãy cân nhắc hai trường hợp sau:

Thử nghiệm Số người dùng hoạt động hàng ngày Doanh thu/Ngày
A 1 triệu 4 triệu đô la
B 2 triệu 2 triệu đô la

Nếu hệ thống hiện tại là A, thì nhóm đó có khả năng sẽ không chuyển sang B. Nếu hệ thống hiện tại là B, thì nhóm có khả năng sẽ không chuyển sang A. Điều này có vẻ xung đột với hành vi hợp lý; tuy nhiên, các dự đoán về việc thay đổi chỉ số có thể tạo ra hoặc không làm ảnh hưởng và do đó có nguy cơ lớn liên quan đến thay đổi. Mỗi chỉ số đề cập đến một số rủi ro mà nhóm lo ngại.

Hơn nữa, không có chỉ số nào bao gồm mối quan tâm cuối cùng của nhóm, "sản phẩm của tôi sẽ bắt đầu ở đâu trong 5 năm tới &?

Mặt khác, các cá nhân có xu hướng ưu tiên một mục tiêu mà họ có thể tối ưu hoá trực tiếp. Hầu hết các công cụ máy học đều ưu tiên một môi trường như vậy. Một kỹ sư tạo ra các tính năng mới có thể nhận được luồng phát ổn định trong môi trường như vậy. Có một loại công nghệ máy học, máy học đa mục tiêu bắt đầu giải quyết vấn đề này. Ví dụ: người ta có thể hình thành một vấn đề về sự hài lòng ràng buộc, có giới hạn thấp hơn trên mỗi chỉ số và tối ưu hoá một số tổ hợp chỉ số theo tuyến tính. Tuy nhiên, không phải tất cả các chỉ số đều dễ dàng được đưa vào khung dưới dạng mục tiêu máy học: nếu người dùng nhấp vào tài liệu hoặc cài đặt một ứng dụng, thì đó là do nội dung đã hiển thị. Tuy nhiên, sẽ khó hơn rất nhiều để tìm hiểu lý do tại sao một người dùng truy cập vào trang web của bạn. Cách dự đoán thành công trong tương lai của một trang web nói chung là hoàn thành (AI): khó khăn như thị giác máy tính hoặc xử lý ngôn ngữ tự nhiên.

Quy tắc số 40: Giữ bối cảnh đơn giản.

Những mô hình hợp nhất nhận các tính năng thô và xếp hạng nội dung trực tiếp là các mô hình dễ gỡ lỗi và dễ hiểu nhất. Tuy nhiên, một nhóm mô hình ("model" kết hợp điểm số của các mô hình khác) có thể hoạt động tốt hơn. Để đơn giản hoá mọi việc, mỗi mô hình nên là một tập hợp chỉ lấy dữ liệu đầu vào của các mô hình khác, hoặc một mô hình cơ sở nhận nhiều tính năng chứ không phải cả hai. Nếu bạn có các mô hình bên cạnh các mô hình khác được đào tạo riêng, thì việc kết hợp các mô hình đó có thể dẫn đến hành vi xấu.

Sử dụng một mô hình đơn giản để kết hợp và chỉ lấy đầu ra của các mô hình "base" làm đầu vào. Bạn cũng muốn thực thi các thuộc tính trên các mô hình kết hợp này. Ví dụ: việc tăng điểm số theo mô hình cơ sở sẽ không làm giảm điểm của nhóm. Ngoài ra, tốt nhất là các mô hình sắp tới có thể diễn giải được ngữ nghĩa (ví dụ: đã được hiệu chỉnh) để các thay đổi của mô hình cơ bản không gây nhầm lẫn về mô hình tổng hợp. Ngoài ra, thực thi việc tăng xác suất dự đoán của một thuật toán phân loại cơ bản không làm giảm xác suất nhóm được dự đoán.

Quy tắc số 41: Khi duy trì hiệu suất, hãy tìm các nguồn thông tin chất lượng mới để thêm thay vì tinh chỉnh các tín hiệu hiện có.

Bạn đã thêm một số thông tin nhân khẩu học về người dùng đó. Bạn đã thêm một số thông tin về các từ trong tài liệu. Bạn đã tiến hành khám phá mẫu và điều chỉnh mức độ thường xuyên. Chỉ số liệu quan trọng của bạn chưa tăng 1% trong vài quý tới. Sau đó thì sao?

Đã đến lúc bắt đầu xây dựng cơ sở hạ tầng cho các tính năng hoàn toàn khác nhau, chẳng hạn như lịch sử tài liệu mà người dùng này đã truy cập vào ngày, tuần hoặc năm trước hoặc dữ liệu từ một tài sản khác. Hãy sử dụng các thực thể wikidata hoặc nội dung nào đó của công ty (chẳng hạn như sơ đồ tri thức của Google). Sử dụng học sâu. Hãy bắt đầu điều chỉnh kỳ vọng của bạn về mức lợi tức đầu tư và kỳ vọng phù hợp. Giống như trong mọi dự án kỹ thuật, bạn phải cân nhắc lợi ích của việc thêm tính năng mới để tránh chi phí phức tạp hơn.

Quy tắc số 42: Đừng mong đợi sự đa dạng, tính năng cá nhân hóa hoặc mức độ liên quan phù hợp với mức độ phổ biến như bạn nghĩ.

Sự đa dạng trong một nhóm nội dung có thể mang nhiều ý nghĩa, trong đó sự đa dạng về nguồn của nội dung sẽ là một trong những nội dung phổ biến nhất. Hoạt động cá nhân hoá ngụ ý từng người dùng nhận được kết quả riêng. Mức độ liên quan ngụ ý rằng kết quả cho một truy vấn cụ thể phù hợp với truy vấn đó hơn bất kỳ kết quả nào khác. Do đó, cả ba thuộc tính này đều được xác định là khác với thông thường.

Vấn đề là điều bình thường là khó đánh bại.

Xin lưu ý rằng nếu hệ thống của bạn đang đo lường số lượt nhấp, thời gian xem, lượt xem, lượt +1, lượt chia sẻ lại, v.v. thì bạn đang đo lường mức độ phổ biến của nội dung đó. Đôi khi, các nhóm cố gắng học một mô hình cá nhân với sự đa dạng. Để cá nhân hoá, đối tượng sẽ thêm các tính năng cho phép hệ thống cá nhân hoá (một số tính năng thể hiện mối quan tâm của người dùng) hoặc đa dạng hoá (các tính năng cho biết liệu tài liệu này có bất kỳ đặc điểm chung nào với các tài liệu khác được trả về hay không, chẳng hạn như tác giả hoặc nội dung) và nhận thấy rằng các tính năng đó sẽ có trọng số thấp hơn (hoặc đôi khi là một dấu hiệu khác) so với dự kiến.

Điều này không có nghĩa là sự đa dạng, cá nhân hoá hay mức độ liên quan là không có giá trị. Như đã chỉ ra trong quy tắc trước, bạn có thể tiến hành xử lý hậu kỳ để tăng tính đa dạng hoặc mức độ liên quan. Nếu thấy mục tiêu dài hạn tăng lên, bạn có thể khai báo rằng tính đa dạng/mức độ liên quan có giá trị, ngoài mức độ phổ biến. Sau đó, bạn có thể tiếp tục sử dụng công đoạn xử lý hậu kỳ hoặc trực tiếp sửa đổi mục tiêu dựa trên sự đa dạng hoặc mức độ liên quan.

Quy tắc số 43: Bạn bè của bạn có xu hướng giống nhau trên các sản phẩm khác nhau. Mối quan tâm của bạn thường không như vậy.

Các nhóm tại Google đã tạo được sức hút lớn từ việc áp dụng mô hình dự đoán mức độ gần với kết nối trong một sản phẩm và làm cho kết nối hoạt động tốt trên sản phẩm khác. Bạn bè của bạn là những người đó. Mặt khác, tôi đã xem một số nhóm đấu tranh với các tính năng cá nhân hoá trong việc phân chia sản phẩm. Có vẻ như nó có thể hoạt động. Hiện tại, có vẻ như tính năng này chưa hoạt động. Đôi khi, phương pháp hiệu quả là sử dụng dữ liệu thô từ một tài sản để dự đoán hành vi trên một tài sản khác. Ngoài ra, hãy lưu ý rằng ngay cả khi biết rằng người dùng có nhật ký trên một tài sản khác, thì bạn cũng có thể trợ giúp. Ví dụ: sự hiện diện của hoạt động của người dùng trên hai sản phẩm có thể cho thấy bản thân nó.

Có nhiều tài liệu về máy học tại Google cũng như bên ngoài.

Xác nhận

Nhờ có David Westbrook, Peter Brandt, Samuel Ieong, Chenyu Zhao, Li Wei, Michalis Potamias, Evan Rosen, Mitchell Rosenberg, Christine Robson, James Pine, Tal Shaked, Tushar HLS, Mustafa Ispir, Jeremiah Harmsen, Konstantinos, Katstantinos Ngoài ra, nhờ có Kristen Lefevre, Suddha Basu và Chris Berg đã giúp đỡ một phiên bản trước đó. Bất kỳ lỗi nào, thiếu sót hoặc (nắm bắt!) ý kiến không phổ biến đều là của tôi.

Phụ lục

Có nhiều tài liệu tham khảo về các sản phẩm của Google trong tài liệu này. Để cung cấp thêm ngữ cảnh, tôi mô tả ngắn về các ví dụ phổ biến nhất bên dưới.

Tổng quan về YouTube

YouTube là một dịch vụ video trực tuyến. Cả nhóm YouTube Watch Next và Trang chủ YouTube đều sử dụng mô hình ML để xếp hạng các đề xuất video. Watch Next đề xuất video để xem sau video đang phát, còn Trang chủ đề xuất video cho người dùng duyệt qua trang chủ.

Tổng quan về Google Play

Google Play có nhiều mô hình giúp giải quyết nhiều vấn đề. Các tính năng đề xuất của Play như Tìm kiếm, Trang chủ trên trang chủ được cá nhân hóa và ứng dụng "Người dùng cũng được cài đặt" đều sử dụng công nghệ máy học.

Tổng quan về Google+

{0} Kể từ ngày 6 tháng 7 năm 2020, Google Plus đã đóng tất cả các tài khoản cá nhân vào năm 2019 và thay thế bằng Google Currents.