StackExchange 웹 사이트에서 머신 러닝 방법 적용


37

이번 학기 에는 머신 러닝 과정이 있으며 교수는 실제 문제 를 찾아 수업에 도입 된 머신 러닝 방법 중 하나를 통해 해결 하도록 요청 했습니다.

나는 stackoverflowstackexchange 의 팬 중 하나이며 이러한 웹 사이트의 데이터베이스 덤프 는 훌륭하기 때문에 대중에게 제공된다는 것을 알고 있습니다 ! 이 데이터베이스에 대해 좋은 기계 학습 과제를 찾아서 해결할 수 있기를 바랍니다.

내 생각

질문 본문에 입력 된 단어를 기반으로 질문에 대한 태그를 예측한다는 생각이 떠 올랐습니다. 베이지안 네트워크는 질문에 대한 태그를 학습하기위한 올바른 도구이지만 더 많은 연구가 필요하다고 생각합니다. 어쨌든, 사용자가 질문 입력을 마치면 학습 단계 후에 일부 태그를 제안해야합니다.

알려주세요 :

ML 커뮤니티에 대한 경험이 풍부한 사람들로서 통계 커뮤니티에 다음 두 가지 질문을하고 싶습니다.

  1. 태그 제안이 적어도 해결할 수있는 문제라고 생각하십니까? 그것에 대해 조언이 있습니까? stackexchange가 아직 그러한 기능을 구현하지 않기 때문에 조금 걱정입니다.

  2. stackexchange 데이터베이스를 기반으로하는 ML 프로젝트에 대한 다른 아이디어가 있습니까? stackexchange 데이터베이스에서 배울 내용을 찾기가 정말 어렵습니다 .


데이터베이스 오류에 대한 고려 사항 : 데이터베이스가 크고 인스턴스가 많지만 완벽하지 않고 오류가 발생하기 쉽다는 점을 지적하고 싶습니다. 확실한 것은 신뢰할 수없는 사용자의 나이입니다. 질문에 선택된 태그조차도 100 % 정확하지 않습니다. 어쨌든 문제를 선택할 때 데이터 정확성의 백분율을 고려해야합니다.

문제 자체에 대한 고려 사항 : 내 프로젝트는 이와 관련해서는 안됩니다 data-mining. 실제 환경에서 ML 분석법을 적용해야합니다.

답변:


28

그렇습니다 . 태그 예측은 흥미롭고 "성공"에 대한 좋은 기회라고 생각합니다.

다음은이 주제에 대한 브레인 스토밍 및 추가 탐색에 잠재적으로 도움이되는 몇 가지 생각입니다. 그러한 프로젝트가 취할 수있는 잠재적으로 흥미로운 방향이 많이 있다고 생각합니다. 아래 중 하나 또는 두 개를 진지하게 시도하면 적절한 프로젝트 이상을 만들 수 있으며 내가 제기 한 것보다 더 흥미로운 질문이 나올 것입니다.

