Makine öğrenim yöntemlerinin StackExchange web sitelerinde uygulanması


37

Bir var Makine Öğrenimi ders bu dönem ve profesör bir bulmamızı istedi gerçek dünya problemi gibi, sınıfta tanıtılan makine öğrenme yöntemlerden biriyle bunu çözmek:

Ben hayranları biriyim stackoverflow ve Stack Exchange ve know veritabanı döker onlar müthiş çünkü bu web sitelerinin halka sağlanmıştır arasında! Umarım, bu veritabanları hakkında iyi bir makine öğrenme mücadelesi bulabilir ve çözebilirim.

Benim fikrim

Aklıma gelen bir fikir, soru gövdesindeki girilen kelimelere dayanarak sorular için etiketler öngörmektir. Bayesian ağının bir soru için etiket öğrenmenin doğru aracı olduğunu düşünüyorum ancak daha fazla araştırmaya ihtiyaç var. Neyse, öğrenme aşamasından sonra kullanıcı soruyu girmeyi bitirdiğinde, ona bazı etiketler önerilmelidir.

Lütfen söyle bana :

İstatistik topluluğuna deneyimli insan olarak ML iki soru hakkında sorular sormak istiyorum:

  1. Etiket önerisinin en azından çözme şansı olan bir sorun olduğunu düşünüyor musunuz? Bununla ilgili herhangi bir tavsiyen var mı? Biraz endişeliyim çünkü stackexchange henüz böyle bir özelliği uygulamadı.

  2. Stackexchange veritabanına dayanan ML projesi için başka / daha iyi bir fikriniz var mı? Stackexchange veritabanlarından öğrenilecek bir şeyler bulmak gerçekten zor .


Veritabanı hataları hakkında dikkat edilmesi gerekenler: Veritabanlarının büyük olmasına ve birçok örneği olmasına rağmen, mükemmel olmadıklarını ve hata yaptıklarını belirtmek isterim. Açık olanı, güvenilmez olan kullanıcıların çağıdır. Soru için seçilen etiketler bile% 100 doğru değil. Her neyse, bir problem seçiminde verilerin doğruluğunun yüzdesini göz önünde bulundurmalıyız.

Sorunun kendisi hakkında değerlendirme:data-mining Projem böyle veya böyle bir şey olmamalı . Sadece gerçek dünyada ML yöntemlerinin bir uygulaması olmalıdır.

Yanıtlar:


28

Evet , etiket tahmininin "başarı" için iyi bir vuruş yaptığınız ve ilginç bir sonuç olduğunu düşünüyorum.

Aşağıda, beyin fırtınasına ve bu konunun daha fazla araştırılmasına potansiyel olarak yardımcı olacak bazı düşünceler bulunmaktadır. Böyle bir projenin alabileceği potansiyel olarak ilginç yönlerin olduğunu düşünüyorum. Aşağıdakilerden sadece bir veya ikisinde ciddi bir girişimin yeterli bir projeden daha fazlasını yapabileceğini tahmin ediyorum ve ortaya koyduğumdan daha ilginç sorularla karşılaşacaksınız.

