BPEでサブワード分割することでDistilBERTに未知語が入力されるのを防ぐ方法

最近案件でBERTを使う機会がありました。 Hugging Face社が公開している英語版のBERTや東北大の乾・鈴木研究室が公開している日本語版BERTであれば自前のtokenizerで学習あるいは推論対象のテキストを単語分割しても問題ありません。 一方、京大の黒橋・褚・村脇研究室が公開しているBERTだったり、バンダイナムコ社が公開しているDistilBERTを使用する場合、自前のtokeni […]

実装して理解するレコメンド手法〜協調フィルタリング

前回に引き続き、推薦システムで用いられるレコメンド手法を紹介していきます。 今回のテーマは協調フィルタリング(Collaborative Filtering)の実装方法です。 協調フィルタリングは、多くのユーザから嗜好データを収集することで、ユーザが好むであろうアイテムを予測する手法で、大きく以下の4つのタイプに分類できます。 メモリベース(Memory-based) モデルベース(Model-b […]

実装して理解するレコメンド手法〜コンテンツベースフィルタリング

以前、「推薦システムの手法のまとめ」という記事を書きました。 この記事では、推薦システムで用いられるレコメンドモデルの全体観をまとめたのですが、各モデルの実装方法までは紹介していませんでした。 ということで、今回から2回くらいに分けて推薦システムで用いられるレコメンドモデルの実装方法を紹介します。 まず1回目は、コンテンツベースフィルタリング(content base filtering)を取り上 […]

『企画力: 人間と組織を動かす力』を読んだ感想

つい先日、職種を超えて提案書を作成するノウハウを身に付けてもらうことを目的に、社内で提案書作成講座が開かれました。 その講座に参加する準備として、まずは企画する力について勉強しておこうと思って本書を読みました。 実は以前、本書の著者である田坂広志氏の『知性を磨く』も読んだことがあります。 読み始めたらすぐに引き込まれて、一気に読み切ってしまったことを覚えています。 さて、本書を読んで印象に残ったこ […]

Word2Vecで特定のwordを除外してmost_similarする方法

レコメンドタスクでgensimのWord2Vecを利用する場合、特定のword(アイテム)を除外した上で類似度上位N件をmost_similarで出力したいことがあると思います。 しかし、現時点のgensimのWord2Vecではmost_similarに特定のwordの除外機能がないので以下の対応が必要です。 topNを増やしてmost_similar後に特定wordを除外する 学習データで特定 […]

SOTAなモデルを簡単に使えるktrainがテーブルデータに対応したので試してみた

最近、自然言語処理関連の仕事でBERTを使うことになり、まずはお手軽に試せるライブラリはないかと探していたところ、ktrainというライブラリがあることを知りました。 「ktrain: A Low-Code Library for Augmented Machine Learning」という論文曰く、ktrainを使えば、洗練されたSOTA(state-of-the-art)な機械学習モデルを簡単 […]

PythonでROC曲線における最適なカットオフ値を算出する方法

ROC曲線って、使わないとすぐに解釈の仕方を忘れてしまいます。 縦軸や横軸が何を表していて、何を基準にプロットしていくのか、毎回使うときにググってしまう今日この頃です。 ということで、今回は自分の記憶の整理をかねてROC曲線の可視化を実施し、最適なカットオフ値を算出するYouden index(Youden’s J statistic)を用いた方法も紹介します。 さらに、scikit- […]

『「具体⇔抽象」トレーニング 思考力が飛躍的にアップする29問』を読んだ感想

知人に勧められて読んでみたので、少し感想を書きます。 本書の目的は次の通りです。 本書は具体と抽象を往復すること、つまり抽象化と具体化によって発想を豊かにするとともに、日ごろ私たちの身の回りで起こっているコミュニケーションギャップを解消することを目的としています。 この具体と抽象を往復する考え方を自らの頭に叩き込むため、29の問題を通してトレーニングをしていきます。 本書を読むことで、私たちが日頃 […]

カイ二乗検定が有意だった場合におこなう残差分析をPythonで実装する

『Rで学ぶ確率統計学 多変量統計編』を読んでいて、分割表の検定の章で残差分析という手法が出てきました。 カイ二乗検定の説明は市販の統計学の参考書で頻出しているものの、有意な検定結果を得られた後に実施する下位検定(post hoc test)の方法までを述べている本は少ないと思います。 今回はそんな下位検定の一つである残差分析を理解するために、その簡単な理論とともにPythonでの実装コードを紹介し […]

『オブジェクト指向でなぜつくるのか』を読んだ感想

押入れを漁っていたらずいぶん昔に買った本が出てきました。 SIerにいた頃に買った本ですが、そういえばちゃんと読んでなかったなと思い、幾星霜のときを経て読むことにしました。 (わけあってKindle版を読んでます) この本を買った当時はJavaで開発していたこともあり、雰囲気でしか理解していなかったオブジェクト指向を正しく知りたいという思いがあった気がします。 さて、本書を改めて読んでみて、オブジ […]