나는 머신 러닝 으로 간주되는 것에 대해 매우 넓게 살펴볼 것입니다 . 의심 할 여지없이 나의 제안 중 일부는 탐색 적 데이터 분석 과보다 전통적인 통계 분석 으로 더 잘 분류 될 것이다 . 그러나 아마도 자신의 흥미로운 질문을 공식화하는 데 도움이 될 것입니다. 사이트의 기능을 향상시키는 데있어 흥미로울 것 같은 질문에 답하려고합니다. 물론 사이트 친화 성과 관련이없는 다른 흥미로운 질문도 많이 있습니다.

  1. 사용자 행동에 대한 기본 설명 분석 :이 사이트에 사용자가 참여하는주기적인 패턴이 매우 분명하다고 생각합니다. 사이트에서 트래픽이 가장 많은시기는 언제입니까? 사이트에 대한 사용자 참여 그래프는 일주일에 몇 시간 씩 계층화 된 것처럼 보입니까? 시간이 지남에 따라 사이트의 전반적인 인기도에 대한 잠재적 인 변경 사항을 조정하려고합니다. 이것은 처음부터 사이트의 인기가 어떻게 변했는가하는 질문으로 이어집니다. "일반"사용자의 참여는 가입 한 후 시간에 따라 어떻게 달라 집니까? 나는 그것이 처음에는 꽤 빨리 올라간 다음 고지대에 올라가고 몇 주 정도가 지나면 남쪽으로 향할 것으로 추측합니다.
  2. 질문과 답변의 최적 제출 : 첫 번째 질문에 대한 통찰력을 얻는 것이 자연스럽게 좀 더 흥미로운 (ML의 관점에서) 질문으로 이어질 것 같습니다. 답변이 필요한 질문이 있다고 가정하겠습니다. 답변을받을 확률을 최대화하려면 언제 제출해야합니까? 질문에 응답하고 있고 투표 수를 최대화하려면 언제 답변을 제출해야합니까? 이 두 가지에 대한 대답은 매우 다를 수 있습니다. 문제의 주제 (예 : 관련 태그로 정의)에 따라 어떻게 달라 집니까?
  3. 사용자와 주제의 Biclustering : 태그로 측정했을 때 어떤 사용자가 관심 분야에서 가장 유사합니까? 어떤 사용자가 참여하는지에 따라 가장 유사한 주제는 무엇입니까? 이러한 관계를 멋지게 시각화 할 수 있습니까? 이것의 파생물은 특정 질문에 대한 답변을 제출할 가능성이 가장 높은 사용자를 예측하는 것입니다. (이러한 기술을 SE에 제공하여 사용자가 단순히 태그를 기반으로하지 않고 잠재적으로 흥미로운 질문에 대한 알림을받을 수 있다고 상상해보십시오.)
  4. 행동 별 답변자 클러스터링 : 답변자가이 사이트를 사용하는 방법에 대한 몇 가지 기본 행동 패턴이있는 것 같습니다. 응답에 따라 동작에 따라 기능과 클러스터링 알고리즘을 제공 할 수 있습니다. 클러스터는 해석 가능합니까?
  5. 새 태그 제안 : 현재 데이터베이스에있는 질문과 답변에서 주제를 유추 하여 태그에 대한 제안을 제시 할 수 있습니다 . 예를 들어, 최근에 [mixture-model] 태그가 추가되었다고 생각합니다. 그러나 정보 검색 접근 방식은 그러한 주제를 직접 추출하여 잠재적으로 중재자에게 제안 할 수 있어야합니다.
  6. 지리적 위치에 대한 반 감독 학습 : ( 개인 정보 보호 측면에서 약간 어색 할 수 있습니다. ) 일부 사용자는 자신이있는 위치를 나열합니다. 다른 사람들은 그렇지 않습니다. 사용 패턴과 잠재적 어휘 등을 사용하여 각 사용자의 위치에 지리적 신뢰 영역을 둘 수 있습니까? 직관적으로, 위도보다 경도 측면에서 (정확히) 더 정확한 것으로 보입니다.
  7. 중복 가능성과 관련성이 높은 질문에 대한 자동 플래그 지정 : 사이트에는 이미 관련 막대가 오른쪽 여백 과 비슷한 기능을 가지고 있습니다. 거의 정확한 사본을 찾아 제안하면 중재자에게 유용 할 수 있습니다. SE 커뮤니티의 여러 사이트 에서이 작업 수행 하는 것은 새로운 것처럼 보입니다.
  8. 이탈 예측 및 사용자 보존 : 각 사용자 기록의 기능을 사용하여 다음에 해당 기능을 볼 것으로 예상 할 수 있습니까? 그들이 얼마나 오랫동안 결근했는지와 과거 행동의 특징에 따라 그들이 사이트로 돌아올 확률을 예측할 수 있습니까? 예를 들어 사용자가 "이탈"할 위험이있을 때이를 알아 채고 이메일을 통해 사용자를 유지하기 위해 참여할 수 있습니다. 일반적인 접근 방식은 일정 기간 동안 활동이 없으면 전자 메일을 발송합니다. 그러나 각 사용자는 매우 다르며 많은 사용자에 대한 많은 정보가 있으므로보다 맞춤형 접근 방식을 개발할 수 있습니다.

1
@ 추기경. 훌륭한 답변이며,이 모든 데이터를 이용할 수 있다면 매력적인 프로젝트가 될 것입니다.
richiemorrisroe

1
대부분의 제안은 실용적이고 ML과 관련이 있습니다. 어쨌든, 그들 중 일부는 잘못되고 불완전한 데이터를 처리해야합니다. 슬프게도 데이터 마이닝 및 정리에 대한 깊은 지식이 없으며이를 배울 시간이 충분하지 않습니다. 나는 통계의 다른 구성원이 이러한 아이디어에 대해 약간의 작업을 수행하고 SE 커뮤니티에 기여하고 그들에게 깊은 인상을주기를 바랍니다.)
Isaac

2
@Isaac, 내가 제공 한 목록은 압도되지 않았습니다. 단순히 브레인 스토밍에 도움을주기위한 것입니다. 프로젝트의 특성에 따라 1-2 개를 처리하는 것이 가장 기대할 수 있다고 생각합니다. 건배.
추기경

1
모든 아이디어는 훌륭하거나 훌륭하지만 "사용자와 주제에 대한 성찰"이 가장 좋습니다 ... 잠재적으로 흥미로운 질문에 대한 추천 시스템은 대단합니다.
steffen

