iToverDose/Yazılım· 18 MAYIS 2026 · 12:05

Claprec: Makine Öğrenmesi ile Kişiselleştirilmiş İçerik Önerileri Nasıl Çalışıyor?

Claprec’in öneri motorunu benzersiz kılan şey nedir? Makine öğrenmesiyle harmanlanan konum, ilgi alanı ve kullanıcı davranışlarını temel alarak soğuk başlangıç sorununu nasıl aştığını keşfedin.

DEV Community3 dk okuma0 Yorumlar

Makine öğrenimi ve kişiselleştirme, kullanıcıları platformda tutmanın anahtarı haline geldi. Claprec gibi platformsa, içerik önerilerinin sadece "en yeni gönderiler" sıralamasına bırakılması yeterli değildir. Peki, bir öneri motoru soğuk başlangıç sorununu nasıl çözer, coğrafi yakınlığı nasıl dikkate alır ve kullanıcı davranışlarından nasıl faydalanır? Bu yazıda, Claprec’in ana sayfasını güçlendiren hibrit öneri algoritmasını, mimari kararlarını ve makine öğrenimiyle nasıl optimize edildiğini ayrıntılı olarak inceleyeceğiz.

Öneri Motorunun Temel Mimarisi: Kullanıcı Durumuna Göre Uyarlama

Claprec’in öneri sistemi, kullanıcının kimlik doğrulama durumuna ve konum verilerinin varlığına göre üç farklı senaryoda çalışır. Bu esnek yaklaşım, her kullanıcı için en uygun içeriği sunmayı hedefler. Sistem, hem kullanıcı verilerini hem de içeriğin coğrafi yayılımını dikkate alarak çalışır.

  • Kimliği Doğrulanmamış Kullanıcılar (Konum Bilgisi Yok): Bu durumda sistem, en popüler içerikleri öne çıkarır. Zamanında bir geri düştürme mekanizması olarak, en yeni gönderiler de dikkate alınır. Bu yaklaşım, kullanıcının tercihlerini henüz öğrenemediğimiz durumlarda en genel geçer içeriği sunmayı amaçlar.
  • Kimliği Doğrulanmış Kullanıcılar: Sistem, kullanıcının ilgi alanlarını analiz ederek kişiselleştirilmiş bir öneri listesine geçiş yapar. İlgi alanları, kullanıcının geçmişte en çok vakit harcadığı içerik türlerine göre belirlenir. Popülerlik ve yenilik de bu sırada ikinci plana atılır.
  • Kimliği Doğrulanmış Kullanıcılar (Konum Verisi Mevcut): Bu senaryoda, sistem önce coğrafi yakınlığı dikkate alır. Kullanıcının bulunduğu konuma yakın içerikler, ilgi alanlarına göre daha yüksek sıralamaya yerleştirilir. Ardından popülerlik ve yenilik faktörleri devreye girer.
public async Task<PaginatedResponse<DtoRelatedReview>> Recommended(
    BaseSearchDto search,
    UriBuilder uriBuilder,
    double? lat,
    double? lng,
    User? user)
{
    // Kullanıcı durumuna göre öneri stratejisini seç
    if (user == null)
    {
        return await GetPopularReviews(search, uriBuilder);
    }
    else if (lat.HasValue && lng.HasValue)
    {
        return await GetGeoPersonalizedReviews(search, user.Id, lat.Value, lng.Value);
    }
    else
    {
        return await GetPersonalizedReviews(search, user.Id);
    }
}

Coğrafi Verilerin Hassas Çözümlenmesi

Claprec’te bir inceleme, sadece bir nokta değil; aynı zamanda bir işletmenin adresine ya da çoklu konumlarda satılan bir ürüne bağlı olabilir. Bu nedenle, konum verilerini doğru bir şekilde eşleştirmek için hiyerarşik bir çözümleme stratejisi uygulandı. Sistem, kullanıcının konumunu sadece GPS verilerinden değil, aynı zamanda profilinde yer alan posta kodu ve şehir bilgilerinden de çıkarır.

İncelemelerin konum eşleştirmesi yapılırken aşağıdaki adımlar izlenir:

  • İncelemenin bağlı olduğu işletme adresi varsa, bu adresin koordinatları kullanılır.
  • İnceleme bir ürüne bağlıysa, o ürünü stoklayan tüm işletmelerin adresleri toplanır ve ortalama bir konum hesaplanır.
  • Kullanıcının konumu, GPS verilerinin yanı sıra profilinde belirttiği şehir ve posta kodu bilgileriyle de desteklenir.
