การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

อ้างอิงจากสุนทรพจน์ของฉันที่ Highload++ และ DataFest Minsk 2019

สำหรับหลายๆ คนในปัจจุบัน เมลถือเป็นส่วนสำคัญของชีวิตออนไลน์ ด้วยความช่วยเหลือนี้ เราดำเนินการโต้ตอบทางธุรกิจ จัดเก็บข้อมูลสำคัญทุกประเภทที่เกี่ยวข้องกับการเงิน การจองโรงแรม การสั่งซื้อ และอื่นๆ อีกมากมาย ในช่วงกลางปี ​​2018 เราได้กำหนดกลยุทธ์ผลิตภัณฑ์สำหรับการพัฒนาเมล จดหมายสมัยใหม่ควรเป็นอย่างไร?

จดหมายก็ต้องเป็น ปราดเปรื่องนั่นคือการช่วยให้ผู้ใช้นำทางไปยังปริมาณข้อมูลที่เพิ่มขึ้น: กรอง จัดโครงสร้าง และจัดเตรียมด้วยวิธีที่สะดวกที่สุด เธอจะต้องเป็น มีประโยชน์ช่วยให้คุณแก้ไขงานต่าง ๆ ได้ทันทีในกล่องจดหมายของคุณ เช่น จ่ายค่าปรับ (ฟังก์ชั่นที่ฉันใช้โชคไม่ดี) และในขณะเดียวกัน แน่นอนว่าเมลจะต้องให้การปกป้องข้อมูล ตัดสแปม และป้องกันการแฮ็ก กล่าวคือ ปลอดภัย.

พื้นที่เหล่านี้กำหนดปัญหาสำคัญหลายประการ ซึ่งหลายปัญหาสามารถแก้ไขได้อย่างมีประสิทธิภาพโดยใช้การเรียนรู้ของเครื่อง ต่อไปนี้เป็นตัวอย่างคุณลักษณะที่มีอยู่แล้วซึ่งพัฒนาขึ้นโดยเป็นส่วนหนึ่งของกลยุทธ์ - หนึ่งรายการสำหรับแต่ละทิศทาง

  • การตอบกลับอย่างชาญฉลาด. Mail มีคุณสมบัติตอบกลับอัจฉริยะ โครงข่ายประสาทเทียมจะวิเคราะห์ข้อความของจดหมาย เข้าใจความหมายและวัตถุประสงค์ของจดหมาย และด้วยเหตุนี้จึงมีตัวเลือกการตอบสนองที่เหมาะสมที่สุดสามแบบ: บวก ลบ และเป็นกลาง ซึ่งช่วยประหยัดเวลาในการตอบจดหมายได้อย่างมาก และยังมักจะตอบกลับด้วยวิธีที่ไม่ได้มาตรฐานและตลกอีกด้วย
  • การจัดกลุ่มอีเมลที่เกี่ยวข้องกับการสั่งซื้อในร้านค้าออนไลน์ เรามักจะซื้อสินค้าออนไลน์ และตามกฎแล้ว ร้านค้าสามารถส่งอีเมลหลายฉบับสำหรับการสั่งซื้อแต่ละครั้ง ตัวอย่างเช่น จาก AliExpress ซึ่งเป็นบริการที่ใหญ่ที่สุด มีตัวอักษรจำนวนมากเข้ามาสำหรับคำสั่งซื้อเดียว และเราคำนวณว่าในกรณีของเทอร์มินัลหมายเลขของพวกเขาอาจสูงถึง 29 ดังนั้น เมื่อใช้โมเดล Named Entity Recognition เราจึงแยกหมายเลขคำสั่งซื้อ และข้อมูลอื่น ๆ จากข้อความและจัดกลุ่มตัวอักษรทั้งหมดไว้ในเธรดเดียว นอกจากนี้เรายังแสดงข้อมูลพื้นฐานเกี่ยวกับคำสั่งซื้อในกล่องแยกต่างหาก ซึ่งช่วยให้ทำงานกับอีเมลประเภทนี้ได้ง่ายขึ้น

    การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

  • แอนตี้ฟิชชิ่ง. ฟิชชิ่งเป็นอีเมลฉ้อโกงที่อันตรายอย่างยิ่ง โดยผู้โจมตีพยายามรับข้อมูลทางการเงิน (รวมถึงบัตรธนาคารของผู้ใช้) และการเข้าสู่ระบบด้วยความช่วยเหลือ จดหมายดังกล่าวเลียนแบบจดหมายจริงที่ส่งโดยบริการรวมถึงภาพด้วย ดังนั้นด้วยความช่วยเหลือของ Computer Vision เราจึงจดจำโลโก้และรูปแบบการออกแบบของตัวอักษรจากบริษัทขนาดใหญ่ (เช่น Mail.ru, Sber, Alfa) และคำนึงถึงสิ่งนี้พร้อมกับข้อความและคุณสมบัติอื่น ๆ ในตัวแยกประเภทสแปมและฟิชชิ่งของเรา .

การเรียนรู้ของเครื่อง

เล็กน้อยเกี่ยวกับการเรียนรู้ของเครื่องในอีเมลโดยทั่วไป เมลเป็นระบบที่มีการโหลดสูง โดยมีจดหมายโดยเฉลี่ย 1,5 พันล้านฉบับต่อวันที่ส่งผ่านเซิร์ฟเวอร์ของเราสำหรับผู้ใช้ DAU 30 ล้านคน ระบบการเรียนรู้ของเครื่องประมาณ 30 ระบบรองรับฟังก์ชันและคุณสมบัติที่จำเป็นทั้งหมด

ตัวอักษรแต่ละตัวต้องผ่านไปป์ไลน์การจำแนกประเภททั้งหมด อันดับแรก เราจะตัดสแปมและทิ้งอีเมลดีๆ ไว้ ผู้ใช้มักไม่สังเกตเห็นการทำงานของการป้องกันสแปมเนื่องจากสแปม 95-99% ไม่ได้อยู่ในโฟลเดอร์ที่เหมาะสมด้วยซ้ำ การจดจำสแปมเป็นส่วนสำคัญของระบบของเรา และเป็นสิ่งที่ยากที่สุด เนื่องจากในด้านการป้องกันสแปมนั้นมีการปรับเปลี่ยนอย่างต่อเนื่องระหว่างระบบการป้องกันและการโจมตี ซึ่งทำให้เกิดความท้าทายทางวิศวกรรมอย่างต่อเนื่องสำหรับทีมของเรา

ต่อไป เราจะแยกจดหมายออกจากคนและหุ่นยนต์ อีเมลจากผู้คนเป็นสิ่งสำคัญที่สุด ดังนั้นเราจึงมอบฟีเจอร์ เช่น สมาร์ทรีพลาย ให้กับพวกเขา จดหมายจากโรบ็อตแบ่งออกเป็นสองส่วน: ธุรกรรม - เป็นจดหมายสำคัญจากบริการ เช่น การยืนยันการซื้อหรือการจองโรงแรม การเงิน และให้ข้อมูล - เหล่านี้คือการโฆษณาทางธุรกิจ ส่วนลด

