<h2 id=L@S> L@S</h2><div class="visible-content"> #Pocket #EducationalDataMining #LearningAnalytics


Issue Date: 2021-07-05 Autonomously Generating Hints by Inferring Problem Solving Policies, Piech+, Stanford University, L@S’15 #Article #NeuralNetwork #AdaptiveLearning #EducationalDataMining #StudentPerformancePrediction #KnowledgeTracing


Issue Date: 2021-10-29 Addressing Two Problems in Deep Knowledge Tracing via Prediction-Consistent Regularization, Yeung+, 2018, L@S Comment<p>Deep Knowledge Tracing (DKT)では、下記の問題がある:

- 該当スキルに正解/不正解 したのにmasteryが 下がる/上がる (Inputをreconstructしない)

- いきなり習熟度が伸びたり、下がったりする(時間軸に対してmastery levelがconsistentではない)

上記問題に対処するようなモデルDKT+を提案。



DKT+では、DKTのloss functionに対して3つのregularization termを追加することで上記問題に対処している。

DKT+はDKTの性能を落とすことなく、上記2問題を緩和できたとのこと。



image

</p><p>実装:

https://github.com/ckyeungac/deep-knowledge-tracing-plus

</p><p><img width=”639” alt=”image” src=”

<a href=”https://user-images.githubusercontent.com/12249301/167774315-061e9d8d-16ae-4c56-b69f-e8ef1968b4fa.png”” target=”_blank” rel=”noopener noreferrer”>https://user-images.githubusercontent.com/12249301/167774315-061e9d8d-16ae-4c56-b69f-e8ef1968b4fa.png”</a>





DKT+とDKTのheatmapを比較すると、問題点は確かに緩和されているかもしれないが、

依然としてinputはreconstructionされていないし、習熟度も乱高下しているように見える。

根本的な解決にはなっていないのでは。</p></span>

</div>

if ('IntersectionObserver' in window) {
  const observer = new IntersectionObserver((entries, obs) => {
    entries.forEach(entry => {
      if (entry.isIntersecting) {
        const el = entry.target;
        const html = el.getAttribute('data-embed');
        if (html) {
          const placeholder = el.querySelector('.tweet-placeholder');
          if (placeholder) placeholder.remove();

          el.innerHTML = html.trim();

          if (window.twttr?.widgets?.load) {
            window.twttr.widgets.load(el);
          }
        }
        obs.unobserve(el); // 処理済みは監視解除
      }
    });
  }, {
    rootMargin: '500px 0px', // 画面手前200pxで読み込み開始
    threshold: 0
  });

  tweets.forEach(tweet => observer.observe(tweet));

} else {
  // IntersectionObserver未対応ブラウザ用のフォールバック
  function lazyLoadFallback() {
    tweets.forEach(el => {
      if (el.getAttribute('data-embed') && el.getBoundingClientRect().top < window.innerHeight) {
        const html = el.getAttribute('data-embed');
        const loadingImg = el.querySelector('.tweet-loading');
        if (loadingImg) loadingImg.remove();
        el.innerHTML = html.trim();
        el.removeAttribute('data-embed');
        if (window.twttr?.widgets?.load) {
          window.twttr.widgets.load(el);
        }
      }
    });
  }
  window.addEventListener('scroll', lazyLoadFallback);
  lazyLoadFallback();
}   }); </script>