Bağlam ve eylemler

Önemli

20 Eylül 2023 tarihinden itibaren yeni Kişiselleştirme kaynakları oluşturamayacaksınız. Kişiselleştirme hizmeti 1 Ekim 2026'da kullanımdan kaldırılıyor.

Kişiselleştirme, uygulamanızın belirli bir bağlamda kullanıcılara göstermesi gerekenleri öğrenerek çalışır. Bağlam ve eylemler, Kişiselleştirme'ye geçirdiğiniz en önemli iki bilgi parçasıdır. Bağlam, geçerli kullanıcı veya sisteminizin durumu hakkında sahip olduğunuz bilgileri temsil eder ve eylemler de seçilecek seçeneklerdir.

Bağlam

Bağlam bilgileri her uygulamaya ve kullanım örneğine bağlıdır, ancak genellikle aşağıdakiler gibi bilgiler içerebilir:

  • Kullanıcınızla ilgili demografik bilgiler ve profil bilgileri.
  • Kullanıcı aracısı gibi HTTP üst bilgilerinden ayıklanan veya IP adreslerine dayalı ters coğrafi aramalar gibi HTTP bilgilerinden türetilen bilgiler.
  • Haftanın günü, hafta sonu veya değil, sabah veya öğleden sonra, tatil sezonu veya değil gibi geçerli saatle ilgili bilgiler.
  • Konum, hareket veya pil düzeyi gibi mobil uygulamalardan ayıklanan bilgiler.
  • Bu kullanıcının en çok görüntülediği film türleri gibi kullanıcıların davranışlarının geçmiş toplamları.
  • Sistemin durumu hakkında bilgi.

Uygulamanız, bağlam hakkındaki bilgileri sahip olabileceğiniz ilgili veritabanlarından, algılayıcılardan ve sistemlerden yüklemekten sorumludur. Bağlam bilgileriniz değişmezse, Sıralama API'sine göndermeden önce uygulamanıza bu bilgileri önbelleğe almak için mantık ekleyebilirsiniz.

Eylemler

Eylemler, seçeneklerin listesini temsil eden bir listedir.

Sıralama eylemleri sırasında 50'den fazla eylem göndermeyin. Her seferinde aynı 50 eylem olabilir veya değişebilirler. Örneğin, bir e-ticaret uygulaması için 10.000 öğeden oluşan bir ürün kataloğunuz varsa, bir müşterinin beğenebileceği ilk 40 öğeyi belirlemek için bir öneri veya filtreleme altyapısı kullanabilir ve geçerli bağlam için en çok ödülü oluşturacak olanı bulmak için Kişiselleştirici'yi kullanabilirsiniz.

Eylem örnekleri

Derece API'sine gönderdiğiniz eylemler, kişiselleştirmeye çalıştığınız öğelere bağlıdır.

İşte bazı örnekler:

Purpose Eylem
Bir haber web sitesinde hangi makalenin vurgulandığı kişiselleştirin. Her eylem olası bir haber makalesidir.
Bir web sitesinde reklam yerleşimini iyileştirme. Her eylem, reklamlar için bir düzen oluşturmak için bir düzen veya kurallar (örneğin, üstte, sağda küçük resimler, büyük resimler) olacaktır.
Bir alışveriş web sitesinde önerilen öğelerin kişiselleştirilmiş derecelendirmesini görüntüleyin. Her eylem belirli bir üründür.
Belirli bir fotoğrafa uygulanacak filtreler gibi kullanıcı arabirimi öğeleri önerin. Her eylem farklı bir filtre olabilir.
Kullanıcı amacını netleştirmek veya eylem önermek için bir sohbet botu yanıtı seçin. Her eylem, yanıtı yorumlama seçeneğidir.
Arama sonuçları listesinin en üstünde gösterilecekleri seçme Her eylem, ilk birkaç arama sonuçlarından biridir.

İstemci uygulamasından yükleme eylemleri

Eylemlere ait özellikler genellikle içerik yönetim sistemlerinden, kataloglardan ve öneren sistemlerden gelebilir. Uygulamanız, sahip olduğunuz ilgili veritabanlarından ve sistemlerden eylemlerle ilgili bilgileri yüklemekten sorumludur. Eylemleriniz değişmezse veya her seferinde yüklenmelerini sağlamak performansı gereksiz yere etkilerse, uygulamanıza bu bilgileri önbelleğe almak için mantık ekleyebilirsiniz.