เราเชื่อว่าอีเมลธุรกรรมมีความสำคัญเท่าเทียมกันในการติดต่อสื่อสารส่วนตัว พวกเขาควรจะอยู่ใกล้แค่เอื้อมเพราะเรามักจะต้องค้นหาข้อมูลเกี่ยวกับคำสั่งซื้อหรือการจองตั๋วเครื่องบินอย่างรวดเร็วและเราใช้เวลาค้นหาตัวอักษรเหล่านี้ ดังนั้นเพื่อความสะดวก เราจึงแบ่งพวกมันออกเป็นหกหมวดหมู่หลักโดยอัตโนมัติ: การเดินทาง คำสั่งซื้อ การเงิน ตั๋ว การลงทะเบียน และสุดท้ายคือค่าปรับ

จดหมายข้อมูลเป็นกลุ่มที่ใหญ่ที่สุดและอาจมีความสำคัญน้อยกว่าซึ่งไม่ต้องการการตอบกลับในทันที เนื่องจากไม่มีอะไรสำคัญที่จะเปลี่ยนแปลงในชีวิตของผู้ใช้หากเขาไม่ได้อ่านจดหมายดังกล่าว ในอินเทอร์เฟซใหม่ของเรา เราแบ่งพวกมันออกเป็นสองเธรด: โซเชียลเน็ตเวิร์กและจดหมายข่าว ซึ่งจะทำให้มองเห็นกล่องจดหมายที่ชัดเจนและเหลือเพียงข้อความสำคัญเท่านั้นที่มองเห็นได้

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

การแสวงหาผลประโยชน์

ระบบจำนวนมากทำให้เกิดปัญหาในการทำงานมากมาย ท้ายที่สุดแล้ว โมเดลก็เสื่อมถอยลงเมื่อเวลาผ่านไป เช่นเดียวกับซอฟต์แวร์อื่นๆ ไม่ว่าจะเป็นฟีเจอร์ขัดข้อง เครื่องจักรล้มเหลว โค้ดจะบิดเบี้ยว นอกจากนี้ ข้อมูลยังเปลี่ยนแปลงอยู่ตลอดเวลา เช่น มีการเพิ่มข้อมูลใหม่ รูปแบบพฤติกรรมของผู้ใช้มีการเปลี่ยนแปลง ฯลฯ ดังนั้นโมเดลที่ไม่ได้รับการสนับสนุนที่เหมาะสมจะทำงานได้แย่ลงเรื่อยๆ เมื่อเวลาผ่านไป

เราต้องไม่ลืมว่าการเรียนรู้ของเครื่องที่เจาะลึกมากขึ้นจะแทรกซึมเข้าไปในชีวิตของผู้ใช้ ผลกระทบที่พวกเขามีต่อระบบนิเวศก็จะยิ่งมากขึ้นเท่านั้น และด้วยเหตุนี้ ผู้เล่นในตลาดก็จะสูญเสียทางการเงินหรือผลกำไรมากขึ้นเท่านั้น ดังนั้นในจำนวนที่เพิ่มขึ้น ผู้เล่นจึงปรับตัวเข้ากับการทำงานของอัลกอริธึม ML (ตัวอย่างคลาสสิก ได้แก่ การโฆษณา การค้นหา และการป้องกันสแปมที่กล่าวไปแล้ว)

นอกจากนี้ งานการเรียนรู้ของเครื่องยังมีลักษณะเฉพาะ: การเปลี่ยนแปลงใดๆ แม้แต่เล็กน้อยในระบบสามารถสร้างงานจำนวนมากกับโมเดลได้ เช่น การทำงานกับข้อมูล การฝึกอบรมใหม่ การปรับใช้ ซึ่งอาจใช้เวลาหลายสัปดาห์หรือหลายเดือน ดังนั้น ยิ่งสภาพแวดล้อมที่โมเดลของคุณดำเนินการเปลี่ยนแปลงเร็วเท่าไร ก็ยิ่งต้องใช้ความพยายามมากขึ้นในการดูแลรักษาโมเดลเท่านั้น ทีมสามารถสร้างระบบได้มากมายและพอใจกับมัน แต่จากนั้นก็ใช้ทรัพยากรเกือบทั้งหมดในการดูแลระบบเหล่านั้น โดยไม่มีโอกาสทำอะไรใหม่ ครั้งหนึ่งเราเคยเจอสถานการณ์เช่นนี้ในทีมป้องกันสแปม และพวกเขาได้ข้อสรุปที่ชัดเจนว่าการสนับสนุนจำเป็นต้องเป็นไปโดยอัตโนมัติ

อัตโนมัติ

อะไรที่สามารถเป็นอัตโนมัติได้? เกือบทุกอย่างจริงๆ ฉันได้ระบุสี่ด้านที่กำหนดโครงสร้างพื้นฐานการเรียนรู้ของเครื่อง:

  • การเก็บรวบรวมข้อมูล;
  • การฝึกอบรมเพิ่มเติม
  • ปรับใช้;
  • การทดสอบและการตรวจสอบ

หากสภาพแวดล้อมไม่เสถียรและเปลี่ยนแปลงอยู่ตลอดเวลา โครงสร้างพื้นฐานทั้งหมดรอบๆ โมเดลจะมีความสำคัญมากกว่าตัวโมเดลมาก มันอาจเป็นตัวแยกประเภทเชิงเส้นแบบเก่าที่ดี แต่ถ้าคุณป้อนคุณสมบัติที่ถูกต้องและได้รับการตอบรับที่ดีจากผู้ใช้ มันจะทำงานได้ดีกว่าโมเดลล้ำสมัยมากพร้อมทั้งเสียงระฆังและนกหวีด

ข้อเสนอแนะห่วง

วงจรนี้เป็นการรวมการรวบรวมข้อมูล การฝึกอบรมเพิ่มเติม และการปรับใช้ ซึ่งจริงๆ แล้วคือวงจรการอัปเดตโมเดลทั้งหมด ทำไมมันถึงสำคัญ? ดูตารางการลงทะเบียนทางไปรษณีย์:

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

นักพัฒนาการเรียนรู้ของเครื่องได้ใช้โมเดลต่อต้านบอทที่ป้องกันไม่ให้บอทลงทะเบียนในอีเมล กราฟจะลดลงเหลือเพียงผู้ใช้จริงเท่านั้น ทุกอย่างยอดเยี่ยมมาก! แต่สี่ชั่วโมงผ่านไป บอทปรับแต่งสคริปต์ และทุกอย่างก็กลับสู่สภาวะปกติ ในการใช้งานนี้ นักพัฒนาซอฟต์แวร์ใช้เวลาหนึ่งเดือนในการเพิ่มฟีเจอร์และฝึกอบรมโมเดลใหม่ แต่นักส่งสแปมสามารถปรับตัวได้ภายในสี่ชั่วโมง