9

나는 태그 예측에 대해서도 생각하고 있었고, 나는 그 아이디어를 좋아한다. 가능하다고 생각하지만 최종 데이터 세트에 도달하기 전에 많은 문제를 극복해야 할 수도 있습니다. 따라서 태그 예측에는 많은 시간이 필요할 수 있습니다. 잘못된 태그 외에도 최대 5 개의 태그 제한이 역할을 할 수 있습니다. 또한 일부 태그는 다른 태그의 하위 범주입니다 (예 : "다중 비교"는 "유의성 테스트"의 하위 범주로 볼 수 있음).

투표 시간이 다운로드 가능한 데이터베이스에 포함되어 있는지 확인하지는 않았지만 더 단순하고 흥미로운 프로젝트는 초기 투표에 따라 질문에 대한 "최종"투표 수 (5 개월 후)를 예측하는 것입니다. 그리고 대답을 받아들이는시기.


내가 기억하는 것에서, 각 사용자마다 날짜 + 질문 ID로 투표합니다.
chl

투표 예측의 경우 (+1). 좋은 생각이야!
steffen

1
이 프로젝트는 특히 사용자의 vpvote 수를 곧 예측할 때 좋습니다. 추가 작업은 사용자에게 자신의 질문을 다시 제기 한 내용과 개선을 통해 자신의 질문을 대중적으로 만들 수있는 방법을 알려줄 수 있습니다. 어쨌든 항상 기능 선택은 실제로 중요하고 도전적인 작업이므로 이러한 예측의 성능은이 선택에 크게 좌우됩니다. TL; DR 나는 당신의 아이디어를 좋아합니다
Isaac

2

좋은 질문입니다. 나도 공개적으로 사용 가능한 StackExchange 데이터 세트가 분석에 좋은 주제가 될 것이라고 생각했습니다. 이것들은 새로운 통계적 방법에 대한 좋은 시험대가 될 수있을 정도로 특이한 것입니다. 이렇게 많은 양의 잘 구조화 된 데이터를 갖는 것은 이례적인 일이 아닙니다.

추기경 은 실제로 StackExchange에 유용한 여러 가지를 제안했습니다. 나는 이것으로 나 자신을 제한하지 않습니다.

여기에는 분명한 용도가 없지만 분석을위한 확실한 후보가 있습니다. 높은 rep 사용자가 공감대를 얻을 가능성이 높고 다른 것들은 평등하다는 것이 눈에 띄는 효과입니다. 그러나이 효과는 모델에 사소한 것이 아닐 수도 있습니다. 사용자 전체의 유용성을 매우 쉽게 비교할 수 없기 때문에 사용자의 답변이 항상 똑같이 유용하다고 가정하고 (일반적으로 사실은 아니지만 어딘가에서 시작해야 함) 자신의 명성을 높이기 위해 인플레이션 용어를 추가하는 것이 분명한 접근 방식입니다 . 그러면 경험이 늘어남에 따라 그의 대답이 더 나아질 것이라고 설명하는 용어를 추가 할 수 있습니다. 어쩌면 이것은 일종의 시계열에 의해 처리 될 수 있습니다. 간격 데이터가 어떻게 영향을 미치는지 잘 모르겠습니다. 흥미로운 운동이 될 수 있습니다.

내가 생각할 때 더 많은 예제를 추가 할 것입니다.

누구나 SE 데이터를 기반으로 한 통계 연구 논문을 알고 있습니까? 또한 Isaac 은 데이터에 오류가 있다고 언급했습니다. 누구든지 이것에 대해 더 알고 있습니까?


이것은 실제로 흥미로운 질문이며 AndyW가 블로그 게시물에서 분석하기 시작했다고 생각합니다. 나는 "눈에 띄는"그런 효과가 있다는 사실에 대해 궁금한 점이 있습니다. 그런 다음이를 모델링하는 방법을 제안하지만 일반적으로 이미 긍정적 인 답변이 있다고 말한 정확한 질문에 답변하려는 시도는 포함되지 않습니까?
추기경

@cardinal : 블로그 게시물에 대한 링크가 있습니까? 마지막 문장을 이해하지 못했습니다. 테스, 나는 적어도 사용자의 이름이 Skeet 인 경우 그 효과는 실제적이고 눈에 띄는 것으로 생각하지만,이 시점에서 이것은 강한 일이지만 일화적인 인상 일뿐입니다. 따라서 원하는 경우 "알릴 수있는 효과"를 가설로 바꿀 수 있습니다. 분석은 물론 효과의 존재 여부를 측정하는 것뿐만 아니라 그것을 확인하거나 거부하려고 시도합니다.
Faheem Mitha

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.