Eylemlerin derecelenmesini engelleme

Bazı durumlarda, kullanıcılara görüntülenmesini istemediğiniz eylemler vardır. Bir eylemin derecelendirilmesini önlemenin en iyi yolu, eylemi Dışlanan Eylemler listesine eklemek veya Sıralama İsteğine geçirmemektir.

Bazı durumlarda, olayların varsayılan olarak üzerinde eğitilmelerini istemeyebilirsiniz. Başka bir deyişle, yalnızca belirli bir koşul karşılandığında olayları eğitmek istersiniz. Örneğin, web sayfanızın kişiselleştirilmiş bölümü katlamanın altındadır (kullanıcıların kişiselleştirilmiş içerikle etkileşim kurmadan önce kaydırması gerekir). Bu durumda sayfanın tamamını işlersiniz, ancak yalnızca kullanıcı kaydırıldığında ve kişiselleştirilmiş içerikle etkileşim kurma şansı olduğunda bir olayın eğitilmesi gerekir. Bu gibi durumlarda, son kullanıcının etkileşim kurma şansı olmayan varsayılan ödül (ve eğitim) olaylarını atamamak için Olay Etkinleştirmeyi Ertelemeniz gerekir.

Özellikler

Hem bağlam hem de olası eylemler özellikler kullanılarak açıklanmıştır. Özellikler, ödülleri en üst düzeye çıkarmak için karar alma süreci için önemli olduğunu düşündüğünüz tüm bilgileri temsil eder. İyi bir başlangıç noktası, her zaman damgasında en iyi eylemi seçmekle görevlendirildiğinden emin olmak ve kendinize şu soruyu sormaktır: "Bilinçli bir karar vermek için hangi bilgilere ihtiyacım var? Bağlamı ve her olası eylemi açıklamak için hangi bilgilere sahibim?" Özellikler genel veya bir öğeye özgü olabilir.

Kişiselleştirme, eylemler ve bağlam için gönderebileceğiniz özellikleri yazmaz, sınırlamaz veya düzeltmez:

  • Zaman içinde bağlam ve eylemlerle ilgili özellikler ekleyebilir ve kaldırabilirsiniz. Kişiselleştirme, kullanılabilir bilgilerden öğrenmeye devam eder.
  • Kategorik özellikler için olası değerleri önceden tanımlamanız gerekmez.
  • Sayısal özellikler için aralıkları önceden tanımlamanız gerekmez.
  • Alt çizgiyle _ başlayan özellik adları yoksayılır.
  • Özellik listesi büyük (yüzlerce) olabilir, ancak kısa bir özellik kümesiyle başlamanızı ve gerektiğinde genişletmenizi öneririz.
  • eylem özellikleri bağlam özellikleriyle herhangi bir bağıntıya sahip olabilir veya olmayabilir.
  • Kullanılabilir olmayan özellikler istekten atlanmalıdır. Belirli bir özelliğin değeri belirli bir istek için kullanılamıyorsa, bu isteğin özelliğini atla.
  • Özellikleri null değerle göndermekten kaçının. Null değer, istenmeyen "null" değerine sahip bir dize olarak işlenir.

Özelliklerin zaman içinde değişmesi normaldir. Ancak Kişiselleştirme'nin makine öğrenmesi modelinin gördüğü özelliklere göre uyarlandığını unutmayın. Tüm yeni özellikleri içeren bir istek gönderirseniz, Kişiselleştirici'nin modeli geçerli olay için en iyi eylemi seçmek üzere geçmiş olayları kullanamaz. 'Kararlı' bir özellik kümesine (yinelenen özelliklerle) sahip olmak, Kişiselleştirme'nin makine öğrenmesi algoritmalarının performansına yardımcı olur.

Bağlam özellikleri

  • Bazı bağlam özellikleri yalnızca zamanın bir bölümünde kullanılabilir. Örneğin, bir kullanıcı çevrimiçi market web sitesinde oturum açtıysa, bağlam satın alma geçmişini açıklayan özellikler içerir. Bu özellikler konuk kullanıcı için kullanılamaz.
  • En az bir bağlam özelliği olmalıdır. Kişiselleştirme boş bir bağlamı desteklemez.
  • Bağlam özellikleri her istek için aynıysa, Kişiselleştirici genel olarak en iyi eylemi seçer.