เพื่อไม่ให้เจ็บปวดอย่างเลือดตาแทบกระเด็นและไม่ต้องทำซ้ำทุกอย่างในภายหลัง เราต้องคิดก่อนว่าวงจรป้อนกลับจะเป็นอย่างไร และเราจะทำอะไรหากสภาพแวดล้อมเปลี่ยนแปลง เริ่มต้นด้วยการรวบรวมข้อมูล - นี่คือเชื้อเพลิงสำหรับอัลกอริทึมของเรา

การเก็บรวบรวมข้อมูล

เป็นที่ชัดเจนว่าสำหรับโครงข่ายประสาทเทียมสมัยใหม่ ยิ่งมีข้อมูลมากเท่าไรก็ยิ่งดีเท่านั้น และในความเป็นจริงแล้ว เครือข่ายเหล่านี้สร้างขึ้นโดยผู้ใช้ผลิตภัณฑ์ ผู้ใช้สามารถช่วยเราได้ด้วยการทำเครื่องหมายข้อมูล แต่เราไม่สามารถใช้สิ่งนี้ในทางที่ผิดได้ เนื่องจากในบางจุดผู้ใช้จะเบื่อหน่ายกับการสร้างแบบจำลองของคุณให้เสร็จสิ้นและจะเปลี่ยนไปใช้ผลิตภัณฑ์อื่น

ข้อผิดพลาดที่พบบ่อยที่สุดประการหนึ่ง (ในที่นี้ฉันอ้างอิงถึง Andrew Ng) คือการให้ความสำคัญกับการวัดในชุดข้อมูลทดสอบมากเกินไป และไม่ได้มุ่งเน้นไปที่ผลตอบรับจากผู้ใช้ ซึ่งเป็นตัวชี้วัดหลักของคุณภาพงาน เนื่องจากเราสร้าง ผลิตภัณฑ์สำหรับผู้ใช้ หากผู้ใช้ไม่เข้าใจหรือไม่ชอบงานโมเดลก็แสดงว่าทุกอย่างพัง

ดังนั้น ผู้ใช้ควรสามารถลงคะแนนเสียงได้เสมอ และควรได้รับเครื่องมือสำหรับแสดงความคิดเห็น หากเราคิดว่าจดหมายที่เกี่ยวข้องกับการเงินมาถึงกล่องจดหมายแล้ว เราจะต้องทำเครื่องหมายว่าเป็น "การเงิน" และวาดปุ่มที่ผู้ใช้สามารถคลิกและบอกว่านี่ไม่ใช่การเงิน

คุณภาพการตอบรับ

เรามาพูดถึงคุณภาพของความคิดเห็นของผู้ใช้กันดีกว่า ประการแรก คุณและผู้ใช้สามารถใส่ความหมายที่แตกต่างกันลงในแนวคิดเดียวได้ ตัวอย่างเช่น คุณและผู้จัดการผลิตภัณฑ์คิดว่า "การเงิน" หมายถึงจดหมายจากธนาคาร และผู้ใช้คิดว่าจดหมายจากคุณยายเกี่ยวกับเงินบำนาญของเธอหมายถึงการเงินด้วย ประการที่สอง มีผู้ใช้ที่ชอบกดปุ่มอย่างไร้เหตุผล ประการที่สาม ผู้ใช้อาจเข้าใจผิดอย่างลึกซึ้งในข้อสรุปของเขา ตัวอย่างที่เด่นชัดจากการปฏิบัติของเราคือการใช้ลักษณนาม สแปมไนจีเรียซึ่งเป็นสแปมประเภทตลกมากที่ผู้ใช้ถูกขอให้รับเงินหลายล้านดอลลาร์จากญาติห่าง ๆ ที่พบอย่างกะทันหันในแอฟริกา หลังจากใช้ตัวแยกประเภทนี้ เราได้ตรวจสอบการคลิก "ไม่ใช่สแปม" ในอีเมลเหล่านี้ และปรากฏว่า 80% เป็นสแปมจากไนจีเรีย ซึ่งแสดงให้เห็นว่าผู้ใช้อาจใจง่ายได้มาก

และอย่าลืมว่าปุ่มต่างๆ สามารถคลิกได้ไม่เพียงแต่โดยผู้คนเท่านั้น แต่ยังรวมถึงบอททุกประเภทที่แกล้งทำเป็นเบราว์เซอร์ด้วย ดังนั้นการตอบสนองแบบดิบๆ จึงไม่เป็นผลดีต่อการเรียนรู้ คุณสามารถทำอะไรกับข้อมูลนี้ได้บ้าง?

เราใช้สองวิธี:

  • คำติชมจาก ML ที่เชื่อมโยง. ตัวอย่างเช่น เรามีระบบต่อต้านบอทออนไลน์ ซึ่งอย่างที่ผมบอกไปแล้ว จะทำการตัดสินใจอย่างรวดเร็วโดยพิจารณาจากสัญญาณจำนวนจำกัด และมีระบบที่สองที่ช้าซึ่งทำงานตามความเป็นจริง มีข้อมูลเพิ่มเติมเกี่ยวกับผู้ใช้ พฤติกรรมของเขา ฯลฯ ส่งผลให้มีการตัดสินใจอย่างมีข้อมูลมากที่สุดจึงมีความแม่นยำและครบถ้วนมากขึ้น คุณสามารถกำหนดความแตกต่างในการทำงานของระบบเหล่านี้ไปยังอันแรกเป็นข้อมูลการฝึกอบรมได้ ดังนั้นระบบที่ง่ายกว่าจะพยายามเข้าใกล้ประสิทธิภาพของระบบที่ซับซ้อนกว่าเสมอ
  • คลิกการจัดหมวดหมู่. คุณสามารถจัดประเภทการคลิกของผู้ใช้แต่ละครั้ง ประเมินความถูกต้องและการใช้งานได้ เราทำสิ่งนี้ในเมลป้องกันสแปม โดยใช้คุณลักษณะของผู้ใช้ ประวัติ คุณลักษณะของผู้ส่ง ตัวข้อความ และผลลัพธ์ของตัวแยกประเภท ด้วยเหตุนี้เราจึงได้รับระบบอัตโนมัติที่ตรวจสอบความคิดเห็นของผู้ใช้ และเนื่องจากต้องมีการฝึกซ้ำไม่บ่อยนัก งานจึงอาจกลายเป็นพื้นฐานสำหรับระบบอื่นๆ ทั้งหมดได้ ความสำคัญหลักในโมเดลนี้คือความแม่นยำ เนื่องจากการฝึกโมเดลเกี่ยวกับข้อมูลที่ไม่ถูกต้องจะเต็มไปด้วยผลที่ตามมา