Makine öğrenmesi olarak kabul edilenler hakkında çok geniş bir görüş alacağım . Kuşkusuz benim önerilerimden bazıları keşifsel veri analizi ve daha geleneksel istatistiksel analiz olarak sınıflandırılacaktı . Ancak, belki de, kendi ilginç sorularınızı formüle ederken küçük bir şekilde yardımcı olacaktır. Söyleyeceksiniz ki, sitenin işlevselliğini arttırmak açısından ilginç olacağını düşündüğüm soruları çözmeye çalışıyorum. Tabii ki, site dostu olmayla ilgili olmayabilecek başka ilginç sorular da var.

  1. Kullanıcı davranışının temel tanımlayıcı analizi : Bu siteye kullanıcının katılımı için çok net bir haftalık döngüsel kalıp olduğunu tahmin ediyorum. Site en çok ne zaman trafik alıyor? Sitedeki kullanıcı katılım grafiği, örneğin, hafta boyunca saate göre sınıflandırılmış gibi görünüyor? Sitenin genel popülaritesindeki zaman içindeki potansiyel değişiklikleri ayarlamak istersiniz. Bu soruya yol açar, sitenin popülerliği kuruluşundan bu yana nasıl değişti? "Tipik" bir kullanıcının katılımı, katılımdan bu yana nasıl değişir? Sanırım başlangıçta oldukça hızlı bir şekilde yükseliyor, sonra platolar ve muhtemelen birkaç hafta ya da öylesine bir araya geldikten sonra güneye gidiyor.
  2. Soru ve cevapların en uygun biçimde sunulması : İlk soru hakkında bir fikir edinmek doğal olarak daha ilginç (ML anlamında) sorulara yol açıyor gibi görünmektedir. Diyelim ki bir cevaba ihtiyacım var. Bir cevap alma ihtimalimi en üst seviyeye çıkarmak istersem, ne zaman göndermeliyim? Bir soruya cevap veriyorsam ve oy sayımı en üst düzeye çıkarmak istersem cevabımı ne zaman vermeliyim? Belki bu ikisinin cevapları çok farklıdır. Bu, sorunun konusuna göre nasıl değişir (örneğin, ilişkili etiketlerle tanımlandığı gibi)?
  3. Kullanıcıların ve konuların paylaşılması : Hangi kullanıcılar, belki de etiketlerle ölçülenler açısından, ilgi alanları bakımından en çok benzerler mi? Hangi kullanıcıların katıldığı hangi konulara en çok benziyor? Bu ilişkilerin güzel bir şekilde görselleştirilmesini sağlayabilir misiniz? Bunun en önemli noktaları, hangi kullanıcıların hangilerinin belirli bir soruya cevap vermesi muhtemel olduğunu tahmin etmeye çalışmak olacaktır. (SE'ye böyle bir teknoloji sunmayı düşünün, böylece kullanıcılar yalnızca etiketlere dayalı değil, potansiyel olarak ilginç sorulardan haberdar edilebilirler.)
  4. Yanıtlayıcıların davranışa göre kümelenmesi: Yanıt verenlerin bu siteyi nasıl kullandıklarına dair birkaç temel davranış modeli olduğu görülüyor. Yanıtlayıcıları davranışlarına göre kümelemek için özellikler ve kümeleme algoritması bulabilir misiniz? Kümeler yorumlanabilir mi?
  5. Yeni etiket önerme: Veritabanındaki mevcut soru ve cevaplardan çıkan çıkarımlara dayanarak yeni etiket önerileri bulabilir misiniz ? Örneğin, [karışım modeli] etiketinin yakın zamanda eklendiğine inanıyorum, çünkü birileri bir sürü ilgili soru aldığımızı fark etti. Ancak, bilgi edinme yaklaşımının bu konuları doğrudan çıkarabilmesi ve potansiyel olarak moderatörlere önerebilmesi gerektiği görülmektedir.
  6. Coğrafi konumların yarı eğitimli öğrenilmesi : ( Bu gizlilik perspektifinden biraz temkinli olabilir. ) Bazı kullanıcılar nerede olduklarını listeler. Diğerleri yok. Kullanım kalıplarını ve potansiyel olarak kelime dağarcığını, vb. Kullanarak, her kullanıcının bulunduğu yere bir coğrafi güven bölgesi koyabilir misiniz? Sezgisel olarak, bunun enlemden ziyade boylam açısından daha doğru olacağı görülüyor.
  7. Olası kopyaların ve yüksek düzeyde ilgili soruların otomatik olarak işaretlenmesi : Site , sağ kenardaki İlgili çubukla benzer bir özelliğe zaten sahip . Neredeyse kesin kopyaları bulmak ve bunları önermek moderatörler için faydalı olabilir. Bunu yapmak genelinde GD toplumda sitelere yeni olacak gibi görünüyor.
  8. Güğüm tahmini ve kullanıcı tutma : Her kullanıcının geçmişinden gelen özellikleri kullanarak, bir dahaki sefere görmeyi beklediğinizi tahmin edebilir misiniz? Ne kadar zamandır devam etmediklerine ve geçmiş davranışlarının özelliklerine bağlı olarak siteye geri dönme olasılıklarını tahmin edebilir misiniz? Bu, örneğin, kullanıcıların “çalkalama” riski altında olduklarını fark etmeye çalışmak ve onları (e-posta yoluyla) tutma çabalarıyla meşgul etmek için kullanılabilir. Tipik bir yaklaşım, belirli bir süre hareketsiz kaldıktan sonra bir e-postayı ortaya çıkarır. Ancak, her kullanıcı çok farklıdır ve birçok kullanıcı hakkında birçok bilgi vardır, bu nedenle daha özel bir yaklaşım geliştirilebilir.

1
@ kardinal. Bu harika bir cevap ve tüm bu verilerin kullanılabilirliği göz önüne alındığında, büyüleyici bir proje olur.
richiemorrisroe

1
Önerilerinizin çoğu pratik ve benimle ilgili görünüyor. Her neyse, bazıları hatalı ve eksik verilerle ilgilenmelidir. Ne yazık ki, veri madenciliği ve temizliği hakkında derin bir bilgiye sahip değilim ve bunu öğrenmek için yeterli zamanım yok. Umarım diğer istatistik üyeleri bu fikirler hakkında biraz çalışıp SE topluluğuna katkıda bulunur ve onları etkileyebilir :)
Isaac

2
@Iacac, sağladığım liste bunalmaya yönelik değildi. Beyin fırtınasına potansiyel olarak yardımcı olmak için tasarlandı. Projenin niteliğine bağlı olarak, 1-2 tanesinin ele alınmasının beklenebilecek en fazla olacağını düşünüyorum. Şerefe.
kardinal