Eylem özellikleri

  • Tüm eylemlerin aynı özellikleri içermesi gerekmez. Örneğin, çevrimiçi market senaryosunda mikrowavable patlamış mısır "pişirme zamanı" özelliğine sahip olurken salatalık olmaz.
  • Belirli bir eylem kimliğine ilişkin özellikler bir gün kullanılabilir, ancak daha sonra kullanılamaz duruma gelir.

Örnekler:

Aşağıda eylem özellikleri için iyi örnekler verilmiştir. Bunlar her uygulamaya çok bağlıdır.

  • Eylemlerin özelliklerine sahip özellikler. Örneğin, bir film mi yoksa bir dizi mi?
  • Kullanıcıların geçmişte bu eylemle nasıl etkileşim kurabileceğine ilişkin özellikler. Örneğin, bu film çoğunlukla A veya B demografisindeki kişiler tarafından görülür, genellikle en fazla bir kez oynatılır.
  • Kullanıcının eylemleri nasıl gördüğüyle ilgili özellikler. Örneğin, küçük resimde gösterilen filmin posteri yüzleri, arabaları veya manzaraları içeriyor mu?

Desteklenen özellik türleri

Kişiselleştirici dize, sayısal ve boole türlerinin özelliklerini destekler. Uygulamanızın birkaç özel durum dışında çoğunlukla dize özelliklerini kullanması olasıdır.

Özellik türleri Kişiselleştirme'de makine öğrenmesini nasıl etkiler?

  • Dizeler: Dize türleri için, her anahtar-değer (özellik adı, özellik değeri) birleşimi bir One-Hot özelliği olarak kabul edilir (örneğin, category:"Produce" ve category:"Meat" dahili olarak makine öğrenmesi modelinde farklı özellikler olarak temsil edilir).
  • Sayısal: Yalnızca sayı kişiselleştirme sonucunu orantılı olarak etkilemesi gereken bir büyüklük olduğunda sayısal değerleri kullanın. Bu çok senaryoya bağlıdır. Sayısal birimleri temel alan ancak anlamın doğrusal olmadığı (Yaş, Sıcaklık veya Kişi Yüksekliği gibi) özellikler en iyi kategorik dizeler olarak kodlanır. Örneğin Yaş, "Yaş":"0-5", "Yaş":"6-10" vb. olarak kodlanabilir. Yükseklik": "Yükseklik": "<5'0", "Yükseklik": "5'0-5'4", "Yükseklik": "5'5-5'11", "Yükseklik":"6'0-6-4", "Yükseklik":">6'4".
  • Boole
  • Diziler Yalnızca sayısal diziler desteklenir.

Özellik mühendisliği

  • Büyüklüğe sahip olmayan özellikler için kategorik ve dize türlerini kullanın.
  • Kişiselleştirmeyi yönlendirmek için yeterli özellik olduğundan emin olun. İçeriğin ne kadar hassas bir şekilde hedeflenmesi gerekiyorsa, o kadar fazla özellik gerekir.
  • Çeşitli yoğunlukların özellikleri vardır. Birçok öğe birkaç demet halinde gruplandırılırsa bir özellik yoğundur. Örneğin, binlerce video "Uzun" (5 dk'nın üzerinde) ve "Kısa" (5 dk'nın altında) olarak sınıflandırılabilir. Bu çok yoğun bir özelliktir. Öte yandan, aynı binlerce öğe "Title" adlı bir özniteliğe sahip olabilir ve bu öznitelik bir öğeden diğerine neredeyse hiçbir zaman aynı değere sahip olmaz. Bu çok yoğun olmayan veya seyrek bir özelliktir.

Yüksek yoğunluklu özelliklere sahip olmak, Kişiselleştirmenin bir öğeden diğerine öğrenmeyi tahmin etmesine yardımcı olur. Ancak yalnızca birkaç özellik varsa ve bunlar çok yoğunsa, Kişiselleştirici aralarından seçim yapabileceğiniz yalnızca birkaç demet içeren içeriği tam olarak hedeflemeye çalışır.