ในขณะที่เรากำลังทำความสะอาดข้อมูลและฝึกอบรมระบบ ML ของเราเพิ่มเติม เราต้องไม่ลืมเกี่ยวกับผู้ใช้ เพราะสำหรับเรา ข้อผิดพลาดนับล้านๆ รายการบนกราฟเป็นเพียงสถิติ และสำหรับผู้ใช้ ทุกจุดบกพร่องถือเป็นโศกนาฏกรรม นอกเหนือจากข้อเท็จจริงที่ว่าผู้ใช้ต้องดำเนินชีวิตอยู่กับข้อผิดพลาดของคุณในผลิตภัณฑ์ หลังจากได้รับคำติชมแล้ว เขาคาดหวังว่าสถานการณ์ที่คล้ายกันจะหมดไปในอนาคต ดังนั้นจึงคุ้มค่าที่จะให้ผู้ใช้ไม่เพียงแต่มีโอกาสลงคะแนนเท่านั้น แต่ยังต้องแก้ไขพฤติกรรมของระบบ ML ด้วย เช่น การสร้างการวิเคราะห์พฤติกรรมส่วนบุคคลสำหรับการคลิกคำติชมแต่ละครั้ง ในกรณีของเมล นี่อาจเป็นความสามารถในการกรอง จดหมายดังกล่าวโดยผู้ส่งและตำแหน่งสำหรับผู้ใช้รายนี้

คุณต้องสร้างโมเดลตามรายงานหรือคำขอบางส่วนเพื่อสนับสนุนในโหมดกึ่งอัตโนมัติหรือโหมดแมนนวล เพื่อให้ผู้ใช้รายอื่นไม่ต้องประสบปัญหาที่คล้ายกัน

ฮิวริสติกส์เพื่อการเรียนรู้

ฮิวริสติกและไม้ค้ำเหล่านี้มีปัญหาสองประการ ประการแรกคือจำนวนไม้ค้ำยันที่เพิ่มขึ้นเรื่อยๆ นั้นยากต่อการบำรุงรักษา ไม่ต้องพูดถึงคุณภาพและประสิทธิภาพในระยะยาว ปัญหาที่สองคือข้อผิดพลาดอาจไม่เกิดขึ้นบ่อย และการคลิกเพียงไม่กี่ครั้งเพื่อฝึกโมเดลเพิ่มเติมก็ไม่เพียงพอ ดูเหมือนว่าผลกระทบที่ไม่เกี่ยวข้องทั้งสองนี้สามารถถูกทำให้เป็นกลางได้อย่างมากหากใช้แนวทางต่อไปนี้

  1. เราสร้างไม้ค้ำยันชั่วคราว
  2. เราส่งข้อมูลจากนั้นไปยังโมเดล โดยจะอัปเดตตัวเองเป็นประจำ รวมถึงข้อมูลที่ได้รับด้วย แน่นอนว่าสิ่งสำคัญคือการวิเคราะห์พฤติกรรมต้องมีความแม่นยำสูง เพื่อไม่ให้คุณภาพของข้อมูลในชุดการฝึกลดลง
  3. จากนั้น เราตั้งค่าการตรวจสอบเพื่อกระตุ้นไม้ค้ำยัน และหากเมื่อเวลาผ่านไป ไม้ค้ำยันไม่ทำงานอีกต่อไปและโมเดลถูกบังไว้จนมิด คุณก็สามารถถอดไม้ค้ำออกได้อย่างปลอดภัย ตอนนี้ปัญหานี้ไม่น่าจะเกิดขึ้นอีก

ดังนั้นกองทัพไม้ค้ำจึงมีประโยชน์มาก สิ่งสำคัญคือการบริการของพวกเขาเป็นเรื่องเร่งด่วนและไม่ถาวร

การฝึกอบรมเพิ่มเติม

การฝึกอบรมซ้ำเป็นกระบวนการในการเพิ่มข้อมูลใหม่ที่ได้รับจากการตอบรับจากผู้ใช้หรือระบบอื่นๆ และการฝึกอบรมโมเดลที่มีอยู่ อาจมีปัญหาหลายประการในการฝึกอบรมเพิ่มเติม:

  1. โมเดลอาจไม่รองรับการฝึกอบรมเพิ่มเติม แต่เรียนรู้ตั้งแต่เริ่มต้นเท่านั้น
  2. ไม่มีที่ไหนในหนังสือแห่งธรรมชาติเขียนไว้ว่าการฝึกอบรมเพิ่มเติมจะช่วยปรับปรุงคุณภาพของงานในการผลิตได้อย่างแน่นอน บ่อยครั้งสิ่งที่ตรงกันข้ามเกิดขึ้นนั่นคือมีเพียงการเสื่อมสภาพเท่านั้นที่เป็นไปได้
  3. การเปลี่ยนแปลงไม่สามารถคาดเดาได้ นี่เป็นจุดที่ค่อนข้างละเอียดอ่อนที่เราได้ระบุด้วยตัวเอง แม้ว่าโมเดลใหม่ในการทดสอบ A/B จะแสดงผลลัพธ์ที่คล้ายคลึงกันเมื่อเปรียบเทียบกับโมเดลปัจจุบัน แต่ก็ไม่ได้หมายความว่าโมเดลจะทำงานเหมือนกัน งานของพวกเขาอาจแตกต่างกันเพียงหนึ่งเปอร์เซ็นต์ซึ่งอาจนำมาซึ่งข้อผิดพลาดใหม่หรือส่งคืนข้อผิดพลาดเก่าที่ได้รับการแก้ไขแล้ว ทั้งเราและผู้ใช้ต่างรู้ดีอยู่แล้วว่าจะรับมือกับข้อผิดพลาดในปัจจุบันได้อย่างไร และเมื่อมีข้อผิดพลาดใหม่จำนวนมากเกิดขึ้น ผู้ใช้อาจไม่เข้าใจว่าเกิดอะไรขึ้น เพราะเขาคาดหวังพฤติกรรมที่คาดเดาได้

ดังนั้นสิ่งที่สำคัญที่สุดในการฝึกอบรมเพิ่มเติมคือต้องแน่ใจว่าโมเดลได้รับการปรับปรุง หรืออย่างน้อยก็ไม่แย่ลง

