Coda

論文メモ A Tale from the Trenches: Cognitive Biases and Software Development

July 31, 2020

エンジニア10人の普段の開発状況から、認知バイアスが開発者にあたえる影響やバイアスの頻度、対策方法について調査した。

Read more

論文メモ Factorization Machines

July 31, 2020

Factorization Machineは、Matrix factorizationのようなFactorization modelとSVMの両方の利点をもつ。 Matrix modelには疎な特徴を入力することができるが、予測のモデルに使うには汎用性に欠ける。 一方、SVMは、汎用的であるが、推薦システムで使われるような疎な特徴を扱うことができない。 Factorizatiom Machineは、両者の利点をそなえており、疎な任意の実数を要素にもつ特徴ベクトルを扱うことができる。 また、予測の計算量が線形であり、必要なパラメタの数も線形であるため、SVMのサポートベクタのように訓練データをモデルに持たせる必要がない。 そのために、大量の訓練データを使う学習も可能となる。

Read more

Exploration of Technical Debt in Start-ups

July 24, 2020

スタートアップ86社を調査し、スタートアップにおける技術的負債を招く要因(precedents)、負債を抱える側面(dimentions)、その影響(outcomes)について調査した。 チームの人数の多さと熟練度の低さが負債の要因を誘発し、負債はテストの不足によくみられた。

Read more

Deep Learning Recommendation Model for Personalization and Recoomendation Systems

July 24, 2020

協調フィルタリングのような推薦システムのためのネットワークアーキテクチャを提案した。 特徴の疎・密にかかわらず入力として与えることができる。 例えば、論文の例題では、個人の選好をしめすアイテムとユーザからなる疎な行列を受け取り、ユーザがアイテムをクリックする確率を推定するタスクが使われている。

Read more

論文メモ Explaining Pair Programming Session Dynamics from Knowledge Gaps

July 17, 2020

ペアプログラミングによる知識移転の効果を知るために、9社の社員からなる26組のペアプログラミングを、グラウンデッド・セオリーで調査した。 従来は、熟練度合いで開発者を分けて、ペアプログラミングを分析・評価することが多い。 今回の調査では、システムの要件・仕様のようなシステム固有の知識と、言語、デザインパターン、開発ツールなどの開発全般の知識の2軸で、開発者と知識を分ける重要性を定性的に示した。 一方がシステム固有の知識に欠け、他方が開発全般の知識に欠けるときに、最も知識の伝達が活発だった。

Read more

論文メモ Bag of Tricks for Efficient Text Classification

July 17, 2020

2016年における分類のSOTAと互角の精度でありながら、格段に高速に学習、推定可能なモデルをfastTextで構築できることを示した。 評価実験には、YFCC100Mのキャプションとタイトルからタグを予測するタスク、8つのデータセットによる感情分析が採用された。 タグの予測では、312116個のユニークなタグをつかい、大きなクラス数でもモデルがうまくはたらくことが確かめられた。

Read more

論文メモ Recognizing Developers' Emotions while Programming

July 11, 2020

23人の被検者に30分間のプログラミングをさせ、その間5分ごとに進捗と感情を自己申告してもらい、その結果から感情と進捗の関係を調査した。 作業後にインタービューを実施し、感情が変化する要因と良くない感情への対処法をヒアリングした。 感情を測定するため最低限必要な非侵襲的器具を調べるために、被検者には、脳波、皮膚電位、脈波、心拍数を測定する器具を装着して開発してもらった。

Read more

論文メモ Pytorch: An Imperative Style, High-Performane Deep Learning Library

July 11, 2020

Pytorchの使い勝手と実行速度について解説した論文である。 ここでの使い勝手は、命令型かつPythonらしいコードでPytorchのAPIを呼びだせることを意味する。 Pytorchは、4つの設計原則として、PythonらしいAPI、機械学習の複雑な処理をPytorch内に隠蔽する、使い勝手のために過度にパフォーマンスを犠牲にしない、完璧な解決策よりも実装の単純さを重視する、をかかげる。

Read more

論文メモ Here We Go Again: Why Is It Difficult for Developers to Learn Another Programming Language?

July 4, 2020

既知のプログラミング言語の知識は新しい言語を覚える役に立つ。 一方で、新しい言語の学習の妨げにもなることをStack Overflowの質問とプログラマへのインタビューで明らかにした。

Read more

論文メモ Automatic differentiation in Pytorch

July 4, 2020

Pytorchの自動微分を解説したプレプリントのショートペーパである。 Pytorchの自動微分特徴として、in-placeアルゴリズム、微分の導出に不要な計算を省く仕組みのあるテープ、C++による実装をあげている。 0.4.0での仕様変更によってTensorsVariablesがマージされたことやvolatile`が非推奨になったことをふまえていない。 読むときは、以上の点をはじめとする現在のAPIとの差異に注意する必要がある。

Read more