Özellik tasarımı ve biçimlendirme ile ilgili yaygın sorunlar

  • Yüksek kardinaliteye sahip özellikler gönderme. Birçok olay üzerinde tekrarlanma olasılığı olmayan benzersiz değerlere sahip özellikler. Örneğin, bir kişiye özgü PII (ad, telefon numarası, kredi kartı numarası, IP adresi gibi) Kişiselleştirici ile kullanılmamalıdır.
  • Kullanıcı kimlikleri gönderme Çok sayıda kullanıcıyla, bu bilgilerin ortalama ödül puanını en üst düzeye çıkarmak için Kişiselleştirme öğrenmesiyle ilgili olması pek olası değildir. Kullanıcı kimliklerinin gönderilmesi (PII olmayan kimlikler bile) modele büyük olasılıkla daha fazla kirlilik ekler ve önerilmez.
  • Nadiren birkaç kezden fazla gerçekleşecek benzersiz değerler gönderme. Özelliklerinizi daha yüksek bir ayrıntı düzeyine ayırmanız önerilir. Örneğin, sırasıyla yalnızca 7 ve 24 benzersiz değer olduğundan veya "Context.TimeStamp.Hour":13 gibi "Context.TimeStamp.Day":"Monday" özelliklere sahip olmak yararlı olabilir. Ancak, "Context.TimeStamp":"1985-04-12T23:20:50.52Z" çok hassastır ve çok fazla sayıda benzersiz değere sahiptir, bu da Kişiselleştirme'nin ondan öğrenmesini çok zorlaştırır.

Özellik kümelerini geliştirme

Özellik Değerlendirme İşi çalıştırarak kullanıcı davranışını analiz edin. Bu, hangi özelliklerin olumlu ödüllere daha az katkıda bulunan özelliklere kıyasla büyük ölçüde katkıda bulunduğunu görmek için geçmiş verilere bakmanızı sağlar. Hangi özelliklerin yardımcı olduğunu görebilirsiniz ve sonuçları daha da geliştirmek için Kişiselleştirme'ye gönderilecek daha iyi özellikleri bulmak size ve uygulamanıza bağlıdır.

Yapay zeka ve Azure yapay zeka hizmetleriyle özellik kümelerini genişletme

Yapay Zeka ve kullanıma hazır Azure yapay zeka hizmetleri, Kişiselleştirme'ye çok güçlü bir ekleme olabilir.

Öğelerinizi yapay zeka hizmetlerini kullanarak önceden işleyerek, kişiselleştirme için uygun olabilecek bilgileri otomatik olarak ayıklayabilirsiniz.

Örnek:

  • Sahne öğelerini, metinleri, yaklaşımı ve diğer birçok özniteliği ayıklamak için Video Indexer aracılığıyla bir film dosyası çalıştırabilirsiniz. Bu öznitelikler daha sonra özgün öğe meta verilerinin sahip olmadığı özellikleri yansıtacak şekilde daha yoğun hale getirilebilir.
  • Görüntüler nesne algılama, yüzler yaklaşım vb. aracılığıyla çalıştırılabilir.
  • Metindeki bilgiler, Bing bilgi grafiğiyle varlıkları, yaklaşımı ve varlıkları genişleterek artırılabilir.

Aşağıdakiler gibi diğer birçok Azure AI hizmetini kullanabilirsiniz:

Eklemeleri özellik olarak kullanma

Çeşitli Machine Learning modellerindeki eklemelerin Kişiselleştirme için etkileyici özellikler olduğu kanıtlanmıştır

  • Büyük Dil Modellerinden Eklemeler
  • Azure AI Vision Modellerinden Eklemeler

Ad Alanları

İsteğe bağlı olarak, özellikler ad alanları kullanılarak düzenlenebilir (hem bağlam hem de eylem özellikleri için geçerlidir). Ad alanları, özellikleri konuya, kaynağa veya uygulamanızda anlamlı olan diğer gruplandırmalara göre gruplandırmak için kullanılabilir. Ad alanlarının kullanılıp kullanılmadığını ve ne olması gerektiğini belirlersiniz. Ad alanları özellikleri ayrı kümeler halinde düzenler ve benzer adlarla özellikleri birbirinden ayırır. Ad alanlarını özellik adlarına eklenen bir 'ön ek' olarak düşünebilirsiniz. Ad alanları iç içe yerleştirilmemelidir.

