Aplikasi metode pembelajaran mesin di situs web StackExchange

37

Saya memiliki kursus Pembelajaran Mesin semester ini dan profesor meminta kami untuk menemukan masalah dunia nyata dan menyelesaikannya dengan salah satu metode pembelajaran mesin yang diperkenalkan di kelas, seperti:

Saya adalah salah satu penggemar stackoverflow dan stackexchange dan tahu dump database dari situs web ini disediakan untuk publik karena mereka mengagumkan! Saya harap saya bisa menemukan tantangan pembelajaran mesin yang bagus tentang database ini dan menyelesaikannya.

Ide saya

Satu ide muncul di benak saya adalah memprediksi tag untuk pertanyaan berdasarkan kata-kata yang dimasukkan dalam tubuh pertanyaan. Saya pikir jaringan Bayesian adalah alat yang tepat untuk mempelajari tanda untuk suatu pertanyaan tetapi perlu penelitian lebih lanjut. Bagaimanapun, setelah fase belajar ketika pengguna selesai memasukkan pertanyaan, beberapa tag harus disarankan kepadanya.

Tolong beri tahu saya :

Saya ingin bertanya kepada komunitas statistik sebagai orang yang berpengalaman tentang ML dua pertanyaan:

  1. Apakah menurut Anda saran tag setidaknya merupakan masalah yang memiliki peluang untuk dipecahkan? Apakah Anda punya saran tentang itu? Saya sedikit khawatir karena stackexchange belum mengimplementasikan fitur tersebut.

  2. Apakah Anda punya ide lain / lebih baik untuk proyek ML yang didasarkan pada database stackexchange? Saya merasa sangat sulit untuk menemukan sesuatu untuk dipelajari dari database stackexchange.


Pertimbangan tentang kesalahan basis data: Saya ingin menunjukkan bahwa meskipun basis datanya sangat besar dan memiliki banyak contoh, mereka tidak sempurna dan cenderung mengalami kesalahan. Yang jelas adalah usia pengguna yang tidak bisa diandalkan. Bahkan tag yang dipilih untuk pertanyaan tidak 100% benar. Bagaimanapun, kita harus mempertimbangkan persentase kebenaran data dalam memilih masalah.

Pertimbangan tentang masalah itu sendiri: Proyek saya seharusnya tidak tentang data-miningatau sesuatu seperti ini. Itu hanya harus menjadi aplikasi metode ML di dunia nyata.

Ishak
sumber

Jawaban:

28

Ya , saya pikir prediksi tag adalah salah satu yang menarik dan Anda dapat mencoba "sukses" dengan baik.

Di bawah ini adalah beberapa pemikiran yang dimaksudkan untuk berpotensi membantu dalam brainstorming dan eksplorasi lebih lanjut dari topik ini. Saya pikir ada banyak arah yang berpotensi menarik yang bisa diambil oleh proyek semacam itu. Saya akan menebak bahwa upaya serius hanya pada satu atau dua di bawah ini akan membuat proyek yang lebih dari cukup dan Anda mungkin akan datang dengan pertanyaan yang lebih menarik daripada yang saya ajukan.

