<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問題を緩和できたとのこと。
</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>