สิ่งแรกที่นึกถึงเมื่อเราพูดถึงการฝึกอบรมเพิ่มเติมคือแนวทางการเรียนรู้แบบลงมือปฏิบัติ สิ่งนี้หมายความว่า? ตัวอย่างเช่น ตัวแยกประเภทจะกำหนดว่าอีเมลเกี่ยวข้องกับการเงินหรือไม่ และเราจะเพิ่มตัวอย่างที่มีป้ายกำกับตามขอบเขตการตัดสินใจ วิธีนี้ใช้ได้ผลดี เช่น ในการโฆษณาซึ่งมีคำติชมมากมาย และคุณสามารถฝึกโมเดลออนไลน์ได้ และหากมีข้อเสนอแนะเพียงเล็กน้อย เราจะได้ตัวอย่างที่มีอคติสูงเมื่อเทียบกับการกระจายข้อมูลการผลิต โดยพื้นฐานแล้วจึงไม่สามารถประเมินพฤติกรรมของแบบจำลองระหว่างการดำเนินการได้

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

ในความเป็นจริง เป้าหมายของเราคือการรักษารูปแบบเก่า โมเดลที่รู้จักอยู่แล้ว และรับโมเดลใหม่ ความต่อเนื่องเป็นสิ่งสำคัญที่นี่ โมเดลที่เรามักจะใช้ความพยายามอย่างหนักในการเปิดตัวโมเดลนี้ใช้งานได้แล้ว ดังนั้นเราจึงสามารถมุ่งเน้นที่ประสิทธิภาพของโมเดลได้

มีการใช้โมเดลที่แตกต่างกันในเมล: ต้นไม้, เชิงเส้น, โครงข่ายประสาทเทียม เราสร้างอัลกอริธึมการฝึกอบรมเพิ่มเติมสำหรับแต่ละคน ในกระบวนการฝึกอบรมเพิ่มเติม เราไม่เพียงได้รับข้อมูลใหม่เท่านั้น แต่ยังได้รับคุณสมบัติใหม่ ๆ บ่อยครั้งด้วย ซึ่งเราจะนำมาพิจารณาในอัลกอริธึมทั้งหมดด้านล่าง

โมเดลเชิงเส้น

สมมุติว่าเรามีการถดถอยโลจิสติก เราสร้างแบบจำลองการสูญเสียจากส่วนประกอบต่อไปนี้:

  • LogLoss กับข้อมูลใหม่
  • เราปรับน้ำหนักของฟีเจอร์ใหม่ให้เป็นปกติ (เราไม่ได้แตะต้องฟีเจอร์เก่า)
  • เรายังเรียนรู้จากข้อมูลเก่าเพื่อรักษารูปแบบเก่าไว้
  • และบางทีสิ่งที่สำคัญที่สุด: เราได้เพิ่ม Harmonic Regularization ซึ่งรับประกันได้ว่าน้ำหนักจะไม่เปลี่ยนแปลงมากนักเมื่อเทียบกับรุ่นเก่าตามมาตรฐาน

เนื่องจากแต่ละองค์ประกอบการสูญเสียมีค่าสัมประสิทธิ์ เราจึงสามารถเลือกค่าที่เหมาะสมที่สุดสำหรับงานของเราผ่านการตรวจสอบความถูกต้องข้ามหรือตามความต้องการของผลิตภัณฑ์

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

Деревья

มาดูแผนผังการตัดสินใจกันดีกว่า เราได้รวบรวมอัลกอริทึมต่อไปนี้สำหรับการฝึกต้นไม้เพิ่มเติม:

  1. การผลิตดำเนินไปในป่าที่มีต้นไม้ 100-300 ต้น ซึ่งได้รับการฝึกฝนจากชุดข้อมูลเก่า
  2. ในตอนท้าย เราลบ M = 5 ชิ้นออก และเพิ่ม 2M = 10 ชิ้นใหม่ ซึ่งได้รับการฝึกฝนกับชุดข้อมูลทั้งหมด แต่มีน้ำหนักสูงสำหรับข้อมูลใหม่ ซึ่งโดยธรรมชาติแล้วจะรับประกันการเปลี่ยนแปลงที่เพิ่มขึ้นในแบบจำลอง

เห็นได้ชัดว่าเมื่อเวลาผ่านไป จำนวนต้นไม้เพิ่มขึ้นอย่างมาก และจะต้องลดลงเป็นระยะๆ เพื่อให้ตรงตามกำหนดเวลา เพื่อทำเช่นนี้ เราใช้การกลั่นความรู้ (KD) ที่แพร่หลายในปัจจุบัน สั้น ๆ เกี่ยวกับหลักการทำงาน

  1. เรามีรูปแบบ "ซับซ้อน" ในปัจจุบัน เรารันบนชุดข้อมูลการฝึกอบรมและรับการแจกแจงความน่าจะเป็นของคลาสที่เอาต์พุต
  2. ต่อไป เราจะฝึกโมเดลนักเรียน (ในกรณีนี้คือโมเดลที่มีต้นไม้น้อยกว่า) เพื่อทำซ้ำผลลัพธ์ของโมเดลโดยใช้การแจกแจงคลาสเป็นตัวแปรเป้าหมาย
  3. สิ่งสำคัญคือต้องทราบที่นี่ว่าเราไม่ได้ใช้มาร์กอัปชุดข้อมูลในทางใดทางหนึ่ง ดังนั้นเราจึงสามารถใช้ข้อมูลที่กำหนดเองได้ แน่นอนว่าเราใช้ตัวอย่างข้อมูลจากกระแสการต่อสู้เป็นตัวอย่างการฝึกอบรมสำหรับโมเดลนักเรียน ดังนั้น ชุดการฝึกช่วยให้เรามั่นใจในความแม่นยำของแบบจำลอง และตัวอย่างสตรีมรับประกันประสิทธิภาพที่คล้ายคลึงกันในการกระจายการผลิต โดยชดเชยอคติของชุดการฝึก

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

การผสมผสานระหว่างเทคนิคทั้งสองนี้ (การเพิ่มต้นไม้และลดจำนวนลงเป็นระยะโดยใช้การกลั่นความรู้) ช่วยให้เกิดรูปแบบใหม่และความต่อเนื่องที่สมบูรณ์

ด้วยความช่วยเหลือของ KD เรายังดำเนินการต่างๆ กับคุณลักษณะของโมเดล เช่น การลบคุณลักษณะและการทำงานกับช่องว่าง ในกรณีของเรา เรามีคุณลักษณะทางสถิติที่สำคัญจำนวนหนึ่ง (ตามผู้ส่ง แฮชข้อความ URL ฯลฯ) ที่ถูกจัดเก็บไว้ในฐานข้อมูล ซึ่งมีแนวโน้มที่จะล้มเหลว แน่นอนว่าโมเดลนี้ไม่พร้อมสำหรับการพัฒนากิจกรรมดังกล่าว เนื่องจากสถานการณ์ความล้มเหลวไม่เกิดขึ้นในชุดการฝึกอบรม ในกรณีเช่นนี้ เรารวม KD และเทคนิคการเสริม: เมื่อฝึกอบรมสำหรับส่วนหนึ่งของข้อมูล เราจะลบหรือรีเซ็ตคุณสมบัติที่จำเป็น และเรานำป้ายกำกับดั้งเดิม (เอาต์พุตของโมเดลปัจจุบัน) และโมเดลนักเรียนเรียนรู้ที่จะทำซ้ำการกระจายนี้ .

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

