》》Learning Global Term Weights for Content-based Recommender Systems (on progress)

Start: 2017/10/27
Finish: 2017/10/29

[PDF](http://web.cs.ucla.edu/~ypgu/papers/WWW16_term_weights.pdf)
[Slide](http://web.cs.ucla.edu/~ypgu/slides/WWW16_Term_Weights.pdf)

#IDEA of Application
- apply to restaurant reviews
- **Learn term weights to extract influential term groups for a review category**
    - training data
        - positive: review of one category of user-based higher average score
        - negative: 50% of use-based lower average score + 50% from random
    - A simple neural network to learn weight of terms
- **Others**
    - pair (user, restaurant) or (user, food-kwd) or (kwd, restaurant)
    - restaurant scoring (店内、おしゃれdegree, food/tatst, drink, CP)
        - design network so it learn the weight of terms to classify 

#ABSTRACT
- Application/Goal
    - improve relevance of content-based (content matching) recommendation
- Task
    - optimize/learn the (domain-specific) global term weights (eg. IDF in TF_IDF) for domain-specific recommendation by **supervised approaches**
- Data
    - Training data
        - Job recommendation data from May 2015
            - records contains user_id, job_id, whether user applied/viewed, time stamp and so on
            - **positive**
                - a pair (user, job) considered **positive** if user applied
            - **negative**
                - sample negative to balance the positive and negative samples
                - 50% from **feedback negative** if user has seen but did not click
                - 50% from randomly picked from pairs (user, job) (why?: decrease bias of 'feedback negative'
            - 3.1 million user-job pairs, 90% for training and 10% for testing. Dictionaries contains 490,089 distinct terms (stop word removed and meaningful phrases area extracted eg. "machine learning")
            - Users have 51 fields and jobs have 24 fields
            - Manual scan and keep 79 field pairs in the logistic regression
        - user preference 's profile: 
            - **This paper** infers user's preferences from user resume eg. past work experience, titles, skills (assume profile are proxies of user preferences)
            - VS. **other approaches** allow users to specify their preferred location, seniority level, etc. 
        - item profile: job description
- Intuition
    - some frequent words (lower IDF eg. database, machine learning) can be essential and predictive for relevant recommendation
    - some rare words (higher IDF eg. name of a small company name) could have less predictive power

# INTRODUCT & CONCLUSION
- scenarios when content-based recommendation is important
    - rich profiles about users and items are massively available
- Unified **supervised** learning framework that solve the following questions
    - Predict final relevance score of the item to the user
    - Learn the weights of multiple content matching features between user and item profiles (eg. user skills against job skills, user title against job title)
    - Learn the optimal global term weights for each user text section and item text section (eg. importance of 'machine learning' in job skills)
- Improved **AUC???** by over 17%
- Demonstrate that learning global term weights has **potential???** to improve the efficiency of recommender systems

# METHOD
- Logistic Regression Model
    - input data instance or a pair of (user, job)
    - features: similarity of 2 pieces of text (fields eg. skills, experience etc.) **manually picked 79 field pairs** eg. sim(user title, job title), sim(user title, job skills) etc.
- Multi-layer Logistic Regression Model
    - Two-layer neural network
        - terms in bottom layer
        - text similarity in top layer
    - a
- Regularization
- Optimization
# EXPERIMENTS
- Dataset
- Baseline
    - TF
        - TF=term frequency for short **text fields**
        - TF=BM25 scores for long text fields
    - x
- Evaluation of Multi-layer Logistic Regression Model
- Case Studies
    - First Layer Weights
    - Second Layer Weights

# RELATED WORK
- Context
    - Design text representations from the content
- Different purpose: optimize term weights for document categorization
    - Supervised approaches
        - 6 8 27 15 16 4 19 7
        - exploit category label of documents to provide some guidance of term weighting
        - 27 utilize statistical confidence intervals to estimate the proportion of documents containing each term, thus define the strength of each term. Favors the terms that are proportionally more frequent in the positive class
        - 7 weighting scheme that consists of two parts
            - importance of a term in a document
            - **importance of term of expressing sentiment**
            - learned based on statistical functions of the supervised document label information
        - 15 new factor **"relevant frequency"**
            - take category info into account to improve term's discriminating power
    - Unsupervised text representations
        - most based on statistical info of terms in the corpus: document frequency, **X^2 statistic**, **information gain**, odds ratio
- Same purpose of recommendation utilizing text information
    - Text can be used as pre-filter **[1]**, post-filter or integrated with the recommendation models
    - Integrated models
        - Use text directly as additional features for recommendation
            - 20 9 5 18 use text to do user classification or profile inference, then apply learned label as either filtering or modification of rating scores
            - 11 3 29 21 12 use trained textual labels or sentiments for latent rating dimension **???**
                - topic model on both user and item side
                - use topic distribution to match the latent factor in matrix factorization
            - consider text as an auxiliary feature besides the ratings
            - 17 consider text as additional dimension of input feature for recommendation model
        - Latent semantic models
            - obtain the similarity of two documents at **topic** level (inspired by the fact that sometimes 2 relevant document may share few terms in common because of their language discrepancy). A deep structure is built to generate a highly non-linear concept vector for a text string. **sophisticated framework** vs. this paper's method's simplicity

#Related Info
- [Nov 2014, 確率的情報検索 Okapi BM25 についてまとめた](http://sonickun.hatenablog.com/entry/2014/11/12/122806)
- [Apr 2016, Python で「トークン名, 文書名, tfidf値, Okapi 25値」の列で構成される DataFrameオブジェクト を 生成する](https://qiita.com/HirofumiYashima/items/49316894edf59ad025b5)
- [Sep 2015, Implementing a Neural Network from Scratch in Python – An Introduction](http://www.wildml.com/2015/09/implementing-a-neural-network-from-scratch/)

#Looks Similar papers
- [Link to Google Scholar](https://scholar.google.co.jp/scholar?um=1&ie=UTF-8&lr&cites=485252379910844072)
- [Content-Based Top-N Recommendation using Heterogeneous Relations](https://pdfs.semanticscholar.org/d531/c509fa881ed969fa523635c204b7e2f86773.pdf)
in [Australian Database Conference 2016](https://link.springer.com/book/10.1007/978-3-319-46922-5?page=2#toc)

#Cited papers
[RecSys 2017 When recurrent neural networks meet the neighborhood for session-based recommendation](http://ls13-www.cs.tu-dortmund.de/homepage/publications/jannach/Conference_RecSys_2017.pdf)

#Papers about Review Analysis
[A Time and Opinion Quality-Weighted Model for Aggregating Online Reviews](https://https://doi.org/10.1007/978-3-319-46922-5_21)
in [Australian Database Conference 2016](https://link.springer.com/book/10.1007/978-3-319-46922-5?page=2#toc)

#First Author Page
[Yupeng Gu, Computer Science Ph.D at University of California, Los Angeles](http://yupenggu.me/#publication)

#First Author's other papers
[Weakly-Guided User Stance Prediction via Joint Modeling of Content and Social Interaction](http://yupenggu.me/papers/CIKM17_Stance.pdf)

#Might useful Code
- [deep-learning-coursera/Neural Networks and Deep Learning/Logistic Regression with a Neural Network mindset.ipynb](https://github.com/Kulbear/deep-learning-coursera/blob/master/Neural%20Networks%20and%20Deep%20Learning/Logistic%20Regression%20with%20a%20Neural%20Network%20mindset.ipynb)
- [Building A Logistic Regression in Python, Step by Step](https://medium.com/towards-data-science/building-a-logistic-regression-in-python-step-by-step-becd4d56c9c8)