Uygulamalar tarafından kullanılan özellik ad alanlarının örnekleri aşağıda verilmiştir:

  • User_Profile_from_CRM
  • Saat
  • Mobile_Device_Info
  • http_user_agent
  • VideoResolution
  • Deviceınfo
  • Hava Durumu
  • Product_Recommendation_Ratings
  • current_time
  • NewsArticle_TextAnalytics

Ad alanı adlandırma kuralları ve yönergeleri

  • Ad alanları iç içe yerleştirilmemelidir.
  • Ad alanları benzersiz ASCII karakterleriyle başlamalıdır (UTF-8 tabanlı ad alanlarını kullanmanızı öneririz). Şu anda aynı ilk karakterlere sahip ad alanlarının olması çakışmalara neden olabilir, bu nedenle ad alanlarınızın birbirinden ayrı karakterlerle başlamasını kesinlikle öneririz.
  • Ad alanları büyük/küçük harfe duyarlıdır. Örneğin user ve User farklı ad alanları olarak kabul edilir.
  • Özellik adları ad alanları arasında yinelenebilir ve ayrı özellikler olarak değerlendirilir
  • Şu karakterler kullanılamaz: kod 32 (yazdırılamaz), 32 (boşluk), 58 (iki nokta üst üste), 124 (kanal) ve 126-140 kodları < .
  • Alt çizgiyle _ başlayan tüm ad alanları yoksayılır.

JSON örnekleri

Eylemler

Rank'ı çağırırken, aralarından seçim yapabileceğiniz birden çok eylem gönderirsiniz:

JSON nesneleri iç içe JSON nesneleri ve basit özellik/değerler içerebilir. Bir dizi yalnızca dizi öğeleri sayı ise eklenebilir.

{
    "actions": [
    {
      "id": "pasta",
      "features": [
        {
          "taste": "salty",
          "spiceLevel": "medium",
          "grams": [400,800]
        },
        {
          "nutritionLevel": 5,
          "cuisine": "italian"
        }
      ]
    },
    {
      "id": "ice cream",
      "features": [
        {
          "taste": "sweet",
          "spiceLevel": "none",
          "grams": [150, 300, 450]
        },
        {
          "nutritionalLevel": 2
        }
      ]
    },
    {
      "id": "juice",
      "features": [
        {
          "taste": "sweet",
          "spiceLevel": "none",
          "grams": [300, 600, 900]
        },
        {
          "nutritionLevel": 5
        },
        {
          "drink": true
        }
      ]
    },
    {
      "id": "salad",
      "features": [
        {
          "taste": "salty",
          "spiceLevel": "low",
          "grams": [300, 600]
        },
        {
          "nutritionLevel": 8
        }
      ]
    }
  ]
}

Bağlam

Bağlam, Rank API'sine gönderilen bir JSON nesnesi olarak ifade edilir:

JSON nesneleri iç içe JSON nesneleri ve basit özellik/değerler içerebilir. Bir dizi yalnızca dizi öğeleri sayı ise eklenebilir.

{
    "contextFeatures": [
        {
            "state": {
                "timeOfDay": "noon",
                "weather": "sunny"
            }
        },
        {
            "device": {
                "mobile":true,
                "Windows":true,
                "screensize": [1680,1050]
            }
        }
    ]
}

Ad Alanları

Aşağıdaki JSON'da , userenvironment, device, ve activity ad alanlarıdır.

Dekont

UTF-8 tabanlı ve farklı harflerle başlayan özellik ad alanlarının adlarını kullanmanızı kesinlikle öneririz. Örneğin, , , ve ile başlayın.aeduactivitydeviceenvironmentuser Şu anda aynı ilk karakterlere sahip ad alanlarının olması çakışmalara neden olabilir.

{
    "contextFeatures": [
        { 
            "user": {
                "profileType":"AnonymousUser",
                "Location": "New York, USA"
            }
        },
        {
            "environment": {
                "monthOfYear": "8",
                "timeOfDay": "Afternoon",
                "weather": "Sunny"
            }
        },
        {
            "device": {
                "mobile":true,
                "Windows":true
            }
        },
        {
            "activity" : {
                "itemsInCart": "3-5",
                "cartValue": "250-300",
                "appliedCoupon": true
            }
        }
    ]
}

Sonraki adımlar

Pekiştirici öğrenme