เราสังเกตเห็นว่ายิ่งการจัดการโมเดลรุนแรงมากขึ้น เปอร์เซ็นต์ของตัวอย่างเธรดที่ต้องการก็จะยิ่งมากขึ้นเท่านั้น

การลบคุณลักษณะ ซึ่งเป็นการดำเนินการที่ง่ายที่สุด ต้องการเพียงส่วนเล็กๆ ของโฟลว์ เนื่องจากมีการเปลี่ยนแปลงคุณสมบัติเพียงไม่กี่อย่าง และโมเดลปัจจุบันได้รับการฝึกในชุดเดียวกัน - ความแตกต่างมีน้อยมาก เพื่อให้แบบจำลองง่ายขึ้น (ลดจำนวนต้นไม้หลาย ๆ ครั้ง) จำเป็นต้องมี 50 ถึง 50 แล้ว และสำหรับการละเว้นคุณลักษณะทางสถิติที่สำคัญที่จะส่งผลกระทบร้ายแรงต่อประสิทธิภาพของแบบจำลอง จำเป็นต้องมีโฟลว์มากขึ้นเพื่อปรับระดับการทำงานของ รุ่นใหม่ป้องกันการละเว้นสำหรับตัวอักษรทุกประเภท

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

ข้อความด่วน

ไปที่ FastText กันดีกว่า ฉันขอเตือนคุณว่าการแสดง (การฝัง) ของคำประกอบด้วยผลรวมของการฝังคำนั้นและตัวอักษร N-gram ทั้งหมด ซึ่งโดยปกติจะเป็นไตรแกรม เนื่องจากอาจมีไตรแกรมได้ค่อนข้างมาก จึงใช้ Bucket Hashing นั่นคือการแปลงพื้นที่ทั้งหมดให้เป็นแฮชแมปคงที่ เป็นผลให้ได้เมทริกซ์น้ำหนักพร้อมมิติของชั้นในต่อจำนวนคำ + ที่ฝากข้อมูล

ด้วยการฝึกอบรมเพิ่มเติม สัญญาณใหม่จะปรากฏขึ้น: คำและไตรแกรม ไม่มีเหตุการณ์สำคัญเกิดขึ้นในการฝึกอบรมติดตามผลแบบมาตรฐานจาก Facebook เฉพาะตุ้มน้ำหนักเก่าที่มีเอนโทรปีข้ามเท่านั้นที่จะได้รับการฝึกใหม่ในข้อมูลใหม่ ดังนั้นจึงไม่ได้ใช้คุณสมบัติใหม่ แน่นอนว่าวิธีการนี้มีข้อเสียที่อธิบายไว้ข้างต้นทั้งหมดที่เกี่ยวข้องกับความคาดเดาไม่ได้ของแบบจำลองในการผลิต นั่นเป็นเหตุผลที่เราปรับเปลี่ยน FastText เล็กน้อย เราเพิ่มน้ำหนักใหม่ทั้งหมด (คำและตรีโกณมิติ) ขยายเมทริกซ์ทั้งหมดด้วยเอนโทรปีข้าม และเพิ่มการทำให้ฮาร์มอนิกเป็นมาตรฐานโดยการเปรียบเทียบกับแบบจำลองเชิงเส้น ซึ่งรับประกันการเปลี่ยนแปลงเล็กน้อยในน้ำหนักเก่า

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

ซีเอ็นเอ็น

เครือข่ายแบบ Convolutional นั้นซับซ้อนกว่าเล็กน้อย หากเลเยอร์สุดท้ายเสร็จสมบูรณ์ใน CNN แน่นอนว่าคุณสามารถใช้การทำให้ฮาร์มอนิกเป็นมาตรฐานและรับประกันความต่อเนื่องได้ แต่หากจำเป็นต้องมีการฝึกอบรมเพิ่มเติมสำหรับเครือข่ายทั้งหมด การปรับมาตรฐานดังกล่าวจะไม่สามารถนำไปใช้กับทุกเลเยอร์ได้อีกต่อไป อย่างไรก็ตาม มีตัวเลือกในการฝึกการฝังเสริมผ่าน Triplet Loss (บทความต้นฉบับ).

การสูญเสียสามเท่า

ในการใช้งานการป้องกันฟิชชิ่งเป็นตัวอย่าง มาดู Triplet Loss ในแง่ทั่วไปกัน เราใช้โลโก้ของเรา รวมถึงตัวอย่างโลโก้ของบริษัทอื่นทั้งเชิงบวกและเชิงลบ เราลดระยะห่างระหว่างอันแรกและเพิ่มระยะห่างระหว่างอันที่สองให้สูงสุด โดยทำเช่นนี้โดยมีช่องว่างเล็กๆ เพื่อให้แน่ใจว่าคลาสจะมีขนาดกะทัดรัดมากขึ้น

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

หากเราฝึกเครือข่ายเพิ่มเติม พื้นที่เมตริกของเราจะเปลี่ยนไปโดยสิ้นเชิง และจะเข้ากันไม่ได้กับเครือข่ายก่อนหน้าโดยสิ้นเชิง นี่เป็นปัญหาร้ายแรงในปัญหาที่ใช้เวกเตอร์ เพื่อแก้ไขปัญหานี้ เราจะผสมผสานการฝังแบบเก่าระหว่างการฝึก

เราได้เพิ่มข้อมูลใหม่ให้กับชุดการฝึกและกำลังฝึกโมเดลเวอร์ชันที่สองตั้งแต่เริ่มต้น ในขั้นตอนที่สอง เราจะฝึกเครือข่ายของเราเพิ่มเติม (Finetuning): ขั้นแรกให้เลเยอร์สุดท้ายเสร็จสมบูรณ์ จากนั้นเครือข่ายทั้งหมดก็จะไม่ถูกตรึง ในกระบวนการสร้างแฝดสามเราจะคำนวณการฝังเพียงบางส่วนโดยใช้โมเดลที่ผ่านการฝึกอบรมแล้วส่วนที่เหลือ - โดยใช้อันเก่า ดังนั้นในกระบวนการฝึกอบรมเพิ่มเติม เราจึงรับประกันความเข้ากันได้ของช่องว่างเมตริก v1 และ v2 เวอร์ชันที่เป็นเอกลักษณ์ของการทำให้ฮาร์มอนิกเป็นมาตรฐาน

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

สถาปัตยกรรมทั้งหมด

