Makine Öğrenimi Mühendisliği İçin En İyi Uygulamalar
Martin Zinkevich
Bu belge, makine hakkında temel düzeyde bilgiye sahip olan kişilere yardımcı olmak amacıyla hazırlanmıştır. , Google'ın makine öğrenimi alanındaki en iyi uygulamalarından faydalanır. Google Google C++ Stil Kılavuzu'na benzer bir makine öğrenimi stili sunar uygulamalı programlamayla ilgili diğer popüler kılavuzlara göz atın. Bir derse katıldıysanız makine öğrenimi modeliyle geliştirilmiş ya da bu model üzerinde çalışmış Bu belgeyi okumak için gereken deneyime sahip olmalısınız.
Terminoloji
Aşağıdaki terimler, etkili olma aşamasında tekrar tekrar makine öğrenimi:
- Örnek: Oluşturmak istediğiniz öğe bir tahmindir. Mesela bu örnek raporlayıcıyı kontrol etmek için "kediler hakkında" olarak sınıflandırır "kediler hakkında değil" gibi.
- Etiket: Bir tahmin görevi için gösterilen yanıt, veya eğitim verilerinde verilen doğru yanıt olabilir. Örneğin, Örneğin, bir web sayfasının etiketi "kediler hakkında" olabilir.
- Özellik: Tahmin görevinde kullanılan bir örneğin özelliği. Örneğin, Örneğin, bir web sayfası "kedi" kelimesini içeren bir özelliğe sahip olabilir.
- Özellik Sütunu: Bir grup ilgili özellik (örneğin, mümkün olan tüm olası farklı ülkelerdeki kullanıcılara göre değişebilir. Bir örnek, bir veya daha fazla özelliğe sahip olabilir birçok bilgi bulunur. "Özellik sütunu" Google'a özgü bir terminoloji var. Özellik sütunu "ad alanı" olarak adlandırılır VW sisteminde (Yahoo/Microsoft'ta) veya bir alanına gidin.
- Örnek: Bir örnek (özellikleriyle birlikte) ve bir etiket.
- Model: Bir tahmin görevinin istatistiksel bir temsili. Bir modeli şurada eğitiyorsunuz: örneklerden ve tahminlerde bulunmak için modeli kullanır.
- Metrik: Önem verdiğiniz bir sayı. Doğrudan optimize edilebilir veya optimize edilmeyebilir.
- Hedef: Algoritmanızın optimize etmeye çalıştığı bir metrik.
- Ardışık düzen: Makine öğrenimi algoritmasını çevreleyen altyapı. Kullanıcı arabiriminden verilerin toplanması ve eğitim verilerine eklenmesi dahildir bir veya daha fazla modeli eğitmek ve modelleri üretime aktarmak için kullanılır.
- Tıklama Oranı Bir web sayfasını ziyaret eden ve bağlantısıdır.
Genel Bakış
Mükemmel ürünler oluşturmak için:
makine öğrenimini harika bir mühendis gibi değil, uzman olmanız gerekmez.
Karşılaşacağınız sorunların çoğu aslında mühendislik sorunları olacaktır. Eşit harika bir makine öğrenimi uzmanının tüm kaynakları sayesinde büyük makine öğrenimi algoritmalarından değil, mükemmel özelliklerden gelir. Buradaki şöyle olabilir:
- Ardışık düzeninizin uçtan uca sağlam olduğundan emin olun.
- Makul bir hedefle başlayın.
- Basit bir şekilde sağduyuya yönelik özellikler ekleyin.
- Ardışık düzeninizin sağlam kaldığından emin olun.
Bu yaklaşım uzun süre korunuyor. Yalnızca reklam grubu mevcut olmadığında bu yaklaşımdan ayrılın basit püf noktalarından faydalanacağız. Karmaşıklık eklemek gelecekteki sürümleri yavaşlatır.
Basit püf noktalarını denedikten sonra, ileri düzey makine öğrenimi elinizi çabuk tutun. Bu bölümde, III. Aşama projelerine ayıracaksınız.
Bu belge şu şekilde düzenlenmiştir:
- İlk bölüm, projenizin başarısız olup olmadığını makine öğrenimi sistemi oluşturmak için doğru zaman.
- İkinci bölüm, ilk ardışık düzen.
- Üçüncü bölüm ise lansman, ardışık düzeninize yeni özellikler eklerken yineleme, modelleri değerlendirme ve eğitim-sunum sapması.
- İlgili içeriği oluşturmak için kullanılan son kısım platoya ulaştığınızda ne yapacağınızla ilgili.
- Ardından, ilgili çalışmaların listesi ve bazı ek bu dokümanda yaygın olarak kullanılan sistemlerin arka planını takip edin.
Makine Öğreniminden Önce
1. Kural: Makine öğrenimi olmadan ürünü kullanıma sunmaktan korkmayın.
Makine öğrenimi havalı bir teknoloji olsa da veri gerektirir. Teorik olarak verileri alıp değerlendirebilir ve yeni bir ürün için bu modelde ince ayar yapabilirsiniz. muhtemelen daha düşük performans buluşturmalar. Google’ın makine öğrenimi size% 100 destek, buluşsal bir yöntem ise size %50 yardımcı oluyorum.
Örneğin, bir uygulama ticaret sitesindeki uygulamaları sıralıyorsanız yükleme oranını veya yükleme sayısını bulgusal yöntem olarak kullanabilirsiniz. Spam tespit ediyorsanız daha önce spam gönderen yayıncıları filtreler. İnsanları kullanmaktan korkmayın düzenleyebilirsiniz. Kişileri sıralamanız gerekiyorsa, en son kullanılan en yüksek (hatta alfabetik olarak sıralanabilir) Makine öğrenimi her zaman ürününüz için gerekliyse veri elde edene kadar kullanmayın.
2. Kural: İlk olarak, metrikleri tasarlayın ve uygulayın.
Makine öğrenimi sisteminizin yapacaklarını biçimlendirmeden önce mümkün olduğunca çalışmasını sağlamalısınız. Bunu aşağıdaki nedenlerden dolayı yapın:
- Daha önce sistem kullanıcılarından izin almak daha kolaydır.
- İleride bir meselenin gündeme geleceğini düşünürseniz, geçmiş verileri şimdi almak daha iyi.
- Sisteminizi metrik araçlarını göz önünde bulundurarak tasarlarsanız, proje yaşam döngüsünün sorun. Daha net ifade etmek gerekirse, kendinizi günlüklerdeki dizeleri kullanmaya başlayın.
- Nelerin değişip değişmediğini fark edeceksiniz. Örneğin, bir gün boyunca etkin olan kullanıcıları doğrudan optimize etmek istediğinizi varsayalım. Ancak, gerçekleştirdiğiniz ilk manipülasyon işlemleri sırasında, bazı kullanıcı deneyiminde yapılan dramatik değişiklikler, bu durumu metriğine karşılık gelir.
Google Artı ekibi ölçümleri okuma başına artar, okuma başına +1 yeniden paylaşım yorum yapma/okuma, kullanıcı başına yorum sayısı, kullanıcı başına yeniden paylaşım sayısı vb. ne kadar iyi kullanılabileceğini hesaplar. Ayrıca, kullanıcıları gruplar halinde gruplandırabileceğiniz ve ayrı ayrı incelemek önemlidir. Görüntüleyin 12. Kural.
Metrikleri toplama konusunda daha özgür davranarak daha kapsamlı bir bakış açısı elde edebilirsiniz en iyi yoludur. Bir sorun mu fark ettiniz? Takip etmek için metrik ekleyin. Bazı şeyler için heyecanlıyım son sürümde niceliksel bir değişiklik var mı? Takip etmek için metrik ekleyin.
3. Kural: Karmaşık buluşsal bir yöntem yerine makine öğrenimini tercih edin.
Basit bir buluşsal yöntem, ürününüzü kapıdan çıkarabilir. Karmaşık buluşsal bir yöntem, olanaksızdır. Elinizde verilere ve ne yapmaya çalıştığınız konusunda temel bir fikre sahip olduktan sonra, makine öğrenimine geçin. Çoğu yazılım mühendisliğinde olduğu gibi ister yeni bir ekip üyesi olsun, ister bir sonraki aşamaya olsun, yaklaşımınızı sürekli olarak makine tarafından öğrenilmiş bir model olarak tanımlarsanız ve modelin makine öğrenimi modeli kullanılarak güncellenmesi ve bakımı daha kolaydır (bkz. 16. Kural).
Makine Öğrenimi 1. Aşaması: İlk Ardışık Düzeniniz
İlk ardışık düzeniniz için sistem altyapınıza odaklanın. Eğlenceli olduğu kadar makine öğrenimini tasarlamak önce ekibinize güvenmezseniz neler olacağını anlamak zor olacaktır. ardışık düzendir.
4. Kural: İlk modeliniz basit olsun ve altyapıyı doğru şekilde kurun.
İlk model, ürününüz için en büyük desteği sağlar. Dolayısıyla sizin de biraz zor olmalı. Ancak bu sayede daha fazla altyapı sorunuyla görebilirsiniz. Bu gösterişli yeni makine öğrenimi sisteminizi kimse kullanmadan önce belirlemek için:
- Öğrenme algoritmanıza örnek alma.
- Neyin "iyi" olduğuna dair ilk geçiş ve "kötü" bir anlam ifade eder.
- Modelinizi uygulamanıza entegre etme. Tekliflerinizi otomatikleştirmek ve optimize etmek için modeli yayında tutmak veya Çevrimdışı örnekler üzerinde modeli önceden hesaplama ve sonuçları bir tabloda depolama. Örneğin, web sayfalarını önceden sınıflandırıp sonuçları ancak sohbet mesajlarını canlı olarak sınıflandırmak isteyebilirsiniz.
Basit özellikleri seçmek aşağıdaki şartların sağlandığından emin olmanızı kolaylaştırır:
- Özellikler, öğrenme algoritmanıza doğru şekilde ulaşır.
- Model, makul ağırlıkları öğrenir.
- Özellikler, modelinize sunucu üzerinden doğru şekilde ulaşır.
Bu üç şeyi güvenilir şekilde yapan bir sisteminiz olduğunda büyük önem taşır. Basit modeliniz, temel metrikleri ve bunun için temel davranışı temel alıyor. Bazı ekipler "Nötr" için ilk kullanıma sunma: açıkça önceliklendiren bir ilk kullanıma sunma elde etti.
5. Kural: Altyapıyı makine öğreniminden bağımsız olarak test edin.
Altyapının test edilebilir olduğundan ve eğitim bölümlerinin test edilebilir olduğundan her şeyi test edebilmeniz için sistem kapsüllenmiş olmalıdır. Özellikle:
- Algoritmaya veri almayı test etme. Bu özellik sütunlarında alanları doldurulmalıdır. Gizliliğin uygun olduğu durumlarda manuel olarak eğitim algoritmanıza yapılan girişi inceleyin. Mümkünse, ardışık düzeninizdeki istatistikleri, aynı verilere ait istatistiklerle başka bir yerde işlenir.
- Eğitim algoritmasından model almayı test etme. Lütfen eğitim ortamınızdaki model, modelle aynı puanı verir. sunum ortamınızda ( 37. Kural).
Makine öğreniminde öngörülemezlik bulunur. Bu nedenle, eğitim ve sunumda örnek oluşturmaya yönelik koda yönelik testler yapma ve Bu sayede, sunma sırasında sabit bir model yükleyip kullanabilirsiniz. Ayrıca, kampanyalarınızın inceleyin: Büyük ve Karmaşık Veri Kümelerinin Analizi İçin Pratik Öneriler.
6. Kural: Ardışık düzenleri kopyalarken bırakılan verilere dikkat edin.
Genellikle ardışık düzen oluşturmak için mevcut bir ardışık düzeni (ör. kargo kült programlaması ) ve eski ardışık düzen, yeni ardışık düzen için ihtiyaç duyduğumuz verileri bırakır. Örneğin, Google Artı Yenilikler'e ilişkin ardışık düzen eski yayınları çıkarır (yeni yayınları sıralamaya çalıştığı için). Bu ardışık düzen Eski yayınların olduğu Google Artı Akışı için kullanılmak üzere kopyalandı hâlâ anlamlı olsa da ardışık düzen eski yayınları bırakıyordu. Diğer en yaygın kullanılan model, yalnızca kullanıcı tarafından görülen verileri günlüğe kaydetmektir. Dolayısıyla bu veriler belirli bir yayının kullanıcı tarafından neden görülmediğini modellemek için çünkü tüm olumsuz örnekler atılmış. Benzer bir sorun şu tarihte oluştu: Oyna. Play Uygulamaları Ana Sayfası'nda çalışırken, aynı zamanda içeren, hiçbir özellik içermeyen Play Games açılış sayfasından her örneğin nereden geldiğini netleştirmek için kullanın.
7. Kural: Buluşsal yöntemleri özelliklere dönüştürün veya harici olarak işleyin.
Çoğu zaman makine öğreniminin çözmeye çalıştığı sorunlar tamamen yeni olması gerekir. Sıralama veya sınıflandırma için mevcut bir sistem varsa çözmek için uğraşmanız gerekmeyecek. Bu da pek çok farklı yöntemlerini inceleyeceğiz. Aynı buluşsal yöntemler, ufak değişiklikler yaparak yeni yollar keşfediyor. Buluşsal yöntemlerde, sahip oldukları bilgilerin iki nedeni vardır. İlk olarak, makineye geçiş, daha sorunsuz olacaktır. İkincisi, bu kurallar genellikle sitede sistem hakkındaki sezgileri güçlendirir. Dört adet mevcut bir sezgisel yöntemi kullanabilirsiniz:
- Sezgisel yöntemi kullanarak ön işlem. Bu özellik olağanüstü derecede başarılıysa, bu bir seçenektir. Örneğin, bir spam filtresinde gönderen zaten kara listeye alındı, neyin "kara listeye" geldiğini tekrar öğrenmeye çalışmayın anlamına gelir. İletiyi engelleyin. Bu yaklaşım, ikili programda en mantıklı olan sınıflandırma görevlerine geldi.
- Özellik oluşturun. Doğrudan buluşsal yöntemle bir özellik oluşturmak harikadır. Örneğin, bir sorgu için alaka düzeyi puanı hesaplamak üzere buluşsal bir yöntem kullanırsanız puanı bir özelliğin değeri olarak ekleyebilirsiniz. Daha sonra siz kullanıcılara en iyi hizmeti sunmak için (örneğin, değeri sonlu bir ayrık kümelerinden birine dönüştürmek, veya onu diğer özelliklerle birleştirmesi) ama önce ham verileri üretilen değeri ifade eder.
- Buluşsal yöntemin ham girdilerini ayıklayın. Uygulamalar için buluşsal bir yöntem varsa yükleme sayısını, dosyanın içindeki karakter sayısını ve haftanın günü ile ilgili yazıyorsanız bu parçaları birbirlerinden ayırmayı düşünün, ve bu girdileri öğrenime ayrı ayrı aktarmamız gerekir. Bazı teknikler (bkz. 40. Kural).
- Etikette değişiklik yapın. Bu seçenek, sezgisel olarak , o anda etikette bulunmayan bilgileri yakalar. Örneğin, indirme sayısını artırmak istiyor ancak aynı zamanda sağlamak isterseniz, belki çözümü, etiketi uygulamanın aldığı ortalama yıldız sayısı. Burada çok fazla esneklik var. "İlk Hedefiniz"e bakın.
Makine öğreniminde buluşsal yöntemler kullanırken ek karmaşıklığa dikkat edin bahsedeceğim. Yeni makine öğrenimi algoritmanızda eski buluşsal yöntemleri kullanmak, sorunsuz bir geçiş oluşturmaya yardımcı olur, ancak yine de daha basit bir şekilde görebilirsiniz.
İzleme
Genel olarak, uyarıları işlem yapılabilir hale getirmek gibi iyi bir uyarı hijyenine özen gösterin. ve bir kontrol paneli sayfasına sahip olmak.
8. Kural: Sisteminizin güncellik gereksinimlerini öğrenin.
Bir günlük bir model kullanıyorsanız performans ne kadar düşer? Bir hafta eski mi? Çeyrek mi geçti? Bu bilgi, projenizin önceliklerini anlamanıza birçok yolu vardır. Önemli bir ürünü kaybederseniz model güncellenmezse kalite bir mühendisin bu içeriği sürekli izlemesi mantıklı. Çoğu reklam sunum sistemlerinin her gün işlenebilecek yeni reklamları vardır ve günlük. Örneğin, makine öğreniminin Google Play Arama güncellenmedi. Güncellemenin olumsuz etkiledi. Popüler Olanlar için bazı modeller Google Artı'nın modelinde yayın tanımlayıcısı yoktur. onlar nadiren dışa aktarabilirsiniz. Yayın tanımlayıcıları olan diğer modeller güncellemenin sıklığı artırılabilir. Ayrıca güncellik, zaman içinde değişebilir. özellikle de modelinize özellik sütunları eklendiğinde veya modelden özellik sütunları kaldırıldığında.
9. Kural: Modelleri dışa aktarmadan önce sorunları tespit edin.
Birçok makine öğrenimi sisteminde modeli Google Ads'e aktardığınız bir aşama vardır. yardımcı olur. Dışa aktarılan bir modelde sorun varsa bu sorun, .
Modeli dışa aktarmadan hemen önce sağlık kontrolleri yapın. Özellikle, yazılımın korunmuş verilerde model performansının makul olduğundan emin olun. Veya verilerle ilgili endişeler varsa bunları dışa aktarabilirsiniz. Birçok takım modelleri sürekli olarak dağıtarak ROC eğrisi (veya AUC) tıklayın. Dışa aktarılmayan modellerle ilgili sorunlar için uyarı e-postası alırsınız, ancak kullanıcıya yönelik bir modelde sorun yaşanması için sayfa gerekebilir. Çok daha iyi emin olmak önemlidir.
10. Kural: Sessiz hatalara dikkat edin.
Bu sorun, makine öğrenimi sistemlerinde diğer sistemlere kıyasla daha çok sistemlerden bahsetmiştik. Birleştirilmekte olan belirli bir tablonun sürekli güncellenir. Makine öğrenimi sistemi buna uyum sağlar makul düzeyde iyi olmaya devam edecek ve zamanla azalacak. Bazen, bir göreve aylarca güncelliğini yitirmiş tabloları içerir ve basit bir yenilemeyle performansı artırır. en fazla satış elde etti. Kapsam özellik, uygulama değişiklikleri nedeniyle değişebilir: Örneğin, bir özellik sütunu %90'lık kısım doldurulabilir ve aniden bu oran% 60'a düşebilir. örnekler. Play'de bir zamanlar 6 aydır eski olan bir masa vardı ve masa yenileniyordu yalnızca tablo, yükleme oranında% 2'lik bir artış sağladı. Belirli bir zaman dilimi içindeki ayrıca ara sıra verileri manuel olarak inceleyebilir, daha az yardımcı olur.
11. Kural: Özellik sütunları sahiplerini ve belgelerini sağlayın.
Sistem büyükse ve çok sayıda özellik sütunu varsa, bu sütunları kimin veya her bir özellik sütununu destekliyor olabilir. Arama yapan kişinin bir özellik sütununun ayrıldığını anlıyorsa, bu kişinin ekleyebilirsiniz. Birçok özellik sütunu açıklayıcı adlara sahip olsa da, daha ayrıntılı bir açıklamaya ulaşmak için ne fayda sağlayacağını daha iyi anlarsınız.
İlk Hedefiniz
Sistemle ilgili önem verdiğiniz birçok metriğiniz veya ölçümünüz varsa Ancak makine öğrenimi algoritmanız genellikle tek bir hedef, algoritmanızın "çalıştığı" sayı olanak tanıyor. Burada ayrım yapıyorum hedefler ile metrikler arasında farklılık gösterir: Metrik, sisteminizin Bunlar önemli olabilir veya olmayabilir. Şu kaynakları da inceleyin 2. Kural.
12. Kural: Hangi hedefi doğrudan optimize etmeyi seçtiğinizi fazla düşünmeyin.
Para kazanmak, kullanıcılarınızı mutlu etmek ve dünyayı daha iyi bir yer haline getirmek istiyorsunuz yer. Önem verdiğiniz birçok metrik var. Bu metriği (bkz. 2. Kural). Ancak, veya makine öğreniminin başlarında, bunların tümünün artış gösterdiğini dönüşüm elde etmek anlamına gelir. Örneğin, örneğin, tıklama sayısı ve sitede geçirilen süre Anahtar kelimelerin sayısı için optimizasyon yaparsanız tıklama sayısını hesaplarken, harcanan zamanın büyük olasılıkla arttığını göreceksiniz.
Bu nedenle, basit tutun ve farklı metrikleri dengelemeyi fazla düşünmeyin ancak tüm metrikleri kolayca artırabileceğinizden emin olun. Bu kuralı da kabul etmeyin Ama hedefinizi, projenizin en önemli şekliyle karıştırmayın. sistem (bkz. 39. Kural). Doğrudan dönüşüm artışını ancak kullanıma sunmamaya karar verdiğinizde, bazı objektif revizyonlar gerekir.
13. Kural: İlk hedefiniz için basit, gözlemlenebilir ve ilişkilendirilebilir bir metrik seçin.
Çoğu zaman gerçek amacın ne olduğunu bilemezsiniz. Böyle düşünüyorsunuz ama sonra eski sisteminiz ile yeni makine öğreniminin verilerine ve yan yana analizine bakacaksınız hedefi değiştirmek istediğinizi fark ediyorsunuz. Dahası, farklı ekipler üyeler çoğu zaman gerçek hedef üzerinde anlaşamazlar. Makine öğrenimi hedefi Bu, ölçülmesi kolay olan ve "doğru" metriğinin temsili hedefiniz. Aslında genellikle "doğru" (bkz. 39. Kural). ODK basit makine öğrenimi hedefine göre eğitilmesi ve bir "politika katmanı" üstte Bu da başka bir sorun teşkil etmeyecek şekilde olduğunu unutmayın.
Modellemenin en kolay yolu, doğrudan gözlemlenen ve ürünle ilişkilendirilebilen kullanıcı davranışıdır. sistem işlemi:
- Bu sıralı bağlantı tıklandı mı?
- Sıralı nesne indirildi mi?
- Sıralı nesne iletildi/yanıtlandı mı/e-postayla gönderildi mi?
- Sıralamada bu nesneye puan verildi mi?
- Gösterilen bu nesne spam/pornografi/rahatsız edici olarak mı işaretlendi?
Başlangıçta dolaylı etkileri modellemekten kaçının:
- Kullanıcı ertesi gün ziyaret etti mi?
- Kullanıcı siteyi ne kadar süreyle ziyaret etti?
- Günlük etkin kullanıcı sayısı kaçtı?
Dolaylı efektler çok iyi metrikler oluşturur, A/B testi ve lansman sırasında kullanılabilir toplamıdır.
Son olarak, makine öğreniminin şunu çözmesini sağlamaya çalışmayın:
- Kullanıcı ürünü kullanmaktan memnun mu?
- Kullanıcı deneyimden memnun kaldı mı?
- Ürün, kullanıcının genel sağlığını iyileştiriyor mu?
- Bu durum şirketin genel durumunu nasıl etkileyecek?
Bunların hepsi önemli ama ölçülmesi de son derece zordur. Bunun yerine proxy'ler: kullanıcı mutluysa sitede daha uzun süre kalır. Kullanıcı memnun kaldıysa yarın tekrar ziyaret edecek. Sağlık ve olması gerektiğinden, ilgili herhangi bir husus ile bağlantı kurmak için insanların makine tarafından öğrenilen hedefin özellikleri, daha fazla bilgi edineceksiniz.
14. Kural: Yorumlanabilir bir modelle başlamak hata ayıklamayı kolaylaştırır.
Doğrusal regresyon, mantıksal regresyon ve Poisson regresyonu, motivasyon modelidir. Her tahmin, sürecin sonunda veya beklenen değeri ifade eder. Bu sayede hata ayıklaması, modellere kıyasla daha kolay ve bu gibi hedeflerin (sıfır bir kayıp, çeşitli menteşe kayıpları vb.) kullanarak sınıflandırmanın doğruluğunu veya sıralama performansını doğrudan optimize edebilirsiniz. Örneğin, Örneğin, eğitimdeki olasılıklar bu programda tahmin edilen olasılıklardan kontrol ederek veya üretim sistemini inceleyerek, bu sapma ortaya çıkarabilirsiniz.
Örneğin, doğrusal, mantıksal veya Poisson regresyonunda ortalama tahmini beklentilerin ortalama bir etikete (1- kalibre edilmiş veya sadece kalibre edilmiş olabilir). Bu, hiç paylaşmadığınız ve algoritmanızın yakınlaştığını gösterir ve bu da yaklaşık olarak genel olarak doğrudur. Her örnek için 1 ya da 0 olan bir özelliğiniz varsa özelliğin 1 olduğu 3 örnek kümesi kalibre edilir. Ayrıca her örnek için 1 olan bir özelliğe sahipse tüm örnekler kümesi kalibre edildi.
Basit modellerde, geri bildirim döngüleriyle başa çıkmak daha kolaydır (bkz. 36. Kural). Genellikle bir karar vermek için şu olasılıksal tahminleri kullanırız: Ör. sıralama beklenen değeri düşüren gönderiler (yani tıklama/indirme olasılığı/vb.) Ancak, hangi modeli kullanacağınıza karar verirken, daha fazla önem taşır (bkz. 27. Kural).
15. Kural: Spam Filtrelemeyi ve Kalite Sıralamasını bir politika katmanında ayırın.
Kalite sıralaması iyi bir şeydir, ancak spam filtreleme bir mücadeledir. Projenin gidişatı boyunca yüksek kaliteli yayınları belirlemek için kullandığınız belgelerin, içeriği yüksek kaliteli yayınları ve yayınlarını bu özelliklere sahip olacak şekilde değiştirecekler. Böylece, kalite sıralamanız, iyi olarak yayınlanan içeriği sıralamaya odaklanmalıdır. inanç. Kalite sıralaması öğrenicisini spam sıralama nedeniyle küçümsememelisiniz. çok. Benzer şekilde, içerik, Kalite'den ayrı ele alınmalıdır. Sıralama. Spam filtrelemesi ise farklı bir konudur. Her şeyin yolunda gittiğinden, gereken özellikler sürekli olarak değişecek. Çoğu zaman sisteme koyduğunuz açık kurallar olacaktır (bir yayında üç spam oyu alır, alamazsanız vb.). Öğrenilen herhangi bir model, veya daha hızlı bir şekilde güncellenecek. çok önemli bir rol oynar.
Bir düzeyde, bu iki sistemin çıktılarının entegre edilmesi gerekecektir. Sakla Arama sonuçlarında spam filtrelerinin büyük olasılıkla daha agresif olması gerektiğini unutmayın. filtrelemeden daha iyi bir yöntemdir. Ayrıca, içeriği kaldırmak spam'dir.
Makine Öğrenimi Aşaması II: Özellik Mühendisliği
Bir makine öğrenimi sisteminin yaşam döngüsünün ilk aşamasında eğitim verilerini öğrenme sistemine içe aktarmak, öz geçmişinizde ve bir sunum altyapısı oluşturmak için en iyi uygulamaları göz önünde bulundurun. Sonra birim ve sistem testleri yapılan, çalışan bir uçtan uca sisteminiz olur, 2. Aşama başlar.
İkinci aşamada kolayca ulaşılabilen birçok meyve bulunur. Çok çeşitli sisteme aktarılabilecek özellikler. Dolayısıyla, ikinci aşamasında mümkün olduğunca fazla özellik kullanmayı içerir. şekilde birleştirmenizi sağlar. Bu aşamada tüm metrikler hâlâ yükseliyor. Pek çok lansman olacak. Bu, herkesin verileri bir araya getirebilecek pek çok mühendisi bir araya öğretmeye çalışacağız.
16. Kural: Lansmanı ve yinelemeyi planlayın.
Şu anda üzerinde çalıştığınız modelin hatta model lansmanını bile durduracağınızı anlarsınız. Dolayısıyla, bu lansmanla kattığınız karmaşıklığın yavaşlayıp yavaşlatacağını düşünün kullanıma sunulmasına karar verebilir. Pek çok ekip ekip üyeleri için en az üç ayda bir yıllardır. Yeni modelleri kullanıma sunmak için üç temel neden vardır:
- Yeni özellikler getiriyorsunuz.
- Normalleştirme ayarlarını yapıyor ve eski özellikleri yeni yöntemlerle birleştiriyorsunuz.
- Hedefi belirliyorsunuz.
Ne olursa olsun, bir modele sevginizi göstermek iyi bir şey olabilir: Verileri gözden geçirmek hem yeni sinyalleri hem de eski, bozuk girin. Bu yüzden, modelinizi oluştururken ekleme veya kaldırmanın ne kadar kolay olduğunu düşünün özellikleri yeniden birleştirebilirsiniz. Yeni bir kopya oluşturmanın ne kadar kolay olduğunu ve doğruluğunu kontrol edin. O yüzden bu işi yapmanın mümkün olup olmadığını paralel olarak çalışan iki veya üç kopya olması gerekir. Son olarak, uygun olup olmadığını kontrol edin. Bu sayede önümüzdeki çeyrekte kazanabilirsiniz.
17. Kural: Öğrenilen özellikler yerine doğrudan gözlemlenen ve bildirilen özelliklerle başlayın.
Bu, tartışmalı bir konu olabilir ancak birçok tehlikeyi önler. İlk Öğrenilen bir özelliğin ne olduğunu açıklayalım. Öğrenilen özellik, harici bir sistem (ör. denetlenmeyen kümeleme) tarafından) veya öğrencinin kendisi tarafından (ör. faktörlü model veya derin öğrenme) kullanılarak. Bunların ikisi de faydalı olabilir ancak birçok sorun yaratabilir. ilk modelde olmamalıdır.
Bir özellik oluşturmak için harici bir sistem kullanıyorsanız, harici sistemin kendi hedefi vardır. Harici sistemin hedefi çok zayıf olabilir bağlantılı olduğunu unutmayın. Harici trafiğin bir anlık görüntüsünü, sisteminiz güncelliğini yitirebilir. Özellikleri yoksa anlamlar değişebilir. Harici bir sistem kullanıyorsanız Ancak bu yaklaşıma çok fazla dikkat etmeniz gerektiğini unutmayın.
Çarpanlara dayalı modeller ve derin modellerle ilgili temel sorun, modelin dışbükey olmayan Dolayısıyla, optimum çözümün tüm sistem bulunur veya her iterasyonda bulunan yerel minimum değer, yardımcı olur. Bu varyasyon, bir dönüşümün etkisinin anlamlı veya rastlantısal bir değişikliktir. mükemmel bir temel performans elde edebilirsiniz. Bundan sonra bağlantı kurmak için daha ezoterik yaklaşımları deneyebilirsiniz.
18. Kural: Farklı bağlamlarda genel hatlarıyla içerik özelliklerini kullanarak araştırma yapın.
Makine öğrenimi sistemi, genelde çok daha büyük bir resmin küçük bir parçasıdır. Örneğin, Örneğin, Popüler Olanlar bölümünde kullanabileceğiniz bir yayın Bir yayın daha "Ne?" bölümünde gösterilmeden önce +1'ler, yeniden paylaşım veya yorum yapan kullanıcılar Sıcak. Öğrenciye bu istatistikleri sağlarsanız kullanıcı, yeni gönderilerin ve hiçbir veri içermediğinden emin olun. YouTube'daki Sıradaki Video özelliği, izlenme sayısını veya izlenme (izlenen bir videonun kaç kez diğerinin izlendiğinin (izlenenler) YouTube aramasından. Müstehcen içerik de kullanabilirsiniz kullanıcı puanları. Son olarak, etiket olarak kullandığınız bir kullanıcı işleminiz varsa dokümandaki işlemi farklı bir bağlamda görmek, harika bir yer özelliğini kullanabilirsiniz. Tüm bu özellikler, bağlama yeni içerikler eklemenize olanak tanır. Bunun kişiselleştirmeyle ilgili olmadığını unutmayın: Birisinin içeriği beğenip beğenmediğini belirleyin bu bağlamda daha sonra kimlerin daha çok veya daha az sevdiğini belirleyin.
19. Kural: Mümkün olduğunda oldukça spesifik özellikleri kullanın.
Tonlarca veri sayesinde, milyonlarca basit özelliği öğrenmek bir bir sürü özellik içeriyor. Alınan belgelerin tanımlayıcıları ve standartlaştırılmış sorgular fazla genelleme sağlamaz ancak başlık sorgularındaki etiketlerinizle sıralama. Bu nedenle, riskleri ve riskleri ele almak için her özelliğin verilerinizin çok küçük bir bölümü için geçerli olduğu, ancak genel kapsam %90'ın üzerinde. Normalleştirmeyi kullanarak özellikleri inceleyelim.
20. Kural: Kullanıcıların anlayabileceği şekillerde yeni özellikler oluşturmak için mevcut özellikleri birleştirin ve değiştirin.
Özellikleri birleştirmenin ve değiştirmenin çeşitli yolları vardır. Makine öğrenimi TensorFlow gibi sistemleri kullanarak verilerinizi dönüşümler hakkında daha fazla bilgi edinin. En standart iki yaklaşım, “ayrıklaştırma”dır ve "artılar".
Ayrıklaştırma, sürekli bir özellik alıp, o özellik için sürekli bir araya getirmektir. Yaş gibi devamlı bir özelliği düşünün. Şunları yapabilirsiniz: yaş 18'den küçük olduğunda 1 olan bir özellik, 1, örneğin 18 ile 35 arasında olduğu durumlar için geçerlidir. Sınırlamaları fazla düşünmeyin en büyük etkiyi temel yüzdelik dilimler sağlayacağız.
Çaprazlar, iki veya daha fazla özellik sütununu birleştirir. TensorFlow'da bir özellik sütunu bir dizi homojen özellik kümesidir (ör. {male, female}, {US, Kanada, Meksika} vb.) kullanılabilir. Artı işareti, örneğin, {male, female} × {US,Canada, Mexico}. Bu yeni özellik sütunu 'i içerir (erkek, Kanada). TensorFlow kullanıyorsanız ve TensorFlow'a sizin için bu haçı oluşturmasını söylerseniz, bu (erkek, Kanada) özellik Kanadalı erkekleri temsil eden örneklerde yer almalısınız. Bu sayının çok büyük ve üç, dört veya daha fazla tabana sahip modelleri öğrenmek için veri miktarları özellik sütunlarını seçin.
Çok büyük özellik sütunları oluşturan çarpılar üzerine sığabilir. Örneğin, bir arama yaptığınızı varsayalım. Bir özellik sütununuz var kelime içeren bir özellik sütununuz varsa uygulayacaksınız. Bunları bir çarpı işaretiyle birleştirebilirsiniz, ancak elde ettiğiniz (bkz. 21. Kural).
Metinle çalışırken iki alternatiften yararlanabilirsiniz. En acımasızca bir nokta çarpım. En basit biçimiyle nokta çarpımı, basit bir şekilde ortak kelimeler kullanmanız gerekir. Bu özellik, daha sonra bir niteliğe sahip. Diğer bir yaklaşım ise kesişimdir. Dolayısıyla, karşımıza bir özellik çıkacak. Yalnızca "midilli" kelimesi hem dokümanda hem de olan bir diğer özellik ise yalnızca "the" kelimesi içinde hem belge hem de sorgu.
21. Kural: Doğrusal bir modelde öğrenebileceğiniz özellik ağırlıklarının sayısı, sahip olduğunuz veri miktarıyla yaklaşık olarak orantılıdır.
İstatistiksel açıdan başarılı olmak için istatistiksel öğrenme teorisi uygun karmaşıklık seviyesindedir ama bu kural, bilmeniz gerekir. Kullanıcıların bu konuda şüphe duyduğu binlerce örnekten herhangi bir şey öğrenilebilir veya çok fazla örneğe gerek vardır. Çünkü bunlar belirli bir yöntemde önemli bir unsur. Önemli olan, öğrenmenizi verilerinizin boyutuna göre ölçeklendirmektir:
- Arama sıralama sistemi üzerinde çalışıyorsanız ve farklı kelimelerin sayısını 1000 bir nokta çarpımından elde edilen ürün ile ve sorgu özellikleri, TF-IDF ve yarım düzine başka insan tarafından geliştirilmiş özellikleri. 1000 örnek, bir düzine özellik.
- Milyonlarca örneğiniz varsa bu belgeyle sorguyu kesişin. özellik sütunlarını kullanarak, normalleştirme ve muhtemelen özellik seçimi gibi ek özelliklerden yararlanabilirsiniz. Bu size milyonlarca özellik sunar ancak normalleştirmeyle daha az olacaktır. On milyon örnek, belki yüz bin özellik.
- Milyarlarca, hatta yüz milyarlarca örneğiniz varsa, bu örneklerle belge ve sorgu jetonları içeren özellik sütunlarını, özellik seçimini kullanarak yardımcı olur. Elinizde bir milyar örnek ve 10 milyon özellikleri. İstatistiksel öğrenme teorisi nadiren dar sınırlar koyar, ancak çok iyi bir rehber olarak düşünebilirsiniz.
Son olarak, 28. Kural karar vermekte fayda var.
22. Kural: Artık kullanmadığınız özellikleri temizleyin.
Kullanılmayan özellikler teknik borç oluşturur. Bir çalışmayan bir özellik olduğunu düşünüyorsanız bunu altyapınızdan kaldırır. Altyapınızı temiz tutmak istersiniz. olabildiğince hızlı test edilebilmesini sağlamak için çalışıyoruz. Eğer özelliğinizi her zaman geri ekleyebilir.
Hangi özellikleri ekleyeceğinizi veya saklayacağınızı düşünürken kapsamı göz önünde bulundurun. Kaç tane? örneği olur mu? Örneğin, web sitesi ancak kullanıcılarınızın yalnızca% 8'inde herhangi bir kişiselleştirme özelliği bulunuyor. çok etkili olmayacaktır.
Aynı zamanda, bazı özellikler ağırlıklarının üzerinde çok etkili olabilir. Örneğin, verilerin yalnızca% 1'ini, ancak örneklerin% 90'ını olumlu bir yanılgı varsa, eklemek harika bir özellik olur.
Sistemin İnsan Analizi
Makine öğreniminin üçüncü aşamasına geçmeden önce, herhangi bir makine öğrenimi sınıfında öğretilmeyen bir şeye odaklanın: mevcut bir modele bakıp onu iyileştirmektir. Bu, sunumdan çok bir sanat bilim olsa da kaçınılması gereken çeşitli anti kalıplar vardır.
23. Kural: Sıradan bir son kullanıcı değilsiniz.
Ekibin tıkanmasının en kolay yolu bu olabilir. Paydaşlarla (ekibiniz dahilinde bir prototip kullanarak) deneme yapmanın birçok avantajı ve test etmek için (şirketinizde bir prototip kullanarak) çalışan olup olmadığını kontrol edin. Bariz şekilde kötü olan bir değişiklik, kullanılmamalıdır. Üretime yakın görünen her şey ya da uzman olmayan kişilere bir e-posta göndererek veya gerçek kullanıcılar üzerinde yapılan canlı bir deneyimle kullanılabilir.
Bunun iki nedeni vardır. Birinci neden, bulunduğunuz yerin girin. Yayınların belirli bir yönünü arıyor olabilirsiniz ya da (ör. doğrulama önyargısı) duygusal açıdan çok fazla kapsayıcıdır. İkincisi ise zamanınız çok değerlidir. Tek seferde dokuz mühendisin maliyetini ve kaç sözleşmeli insan plak şirketinin bir bir platformdur.
Kullanıcı geri bildirimi almayı gerçekten istiyorsanız kullanıcı deneyiminden yararlanın metodolojilerini inceleyeceğiz. Kullanıcı karakterleri oluşturun (açıklamalardan biri Bill Buxton’ın Kullanıcı Deneyimlerini Çizim) erken aşamada yapılması ve kullanılabilirlik testleri (bir Steve Krug'un Beni Düşünmeye Karar Verme) daha sonra. Kullanıcı karakterleri varsayımsal bir kullanıcı oluşturmayı içerir. Örneğin ekibiniz hep erkeklerden oluşuyorsa 35 yaşındaki bir kadın kullanıcı karakteri tasarlamaya yardımcı olabilir (kullanıcının özellikleri) ve her reklamveren için 10 sonuç yerine oluşturduğu 25-40 yaş arası erkekler. Tepkilerini izlemeleri için gerçek kişileri bir araya getirmek kullanılabilirlik testinde sitenizin (yerel veya uzaktan) kullanımı da çok önemli.
24. Kural: Modeller arasındaki deltayı ölçün.
Önceden yapabileceğiniz en kolay ve bazen en yararlı ölçümlerden biri sizin yeni modelinize bakanların tümü, modelin ne kadar farklı yeni sonuçlar üretimden geliyor. Örneğin, sıralamayla ilgili bir sorununuz varsa, her iki modeli de sistem genelinde bir sorgu örneği üzerinde çalıştırın ve sonuçların simetrik farkının boyutu (sıralamaya göre ağırlıklandırılmıştır) pozisyon). Aradaki fark çok küçükse, çalıştırmadan da olacaktır. Aradaki fark çok değişikliğin iyi bir şey olduğundan emin olmak istersiniz. Bakıyor yüksek olan simetrik farkın yüksek olduğu sorguları, bu metrik, nitel açıdan bakın. Bununla birlikte, sistemin kararlı hale getirebilirsiniz. Kendisiyle karşılaştırıldığında bir modelin düşük (ideal olarak) sıfır) simetrik fark.
25. Kural: Model seçerken, kullanışlı performans, tahmine dayalı güçten daha önceliklidir.
Modeliniz, tıklama oranını tahmin etmeye çalışabilir. Ancak nihayetinde temel bu tahminle ne yapacağınız. Sıralama için kullanıyorsanız bir sonuç elde ederseniz, nihai sıralamanın kalitesi, tahmine dayalıdır. Bir belgenin spam olma olasılığını tahmin ederseniz bir kesme işlemi yapmak, daha sonra izin verilen ve daha iyi anlamanızı sağlar. Çoğu zaman bu iki unsurun, anlaşmaya varmadıklarında ise büyük olasılıkla küçük bir kazanç olacaktır. Dolayısıyla, günlük kaybını iyileştiren ancak performansı düşüren başka bir özellik arayın. Bu tür durumlar daha sık yaşanmaya başlandığında modelinizin hedefini tekrar gözden geçirmenin zamanı geldi.
26. Kural: Ölçülen hatalarda kalıplar arayın ve yeni özellikler oluşturun.
Modelin "yanlış" olduğunu gösteren bir eğitim örneği gördüğünüzü varsayalım. bir sınıflandırma görevi görüyorsanız bu hata yanlış pozitif veya yanlış negatif olabilir. Sıralama görevinde hata, pozitif bir değerin daha düşük olduğu bir çift olabilir daha yüksek bir değer sağlar. En önemli nokta şu: Bu, yalnızca makine öğrenimi sisteminin hatalı olduğunu bilir ve fırsat. Modele hatayı düzeltmesine olanak tanıyan bir özellik verirseniz modeli kullanmaya çalışır.
Diğer yandan, örneklere dayalı bir özellik oluşturmaya çalışırsanız hata olarak görmezse söz konusu özellik yoksayılır. Örneğin, Play Apps Arama'da bir kullanıcının "ücretsiz oyunlar" araması yaptığını varsayalım. Diyelim ki en iyi sonuçlardan biri daha az alakalı bir şaka uygulaması. Bu nedenle, ekibiniz için "eğlendirme uygulamaları". Ancak yükleme sayısını ve kullanıcı sayısını "Eğlendirme uygulamaları" veya "eğlendirme uygulamaları" aradıklarında detay istediğiniz etkiye sahip olmaz.
Modelin yanlış olduğuna dair örnekleriniz olduğunda veya mevcut özellik grubunun dışında. Örneğin, sistem henüz yayınların sıralamasını düşürme ve ardından gönderi uzunluğunu ekleme. Anahtar kelimelerin daha fazla bilgi edineceksiniz. Gönderi uzunluğu ekleyecekseniz ne kadarlık bir anlamına gelir. Tek yapmanız gereken bir düzine özellik eklemektir. daha fazla bilgi edinin ( 21. Kural ) tabi olacaktır. İstediğinizi elde etmenin en kolay yolu budur.
27. Kural: Gözlemlenen istenmeyen davranışları ölçmeye çalışın.
Ekibinizin bazı üyeleri, ekibin sahip olduğu özellikleri ve mevcut kayıp işlevi tarafından yakalanmayan türde bir sistemdir. Kuyruklu a işareti hislerini sağlam ve güvenilir bir hale getirmek için numaraları'na dokunun. Örneğin, "öğrenme uygulaması" sayısının çok fazla olduğunu düşünüyorsa gösteriliyor kullanıcıları Play Arama'da değerlendirdiklerinde, gerçek kişilerden oluşan değerlendirme ekiplerinin eğlence uygulamalarını tespit etmesini sağlayabilirler. ( daha küçük bir boyuta sahip olduğundan, bu örnekte insan etiketli veriler kullanılabilir trafiğin büyük bir bölümünü oluşturan sorgulardır.) Eğer bunları ölçülebilir özellikler, hedefler, hedefler ve kullanabilirsiniz. Genel kural, "önce ölç, sonra optimize et" şeklindedir.
28. Kural: Aynı kısa vadeli davranışın, uzun vadede aynı davranışı ima etmediğine dikkat edin.
Her doc_id ve full_query videolarına bakan yeni bir sisteminiz olduğunu düşünün ve ardından her sorgu için her doküman için tıklama olasılığını hesaplar. Sisteminizin her iki sistemde de mevcut sisteminizle neredeyse aynı olduğunu ve A/B testi ile uygulamalısınız. Bu basitlik sayesinde, ürünü Ancak hiçbir yeni uygulamanın gösterilmediğini fark ediyorsunuz. Neden? YouTube'da sistem bir dokümanı yalnızca bu sorguyla kendi geçmişine göre gösterirse, farklı bir yöntem vardır.
Böyle bir sistemin uzun vadede nasıl çalışacağını anlamanın tek yolu, yalnızca model yayındayken edinilen verilerle eğitilir. Bu, zor olabilir.
Antrenman-Servis Çarpması
Eğitim sunmadaki sapma, eğitim sırasındaki performans ile performansı gösterir. Bu sapma aşağıdaki nedenlerden kaynaklanabilir:
- Eğitim ve sunum ardışık düzenlerinde verileri işleme şekliniz arasında tutarsızlık.
- Eğitiminiz ve hizmet verdiğiniz zaman arasında verilerde değişiklik olması.
- Modeliniz ve algoritmanız arasında bir geri bildirim döngüsü.
Google'da üretim makine öğrenimi sistemlerinin eğitim ve performansı olumsuz yönde etkileyen sapmaları. En iyi çözüm sistem ve veri değişikliklerinin sapmalara yol açmaması için fark ettim.
29. Kural: Sunum yaptığınız şekilde eğitim aldığınızdan emin olmanın en iyi yolu, sunum sırasında kullanılan özellik grubunu kaydetmek ve ardından bu özellikleri eğitim sırasında kullanmak üzere bir günlüğe kaydetmektir.
Bunu her örnek için yapamasanız bile küçük bir kesir için yapın. sunum ve eğitim arasındaki tutarlılığı doğrulayabilmek için ( 37. Kural). Bunu yapan ekipler Google'daki ölçümler bazen sonuçlardan şaşırtıcı oluyordu. YouTube ana sayfası sunum sırasında kayda değer kalitede günlük kaydı özelliklerine geçildi ve kod karmaşıklığında azalmayla birlikte, birçok ekip de onların altyapılarını takip etmeyi.
30. Kural: Önem ağırlığında örneklenmiş veriler; rastgele bırakmayın!
Çok fazla veriniz olduğunda 1-12 arasındaki dosyaları almak cazipdir. 13-99 arasındaki dosyaları yoksayın. Bu yanlıştır. Her ne kadar gösterilmeyebilir. Önem ağırlıklandırması, yalnızca kullanıcının hiçbir zaman mola vermektir. Önem ağırlıklandırması, bir ara hedefe ulaşmaya karar verirseniz örnek X'i% 30 olasılıkla, 10/3 ağırlığında kullanın. Şununla kalibrasyon özelliklerinin birinci dereceden düşük olması 14. Kural koruyabilirsiniz.
31. Kural: Eğitim ve sunum zamanında bir tablodaki verileri birleştirirseniz tablodaki verilerin değişebileceğine dikkat edin.
Doküman kimliklerini, bu dokümanlara ait özellikleri içeren bir tabloyla birleştirdiğinizi varsayalım (ör. sayısına göre belirlenir. Eğitim ve sunum arasında tablo değiştirilebilir. Modelinizin aynı doküman için yaptığı tahmin eğitim ile sunum arasında bir fark var. Bu tür sonuçlardan kaçınmanın en kolay yolu sorunlarından biri, özellikleri sunum sırasında günlüğe kaydetmektir ( 32. Kural ) tabi olacaktır. Tablo değişse bile o zaman anlık görüntü almak için tablonun saatlik veya günlük makul ölçüde yakın olduğunu gösteren verilerdir. Bunun yine de .
32. Kural: Mümkün olduğunda kodu eğitim ardışık düzeniniz ve sunum ardışık düzeniniz arasında yeniden kullanın.
Toplu işlem, online işlemeden farklıdır. Online işlemede, her isteği geldikçe işlemeniz gerekir (ör. her istek için ayrı bir arama her sorgu için ayrı ayrı), toplu işlemde ise görevleri (ör. bir birleştirme işlemi). Sunum sırasında siz online işlem yaparsınız, bir toplu işlem görevidir. Ancak, görüşme sırasında yapabileceklerinizden bahsedeceğim. Örneğin, şöyle bir nesne oluşturabilirsiniz: herhangi bir sorgunun veya birleştirme işleminin sonucunun kullanıcı tarafından okunabilecek şekilde saklanır ve hatalar kolayca test edilebilir. Ardından, sunum ya da eğitim sırasında tüm bilgileri topladıktan sonra tarafından okunabilen nesne arasında köprü oluşturmak için makine öğrenimi sistemini nasıl biçimlendirdiği önemli değil, beklentilerin karşılanmasını sağlar. Bu sayede eğitim sunma sürecindeki sapmalar ortadan kalkar. Kullanıcı Bu nedenle, eğitim programları arasında iki farklı programlama dili yardımcı olur. Bu kararı vermeniz durumunda, projenizi girin.
33. Kural: 5 Ocak'a kadar verilere dayalı bir model oluşturursanız modeli 6 Ocak ve daha sonrasına ait veriler üzerinde test edin.
Genel olarak, verilerden sonra toplanan veriler üzerinde bir modelin performansını ölçün Bu, sisteminizin plandaki görevleri daha iyi yansıtması için çok önemlidir. 5 Ocak'a kadar verilere dayalı bir model oluşturursanız model üzerinde çalışıyor. Performansın, kampanyalarınızın yeni verilerde o kadar iyi olmayacaktır, ancak son derece kötü de olmamalıdır. Günlük etkiler görülebileceğinden, ortalama tıklama sayısını oranı veya dönüşüm oranını gösterir, ancak eğrinin altındaki alan Olumlu örneğe olumsuz puandan daha yüksek bir puan verme olasılığı makul ölçüde yakın olmalıdır.
34. Kural: Filtreleme için ikili sistem sınıflandırmasında (spam algılama veya ilginç e-postaları belirleme gibi), çok temiz veriler elde etmek için performanstan kısa süreli küçük tavizler verin.
Filtreleme görevinde, negatif olarak işaretlenen örnekler kullanıcılara gösterilmez. gösterir. Negatif örneklerin% 75'ini engelleyen bir filtreniz olduğunu varsayalım. yardımcı oluyor. Veri tabanından ek eğitim verileri çekmek isteyebilirsiniz. örnek olarak gösterilebilir. Örneğin, kullanıcı bir e-postayı spam olarak işaretlerse bundan bir şeyler öğrenmek isteyebilirsiniz.
Ancak bu yaklaşımda örnekleme yanlılığı vardır. Aşağıdaki durumlarda daha temiz veriler toplayabilirsiniz: Bunun yerine, tüm trafiğin% 1'ini "bekletme" olarak etiketler ve tüm trafiğin kullanıcıya örnekler gösterdi. Şimdi filtreniz, reklamların en az% 74'ünü olumsuz örnekler verilebilir. Gösterilen bu örnekler, eğitim verileriniz olabilir.
Filtreniz negatif örneklerin% 95'ini veya daha fazlasını engelliyorsa, bu filtrenin bu yaklaşım daha az uygulanabilir hale gelir. Yine de reklam sunma süresini ölçmek isterseniz daha küçük bir örnek oluşturabilirsiniz (örneğin% 0,1 veya %0,001). On performansı doğru bir şekilde tahmin etmek için bin örnek yeterli olur.
35. Kural: Sıralama sorunlarındaki doğal sapmalara dikkat edin.
Sıralama algoritmanızı, farklı sonuçlara ulaşmaya yetecek kadar radikal bir şekilde değiştirdiğinizde, algoritmanızın kaldıracağı verileri etkili bir şekilde değiştirdiğinizden ileride göreceğiz. Bu tür bir sapma ortaya çıkar ve bunu yapmak için modelimiz olabilir. Birçok farklı yaklaşım vardır. Bu yaklaşımlar modelinizin daha önce gördüğü verilere öncelik vermek için tüm yöntemleri kullanabilirsiniz.
- Google Analytics 4'e kıyasla daha fazla sorguyu kapsayan özelliklerde yalnızca tek bir sorgu için açık olan bu özellikleri kullanabilirsiniz. Bu sayede model, bir veya birkaç sorguya özgü özelliklerdir. tüm sorgulara geneller. Bu yaklaşım, aşırı popülerlik durumlarının önüne ve alakasız sorgulara sızdırılmasını önler. Bunun, özellik sütunlarını daha düzenli hale getirmeye yönelik daha geleneksel bir tavsiye değer katarlar.
- Yalnızca pozitif ağırlıklara sahip özelliklere izin ver. Dolayısıyla, iyi bir özellik, "bilinmeyen” bir özellikten daha iyi olduğunu hatırlatırız.
- Yalnızca belge oluşturma özellikleri yoktur. 1 numaralı maddenin ekstrem bir versiyonudur. Örneğin, Örneğin, belirli bir uygulama popüler bir indirme olsa bile her yerde gösterilmesini istemezsiniz. Yalnızca belge içeren değil bu sürecin basitleştirilmesini sağlıyor. Belirli bir bilgi gösterilmesini istememenizin nedeni her yerde popüler olan uygulamanın sahip olduğu erişilebilir hale getirebilirsiniz. Örneğin, bir kullanıcı "kuş izleme uygulaması" ile başlıyorsa "kızgın kuşları" indirebilir, ancak değildi. Böyle bir uygulamayı göstermek indirme oranını artırabilir ancak kullanıcının ihtiyaçlarını nihayetinde karşılamaz.
36. Kural: Konumlandırma özellikleri içeren geri bildirim döngülerinden kaçının.
İçeriğin konumu, kullanıcının etkileşime geçme olasılığını önemli ölçüde etkiler gerçekleşebilir. Bir uygulamayı ilk konuma yerleştirirseniz uygulama daha sık tıklanır. tıklama olasılığının daha yüksek olduğuna ikna olursunuz. Paydaşlarla başa çıkmanın Bu işlem, konuma ilişkin özellikler (ör. cihazın konumu ile ilgili özellikler) daha iyi olur. Modelinizi konum özellikleriyle eğitirsiniz ve bu da ağırlıklandırmayı öğrenir. Örneğin, "1stposition" ciddi şekilde ele alacağız. Modeliniz bu nedenle, "1stposition=true" değerine sahip örnekler için diğer faktörlere daha az ağırlık verir. Daha sonra, sunum sırasında hiçbir örneğe konumlandırma özelliğini tüm adaylara aynı varsayılan özellikte sahip olacaktır, çünkü siz reklamların gösterileceği sıraya karar vermiş olmalıdır.
Konum özelliklerini eğitim ve test arasındaki bu asimetri nedeniyle modelin geri kalanına uygulanır. Modelin, konumsal özelliklerin bir fonksiyonu ile işlevleri idealdir. Örneğin, konum özellikleri sunar.
37. Kural: Eğitimi/Servis Çarpımını ölç.
En genel anlamda sapmaya neden olabilecek birkaç şey vardır. Ayrıca, raporu birkaç bölüme ayırabilirsiniz:
- Eğitim verilerindeki performans ve muhafaza performansı arasındaki fark dışı verilerdir. Genel olarak bu her zaman vardır ve her zaman kötü değildir.
- Muhafaza verilerindeki performans ile "sonraki gün" arasındaki fark dışı verilerdir. Bu ifadenin her zaman olacağını hatırlatmak isteriz. Normalleştirmenizi sonraki gün performansını artırmak için kullanılır. Ancak performansta büyük düşüşler ve sonraki güne ait veriler arasında, bazı özelliklerin devre dışı bırakıldığını veya model performansını düşürebilir.
- "Sonraki gün" performansı arasındaki fark canlı veriler ve canlı dışı verilerdir. Eğitim verilerindeki bir örneğe bir model uygularsanız ve ilettiğimizde tam olarak aynı sonucu verir (bkz. 5. Kural ) tabi olacaktır. Dolayısıyla, buradaki tutarsızlık büyük olasılıkla bir mühendislik hatası olduğunu gösterir.
Makine Öğrenimi Aşama III: Yavaş Büyüme, Optimizasyonu İyileştirme ve Karmaşık Modeller
İkinci aşamanın sona ermek üzere olduğuna dair belirli göstergeler olacaktır. Öncelikle, aylık kazancınız azalmaya başlayacak. Paydaşların ihtiyaçlarını görebilirsiniz. Bazı metriklerde bazı artışlar ve diğerlerinin düştüğünü görürsünüz denemeler yapabilirsiniz. İşin ilginç kısmı burası. Kazançlar daha zor olduğu için makine öğreniminin de daha gelişmiş olması gerekir. Uyarı: bu bölümünde, önceki bölümlere göre daha fazla mavi gökyüzü kuralı bulunuyor. Pek çok takımın makine öğreniminin 1. ve 2. aşamanın eğlenceli dönemlerinden geçtik. Bir Aşama III.'ye ulaşıldı, ekipler kendi yollarını bulmak zorunda.
38. Kural: Sorun, uyumsuz hedefler haline geldiyse yeni özellikler için zaman kaybetmeyin.
Ölçümleriniz durağanlaştıkça, ekibiniz hâlâ mevcut olmayan sorunlara bakmaya mevcut makine öğrenimi sisteminizin hedeflerinin kapsamı dışında kalmalıdır. Farklı Ancak daha önce belirtildiği gibi, ürün hedefleri mevcut algoritmik hedefinizi ya da ürün hedeflerinizi değiştirmeniz gerekir. Örneğin, tıklamaları, artı birleri veya indirmeleri optimize edebilir, ancak temel alınan kararların verilmesidir.
39. Kural: Lansman kararları, uzun vadeli ürün hedeflerinin bir göstergesidir.
Aylin, yüklemeleri tahmin etmede lojistik kaybı azaltmak için bir fikir edindi. O özellik ekler. Lojistik kayıplar azalır. Canlı bir deneme yaptığında yükleme oranı artışı olur. Ama bir lansman incelemesine gittiğinde biri günlük etkin kullanıcı sayısının %5 azaldığını belirtiyor. Ekip, modeli kullanıma sunmamaya karar verir. Aylin hayal kırıklığına uğradı ama şimdi lansman kararlarının birden fazla kritere bağlı olduğunu, bunların yalnızca bir kısmının doğrudan makine öğrenimi kullanılarak optimize edilebilir.
Gerçek şu ki gerçek dünya zindanlar ve ejderhalardan ibaret değildir: "İsabet" yoktur puan" belirlemek için çok önemlidir. Ekip, koçluk yaparken sistemin ne kadar iyi performans göstereceğini tahmin edebilmek için toplanan istatistikler daha avantajlı bir konumda olursunuz. Etkileşime önem vermesi gerekir. 1 günlük etkin kullanıcı sayısı (GEKS), 30 GEKS, gelir ve reklamverenin yatırım getirisi. Bu metrikler A/B testlerinde ölçülebilir olması yalnızca daha uzun vadeli bir göstergedir hedefleri: kullanıcıları memnun etme, kullanıcıları artırma, ortakları memnun etme ve kâr, Bu durumda bile yararlı ve yüksek kaliteli bir sunum için proxy ve bugünden itibaren beş yıl sonra büyüyen bir şirket olacak.
Lansman sürecindeki tek kolay karar, tüm metriklerin daha iyi hale geldiği (veya en azından daha da kötüleşmiyor). Ekip, gelişmiş bir makineyi seçme gibi öğrenme algoritması ve basit buluşsal algoritma ile tüm bu metriklerde daha iyi iş çıkarıyorsa buluşsal yöntemi seçmelidir. Ayrıca olası tüm metrik değerlerinin açık bir sıralaması değildir. Özellikle, şu iki senaryoyu bulabilirsiniz:
Deneme | Günlük Etkin Kullanıcı Sayısı | Gelir/Gün |
---|---|---|
A | 1 milyon | 4 milyon ABD doları |
B | 2 milyon | 2 milyon ABD doları |
Mevcut sistem A ise ekibin B'ye geçme olasılığı düşüktür. Eğer mevcut sistem B ise, ekibin A’ya geçme olasılığı düşüktür. Bu mantıksal davranışla çeliştiğini gösteren; ancak değişim tahminleri farklı sonuçlar elde edebilirsiniz. Bu nedenle, belirli bir hedefe ulaşmak için ya da önemli. Her metrik, ekibin ilgilendiği bazı riskleri kapsar.
Dahası, hiçbir metrik ekibin “Ürünüm nerede beş yıl sonra mı olacak?" diye soruyor.
Öte yandan bireyler, daha iyi ulaşabilecekleri bir hedefe optimizasyon yapmasına yardımcı olur. Çoğu makine öğrenimi aracı bu tür bir ortamı tercih eder. mühendisler tarafından yeni özellikleri kullanıma sunmak, böyle bir ortamda sürekli olarak bahsedeceğim. Makine öğrenimi, çok hedefli öğrenme, Bu sorunu ele almaya başlamıştır. Mesela Arkadaş Bitkiler projenizde Her metrikte alt sınırları olan kısıtlama memnuniyeti problemi ve bazı doğrusal metrik kombinasyonlarını optimize eder. Ancak bahsi geçen makine öğrenimi hedefleri olarak çerçevelenebilir: bir belge, içeriğin gösterilmesidir. Ama bir kullanıcının sitenizi neden ziyaret ettiğini anlamak çok daha zordur. Nasıl tahmin edilir? bir sitenin gelecekteki başarısı için Yapay zeka destekli: Bilgisayar kadar zor görme veya doğal dil işleme.
40. Kural: Toplulukları basit tutun.
Ham özellikleri alan ve içeriği doğrudan sıralayan birleşik modeller hata ayıklaması ve anlaşılması en kolay modellerdir. Ancak modeller topluluğu ( "model" daha iyi performans gösterebilir. Saklamak için her model sadece modelin girdisini alan bir veya birçok özelliği (ikisini birden değil) alan bir temel model oluşturabilirsiniz. Mevcut bunları ayrı olarak eğitilmiş diğer modellerin üzerinde birleştirin ve kötü davranışa yol açabilir.
Topluluk için yalnızca "temelinizin" çıkışını alan basit bir model kullanın giriş olarak kullanabilirsiniz. Özellikleri bu birleşik modellerde de uygulamak istiyorsunuz. Örneğin, temel modelin oluşturduğu puandaki artış, takımın puanını düşürebilir. Ayrıca gelen modellerin birbirine çok benzer anlamsal olarak yorumlanabilir (örneğin, kalibre edilmiş) ve temel modeller bütünsel modeli karıştırmaz. Ayrıca, kullanıcının temel sınıflandırıcının tahmin edilen olasılığındaki artış, Topluluğun tahmini olasılığını azaltırsınız.
41. kural: Performans yükseldiğinde, mevcut sinyalleri hassaslaştırmak yerine, eklenecek nitelik açısından yeni bilgi kaynaklarını arayın.
Kullanıcı hakkında bazı demografik bilgiler eklediniz. Birkaç tane eklediniz dokümandaki kelimelerle ilgili bilgi sağlar. Şablonu incelediniz inceleyip normalleştirmeyi ayarladınız. Daha fazla özellik içeren bir lansman görmediniz birkaç çeyrekte temel metriklerinizde% 1'in üzerinde artış görebilirsiniz. Şimdi önemli olan nedir?
Köklü farklılıklar için altyapı oluşturmaya başlamanın zamanı Kullanıcının Google Chrome'da eriştiği dokümanların geçmişi gibi veya farklı bir mülke ait veriler olabilir. Tekliflerinizi otomatikleştirmek ve optimize etmek için viki verileri veya şirketinize özel bir şey (örneğin, Google'ın bilgi grafiği). Derin kullan ele alacağız. Elde edeceğiniz getiriyle ilgili beklentilerinizi değiştirmeye başlayın. ve çalışmalarınızı buna göre genişletin. Herhangi bir bir mühendislik projesi üzerinde çalışırken, yeni özellikler eklemenin daha da karmaşık hale getirmenin maliyetine değinmelisiniz.
42. Kural: Çeşitliliğin, kişiselleştirmenin veya alaka düzeyinin, popülerliğinizle doğru orantılı olmasını beklemeyin.
Bir içerik kümesindeki çeşitlilik, içeriğin çeşitliliğiyle birlikte en yaygın olanlardan biri olduğu için empati gösterebilirsiniz. Kişiselleştirme, kullanıcı kendi sonuçlarını alır. Alaka düzeyi, belirli bir sorgu için sonuçların belirli bir bu sorgular için diğerlerine göre daha uygundur. Bu nedenle, bu özellikler sıradan özelliklerden farklı olarak tanımlanır.
Sorun şu ki, sıradan uygulamalar kolay tercih edemiyor.
Sisteminiz tıklama sayısını, harcanan süreyi, izleme sayısını, +1'leri, paylaşım sayısı gibi durumlarda içeriğin popülerliğini ölçersiniz. Ekipler bazen çeşitlilik içeren kişisel bir model öğrenmeye çalışırlar. Kişiselleştirme için kişiselleştirmesini sağlayan özellikler ( veya çeşitlendirmek (bu dokümanda herhangi bir içerik bulunup bulunmadığını gösteren döndürülen diğer dokümanlarla ortak özellikler (ör. yazar veya içerik) ve bu özelliklerin daha az ağırlık aldığını (veya bazen farklı bir işaret oluşturduğunu) beklentilerinden daha iyi anlaşılabilir.
Bu durum çeşitlilik, kişiselleştirme veya alaka düzeyinin değerli olmadığı anlamına gelmez. Önceki kuralda belirtildiği gibi, GCLID'nin kampanya performansını artırmak için tespit edebiliyorlar. Daha uzun vadeli hedeflerde artış görürseniz popülerlik dışında çeşitliliğin/alaka düzeyinin de değerli olduğunu iddia etmek. Şunları yapabilirsiniz: kullanarak işleme son sürecinizi kullanmaya devam edin veya bir hedef belirlememiz gerekir.
43. Kural: Arkadaşlarınız genellikle farklı ürünlerde aynıdır. İlgi alanlarınız genelde aynı değil.
Google'daki ekipler, dönüşüm oranlarını tahmin edebilen bir model bir bağlantıda yakınlık ve başka bir üründe iyi çalışması. Arkadaşlarınız onlar gibidir. Öte yandan, yakın zamanda birçok takımın ürün dağılımında kişiselleştirme özellikleriyle ilgili sorun yaşıyorduk. Evet, görünüşe göre bu şekilde çalışıyor. Şimdilik pek de öyle görünmüyor. Bazen nelerin iyi gittiğini, bir mülkteki ham verilerin diğer bir mülkteki davranışları tahmin etmek için kullanılmasıdır. Ayrıca, Unutmayın, bir kullanıcının başka bir mülkte geçmişi olduğunu bile yardım. Örneğin, iki üründe kullanıcı etkinliğinin varlığı gösterge niteliğindedir.
İlgili Çalışmalar
Google'da ve Google dışında makine öğrenimiyle ilgili birçok belge bulunmaktadır.
- Makine Öğrenimi Hızlandırılmış Kursu: uygulamalı makine öğrenimine giriş.
- Makine Öğrenimi: Olası Bir Yaklaşım (Kevin Murphy) tarafından ortaya koyduk.
- İyi Veri Analizi: veri bilimi yaklaşımıyla yaklaşımından ortaya çıktı.
- Derin Öğrenme - Ian Goodfellow ve diğerleri (doğrusal olmayan modellerin öğrenilmesi) için yaptığı araştırmayı kullandılar.
- Google makalesi teknik borç, tavsiyeler.
- Tensorflow Belgeleri.
Teşekkür
David Westbrook, Peter Brandt, Samuel Ieong, Chenyu Zhao, Li Wei, Michalis Potamias, Evan Rosen, Barry Rosenberg, Christine Robson, James Pine, Tül Şahin, Tushar Chandra, Mustafa Ispir, Jeremiah Harmsen, Konstantinos Katsiapis, Glen Anderson, Dan Duckworth, Shishir Birmiwal, Gal Elidan, Su Lin birçok düzeltme için Wu, Jaihui Liu, Fernando Pereira ve Hrishikesh Aradhye, öneriler ve bu doküman için yararlı örnekler. Ayrıca, Kristen'a da Lefevre, Suddha Basu ve Chris Berg, daha önceki bir sürümde yardımcı oldu. Herhangi biri veya popüler olmayan görüşler bana ait.
Ek
Bu dokümanda Google ürünlerine ilişkin çeşitli referanslar bulunmaktadır. Alıcı: daha fazla bağlam sağlar. Bunun için en yaygın örneklerden ve bölümüne göz atın.
YouTube'a Genel Bakış
YouTube bir video yayını hizmetidir. Hem YouTube sıradaki video hem de YouTube ana sayfası Sayfa ekipleri, video önerilerini sıralamak için makine öğrenimi modellerini kullanır. "Sıradaki video" önerileri oynatıldıktan sonra izlenebilecek videolar var. Ana Sayfa ise ve ana sayfaya göz atan kullanıcılara gösterir.
Google Play'e Genel Bakış
Google Play'de çeşitli sorunları çözen birçok model vardır. Play Arama, Play Ana Sayfadaki Kişiselleştirilmiş Öneriler ve "Kullanıcılar Şunları da Yükledi" uygulamalarının tümü bir ekiple çalışıyorum.
Google Artı'ya Genel Bakış
Google Plus, makine öğreniminden çeşitli durumlarda yararlandı: "akış" "Popüler Olanlar" sıralamasında kullanıcının gördüğü yayınların sayısı gönderiler (yayınlar popüler kişiler) ayırıyoruz. Google Artı 2019'da tüm kişisel hesaplar kapatıldı ve yerini Google Currents aldı .