1
bütün fikirler iyi ya da harika, ama ben "Kullanıcıların ve konuların dikkatinin dağılması" en iyisi ... Potansiyel olarak ilginç sorular için bir tavsiye sistemi harika olurdu.
steffen

9

Ben de etiket tahminini düşünüyordum, fikri sevdim. Bunun mümkün olduğunu hissediyorum, ancak nihai veri setinize ulaşmadan önce birçok konunun üstesinden gelmeniz gerekebilir. Bu nedenle, etiket tahmininin çok zamana ihtiyacı olabileceğini tahmin ediyorum. Yanlış etiketlere ek olarak, maksimum 5 etiketin limiti de rol oynayabilir. Ayrıca, bazı etiketlerin başkalarının alt kategorileri olduğunu (örneğin “çoklu karşılaştırmalar”, “anlamlılık testi” nin bir alt kategorisi olarak görülebilir).

Oy kullanma sürelerinin indirilebilir veri tabanına dahil edilip edilmediğini kontrol etmedim, ancak daha basit ve hala ilginç bir proje, ilk oylamaya bağlı olarak bir soruya ilişkin “son” oy sayısını (belki de 5 ay sonra) tahmin etmek olabilir. ve bir cevabı kabul etme zamanlaması.


Hatırladıklarıma göre, her kullanıcı için date + soru kimliği ile oy kullanıyorsunuz.
chl

(+1) oy tahmini için. İyi fikir!
steffen

1
Bu proje harika görünüyor, özellikle vpvote sayısını kullanıcı için çok erken tahmin edersek. Başka bir çalışma, soruyu neyin gerisinde tuttuğunu ve hangi iyileştirmeyi sorusunu popüler hale getirebileceğini anlatmak olabilir. Her neyse, her zaman olduğu gibi, özellik seçimi gerçekten önemli ve zor bir iştir ve bu tür tahminlerin performansı bu seçime bağlıdır. TL; DR Fikrinizi beğendim
Isaac

2

Bu iyi bir soru. Ben de halka açık olan StackExchange veri setlerinin analiz için iyi konular yaratacağını düşündüm. Bunlar, yeni istatistiksel yöntemler için de iyi bir test olabileceği konusunda yeterince sıradışı. Bu kadar büyük miktarda iyi yapılandırılmış veriye sahip olmak, her halükarda olağan değildir.

Kardinal , StackExchange için gerçekten yararlı olacak bir sürü şey önerdi. Kendimi bununla sınırlamam.

Analiz için açık bir aday, akla gelen açık bir kullanımı olmamasına rağmen. Yüksek itibarlı kullanıcıların, diğer şeylerin eşit olması için daha fazla puan kazanmaları daha muhtemeldir. Bununla birlikte, bu etki muhtemelen model için önemsiz değildir. Kullanıcılar arasında kullanışlılığı çok kolay bir şekilde karşılaştıramadığımız için bariz bir yaklaşım, kullanıcıların cevaplarının her zaman eşit derecede yararlı olduğunu varsaymaktır (genel olarak doğru değil, bir yerden başlamak zorunda) ve ardından artan itibarını hesaba katan enflasyonist bir terim eklemek . Biri daha sonra (sanırım) artan deneyimlerle daha iyi hale gelen cevaplarını açıklayacak bazı terimler ekleyebilir. Belki bu bir zaman serisi tarafından ele alınabilir. Veri aralığının bunu nasıl etkileyeceğinden emin değilim. İlginç bir alıştırma olabilir.

Onları düşündüğümde daha fazla örnek ekleyeceğim.

SE verilerine dayanan istatistiksel araştırma makalelerinin farkında olan var mı? Ayrıca, Isaac verilerin hatalı olduğunu belirtti. Bunun hakkında daha fazla bir şey bilen var mı?


Bu gerçekten ilginç bir soru ve AndyW'nin bir blog yazısında analiz etmeye ve bir süre önce sormaya başladığına inandığım bir soru. Tamamen ikna olmadığım "fark edilebilir" bir etkinin olduğunu söyleyen ifadenizi merak ediyorum. Daha sonra bunu modellemek için bir yol önermeye devam edersiniz, ancak bu genellikle zaten olumlu bir cevabı olduğunu söylediğiniz kesin soruyu cevaplamayı denemeyi içermez mi?
kardinal

@cardinal: Blog yazısı ile bir bağlantınız var mı? Son cümlenizi anladığımdan emin değilim. Tes, en azından kullanıcının adı Skeet ise etkinin gerçek ve göze çarpan olduğunu düşünüyorum, ama bu noktada bu güçlü bir etki olsa da, sadece bir anekdot izlenimdir. Öyleyse, tercih ederseniz, "fark edilebilir etkiyi" hipotezle değiştirebilirsiniz. Analiz elbette onu onaylamaya veya reddetmeye çalışmanın yanı sıra, varsa etkinin gücünü ölçmeye çalışacaktır.
Faheem Mitha

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.