หากเราพิจารณาทั้งระบบโดยใช้การป้องกันสแปมเป็นตัวอย่าง โมเดลจะไม่ถูกแยกออกจากกัน แต่ซ้อนกันอยู่ภายในกัน เราถ่ายภาพ ข้อความ และคุณสมบัติอื่นๆ โดยใช้ CNN และ Fast Text ที่เราฝังไว้ ถัดไป ตัวแยกประเภทจะถูกใช้ที่ด้านบนของการฝัง ซึ่งให้คะแนนสำหรับคลาสต่างๆ (ประเภทของตัวอักษร สแปม การแสดงโลโก้) สัญญาณและสัญญาณได้เข้าสู่ป่าต้นไม้แล้วเพื่อการตัดสินใจขั้นสุดท้าย ตัวแยกประเภทส่วนบุคคลในโครงการนี้ทำให้สามารถตีความผลลัพธ์ของระบบได้ดีขึ้น และฝึกอบรมส่วนประกอบใหม่โดยเฉพาะในกรณีที่เกิดปัญหา แทนที่จะป้อนข้อมูลทั้งหมดลงในแผนผังการตัดสินใจในรูปแบบดิบ

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

ส่งผลให้เรารับประกันความต่อเนื่องในทุกระดับ ที่ระดับล่างสุดใน CNN และ Fast Text เราใช้การทำให้ฮาร์มอนิกเป็นมาตรฐาน สำหรับตัวแยกประเภทที่อยู่ตรงกลาง เรายังใช้การทำให้ฮาร์มอนิกเป็นมาตรฐานและการสอบเทียบอัตราเพื่อความสม่ำเสมอของการแจกแจงความน่าจะเป็น การเพิ่มต้นไม้นั้นได้รับการฝึกฝนแบบค่อยเป็นค่อยไปหรือใช้การกลั่นความรู้

โดยทั่วไปแล้ว การดูแลรักษาระบบแมชชีนเลิร์นนิงที่ซ้อนกันมักจะเป็นเรื่องที่ยุ่งยาก เนื่องจากส่วนประกอบใดๆ ที่ระดับต่ำกว่าจะนำไปสู่การอัปเดตทั้งระบบข้างต้น แต่เนื่องจากในการตั้งค่าของเรา แต่ละส่วนประกอบมีการเปลี่ยนแปลงเล็กน้อยและเข้ากันได้กับส่วนประกอบก่อนหน้า ระบบทั้งหมดจึงสามารถอัปเดตได้ทีละชิ้นโดยไม่จำเป็นต้องฝึกโครงสร้างทั้งหมดใหม่ ซึ่งช่วยให้สามารถรองรับได้โดยไม่มีค่าใช้จ่ายที่ร้ายแรง

ปรับใช้

เราได้หารือเกี่ยวกับการรวบรวมข้อมูลและการฝึกอบรมเพิ่มเติมสำหรับโมเดลประเภทต่างๆ ดังนั้นเราจึงดำเนินการปรับใช้ในสภาพแวดล้อมการใช้งานจริง

การทดสอบ A/B

ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้ ในกระบวนการรวบรวมข้อมูล เรามักจะได้รับตัวอย่างที่มีอคติ ซึ่งไม่สามารถประเมินประสิทธิภาพการผลิตของแบบจำลองได้ ดังนั้น เมื่อปรับใช้ จะต้องเปรียบเทียบโมเดลกับเวอร์ชันก่อนหน้า เพื่อทำความเข้าใจว่าสิ่งต่างๆ ดำเนินไปอย่างไรจริง ๆ นั่นก็คือ ดำเนินการทดสอบ A/B ในความเป็นจริง กระบวนการเปิดตัวและวิเคราะห์แผนภูมิค่อนข้างเป็นกิจวัตรและสามารถทำให้เป็นอัตโนมัติได้อย่างง่ายดาย เราค่อยๆ เปิดตัวโมเดลของเราให้กับผู้ใช้ 5%, 30%, 50% และ 100% ในขณะที่รวบรวมตัวชี้วัดทั้งหมดที่มีอยู่เกี่ยวกับการตอบกลับของโมเดลและคำติชมของผู้ใช้ ในกรณีของค่าผิดปกติร้ายแรง เราจะย้อนกลับแบบจำลองโดยอัตโนมัติ และในกรณีอื่นๆ เมื่อรวบรวมจำนวนคลิกของผู้ใช้ได้เพียงพอแล้ว เราจะตัดสินใจเพิ่มเปอร์เซ็นต์ ด้วยเหตุนี้ เราจึงนำโมเดลใหม่มาสู่ผู้ใช้ 50% โดยอัตโนมัติ และการเปิดตัวต่อผู้ชมทั้งหมดจะได้รับการอนุมัติจากบุคคลหนึ่งคน แม้ว่าขั้นตอนนี้จะดำเนินการโดยอัตโนมัติก็ตาม

อย่างไรก็ตาม กระบวนการทดสอบ A/B มีพื้นที่สำหรับการเพิ่มประสิทธิภาพ ความจริงก็คือการทดสอบ A/B ใดๆ ก็ตามนั้นค่อนข้างยาว (ในกรณีของเราจะใช้เวลา 6 ถึง 24 ชั่วโมงขึ้นอยู่กับจำนวนความคิดเห็น) ซึ่งทำให้การทดสอบมีราคาค่อนข้างแพงและมีทรัพยากรที่จำกัด นอกจากนี้ เปอร์เซ็นต์การไหลที่สูงเพียงพอสำหรับการทดสอบจำเป็นต่อการเร่งเวลาโดยรวมของการทดสอบ A/B (การสรรหาตัวอย่างที่มีนัยสำคัญทางสถิติเพื่อประเมินหน่วยเมตริกที่มีเปอร์เซ็นต์เพียงเล็กน้อยอาจใช้เวลานานมาก) ซึ่งทำให้ จำนวนช่อง A/B มีจำกัดมาก แน่นอนว่าเราต้องทดสอบเฉพาะโมเดลที่มีแนวโน้มดีที่สุดเท่านั้น ซึ่งเราได้รับค่อนข้างมากในระหว่างกระบวนการฝึกอบรมเพิ่มเติม

เพื่อแก้ไขปัญหานี้ เราได้ฝึกอบรมตัวแยกประเภทแยกต่างหากที่คาดการณ์ความสำเร็จของการทดสอบ A/B ในการทำเช่นนี้ เราจะใช้สถิติในการตัดสินใจ ความแม่นยำ การเรียกคืน และตัวชี้วัดอื่นๆ ในชุดการฝึก ชุดที่เลื่อนออกไป และตัวอย่างจากสตรีมเป็นคุณสมบัติ นอกจากนี้เรายังเปรียบเทียบโมเดลกับโมเดลปัจจุบันที่ใช้งานจริงด้วยการวิเคราะห์พฤติกรรม และคำนึงถึงความซับซ้อนของโมเดลด้วย การใช้ฟีเจอร์เหล่านี้ ตัวแยกประเภทที่ได้รับการฝึกอบรมเกี่ยวกับประวัติการทดสอบจะประเมินโมเดลผู้สมัคร ในกรณีของเราคือป่าไม้ และตัดสินใจว่าจะใช้โมเดลใดในการทดสอบ A/B

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