Saya akan mengambil pandangan yang sangat luas tentang apa yang dianggap pembelajaran mesin . Tidak diragukan lagi beberapa saran saya akan lebih baik diklasifikasikan sebagai analisis data eksplorasi dan analisis statistik tradisional . Tapi, mungkin, itu akan membantu dalam beberapa hal kecil saat Anda merumuskan pertanyaan menarik Anda sendiri. Anda akan perhatikan, saya mencoba menjawab pertanyaan yang menurut saya akan menarik dalam hal meningkatkan fungsionalitas situs. Tentu saja, ada banyak pertanyaan menarik lainnya yang mungkin tidak terkait dengan keramahan situs.

  1. Analisis deskriptif dasar tentang perilaku pengguna : Saya kira ada pola mingguan siklik yang sangat jelas untuk partisipasi pengguna di situs ini. Kapan situs mendapatkan lalu lintas terbanyak? Seperti apa grafik partisipasi pengguna di situs, misalnya, dikelompokkan berdasarkan jam selama seminggu? Anda ingin menyesuaikan kemungkinan perubahan dalam keseluruhan popularitas situs seiring waktu. Ini mengarah pada pertanyaan, bagaimana popularitas situs berubah sejak awal? Bagaimana partisipasi pengguna "tipikal" berbeda dengan waktu sejak bergabung? Saya kira itu naik cukup cepat di awal, lalu dataran tinggi, dan mungkin menuju selatan setelah beberapa minggu bergabung.
  2. Pengajuan pertanyaan dan jawaban yang optimal : Mendapatkan wawasan tentang pertanyaan pertama tampaknya secara alami mengarah ke beberapa pertanyaan yang lebih menarik (dalam arti ML). Katakan saya punya pertanyaan, saya butuh jawaban. Jika saya ingin memaksimalkan probabilitas saya untuk mendapatkan respons, kapan saya harus mengirimkannya? Jika saya menanggapi pertanyaan dan saya ingin memaksimalkan penghitungan suara saya, kapan saya harus mengirim jawaban? Mungkin jawaban untuk keduanya sangat berbeda. Bagaimana hal ini berbeda menurut topik pertanyaan (misalnya, seperti yang ditentukan oleh tag terkait)?
  3. Mengocehkan pengguna dan topik : Pengguna mana yang paling mirip dalam hal minat mereka, mungkin diukur dengan tag? Topik apa yang paling mirip menurut pengguna mana yang berpartisipasi? Bisakah Anda memunculkan visualisasi yang bagus dari hubungan-hubungan ini? Cabang dari ini akan mencoba untuk memprediksi pengguna mana yang paling mungkin untuk mengirimkan jawaban atas pertanyaan tertentu. (Bayangkan menyediakan teknologi seperti itu untuk SE sehingga pengguna dapat diberitahu tentang pertanyaan yang berpotensi menarik, tidak hanya berdasarkan tag.)
  4. Klaster penjawab berdasarkan perilaku : Tampaknya ada beberapa pola perilaku dasar yang berbeda mengenai bagaimana penjawab menggunakan situs ini. Bisakah Anda menemukan fitur dan algoritma pengelompokan untuk mengelompokkan penjawab berdasarkan perilaku mereka. Apakah kluster dapat diinterpretasikan?
  5. Menyarankan tag baru : Dapatkah Anda membuat saran untuk tag baru berdasarkan pada kesimpulan topik dari pertanyaan dan jawaban yang saat ini ada di database. Sebagai contoh, saya percaya tag [model-campuran] baru-baru ini ditambahkan karena seseorang memperhatikan kami mendapatkan banyak pertanyaan terkait. Tetapi, tampaknya pendekatan pencarian informasi harus mampu mengekstraksi topik-topik seperti itu secara langsung dan berpotensi menyarankannya ke moderator.
  6. Pembelajaran semi-terpantau dari lokasi geografis : (Yang ini mungkin sedikit sensitif dari sudut pandang privasi. ) Beberapa pengguna membuat daftar di mana mereka berada. Yang lain tidak. Menggunakan pola penggunaan dan berpotensi kosa kata, dll, dapatkah Anda menempatkan wilayah kepercayaan geografis di lokasi masing-masing pengguna? Secara intuitif, tampaknya ini akan (jauh) lebih akurat dalam hal bujur daripada lintang.
  7. Pemberian penandaan otomatis terhadap kemungkinan duplikat dan pertanyaan terkait : Situs ini sudah memiliki fitur serupa dengan bilah Terkait di margin kanan. Menemukan duplikat yang hampir persis dan menyarankannya bisa berguna bagi moderator. Melakukan hal ini di seluruh situs di komunitas SE akan tampak baru.
  8. Prediksi churn dan retensi pengguna : Menggunakan fitur dari masing-masing riwayat pengguna, dapatkah Anda memperkirakan waktu berikutnya Anda mengharapkannya? Dapatkah Anda memperkirakan probabilitas mereka akan kembali ke situs dengan syarat berapa lama mereka tidak ada dan fitur dari perilaku masa lalu mereka? Ini dapat digunakan, misalnya, untuk mencoba memperhatikan ketika pengguna berisiko "churn" dan melibatkan mereka (katakanlah, melalui email) dalam upaya mempertahankannya. Pendekatan tipikal akan mengirim email setelah beberapa saat tidak aktif. Tetapi, setiap pengguna sangat berbeda dan ada banyak informasi tentang banyak pengguna, sehingga pendekatan yang lebih khusus dapat dikembangkan.
kardinal
sumber
1
@ kardinal. Itu jawaban yang bagus, dan mengingat ketersediaan semua data ini, itu akan membuat proyek yang menarik.
richiemorrisroe
1
Sebagian besar saran Anda tampaknya praktis dan terkait dengan ML bagi saya. Bagaimanapun, beberapa dari mereka harus berurusan dengan data yang salah dan tidak lengkap. Sayangnya saya tidak memiliki pengetahuan yang mendalam tentang data mining dan pembersihan, juga tidak cukup waktu untuk mempelajarinya. Saya harap anggota statistik lain melakukan beberapa pekerjaan tentang ide-ide ini dan memberikan kontribusi kepada komunitas SE dan mengesankan mereka :)
Isaac
2
@Isaac, daftar yang saya berikan tidak dimaksudkan untuk membanjiri. Itu dimaksudkan hanya untuk berpotensi membantu dalam brainstorming. Tergantung pada sifat proyek, saya akan berpikir bahwa menangani 1-2 dari mereka akan menjadi yang paling diharapkan. Tepuk tangan.
kardinal
1
semua ide bagus atau bagus, tapi saya suka "Biclustering pengguna dan topik" terbaik ... sistem pemberi rekomendasi untuk pertanyaan yang berpotensi menarik akan luar biasa.
steffen
9

