ゼロベース入門推奨システム-ニュース推奨-Task 1(DataWhale学習グループ)
ゼロ基礎入門推薦システム-ニュース推薦-Task 1 DataWhale学習グループ試合問題理解とBaseline Baseline 新知識点
試合問題の理解とBaseline
Datawhaleが天池で開催したゼロベース入門試合:https://tianchi.aliyun.com/competition/entrance/531842/information
Baseline
主にフォーラムが提供するbaselineを通じて初歩的な探索を行った.使用するデータは主にtrain_click_log(ニュースの内容を考慮していないarticles_emb)、使用するアルゴリズムはitemCF(商品の協同フィルタリングに基づく)
新しい知識ポイント forループの進捗バーは を表示します.比較的大きなデータセットに対する処理tips: 変数タイプを変更してメモリを節約する 訓練セットからデータの一部を切り出してコード をデバッグする必要な一時データをpickleファイルとして格納し、 のインポートとエクスポートを容易にする.
itemCFの原理:ユーザのクリック日記に基づいて類似行列を生成し,類似行列を用いて新しい文章の推薦を行う. itemの類似度計算: ユーザーが閲覧するitemの数を考慮する itemが閲覧する数を考慮する DataFrameおよび辞書におけるデータ処理方法 パケット化後applyを使用して各グループの最値を問合せ、assertの使用 データボックス再構成 辞書並べ替えtopk値 その他:天池実験室のnotebookの使用
試合問題の理解とBaseline
Datawhaleが天池で開催したゼロベース入門試合:https://tianchi.aliyun.com/competition/entrance/531842/information
Baseline
主にフォーラムが提供するbaselineを通じて初歩的な探索を行った.使用するデータは主にtrain_click_log(ニュースの内容を考慮していないarticles_emb)、使用するアルゴリズムはitemCF(商品の協同フィルタリングに基づく)
新しい知識ポイント
from tqdm import tqdm
for i in tqdm(range(n)):
tmp = recall_df.groupby('user_id').apply(lambda x: x['rank'].max()) assert tmp.min() >= topk
submit = recall_df[recall_df['rank'] <= topk].set_index(['user_id', 'rank']).unstack(-1).reset_index()
submit.columns = [int(col) if isinstance(col, int) else col for col in submit.columns.droplevel(0)]
item_rank = sorted(item_rank.items(), key=lambda x: x[1], reverse=True)[:recall_item_num]