ในขณะที่ดำเนินการ แนวทางนี้ช่วยให้เราเพิ่มจำนวนการทดสอบ A/B ที่ประสบความสำเร็จได้หลายครั้ง

การทดสอบและการตรวจสอบ

การทดสอบและการเฝ้าติดตามนั้นน่าแปลกที่ไม่เป็นอันตรายต่อสุขภาพของเรา ในทางกลับกัน การทดสอบจะปรับปรุงและบรรเทาความเครียดที่ไม่จำเป็นให้กับเรา การทดสอบช่วยให้คุณป้องกันความล้มเหลวได้ และการตรวจสอบช่วยให้คุณตรวจพบได้ทันเวลาเพื่อลดผลกระทบต่อผู้ใช้

สิ่งสำคัญคือต้องเข้าใจที่นี่ว่าไม่ช้าก็เร็วระบบของคุณจะทำผิดพลาดเสมอ - นี่เป็นเพราะวงจรการพัฒนาของซอฟต์แวร์ใด ๆ ในช่วงเริ่มต้นของการพัฒนาระบบมักมีข้อบกพร่องมากมายจนกว่าทุกอย่างจะคลี่คลายและขั้นตอนหลักของนวัตกรรมจะเสร็จสมบูรณ์ แต่เมื่อเวลาผ่านไป เอนโทรปีได้รับผลกระทบ และข้อผิดพลาดก็ปรากฏขึ้นอีกครั้ง เนื่องจากส่วนประกอบรอบๆ ลดลงและการเปลี่ยนแปลงของข้อมูล ซึ่งฉันได้พูดถึงไปแล้วในตอนต้น

ในที่นี้ ฉันอยากจะทราบว่าระบบแมชชีนเลิร์นนิงควรได้รับการพิจารณาจากมุมมองของผลกำไรตลอดวงจรชีวิต กราฟด้านล่างแสดงตัวอย่างวิธีการทำงานของระบบเพื่อตรวจจับสแปมประเภทที่หายาก (เส้นในกราฟมีค่าใกล้ศูนย์) วันหนึ่ง เนื่องจากคุณลักษณะแคชที่ไม่ถูกต้อง เธอจึงคลั่งไคล้ โชคดีที่ไม่มีการตรวจสอบทริกเกอร์ที่ผิดปกติ ด้วยเหตุนี้ ระบบจึงเริ่มบันทึกจดหมายจำนวนมากลงในโฟลเดอร์ "สแปม" ที่ขอบเขตการตัดสินใจ แม้จะแก้ไขผลที่ตามมา แต่ระบบก็ทำผิดพลาดหลายครั้งจนไม่สามารถจ่ายเองได้แม้ในห้าปีก็ตาม และนี่คือความล้มเหลวโดยสิ้นเชิงจากมุมมองของวงจรชีวิตของโมเดล

การทำงานของการเรียนรู้ของเครื่องใน Mail.ru Mail

ดังนั้นสิ่งง่ายๆ เช่น การตรวจสอบจึงกลายเป็นสิ่งสำคัญในชีวิตของแบบจำลองได้ นอกเหนือจากการวัดมาตรฐานและชัดเจนแล้ว เรายังพิจารณาการกระจายของคำตอบและคะแนนของโมเดล ตลอดจนการกระจายของค่าคุณลักษณะหลักด้วย เมื่อใช้ KL Divergence เราสามารถเปรียบเทียบการแจกแจงปัจจุบันกับค่าในอดีตหรือค่าในการทดสอบ A/B กับส่วนที่เหลือของสตรีม ซึ่งช่วยให้เราสังเกตเห็นความผิดปกติในโมเดลและย้อนกลับการเปลี่ยนแปลงได้ทันท่วงที

ในกรณีส่วนใหญ่ เราเปิดตัวระบบเวอร์ชันแรกโดยใช้การวิเคราะห์พฤติกรรมแบบง่ายหรือโมเดลที่เราใช้เป็นการตรวจสอบในอนาคต ตัวอย่างเช่น เราตรวจสอบโมเดล NER โดยเปรียบเทียบกับโมเดลปกติสำหรับร้านค้าออนไลน์บางแห่ง และหากความครอบคลุมของตัวแยกประเภทลดลงเมื่อเปรียบเทียบกับโมเดลเหล่านั้น เราก็จะเข้าใจเหตุผล การใช้ฮิวริสติกที่มีประโยชน์อีกอย่างหนึ่ง!

ผลของการ

เรามาดูแนวคิดสำคัญของบทความอีกครั้ง

  • ไฟเบอร์เด็ค. เราคิดถึงผู้ใช้เสมอ: เขาจะใช้ชีวิตกับความผิดพลาดของเราอย่างไร เขาจะรายงานได้อย่างไร อย่าลืมว่าผู้ใช้ไม่ใช่แหล่งความคิดเห็นที่แท้จริงสำหรับโมเดลการฝึก และจำเป็นต้องเคลียร์ด้วยความช่วยเหลือของระบบ ML เสริม หากไม่สามารถรวบรวมสัญญาณจากผู้ใช้ได้ เราจะมองหาแหล่งข้อเสนอแนะอื่น เช่น ระบบที่เชื่อมต่อ
  • การฝึกอบรมเพิ่มเติม. สิ่งสำคัญที่นี่คือความต่อเนื่อง ดังนั้นเราจึงอาศัยรูปแบบการผลิตในปัจจุบัน เราฝึกโมเดลใหม่เพื่อไม่ให้แตกต่างไปจากรุ่นก่อนมากนักเนื่องจากการปรับฮาร์มอนิกให้เป็นมาตรฐานและเทคนิคที่คล้ายกัน
  • ปรับใช้. การปรับใช้อัตโนมัติตามหน่วยเมตริกช่วยลดเวลาในการนำโมเดลไปใช้อย่างมาก การติดตามสถิติและการกระจายการตัดสินใจ จำนวนการล้มของผู้ใช้เป็นสิ่งจำเป็นสำหรับการนอนหลับพักผ่อนและวันหยุดสุดสัปดาห์ที่มีประสิทธิผล

ฉันหวังว่าสิ่งนี้จะช่วยให้คุณปรับปรุงระบบ ML ของคุณได้เร็วขึ้น นำระบบออกสู่ตลาดเร็วขึ้น และทำให้เชื่อถือได้มากขึ้นและเครียดน้อยลง

ที่มา: will.com

เพิ่มความคิดเห็น