private double? CalculateClosestProximity(
    double lat,
    double lng,
    HashSet<(double, double)> latitudesLongitudes)
{
    if (latitudesLongitudes.Count == 0)
    {
        return null;
    }

    var proximity = double.MaxValue;
    foreach (var (latitude, longitude) in latitudesLongitudes)
    {
        var latDiff = Math.Abs(lat - Math.Abs(latitude));
        var lngDiff = Math.Abs(lng - Math.Abs(longitude));
        var currentProximity = Math.Abs(latDiff - lngDiff);

        if (currentProximity < proximity)
        {
            proximity = currentProximity;
        }
    }

    return proximity;
}

Bu mantık, kullanıcının "etki alanı" ile incelemenin "erişim alanı" arasındaki ilişkiyi doğru bir şekilde eşleştirerek, yakınlık tabanlı sıralamayı mümkün kılar.

Makine Öğrenimi Çekirdeği: Gizli Geri Bildirimlerle Kişiselleştirme

Kimliği doğrulanmış kullanıcılar için basit bir sıralama yeterli değildir. Claprec, gizli geri bildirim adı verilen bir yaklaşımdan faydalanır. Kullanıcıların bir incelemeye harcadığı süre, onların ilgisini doğrudan yansıtan bir sinyal olarak kabul edilir. Örneğin, bir kullanıcı bir incelemeye 10 saniye, 30 saniye ya da 1 dakika boyunca bakıyorsa, bu süre makine öğrenimi modeli için bir etiket olarak kullanılır.

Model Eğitim Süreci

Claprec’in öneri motoru, Microsoft.ML kütüphanesi kullanılarak geliştirilmiştir. Model eğitimi için aşağıdaki adımlar izlenir:

  1. Veri Dönüştürme: Kullanıcı ve inceleme kimlikleri, sayısal değerlere dönüştürülür.
  2. Matris Ayrıştırma: Kullanıcıların incelemelere harcadığı süreler, gizli bir matris ayrıştırma yöntemiyle modellenir.
  3. Model Ayarlama: Model, 20 iterasyon ve 100 yakınsama derecesi ile eğitilir. Bu ayarlar, hem performansı hem de karmaşık kullanıcı-içerik etkileşimlerini yakalama yeteneğini dengeler.
var estimator = mlContext.Transforms.Conversion.MapValueToKey("UserIdEncoded", "UserId")
    .Append(mlContext.Transforms.Conversion.MapValueToKey("ReviewIdEncoded", "ReviewId"));

var options = new MatrixFactorizationTrainer.Options
{
    MatrixColumnIndexColumnName = "UserIdEncoded",
    MatrixRowIndexColumnName = "ReviewIdEncoded",
    LabelColumnName = "Label",
    NumberOfIterations = 20,
    ApproximationRank = 100
};

Model, kullanıcıların henüz görmediği içerikler için harcanacak süreyi tahmin etmek üzere eğitilir. Bu sayede, sistem kullanıcıların ilgisini en doğru şekilde yansıtan öneriler sunabilir.

Modelin Operasyonelleştirilmesi: Yeniden Eğitim Stratejisi

Bir modelin performansı, verilerinin güncelliğine bağlıdır. Ancak her kullanıcı etkileşimiyle modeli yeniden eğitmek, kaynak tüketimini önemli ölçüde artırır. Bu sorunu çözmek için Claprec, kullanıcı etkileşimlerini belli bir eşik değeriyle değerlendirir ve bu eşiğin aşılması durumunda yeniden eğitim başlatır. Bu yaklaşım, hem kaynakları verimli kullanır hem de modelin güncel kalmasını sağlar.

Claprec’in öneri motoru, makine öğrenimi ve coğrafi analizleri bir araya getirerek kullanıcı deneyimini kökten değiştiriyor. Gelecekte, sistemin daha da gelişmesiyle birlikte, derin öğrenme modellerinin entegrasyonu ve çok dilli destek gibi yenilikler de gündeme gelebilir. Kullanıcıların ilgisini en doğru şekilde yansıtan öneriler sunmak, dijital platformların temel hedeflerinden biri olmaya devam edecek.

Yapay zeka özeti

Claprec’in öneri motorunu benzersiz kılan nedir? Makine öğrenmesi, coğrafi analiz ve kullanıcı davranışlarını harmanlayan hibrit sistemin mimarisini keşfedin.

Yorumlar

00
YORUM BIRAK
ID #UHBOGV

0 / 1200 KARAKTER

İnsan doğrulaması

6 + 8 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.