Saya juga berpikir tentang prediksi tag, saya suka ide itu. Saya merasa bahwa itu mungkin, tetapi Anda mungkin perlu mengatasi banyak masalah sebelum Anda tiba pada dataset final Anda. Jadi saya berspekulasi bahwa prediksi tag mungkin membutuhkan banyak waktu. Selain tag yang salah, batas maksimal 5 tag dapat berperan. Juga bahwa beberapa tag adalah subkategori dari yang lain (mis. “Perbandingan ganda” dapat dilihat sebagai subkategori “pengujian signifikansi”).

Saya tidak memeriksa apakah waktu pemilihan suara termasuk dalam basis data yang dapat diunduh, tetapi proyek yang lebih sederhana dan masih menarik adalah memprediksi jumlah suara "final" (mungkin setelah 5 bulan) pada sebuah pertanyaan tergantung pada suara awal, dan waktu menerima jawaban.

GaBorgulya
sumber
Dari apa yang saya ingat, untuk setiap pengguna Anda memiliki suaranya dengan tanggal + ID pertanyaan.
chl
(+1) untuk prediksi suara. Ide yang hebat!
steffen
1
Proyek ini tampak hebat, terutama jika kami memperkirakan jumlah vpvote segera bagi pengguna. Pekerjaan selanjutnya adalah memberi tahu pengguna apa yang menahan pertanyaannya dan peningkatan apa yang dapat membuat pertanyaannya populer. Lagi pula, seperti biasanya pilihan fitur benar-benar tugas yang penting dan menantang dan kinerja prediksi seperti itu sangat tergantung pada pilihan ini. TL; DR Saya suka ide Anda
Isaac
2

Ini pertanyaan yang bagus. Saya juga berpikir bahwa dataset StackExchange yang tersedia untuk umum akan menjadi subjek yang baik untuk dianalisis. Ini cukup tidak biasa bahwa mereka mungkin juga merupakan testbeds yang baik untuk metode statistik baru. Memiliki sejumlah besar data terstruktur dengan baik tidak biasa, bagaimanapun juga.

kardinal menyarankan banyak hal yang sebenarnya berguna untuk StackExchange. Saya tidak akan membatasi diri untuk ini.

Berikut adalah satu kandidat yang jelas untuk analisis, meskipun tidak ada penggunaan jelas yang terlintas dalam pikiran. Ini adalah efek yang nyata bahwa pengguna rep tinggi lebih mungkin untuk mendapatkan upvotes, hal lain dianggap sama. Namun, efek ini mungkin non-sepele terhadap model. Karena kami tidak dapat membandingkan kegunaan di seluruh pengguna dengan sangat mudah, pendekatan yang jelas adalah dengan menganggap jawaban pengguna selalu sama berguna (tidak berlaku secara umum tetapi seseorang harus memulai dari suatu tempat) dan kemudian menambahkan istilah inflasi untuk menjelaskan peningkatan reputasinya. . Seseorang kemudian dapat (saya kira) menambahkan dalam beberapa istilah yang akan menjelaskan jawabannya menjadi lebih baik dengan pengalaman yang meningkat. Mungkin ini bisa ditangani oleh semacam rangkaian waktu. Saya tidak yakin bagaimana interval data akan mempengaruhi ini. Ini mungkin latihan yang menarik.

Saya akan menambahkan lebih banyak contoh jika / ketika saya memikirkannya.

Adakah yang mengetahui makalah penelitian statistik berdasarkan data SE? Juga, Isaac menyebutkan bahwa data memiliki kesalahan. Adakah yang tahu lebih banyak tentang ini?

Faheem Mitha
sumber
Ini, memang, pertanyaan yang menarik dan saya yakin AndyW mulai menganalisis dalam posting blog dan pertanyaan kembali. Saya memang penasaran dengan pernyataan Anda bahwa ada efek "nyata" seperti itu, yang saya tidak sepenuhnya yakin benar-benar ada. Anda kemudian menyarankan cara memodelkan ini, tetapi tidakkah itu biasanya termasuk membuat upaya untuk menjawab pertanyaan yang tepat yang Anda katakan sudah memiliki jawaban positif?
kardinal
@ cardinal: Apakah Anda memiliki tautan ke posting blog? Saya tidak yakin saya mengerti kalimat terakhir Anda. Tes, saya pikir efeknya nyata dan nyata, setidaknya jika nama pengguna adalah Skeet, tetapi pada titik ini ini hanya kesan anekdotal, meskipun yang kuat. Jadi, jika Anda mau, Anda dapat mengganti "efek nyata" dengan hipotesis. Analisis tentu saja akan berusaha untuk mengkonfirmasi atau menolaknya, serta mengukur kekuatan efek jika ada.
Faheem Mitha